:root{
    
    --base:#F6F1E4; --beige:#F0E7D2; --warmband:#F6E5C4;
    --ink:#6B5D4E; --head:#4A3D30; --sub:#7A6A57; --gold:#7F5F18; --gold-line:#D9C49B;
    
    --primary:#E58919;  
    --green:#3D7A4B;    
    --mustard:#E8C24A;  
    --mustard-soft:#F4E7C0;
    --brick:#B65C3A;    
    --dot:#DECDAB;
    
    --secPad:100px;
    --secPadWave:60px;
    --secPadEmph:140px;
    --titleGap:60px;
    
    --secPadIn:20px;
    
    --shSoft:0 14px 34px rgba(140,100,40,.09);
    --shLift:0 26px 58px rgba(140,100,40,.16);
    
    --contentW:1180px;
    --readW:1080px;
    --heroPadT:140px;
    --heroPadB:160px;
    
    --eOut:cubic-bezier(.22,.61,.36,1);
  }
@media (max-width:1024px){ :root{--secPad:80px;  --secPadWave:40px; --secPadEmph:100px; --titleGap:44px; --secPadIn:16px; --heroPadT:80px;  --heroPadB:110px} }
@media (max-width:768px){ :root{--secPad:60px;  --secPadWave:40px; --secPadEmph:80px;  --titleGap:36px; --secPadIn:12px; --heroPadT:48px;  --heroPadB:80px} }
*{box-sizing:border-box; margin:0; padding:0}
img{max-width:100%; display:block}
a{text-decoration:none; color:inherit}
ul{list-style:none}
html{scroll-behavior:smooth}
body{
    color:var(--ink); background:var(--base);
    font-family:"Zen Kaku Gothic New","游ゴシック","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,sans-serif; font-weight:400;
    font-size:17px; line-height:1.95; letter-spacing:.06em;
  }
.box{max-width:var(--contentW); margin:0 auto}
.btn{display:inline-flex; align-items:center; gap:18px; background:var(--primary); color:#fff;
    font-weight:700; font-size:19px; letter-spacing:.08em; border-radius:6px; padding:18px 20px 18px 34px;
    white-space:nowrap; transition:transform .45s var(--eOut), box-shadow .45s var(--eOut)}
.btn .ar{width:30px; height:30px; border-radius:50%; background:#fff; color:var(--primary);
    display:flex; align-items:center; justify-content:center; font-size:15px; flex:none}
