﻿
table { border-collapse: collapse; border-spacing: 0; }
button{  padding: 0;  border: none;  outline: none;  appearance: none;  background: none;  cursor: pointer;}

body{
font-size: 16px;
line-height: 1;
color: #595757;
font-family: 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
font-style: normal;
}

@media (min-width: 768px) {
body{
min-width: 1240px;
margin: 0 auto;
min-height: 100vh;
overflow-x: hidden; 
}
}
@media (max-width: 767px) {
body{ 
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden; 
line-height: 1.5em;
color: #595757;
background: #fff;
-webkit-text-size-adjust: 100%; 
}}

body a:hover{
opacity:0.7;
filter: alpha(opacity=70);
-ms-filter: "alpha( opacity=70 )";
transition: 0.6s ;
}

a img{
border:0;
}
a{
	text-decoration: none;
	color: inherit;
}
img {
	height: auto;
	vertical-align: bottom;
}

:root {
--margin-gap96: 96px;
--margin-gap88: 88px;
--margin-gap80: 80px;
--margin-gap72: 72px; 
--margin-gap64: 64px;
--margin-gap56: 56px; 
--margin-gap48: 48px;
--margin-gap40: 40px;
--margin-gap32: 32px; 
--margin-gap24: 24px;
--margin-gap20: 20px;
--margin-gap16: 16px;
--margin-gap10: 10px;  
--margin-gap8: 8px;
--margin-gap5: 5px;  
--margin-gap0: 0px;
--fz56: calc(56 / 16 * 1rem);  
--fz48: calc(48 / 16 * 1rem); 
--fz40: calc(40 / 16 * 1rem);
--fz32: calc(32 / 16 * 1rem);  
--fz24: calc(24 / 16 * 1rem);   
--fz20: calc(20 / 16 * 1rem);
--fz16: calc(16 / 16 * 1rem);
--fz14: calc(14 / 16 * 1rem);
--fz12: calc(12 / 16 * 1rem);
--fz10: calc(10 / 16 * 1rem);
}

* { 
min-height: 0vw; 
min-height: 0; 
-webkit-box-sizing: border-box;
box-sizing: border-box;
}


@media (min-width: 768px) {
.pc-only{
display: block;
}
.sp-only{
display: none;
}
}

@media (max-width: 767px) {
.pc-only{
display: none;
}
.sp-only{
display: block;
}
}


.l-header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 64px;
z-index: 999; 
}
@media (min-width: 768px) {
.l-header {
box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.15);
background: linear-gradient(rgba(0, 0, 0, 0.65), #000); 
} 
}
@media (max-width: 767px) {
.l-header {
height: 56px;
align-items: center;
background: #000;
display: flex;
gap: 40px;
justify-content: space-between;
left: 0;
padding: 20px 40px;
position: sticky;
padding: 5.1282vw; 
}
} 
@media all and (min-width: 768px) and (max-width: 1112px) {
.l-header {
height: 86px;
}
}



.p-header__hamburger {
z-index: 999;
position: absolute;
top: 0;
right: 0;
}

.c-hamburger {
position: relative;
width: 64px;
height: 56px;
display: flex;
justify-content: center;
align-items: center;
background: rgba(0, 0, 0, 0.65);
}

.c-hamburger .btn-frame {
position: relative;
display: block;
width: 32px;
height: 2px;
}

.c-hamburger .btn-frame-first-bar {
position: absolute;
display: block;
width: 100%;
height: 100%;
background-color: #fff;
transition: all .15s linear;


}

.c-hamburger .btn-frame-second-bar {
position: absolute;
display: block;
width: 100%;
height: 100%;
background-color: #fff;
transition: all .15s linear;

transform: translateY(-8px) rotate(0deg);
}

.c-hamburger .btn-frame-third-bar {
position: absolute;
display: block;
width: 100%;
height: 100%;
background-color: #fff;
transition: all .15s linear;

transform: translateY(8px) rotate(0deg);
}

.c-hamburger.is-closed .btn-frame-first-bar {
opacity: 0;
}

.c-hamburger.is-closed .btn-frame-second-bar {
transform: translateY(0) rotate(45deg);
}

.c-hamburger.is-closed .btn-frame-third-bar {
transform: translateY(0) rotate(-45deg);
}



