: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;
    
    --eOut:cubic-bezier(.22,.61,.36,1);
    
    --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;
  }
@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; height:auto}
a{text-decoration:none; color:inherit}
ul{list-style:none}
html{scroll-behavior:smooth; scroll-padding-top:20px; scroll-padding-bottom:110px}
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)}
.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}
.wave + section{padding-top:var(--secPadWave)}
section:not(.pageHero):has(+ .wave){padding-bottom:var(--secPadWave)}
#apply{padding-bottom:var(--secPadWave)}
.mSec:not(.beige):not(.white) + .mSec:not(.beige):not(.white),
  .mSec.beige + .mSec.beige,
  .mSec.white + .mSec.white,
  .concept + .mSec:not(.beige):not(.white){padding-top:var(--secPadIn)}
.wave + footer{margin-top:-1px}
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:15px; 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:110px 44px 90px; 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:80px 44px 120px}
.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 .nums{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:48px; max-width:300px}
.service .nums span{border:1.5px solid var(--gold-line); color:var(--gold); font-size:15px; font-weight:700;
    border-radius:6px; padding:3px 17px; letter-spacing:.2em; transition:.45s var(--eOut)}
.service .nums span.on{background:#fff; color:var(--c,var(--gold)); border-color:var(--c,var(--gold-line))}
.service .stack{min-width:0}
.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 .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:80px 44px 160px; 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:120px 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:160px 44px 160px; 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:20px 44px 120px; 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 a{display:inline-block; padding:12px 0}
footer .sub{margin-top:14px; font-size:15px}
footer .sub a{color:#E9DECC}
footer .copy{font-size:15px; margin:48px 0 8px; font-size:15px; color:#D9CBB4; text-align:center; width:100%}
.pageHero.nw{padding:var(--secPad) 44px var(--secPadWave)}
.pageHero.nw .bg::after{background:linear-gradient(100deg, rgba(48,36,22,.86) 0%, rgba(48,36,22,.7) 100%)}
.pageHero.nw .status{background:var(--gold)}
.catsPage{display:flex; flex-wrap:wrap; gap:10px; background:none; padding:0; margin-bottom:34px}
.catsPage a{display:inline-flex; align-items:center; gap:8px; min-height:46px; padding:10px 22px;
    background:#fff; border:1.5px solid var(--gold-line); border-radius:999px;
    font-size:15px; font-weight:700; color:var(--head); transition:.45s var(--eOut)}
.catsPage a:hover{border-color:var(--c,var(--primary)); color:var(--c,var(--primary))}
.catsPage a.on{background:var(--head); border-color:var(--head); color:#fff}
.catsPage .ct{font-size:13px; font-weight:500; opacity:.75}
.newsList{display:grid; gap:18px}
.nItem{display:grid; grid-template-columns:260px minmax(0,1fr); gap:30px; align-items:center;
    background:#fff; border-radius:10px; padding:22px 30px 22px 22px;
    box-shadow:var(--shSoft); transition:transform .45s var(--eOut), box-shadow .45s var(--eOut)}
.nItem:hover{transform:translateY(-4px); box-shadow:var(--shLift)}
.nItem .th{display:block; overflow:hidden; border-radius:10px; aspect-ratio:4/3}
.nItem .th img{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--eOut)}
.nItem:hover .th img{transform:scale(1.05)}
.nItem .bd{display:block}
.nItem .m{display:flex; align-items:center; gap:14px; margin-bottom:12px}
.nItem .date{font-size:15px; color:var(--sub); letter-spacing:.06em}
.nItem .ttl{display:block; font-size:19px; font-weight:700; color:var(--head); line-height:1.7}
.nItem:hover .ttl{color:var(--c,var(--primary))}
.nItem .ex{display:block; margin-top:12px; font-size:15px; line-height:1.95; color:var(--ink)}
.newsList.three{grid-template-columns:repeat(3,1fr)}
.newsList.three .nItem{grid-template-columns:1fr; padding:18px}
.newsList.three .th{aspect-ratio:16/10; margin-bottom:16px}
.newsList.three .ttl{font-size:17px}
.listNote{margin-top:26px; font-size:15px; color:var(--ink); line-height:1.9}
.pager{display:flex; gap:10px; justify-content:center; margin-top:44px; flex-wrap:wrap}
.pg{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-width:48px; min-height:48px;
    padding:0 16px; background:#fff; border:1.5px solid var(--gold-line); border-radius:6px;
    font-size:17px; font-weight:700; color:var(--head); transition:.45s var(--eOut)}
.pg:hover{border-color:var(--primary); color:var(--primary)}
.pg.on{background:var(--head); border-color:var(--head); color:#fff}
.pg.next{padding:0 22px}
.pg .ar{width:24px; height:24px; border-radius:50%; background:var(--primary); color:#fff;
    display:flex; align-items:center; justify-content:center}
.artHead{padding:var(--secPad) 44px 0}
.artHead .box{max-width:var(--readW)}
.crumbFoot{padding:34px 44px; background:var(--beige)}
.crumbFoot .box{max-width:var(--readW); display:flex; flex-wrap:wrap; align-items:center; gap:10px;
    font-size:15px; color:var(--sub); line-height:1.9}
.crumbFoot a{color:var(--ink); border-bottom:1px solid var(--sub); padding:6px 0}
.crumbFoot a:hover{color:var(--primary); border-color:var(--primary)}
.crumbFoot .sp{color:var(--sub)}
.crumbFoot .now{color:var(--sub)}
@media (max-width:1024px){ .crumbFoot{padding:28px 26px} }
@media (max-width:768px){ .crumbFoot{padding:22px 20px; font-size:13px} .crumbFoot .box{gap:8px} }
.artHead .m{display:flex; align-items:center; gap:16px; margin-bottom:20px}
.artHead .date{font-size:15px; color:var(--sub); letter-spacing:.06em}
.artHead h1{font-family:"Zen Old Mincho","游明朝","Yu Mincho",serif; font-size:34px; font-weight:700;
    color:var(--head); letter-spacing:.06em; line-height:1.6}
.mSec.tightTop{padding-top:var(--secPadWave)}
.artBox{max-width:var(--readW)}
.artPage .mSec .box{max-width:var(--readW)}
.artMain{margin-bottom:80px}
.artMain img{width:100%; height:auto; border-radius:10px}
.artMain figcaption{margin-top:20px; font-size:15px; color:var(--ink); line-height:1.9}
.artBody h2{font-size:23px; font-weight:700; color:var(--head); letter-spacing:.06em; line-height:1.6;
    margin:80px 0 20px; padding-left:18px; border-left:5px solid var(--primary)}
.artBody h2:first-child{margin-top:0}
.artBody p{font-size:17px; line-height:2.1}
.artBody p + p{margin-top:40px}
.artBody ul{margin:40px 0; display:grid; gap:20px}
.artBody ul li{position:relative; padding-left:26px; font-size:17px; line-height:1.95}
.artBody ul li::before{content:""; position:absolute; left:4px; top:12px; width:9px; height:9px;
    border-radius:50%; background:var(--primary)}
.artBox2{margin:60px 0; background:#fff; border:1.5px solid var(--gold-line); border-radius:10px;
    padding:26px 30px; display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap}
.artBox2 .t{font-size:17px; line-height:1.9; flex:1; min-width:260px}
.artNav{display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:center; margin-top:var(--secPad)}
.artNav a{background:#fff; border-radius:10px; padding:26px 30px; box-shadow:var(--shSoft);
    transition:.45s var(--eOut)}
.artNav a:hover{transform:translateY(-3px)}
.artNav .lb{display:block; font-size:13px; font-weight:700; color:var(--gold); letter-spacing:.1em; margin-bottom:8px}
.artNav .t{font-size:15px; font-weight:700; color:var(--head); line-height:1.7}
.artNav .nx{text-align:right}
.artNav .bk{display:flex; align-items:center; justify-content:center; min-height:48px; padding:0 26px;
    background:var(--head); color:#fff; font-size:15px; font-weight:700; border-radius:999px; box-shadow:none}
@media (max-width:1024px){ .pageHero.nw{padding:var(--secPad) 26px var(--secPadWave)} .artHead{padding:var(--secPad) 26px 0} .artHead h1{font-size:27px} .nItem{grid-template-columns:200px minmax(0,1fr); gap:22px} .newsList.three{grid-template-columns:1fr 1fr} .artNav{grid-template-columns:1fr; } .artNav .nx{text-align:left} }
@media (max-width:768px){ .artMain{margin-bottom:60px} .artBody p + p{margin-top:32px} .artBody ul{margin:32px 0} .artBox2{margin:40px 0} .pageHero.nw{padding:var(--secPad) 20px var(--secPadWave)} .artHead{padding:var(--secPad) 20px 0} .artHead h1{font-size:23px} .artHead .crumb{font-size:13px} .nItem{grid-template-columns:1fr; padding:18px; gap:16px} .nItem .th{aspect-ratio:16/10} .nItem .ttl{font-size:19px} .newsList.three{grid-template-columns:1fr} .artBody h2{font-size:19px; margin:60px 0 20px} .artBody p{font-size:17px} .artBox2{padding:20px} .catsPage a{font-size:15px; padding:10px 16px} }
@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 .nums{display:none} .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:15px; 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}
.spBar .sbTel{order:3; box-shadow:inset 8px 0 0 -6px rgba(255,255,255,.55)}
@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} }
.pageHero{position:relative; overflow:hidden;
    padding:var(--heroPadT) 44px var(--heroPadB); color:#fff; text-align:left}
.pageHero .bg{position:absolute; inset:0; z-index:0}
.pageHero .bg img{width:100%; height:100%; object-fit:cover}
.pageHero .bg::after{content:""; position:absolute; inset:0;
    background:linear-gradient(100deg, rgba(58,28,14,.82) 0%, rgba(58,28,14,.62) 48%, rgba(58,28,14,.40) 100%)}
.pageHero .box{position:relative; z-index:2}
.pageHero .crumb{font-size:15px; letter-spacing:.1em; opacity:.9; margin-bottom:30px}
.pageHero .crumb a{display:inline-block; padding:11px 2px; border-bottom:1px solid rgba(255,255,255,.5)}
.pageHero .kind{font-size:17px; font-weight:700; letter-spacing:.18em; margin-bottom:10px}
.pageHero h1{font-family:"Zen Old Mincho","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:60px; font-weight:700; letter-spacing:.1em; line-height:1.35}
.pageHero .status{display:inline-flex; align-items:center; gap:14px; margin-top:24px;
    background:var(--brick); border-radius:999px; padding:10px 28px; font-weight:700; font-size:17px}
.pageHero .status .dot{width:9px; height:9px; border-radius:50%; background:#FFD9A6}
.pageHero .heroBtns{display:flex; gap:16px; flex-wrap:wrap; margin-top:36px}
.pageHero .btn.white{background:#fff; color:var(--brick)}
.pageHero .btn.line{background:rgba(30,14,6,.42); border:2px solid rgba(255,255,255,.85); color:#fff;
    padding:16px 18px 16px 32px}
.pageHero .btn.line .ar{background:#fff; color:var(--brick)}
.jumpNav{display:flex; flex-wrap:wrap; gap:12px; margin-top:44px; max-width:940px}
.jumpNav a{display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:9px 18px;
    font-size:15px; letter-spacing:.06em; color:#fff; border:1px solid rgba(255,255,255,.42);
    border-radius:6px; background:rgba(30,14,6,.28);
    transition:background .45s var(--eOut), border-color .45s var(--eOut)}
.jumpNav a:hover{background:rgba(30,14,6,.5); border-color:#fff}
.jumpNav svg{flex:none}
.mSec{padding:var(--secPad) 44px}
.mSec.emph{padding:var(--secPadEmph) 44px}
.mSec .box{max-width:var(--contentW)}
.mSec.beige{background:var(--beige)}
.mSec.white{background:#fff}
.concept{text-align:center; padding:var(--secPad) 44px}
.concept .cCatch{font-family:"Zen Old Mincho","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:42px; font-weight:700; color:var(--head); letter-spacing:.14em; line-height:1.75}
.concept .cCatch em{font-style:normal; color:var(--brick)}
.concept .cText{margin-top:28px; font-size:17px; line-height:2.1}
.reasons{display:grid; grid-template-columns:repeat(3,1fr); gap:28px}
.reason{background:#fff; border-radius:10px; padding:32px 32px 30px;
    box-shadow:var(--shSoft);
    display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; align-content:start;
    column-gap:16px; grid-template-areas:"no no" "ic ttl" "txt txt"}
.reason .no{grid-area:no; justify-self:start; font-size:15px; font-weight:700; letter-spacing:.16em;
    color:var(--brick); border:1.5px solid #E4C3B2; border-radius:999px; padding:2px 16px; margin-bottom:20px}
.reason .ic{grid-area:ic; color:var(--brick); line-height:0}
.reason h4{grid-area:ttl; font-size:19px; font-weight:700; color:var(--head); letter-spacing:.06em; line-height:1.55;
    min-height:2.2em; display:flex; align-items:center}
.reason p{grid-area:txt; font-size:17px; line-height:2.05; margin-top:16px}
.notice{position:relative; background:#fff; border:2.5px solid var(--brick); border-radius:14px;
    padding:46px 52px; box-shadow:var(--shLift)}
.notice .tag{position:absolute; top:-19px; left:44px; background:var(--brick); color:#fff;
    font-size:15px; font-weight:700; letter-spacing:.14em; border-radius:999px; padding:6px 24px}
.notice h3{font-size:34px; font-weight:700; color:var(--brick); letter-spacing:.08em; line-height:1.55}
.notice .sub{margin-top:16px; font-size:17px; line-height:2.0}
.notice .rows{margin-top:26px; display:grid; gap:12px}
.notice .rows li{display:flex; gap:14px; align-items:flex-start; font-size:17px; line-height:1.95}
.notice .rows .mk{flex:none; margin-top:5px; width:20px; height:20px; border-radius:50%;
    background:var(--brick); color:#fff; font-size:13px; display:flex; align-items:center; justify-content:center}
.notice.plain{border-color:var(--gold-line)}
.notice.plain .tag{background:var(--gold)}
.notice.plain h3{color:var(--head); font-size:27px}
.duo{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center}
.duo.rev{direction:rtl}
.duo.rev > *{direction:ltr}
.duo .vis{position:relative}
.duo .vis .ph{overflow:hidden; aspect-ratio:1.24;
    border-radius:44% 56% 50% 50% / 52% 46% 54% 48%}
.duo .vis .ph img{width:100%; height:100%; object-fit:cover}
.duo .vis .bean{position:absolute; z-index:-1; border-radius:54% 46% 60% 40% / 45% 60% 40% 55%;
    animation:bob 16s ease-in-out infinite}
.duo .vis .bn1{left:-36px; bottom:-24px; width:148px; height:92px; background:var(--mustard-soft)}
.duo .vis .bn2{right:-30px; top:-20px; width:118px; height:74px; background:#F3D9C4; animation-delay:-6s}
.duo h3{font-size:27px; font-weight:700; color:var(--head); letter-spacing:.06em; line-height:1.6; margin-bottom:20px}
.duo p{font-size:17px; line-height:2.05}
.duo .pts{margin-top:22px; display:grid; gap:10px}
.duo .pts li{display:flex; gap:12px; font-size:17px; line-height:1.95}
.duo .pts .mk{flex:none; margin-top:8px; width:9px; height:9px; border-radius:50%; background:var(--brick)}
.duo .cap{margin-top:16px; font-size:15px; color:var(--sub)}
.costBox .cap{font-size:15px; color:var(--sub); line-height:1.9; margin-top:auto}
.roomsTop{display:grid; grid-template-columns:1.15fr .85fr; gap:30px; align-items:start; margin-bottom:34px}
.floorsFig{margin:0}
.floorImgs{display:flex; gap:26px; justify-content:center; align-items:flex-start}
.floorImgs > div{text-align:center}
.floorImgs img{height:380px; width:auto; max-width:100%; border-radius:6px}
.floorImgs span{display:block; margin-top:10px; font-size:15px; font-weight:700; color:var(--head); letter-spacing:.1em}
.floorImgs span small{display:block; margin-top:4px; font-size:15px; font-weight:700; color:var(--brick); letter-spacing:.04em}
.roomTypes{display:grid; gap:18px; align-content:start}
.roomsNote{font-size:17px; line-height:1.9; color:var(--ink)}
.roomType{background:#fff; border-radius:10px; padding:26px 30px; display:flex; align-items:center;
    gap:22px; box-shadow:var(--shSoft)}
.roomType .area{font-family:"Zen Old Mincho",serif; font-size:34px; font-weight:700; color:var(--brick); line-height:1.1; white-space:nowrap; flex:none}
.roomType .area small{font-size:17px; margin-left:4px}
.roomType .d strong{display:block; font-size:19px; color:var(--head); letter-spacing:.08em}
.roomType .d span{font-size:15px; color:var(--sub)}
.figs{display:grid; grid-template-columns:repeat(2,1fr); gap:26px}
.figs.four{grid-template-columns:repeat(4,1fr); margin-top:0}
.fig figcaption small{display:block; margin-top:6px; font-size:15px; font-weight:700; color:var(--brick)}
.fig a{display:block}
.fig{background:#fff; border-radius:10px; padding:22px; box-shadow:var(--shSoft)}
.fig img{width:100%; height:auto; border-radius:6px}
.fig figcaption{margin-top:14px; font-size:15px; font-weight:700; color:var(--head); letter-spacing:.08em; text-align:center}
.subTitle{display:flex; align-items:center; gap:18px; margin:0 0 20px;
    font-size:19px; font-weight:700; color:var(--head); letter-spacing:.12em; white-space:nowrap}
.subTitle::after{content:""; flex:1; height:1px; background:var(--gold-line)}
.subTitle.gap{margin-top:72px}
.priceLead{margin-bottom:28px}
.incBox{display:flex; align-items:center; gap:26px; background:#fff;
    border:1.5px solid #E4C3B2; border-radius:10px; padding:18px 26px}
.incBox .inc{flex:none; font-size:15px; font-weight:700; color:var(--brick);
    letter-spacing:.08em; line-height:1.6; padding-right:26px; border-right:1.5px dotted #E4C3B2}
.incList{display:flex; flex-wrap:wrap; align-items:center; gap:6px 0}
.incList li{font-size:15px; font-weight:700; color:var(--head); letter-spacing:.04em; white-space:nowrap}
.incList li + li::before{content:"／"; color:#D9BCA9; font-weight:500; margin:0 12px}
.priceLead .note{margin-top:14px; font-size:15px; color:var(--sub); line-height:1.9}
.pTable{width:100%; border-collapse:separate; border-spacing:0; background:#fff;
    border-radius:10px; overflow:hidden; box-shadow:var(--shSoft)}
.pTable th,.pTable td{padding:21px 24px; font-size:17px; text-align:right; border-bottom:1px solid #EFE6D4}
.pTable th:first-child,.pTable td:first-child{text-align:left}
.pTable thead th{background:var(--beige); color:var(--head); font-weight:700; font-size:15px; letter-spacing:.08em}
.pTable tbody tr:last-child td{border-bottom:none}
.pTable td.total{font-weight:700; color:var(--brick)}
.pTable .rm{font-weight:700; color:var(--head)}
.costList{display:flex; flex-direction:column; gap:40px}
.costItem{display:grid; grid-template-columns:300px minmax(0,1fr); gap:48px; align-items:start}
.costHead .n{display:block; font-family:"Zen Old Mincho",serif; font-size:42px; font-weight:700;
    color:var(--brick); line-height:1; letter-spacing:.02em}
.costHead h4{margin-top:16px; padding-bottom:18px; border-bottom:2px solid var(--gold-line);
    font-size:23px; font-weight:700; color:var(--head); letter-spacing:.06em; line-height:1.6}
.costHead h4 small{display:block; margin-top:8px; font-size:15px; font-weight:500; color:var(--sub); letter-spacing:.08em}
.costBody{background:#fff; border-radius:10px; padding:14px 36px; box-shadow:var(--shSoft)}
.costBody dl{font-size:17px}
.costBody dl > div{display:flex; justify-content:space-between; align-items:baseline; gap:24px;
    padding:15px 0; border-bottom:1px dotted #EBE0CB}
.costBody dl > div:last-child{border-bottom:none}
.costBody dt{color:var(--ink); line-height:1.75}
.costBody dd{text-align:right; font-weight:700; color:var(--head); white-space:nowrap; flex:none}
.costBody .sum{margin:8px 0 20px; background:#FBF6EA; border-radius:6px; padding:0 22px}
.costBody .sum dl{font-size:17px}
.costBody .sum dl > div{padding:15px 0; border-bottom:none}
.costBody .sum dd{color:var(--brick); font-size:23px}
.costBody .cap{padding:0 0 22px; font-size:15px; color:var(--sub); line-height:1.9}
.conds{display:grid; grid-template-columns:repeat(2,1fr); gap:20px}
.cond{display:flex; gap:18px; align-items:flex-start; background:#fff; border-radius:10px; padding:26px 30px;
    box-shadow:var(--shSoft)}
.cond .ck{flex:none; width:30px; height:30px; border-radius:6px; background:var(--brick); color:#fff;
    display:flex; align-items:center; justify-content:center}
.cond p{font-size:17px; font-weight:700; color:var(--head); line-height:1.7}
.cond p small{display:block; font-weight:500; font-size:15px; color:var(--sub); margin-top:5px; line-height:1.8}
.midCta{margin-top:var(--secPad); background:#fff; border:2px solid var(--gold-line); border-radius:10px;
    overflow:hidden; display:grid; grid-template-columns:36% minmax(0,1fr); align-items:stretch}
.midCta .ph{display:block; position:relative; min-height:200px}
.midCta .ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.midCta .inner{padding:32px 36px; display:flex; flex-direction:column; justify-content:center; gap:20px}
.midCta .t{font-size:19px; font-weight:700; color:var(--head); line-height:1.75}
.midCta .b{display:flex; gap:14px; flex-wrap:wrap}
.midCta .btn{background:var(--brick); font-size:17px; padding:14px 18px 14px 26px}
.midCta .btn .ar{color:var(--brick)}
.midCta .btn.ghost{background:transparent; border:2px solid var(--brick); color:var(--brick)}
.midCta .btn.ghost .ar{background:var(--brick); color:#fff}
@media (max-width:1024px){ .midCta{grid-template-columns:1fr} .midCta .ph{min-height:0; aspect-ratio:16/7} .midCta .inner{padding:26px 26px 28px} }
@media (max-width:768px){ .midCta .inner{padding:22px 20px 24px} .midCta .t{font-size:17px} .midCta .b{flex-direction:column} .midCta .btn{justify-content:space-between; width:100%} }
.flow{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.step{position:relative; background:#fff; border-radius:10px; padding:30px 26px; text-align:center;
    box-shadow:var(--shSoft)}
.step::after{content:""; position:absolute; right:-13px; top:50%; width:14px; height:14px; z-index:2;
    border-right:2.5px solid var(--gold); border-bottom:2.5px solid var(--gold); transform:translateY(-50%) rotate(-45deg)}
.step:last-child::after{display:none}
.step .n{font-size:15px; font-weight:700; letter-spacing:.16em; color:var(--gold)}
.step h4{font-size:19px; font-weight:700; color:var(--head); letter-spacing:.08em; margin:10px 0 8px}
.step .when{font-size:15px; color:var(--sub)}
.step.last{background:var(--brick)}
.step.last .n,.step.last h4,.step.last .when{color:#fff}
.step.last .when{opacity:.9}
.accWrap{display:grid; grid-template-columns:390px minmax(0,1fr); gap:30px; align-items:start}
.acc2{display:grid; gap:20px}
.acc2 .card{background:#fff; border-radius:10px; padding:32px 34px; box-shadow:var(--shSoft)}
.acc2 .card .lb{display:inline-block; font-size:15px; font-weight:700; letter-spacing:.12em; color:#fff;
    background:var(--brick); border-radius:999px; padding:3px 18px; margin-bottom:16px}
.acc2 .card.office .lb{background:var(--gold)}
.acc2 .card h4{font-size:19px; font-weight:700; color:var(--head); letter-spacing:.06em; line-height:1.7}
.acc2 .card .walk{margin-top:12px; display:flex; align-items:center; gap:10px; font-size:17px; color:var(--ink)}
.mapWrap{border-radius:10px; overflow:hidden; box-shadow:var(--shSoft);
    aspect-ratio:4/3; background:var(--beige)}
.mapWrap iframe{width:100%; height:100%; border:0; display:block}
.mapNote{margin-top:14px; font-size:15px; color:var(--ink); line-height:1.9}
.faqAll{display:block; margin:0 0 18px auto; background:#fff; border:1.5px solid var(--gold-line);
    color:var(--head); font-weight:700; font-size:15px; letter-spacing:.06em; border-radius:999px;
    min-height:46px; padding:10px 26px; cursor:pointer; transition:.45s var(--eOut)}
.faqAll:hover{border-color:var(--brick); color:var(--brick)}
.faq{display:grid; gap:16px}
.faq details{background:#fff; border-radius:10px; box-shadow:var(--shSoft); overflow:hidden}
.faq summary{list-style:none; cursor:pointer; display:flex; align-items:flex-start; gap:18px;
    padding:26px 30px; font-size:19px; font-weight:700; color:var(--head); line-height:1.7}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{flex:none; font-family:"Zen Old Mincho",serif; font-size:23px; color:var(--brick); line-height:1.2}
.faq summary .pm{margin-left:auto; flex:none; width:32px; height:32px; border-radius:50%;
    background:var(--brick); color:#fff; display:flex; align-items:center; justify-content:center;
    font-size:17px; font-weight:700; transition:transform .45s var(--eOut)}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .a{padding:0 30px 30px 68px; font-size:17px; line-height:2.15; color:var(--ink)}
.apply{background:var(--brick); border-radius:14px; padding:58px 56px; color:#fff; text-align:center;
    box-shadow:0 26px 60px rgba(150,80,40,.18)}
.apply h3{font-size:34px; font-weight:700; letter-spacing:.1em; line-height:1.6}
.apply .lead{margin-top:16px; font-size:17px; line-height:2.1; opacity:.96}
.apply .ways{display:flex; gap:24px; justify-content:center; margin-top:38px; flex-wrap:wrap}
.apply .order1{order:1}
.apply .order2{order:2}
.apply .order3{order:3}
.apply .way{background:#fff; border-radius:10px; padding:32px 40px; min-width:330px; color:var(--ink);
    transition:transform .45s var(--eOut), box-shadow .45s var(--eOut)}
.apply .way:hover{transform:translateY(-5px); box-shadow:0 24px 52px rgba(90,40,15,.24)}
.apply .way .lb{font-size:15px; font-weight:700; color:var(--head); letter-spacing:.1em}
.apply .way .num{font-size:34px; font-weight:700; color:var(--brick); letter-spacing:.02em; line-height:1.4}
.apply .way .tm{font-size:15px; color:var(--sub)}
.apply .way .go.mail{font-size:17px; letter-spacing:.01em}
.apply .way .go{display:inline-flex; align-items:center; gap:14px; font-size:19px; font-weight:700;
    color:var(--brick); margin-top:4px}
.apply .way .go .ar{width:30px; height:30px; border-radius:50%; background:var(--brick); color:#fff;
    display:flex; align-items:center; justify-content:center}
.apply .proxy{margin-top:30px; display:inline-flex; align-items:center; gap:12px; font-size:17px;
    font-weight:700; color:var(--brick); background:#fff; border-radius:999px; padding:14px 30px}
.stickyCta{position:fixed; left:0; right:0; bottom:0; z-index:140; padding:14px 22px;
    background:rgba(250,246,236,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
    box-shadow:0 -8px 30px rgba(120,80,40,.12);
    display:flex; align-items:center; justify-content:center; gap:22px; flex-wrap:wrap;
    transform:translateY(120%); transition:transform .5s var(--eOut)}
.stickyCta{visibility:hidden}
.stickyCta.on{transform:none; visibility:visible}
@media (max-width:1024px){ .stickyCta{flex-wrap:nowrap; gap:14px; padding:10px 16px} .stickyCta .t{font-size:15px; line-height:1.5} .stickyCta .btn{font-size:15px; padding:11px 14px 11px 20px; white-space:nowrap} .stickyCta .tel{font-size:19px; white-space:nowrap} }
@media (max-width:880px){ .stickyCta .t{display:none} }
.stickyCta .t{font-size:17px; font-weight:700; color:var(--head); letter-spacing:.06em}
.stickyCta .btn{background:var(--brick); font-size:17px; padding:14px 18px 14px 28px}
.stickyCta .btn .ar{color:var(--brick)}
.stickyCta .tel{font-size:23px; font-weight:700; color:var(--brick); letter-spacing:.02em}
.pageHero .cgNote{position:absolute; right:26px; bottom:96px; z-index:2; font-size:13px;
    color:#fff; background:rgba(40,20,10,.5); border-radius:999px; padding:5px 16px; letter-spacing:.04em}
.outline{display:grid; grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr); gap:0;
    background:#fff; border-radius:10px; overflow:hidden; box-shadow:var(--shSoft)}
.outline dt{background:#FBF6EA; color:var(--gold); font-weight:700; font-size:15px; letter-spacing:.08em;
    padding:21px 28px; border-bottom:1px solid #EFE6D4; border-right:1px solid #EFE6D4; white-space:nowrap}
.outline dd{padding:21px 28px; font-size:17px; border-bottom:1px solid #EFE6D4}
.outline dd.un{color:#B3261E; font-weight:700}
.outline dt:nth-last-of-type(-n+2), .outline dd:nth-last-of-type(-n+2){border-bottom:none}
@media (max-width:1024px){ .outline{grid-template-columns:minmax(0,auto) minmax(0,1fr)} .outline dt{white-space:normal} }
@media (max-width:768px){ .outline{display:block} .outline dt{display:block; background:none; border-bottom:none; border-right:none; white-space:normal;
      padding:28px 30px 0; font-size:15px; font-weight:700; letter-spacing:.06em; color:var(--gold)} .outline dd{display:block; padding:11px 24px 22px; font-size:15px; line-height:1.85;
      border-bottom:1px solid #EFE6D4} .outline dd:last-child{border-bottom:none} .pageHero .cgNote{right:auto; left:20px; bottom:auto; top:14px; font-size:15px; padding:5px 12px} }
@media (max-width:360px){ .pageHero{padding-top:calc(var(--heroPadT) - 16px)} .pageHero .crumb{margin-bottom:12px; font-size:13px} .pageHero h1{font-size:27px} .pageHero .status{margin-top:12px; font-size:15px; padding:8px 16px} .pageHero .heroBtns{margin-top:16px; gap:10px} .pageHero .heroBtns .btn{font-size:17px; padding:13px 14px 13px 20px} .jumpNav{margin-top:18px} }
@media print{ .stickyCta, .spBar, .spMenu, .hbg, .jumpNav, .gnav .mailBtn, .wave{display:none !important} *{animation:none !important; transition:none !important} .fadein, .stag{opacity:1 !important; transform:none !important} .faq details{border:1px solid #999} .faq details .a{display:block !important} .faq summary .pm{display:none} .mSec{padding:24px 0; page-break-inside:avoid} .pageHero{padding:24px 0; color:#000} .pageHero .bg{display:none} .apply{background:#fff; color:#000; border:2px solid #000; box-shadow:none} .apply .lead, .apply h3{color:#000} .notice, .reason, .fig, .costBox, .step, .acc2 .card, .pTable{box-shadow:none; border:1px solid #999} .mSec.beige, .mSec.white{background:#fff} }
@media (max-width:1024px){ .pageHero{padding:var(--heroPadT) 26px var(--heroPadB)} .pageHero h1{font-size:42px} .pageHero .kind{font-size:15px} .jumpNav{gap:12px 22px; margin-top:36px} .jumpNav a{font-size:15px} .mSec{padding:var(--secPad) 26px} .concept{padding:var(--secPad) 26px} .concept .cCatch{font-size:27px} .reasons{grid-template-columns:1fr 1fr; gap:20px} .notice{padding:38px 30px; border-radius:10px} .notice h3{font-size:23px} .duo{grid-template-columns:1fr; gap:38px} .duo .vis{width:78%; margin:0 auto} .duo.rev{direction:ltr} .figs.four{grid-template-columns:repeat(2,1fr)} .roomsTop{grid-template-columns:1fr; gap:24px} .roomType{flex-direction:column; align-items:flex-start; gap:10px} .accWrap{grid-template-columns:1fr} .floorImgs img{height:330px} .subTitle{font-size:17px; gap:14px; white-space:normal} .subTitle.gap{margin-top:52px} .costItem{grid-template-columns:1fr; gap:18px} .costHead{display:flex; align-items:baseline; gap:14px} .costHead .n{font-size:27px} .costHead h4{margin-top:0; padding-bottom:0; border-bottom:none; font-size:19px} .costHead h4 small{display:inline; margin-left:10px} .costBody{padding:10px 24px} .mapWrap{aspect-ratio:4/3} .flow{grid-template-columns:1fr 1fr; gap:26px} .step::after{display:none} .acc2{grid-template-columns:1fr} .apply{padding:44px 26px; border-radius:10px} .apply .way{min-width:0; width:100%} .priceLead .big{font-size:42px} }
@media (max-width:768px){ .pageHero{padding:var(--heroPadT) 20px var(--heroPadB)} .pageHero h1{font-size:34px} .pageHero .crumb{margin-bottom:18px} .pageHero .status{margin-top:14px; font-size:15px; padding:9px 20px} .pageHero .heroBtns{margin-top:18px; gap:12px} .pageHero .heroBtns .btn{width:100%; justify-content:space-between} .jumpNav{margin-top:20px; flex-wrap:nowrap; overflow-x:auto; gap:10px;
      -webkit-overflow-scrolling:touch; scrollbar-width:none;
      -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);
      mask-image:linear-gradient(90deg,#000 88%,transparent);
      padding-bottom:4px} .jumpNav::-webkit-scrollbar{display:none} .jumpNav a{flex:none; padding:8px 15px; font-size:15px; min-height:44px} .jumpNav::after{content:"→"; flex:none; align-self:center; padding:0 6px 0 2px;
      color:rgba(255,255,255,.85); font-size:17px} .mSec{padding:var(--secPad) 20px} .reasons{grid-template-columns:1fr} .floorImgs{display:block} .floorImgs > div + div{margin-top:22px} .floorImgs img{height:auto; width:100%; max-width:300px; margin:0 auto} .floorImgs span{font-size:15px} .figs{grid-template-columns:1fr} .figs.four{grid-template-columns:1fr 1fr} .conds{grid-template-columns:1fr} .flow{grid-template-columns:1fr} .tableScroll{overflow:visible; border-radius:0} .pTable{min-width:0; display:block; background:none; box-shadow:none; border-radius:0} .pTable thead{display:none} .pTable tbody{display:block} .pTable tr{display:flex; flex-wrap:wrap; align-items:baseline; background:#fff; border-radius:10px;
      padding:16px 22px 14px; margin-bottom:12px; box-shadow:var(--shSoft)} .pTable td{border:none; text-align:left; white-space:normal} .pTable td::before{content:attr(data-l); color:var(--ink); font-weight:500; flex:none} .pTable td.rm{order:1; flex:1 0 100%; display:flex; justify-content:space-between; align-items:baseline;
      font-size:23px; font-weight:700; color:var(--head);
      border-bottom:2px solid var(--gold-line); padding-bottom:10px} .pTable td.rm::before{content:"お部屋"; font-size:15px} .pTable td.total{order:2; flex:1 0 100%; display:flex; justify-content:space-between; align-items:baseline;
      padding:18px 0 16px; font-size:23px; font-weight:700} .pTable td.total::before{content:attr(data-l); font-size:15px; font-weight:700; color:var(--head)} .pTable td:not(.rm):not(.total){order:3; flex:0 0 auto; font-size:15px; color:var(--ink)} .pTable td:not(.rm):not(.total)::before{font-size:15px; margin-right:5px} .pTable td:not(.rm):not(.total) + td:not(.rm):not(.total)::before{content:"／" attr(data-l); margin-left:2px} .incBox{flex-direction:column; align-items:flex-start; gap:12px; padding:16px 20px} .incBox .inc{padding-right:0; border-right:none; border-bottom:1.5px dotted #E4C3B2; padding-bottom:10px; width:100%} .pcbr{display:none} .incList li{font-size:15px; white-space:normal} .incList li + li::before{margin:0 8px} .figs.four{grid-template-columns:1fr} .accWrap{grid-template-columns:1fr} .concept .cCatch{font-size:23px} .notice .tag{left:24px} .faq summary{font-size:17px; padding:22px 22px} .faq .a{padding:0 22px 24px 54px; font-size:15px} .apply h3{font-size:23px} .stickyCta{display: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}
: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} }