.btn:hover{transform:translateY(-2px); box-shadow:0 16px 34px rgba(200,120,30,.20)}
.btn.white{background:#fff; color:var(--brick)}
.btn.white .ar{background:var(--brick); color:#fff}
.btn.ghost{background:transparent; border:2px solid var(--primary); color:var(--primary); padding:16px 18px 16px 32px}
.btn.ghost .ar{background:var(--primary); color:#fff}
.secTitle{margin-bottom:var(--titleGap)}
.wave + section{padding-top:var(--secPadWave)}
section:not(.pageHero):has(+ .wave){padding-bottom:var(--secPadWave)}
.secTitle .en{color:var(--gold); font-size:15px; font-weight:700; letter-spacing:.3em; margin-bottom:16px; text-transform:uppercase}
.secTitle h3{color:var(--head); font-size:34px; font-weight:700; letter-spacing:.16em; line-height:1.7}
.secTitle.center h3::after{content:""; display:block; width:94px; height:9px; margin-top:16px;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 9'%3E%3Cpath d='M2 6 Q 9 2 16 6 T 30 6 T 44 6 T 58 6 T 72 6 T 86 6' fill='none' stroke='%23E8C24A' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain}
.secTitle.center{text-align:center}
.secTitle.center h3::after{margin-left:auto; margin-right:auto}
.ic{flex:none}
.contact .formBtn .label .ic{width:22px; height:22px}
.telBox .label{display:flex; align-items:center; justify-content:center; gap:8px}
.chip{display:inline-block; border:1.5px solid var(--c,var(--gold)); color:var(--c,var(--gold)); background:#fff;
    font-size:15px; font-weight:700; border-radius:999px; padding:2px 18px; letter-spacing:.1em}
.numChip{display:inline-block; border:1.5px solid var(--c,var(--gold-line)); color:var(--c,var(--gold)); background:#fff;
    font-size:15px; font-weight:700; border-radius:6px; padding:2px 16px; letter-spacing:.22em}
.blobPhoto{overflow:hidden; border-radius:42% 58% 52% 48% / 48% 44% 56% 52%}
.blobPhoto img{width:100%; height:100%; object-fit:cover}
.blobPhoto.alt{border-radius:56% 44% 48% 52% / 46% 56% 44% 54%}
.wave{display:block; width:100%; height:70px; pointer-events:none}
section{position:relative}
header{position:relative; z-index:50}
.menuBox{display:flex; justify-content:space-between; align-items:center; padding:28px 44px; gap:20px; max-width:1368px; margin:0 auto}
.menuBox .logo{line-height:0}
.menuBox .logo img{width:320px}
.gnav ul{display:flex; align-items:center; gap:36px; font-weight:700; font-size:17px}
.gnav li{position:relative}
.gnav li > a{display:block; padding:6px 0; color:var(--head)}
.gnav li > a:hover{color:var(--primary)}
.gnav li.hasChild > a::after{content:""; display:inline-block; width:7px; height:7px; margin-left:9px;
    border-right:2px solid var(--mustard); border-bottom:2px solid var(--mustard); transform:rotate(45deg) translateY(-3px)}
.gnav .child{position:absolute; top:100%; left:-20px; min-width:270px; background:#fff;
    border-radius:10px; box-shadow:0 18px 46px rgba(120,90,40,.12); padding:14px 0; margin-top:10px;
    opacity:0; visibility:hidden; transition:.35s var(--eOut)}
.gnav li:hover .child, .gnav li.hasChild:focus-within .child, .gnav li.hasChild.open .child{opacity:1; visibility:visible}
.gnav .child a{display:block; padding:12px 26px; font-size:15px; line-height:1.6}
.gnav .child a:hover{background:var(--base); color:var(--primary)}
.gnav .child a small{display:block; font-weight:400; font-size:13px; color:var(--sub)}
.gnav .tel{text-align:center; line-height:1.4}
.gnav .tel .num{color:#B45A09; font-size:23px; font-weight:700}
.gnav .tel .time{font-size:13px; font-weight:400; color:var(--sub)}
.gnav .mailBtn a.btn{display:inline-flex; align-items:center; gap:14px; color:#fff;
    padding:20px 22px 14px 28px}
.gnav .mailBtn a.btn:hover{color:#fff}
.mv{--setW:2400px; --setH:640px; --mvDur:150s;
    position:relative; height:var(--setH)}
.mvView{position:absolute; inset:0; overflow:hidden}
.mvLoop{display:flex; width:max-content; height:100%;
    animation:mvSlide var(--mvDur) linear infinite; will-change:transform}
@keyframes mvSlide{from{transform:translate3d(0,0,0)}
    to{transform:translate3d(calc(var(--setW) * -1),0,0)}}
.mvSet{position:relative; flex:0 0 auto; width:var(--setW); height:var(--setH)}
.mvSet .p{position:absolute; overflow:hidden; z-index:1}
.mvSet .p img{width:100%; height:100%; object-fit:cover}
.mvSet .bean{position:absolute; z-index:0;
    border-radius:54% 46% 60% 40% / 45% 60% 40% 55%; animation:bob 14s ease-in-out infinite}
.mvSet .p1{left:.83%;  top:4.69%;  width:17.92%; height:72.97%; border-radius:46% 54% 52% 48% / 46% 44% 56% 54%}
.mvSet .p2{left:20.83%; top:.78%;  width:13.75%; height:39.69%; border-radius:56% 44% 48% 52% / 46% 56% 44% 54%}
.mvSet .p3{left:26.67%; top:46.88%; width:13.33%; height:37.03%; border-radius:42% 58% 52% 48% / 52% 46% 54% 48%}
.mvSet .p4{left:40.83%; top:9.38%;  width:10.42%; height:50.16%; border-radius:50% 50% 44% 56% / 56% 44% 56% 44%}
.mvSet .p5{left:52.92%; top:54.69%; width:12.50%; height:37.50%; border-radius:52% 48% 56% 44% / 44% 54% 46% 56%}
.mvSet .p6{left:55.42%; top:1.56%;  width:11.67%; height:43.75%; border-radius:44% 56% 48% 52% / 54% 46% 54% 46%}
.mvSet .p7{left:70.00%; top:23.44%; width:15.00%; height:48.91%; border-radius:48% 52% 44% 56% / 46% 56% 44% 54%}
.mvSet .p8{left:87.08%; top:50.00%; width:11.25%; height:44.38%; border-radius:54% 46% 50% 50% / 50% 44% 56% 50%}
.mvSet .b1{left:14.58%; top:67.19%; width:7.50%; height:17.19%; background:#CFE0CC; animation-delay:-2s}
.mvSet .b2{left:23.75%; top:39.06%; width:6.67%; height:14.84%; background:#F1E4BC; animation-delay:-4s}
.mvSet .b3{left:48.75%; top:18.75%; width:5.83%; height:14.06%; background:#F0D5C3; animation-delay:-1s}
.mvSet .b4{left:67.50%; top:62.50%; width:6.67%; height:15.63%; background:#E2E8C9; animation-delay:-3s}
.mvCatchWrap{position:absolute; inset:0; max-width:1480px; margin:0 auto; z-index:2; pointer-events:none}
.mvCatch{position:absolute; left:68.5%; top:84px}
.mvCatch::before{content:""; position:absolute; inset:-48px -64px; z-index:-1;
    background:rgba(250,246,236,.95); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
    border-radius:47% 53% 45% 55% / 52% 45% 55% 48%}
.mvCatch .v{writing-mode:vertical-rl;
    font-family:"Zen Old Mincho","游明朝","Yu Mincho","Hiragino Mincho ProN",serif; color:var(--head)}
.mvCatch .v h2{font-size:42px; font-weight:700; letter-spacing:.24em; line-height:1.5; margin-left:28px}
.mvCatch .v .lead{font-size:17px; letter-spacing:.26em; color:var(--ink); padding-top:14px}
@keyframes bob{
    0%,100%{transform:translateY(0) rotate(0deg);      border-radius:54% 46% 60% 40% / 45% 60% 40% 55%}
    33%    {transform:translateY(-7px) rotate(1.4deg); border-radius:44% 56% 48% 52% / 57% 43% 58% 42%}
    66%    {transform:translateY(4px) rotate(-1.2deg); border-radius:60% 40% 52% 48% / 41% 57% 43% 59%}
  }
.fadein{opacity:0; transform:translateY(14px) scale(.985);
    transition:opacity .95s var(--eOut), transform .95s var(--eOut)}
.fadein.in{opacity:1; transform:none}
.fadein.plain{transform:none}
.stag{opacity:0; transform:translateY(16px) scale(.98);
    transition:opacity .8s var(--eOut), transform .8s var(--eOut)}
.stag.in{opacity:1; transform:none}
.mahoroba-card{position:relative; z-index:2; width:min(1280px, calc(100% - 88px));
    margin:-44px auto 0; background:var(--brick); border-radius:10px;
    box-shadow:0 26px 60px rgba(150,80,40,.16);
    display:flex; align-items:center; gap:32px; padding:32px 44px; flex-wrap:wrap}
.mahoroba-card .badge{background:#fff; color:var(--brick); font-weight:700; font-size:15px;
    border-radius:999px; padding:8px 26px; white-space:nowrap}
.mahoroba-card .txt{flex:1; min-width:280px; color:#fff}
.mahoroba-card .txt p{font-weight:700; font-size:23px; letter-spacing:.08em; line-height:1.7}
.spbr{display:none}
@media (max-width:480px){ .spbr{display:inline} }
.mahoroba-card .txt small{display:block; font-size:15px; font-weight:400; opacity:.94; line-height:1.9}
.mahoroba-card .btn.white{white-space:nowrap}
.mcBtns{display:flex; flex-direction:column; gap:12px}
.mcBtns .mcForm{background:transparent; border:2px solid #fff; color:#fff; padding:16px 18px 16px 32px}
.mcBtns .mcForm .ar{background:#fff; color:var(--brick)}
.fvLink{text-align:center; margin:26px 0 0}
.fvLink a{display:inline-flex; align-items:center; gap:12px; color:#B45A09; font-weight:700;
    font-size:17px; border-bottom:2px solid var(--gold-line); padding-bottom:6px}
.fvLink .ar{width:26px; height:26px; border-radius:50%; background:var(--primary); color:#fff;
    display:flex; align-items:center; justify-content:center}
.message{padding:var(--secPad) 44px; overflow:hidden}
.message .secTitle{margin-bottom:80px}
.message .row{display:flex; align-items:center; gap:90px; margin:0 0 120px}
.message .row.rev{flex-direction:row-reverse}
.message .row .txt{flex:1; min-width:0}
.message .line{font-size:19px; line-height:2.4; letter-spacing:.12em; color:var(--ink)}
.message .row .vis{width:36%; flex:none; position:relative}
.message .vis .ph{overflow:hidden; aspect-ratio:1.08; position:relative; z-index:1;
    border-radius:44% 56% 50% 50% / 52% 46% 54% 48%}
.message .vis .ph img{width:100%; height:100%; object-fit:cover}
.message .vis .bean{position:absolute; z-index:0; border-radius:54% 46% 60% 40% / 45% 60% 40% 55%;
    animation:bob 16s ease-in-out infinite}
.message .vis .bn1{left:-38px; bottom:-26px; width:150px; height:92px; background:var(--mustard-soft)}
.message .vis .bn2{right:-32px; top:-22px; width:120px; height:76px; background:#F3D9C4; animation-delay:-3s}
.message .btnWrap{text-align:center; margin-top:80px}
.repRow{display:flex; align-items:center; justify-content:center; gap:26px; flex-wrap:wrap}
.repFace{width:76px; height:76px; border-radius:46% 54% 50% 50% / 52% 46% 54% 48%; object-fit:cover}
.repTxt{text-align:left; line-height:1.7}
.repTxt p{font-size:17px; color:var(--head)}
.repTxt strong{font-size:19px; letter-spacing:.08em}
.repTxt small{font-size:15px; color:var(--sub)}
.gallery{position:relative; overflow:hidden; height:600px; margin-top:40px}
.gallery .track{display:flex; height:100%; width:max-content;
    animation:slideG 55s linear infinite}
.gallery .col{display:flex; flex-direction:column; gap:14px; height:100%; width:var(--w,380px); flex:none; margin-right:14px}
.gallery .im{overflow:hidden; flex:1; border-radius:10px}
.gallery .col.duo .im:first-child{flex:none; height:38%}
.gallery img{width:100%; height:100%; object-fit:cover}
@keyframes slideG{to{transform:translateX(-50%)}}
.gpause{position:absolute; right:20px; bottom:16px; z-index:3; width:44px; height:44px; border-radius:50%;
    background:rgba(255,255,255,.92); border:1.5px solid var(--gold-line); color:var(--ink);
    font-size:13px; cursor:pointer; display:flex; align-items:center; justify-content:center}
.message .row.rev{margin-bottom:0}
.service{background:var(--beige); padding:var(--secPad) 44px}
.service::before{content:""; position:absolute; left:26px; bottom:210px; width:190px; height:118px; z-index:0;
    background:#E7DFC9; border-radius:46% 54% 58% 42% / 56% 44% 56% 44%; animation:bob 20s ease-in-out infinite}
.service .box{position:relative; z-index:1}
.service .box{display:grid; grid-template-columns:330px 1fr; gap:76px; align-items:start}
.service .side{position:sticky; top:110px}
.service .side .secTitle{margin-bottom:40px}
.service .stack{min-width:0}
.service .card.noLink{cursor:default}
.service .card.noLink .state{color:var(--sub)}
.service .card.noLink .state .ar{background:var(--sub)}
.service .card{position:sticky; top:110px; background:#fff; border-radius:10px; padding:46px 52px;
    display:flex; gap:52px; align-items:center; margin-bottom:40px;
    box-shadow:var(--shSoft)}
.service .card:nth-child(2){top:166px}
.service .card:nth-child(3){top:222px}
.service .card:nth-child(4){top:278px}
.service .card:nth-child(5){top:334px}
.service .card:nth-child(6){top:390px}
.service .card:nth-child(7){top:446px}
.service .card .info{flex:1; min-width:0}
.service .card h4{color:var(--c,var(--head)); font-size:27px; font-weight:700; line-height:1.6; margin:16px 0 10px; letter-spacing:.1em}
.service .card .text{font-size:17px; line-height:2.1}
.service .card .foot{display:flex; margin-top:22px}
.service .card .state{font-size:17px; font-weight:700; color:var(--c,var(--primary)); display:flex; align-items:center; gap:12px}
.service .card .state .ar{width:28px; height:28px; border-radius:50%; background:var(--c,var(--primary)); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:13px}
.service .card .state.gray{color:var(--sub)}
.service .card .state .ext{font-size:13px; border:1px solid currentColor; border-radius:4px; padding:0 7px}
.service .card .ph{width:37%; flex:none; aspect-ratio:1.12; overflow:hidden;
    border-radius:44% 56% 52% 48% / 50% 46% 54% 50%}
.service .card .ph img{width:100%; height:100%; object-fit:cover}
.service .card .ph.noimg{background:var(--base); display:flex; align-items:center;
    justify-content:center; color:var(--sub); font-weight:700; font-size:15px; letter-spacing:.12em}
.news{background:#fff; padding:var(--secPad) 44px; overflow:hidden}
.news::before{content:""; position:absolute; right:-38px; top:340px; width:172px; height:110px; z-index:0;
    background:#F4EDDD; border-radius:58% 42% 46% 54% / 44% 56% 44% 56%; animation:bob 18s ease-in-out infinite}
.news .box{position:relative; z-index:1}
.news .head{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; margin-bottom:50px}
.news .head .secTitle{margin-bottom:0}
.news .titleWrap{display:flex; align-items:center; gap:26px}
.btn.small{padding:10px 14px 10px 24px; font-size:15px; border-radius:6px}
.btn.small .ar{width:24px; height:24px; font-size:13px}
.news .cats{background:var(--base); border-radius:6px; padding:6px 26px; display:flex; gap:28px;
    font-size:15px; font-weight:700; flex-wrap:wrap}
.news .cats a{position:relative; padding:10px 4px}
.news .cats a:hover{color:var(--primary)}
.news .cards{display:grid; grid-template-columns:repeat(3,1fr); gap:36px}
.news .card{display:flex; gap:14px}
.news .card .vlab{writing-mode:vertical-rl; font-size:15px; font-weight:700; color:var(--c,var(--sub));
    letter-spacing:.22em; padding-top:4px}
.news .card .bd{flex:1}
.news .card .thumb{display:block; border-radius:14px 10px 14px 10px; overflow:hidden; aspect-ratio:4/3; margin-bottom:16px;
    transform:translateZ(0)}
.news .cards .card:nth-child(2n) .thumb{border-radius:10px 14px 10px 14px}
.news .card .title{display:block}
.news .card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--eOut)}
.news .card:hover .thumb img{transform:scale(1.05)}
.news .card .title{font-size:17px; line-height:1.95; color:var(--head); font-weight:700}
.news .card:hover .title{color:var(--primary)}
.news .card .meta{display:flex; justify-content:space-between; align-items:center; margin-top:12px}
.news .card .date{color:var(--sub); font-size:15px; letter-spacing:.06em}
.insta{padding:var(--secPad) 44px; text-align:center; position:relative; overflow:hidden}
.insta::before{content:""; position:absolute; top:128px; left:50%; transform:translateX(-120px); width:150px; height:104px;
    background:var(--mustard-soft); border-radius:60% 40% 52% 48% / 44% 58% 42% 56%; z-index:0}
.insta .box{position:relative; z-index:1}
.insta .grid{display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:8px}
.insta .grid .im{overflow:hidden; border-radius:10px; aspect-ratio:1/1}
.insta .grid .im:nth-child(2n){border-radius:46% 54% 48% 52% / 52% 46% 54% 48%}
.insta .grid img{width:100%; height:100%; object-fit:cover}
.insta .account{margin-top:26px; font-size:15px; color:var(--sub); letter-spacing:.1em}
.contact{position:relative; padding:var(--secPadEmph) 44px; text-align:center;
    background:url(../images/mainV.jpg) center/cover no-repeat}
.contact::before{content:""; position:absolute; inset:0; background:rgba(250,244,230,.82)}
.contact .box{position:relative; z-index:2}
.contact .cw{position:absolute; left:0; width:100%; height:70px; z-index:1}
.contact .cwTop{top:-1px; transform:scaleY(-1)}
.contact .cwBottom{bottom:-1px}
.contact .lead{font-weight:700; font-size:19px; margin:-24px 0 50px; letter-spacing:.08em; color:var(--head)}
.contact .links{display:flex; gap:26px; max-width:1280px; margin:0 auto; align-items:stretch}
.contact .links > a{flex:1; background:#fff; border-radius:10px; padding:40px 20px;
    display:flex; flex-direction:column; justify-content:center; gap:6px;
    transition:transform .45s var(--eOut), box-shadow .45s var(--eOut)}
.contact .links > a:hover{transform:translateY(-5px); box-shadow:0 24px 52px rgba(190,130,50,.15)}
.contact .formBtn .label{font-weight:700; font-size:19px; color:var(--head); display:flex; align-items:center; justify-content:center; gap:16px}
.contact .formBtn .label .ar{width:30px; height:30px; border-radius:50%; background:var(--primary); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:15px}
.contact .formBtn small{font-size:15px; color:var(--sub)}
.contact .mahoForm .label{color:var(--brick); font-size:19px}
.contact .mahoForm .label .ar{background:var(--brick)}
.contact .telBox .label{font-size:15px; font-weight:700; color:var(--head)}
.contact .telBox .num{color:#B45A09; font-size:34px; font-weight:700; letter-spacing:.03em; line-height:1.4}
.contact .telBox .time{font-size:15px; color:var(--sub)}
.access{padding:var(--secPad) 44px; overflow:hidden}
.access::before{content:""; position:absolute; left:-40px; top:60px; width:170px; height:108px; z-index:0;
    background:#EFE7D4; border-radius:52% 48% 42% 58% / 46% 58% 42% 54%; animation:bob 22s ease-in-out infinite}
.access .box{position:relative; z-index:1}
.access .secTitle{margin-bottom:44px}
.acRow{display:flex; gap:70px; align-items:stretch}
.acInfo{width:46%; font-size:17px; line-height:2.2}
.acInfo p{margin-bottom:14px}
.acName{font-size:19px; font-weight:700; color:var(--head)}
.acTel{color:var(--primary); font-size:27px; font-weight:700; letter-spacing:.02em}
.acTelRow small{color:var(--sub); font-size:15px}
.acNote{color:var(--sub); font-size:15px}
.acMap{flex:1; background:#fff; border-radius:10px; min-height:260px; overflow:hidden}
.acMap iframe{width:100%; height:100%; min-height:300px; display:block}
footer{padding:70px 44px 44px; background:var(--head)}
footer .box{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap}
footer .logo{display:inline-block; background:#fff; border-radius:10px; padding:14px 22px; margin-bottom:20px; line-height:0}
footer .logo img{width:260px}
footer .text{font-size:15px; color:#F4EDE1; line-height:2.2}
footer nav ul{display:flex; gap:22px; font-size:15px; font-weight:700; flex-wrap:wrap; color:#fff}
footer nav a{display:inline-block; padding:8px 4px}
footer nav a:hover{color:#FFD9A6}
footer .sub{margin-top:14px; font-size:15px}
footer .sub a{color:#E9DECC}
footer .copy{margin:48px 0 8px; font-size:13px; color:#D9CBB4; text-align:center; width:100%}
@media (max-width:1024px){ body{font-size:17px} .menuBox{padding:18px 20px} .menuBox .logo img{width:220px} .gnav ul{gap:16px; font-size:13px} .gnav .tel .time{display:none} .gnav .tel .num{font-size:17px} .mv{--setW:1400px; --setH:400px; --mvDur:95s;
      height:auto; display:flex; flex-direction:column} .mvView{position:relative; inset:auto; width:100%; height:var(--setH)} .mvCatchWrap{position:static; order:-1; max-width:none; pointer-events:auto} .mvCatch{position:static; display:flex; justify-content:center; padding:16px 0 10px} .mvCatch::before{display:none} .mvCatch .v h2{font-size:27px; margin-left:22px} .mvCatch .v .lead{font-size:15px} .message{padding:80px 26px 70px} .message .row{display:block; margin-bottom:80px} .message .row .vis{width:72%; margin:36px auto 0} .message .line{font-size:17px} .message .btnWrap{margin-top:50px} .gallery{height:340px; margin-top:20px} .gallery .col{width:calc(var(--w,380px)*.55)} .gallery .col{gap:6px; margin-right:6px} .news .cards{grid-template-columns:1fr; gap:26px} .news .cats{padding:12px 20px; gap:18px; font-size:13px} .service .box{display:block} .service .side{position:static; margin-bottom:36px} .service .card{position:static; flex-direction:column-reverse; gap:24px; padding:28px 24px} .service .card .ph{width:100%; aspect-ratio:1.6} .service .card h4{font-size:23px} .insta .grid{grid-template-columns:repeat(2,1fr)} .insta .grid .im:nth-child(5){display:none} .contact .links{flex-direction:column; gap:20px} .secTitle h3{font-size:27px} .mahoroba-card{margin:26px auto 0; padding:24px 26px; gap:18px; width:calc(100% - 48px)} }
.hbg{display:none; flex-direction:column; justify-content:center; gap:6px; width:52px; height:52px;
    border:none; border-radius:6px; background:var(--primary); cursor:pointer; flex:none}
.hbg span{display:block; width:24px; height:2.5px; background:#fff; border-radius:4px; margin:0 auto}
.spMenu{display:none; position:fixed; inset:0; z-index:200; background:var(--base); padding:70px 30px 40px; overflow-y:auto}
.spMenu.openM{display:block}
.spClose{position:absolute; top:18px; right:18px; width:48px; height:48px; border:none; border-radius:50%;
    background:#fff; font-size:23px; color:var(--head); cursor:pointer}
.spMenu .spLabel{font-size:13px; font-weight:700; color:var(--gold); letter-spacing:.2em; margin:26px 0 6px}
.spMenu nav a{display:block; padding:14px 4px; font-size:17px; font-weight:700; color:var(--head);
    border-bottom:2px dotted var(--dot)}
.spMenu .spTel{margin-top:26px; border:none; color:#B45A09; font-size:23px}
.spMenu .spTel small{display:block; font-size:15px; color:var(--sub); font-weight:500}
.spBar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:150}
.sb{display:flex; align-items:center; justify-content:center; gap:7px}
@media (max-width:768px){ .gnav{display:none} .hbg{display:flex} .menuBox{padding:14px 18px} .menuBox .logo img{width:190px} .mv{--setW:950px; --setH:370px; --mvDur:70s} .mvCatch{padding:14px 0 4px} .mvCatch .v h2{font-size:27px; margin-left:20px} .mvCatch .v .lead{font-size:15px} .mahoroba-card{margin:26px auto 0; padding:26px 20px; gap:14px; width:calc(100% - 40px);
      flex-direction:column; align-items:stretch} .mahoroba-card .badge{align-self:flex-start} .mahoroba-card .txt{min-width:0} .mahoroba-card .txt p{font-size:19px} .fvLink a{font-size:15px; padding:10px 4px 8px} .btn{font-size:17px; padding:20px 22px 14px 24px; gap:12px; white-space:normal; text-align:left} .btn .ar{width:26px; height:26px; font-size:13px} .news .titleWrap{flex-wrap:wrap; gap:14px} .service, .news{padding-left:20px; padding-right:20px} .service .card{position:static; padding:26px 20px} .service .card .ph{aspect-ratio:1.7} .contact{background:var(--warmband); padding:100px 26px 110px} .contact::before{display:none} .spBar{display:flex; gap:2px; background:var(--head)} .sb{flex:1; padding:16px 0 calc(16px + env(safe-area-inset-bottom, 0px)); font-size:15px; font-weight:700; color:#fff} .sbTel{background:var(--primary)} .sbMaho{background:var(--brick)} .sbForm{background:var(--head)} footer{padding-bottom:150px} .message .line br{display:none} .mcBtns{width:100%} .acRow{display:block} .acInfo{width:100%; margin-bottom:26px} .acMap{min-height:220px} .acMap iframe{min-height:220px} .repRow{gap:16px} }
@media (prefers-reduced-motion:reduce){ *{transition:none !important; animation:none !important} html{scroll-behavior:auto} .fadein{opacity:1; transform:none} }
.qr{display:flex; align-items:center; justify-content:center; margin-top:14px}
.qr img{width:124px; height:124px; display:block; background:#fff; border-radius:8px; padding:12px; flex:none}
.lineBand .qr{margin-top:0; flex:none}
.lineBand .qr small{color:rgba(255,255,255,.85)}
@media (max-width:768px){ .qr{display:none} }
.gnav li.hasChild::after{content:""; position:absolute; left:-20px; right:0; top:100%; height:12px}
.service .card .state .ext{white-space:nowrap}
.service a.card{transition:transform .45s var(--eOut), box-shadow .45s var(--eOut)}
.service a.card:hover{transform:translateY(-5px); box-shadow:var(--shLift)}
.service a.card:hover h4{color:#B45A09}
.service .card .ph img{transition:transform .7s var(--eOut)}
.service a.card:hover .ph img{transform:scale(1.05)}
.fvLink a{transition:color .3s}
.fvLink a:hover{color:var(--primary)}
:root{--lineG:#06C755}
.lineIc{flex:none}
.lineBtn{display:inline-flex; align-items:center; justify-content:center; gap:12px;
  background:var(--lineG); color:#fff; font-size:19px; font-weight:700; letter-spacing:.02em;
  padding:20px 38px; border-radius:10px; box-shadow:0 14px 30px rgba(6,199,85,.24);
  transition:transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s}
.lineBtn:hover{transform:translateY(-4px); box-shadow:0 22px 44px rgba(6,199,85,.32); color:#fff}
.lineBand{margin:38px auto 0; max-width:940px; background:#fff; border:2px solid #CBEBD8;
  border-radius:12px; padding:32px 36px; display:flex; align-items:center; gap:32px; text-align:left}
.lineBand .txt{flex:1}
.lineBand .ttl{display:flex; align-items:center; gap:14px; font-size:21px; font-weight:700;
  color:var(--head); line-height:1.5}
.lineBand .badge{display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px;
  border-radius:12px; background:var(--lineG); color:#fff; flex:none}
.lineBand .note{font-size:15px; line-height:1.95; color:var(--ink); margin-top:12px}
.lineBand .lineBtn{flex:none}
.apply .way.wayLine .go{color:var(--lineG)}
.apply .way.wayLine .go .ar{background:var(--lineG)}
.spBar .sbLine{background:var(--lineG); color:#fff}
.spMenu .spLine{margin-top:14px; border:none; color:var(--lineG); font-size:19px; font-weight:700}
.spMenu .spLine small{display:block; font-size:15px; color:var(--sub); font-weight:500}
@media screen and (max-width:900px){ .lineBand{flex-direction:column; align-items:stretch; gap:22px; padding:26px 22px; margin-top:26px} .lineBand .ttl{font-size:19px} .lineBand .lineBtn{width:100%; font-size:17px; padding:18px 20px} }
@media screen and (max-width:767px){ .spBar .sb{font-size:14px; gap:5px} }