body:has(.p-header__nav.is-active){
overflow: hidden;
}
@media (max-width: 767px) {
.p-header__nav{
display: flex;
font-weight: 700;
align-items: flex-start;
flex-direction: column;
height: calc(100dvh - 56px);
left: 0;
overflow: scroll;
position: absolute;
top: 100%;
width: 100%;
font-size: 4.1025vw;
gap: 5.1282vw;
padding: 8.9743vw 8.9743vw 10.2564vw;
background: rgba(0, 0, 0, 0.9); 
}
.p-header__nav{
pointer-events: none;
opacity: 0;
transition: opacity .3s linear;
}
.p-header__nav.is-active{
pointer-events: auto;
opacity: 1;
}
} 



.p-nav__list {
display: block;
}

.p-nav__item {
display: inline-block;
position: relative;
}
.p-nav__item a {
font-family: YakuHanMP, "Noto Serif JP", serif;
font-optical-sizing: auto;
white-space: nowrap; 
}
.p-nav__link {
color: #fff;
display: block;
padding: 20px 10px;
cursor: pointer;
}
@media all and (min-width: 768px) and (max-width: 1112px) {
.p-nav__link {
padding: 0 .75rem;
}
}
.p-nav__item.p-nav__item--ac-menu .p-nav__link {
position: relative;
}
@media (max-width: 767px) {
.p-nav__item.p-nav__item--ac-menu>.p-nav__link::before {
content: "";
background: #fff;
position: absolute;
top: 50%;
right: 0;
width: 16px;
height: 1px;
transform: translate(-50%, -50%); 
}
.p-nav__item.p-nav__item--ac-menu>.p-nav__link::after {
content: "";
top: 50%;
right: 8px;
width: 16px;
height: 1px;
position: absolute;
transform: rotate(-90deg);
background: #fff;
}
.p-nav__item.p-nav__item--ac-menu.is-open>.p-nav__link::after {
transform: rotate(0deg);
transition: transform 0.2s ease-in-out; 
}
}

.p-nav__middle {
display: none;
}

.p-nav__item.is-open .p-nav__middle {
display: block;
}

@media (min-width: 768px) {
.p-header__inner {
display: grid;
grid-template-columns: auto 1fr;
gap: 0 40px;
margin-inline: auto;
padding: 0 20px;
align-items: center;
width: fit-content;
} 
@media all and (min-width: 768px) and (max-width: 1112px) {
.p-header__inner {
margin-block-start: 20px;
width: 1080px;
box-sizing: border-box;
padding: 1rem; 
}
} 
.p-header__hamburger {
display: none;
}

.p-nav__inner {
margin-right: auto;
margin-left: auto;
max-width: initial;
width: 100%;
}
.p-header__logo {
flex: 0 0 auto;
} 
.p-header__logo a {
display: flex;
height: auto;
line-height: 1;
width: 240px;
}
.p-header__logo img{
width: 100%;
} 

.p-header__nav {
align-items: center;
display: flex;
font-size: 1rem;
font-weight: 700;
gap: clamp(20px, 34 / 1214 * 100vw, 34px); 
}
@media all and (min-width: 768px) and (max-width: 1112px) {
.p-header__nav {
margin-inline-start: auto;
}
}
.p-nav__list {
padding-right: 0;
padding-left: 0;
display: flex;
align-items: center; 
}

.p-nav__item ul {
position: absolute;
top: 100%;
left: 0;
min-width: 130px;
margin: 0;
padding: 0;
box-shadow: 0px 3px 8px -2px rgba(0, 0, 0, .65);
}



.p-nav__item ul li {
width: 100%;
height: 0;
overflow: hidden;
transition: all 0.1s;
}

.p-nav__item ul li a {

display: flex;
align-items: center;
padding: 10px 20px;
color: #000;
}

.p-nav__item:hover>ul>li:not(:first-child) {
border-top: 1px solid #fff;
}

.p-nav__item:hover>ul>li.p-nav__middle-item:hover {
background: rgba(255, 255, 255, 0.9);
}

.p-nav__item:hover>ul>li.p-nav__middle-item:hover a {
color: #000;
}

.p-nav__middle {
display: block;
text-align: left;
}

.p-nav__middle-item {
position: relative;
}

.p-nav__middle-item a {
position: relative;
white-space: nowrap;
}
}

@media (hover: hover) and (pointer: fine) { 
.p-nav__item:hover>ul>li {
pointer-events: auto;
visibility: visible;
opacity: 1;
height: 45px;
background: #fff;
}
}

@media (min-width: 768px) {
.l-header_sns{
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
margin-inline-start: 2.5vw; 
}
.l-header_sns img{
width: auto;
height: 25px; 
}
}
@media all and (min-width: 768px) and (max-width: 1112px) {
.l-header_sns{
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
margin-inline-start: .8rem; 
}
}
@media (max-width: 767px) {
.p-header__logo {
flex: 0 0 auto;
} 
.p-header__logo a {
display: flex;
height: auto;
line-height: 1;
width: 200px;
}
.p-header__logo img{
width: 100%;
} 
.p-nav__item {
width: 100%;
border-top: 1px dashed #fff;  
}
.p-nav__link {
padding: 10px;
} 
.l-header_sns{
display: grid;
grid-template-columns: repeat(3, 1fr);
column-gap: 20px;
max-width: 140px;
margin-inline: auto;
padding-block: 60px; 
}
.l-header_sns img{
width: auto;
height: 32px; 
}}

.c-pagetop {
height: 50px;
width: 50px;
position: fixed;
right: 15px;
bottom: 30px;
background: #000;
border: solid 2px #000;
border-radius: 4px;
display: none;
justify-content: center;
align-items: center;
z-index: 2;
cursor: pointer;
}
.c-pagetop__arrow {
display: block;
height: 10px;
width: 10px;
border-top: 3px solid #fff;
border-right: 3px solid #fff;
transform: translateY(20%) rotate(-45deg);
}
.c-pagetop {
height: 50px;
width: 50px;
position: fixed;
right: 15px;
bottom: 30px;
background: #000;
border: solid 2px #000;
border-radius: 4px;
display: none;
justify-content: center;
align-items: center;
z-index: 2;
cursor: pointer;
}
.c-pagetop__arrow {
display: block;
height: 10px;
width: 10px;
border-top: 3px solid #fff;
border-right: 3px solid #fff;
transform: translateY(20%) rotate(-45deg);
}


.l-footer {
font-family: YakuHanMP, "Noto Serif JP", serif;
font-optical-sizing: auto; 
}
 .l-footer .inner-block{
padding-block-start: 60px;  
 }
.l-footer .logo {
  display: flex;
  align-items: center;
}

.l-footer .logo > img {
  width: 300px;
}

.l-footer .logo .ja {
padding-left: 20px;
font-size: 14px;
font-weight: bold;
}

.l-footer .address {
margin-top: 40px;
line-height: 1.7;
letter-spacing: .1em;
}
.l-footer .-tel {
font-weight: 600;
color: #595757;
line-height: 1.7; 
}
.l-footer .area {
padding-bottom: 30px;
}
.l-footer .nav li a {
padding: 10px 0;
position: relative;
}

.l-footer .nav-child li a {
}

.l-footer .nav-child li a span {
  position: relative;
}

@media only screen and (min-width: 768px) {
.l-footer .inner-block{
width: 1240px;
padding: 100px 20px 0;
margin: 0 auto;  
}
.l-footer .area {
display: flex;
margin-inline: auto;
flex-wrap: nowrap;
gap: 2rem;
width: min(100%, 70rem);
}
.l-footer .info{
flex-shrink: 0;
width: min(100%, 25rem);
display: flex;
flex-direction: column; 
}
.l-footer .info .-bottom{
margin-top: auto; 
} 
.l-footer .nav {
display: grid;
column-gap: 2rem;
grid-template-columns: repeat(3, 1fr); 
width: 100%;
line-height: 1.5;
}
 
.l-footer .nav li.-top:nth-of-type(4) {
margin-top: -10px;
grid-column: 1 / 1;
grid-row: 4 / 2;
} 
.l-footer .nav li.-top:nth-of-type(5) {
margin-top: -80px;
grid-column: 2 / 2;
grid-row: 5 / 2;
}
.l-footer .nav li.-top:nth-of-type(6) {
margin-top: 18px;
grid-column: 3 / 3;
grid-row: 6 / 2;
}
.l-footer .nav li.-top:nth-of-type(7) {
margin-top: 105px;
grid-column: 4 / 3;
grid-row: 7 / 2;
} 
.l-footer .nav li .-title {
padding-block-end: 5px;
margin-block-end: 8px;
font-weight: bold;
border-bottom: 1px solid #595757; 
} 
.l-footer .nav li a {
}

.l-footer .nav-child li{
height: 32px;
}  
.l-footer .nav-child li a {
font-size: 15px;
} 
.l-footer .js-aco {
pointer-events: none;
}

.l-footer .menu{
display: grid;
grid-template-columns: repeat(2, 1fr); 
width: min(100%, 18rem); 
}

.l-footer .menu .info-btn {
display: flex;
align-items: center;
flex-shrink: 0;
width: 100%;
padding: 16px 0;
background-color: #fff;
overflow-wrap: break-word;
}
.l-footer .menu .-icon {
flex-shrink: 0;
width: 25px;
height: 25px;
fill: #595757;
margin-right: 8px;
}
.l-footer .menu .-text {
min-width: 0;
}
.l-footer .company-logo {
margin-block-start: 20px;
width: min(100%, 10rem);
text-align: center;   
}
.l-footer .company-logo a .company-img {
display: block;
box-shadow: 0 .125rem .25rem 0 rgba(0, 0, 0, .2); 
transition: all .3s ease 0s;
overflow: hidden;
padding: .75rem; 
}
.l-footer .company-logo a img {
width: 100%;
height: auto;
transition: all .3s ease 0s;
} 
.l-footer .-sns{
display: grid;
grid-template-columns: repeat(3, 1fr);
column-gap: 20px;
width: min(100%, 8rem);
align-items: center;
margin-top: var(--margin-gap32);
margin-inline: 1rem; 
}
.l-footer .-sns img{
width: auto;
height: 30px;
} 
a[href*="tel:"] {
pointer-events: none;
cursor: default;
text-decoration: none;
}
} 

@media (max-width: 767px) {
.l-footer {
padding: 0 15px; 
} 
.l-footer .address {
width: min(100%, 18.75rem);
margin: 40px auto 10px;
font-size: clamp(0.875rem, 0.5536rem + 1.4286vw, 0.9375rem);
text-align: center;
line-height: 2; 
}
.l-footer .-tel {
line-height: 1.8;
} 
.l-footer .area {
padding: 30px 0 0;
display: flex;
flex-direction: column-reverse;
}
.l-footer .info{
margin-inline: auto;
margin-block-start: 64px; 
} 
.l-footer .nav {
width: min(100%, 20rem);
margin: 0 auto;
display: grid;
grid-template-columns: 1fr; 
}
.title_a{
order: 1;
}
.title_b{
order: 3;
}
.title_c{
order: 5;
}
.title_d{
order: 2;
}
.title_e{
order: 4;
}
.title_f{
order: 6;
}
.title_g{
order: 7;
} 
.l-footer .nav li .-title {
display: block;
border-top: 1px dashed #c9caca; 
} 
.l-footer .nav li a {
display: block;
padding: 8px 20px;
background-size: 6px auto;
}
.l-footer .nav-child li a {
padding-left: 15px;
}
.l-footer .js-aco {
cursor: pointer;
position: relative;
padding: 12px 20px;
}
.l-footer .js-aco::before {
content: '';
display: inline-block;
width: 14px;
height: 1px;
background-color: #595757;
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
transition: opacity 1s;
}
.l-footer .js-aco::after {
content: '';
display: inline-block;
width: 14px;
height: 1px;
background-color: #595757;
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%) rotate(90deg);
transition: transform 0.2s ease-in-out;
}
.l-footer .js-aco.show::before {
opacity: 0;
}
.l-footer .js-aco.show::after {
transform: translateY(-50%) rotate(180deg);
transition: transform 0.2s ease-in-out; 
}

.l-footer .nav-child li a span {
position: relative;
}

.l-footer .nav-child li a span::before {
display: inline-block;
position: absolute;
content: '';
width: 10px;
height: 1px;
background-color: #ccc;
top: 0;
bottom: 0;
right: calc(100% + 5px);
margin: auto;
} 
.l-footer .nav-child li a {
padding-left: 40px;
}
.l-footer .nav-child {
display: none;
}
.l-footer .menu{
display: grid;
grid-template-columns: repeat(2, 1fr); 
width: min(100%, 18rem);
margin-inline: auto; 
} 
.info-btn {
display: flex;
align-items: center;
flex-shrink: 0;
width: 100%;
padding: 10px 0;
background-color: #fff;
overflow-wrap: break-word;
justify-content: center; 
}
.l-footer .menu .-icon {
flex-shrink: 0;
width: 25px;
height: 25px;
fill: #595757;
margin-right: 8px;
}
.l-footer .menu .-text {
min-width: 0;
}
.l-footer .company-logo {
margin-block: 20px;
margin-inline: auto; 
width: min(100%, 9rem);
text-align: center;
}
.l-footer .company-logo a img {
 width: 100%;
max-width: 200px; 
 height: auto;
box-shadow: 0 .125rem .25rem 0 rgba(0, 0, 0, .2); 
 transition: all .3s ease 0s;
padding: .75rem;
} 
.l-footer .-sns{
display: grid;
grid-template-columns: repeat(3, 1fr);
column-gap: 20px;
width: min(100%, 7rem);
margin-block: 40px 20px;
margin-inline: auto; 
}
.l-footer .-sns img{
width: auto;
height: 25px; 
} 
}

.l-footer .copyright {
font-size: 14px;
letter-spacing: 0.05em;
line-height: 1.3;
text-align: center;
padding: 15px 0 40px; 
font-family: initial; 
}
@media (max-width: 767px) {
.l-footer .copyright {
font-size: 12px;
letter-spacing: 0.03em;
line-height: 1.3;
text-align: center;
padding: 15px 0 24px;
}
}


.c-wrap { color: #333; font-size: 14px; font-family : "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ　Ｐゴシック", "MS PGothic", sans-serif; } 
.c-sub-global{
font-feature-settings: "palt"; 
line-height: 1.2;
font-weight: 400;  
}
.c-sub-global.-hdg3 {
position: relative;
}
.c-sub-global.-hdg3::before {
content: '';
background: #595757;
width: 2em;
height: 3px;
position: absolute;
bottom: 0;
left: 0;
}
@media (min-width: 768px) {
.c-sub-global.-hdg2 {
font-size: 32px;
margin: 35px 0 20px;
}
.c-sub-global.-hdg3 {
font-size: clamp(1.25rem, 0.75rem + 1.0417vw, 2rem);
padding: 12px 8px;
margin: 32px 0 16px; 
}
}
@media (max-width:767px) {
.c-sub-global.-hdg2 {
font-size: clamp(1.25rem, -0.0357rem + 5.7143vw, 1.5rem);
margin: 30px 0 20px;
} 
.c-sub-global.-hdg3 {
font-size: clamp(1.1875rem, 0.2232rem + 4.2857vw, 1.375rem);
padding: 12px 8px;
margin: 16px 0 0; 
}}


@media (min-width: 768px) {
.c-wrap { width: 920px; margin: 0 auto; } 
}
@media all and (min-width: 768px) and (max-width: 1112px) {
 .mv.common{margin-top: 85px;}
.mv.common .bg-img img {width: 100%} 
 } 
.mv.common { width: 100%; position: relative; background-color: #000000; margin-top: 63px;}

.mv.common .bg-img{ width: 100%; margin: 0 auto; text-align:center; }
.mv.common .shadow { width: 100%; height: 40px; background: url(/setsuryosha/img/top/mv_bg01.png) repeat-x top left; position: absolute; bottom: -40px; }

@media (max-width:767px) {
.c-wrap { font-size: 14px; max-width: 100%; padding: 0 15px;} 
.mv.common { height: auto; position: relative; margin-top: -1px;}
.mv.common .bg-img{ width: 100%; margin: 0 auto; }
.mv.common .bg-img img{ width: 100%;} 
.mv.common .shadow { width: 100%; height: 40px; background: url(/setsuryosha/img/top/sp/mv_bg01.png) repeat-x top left; position: absolute; bottom: -40px; }
}


html {
scroll-behavior: smooth;
scroll-padding-top: 68px;
}
@media (max-width: 767px) {
html {
scroll-padding-top: 60px;
}
}
@media all and (min-width: 768px) and (max-width: 1112px) {
html {
scroll-padding-top: 90px;
}
} 