/* v44 style block 2: inline-2 */

:root{
  --si-scale:1;
  --si-index-left:150px;
  --si-index-rail-top:1513px;
  --si-index-sticky-top:100px;
  --si-index-rail-width:235px;
  --si-index-sticky-height:205px;
  --si-ink:var(--ink,#2d241d);
  --si-muted:var(--brown-soft,#73563b);
  --si-line:var(--line,rgba(72,45,18,.16));
  --si-equipment:var(--paper-light,#faf7f0);
  --si-access:var(--paper-deep,#e9e2d5);
  --si-gray:#c3c3c3;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--si-ink);background:var(--paper,#f4f0e7);font-family:var(--serif);font-size:max(var(--fab-font-minimum), var(--fab-type-body,15px));line-height:2.04;letter-spacing:.045em;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
button{color:inherit;font:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
figure,p,h1,h2,h3,h4,dl,dd{margin:0}
.si-header-slot{height:80px;background:var(--paper,#f4f0e7)}
body .header{color:var(--brown)}
.si-stage{position:relative;width:100%;height:24227px;margin-inline:auto;overflow:visible}
.si-page{position:relative;width:1920px;height:24227px;transform-origin:0 0;background:var(--paper,#f4f0e7)}
.si-placeholder{display:block;width:100%;height:100%;background:var(--si-gray)}
.si-placeholder>span{display:grid;width:100%;height:100%;place-items:center;color:#555;font-size:15px;line-height:2;text-align:center}
.si-hero{position:absolute;inset:0 0 auto;height:5263px;background:var(--paper,#f4f0e7)}
.si-hero h1{position:absolute;left:150px;top:220px;font-size:72px;font-weight:400;line-height:1.25;letter-spacing:.05em}
.si-hero-en{position:absolute;left:150px;top:350px;display:flex;align-items:center;gap:17px;color:#626262;font-family:Arial,sans-serif;font-size:20px;line-height:1;letter-spacing:.01em}
.si-hero-en i,.si-section-name p i,.si-faq-head p i{display:block;width:30px;height:1px;background:currentColor}
.si-hero-copy{position:absolute;left:150px;top:445px;font-size:16px;line-height:2.18;letter-spacing:.11em}



.si-hero-image{position:absolute;left:150px;top:663px;width:1620px;height:700px;overflow:hidden;border-radius:10px;background:var(--si-gray)}







@media(hover:hover){
  
  
  
  
}
.si-measured-section{position:absolute;left:0;width:1920px}
.si-measured-section{scroll-margin-top:70px}
.si-rooms{top:0;height:5263px}
.si-equipment{top:5263px;height:6223px;background:var(--si-equipment);box-shadow:0 0 0 100vmax var(--si-equipment);clip-path:inset(0 -100vmax)}
.si-food{top:11486px;height:4885px;background:var(--paper,#f4f0e7)}
.si-access{top:16371px;height:2075px;background:var(--si-access);box-shadow:0 0 0 100vmax var(--si-access);clip-path:inset(0 -100vmax)}
.si-faq{top:18446px;height:5781px;background:var(--paper,#f4f0e7)}
.si-section-head{position:absolute;left:465px;width:1305px;height:330px}
.si-section-name{position:absolute;left:0;top:0;width:500px}
.si-section-name h2{font-size:54px;font-weight:400;line-height:1.3;letter-spacing:.05em}
.si-section-name p{display:flex;align-items:center;gap:12px;margin-top:11px;color:#656565;font-family:Arial,sans-serif;font-size:11px;line-height:1;letter-spacing:.04em}
.si-section-name p i{width:10px}
.si-section-intro{position:absolute;left:610px;top:39px;width:695px}
.si-section-intro h3{font-size:22px;font-weight:400;line-height:1.9;letter-spacing:.09em}
.si-section-intro p{margin-top:52px;font-size:14px;line-height:2.25;letter-spacing:.045em}
.si-room{position:absolute;left:465px;width:1305px;height:1045px}
.si-room-gallery{position:relative;width:1305px;height:650px}
.si-room-main{position:absolute;left:0;top:0;width:1050px;height:650px;padding:0;overflow:hidden;border:0;border-radius:10px;background:var(--si-gray)}
.si-room-thumbs{position:absolute;left:1080px;top:0;display:grid;gap:20px}
.si-thumb{width:225px;height:155px;padding:0;overflow:hidden;border:0;border-radius:10px;background:var(--si-gray);opacity:.36;cursor:pointer;transition:opacity .55s var(--ease),transform .65s var(--ease)}
.si-thumb.is-active{opacity:1}
.si-thumb:hover{opacity:.72}
.si-thumb.is-active:hover{opacity:1}
.si-thumb:focus-visible{outline:2px solid var(--lemon);outline-offset:4px;opacity:1}
.si-room-main img,.si-facility-gallery>img{transition:opacity .42s var(--ease),transform .7s var(--ease)}
.si-room-main img.is-switching,.si-facility-gallery>img.is-switching{opacity:0;transform:scale(1.012)}
.si-room:not(:last-of-type)::after{content:"";position:absolute;left:0;top:1025px;width:1305px;height:2px;background:var(--si-line)}
.si-room-copy{position:absolute;left:0;top:732px;width:1305px;height:159px}
.si-room-copy h3{position:absolute;left:0;top:0;font-size:32px;font-weight:400;line-height:1.35;letter-spacing:.06em}
.si-room-copy p{position:absolute;left:610px;top:3px;width:695px;font-size:15px;line-height:2.25;letter-spacing:.04em}
.si-facility{position:absolute;left:465px;display:grid;width:1305px;height:630px}
.si-facility.image-left{grid-template-columns:650px 585px;gap:70px}
.si-facility.image-right{grid-template-columns:585px 650px;gap:70px}
.si-facility-gallery{position:relative;width:650px;height:630px}
.si-facility-gallery>img{width:650px;height:500px;border-radius:10px;background:var(--si-gray)}
.si-facility-thumbs{position:absolute;left:0;top:530px;display:flex;gap:20px}
.si-facility-thumbs .si-thumb{width:100px;height:100px;border-radius:9px}
.si-facility-copy{align-self:start;padding:109px 0 0}
.si-facility-copy h3{font-size:30px;font-weight:400;line-height:1.35;letter-spacing:.08em}
.si-facility-copy p{margin-top:52px;font-size:15px;line-height:2.25;letter-spacing:.04em}
.si-facility.image-right .si-facility-copy{padding-left:0;padding-right:0}
.si-facility.image-left .si-facility-copy{padding-left:0}
.si-map{position:absolute;left:465px;top:3622px;display:grid;place-items:center;width:1305px;height:700px;overflow:hidden;border-radius:10px;background:var(--si-gray);font-size:22px;line-height:2;text-align:center}
.si-specs{position:absolute;left:465px;top:4371px;width:1305px}
.si-specs>div{display:grid;grid-template-columns:300px 1fr;padding:22px 0;border-bottom:1px solid var(--si-line);font-size:15px;line-height:2.1;letter-spacing:.055em}
.si-specs dt{font-weight:400}
.si-specs dd span{font-size:13px}
.si-list-title{position:absolute;left:465px;top:4829px;font-size:26px;font-weight:400;line-height:1.35;letter-spacing:.07em}
.si-service-photos{position:absolute;left:465px;top:4914px;display:grid;grid-template-columns:415px 415px 415px;gap:30px}
.si-service-photos figure{width:415px;height:500px;border-radius:10px;overflow:hidden;background:var(--si-gray)}
.si-service-lists{position:absolute;left:465px;display:grid;grid-template-columns:620px 620px;gap:65px;width:1305px}
.si-service-lists.top{top:5491px}
.si-service-lists.bottom{top:5804px}
.si-service-lists h4{display:flex;align-items:center;gap:18px;font-size:18px;font-weight:400;line-height:1.5;letter-spacing:.07em;white-space:nowrap}
.si-service-lists h4::after{content:"";width:100%;height:1px;background:#aaa}
.si-service-lists ul{display:grid;grid-template-columns:1fr 1fr;gap:7px 24px;margin:28px 0 0;padding:0;list-style:none;font-size:14px;line-height:1.95;letter-spacing:.04em}
.si-service-lists li::before{content:"・"}
.si-food-hero{position:absolute;left:465px;top:561px;width:1305px;height:700px;border-radius:10px;overflow:hidden;background:var(--si-gray)}
.si-meal{position:absolute;left:465px;width:1305px;height:721px}
.si-meal.one{top:1430px;height:786px}.si-meal.two{top:2336px;height:753px}.si-meal.three{top:3209px;height:753px}
.si-meal-title{position:absolute;left:0;top:-50px;width:1305px;font-size:34px;font-weight:400;line-height:1.45;letter-spacing:.04em}
.si-meal-copy{position:absolute;left:0;top:72px;width:435px}
.si-meal-copy h4{font-size:16px;font-weight:400;line-height:1.7;letter-spacing:.06em}
.si-meal-copy p{margin-top:38px;font-size:14px;line-height:2.25;letter-spacing:.035em}
.si-meal-copy small{display:block;margin-top:34px;padding-top:27px;border-top:1px solid var(--si-line);font-size:13px;line-height:1.9;color:#555}
.si-meal figure{position:absolute;left:505px;top:72px;width:800px;height:600px;border-radius:10px;overflow:hidden;background:var(--si-gray)}
.si-chef{position:absolute;left:465px;top:4033px;width:1305px;border:1px solid #8a8a8a}
.si-chef-copy{position:absolute;left:70px;top:70px;width:515px}
.si-chef-copy small{font-size:14px;color:#666}.si-chef-copy h3{margin-top:15px;font-size:22px;font-weight:400;letter-spacing:.07em}
.si-chef-copy p{margin-top:18px;font-size:14px;line-height:2.3;letter-spacing:.035em}
.si-chef-profile{position:absolute;left:625px;top:69px;width:610px}
.si-chef-profile figure{width:610px;height:400px;border-radius:10px;overflow:hidden;background:var(--si-gray)}
.si-chef-profile h4{margin-top:22px;padding-left:19px;border-left:2px solid #aaa;font-family:Arial,sans-serif;font-size:16px;font-weight:400}
.si-chef-profile p{margin-top:8px;padding-left:20px;font-size:14px;line-height:1.95;color:#666}
.si-access-image{position:absolute;left:465px;top:561px;width:1305px;height:700px;border-radius:10px;overflow:hidden;background:var(--si-gray)}
.si-property-name{position:absolute;left:465px;top:1331px;font-size:26px;font-weight:400;line-height:1.35;letter-spacing:.11em}
.si-address{position:absolute;left:465px;top:1391px;font-size:15px;letter-spacing:.02em}
.si-access-method{position:absolute;left:465px;width:1305px;padding-left:30px;border-left:1px solid #aaa}
.si-access-method h4{font-size:19px;font-weight:400;line-height:1.5;letter-spacing:.05em}
.si-access-method p{margin-top:22px;font-size:15px;line-height:2.2;letter-spacing:.035em}
.si-access-method small{display:block;margin-top:15px;font-size:14px;line-height:2.05;color:#666}
.si-access-method.car{top:1455px}.si-access-method.bicycle{top:1629px}.si-access-method.boat{top:1768px}
.si-faq-head{position:absolute;left:465px;top:167px}
.si-faq-head h2{font-size:54px;font-weight:400;line-height:1.3;letter-spacing:.05em}
.si-faq-head p{display:flex;align-items:center;gap:12px;margin-top:12px;color:#656565;font-family:Arial,sans-serif;font-size:11px}
.si-faq-head p i{width:10px}
.si-faq-group{position:absolute;left:465px;width:1305px;transition:transform .8s var(--ease)}
.si-faq-group h3{display:flex;align-items:center;gap:11px;height:46px;font-size:25px;font-weight:400;line-height:1.4;letter-spacing:.075em}
.si-faq-group h3 i{width:1px;height:26px;background:#333}
.si-faq-group h3 span{letter-spacing:.11em}
.si-faq-list{margin-top:32px}
.si-faq-item{border-bottom:1px solid var(--si-line)}
.si-faq-trigger{position:relative;display:flex;align-items:center;width:100%;min-height:86px;padding:0 40px 0 30px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font-size:16px;line-height:1.7;letter-spacing:.075em;transition:padding .65s var(--ease),background .65s var(--ease)}
.si-faq-trigger:hover{padding-inline:42px 52px;background:rgba(255,253,248,.42)}
.si-faq-trigger em{font-style:normal;letter-spacing:.13em}
.si-faq-trigger>i{position:absolute;right:31px;width:20px;height:20px;border:1px solid rgba(72,45,18,.24);border-radius:50%}
.si-faq-trigger>i::before,.si-faq-trigger>i::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:1px;background:var(--brown);transform:translate(-50%,-50%);transition:transform .55s var(--ease),opacity .55s var(--ease)}
.si-faq-trigger>i::after{transform:translate(-50%,-50%) rotate(90deg)}
.si-faq-trigger[aria-expanded="true"]>i::after{opacity:0;transform:translate(-50%,-50%) rotate(0)}
.si-faq-item.is-long .si-faq-trigger{min-height:115px}
.si-faq-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .8s var(--ease)}
.si-faq-item.is-open .si-faq-panel{grid-template-rows:1fr}
.si-faq-panel-inner{overflow:hidden}
.si-faq-answer{padding:0 90px 28px 30px;background:transparent;font-size:14px;line-height:2.25;letter-spacing:.035em}
/* FAQ: keep the original inter-group spacing while panels expand/collapse. */
.si-faq .si-faq-group{transition:opacity 1.3s var(--ease),transform .8s var(--ease),filter 1.3s var(--ease)}
body.si-compare .si-page img{opacity:0}
body.si-compare .si-page figure,body.si-compare .si-page [class$="-image"],body.si-compare .si-room-main,body.si-compare .si-thumb{background:#c3c3c3}
.si-section-head,.si-room,.si-facility,.si-map,.si-specs,.si-list-title,.si-service-photos,.si-service-lists,.si-food-hero,.si-meal,.si-chef,.si-access-image,.si-property-name,.si-address,.si-access-method,.si-faq-head,.si-faq-group{transition:opacity 1.3s var(--ease),transform 1.3s var(--ease),filter 1.3s var(--ease)}
html.si-reveal-ready .si-scroll-reveal{opacity:0;transform:translateY(28px);filter:blur(2px)}
html.si-reveal-ready .si-scroll-reveal.is-visible{opacity:1;transform:none;filter:none}

@media(max-width:1919px){
  .si-stage{width:100%}
}
@media(max-width:1040px){
  body{font-size:14px;line-height:1.95}
  .si-header-slot{height:70px}
  .si-stage{width:100%;height:auto!important}
  .si-page{position:relative;width:100%;height:auto;transform:none!important}














  .si-hero,.si-measured-section{position:relative;inset:auto;left:auto;top:auto;width:100%;height:auto}
  .si-hero{padding:95px var(--pad) 110px}
  .si-hero h1, .si-hero-en, .si-hero-copy, .si-hero-image{position:relative;left:auto;top:auto}
  .si-hero h1{font-size:max(var(--fab-font-minimum), clamp(31px,8.4vw,48px));line-height:1.55;letter-spacing:.068em}
  .si-hero-en{margin-top:17px;font-size:11px;letter-spacing:.08em}
  .si-hero-copy{margin-top:55px;font-size:15px;line-height:2.28;letter-spacing:.045em}
  .si-hero-copy br{display:none}
  
  
  
  .si-hero-image{width:100%;height:auto;aspect-ratio:1620/700;margin-top:60px;border-radius:7px}

  .si-rooms{padding:0 var(--pad) 110px}
  .si-equipment,.si-food,.si-access,.si-faq{padding:105px var(--pad) 110px}
  .si-section-head,.si-faq-head{position:relative;left:auto;top:auto!important;width:100%;height:auto}
  .si-section-name,.si-section-intro{position:relative;left:auto;top:auto;width:100%}
  .si-section-name h2,.si-faq-head h2{font-size:max(var(--fab-font-minimum), clamp(28px,7.5vw,38px));line-height:1.7;letter-spacing:.065em}
  .si-section-name p,.si-faq-head p{margin-top:5px;font-size:var(--fab-font-minimum);letter-spacing:.11em}
  .si-section-intro{margin-top:48px}
  .si-section-intro h3{font-size:max(var(--fab-font-minimum), clamp(20px,5.4vw,27px));line-height:1.85;letter-spacing:.068em}
  .si-section-intro h3 br{display:none}
  .si-section-intro p{margin-top:28px;font-size:15px;line-height:2.28}
  .si-section-intro p br{display:none}

  .si-room{position:relative;left:auto;top:auto!important;width:100%;height:auto;margin-top:100px}
  .si-room:first-of-type{margin-top:70px}
  .si-room:not(:last-of-type)::after{position:relative;left:auto;top:auto;display:block;width:100%;margin-top:100px}
  .si-room-gallery{width:100%;height:auto}
  .si-room-main{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:1050/650;border-radius:7px}
  .si-room-thumbs{position:relative;left:auto;top:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
  .si-thumb{width:100%;height:auto;aspect-ratio:225/155;border-radius:6px}
  .si-room-copy{position:relative;left:auto;top:auto;width:100%;height:auto;display:grid;grid-template-columns:minmax(100px,.34fr) 1fr;gap:25px;margin-top:38px;padding:0}
  .si-room-copy h3,.si-room-copy p{position:relative;left:auto;top:auto;width:auto}
  .si-room-copy h3{font-size:24px}
  .si-room-copy p{font-size:14px;line-height:2.2}

  .si-facility{position:relative;left:auto;top:auto!important;display:flex;flex-direction:column;gap:0;width:100%;height:auto;margin-top:75px}
  .si-facility-gallery{order:1;width:100%;height:auto}
  .si-facility-gallery>img{width:100%;height:auto;aspect-ratio:650/500;border-radius:7px}
  .si-facility-thumbs{position:relative;left:auto;top:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
  .si-facility-thumbs .si-thumb{width:100%;height:auto;aspect-ratio:1}
  .si-facility-copy,.si-facility.image-left .si-facility-copy,.si-facility.image-right .si-facility-copy{order:2;padding:38px 0 0}
  .si-facility-copy h3{font-size:22px}
  .si-facility-copy p{margin-top:22px;font-size:14px;line-height:2.2}
  .si-map,.si-specs,.si-list-title,.si-service-photos,.si-service-lists{position:relative;left:auto;top:auto!important;width:100%}
  .si-map{height:auto;aspect-ratio:1305/700;margin-top:90px;border-radius:7px;font-size:14px}
  .si-specs{height:auto;margin-top:clamp(45px,6.73vw,70px)}
  .si-specs>div{grid-template-columns:105px 1fr;gap:20px;padding:18px 0;font-size:14px}
  .si-specs dd span{font-size:11px}
  .si-list-title{margin-top:clamp(80px,11.54vw,120px);font-size:22px}
  .si-service-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:36px}
  .si-service-photos figure{width:100%;height:auto;aspect-ratio:415/500;border-radius:7px}
  .si-service-lists{display:grid;grid-template-columns:1fr;gap:34px}
  .si-service-lists.top{margin-top:48px}.si-service-lists.bottom{margin-top:34px}
  .si-service-lists h4{font-size:16px}
  .si-service-lists ul{grid-template-columns:1fr;margin-top:18px;font-size:14px;line-height:2.1}

  .si-food-hero,.si-access-image{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:1305/700;margin-top:68px;border-radius:7px}
  .si-meal{position:relative;left:auto;top:auto!important;width:100%;height:auto;display:flex;flex-direction:column;margin-top:85px}
  .si-meal-title{position:relative;left:auto;top:auto;width:100%;order:0;font-size:21px;line-height:1.7}
  .si-meal-copy{position:relative;left:auto;top:auto;width:100%;order:2}
  .si-meal-copy h4{margin-top:0;font-size:15px}
  .si-meal-copy p{margin-top:17px;font-size:14px;line-height:2.2}
  .si-meal-copy small{font-size:11px}
  .si-meal figure{position:relative;left:auto;top:auto;order:1;width:100%;height:auto;aspect-ratio:4/3;margin:28px 0 34px;border-radius:7px}
  .si-chef{position:relative;left:auto;top:auto;width:100%;margin-top:90px;padding:25px;border-color:rgba(72,45,18,.26)}
  .si-chef-copy,.si-chef-profile{position:relative;left:auto;top:auto;width:100%}
  .si-chef-copy h3{font-size:21px}.si-chef-copy p{font-size:14px;line-height:2.2}
  .si-chef-profile{margin-top:45px}
  .si-chef-profile figure{width:100%;height:auto;aspect-ratio:610/400;border-radius:7px}
  .si-chef-profile h4{font-size:14px}.si-chef-profile p{font-size:12px}

  .si-property-name,.si-address,.si-access-method{position:relative;left:auto;top:auto!important;width:100%}
  .si-property-name{margin-top:clamp(45px,6.73vw,70px);font-size:21px}
  .si-address{margin-top:9px;font-size:13px}
  .si-access-method{margin-top:45px;padding-left:20px}
  .si-access-method h4{font-size:17px}
  .si-access-method p{margin-top:14px;font-size:14px;line-height:2.2}
  .si-access-method small{font-size:12px}

  .si-faq-group{position:relative;left:auto;top:auto!important;width:100%;margin-top:68px}
  .si-faq-group h3{height:auto;align-items:flex-start;font-size:18px;line-height:1.65}
  .si-faq-group h3 i{height:23px}
  .si-faq-group h3 span{font-size:max(var(--fab-font-minimum), .68em);line-height:2.25}
  .si-faq-list{margin-top:24px}
  .si-faq-trigger,.si-faq-item.is-long .si-faq-trigger{min-height:0;padding:22px 34px 22px 12px;font-size:13px;line-height:1.85}
  .si-faq-trigger:hover{padding:22px 34px 22px 12px;background:transparent}
  .si-faq-trigger em{display:block;margin-top:4px;font-size:var(--fab-font-minimum);letter-spacing:.08em;color:#777}
  .si-faq-trigger>i{right:8px;width:15px;height:15px}
  .si-faq-trigger>i::before,.si-faq-trigger>i::after{width:7px}
  .si-faq-answer{padding:0 30px 25px 12px;font-size:13px;line-height:2.15}
}
@media(max-width:980px){

}
@media(max-width:760px){
  :root{--pad:20px}
  body{font-size:14px}
  .si-header-slot{height:64px}
  .si-hero{padding:78px 20px 92px}
  .si-hero h1{font-size:max(var(--fab-font-minimum), clamp(34px,10.7vw,42px));line-height:1.45}
  .si-hero-en{margin-top:13px;font-size:var(--fab-font-minimum)}
  .si-hero-copy{margin-top:44px;font-size:14px;line-height:2.2}
  
  
  .si-hero-image{aspect-ratio:4/3;margin-top:52px}
  .si-rooms{padding:0 20px 96px}
  .si-equipment,.si-food,.si-access,.si-faq{padding:88px 20px 96px}
  .si-section-name h2,.si-faq-head h2{font-size:34px}
  .si-section-intro{margin-top:38px}
  .si-section-intro h3{font-size:23px;line-height:1.8}
  .si-section-intro p{margin-top:24px;font-size:14px;line-height:2.2}
  .si-room{margin-top:84px}
  .si-room:first-of-type{margin-top:60px}
  .si-room:not(:last-of-type)::after{margin-top:84px}
  .si-room-main{aspect-ratio:4/3}
  .si-room-copy{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .si-room-copy h3{font-size:23px}
  .si-facility{margin-top:68px}
  .si-facility-copy,.si-facility.image-left .si-facility-copy,.si-facility.image-right .si-facility-copy{padding-top:30px}
  .si-map{margin-top:78px}
  .si-list-title{margin-top:88px;font-size:21px}
  .si-service-photos{display:flex;gap:12px;margin-top:32px;margin-right:-20px;padding-right:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .si-service-photos::-webkit-scrollbar{display:none}
  .si-service-photos figure{flex:0 0 78%;aspect-ratio:4/3;scroll-snap-align:start}
  .si-food-hero,.si-access-image{margin-top:55px;aspect-ratio:4/3}
  .si-meal{margin-top:76px}
  .si-meal-title{font-size:20px}
  .si-chef{margin-top:78px;padding:23px 20px}
  .si-property-name{font-size:20px}
  .si-faq-group{margin-top:58px}
}
@media(max-width:430px){
  
  .si-specs>div{grid-template-columns:88px 1fr;gap:14px}
  .si-service-photos figure{flex-basis:84%}
}
@media(prefers-reduced-motion:reduce){
  html.si-reveal-ready .si-scroll-reveal{opacity:1;transform:none;filter:none;transition:none}
}


/* v44 style block 3: fab-subpage-typography-sync */


body{
  color:var(--ink);
  font-family:var(--sans);
  line-height:2.04;
  letter-spacing:.045em;
}
.si-hero h1{
  color:var(--brown);
  font-family:var(--serif);
  line-height:1.82;
  letter-spacing:.078em;
}
.si-hero-en{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:1.8;
  letter-spacing:.07em;
}
.si-hero-copy{
  color:var(--ink);
  font-family:var(--serif);
  line-height:2.28;
  letter-spacing:.04em;
}

.si-section-name h2,
.si-faq-head h2{
  color:var(--brown);
  font-family:var(--serif);
  line-height:1.3;
  letter-spacing:.065em;
}
.si-section-name p,
.si-faq-head p{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:1.5;
  letter-spacing:.24em;
}
@media(min-width:1041px){
  .si-section-name p{margin-top:.9375rem}
}
.si-section-intro h3{
  color:var(--brown);
  font-family:var(--serif);
  line-height:1.9;
  letter-spacing:.09em;
}
.si-section-intro p,
.si-room-copy p,
.si-facility-copy p,
.si-meal-copy p,
.si-chef-copy p,
.si-access-method p{
  color:var(--ink);
  font-family:var(--serif);
  line-height:2.32;
  letter-spacing:.04em;
}
.si-room-copy h3,
.si-facility-copy h3,
.si-meal-copy h4,
.si-service-lists h4,
.si-chef-copy h3,
.si-access-method h4,
.si-faq-group h3{
  color:var(--brown);
  font-family:var(--serif);
  line-height:1.7;
  letter-spacing:.07em;
}
.si-meal-title,
.si-list-title,
.si-property-name{
  color:var(--brown);
  font-family:var(--serif);
  line-height:1.82;
  letter-spacing:.078em;
}
.si-specs>div{
  color:var(--ink);
  font-family:var(--sans);
  line-height:2.04;
  letter-spacing:.045em;
}
.si-specs dt{
  color:var(--brown);
  font-family:var(--serif);
  line-height:1.8;
  letter-spacing:.07em;
}
.si-specs dd{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:2;
  letter-spacing:.035em;
}
.si-specs dd span,
.si-meal-copy small,
.si-chef-copy small,
.si-chef-profile p,
.si-address{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:2;
  letter-spacing:.035em;
}
.si-access-method small{
  color:var(--brown-soft);
  font-family:var(--serif);
  line-height:2;
  letter-spacing:.035em;
}
.si-service-lists ul{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:2;
  letter-spacing:.035em;
}
.si-chef-profile h4{
  color:var(--brown);
  font-family:var(--sans);
  line-height:1.5;
  letter-spacing:.18em;
}
.si-faq-group h3 span{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:1.7;
  letter-spacing:.12em;
}
.si-faq-trigger{
  color:var(--brown);
  font-family:var(--serif);
  line-height:1.7;
  letter-spacing:.07em;
}
.si-faq-trigger em{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:1.9;
  letter-spacing:.045em;
}
.si-faq-answer{
  color:var(--brown-soft);
  font-family:var(--serif);
  line-height:2;
  letter-spacing:.035em;
}


.si-map{
  color:var(--brown-soft);
  font-family:var(--sans);
  letter-spacing:.045em;
}
.si-page,
.si-page :where(h1,h2,h3,h4,p,dt,dd,li,a,button,small,strong,em,span){
  font-family:var(--serif);
}
.si-page .si-hero-en,
.si-page .si-section-name p,
.si-page .si-faq-head p,
.si-page .si-faq-group h3 span,
.si-page .si-faq-trigger em,
.si-page .si-chef-profile h4{
  font-family:var(--sans);
}
.si-page .si-meal-copy h4{
  font-size:18px;
}
@media(max-width:1040px){
  .si-page .si-meal-copy h4{font-size:17px}
}
@media(max-width:760px){
  .si-page .si-meal-copy h4{font-size:16px}
}
@media(max-width:820px){
  body{line-height:1.98}
  .si-hero h1{line-height:1.84;letter-spacing:.067em}
  .si-hero-copy{line-height:2.18}
  .si-section-name h2,
  .si-faq-head h2{line-height:1.84;letter-spacing:.055em}
  .si-section-intro h3,
  .si-meal-title,
  .si-list-title,
  .si-property-name{line-height:1.78}
  .si-section-intro p,
  .si-room-copy p,
  .si-facility-copy p,
  .si-meal-copy p,
  .si-chef-copy p,
  .si-access-method p{line-height:2.2}
}


/* v44 style block 4: stay-rough-spacing-contract */

:root{
  --si-space-10:.625rem;
  --si-space-20:1.25rem;
  --si-space-30:1.875rem;
  --si-space-50:3.125rem;
  --si-space-70:4.375rem;
  --si-space-100:6.25rem;
  --si-space-120:7.5rem;
  --si-space-150:9.375rem;
}

@media(min-width:1041px){
  .si-stage,.si-page{height:1463.8125rem}
  .si-hero,.si-rooms{height:320.1875rem}
  .si-equipment{top:320.1875rem;height:375.75rem}
  .si-food{top:695.9375rem;height:294.125rem}
  .si-access{top:990.0625rem;height:127.625rem}
  .si-faq{top:1117.6875rem;height:346.125rem}

  .si-hero h1{left:9.375rem;top:13.75rem}
  .si-hero-en{left:9.375rem;top:21.875rem;gap:1.0625rem}
  .si-hero-copy{left:9.375rem;top:27.8125rem}
  
  .si-hero-image{left:9.375rem;top:41.4375rem}

  .si-section-head{left:29.0625rem}
  .si-section-intro{left:38.125rem;top:2.4375rem}
  .si-section-intro p{margin-top:3.25rem}

  .si-room:nth-of-type(1){top:118.75rem!important}
  .si-room:nth-of-type(2){top:186.9375rem!important}
  .si-room:nth-of-type(3){top:255.125rem!important}
  .si-room:not(:last-of-type)::after{top:61.875rem}
  .si-room{left:29.0625rem}
  .si-room-thumbs{left:67.5rem;gap:1.25rem}
  .si-room-copy{top:45.75rem}
  .si-room-copy p{left:38.125rem;top:.1875rem}

  .si-equipment .si-facility:nth-of-type(1){top:35.0625rem!important}
  .si-equipment .si-facility:nth-of-type(2){top:78.8125rem!important}
  .si-equipment .si-facility:nth-of-type(3){top:122.5625rem!important}
  .si-equipment .si-facility:nth-of-type(4){top:166.3125rem!important}
  .si-facility{left:29.0625rem}
  .si-facility.image-left,.si-facility.image-right{gap:4.375rem}
  .si-facility-thumbs{top:33.125rem;gap:1.25rem}
  .si-facility-copy{padding-top:6.8125rem}
  .si-facility-copy p{margin-top:3.25rem}
  .si-map{top:213.1875rem}
  .si-specs{top:260rem}
  .si-list-title{top:288.625rem}
  .si-service-photos{top:293.9375rem}
  .si-service-lists.top{top:330rem}
  .si-service-lists.bottom{top:349.5625rem}
  .si-map,.si-specs,.si-list-title,.si-service-photos,.si-service-lists{left:29.0625rem}
  .si-service-photos{gap:1.875rem}
  .si-service-lists{gap:4.0625rem}
  .si-service-lists ul{gap:.4375rem 1.5rem;margin-top:1.75rem}

  .si-food-hero{left:29.0625rem;top:35.0625rem}
  .si-meal{left:29.0625rem}
  .si-meal.one{top:89.375rem}
  .si-meal.two{top:141.9375rem}
  .si-meal.three{top:194.5rem}
  .si-meal-title{top:-3.125rem}
  .si-meal-copy{top:4.5rem}
  .si-meal-copy p{margin-top:2.375rem}
  .si-meal-copy small{margin-top:2.125rem;padding-top:1.6875rem}
  .si-meal figure{left:31.5625rem;top:4.5rem}
  .si-chef{top:244rem;}
  .si-chef{left:29.0625rem}
  .si-chef-copy{left:4.375rem;top:4.375rem}
  .si-chef-profile{left:39.0625rem;top:4.3125rem}

  .si-access-image{left:29.0625rem;top:35.0625rem}
  .si-property-name,.si-address,.si-access-method{left:29.0625rem}
  .si-property-name{top:83.1875rem}
  .si-address{top:86.9375rem}
  .si-access-method{padding-left:1.875rem}
  .si-access-method p{margin-top:1.375rem}
  .si-access-method small{margin-top:.9375rem}
  .si-access-method.car{top:90.9375rem}
  .si-access-method.bicycle{top:101.8125rem}
  .si-access-method.boat{top:110.5rem}

  .si-faq-head,.si-faq-group{left:29.0625rem}
  .si-faq-list{margin-top:2rem}
}

@media(max-width:1040px){
  :root{
    --si-space-10:.4375rem;
    --si-space-20:.875rem;
    --si-space-30:1.3125rem;
    --si-space-50:2.1875rem;
    --si-space-70:3.0625rem;
    --si-space-100:4.375rem;
    --si-space-120:5.25rem;
    --si-space-150:6.5625rem;
  }

  .si-hero{padding:var(--si-space-100) var(--pad) var(--si-space-120)}
  .si-hero-en{margin-top:var(--si-space-20)}
  .si-hero-copy{margin-top:var(--si-space-50)}
  
  .si-hero-image{margin-top:var(--si-space-70)}

  .si-rooms{padding:0 var(--pad) var(--si-space-120)}
  .si-equipment,.si-food,.si-access,.si-faq{
    padding:var(--si-space-120) var(--pad) var(--si-space-120)
  }
  .si-section-intro{margin-top:var(--si-space-70)}
  .si-section-intro p{margin-top:var(--si-space-50)}

  .si-room{margin-top:var(--si-space-100)}
  .si-room:first-of-type{margin-top:var(--si-space-120)}
  .si-room:not(:last-of-type)::after{margin-top:var(--si-space-100)}
  .si-room-thumbs{gap:var(--si-space-10);margin-top:var(--si-space-10)}
  .si-room-copy{gap:var(--si-space-30);margin-top:var(--si-space-50)}

  .si-facility{margin-top:var(--si-space-70)}
  .si-equipment .si-facility:first-of-type{margin-top:var(--si-space-120)}
  .si-facility-thumbs{gap:var(--si-space-10);margin-top:var(--si-space-10)}
  .si-facility-copy,.si-facility.image-left .si-facility-copy,
  .si-facility.image-right .si-facility-copy{padding-top:var(--si-space-50)}
  .si-facility-copy p{margin-top:var(--si-space-20)}
  .si-map{margin-top:var(--si-space-120)}
  .si-specs{margin-top:var(--si-space-120)}
  .si-list-title{margin-top:var(--si-space-100)}
  .si-service-photos{gap:var(--si-space-10);margin-top:var(--si-space-50)}
  .si-service-lists.top{margin-top:var(--si-space-70)}
  .si-service-lists.bottom{margin-top:var(--si-space-50)}
  .si-service-lists ul{gap:var(--si-space-10) var(--si-space-20);margin-top:var(--si-space-20)}

  .si-food-hero,.si-access-image{margin-top:var(--si-space-120)}
  .si-meal{margin-top:var(--si-space-100)}
  .si-food .si-meal:first-of-type{margin-top:var(--si-space-120)}
  .si-meal-copy p{margin-top:var(--si-space-20)}
  .si-meal-copy small{margin-top:var(--si-space-30);padding-top:var(--si-space-30)}
  .si-chef{margin-top:var(--si-space-120)}
  .si-chef-profile{margin-top:var(--si-space-50)}

  .si-property-name{margin-top:var(--si-space-70)}
  .si-address{margin-top:var(--si-space-10)}
  .si-access-method{margin-top:var(--si-space-50)}

  .si-faq-group{margin-top:var(--si-space-100)}
  .si-faq-list{margin-top:var(--si-space-30)}
}


/* v44 style block 5: fab-footer-width-sync-v01 */

.setoda-footer-phrase{
  width:min(90vw,var(--setoda-frame));
  max-width:none;
  margin-inline:auto;
}
@media(max-width:760px){
  .setoda-footer-phrase{width:calc(100% - 40px)}
}

/* FAQ bilingual answer hierarchy: keep question, Japanese answer, and English answer visually distinct without changing collapsed row heights. */
.si-faq-answer{
  padding:12px 90px 42px 30px;
  background:transparent;
  font-size:inherit;
  line-height:normal;
  letter-spacing:normal;
}
.si-faq-answer-ja{
  margin:0;
  color:var(--brown);
  font-family:var(--serif);
  font-size:14px;
  line-height:2.2;
  letter-spacing:.04em;
}
.si-faq-answer-en{
  margin:20px 0 0;
  padding-top:18px;
  border-top:1px solid rgba(72,45,18,.12);
  color:var(--brown-soft);
  font-family:var(--sans);
  font-size:13px;
  line-height:1.95;
  letter-spacing:.025em;
}
@media(max-width:760px){
  .si-faq-answer{padding:10px 30px 34px 12px;}
  .si-faq-answer-ja{font-size:13px;line-height:2.15;}
  .si-faq-answer-en{margin-top:16px;padding-top:15px;font-size:12px;line-height:1.9;letter-spacing:.015em;}
}


/* v44 style block 6: fab-stay-polish-v02 */

/* TOP FAQ readability rule carried over: meaningful reading text is not allowed to collapse into micro-copy sizes. */


@media(max-width:1040px){
  
  .si-faq-trigger,.si-faq-item.is-long .si-faq-trigger{font-size:14px !important;line-height:1.8!important}
  .si-faq-trigger em{font-size:13px !important;line-height:1.75!important}
  .si-faq-answer-ja{font-size:14px !important;line-height:2.12!important}
  .si-faq-answer-en{font-size:13px !important;line-height:1.92!important}
  .si-specs dd span,
  .si-meal-copy small,
  .si-chef-profile p,
  .si-access-method small{font-size:13px !important;line-height:1.95!important}
}
@media(max-width:760px){
  .si-faq-answer{padding-top:12px!important}
}


/* v44 style block 7: si-top-responsive-master-v1 */

/*
  farm and bed SETODA / STAY INFORMATION
  Responsive layer based on the latest TOP smartphone master.
  Desktop geometry (>=1041px) is intentionally untouched.
*/
@media (max-width:1040px){
  :root{
    --mobile-gutter:20px;
    --mobile-space-1:8px;
    --mobile-space-2:12px;
    --mobile-space-3:20px;
    --mobile-space-4:28px;
    --mobile-space-5:40px;
    --mobile-space-6:56px;
    --mobile-space-7:80px;
    --mobile-space-8:104px;
    --mobile-group-tight:16px;
    --mobile-group-inner:28px;
    --mobile-group-related:44px;
    --mobile-group-separate:88px;
  }
}

/* TOP master: fixed reservation CTA is contextual, not permanently visible. */
@media (max-width:980px){
  body{padding-bottom:0!important}
  body.mobile-cta-visible{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}

}

@media (max-width:760px){
  :root{
    --pad:var(--mobile-gutter);
    --setoda-mobile-title:clamp(32px,9vw,38px);
    --setoda-mobile-section:clamp(31px,8.6vw,35px);
    --setoda-mobile-h3:clamp(23px,6.6vw,27px);
    --setoda-mobile-lead:16px;
    --setoda-mobile-body:15px;
    --setoda-mobile-small:14px;
    --setoda-mobile-meta:10px;
  }

  html{scroll-padding-top:calc(var(--fab-header-height,64px) + 16px)}
  body{font-size:14px;line-height:1.95;overflow-x:clip}

  /* COMMON MASTER / HEADER */
  .header{
    min-height:56px;
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-bottom:10px;
    padding-left:max(var(--mobile-gutter),env(safe-area-inset-left));
    padding-right:max(var(--mobile-gutter),env(safe-area-inset-right));
  }
  .header.scrolled{padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:8px}
  .header-actions{gap:8px}
  .utility-btn{min-width:44px;min-height:44px;padding-inline:14px}
  .menu-btn{width:44px;padding:0}
  .menu-lines{width:16px;height:10px}
  .menu-lines::before,.menu-lines::after{width:16px}


  /* STAY / HERO: mobile is editorial flow, not scaled desktop coordinates. */
  .si-header-slot{height:64px!important}
  .si-hero{padding:82px var(--mobile-gutter) var(--mobile-space-8)!important}
  .si-hero h1{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
    line-height:1.55!important;
    letter-spacing:.065em!important;
  }
  .si-hero-en{margin-top:12px!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-meta)) !important;letter-spacing:.1em!important}
  .si-hero-copy{
    max-width:none!important;
    margin-top:var(--mobile-space-5)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.15!important;
    letter-spacing:.035em!important;
  }
  .si-hero-copy br{display:none!important}
  
  
  
  .si-hero-image{aspect-ratio:4/3!important;margin-top:var(--mobile-space-6)!important;border-radius:8px!important}

  /* STAY / common section rhythm. */
  .si-rooms{padding:0 var(--mobile-gutter) var(--mobile-space-8)!important}
  .si-equipment,.si-food,.si-access,.si-faq{padding:var(--mobile-space-8) var(--mobile-gutter)!important}
  .si-section-head,.si-faq-head{width:100%!important}
  .si-section-name h2,.si-faq-head h2{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-section)) !important;
    line-height:1.6!important;
    letter-spacing:.055em!important;
  }
  .si-section-name p,.si-faq-head p{margin-top:4px!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-meta)) !important}
  .si-section-intro{margin-top:var(--mobile-space-5)!important}
  .si-section-intro h3{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-h3)) !important;
    line-height:1.82!important;
    letter-spacing:.055em!important;
  }
  .si-section-intro h3 br,.si-section-intro p br{display:none!important}
  .si-section-intro p{
    margin-top:var(--mobile-group-inner)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.18!important;
  }

  /* ROOMS: image family -> title/body is one semantic unit. */
  .si-room{margin-top:var(--mobile-group-separate)!important}
  .si-room:first-of-type{margin-top:var(--mobile-space-6)!important}
  .si-room:not(:last-of-type)::after{margin-top:var(--mobile-group-separate)!important}
  .si-room-main{aspect-ratio:4/3!important;border-radius:8px!important}
  .si-room-thumbs{gap:8px!important;margin-top:8px!important}
  .si-thumb{border-radius:6px!important;min-height:44px}
  .si-room-copy{
    display:block!important;
    margin-top:var(--mobile-group-inner)!important;
    padding:0!important;
  }
  .si-room-copy h3{font-size:26px !important;line-height:1.65!important}
  .si-room-copy p{
    margin-top:var(--mobile-group-tight)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.16!important;
  }

  /* FACILITIES: mobile always reads photo -> narrative. */
  .si-facility{margin-top:var(--mobile-space-7)!important}
  .si-facility-gallery{order:1!important}
  .si-facility-gallery>img{aspect-ratio:4/3!important;border-radius:8px!important}
  .si-facility-thumbs{gap:8px!important;margin-top:8px!important}
  .si-facility-copy,.si-facility.image-left .si-facility-copy,.si-facility.image-right .si-facility-copy{
    order:2!important;
    padding:var(--mobile-group-inner) 0 0!important;
  }
  .si-facility-copy h3{font-size:25px !important;line-height:1.7!important}
  .si-facility-copy p{margin-top:var(--mobile-group-tight)!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-map{aspect-ratio:4/3!important;margin-top:var(--mobile-space-7)!important;border-radius:8px!important}

  .si-specs{margin-top:var(--mobile-space-6)!important}
  .si-specs>div{grid-template-columns:96px minmax(0,1fr)!important;gap:16px!important;padding:18px 0!important;font-size:14px !important}
  .si-specs dt{font-size:14px !important}
  .si-specs dd{min-width:0;font-size:14px !important;line-height:1.95!important}
  .si-specs dd span{font-size:13px !important;line-height:1.9!important}
  .si-list-title{margin-top:var(--mobile-space-7)!important;font-size:25px !important;line-height:1.7!important}

  /* Photo sets use native touch scrolling, with the next image peeking. */
  .si-service-photos{
    display:flex!important;
    gap:12px!important;
    margin-top:var(--mobile-group-inner)!important;
    margin-right:calc(var(--mobile-gutter) * -1)!important;
    padding-right:var(--mobile-gutter)!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .si-service-photos::-webkit-scrollbar{display:none}
  .si-service-photos figure{
    flex:0 0 80vw!important;
    max-width:330px!important;
    aspect-ratio:4/3!important;
    border-radius:8px!important;
    scroll-snap-align:start;
  }
  .si-service-lists{grid-template-columns:1fr!important;gap:var(--mobile-space-5)!important}
  .si-service-lists.top{margin-top:var(--mobile-space-6)!important}
  .si-service-lists.bottom{margin-top:var(--mobile-space-5)!important}
  .si-service-lists h4{font-size:18px !important;line-height:1.7!important}
  .si-service-lists ul{grid-template-columns:1fr!important;margin-top:var(--mobile-group-tight)!important;font-size:14px !important;line-height:2!important}

  /* DINING: plan title -> image -> copy, with calm repeated rhythm. */
  .si-food-hero,.si-access-image{aspect-ratio:4/3!important;margin-top:var(--mobile-space-6)!important;border-radius:8px!important}
  .si-meal{margin-top:var(--mobile-group-separate)!important}
  .si-food .si-meal:first-of-type{margin-top:var(--mobile-space-7)!important}
  .si-meal-title{font-size:22px !important;line-height:1.75!important}
  .si-meal figure{aspect-ratio:4/3!important;margin:var(--mobile-group-inner) 0!important;border-radius:8px!important}
  .si-meal-copy h4{font-size:18px !important;line-height:1.8!important}
  .si-meal-copy p{margin-top:var(--mobile-group-tight)!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-meal-copy small{margin-top:var(--mobile-space-4)!important;padding-top:var(--mobile-space-4)!important;font-size:13px !important;line-height:1.95!important}
  .si-chef{margin-top:var(--mobile-space-7)!important;padding:24px 20px!important;border-radius:4px}
  .si-chef-copy h3{font-size:23px !important}
  .si-chef-copy p{font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-chef-profile{margin-top:var(--mobile-space-5)!important}
  .si-chef-profile figure{aspect-ratio:4/3!important;border-radius:8px!important}
  .si-chef-profile h4{font-size:14px !important}
  .si-chef-profile p{font-size:13px !important;line-height:1.95!important}


  /* 320px hardening: long divider headings and reservation internals must shrink within the 20px gutter. */
  .si-service-lists,.si-service-block,.si-service-lists h4,.si-service-lists ul{min-width:0!important;max-width:100%!important}
  .si-service-lists h4{white-space:normal!important}
  .si-service-lists h4::after{width:auto!important;flex:1 1 auto!important;min-width:20px}
  .setoda-reservation-card,.setoda-reservation-copy,.setoda-reservation-action{min-width:0!important;max-width:100%!important}
  .setoda-reservation-action{grid-template-columns:minmax(0,1fr) auto!important;gap:8px 14px!important}
  .setoda-reservation-action strong{min-width:0;overflow-wrap:anywhere}

  /* ACCESS */
  .si-property-name{margin-top:var(--mobile-space-6)!important;font-size:22px !important;line-height:1.7!important}
  .si-address{margin-top:8px!important;font-size:13px !important;line-height:1.8!important}
  .si-access-method{margin-top:var(--mobile-space-5)!important;padding-left:18px!important}
  .si-access-method h4{font-size:19px !important;line-height:1.7!important}
  .si-access-method p{margin-top:var(--mobile-group-tight)!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-access-method small{font-size:13px !important;line-height:1.95!important}

  /* FAQ: reading text never collapses into micro copy; tap areas remain generous. */
  .si-faq-group{margin-top:var(--mobile-space-7)!important}
  .si-faq-group h3{height:auto!important;align-items:flex-start!important;font-size:19px !important;line-height:1.65!important}
  .si-faq-group h3 i{height:26px!important}
  .si-faq-group h3 span{font-size:13px !important;line-height:1.75!important}
  .si-faq-list{margin-top:var(--mobile-space-4)!important}
  .si-faq-trigger,.si-faq-item.is-long .si-faq-trigger{
    min-height:64px!important;
    padding:18px 38px 18px 12px!important;
    font-size:14px !important;
    line-height:1.8!important;
  }
  .si-faq-trigger:hover{padding:18px 38px 18px 12px!important;background:transparent!important}
  .si-faq-trigger em{margin-top:5px!important;font-size:13px !important;line-height:1.75!important}
  .si-faq-trigger>i{right:10px!important;width:18px!important;height:18px!important}
  .si-faq-answer{padding:12px 30px 34px 12px!important}
  .si-faq-answer-ja{font-size:14px !important;line-height:2.12!important}
  .si-faq-answer-en{margin-top:16px!important;padding-top:15px!important;font-size:13px !important;line-height:1.92!important}

  /* EXPLORE MORE: retain the PC visual language but reflow vertically. */

  /* COMMON MASTER / RESERVATION */
  .setoda-reservation{padding:var(--mobile-space-7) 0 var(--mobile-space-8)!important}
  .setoda-reservation-inner{width:calc(100% - 40px)!important}
  .setoda-reservation-head{display:block!important;margin-bottom:var(--mobile-space-5)!important}
  .setoda-reservation-head p{margin-bottom:12px!important}
  .setoda-reservation-head h2{margin-top:0!important;font-size:40px !important}
  .setoda-reservation-card{grid-template-columns:1fr!important;gap:var(--mobile-space-5)!important;min-height:0!important;padding:32px 25px!important;border-radius:4px!important}
  .setoda-reservation-copy h3{font-size:27px !important;line-height:1.62!important}
  .setoda-reservation-copy p{font-size:15px !important;line-height:2!important}
  .setoda-reservation-action{padding:24px 0 0!important;border-left:0!important;border-top:1px solid var(--setoda-line)!important}
  .setoda-reservation-sub{justify-content:flex-start!important;flex-direction:column!important;margin-top:var(--mobile-group-inner)!important;gap:0!important}
  .setoda-reservation-sub a{justify-content:space-between!important;min-height:46px!important;margin:0!important}
  .setoda-reservation-sub a + a{border-top:1px solid rgba(22,75,45,.12)!important}

  /* COMMON MASTER / FOOTER density and two-line brand phrase. */
  .setoda-footer-directory.setoda-footer-directory-sketch{
    width:calc(100% - 40px)!important;
    grid-template-columns:1fr!important;
    gap:var(--mobile-group-related)!important;
    padding:var(--mobile-space-7) 0 var(--mobile-space-6)!important;
  }
  .setoda-footer-profile{grid-template-columns:auto minmax(0,1fr)!important;column-gap:20px!important;row-gap:16px!important;align-items:start!important}
  .setoda-footer-stamp{grid-row:1/3!important;width:88px!important}
  .setoda-footer-address{gap:5px!important;min-width:0!important}
  .setoda-footer-address b{font-size:12px !important}
  .setoda-footer-address span{font-size:11px !important;line-height:1.75!important}
  .setoda-footer-booking{grid-column:1/-1!important;max-width:none!important;min-height:68px!important}
  .setoda-footer-menu-heading{display:grid!important;gap:7px!important;margin-bottom:var(--mobile-group-inner)!important}
  .setoda-footer-feature-links{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 12px!important;margin-bottom:var(--mobile-group-related)!important}
  .setoda-footer-feature-links figure{aspect-ratio:1.35/1!important}
  .setoda-footer-feature-links span{font-size:12px !important}
  .setoda-footer-utility-area{gap:8px!important}
  .setoda-footer-text-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 16px!important}
  .setoda-footer-text-links a,.setoda-footer-instagram{min-height:44px!important}
  .setoda-footer-instagram{margin-top:4px!important}
  .setoda-footer-legal{display:grid!important;margin-top:8px!important;gap:0!important}
  .setoda-footer-legal a{min-height:38px!important}
  .setoda-footer-phrase{
    width:calc(100% - 40px)!important;
    display:grid!important;
    grid-template-rows:auto auto!important;
    align-content:center!important;
    row-gap:24px!important;
    height:auto!important;
    min-height:176px!important;
    margin-inline:auto!important;
    padding:30px 0!important;
  }
  .setoda-footer-phrase span{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
    white-space:nowrap!important;
    font-size:max(var(--fab-font-minimum), clamp(20px,6vw,28px)) !important;
    line-height:1.5!important;
    letter-spacing:.04em!important;
  }
  .setoda-footer-phrase-one{justify-self:start!important;text-align:left!important}
  .setoda-footer-phrase-two{justify-self:end!important;text-align:right!important}
  .setoda-footer-bottom{
    width:calc(100% - 40px)!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
    gap:12px!important;
    padding:18px 0 calc(24px + env(safe-area-inset-bottom))!important;
    font-size:var(--fab-font-minimum) !important;
    line-height:1.45!important;
  }
  .setoda-footer-bottom>span{white-space:nowrap!important}
  .setoda-footer-bottom>div{display:block!important;justify-self:end!important;text-align:right!important;min-width:0!important}
  .setoda-footer-bottom>div span{white-space:nowrap!important}

  /* COMMON MASTER / mobile menu: one clear reading column and comfortable targets. */
  .menu-panel{padding-top:max(58px,env(safe-area-inset-top))!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .menu-shell{min-height:calc(100vh - 58px)!important;min-height:calc(100dvh - 58px)!important;}
  .menu-visual{min-height:24vh!important;min-height:24dvh!important;height:24vh!important;height:24dvh!important;}
  .menu-visual-copy{left:20px!important;right:20px!important;bottom:18px!important}
  .menu-visual-copy>span{margin-bottom:7px!important}
  .menu-visual-copy strong{font-size:17px !important;line-height:1.65!important}
  .menu-visual-copy small{margin-top:8px!important}
  .menu-directory{padding:30px var(--mobile-gutter) calc(32px + env(safe-area-inset-bottom))!important}
  .menu-directory-head{padding-bottom:22px!important}
  .menu-directory-head h2{font-size:22px !important;line-height:1.62!important}
  .menu-directory-head p{margin-top:12px!important;font-size:13px !important;line-height:1.9!important}
  .menu-directory-body{display:block!important;padding:14px 0 24px!important}
  .menu-primary{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  .menu-primary a{grid-template-columns:28px minmax(0,1fr) 18px!important;gap:12px!important;min-height:60px!important;padding:8px 2px!important}
  .menu-no{font-size:var(--fab-font-minimum) !important}
  .menu-label b{font-size:15px !important;line-height:1.5!important}
  .menu-label small{margin-top:2px!important;font-size:var(--fab-font-minimum) !important}
  .menu-aside{margin-top:24px!important}
  .menu-reservation{min-height:70px!important;padding:17px 18px!important;background:var(--brown)!important;color:#fff9ee!important;border-radius:4px}
  .menu-reservation strong{font-size:16px !important}
  .menu-utility-links{display:grid!important;grid-template-columns:1fr!important;margin-top:20px!important;border-top:1px solid var(--line)!important}
  .menu-utility-links a{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;min-height:50px!important;padding:9px 0!important}
  .menu-utility-links a small{margin-top:0!important;text-align:right!important}
  .menu-contact-meta{margin-top:20px!important;gap:6px!important}
  .menu-footer{grid-template-columns:1fr auto!important;gap:10px 18px!important;margin-top:20px!important;padding-top:16px!important;padding-bottom:4px!important}
  .menu-footer span:nth-child(3){grid-column:2}
  .menu-footer small{grid-column:1/-1!important}

  /* Touch devices must not depend on hover-only motion. */
  .setoda-reservation-card:hover{transform:none!important;box-shadow:none!important}
}

@media (max-width:560px){
  .si-service-photos figure{flex-basis:82vw!important}
}

@media (max-width:430px){
  .si-specs>div{grid-template-columns:88px minmax(0,1fr)!important;gap:14px!important}
  .setoda-footer-feature-links,.setoda-footer-text-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media (max-width:340px){
  .setoda-footer-text-links{column-gap:10px!important}
  .setoda-footer-text-links a{font-size:12px !important}
  .setoda-footer-bottom{font-size:var(--fab-font-minimum) !important;gap:8px!important}
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .si-scroll-reveal,.reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
}
@media (max-width:1040px){
  :root{
    --mobile-gutter:20px;
    --mobile-space-1:8px;
    --mobile-space-2:12px;
    --mobile-space-3:20px;
    --mobile-space-4:28px;
    --mobile-space-5:40px;
    --mobile-space-6:56px;
    --mobile-space-7:80px;
    --mobile-space-8:104px;
  }
}

@media (max-width:980px){
  body{padding-bottom:0!important}
  body.mobile-cta-visible{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
  .page-index{
    bottom:calc(12px + env(safe-area-inset-bottom))!important;
    transition:opacity .45s var(--setoda-ease),visibility .45s var(--setoda-ease),transform .45s var(--setoda-ease),width .45s var(--ease),bottom .35s var(--ease)!important;
  }
  body.mobile-cta-visible .page-index{
    bottom:calc(88px + env(safe-area-inset-bottom))!important;
  }
}

@media (max-width:760px){
  :root{
    --pad:var(--mobile-gutter);
    --setoda-mobile-title:clamp(30px,8.2vw,34px);
    --setoda-mobile-display:clamp(38px,10.2vw,42px);
    --setoda-mobile-h3:clamp(28px,7.8vw,31px);
    --setoda-mobile-lead:16px;
    --setoda-mobile-body:15px;
    --setoda-mobile-small:14px;
    --setoda-mobile-meta:10px;
  }

  html{scroll-padding-top:calc(var(--fab-header-height,64px) + 16px)}
  body{
    font-size:14px;
    line-height:1.95;
    overflow-x:clip;
  }

  .header{
    min-height:56px;
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-bottom:10px;
    padding-left:max(var(--mobile-gutter),env(safe-area-inset-left));
    padding-right:max(var(--mobile-gutter),env(safe-area-inset-right));
  }
  .header.scrolled{
    padding-top:calc(8px + env(safe-area-inset-top));
    padding-bottom:8px;
  }
  .header-actions{gap:8px}
  .utility-btn{
    min-width:44px;
    min-height:44px;
    padding-inline:14px;
  }
  .menu-btn{width:44px;padding:0}
  .menu-lines{width:16px;height:10px}
  .menu-lines::before,.menu-lines::after{width:16px}
  .logo{min-width:132px}
  .logo img{height:auto;object-fit:contain}
  .scene-nav{
    left:var(--mobile-gutter);
    right:var(--mobile-gutter);
    bottom:calc(26px + env(safe-area-inset-bottom));
    min-height:44px;
    padding-top:12px;
  }
  .scene-buttons{gap:6px}
  .scene-btn{
    min-width:68px;
    min-height:44px;
    padding:8px 5px 8px 30px;
    font-size:var(--fab-font-minimum);
  }
  .scene-btn::before,.scene-btn.is-active::before{width:24px}
  .scene-btn.is-active::after{max-width:24px}
  [data-hero-drift]{transform:none!important}

  .quick-booking{
    padding:var(--mobile-space-7) var(--mobile-gutter) var(--mobile-space-6)!important;
  }
  .quick-booking-form{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr!important;
    gap:0;
    padding:14px!important;
    border-radius:4px;
  }
  .quick-booking-field{
    min-width:0;
    min-height:72px;
    margin:0!important;
    padding:14px 10px 12px!important;
  }
  .quick-booking-date{grid-column:1/-1!important}
  .quick-booking-field:nth-of-type(2){grid-column:1}
  .quick-booking-field:nth-of-type(3){grid-column:2}
  .quick-booking-field:nth-of-type(4){grid-column:1/-1!important}
  .quick-booking-field label{font-size:11px !important}
  .quick-booking-field input,
  .quick-booking-field select{
    width:100%;
    min-height:32px;
    font-size:16px !important;
    line-height:1.4;
  }
  .quick-booking-date input{font-size:18px !important}
  .quick-booking-links{
    grid-column:1/-1!important;
    display:flex;
    justify-content:space-between;
    gap:12px 18px;
    min-height:52px;
    padding:16px 10px!important;
  }
  .quick-booking-links a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    font-size:11px !important;
  }
  .quick-booking-submit{
    grid-column:1/-1!important;
    min-height:58px!important;
    margin-top:6px;
    font-size:13px !important;
  }

  .setoda-intro{
    padding:var(--mobile-space-8) 0 calc(var(--mobile-space-8) + 8px)!important;
  }
  .setoda-intro-shell{width:calc(100% - (var(--mobile-gutter) * 2))!important}
  .setoda-intro-composition{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    min-height:0!important;
  }
  .setoda-intro-center{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    grid-column:1/-1!important;
    grid-row:1!important;
    width:100%!important;
    max-width:none!important;
    padding:0 0 var(--mobile-space-6)!important;
    transform:none!important;
    text-align:left!important;
  }
  .setoda-intro-center.reveal,
  .setoda-intro-center.reveal.in{transform:none!important}
  .setoda-round-label,
  .setoda-intro-eyebrow{text-align:left}
  .setoda-intro-center h2{
    max-width:100%!important;
    margin-inline:0!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
    line-height:1.72!important;
    text-align:left!important;
  }
  .setoda-intro-story{
    width:100%!important;
    max-width:100%!important;
    margin-top:var(--mobile-space-5)!important;
    padding-top:var(--mobile-space-4)!important;
    text-align:left!important;
  }
  .setoda-intro-story p{
    margin-bottom:2.1em!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.15!important;
  }
  .setoda-intro-orbit{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:auto!important;
    overflow:hidden;
  }
  .setoda-intro-orbit-left-main{
    grid-column:1/-1!important;
    grid-row:2!important;
    height:66vw!important;
    margin:0!important;
  }
  .setoda-intro-orbit-left-secondary-v08{
    display:block!important;
    grid-column:1!important;
    grid-row:3!important;
    height:48vw!important;
    margin:var(--mobile-space-3) 0 0!important;
  }
  .setoda-intro-orbit-right-top{
    grid-column:2!important;
    grid-row:3!important;
    height:58vw!important;
    margin:var(--mobile-space-6) 0 0!important;
  }
  .setoda-intro-orbit-right-mid{
    grid-column:1/-1!important;
    grid-row:4!important;
    width:76%!important;
    height:58vw!important;
    margin:var(--mobile-space-5) 0 0 auto!important;
  }
  .setoda-intro-parallax-media{
    will-change:transform!important;
  }
  .setoda-island-location-note{
    position:relative!important;
    grid-column:1/-1!important;
    grid-row:5!important;
    left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    margin-top:var(--mobile-space-5);
  }

  .setoda-values-header{
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
    padding:var(--mobile-space-8) 0 var(--mobile-space-7)!important;
  }
  .setoda-values h2{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-display)) !important;
    line-height:1.28!important;
  }
  .setoda-values-intro{
    margin-top:var(--mobile-space-4);
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-small)) !important;
    line-height:2.05!important;
  }
  .setoda-values-stage{display:block!important}
  .setoda-values-visual,.setoda-value-thumbs{display:none!important}
  .setoda-value{
    display:block!important;
    min-height:0!important;
    padding:var(--mobile-space-7) var(--mobile-gutter) var(--mobile-space-8)!important;
  }
  .setoda-value + .setoda-value{border-top:1px solid var(--setoda-line)}
  .setoda-value-inner{max-width:none!important}
  .setoda-value-meta{font-size:max(var(--fab-font-minimum), var(--setoda-mobile-meta)) !important}
  .setoda-value-category{
    margin-top:var(--mobile-space-5)!important;
    font-size:12px !important;
  }
  .setoda-value h3{
    margin-bottom:var(--mobile-space-4)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-h3)) !important;
    line-height:1.62!important;
  }
  .setoda-value-body p{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.15!important;
  }
  .setoda-text-link{
    min-height:44px;
    margin-top:var(--mobile-space-4)!important;
  }
  .setoda-value-mobile-image{
    display:block!important;
    height:auto!important;
    aspect-ratio:4/3;
    margin-top:var(--mobile-space-6)!important;
    overflow:hidden;
    border-radius:var(--fab-content-image-radius,8px);
  }
  .setoda-value-mobile-image img{
    position:static!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover;
    transform:none!important;
  }

  .stay-support{
    padding-top:var(--mobile-space-8)!important;
    padding-bottom:var(--mobile-space-8)!important;
  }
  .support-head{gap:var(--mobile-space-4)!important;margin-bottom:var(--mobile-space-5)!important}
  .support-head p{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-small)) !important;
    line-height:2.05!important;
  }
  .support-accordion-trigger{
    grid-template-columns:36px minmax(0,1fr) 32px!important;
    gap:10px 14px!important;
    min-height:64px!important;
    padding:22px 0!important;
  }
  .support-accordion-trigger strong{font-size:15px !important}
  .support-summary{font-size:13px !important;line-height:1.85!important}
  .support-toggle{width:28px!important;height:28px!important}
  .support-detail-grid{grid-template-columns:1fr!important;padding-left:36px!important}
  .support-detail-grid>div{padding:20px 16px!important}
  .support-lower-links{grid-template-columns:1fr!important}

  .setoda-about{
    height:auto!important;
    min-height:760px!important;
    display:flex;
    align-items:flex-end;
    padding:
      calc(var(--mobile-space-8) + 20px)
      var(--mobile-gutter)
      var(--mobile-space-7)!important;
    overflow:hidden;
  }
  .setoda-about-media img{
    top:0!important;
    height:100%!important;
    transform:scale(1.03)!important;
    transition:none!important;
    will-change:auto!important;
  }
  .setoda-about-type{
    top:96px!important;
    font-size:max(var(--fab-font-minimum), clamp(54px,16vw,78px)) !important;
    line-height:1!important;
  }
  .setoda-about-content{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:430px!important;
  }
  .setoda-about-content h2{
    max-width:100%!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
    line-height:1.65!important;
  }
  .setoda-about-content>p:not(.setoda-about-eyebrow){
    max-width:100%!important;
    font-size:14px !important;
    line-height:2.05!important;
  }
  .setoda-about-link{
    min-height:44px;
    margin-top:var(--mobile-space-4)!important;
  }

  .setoda-reservation{
    padding:var(--mobile-space-8) 0 calc(var(--mobile-space-8) + 8px)!important;
  }
  .setoda-reservation-inner{width:calc(100% - (var(--mobile-gutter) * 2))!important}
  .setoda-reservation-head{margin-bottom:var(--mobile-space-5)!important}
  .setoda-reservation-head h2{
    margin-top:16px!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
  }
  .setoda-reservation-card{
    grid-template-columns:1fr!important;
    gap:var(--mobile-space-4)!important;
    min-height:0!important;
    padding:30px 24px!important;
  }
  .setoda-reservation-copy h3{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-h3)) !important;
    line-height:1.6!important;
  }
  .setoda-reservation-copy p{font-size:14px !important}
  .setoda-reservation-action{
    min-height:64px;
    padding:22px 0 0!important;
    border-left:0!important;
    border-top:1px solid var(--setoda-line)!important;
  }
  .setoda-reservation-sub{
    flex-direction:column!important;
    gap:12px!important;
  }
  .setoda-reservation-sub a{
    min-height:48px;
    justify-content:space-between!important;
  }

  .setoda-footer-directory.setoda-footer-directory-sketch,
  .setoda-footer-phrase,
  .setoda-footer-bottom{
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
  }
  .setoda-footer-directory.setoda-footer-directory-sketch{
    grid-template-columns:1fr!important;
    gap:var(--mobile-space-6)!important;
    padding:var(--mobile-space-7) 0 var(--mobile-space-7)!important;
  }
  .setoda-footer-profile{
    grid-template-columns:1fr!important;
    gap:var(--mobile-space-4)!important;
  }
  .setoda-footer-brand-logo{width:150px!important}
  .setoda-footer-booking{
    grid-column:auto!important;
    max-width:none!important;
    min-height:64px!important;
  }
  .setoda-footer-feature-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:22px 12px!important;
  }
  .setoda-footer-text-links{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important;
    gap:10px 16px!important;
  }
  .setoda-footer-text-links a,
  .setoda-footer-instagram{
    width:auto!important;
    min-width:0;
    min-height:44px;
    display:flex;
    align-items:center;
    overflow-wrap:anywhere;
  }
  .setoda-footer-legal{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:4px!important;
  }
  .setoda-footer-legal a{
    display:flex;
    align-items:center;
    min-height:40px;
    width:auto!important;
  }
  .setoda-footer-phrase{
    height:auto!important;
    min-height:300px;
    padding:0!important;
  }
  .setoda-footer-phrase span{
    left:0!important;
    right:0!important;
    width:100%;
    white-space:normal!important;
    font-size:max(var(--fab-font-minimum), clamp(26px,7.6vw,34px)) !important;
    line-height:1.55!important;
  }
  .setoda-footer-phrase-one{top:20%!important}
  .setoda-footer-phrase-two{top:56%!important;text-align:right}
  .setoda-footer-bottom{
    flex-direction:column!important;
    gap:10px!important;
    padding-bottom:calc(34px + env(safe-area-inset-bottom))!important;
  }
  .setoda-footer-bottom>div{justify-content:flex-start!important}
  .page-index{
    left:11px!important;
    right:auto!important;
    width:176px!important;
    padding:0!important;
  }
  .page-index.is-open{width:min(228px,calc(100vw - 22px))!important}
  .page-index-mobile-toggle{
    min-height:44px!important;
    padding:8px 10px!important;
    grid-template-columns:42px minmax(0,1fr) 14px!important;
  }
  .page-index-mobile-label{font-size:var(--fab-font-minimum) !important}
  .page-index-mobile-toggle em{font-size:var(--fab-font-minimum) !important}
  .page-index-link,.page-index-link.is-active{
    min-height:40px!important;
  }
}

@media (max-width:560px){
  .quick-booking{padding-inline:var(--mobile-gutter)!important}
  .quick-booking-form{grid-template-columns:1fr 1fr!important}
}

@media (max-width:430px){
  .setoda-about-content{margin-top:400px!important}
  .setoda-footer-feature-links{grid-template-columns:1fr!important}
  .setoda-footer-feature-links figure{aspect-ratio:1.35/1!important}
  .setoda-footer-text-links{grid-template-columns:1fr!important}
}

@media (hover:none), (pointer:coarse){
  .feature-card:hover img,
  .setoda-footer-feature-links a:hover img{transform:none!important}
  .feature-card:hover,
  .setoda-footer-feature-links a:hover span,
  .setoda-footer-text-links a:hover,
  .setoda-footer-instagram:hover,
  .setoda-footer-booking:hover,
  .setoda-reservation-card:hover{
    transform:none!important;
  }
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .setoda-intro-parallax-media,
  .setoda-about-media img,
  .gallery-track{
    animation:none!important;
    transition:none!important;
    transform:none!important;
  }
}


/* v44 style block 9: top-master-setoda-responsive-refinement-v2 */

/*
  Responsive master refinement v2
  - spacing by semantic grouping
  - stable two-line brand copy
  - calmer FOR YOU visual flow + subtle mobile parallax
  - FEATURE mobile order: identity -> photo -> narrative
  - compact reservation/footer utility groups
*/
@media (max-width:760px){
  :root{
    --mobile-group-tight:16px;
    --mobile-group-inner:28px;
    --mobile-group-related:44px;
    --mobile-group-separate:88px;
  }

  /* FOR YOU: one calm visual path rather than a noisy mini-grid. */
  .setoda-intro{padding-bottom:var(--mobile-group-separate)!important}
  .setoda-intro-composition{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
  }
  .setoda-intro-center{
    order:1!important;
    padding-bottom:var(--mobile-group-related)!important;
  }
  .setoda-intro-story{margin-top:var(--mobile-group-inner)!important}
  .setoda-intro-story p{margin-bottom:1.75em!important}
  .setoda-intro-orbit{
    flex:none;
    contain:paint;
  }
  .setoda-intro-orbit-left-main{
    order:2!important;
    width:86%!important;
    height:auto!important;
    aspect-ratio:4/3;
    margin:0 auto 0 0!important;
  }
  .setoda-intro-orbit-left-secondary-v08{
    order:3!important;
    width:56%!important;
    height:auto!important;
    aspect-ratio:3/4;
    margin:var(--mobile-group-related) 3% 0 auto!important;
  }
  .setoda-intro-orbit-right-top{
    order:4!important;
    width:72%!important;
    height:auto!important;
    aspect-ratio:4/3;
    margin:var(--mobile-group-separate) auto 0 4%!important;
  }
  .setoda-intro-orbit-right-mid{
    order:5!important;
    width:62%!important;
    height:auto!important;
    aspect-ratio:3/4;
    margin:var(--mobile-group-related) 0 0 auto!important;
  }
  .setoda-intro-orbit img{aspect-ratio:auto!important}
  .setoda-intro-parallax-media{
    top:-9%!important;
    bottom:-9%!important;
    background-size:cover!important;
    will-change:transform!important;
  }
  .setoda-island-location-note{
    order:6!important;
    margin-top:var(--mobile-group-related)!important;
  }

  /* FEATURE intro and first story belong to one semantic family. */
  .setoda-values-header{
    padding-bottom:var(--mobile-group-related)!important;
  }
  .setoda-value{
    padding:var(--mobile-group-separate) var(--mobile-gutter) 0!important;
  }
  .setoda-value:first-child{
    padding-top:var(--mobile-group-inner)!important;
  }
  .setoda-value:last-child{
    padding-bottom:var(--mobile-space-8)!important;
  }
  .setoda-value-inner{
    display:flex!important;
    flex-direction:column!important;
  }
  .setoda-value-meta{order:1}
  .setoda-value-category{
    order:2;
    margin:var(--mobile-group-inner) 0 0!important;
  }
  .setoda-value-mobile-image{
    order:3;
    width:100%!important;
    aspect-ratio:1/1!important;
    height:auto!important;
    margin:var(--mobile-group-inner) 0 0!important;
  }
  .setoda-value h3{
    order:4;
    margin:var(--mobile-group-related) 0 var(--mobile-group-inner)!important;
  }
  .setoda-value-body{order:5}
  .setoda-value-body p{margin-bottom:1.35em!important}
  .setoda-text-link{
    order:6;
    margin-top:var(--mobile-group-inner)!important;
  }

  /* ACCESS / FAQ uses the same content width as the rest of the page. */
  .stay-support{
    padding-left:var(--mobile-gutter)!important;
    padding-right:var(--mobile-gutter)!important;
  }
  .support-shell{
    width:100%!important;
    max-width:none!important;
  }

  /* ABOUT: soften the oversized lettering and lock the narrative heading to two lines. */
  .setoda-about-type{
    top:92px!important;
    font-size:max(var(--fab-font-minimum), clamp(46px,14vw,64px)) !important;
    line-height:1.12!important;
    letter-spacing:.012em!important;
    opacity:.84;
  }
  .setoda-about-type span{padding-left:10px!important}
  .setoda-about-type span:nth-child(2){padding-left:6vw!important}
  .setoda-about-type span:nth-child(3){padding-left:18vw!important}
  .setoda-about-content h2{
    font-size:max(var(--fab-font-minimum), clamp(21px,6.3vw,27px)) !important;
    line-height:1.75!important;
    letter-spacing:.035em!important;
  }
  .setoda-about-content h2 br{display:none}
  .setoda-about-line{
    display:block;
    white-space:nowrap;
  }

  /* RESERVATION: consultation + FAQ are one compact secondary action group. */
  .setoda-reservation-card{margin-bottom:14px!important}
  .setoda-reservation-sub{
    margin-top:var(--mobile-group-inner)!important;
    gap:0!important;
  }
  .setoda-reservation-sub a{
    min-height:46px!important;
    margin:0!important;
  }
  .setoda-reservation-sub a + a{
    border-top:1px solid rgba(22,75,45,.12);
  }

  /* FOOTER: keep utility/navigation groups compact while preserving tap area. */
  .setoda-footer-directory.setoda-footer-directory-sketch{
    gap:var(--mobile-group-related)!important;
    padding-top:var(--mobile-space-7)!important;
    padding-bottom:var(--mobile-space-6)!important;
  }
  .setoda-footer-menu-heading{margin-bottom:var(--mobile-group-inner)!important}
  .setoda-footer-feature-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:20px 12px!important;
    margin-bottom:var(--mobile-group-related)!important;
  }
  .setoda-footer-utility-area{gap:8px!important}
  .setoda-footer-text-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0 16px!important;
  }
  .setoda-footer-text-links a,
  .setoda-footer-instagram{
    min-height:44px!important;
  }
  .setoda-footer-instagram{margin-top:4px!important}
  .setoda-footer-legal{
    margin-top:8px;
    gap:0!important;
  }
  .setoda-footer-legal a{min-height:38px!important}

  /* Footer tagline = exactly two semantic lines from 320px through 760px. */
  .setoda-footer-phrase{
    min-height:228px!important;
  }
  .setoda-footer-phrase span{
    width:100%!important;
    white-space:nowrap!important;
    font-size:max(var(--fab-font-minimum), clamp(20px,6vw,28px)) !important;
    line-height:1.5!important;
    letter-spacing:.04em!important;
  }
  .setoda-footer-phrase-one{
    top:25%!important;
    text-align:left!important;
  }
  .setoda-footer-phrase-two{
    top:58%!important;
    text-align:right!important;
    transform:none!important;
  }
}

/* The 430px legacy rule previously stacked footer menus into long single columns. */
@media (max-width:430px){
  .setoda-footer-feature-links,
  .setoda-footer-text-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .setoda-footer-feature-links figure{aspect-ratio:1.35/1!important}
}

@media (max-width:340px){
  .setoda-footer-text-links{column-gap:10px!important}
  .setoda-footer-text-links a{font-size:12px !important}
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .setoda-intro-parallax-media{transform:none!important;will-change:auto!important}
}


/* v44 style block 10: top-master-setoda-responsive-refinement-v3 */

/*
  Responsive master refinement v3
  COMMON MASTER:
  - no fixed INDEX on smartphones
  - resilient category labels
  - compact semantic utility/footer spacing
  - calmer, touch-friendly mobile menu
  TOP ONLY:
  - tighter feature lead -> cards relationship
  - FEATURE photo-first narrative order
  - ABOUT staged alignment
  - continuous gallery flow
*/
@media (max-width:760px){
  /* COMMON MASTER: fixed INDEX is removed on smartphones to preserve viewport space. */
  .page-index{display:none!important}

  /* TOP: give the beginning of FEATURE stories room after the background transition. */
  .setoda-values-header{padding-bottom:48px!important}
  .setoda-value:first-child{padding-top:76px!important}
  .setoda-value + .setoda-value{border-top:0!important}

  /* TOP: identity -> square photo -> category -> title -> body -> detail. */
  .setoda-value-inner{display:flex!important;flex-direction:column!important}
  .setoda-value-meta{order:1!important}
  .setoda-value-mobile-image{
    order:2!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    margin:32px 0 0!important;
    border-radius:var(--fab-content-image-radius,8px)!important;
    overflow:hidden!important;
  }
  .setoda-value-mobile-image img{width:100%!important;height:100%!important;object-fit:cover!important}
  .setoda-value-category{order:3!important;margin:24px 0 0!important}
  .setoda-value h3{order:4!important;margin:14px 0 26px!important}
  .setoda-value-body{order:5!important}
  .setoda-text-link{
    order:6!important;
    align-self:flex-end!important;
    justify-content:flex-end!important;
    margin:22px 0 0 auto!important;
    text-align:right!important;
  }

  /* TOP: ABOUT typography travels from left -> center -> right. */
  .setoda-about-type{
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
    width:auto!important;
    padding:0!important;
  }
  .setoda-about-type span{width:100%!important;margin:0!important;padding:0!important}
  .setoda-about-type span:nth-child(1){justify-self:start!important;text-align:left!important}
  .setoda-about-type span:nth-child(2){justify-self:center!important;text-align:center!important}
  .setoda-about-type span:nth-child(3){justify-self:end!important;text-align:right!important}
  .setoda-about-link{
    display:flex!important;
    width:max-content!important;
    margin:30px 0 0 auto!important;
    justify-content:flex-end!important;
    text-align:right!important;
  }

  /* COMMON MASTER: related reservation utility links are a compact pair. */
  .setoda-reservation-sub{margin-top:14px!important;gap:0!important}
  .setoda-reservation-sub a{min-height:44px!important;padding-top:6px!important;padding-bottom:6px!important}

  /* COMMON MASTER: mobile footer uses tighter semantic grouping. */
  .setoda-footer-directory.setoda-footer-directory-sketch{
    gap:34px!important;
    padding-top:64px!important;
    padding-bottom:26px!important;
  }
  .setoda-footer-address{gap:5px!important}
  .setoda-footer-address span{
    white-space:normal!important;
    font-size:11px !important;
    line-height:1.7!important;
  }
  .setoda-footer-menu-heading{margin-bottom:20px!important}
  .setoda-footer-feature-links{margin-bottom:26px!important;gap:17px 12px!important}
  .setoda-footer-utility-area{gap:2px!important}
  .setoda-footer-text-links{gap:0 14px!important}
  .setoda-footer-text-links a,
  .setoda-footer-instagram{min-height:38px!important}
  .setoda-footer-instagram{margin-top:0!important}
  .setoda-footer-legal{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:0 14px!important;
    margin-top:2px!important;
  }
  .setoda-footer-legal a{
    min-height:28px!important;
    font-size:var(--fab-font-minimum) !important;
    line-height:1.45!important;
    opacity:.78;
  }
  .setoda-footer-phrase{
    min-height:176px!important;
    height:176px!important;
    margin-top:0!important;
  }
  .setoda-footer-phrase-one{top:19%!important}
  .setoda-footer-phrase-two{top:48%!important}
  .setoda-footer-bottom{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
    gap:12px!important;
    padding:18px 0 calc(24px + env(safe-area-inset-bottom))!important;
    font-size:var(--fab-font-minimum) !important;
    line-height:1.45!important;
  }
  .setoda-footer-bottom>span{white-space:nowrap!important}
  .setoda-footer-bottom>div{
    display:block!important;
    justify-self:end!important;
    text-align:right!important;
    min-width:0!important;
  }
  .setoda-footer-bottom>div span{white-space:nowrap!important}

  /* COMMON MASTER: mobile menu prioritizes readability and touch comfort. */
  .menu-panel{
    padding-top:max(58px,env(safe-area-inset-top))!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .menu-shell{min-height:calc(100vh - 58px)!important;min-height:calc(100dvh - 58px)!important;}
  .menu-visual{
    min-height:24vh!important;min-height:24dvh!important;
    height:24vh!important;height:24dvh!important;
  }
  .menu-visual-copy{left:20px!important;right:20px!important;bottom:18px!important}
  .menu-visual-copy>span{margin-bottom:7px!important}
  .menu-visual-copy strong{font-size:17px !important;line-height:1.65!important}
  .menu-visual-copy small{margin-top:8px!important}
  .menu-directory{
    padding:30px var(--mobile-gutter) calc(32px + env(safe-area-inset-bottom))!important;
  }
  .menu-directory-head{padding-bottom:22px!important}
  .menu-directory-head h2{font-size:22px !important;line-height:1.62!important}
  .menu-directory-head p{margin-top:12px!important;font-size:13px !important;line-height:1.9!important}
  .menu-directory-body{display:block!important;padding:14px 0 24px!important}
  .menu-primary{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
  }
  .menu-primary a{
    grid-template-columns:28px minmax(0,1fr) 18px!important;
    gap:12px!important;
    min-height:60px!important;
    padding:8px 2px!important;
  }
  .menu-no{font-size:var(--fab-font-minimum) !important}
  .menu-label b{font-size:15px !important;line-height:1.5!important}
  .menu-label small{margin-top:2px!important;font-size:var(--fab-font-minimum) !important}
  .menu-aside{margin-top:24px!important}
  .menu-reservation{
    min-height:70px!important;
    padding:17px 18px!important;
    background:var(--brown)!important;
    color:#fff9ee!important;
    border-radius:4px;
  }
  .menu-reservation strong{font-size:16px !important}
  .menu-utility-links{
    display:grid!important;
    grid-template-columns:1fr!important;
    margin-top:20px!important;
    border-top:1px solid var(--line)!important;
  }
  .menu-utility-links a{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    min-height:50px!important;
    padding:9px 0!important;
  }
  .menu-utility-links a small{margin-top:0!important;text-align:right!important}
  .menu-contact-meta{margin-top:20px!important;gap:6px!important}
  .menu-footer{
    grid-template-columns:1fr auto!important;
    gap:10px 18px!important;
    margin-top:20px!important;
    padding-top:16px!important;
    padding-bottom:4px!important;
  }
  .menu-footer span:nth-child(3){grid-column:2}
  .menu-footer small{grid-column:1/-1!important}
}

@media (max-width:360px){
  .setoda-footer-bottom{font-size:var(--fab-font-minimum) !important;gap:8px!important}
  .setoda-footer-bottom>div span{letter-spacing:.04em!important}
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
}


/* v44 style block 11: top-master-setoda-responsive-refinement-v4 */

/*
  Responsive master refinement v4
  COMMON MASTER:
  - fixed-width NEWS category lane so every headline starts at one x-position
  - optically balanced footer brand phrase
  TOP ONLY:
  - FOR YOU divider removal
  - FEATURE intro grid intrinsic height
  - FEATURE detail rhythm values
  - ABOUT display gap cleanup
  - mobile gallery continuous motion restored
*/
@media (max-width:760px){

  /* TOP: FOR YOU opening copy belongs to one uninterrupted semantic group. */
  .setoda-intro-story{
    border-top:0!important;
  }

  /* TOP: exact FEATURE reading rhythm requested. */
  .setoda-value-category{
    margin-top:30px!important;
    margin-bottom:0!important;
  }
  .setoda-value h3{
    margin-top:10px!important;
    margin-bottom:20px!important;
  }
  .setoda-value-body p{
    margin-top:0!important;
    margin-bottom:15px!important;
  }

  /* TOP: line alignment handles position; manual padding is no longer needed. */
  .setoda-about-type{gap:5px!important}
  .setoda-about-type span:nth-child(2),
  .setoda-about-type span:nth-child(3){padding-left:0!important}

  /* COMMON MASTER: equal optical breathing room above and below the two-line phrase. */
  .setoda-footer-phrase{
    display:grid!important;
    grid-template-rows:auto auto!important;
    align-content:center!important;
    row-gap:24px!important;
    height:auto!important;
    min-height:176px!important;
    padding:30px 0!important;
  }
  .setoda-footer-phrase span{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
  }
  .setoda-footer-phrase-one{
    justify-self:start!important;
    text-align:left!important;
  }
  .setoda-footer-phrase-two{
    justify-self:end!important;
    text-align:right!important;
  }
}

@media (max-width:360px){
}

@keyframes setodaGalleryInfiniteV4{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
}


/* v44 style block 12: top-master-setoda-responsive-refinement-v5 */

/*
  Responsive refinement v5
  COMMON MASTER:
  - NEWS headline lane starts closer to the category lane while remaining aligned across rows
  TOP ONLY:
  - FEATURE banner group begins 70px below its explanatory block on smartphone
*/
@media (max-width:760px){
}


/* v44 style block 13: top-master-setoda-responsive-refinement-v6 */

/*
  Responsive refinement v6
  COMMON MASTER:
  - NEWS category tag occupies its own row on smartphone
  TOP ONLY:
  - FOR YOU third/lemon image uses the same vertical rhythm as the other orbit images
*/
@media (max-width:760px){

  /* TOP: unify the third (lemon) image's top spacing with the other FOR YOU images. */
  .setoda-intro-orbit-right-top{
    margin:var(--mobile-group-related) auto 0 4%!important;
  }
}


/* v44 style block 14: top-master-setoda-responsive-refinement-v7 */

/*
  Responsive refinement v7
  COMMON MASTER:
  - NEWS smartphone rows use two semantic lines:
    1) date + category tag
    2) headline + arrow
*/
@media (max-width:760px){
}


/* v44 style block 15: si-top-responsive-master-v2 */

/*
  STAY INFORMATION / responsive refinement v2
  - TOP v8 is the source of truth for common smartphone UI.
  - This layer only handles stay-page-specific hierarchy, spacing and bug fixes.
*/
.si-faq-group-ja{font:inherit;font-weight:400;letter-spacing:inherit}

@media (max-width:980px){/* TOP exact fixed RESERVATION visual language. */

}

@media (max-width:760px){
  :root{
    /* Semantic spacing hierarchy: related information stays close; chapter changes breathe. */
    --si-gap-micro:8px;
    --si-gap-copy:12px;
    --si-gap-unit:24px;
    --si-gap-cluster:40px;
    --si-gap-section:80px;
  }

  /* TOP exact logo scale. */
  .header .logo{
    width:132px!important;
    max-width:132px!important;
    min-width:132px!important;
  }

  /* TOP menu visual must remain a real visual, never a placeholder. */
  .menu-visual img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  /* FIRST VIEW INDEX: every item owns its own top/bottom rule; no continuous first-row rule. */
  
  
  

  /* Typography hierarchy: section titles lead, editorial lead and item titles step down clearly. */
  .si-section-intro h3{
    font-size:19px !important;
    line-height:1.8!important;
    letter-spacing:.05em!important;
  }
  .si-room-copy h3,
  .si-facility-copy h3,
  .si-list-title,
  .si-meal-title,
  .si-chef-copy h3,
  .si-property-name{
    font-size:20px !important;
    line-height:1.72!important;
    letter-spacing:.055em!important;
  }
  .si-service-lists h4,
  .si-meal-copy h4,
  .si-access-method h4{
    font-size:17px !important;
    line-height:1.75!important;
  }

  /* Page-wide semantic rhythm audit. */
  .si-hero-copy{margin-top:32px!important}
  
  .si-hero-image{margin-top:56px!important}

  .si-section-intro{margin-top:32px!important}
  .si-section-intro p{margin-top:16px!important}

  /* ROOMS: thumbnail family -> heading -> body = one cluster. */
  .si-room{margin-top:72px!important}
  .si-room:first-of-type{margin-top:56px!important}
  .si-room:not(:last-of-type)::after{margin-top:64px!important}
  .si-room-thumbs{margin-top:8px!important}
  .si-room-copy{margin-top:24px!important}
  .si-room-copy p{margin-top:12px!important}

  /* FACILITIES: exactly the same image -> heading -> body rhythm as ROOMS. */
  .si-facility{margin-top:64px!important}
  .si-equipment .si-facility:first-of-type{margin-top:56px!important}
  .si-facility-thumbs{margin-top:8px!important}
  .si-facility.image-left,
  .si-facility.image-right{gap:0!important}
  .si-facility-copy,
  .si-facility.image-left .si-facility-copy,
  .si-facility.image-right .si-facility-copy{
    margin-top:24px!important;
    padding-top:0!important;
  }
  .si-facility-copy p{margin-top:12px!important}

  /* Floor plan and overview information are one semantic unit. */
  .si-map{margin-top:64px!important}
  .si-specs{margin-top:24px!important}
  .si-list-title{margin-top:56px!important}
  .si-service-photos{margin-top:24px!important}
  .si-service-lists.top{margin-top:40px!important}
  .si-service-lists.bottom{margin-top:32px!important}
  .si-service-lists ul{margin-top:12px!important}

  /* DINING: fix flex-shrink bug from .si-meal.one/.two/.three fixed heights. */
  .si-meal,
  .si-meal.one,
  .si-meal.two,
  .si-meal.three{height:auto!important;min-height:0!important}
  .si-food .si-meal:first-of-type{margin-top:64px!important}
  .si-meal{margin-top:72px!important}
  .si-meal figure{
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:4/3!important;
    margin:20px 0!important;
  }
  .si-meal figure img{width:100%!important;height:100%!important;object-fit:cover!important}
  .si-meal-copy p{margin-top:12px!important}
  .si-meal-copy small{margin-top:24px!important;padding-top:24px!important}
  .si-chef{margin-top:64px!important}
  .si-chef-profile{margin-top:32px!important}

  /* ACCESS: name/address stay together; transport methods form the next cluster. */
  .si-property-name{margin-top:24px!important}
  .si-address{margin-top:8px!important}
  .si-access-method{margin-top:32px!important}
  .si-access-method p{margin-top:12px!important}

  /* FAQ group heading: JP first, EN second; vertical rule spans both lines exactly. */
  .si-faq-group{margin-top:56px!important}
  .si-faq-group h3{
    display:grid!important;
    grid-template-columns:1px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:14px!important;
    row-gap:5px!important;
    align-items:start!important;
    height:auto!important;
    font-size:18px !important;
    line-height:1.65!important;
  }
  .si-faq-group h3 i{
    grid-column:1!important;
    grid-row:1/3!important;
    width:1px!important;
    height:100%!important;
    min-height:0!important;
    align-self:stretch!important;
    background:#333!important;
  }
  .si-faq-group-ja{
    grid-column:2!important;
    grid-row:1!important;
    display:block!important;
    min-width:0;
  }
  .si-faq-group-en{
    grid-column:2!important;
    grid-row:2!important;
    display:block!important;
    margin:0!important;
    font-size:12px !important;
    line-height:1.6!important;
    letter-spacing:.095em!important;
    color:#6a625b;
  }
  .si-faq-list{margin-top:24px!important}

  /* EXPLORE MORE: English meta and Japanese title belong to one label group. */

  /* Section boundaries remain generous; within-section gaps above are deliberately smaller. */
  .si-equipment,.si-food,.si-access,.si-faq{
    padding-top:var(--si-gap-section)!important;
    padding-bottom:var(--si-gap-section)!important;
  }
}


/* v44 style block 16: si-responsive-master-v3 */

/*
  STAY INFORMATION / responsive refinement v3
  Mobile typography is rebuilt from a 13px editorial body baseline.
  Spacing hierarchy follows semantic proximity:
  15px = within one information unit
  30px = image/title/body cluster
  50px = between related clusters
  80px = chapter/section boundary
*/
@media (max-width:760px){
  :root{
    --si-type-page:34px;
    --si-type-section:30px;
    --si-type-lead:17px;
    --si-type-item:18px;
    --si-type-sub:15px;
    --si-type-body:13px;
    --si-type-small:12px;
    --si-type-meta:10px;
    --si-space-tight:15px;
    --si-space-inner:30px;
    --si-space-group:50px;
    --si-space-section:80px;
  }

  /* TYPOGRAPHY / 13px body baseline */
  .si-hero h1{font-size:max(var(--fab-font-minimum), var(--si-type-page)) !important;line-height:1.55!important}
  .si-section-name h2,.si-faq-head h2{font-size:max(var(--fab-font-minimum), var(--si-type-section)) !important;line-height:1.55!important}
  .si-section-intro h3{font-size:max(var(--fab-font-minimum), var(--si-type-lead)) !important;line-height:1.9!important;letter-spacing:.05em!important}
  .si-room-copy h3,
  .si-facility-copy h3,
  .si-list-title,
  .si-meal-title,
  .si-chef-copy h3,
  .si-property-name{font-size:max(var(--fab-font-minimum), var(--si-type-item)) !important;line-height:1.72!important;letter-spacing:.05em!important}
  .si-service-lists h4,.si-meal-copy h4,.si-access-method h4{font-size:max(var(--fab-font-minimum), var(--si-type-sub)) !important;line-height:1.8!important}

  .si-hero-copy,
  .si-section-intro p,
  .si-room-copy p,
  .si-facility-copy p,
  .si-meal-copy p,
  .si-chef-copy p,
  .si-access-method p,
  .si-faq-answer-ja{
    font-size:max(var(--fab-font-minimum), var(--si-type-body)) !important;
    line-height:2.12!important;
    letter-spacing:.025em!important;
  }

  .si-section-name p,.si-faq-head p,.si-hero-en{font-size:max(var(--fab-font-minimum), var(--si-type-meta)) !important}
  
  .si-specs>div,.si-specs dt,.si-specs dd{font-size:13px !important}
  .si-specs dd span{font-size:12px !important}
  .si-service-lists ul{font-size:13px !important;line-height:2!important}
  .si-meal-copy small,.si-access-method small{font-size:max(var(--fab-font-minimum), var(--si-type-small)) !important;line-height:1.95!important}
  .si-chef-profile h4{font-size:13px !important}
  .si-chef-profile p{font-size:12px !important;line-height:1.95!important}
  .si-faq-group h3{font-size:16px !important;line-height:1.7!important}
  .si-faq-group-en{font-size:11px !important;line-height:1.6!important}
  .si-faq-trigger,.si-faq-item.is-long .si-faq-trigger{font-size:14px !important;line-height:1.85!important}
  .si-faq-trigger em{font-size:12px !important;line-height:1.75!important}
  .si-faq-answer-en{font-size:12px !important;line-height:1.95!important}

  /* HERO / one clear lead cluster */
  .si-hero-copy{margin-top:var(--si-space-inner)!important}
  
  .si-hero-image{margin-top:var(--si-space-group)!important}

  /* SECTION HEADER -> LEAD -> BODY */
  .si-section-intro{margin-top:50px!important}
  .si-section-intro p{margin-top:30px!important}

  /* ROOMS / image family -> title -> body */
  .si-room:first-of-type{margin-top:60px!important}
  .si-room{margin-top:70px!important}
  .si-room:not(:last-of-type)::after{margin-top:60px!important}
  .si-room-thumbs{margin-top:8px!important}
  .si-room-copy{margin-top:30px!important}
  .si-room-copy p{margin-top:15px!important}
  .si-room-copy p+p{margin-top:15px!important}

  /* FACILITIES / exact requested values */
  .si-facility{margin-top:70px!important}
  .si-equipment .si-facility:first-of-type{margin-top:60px!important}
  .si-facility-thumbs{margin-top:8px!important}
  .si-facility-copy,
  .si-facility.image-left .si-facility-copy,
  .si-facility.image-right .si-facility-copy{
    margin-top:30px!important;
    padding-top:0!important;
  }
  .si-facility-copy p{margin-top:15px!important}
  .si-facility-copy p+p{margin-top:15px!important}

  /* FLOOR PLAN + OVERVIEW are one cluster */
  .si-map{margin-top:70px!important}
  .si-specs{margin-top:30px!important}
  .si-list-title{margin-top:60px!important}
  .si-service-photos{margin-top:30px!important}
  .si-service-lists.top{margin-top:50px!important}
  .si-service-lists.bottom{margin-top:40px!important}
  .si-service-lists ul{margin-top:15px!important}

  /* DINING / repeated plan rhythm */
  .si-food-hero{margin-top:50px!important}
  .si-food .si-meal:first-of-type{margin-top:60px!important}
  .si-meal{margin-top:70px!important}
  .si-meal figure{margin:30px 0!important}
  .si-meal-copy p{margin-top:15px!important}
  .si-meal-copy p+p{margin-top:15px!important}
  .si-meal-copy small{margin-top:30px!important;padding-top:30px!important}
  .si-chef{margin-top:70px!important}
  .si-chef-copy p{margin-top:15px!important}
  .si-chef-profile{margin-top:40px!important}

  /* ACCESS / location cluster -> transport cluster */
  .si-access-image{margin-top:50px!important}
  .si-property-name{margin-top:30px!important}
  .si-address{margin-top:10px!important;font-size:12px !important;line-height:1.85!important}
  .si-access-method{margin-top:40px!important}
  .si-access-method p{margin-top:15px!important}

  /* FAQ / group heading -> questions -> answers */
  .si-faq-group{margin-top:60px!important}
  .si-faq-list{margin-top:30px!important}
  .si-faq-answer{padding-top:15px!important;padding-bottom:30px!important}
  .si-faq-answer-en{margin-top:15px!important;padding-top:15px!important}

  /* PAGE-WIDE chapter rhythm */
  .si-equipment,.si-food,.si-access,.si-faq{
    padding-top:var(--si-space-section)!important;
    padding-bottom:var(--si-space-section)!important;
  }
  .si-rooms{padding-bottom:var(--si-space-section)!important}

  /* FOOTER / address is one uninterrupted line on smartphone. */
  .setoda-footer-address span{white-space:nowrap!important}
  .setoda-footer-address span br{display:none!important}
}


/* v44 style block 17: si-responsive-master-v4 */

/*
  STAY INFORMATION / responsive refinement v4
  Shared lower-page responsive master updates:
  - Hero index separators never double up.
  - Editorial paragraph color is separated from heading color.
*/
@media (max-width:760px){
  /* FIRST VIEW INDEX / one visual separator per row boundary. */
  
  
  

  /* EDITORIAL BODY COLOR / preserve meta labels and headings. */
  .si-hero-copy,
  .si-section-intro p,
  .si-room-copy p,
  .si-facility-copy p,
  .si-meal-copy p,
  .si-chef-copy p,
  .si-chef-profile p,
  .si-address,
  .si-access-method p,
  .si-faq-answer-ja,
  .si-faq-answer-en{
    color:#5c5856!important;
  }
}


/* v44 style block 18: si-responsive-master-v5 */

/*
  STAY INFORMATION / responsive refinement v5
  Shared lower-page typography update:
  - Editorial body color is unified across all viewport sizes.
*/
.si-hero-copy,
.si-section-intro p,
.si-room-copy p,
.si-facility-copy p,
.si-meal-copy p,
.si-chef-copy p,
.si-chef-profile p,
.si-address,
.si-access-method p,
.si-faq-answer-ja,
.si-faq-answer-en{
  color:#5c5856!important;
}

/* v44 style block 20: fab-aug13-stay-refinement-v2 */

@media(max-width:760px){
  .si-room:first-of-type,
  .si-equipment .si-facility:first-of-type,
  .si-food .si-meal:first-of-type,
  .si-faq-group{
    margin-top:70px!important;
  }
  .si-meal figure{
    margin:20px 0 30px!important;
  }
  .si-chef-profile{
    margin-top:30px!important;
  }
  .si-faq-group h3{
    gap:3px!important;
  }
  .si-faq-list{
    margin-top:10px!important;
  }
}


/* v44 style block 21: fab-aug13-stay-refinement-v3 */

@media(max-width:760px){
  /*
    FAQ group heading:
    short rule -> Japanese = 15px
    Japanese -> English = 3px
  */
  .si-faq-group h3{
    gap:0!important;
    column-gap:15px!important;
    row-gap:3px!important;
  }
  .si-faq-group h3 .si-faq-group-ja,
  .si-faq-group h3 .si-faq-group-en{
    margin-left:0!important;
  }
}


/* v44 style block 22: client-revision-20260816-reservation */

/* Client revision: reservation banner only. Existing component code remains intact underneath. */













@media(max-width:760px){
  
  
  
  
  
  
  
}
@media(prefers-reduced-motion:reduce){
  
}


/* Client revision v4: make the reservation destination explicit without adding a decorative underline. */




@media(hover:hover){
  
}
@media(max-width:760px){
  
  
}
@media(prefers-reduced-motion:reduce){
  
}


/* v44 style block 23: client-revision-20260816-stay-details */

.si-service-note{margin:20px 0 0;color:#666;font:400 12px/1.9 var(--serif);letter-spacing:.035em}
.si-service-note a,.si-faq-answer a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;transition:color .4s var(--ease)}
.si-service-note a:hover,.si-faq-answer a:hover{color:var(--brown)}
.si-access-image iframe{display:block;width:100%;height:100%;border:0}
@media(max-width:760px){.si-service-note{margin-top:20px;font-size:11px;line-height:1.9}}


/* v44 style block 24: client-revision-20260816-hero-index-hover */

/* Lower-page first-view INDEX: slow line extension + restrained text drift for a quiet, tactile hover response. */


/* v44 style block 25: client-revision-20260816-bottom-banners-v7 */

/*
  Client revision v7
  - Reservation banner / EXPLORE MORE cards: 10px radius
  - Hover motion is deliberately restrained for the fab brand tone
  - Best-rate sentence receives a quiet underline
  - Reservation-site label and arrow are rebalanced in scale
*/

/* Reservation banner -------------------------------------------------- */










@media(hover:hover){
  
  
  
  
}

/* Lower-page navigation banners / EXPLORE MORE ----------------------- */

@media(max-width:760px){
  
  
  
}

@media(prefers-reduced-motion:reduce){
  
}


/* v44 style block 26: fab-menu-refinement-v11 */

/* Menu refinement v11
   - remove language switch block
   - keep the left-side brand statement on exactly two fixed lines
   - prevent hover interactions from changing the navigation layout width
*/
.menu-visual-copy strong{
  font-size:max(var(--fab-font-minimum), clamp(14px,1.65vw,29px));
}
.menu-visual-copy strong .menu-copy-line{
  display:block;
  white-space:nowrap;
}
.menu-primary,
.menu-primary a,
.menu-label,
.menu-utility-links,
.menu-utility-links a{
  min-width:0;
  max-width:100%;
}
.menu-primary a{
  width:100%;
  overflow:hidden;
}
@media (hover:hover){
  .menu-primary a:hover,
  .menu-primary a:focus-visible{
    padding-left:0!important;
  }
  .menu-panel nav > a:hover .menu-label,
  .menu-panel nav > a:focus-visible .menu-label,
  .menu-utility-links a:hover > span,
  .menu-utility-links a:focus-visible > span{
    transform:none!important;
  }
  .menu-utility-links a:hover small,
  .menu-utility-links a:focus-visible small{
    transform:none!important;
  }
  .menu-panel nav > a:hover i,
  .menu-panel nav > a:focus-visible i{
    transform:translateX(3px)!important;
  }
}
@media (max-width:760px){
  .menu-visual-copy strong{
    font-size:17px !important;
  }
}
@media (max-width:360px){
  .menu-visual-copy strong{
    font-size:15px !important;
    letter-spacing:.065em!important;
  }
}


/* v44 style block 28: fab-menu-utility-extension-v6 */

/* Client-preview v6: add CONTACT / INSTAGRAM directly below NEWS without changing the established utility-link design. */
.menu-utility-links a{min-width:0;}
.menu-utility-links a > span{min-width:0;}
.menu-utility-links a > small{flex:0 0 auto;}
/* Keep the expanded menu compact on shorter desktop/tablet viewports while preserving the same visual hierarchy. */
@media (min-width:761px) and (max-height:820px){
  .menu-directory{padding-top:32px!important;padding-bottom:20px!important;}
  .menu-directory-head{padding-bottom:24px!important;}
  .menu-directory-body{padding-top:22px!important;padding-bottom:22px!important;}
  .menu-primary a{min-height:60px!important;}
  .menu-utility-links{margin-top:18px!important;}
  .menu-utility-links a{padding:10px 0!important;}
  .menu-contact-meta{margin-top:18px!important;}
  .menu-footer{padding-top:14px!important;}
}
@media (max-width:760px){
  .menu-utility-links a > span{overflow-wrap:normal;word-break:keep-all;}
}


/* v44 style block 29: fab-menu-legal-v7 */

/* Client-preview v7: legal/policy labels are intentionally secondary, and the duplicated
   INSTAGRAM / CONTACT labels at the very bottom of the expanded menu are removed. */
.menu-legal-links{
  display:flex;
  flex-wrap:wrap;
  gap:7px 16px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
  color:var(--brown-soft);
  font:500 var(--fab-font-minimum)/1.65 var(--sans);
  letter-spacing:.12em;
  opacity:.76;
}
.menu-legal-links span{white-space:nowrap;}
.menu-footer{grid-template-columns:minmax(0,1fr) auto!important;}
.menu-footer small{grid-column:auto!important;justify-self:end;}
@media (max-width:760px){
  .menu-legal-links{
    gap:7px 13px;
    margin-top:14px;
    padding-top:13px;
    font-size:var(--fab-font-minimum);
    letter-spacing:.1em;
  }
  .menu-footer{grid-template-columns:minmax(0,1fr) auto!important;}
  .menu-footer small{grid-column:auto!important;justify-self:end!important;}
}
@media (max-width:360px){
  .menu-legal-links{gap:6px 10px;font-size:var(--fab-font-minimum);}
}


/* v44 style block 30: fab-menu-footer-copyright-v8 */

/* Client-preview v8: keep only the copyright in the expanded-menu footer.
   It inherits the exact size/color of the former left-side footer label and aligns to the rule's right edge. */
.menu-footer{
  grid-template-columns:1fr!important;
}
.menu-footer > small{
  grid-column:1!important;
  justify-self:end!important;
  font-size:var(--fab-font-minimum) !important;
  color:var(--brown-soft)!important;
}
@media (max-width:760px){
  .menu-footer{grid-template-columns:1fr!important;}
  .menu-footer > small{grid-column:1!important;justify-self:end!important;font-size:var(--fab-font-minimum) !important;}
}


/* v44 style block 31: fab-microtype-readability-v10 */

/* v10 readability correction:
   The previous pass missed font-size values written via the CSS `font` shorthand.
   Legal/policy labels also receive a practical readability floor while remaining secondary. */
.menu-legal-links{font-size:var(--fab-font-minimum) !important;}
@media(max-width:760px){.menu-legal-links{font-size:var(--fab-font-minimum) !important;}}
@media(max-width:360px){.menu-legal-links{font-size:var(--fab-font-minimum) !important;}}


/* v44 style block 32: fab-menu-legal-footer-v11 */

/* Client-preview v11
   Legal/policy labels are moved beneath the final menu rule so they remain secondary
   without compressing the navigation area. 10px is the readability floor;
   only <=360px uses 9px. */
.menu-footer{
  grid-template-columns:1fr!important;
  grid-template-areas:"legal" "copyright"!important;
  align-items:start!important;
  gap:6px!important;
  padding-top:10px!important;
}
.menu-footer .menu-legal-links{
  grid-area:legal!important;
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:0 18px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  color:var(--brown-soft)!important;
  font-family:var(--sans)!important;
  font-size:var(--fab-font-minimum) !important;
  font-weight:500!important;
  line-height:1.55!important;
  letter-spacing:.09em!important;
  opacity:.76!important;
}
.menu-footer .menu-legal-links span{
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
.menu-footer > small{
  grid-area:copyright!important;
  grid-column:1!important;
  justify-self:end!important;
  align-self:start!important;
  margin:0!important;
  font-size:var(--fab-font-minimum) !important;
  line-height:1.45!important;
  color:var(--brown-soft)!important;
}
@media(max-width:760px){
  .menu-footer{
    grid-template-columns:1fr!important;
    grid-template-areas:"legal" "copyright"!important;
    gap:5px!important;
    padding-top:10px!important;
  }
  .menu-footer .menu-legal-links{
    gap:0 14px!important;
    font-size:var(--fab-font-minimum) !important;
    letter-spacing:.07em!important;
  }
  .menu-footer > small{font-size:var(--fab-font-minimum) !important;}
}
@media(max-width:360px){
  .menu-footer .menu-legal-links{
    gap:0 11px!important;
    font-size:var(--fab-font-minimum) !important;
    letter-spacing:.055em!important;
  }
  .menu-footer > small{font-size:var(--fab-font-minimum) !important;}
}

/* v44 style block 34: fab-menu-compact-desktop-v13 */

/* v13 — menu refinement for smaller desktop windows.
   Keeps hierarchy intact while preventing awkward wraps/collisions around 1182px. */
.menu-label small{
  margin-top:5px!important;
  font-weight:400!important;
}

@media (min-width:761px) and (max-width:1280px){
  .menu-shell{
    grid-template-columns:minmax(260px,30vw) minmax(0,1fr)!important;
  }
  .menu-visual-copy{
    left:clamp(26px,3vw,42px)!important;
    right:clamp(26px,3vw,42px)!important;
    bottom:clamp(30px,4vw,48px)!important;
  }
  .menu-visual-copy strong{
    font-size:clamp(19px,1.8vw,24px)!important;
    line-height:1.75!important;
  }
  .menu-directory{
    padding:clamp(28px,3vw,42px) clamp(28px,3.2vw,44px) 22px!important;
  }
  .menu-directory-head{
    grid-template-columns:minmax(0,1fr) minmax(190px,.58fr)!important;
    gap:24px!important;
    align-items:end!important;
    padding-bottom:24px!important;
  }
  .menu-directory-head h2{
    font-size:clamp(21px,1.8vw,24px)!important;
    line-height:1.65!important;
  }
  .menu-directory-head p{
    max-width:300px!important;
    font-size:13px!important;
    line-height:1.9!important;
  }
  .menu-directory-body{
    display:block!important;
    padding:24px 0 20px!important;
  }
  .menu-primary{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0 28px!important;
  }
  .menu-primary a{
    grid-template-columns:26px minmax(0,1fr) 16px!important;
    gap:10px!important;
    min-height:68px!important;
    padding:4px 0!important;
  }
  .menu-label{min-width:0!important;}
  .menu-label b{
    font-size:14px!important;
    line-height:1.55!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
  .menu-label small{
    margin-top:5px!important;
    font-weight:400!important;
    line-height:1.35!important;
    letter-spacing:.14em!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .menu-aside{
    display:grid!important;
    grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr)!important;
    grid-template-areas:
      "reservation utility"
      "meta utility"!important;
    gap:14px 28px!important;
    align-items:start!important;
    margin-top:26px!important;
    min-width:0!important;
  }
  .menu-reservation{
    grid-area:reservation!important;
    min-height:78px!important;
    padding:18px!important;
  }
  .menu-reservation span{letter-spacing:.16em!important;}
  .menu-reservation strong{font-size:15px!important;}
  .menu-utility-links{
    grid-area:utility!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:22px!important;
    margin-top:0!important;
    border-top:1px solid var(--line)!important;
    min-width:0!important;
  }
  .menu-utility-links a{
    display:block!important;
    min-width:0!important;
    min-height:64px!important;
    padding:10px 0!important;
    line-height:1.5!important;
  }
  .menu-utility-links a span{
    display:block!important;
    min-width:0!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .menu-utility-links a small{
    display:block!important;
    margin-top:5px!important;
    text-align:left!important;
    line-height:1.35!important;
    letter-spacing:.12em!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .menu-contact-meta{
    grid-area:meta!important;
    margin-top:0!important;
    gap:6px!important;
    min-width:0!important;
  }
  .menu-contact-meta p{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:0 10px!important;
    align-items:start!important;
  }
  .menu-contact-meta span{width:auto!important;}
  .menu-footer{
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"legal copyright"!important;
    gap:18px!important;
    align-items:center!important;
    margin-top:auto!important;
    padding-top:12px!important;
  }
  .menu-footer .menu-legal-links{
    gap:0 14px!important;
    min-width:0!important;
  }
  .menu-footer > small{
    justify-self:end!important;
    white-space:nowrap!important;
  }
}

/* Narrow desktop / landscape tablet: retain desktop tone, but stack the auxiliary
   block so no item is squeezed into an unnatural column. */
@media (min-width:761px) and (max-width:960px){
  .menu-shell{
    grid-template-columns:minmax(230px,29vw) minmax(0,1fr)!important;
  }
  .menu-directory{
    padding:26px 24px 20px!important;
  }
  .menu-directory-head{
    grid-template-columns:1fr!important;
    gap:10px!important;
    align-items:start!important;
  }
  .menu-directory-head p{
    max-width:100%!important;
    margin:0!important;
  }
  .menu-primary{gap:0 22px!important;}
  .menu-aside{
    grid-template-columns:1fr!important;
    grid-template-areas:
      "reservation"
      "utility"
      "meta"!important;
    gap:16px!important;
  }
  .menu-utility-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:22px!important;
  }
  .menu-contact-meta p{
    grid-template-columns:auto minmax(0,1fr)!important;
  }
  .menu-footer{
    grid-template-columns:1fr!important;
    grid-template-areas:"legal" "copyright"!important;
    gap:6px!important;
  }
  .menu-footer > small{justify-self:end!important;}
}

/* Mobile master already uses a one-column menu; only normalize the requested label rhythm. */
@media (max-width:760px){
  .menu-label small{
    margin-top:5px!important;
    font-weight:400!important;
  }
}


/* v44 style block 35: fab-menu-layout-v14 */

/* v14 — expanded-menu rhythm and desktop-width stability.
   1) EN labels stay secondary but readable.
   2) Long utility labels never collide with their EN labels.
   3) The 761–1280px desktop range gets deliberate spacing instead of compressed rows.
   4) The menu intro copy aligns with the Japanese title rather than floating above it.
   5) TOP NEWS category wrapping grows downward without shifting the heading block. */
.menu-utility-links a > span{
  min-width:0!important;
}
.menu-utility-links a small{
  display:block!important;
  margin-top:10px!important;
  font-weight:400!important;
  line-height:1.35!important;
}

/* Standard desktop: keep the Japanese and English utility labels in one vertical flow.
   This prevents FOR INTERNATIONAL GUESTS / TRAVEL INFORMATION from crossing at any width. */
@media (min-width:1281px){
  .menu-directory-head{
    align-items:start!important;
  }
  .menu-directory-head p{
    align-self:start!important;
    padding-top:30px!important;
    margin:0!important;
  }
  .menu-utility-links a{
    display:block!important;
    min-width:0!important;
  }
  .menu-utility-links a > span{
    display:block!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
}

/* Smaller desktop / landscape-tablet range requested by client review. */
@media (min-width:761px) and (max-width:1280px){
  .menu-directory-head{
    align-items:start!important;
  }
  .menu-directory-head p{
    align-self:start!important;
    padding-top:30px!important;
    margin:0!important;
  }
  .menu-aside{
    margin-top:50px!important;
  }
  .menu-utility-links{
    align-items:start!important;
  }
  .menu-utility-links a{
    padding-top:20px!important;
    padding-bottom:20px!important;
    align-self:stretch!important;
  }
  .menu-utility-links a > span{
    display:block!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
}

/* At the narrowest desktop widths the menu heading becomes one column. Reset the
   alignment spacer because the explanatory copy now naturally follows the title. */
@media (min-width:761px) and (max-width:960px){
  .menu-directory-head p{
    padding-top:0!important;
    margin-top:10px!important;
  }
}

/* Mobile keeps the established one-column composition while sharing the requested
   label weight/rhythm. */
@media (max-width:760px){
  .menu-utility-links a small{
    margin-top:10px!important;
    font-weight:400!important;
  }
}


/* v44 style block 36: fab-responsive-menu-and-viewport-v15 */

/* v15 — menu no-wrap / variable visual width / viewport containment.
   The two menu sub-label families intentionally use a 10px floor, while the
   project-wide readability floor remains unchanged everywhere else. */
:root{--fab-menu-sub-font-minimum:10px;}

html{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:clip!important;
}
@supports not (overflow:clip){
  html,body{overflow-x:hidden!important;}
}
.header,.menu-panel,.menu-shell,main,.setoda-footer{
  max-width:100%;
}

/* Only these two sub-label families are allowed below the global 11px floor. */
.menu-label small,
.menu-utility-links a small{
  font-size:var(--fab-menu-sub-font-minimum)!important;
}

/* Navigation labels must never change line count as the desktop window changes. */
.menu-label b,
.menu-label small{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.menu-primary a{
  min-width:0!important;
}
.menu-label{
  min-width:0!important;
  overflow:visible!important;
}

/* The visual panel becomes the flexible side of the composition, so the
   directory keeps enough width for its unbroken menu labels. */
@media (min-width:1281px){
  .menu-shell{
    grid-template-columns:clamp(340px,29vw,520px) minmax(0,1fr)!important;
  }
}
@media (min-width:761px) and (max-width:1280px){
  .menu-shell{
    grid-template-columns:clamp(220px,24vw,300px) minmax(0,1fr)!important;
  }
  .menu-directory{
    padding-left:clamp(22px,2.6vw,34px)!important;
    padding-right:clamp(22px,2.6vw,34px)!important;
  }
  .menu-primary{
    column-gap:clamp(18px,2vw,28px)!important;
  }
  .menu-primary a{
    grid-template-columns:24px minmax(0,1fr) 14px!important;
    column-gap:8px!important;
  }
  .menu-label b{
    font-size:clamp(12px,1.12vw,14px)!important;
    letter-spacing:.045em!important;
  }
  .menu-label small{
    letter-spacing:.12em!important;
  }
}

/* Keep every line inside the visual panel on one line, but scale the principal
   Japanese statement with the variable panel width rather than letting it escape. */
.menu-visual-copy > span,
.menu-visual-copy small,
.menu-visual-copy strong .menu-copy-line{
  white-space:nowrap!important;
}
@media (min-width:1281px){
  .menu-visual-copy strong{
    font-size:clamp(18px,1.55vw,29px)!important;
  }
}
@media (min-width:761px) and (max-width:1280px){
  .menu-visual-copy{
    left:clamp(18px,2.2vw,30px)!important;
    right:clamp(18px,2.2vw,30px)!important;
  }
  .menu-visual-copy strong{
    font-size:max(var(--fab-font-minimum), clamp(12px,1.35vw,18px))!important;
    line-height:1.72!important;
    letter-spacing:.055em!important;
  }
  .menu-visual-copy > span,
  .menu-visual-copy small{
    letter-spacing:.13em!important;
  }
}

/* Requested mobile INDEX rhythm. */
.page-index-mobile-toggle{
  gap:20px!important;
}


/* v44 style block 37: fab-client-review-adjustments-v16 */

/* v16 — requested header/menu spacing refinements. */

/* All menu utility rows use the same vertical breathing room. */
.menu-utility-links a{
  padding-top:20px!important;
  padding-bottom:20px!important;
}

/* Header action spacing. */
.header-actions{gap:10px!important;}

/* These two header micro-labels are deliberate exceptions to the global 11px floor. */
.header-place,
.international-header-link{
  font-size:10px!important;
}

/* Smaller desktop / landscape-tablet menu spacing. */
@media (min-width:761px) and (max-width:1280px){
  .menu-aside{
    gap:0 50px!important;
  }
  .menu-utility-links{
    gap:30px!important;
  }
  .menu-primary{
    gap:30px!important;
  }
  .menu-footer{
    width:100%!important;
    max-width:none!important;
    justify-self:stretch!important;
    box-sizing:border-box!important;
    padding-right:0!important;
  }
  .menu-footer > small{
    justify-self:end!important;
    text-align:right!important;
    margin-left:auto!important;
    margin-right:-.18em!important;
    white-space:nowrap!important;
  }
}


/* v44 style block 38: fab-client-review-adjustments-v17 */

/* v17 — small-desktop expanded-menu footer alignment and body spacing. */
@media (min-width:761px) and (max-width:1280px){
  .menu-directory-body{
    padding:50px 0 80px!important;
  }

  /* Keep the legal labels and copyright in dedicated full-width rows.
     The copyright uses the complete rule width so its visible right edge
     aligns with the menu footer rule without residual column spacing. */
  .menu-footer{
    width:100%!important;
    max-width:none!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "legal"
      "copyright"!important;
    justify-items:stretch!important;
    align-items:start!important;
    column-gap:0!important;
    row-gap:6px!important;
    box-sizing:border-box!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .menu-footer .menu-legal-links{
    grid-area:legal!important;
    justify-self:start!important;
  }
  .menu-footer > small{
    grid-area:copyright!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    justify-self:stretch!important;
    text-align:right!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:0!important;
    white-space:nowrap!important;
  }
}


/* v44 style block 39: fab-client-review-adjustments-v18 */

/* v18 — brand notation, menu footer rhythm, and mobile expanded-menu spacing. */
.menu-footer{
  gap:50px!important;
}

/* The site-wide readability floor drops to 10px only at 380px and below. */
@media (max-width:380px){
  :root{--fab-font-minimum:10px;}
}

/* Mobile expanded-menu tuning. */
@media (max-width:760px){
  .menu-primary a{
    padding-top:20px!important;
    padding-bottom:20px!important;
  }
  .menu-aside,
  .menu-utility-links{
    margin-top:30px!important;
  }
  .menu-visual-copy strong{
    font-size:20px!important;
  }
}


/* v44 style block 40: fab-client-review-adjustments-v19 */

/* v19 — menu visual copy typography refinements. */
.menu-visual-copy strong{
  line-height:1.6!important;
}

@media (max-width:760px){
  .menu-visual-copy strong{
    font-size:18px!important;
    line-height:1.5!important;
  }
  .menu-visual-copy > span{
    margin-bottom:10px!important;
    font-weight:400!important;
  }
  .menu-visual-copy small{
    display:none!important;
  }
}


/* v44 style block 42: fab-mobile-setoda-text-link-margin-v21 */

@media (max-width:760px){
  .setoda-text-link{
    margin-top:10px!important;
  }
}


/* v44 style block 43: client-revision-stay-v1 */

/* Client revision: content additions without changing the established visual language. */
.si-bedroom-lines{display:grid;gap:6px;margin-top:7px}
.si-bedroom-lines span{display:block!important;font-size:13px}
.si-bedroom-lines b{font-weight:500}
.si-access-method a,.si-faq-answer a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.si-chef-profile p b{font-weight:500;color:var(--si-ink)}
.si-chef-profile p em{font-style:normal;color:#555}
.si-chef-intro{font-family:var(--serif);font-size:15px;line-height:2.05;letter-spacing:.05em}
@media(min-width:1041px){
  /* Keep the original equipment composition. The client's large-screen reversal note was treated as optional;
     preserving the established title→visual reading order avoids a needless layout break. */
  .si-meal.two{top:156.25rem!important}
  .si-meal.three{top:208.8125rem!important}
  .si-chef{top:261.375rem!important;}
  .si-meal.one{height:61rem!important}
  .si-meal.one .si-dish-menu{position:absolute;left:0;top:36rem;width:81.5625rem;display:grid;grid-template-columns:1.35fr .9fr;gap:3.75rem;margin:0;padding-top:1.6875rem}
  .si-dish-menu-col{display:block}
  .si-dish-menu-col b{font-weight:500;color:var(--si-ink)}
  .si-chef-copy{top:3.5rem!important}
  .si-chef-copy p{font-size:13px!important;line-height:2.08!important}
  .si-chef-profile{top:3.5rem!important}
  .si-chef-profile p{font-size:12.5px!important;line-height:1.9!important}
  .si-chef-profile figure{height:23.5rem!important}
}
@media(max-width:1040px){
  .si-bedroom-lines{gap:5px;margin-top:8px}
  .si-meal.one .si-dish-menu{display:block}
  .si-dish-menu-col{display:block;margin-top:18px}
  .si-dish-menu-col:first-child{margin-top:0}
  .si-chef-intro{font-size:14px}
}


/* v44 style block 44: tablet-smartphone-parity-v2 */

/* 2026-09-07: Tablet (<=1040px) follows the established smartphone layout rules. */
@media(max-width:1040px){:root{--pad:20px}
.header{padding:14px var(--pad)}
.header.scrolled{padding-top:11px;padding-bottom:11px}
.logo{font-size:14px}
.utility-btn{min-height:36px;padding:0 13px}
.reserve-btn{display:none}
}

@media(max-width:1040px){.header-link,.header .reserve-btn{display:none!important}
.header-actions{gap:8px}
}

@media(max-width:1040px){:root{
    --section-space-utility:88px;
    --section-space-editorial:108px;
    --section-space-immersive:116px;
    --block-space-xl:68px;
    --block-space-lg:44px;
    --block-space-md:30px;
    --block-space-sm:20px;
    --grid-gap:14px;
  }
}

@media(max-width:1040px){.menu-panel{padding-top:58px}
.menu-shell{display:block;min-height:calc(100vh - 58px);min-height:calc(100dvh - 58px);}
.menu-visual{min-height:36vh;min-height:36dvh;height:36vh;height:36dvh;}
.menu-visual-copy{left:22px;right:22px;bottom:23px}
.menu-visual-copy>span{margin-bottom:10px;font-size:var(--fab-font-minimum)}
.menu-visual-copy strong{font-size:18px;line-height:1.72}
.menu-visual-copy small{margin-top:12px;font-size:var(--fab-font-minimum)}
.menu-directory{padding:34px 22px 26px;min-height:auto}
.menu-directory-head{display:block;padding-bottom:25px}
.menu-directory-head p{margin-top:15px;font-size:12px}
.menu-directory-body{display:block;padding:22px 0 30px}
.menu-primary{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:18px!important}
.menu-primary a{grid-template-columns:20px minmax(0,1fr) 12px!important;gap:8px!important;min-height:67px}
.menu-label b{font-size:14px;letter-spacing:.055em}
.menu-label small{font-size:var(--fab-font-minimum)}
.menu-aside{margin-top:30px}
.menu-reservation{padding:19px 17px}
.menu-utility-links{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
.menu-utility-links a{display:block;padding:14px 0}
.menu-utility-links a small{display:block;margin-top:4px;font-size:var(--fab-font-minimum)}
.menu-contact-meta{font-size:var(--fab-font-minimum)}
.menu-footer{grid-template-columns:1fr auto auto;gap:13px}
.menu-footer small{grid-column:1/-1}
}

@media(max-width:1040px){.setoda-footer-contact{padding:90px 20px 75px}
.setoda-footer-contact>header{display:block;margin-bottom:40px}
.setoda-footer-contact>header h2{font-size:40px;margin-top:22px}
.setoda-footer-contact-links a{grid-template-columns:38px 1fr 20px;gap:12px;min-height:105px;padding:18px 0}
.setoda-footer-contact-links small{grid-column:2}
.setoda-footer-contact-links i{grid-column:3;grid-row:1/3}
.setoda-footer-contact-links strong{font-size:16px}
.setoda-footer-body{width:calc(100% - 40px);grid-template-columns:1fr;grid-template-areas:"brand" "actions" "nav" "letter" "social";gap:48px;padding:80px 0 70px}
.setoda-footer-nav{grid-template-columns:1fr 1fr;gap:12px 20px}
.setoda-footer-social{align-self:start}
.setoda-footer-phrase{padding:19px 0 23px}
.setoda-footer-phrase div{font-size:64px}
.setoda-footer-bottom{width:calc(100% - 40px);flex-direction:column}
}

@media(max-width:1040px){.setoda-reservation{padding:90px 0 105px}
.setoda-reservation-inner{width:calc(100% - 40px)}
.setoda-reservation-head{display:block;margin-bottom:35px}
.setoda-reservation-head h2{margin-top:18px;font-size:40px}
.setoda-reservation-card{grid-template-columns:1fr;gap:35px;min-height:0;padding:32px 25px}
.setoda-reservation-copy h3{font-size:27px}
.setoda-reservation-action{padding:24px 0 0;border-left:0;border-top:1px solid var(--setoda-line)}
.setoda-reservation-sub{justify-content:flex-start;flex-direction:column;gap:18px}
.setoda-reservation-sub a{justify-content:space-between}
.setoda-footer-directory{width:calc(100% - 40px);grid-template-columns:1fr 1fr;grid-template-areas:"nav1 nav2" "social social" "letter letter";gap:48px 25px;padding:75px 0 70px}
.setoda-footer-nav a,.setoda-footer-social a{font-size:13px}
.setoda-footer-letter{margin-top:5px}
.setoda-footer-letter figure{height:210px}
.setoda-footer-phrase{height:390px}
.setoda-footer-phrase span{font-size:max(var(--fab-font-minimum), clamp(25px,7vw,34px))}
.setoda-footer-phrase-one{left:20px;top:18%}
.setoda-footer-phrase-two{top:44%}
.setoda-footer-phrase-three{right:20px;top:70%}
.setoda-footer-bottom{width:calc(100% - 40px);flex-direction:column}
.setoda-footer-bottom div{flex-direction:column;gap:10px}
}

@media(max-width:1040px){.setoda-reservation-head p{margin-bottom:13px}
.setoda-footer-bridge{top:14%;height:70%;width:145%;left:-22.5%}
.setoda-footer-phrase{height:330px}
.setoda-footer-phrase span{white-space:normal;font-size:max(var(--fab-font-minimum), clamp(27px,8.2vw,38px));line-height:1.55}
.setoda-footer-phrase-one{left:var(--pad);right:var(--pad);top:20%}
.setoda-footer-phrase-two{left:var(--pad);right:var(--pad);top:53%;text-align:right}
}

@media(max-width:1040px){.setoda-footer-bridge{
    left:-22.5%;
    top:14%;
    width:145%;
    height:70%;
  }
}

@media(max-width:1040px){.header .logo{width:118px!important;max-width:118px}
}

@media(max-width:1040px){:root{
    --fab-content-image-radius:8px;
  }
}

@media(max-width:1040px){.quick-booking-form,
  .quick-booking-submit,
  .news-tabs a,
  .page-index,
  .setoda-reservation-card,
  .setoda-footer-letter-form{
    border-radius:var(--fab-content-image-radius);
  }
}

@media(max-width:1040px){:root{
    --fab-interface-radius:3px;
  }
.quick-booking-form,
  .quick-booking-submit,
  .news-tabs a,
  .page-index,
  .setoda-reservation-card,
  .setoda-footer-letter-form{
    border-radius:var(--fab-interface-radius);
  }
}

@media(max-width:1040px){.setoda-footer-directory.setoda-footer-directory-sketch{
    width:calc(100% - 40px);
    display:grid;
    grid-template-columns:1fr;
    gap:38px;
    padding:72px 0 68px;
  }
.setoda-footer-profile{
    grid-template-columns:auto 1fr;
    column-gap:24px;
    align-items:start;
  }
.setoda-footer-stamp{
    grid-row:1/3;
    width:92px;
  }
.setoda-footer-address{
    align-self:start;
  }
.setoda-footer-booking{
    grid-column:2;
    max-width:260px;
  }
.setoda-footer-menu-heading{
    display:grid;
    gap:7px;
  }
.setoda-footer-feature-links{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px 12px;
  }
.setoda-footer-feature-links span{
    font-size:12px;
  }
.setoda-footer-text-links{
    gap:8px 20px;
  }
}

@media(max-width:1040px){.setoda-footer-brand-logo{width:150px;}
}

@media(max-width:1040px){

}

@media(max-width:1040px){
  :root{--pad:20px}
  body{font-size:14px}
  .si-header-slot{height:64px}
  .si-hero{padding:78px 20px 92px}
  .si-hero h1{font-size:max(var(--fab-font-minimum), clamp(34px,10.7vw,42px));line-height:1.45}
  .si-hero-en{margin-top:13px;font-size:var(--fab-font-minimum)}
  .si-hero-copy{margin-top:44px;font-size:14px;line-height:2.2}
  
  
  .si-hero-image{aspect-ratio:4/3;margin-top:52px}
  .si-rooms{padding:0 20px 96px}
  .si-equipment,.si-food,.si-access,.si-faq{padding:88px 20px 96px}
  .si-section-name h2,.si-faq-head h2{font-size:34px}
  .si-section-intro{margin-top:38px}
  .si-section-intro h3{font-size:23px;line-height:1.8}
  .si-section-intro p{margin-top:24px;font-size:14px;line-height:2.2}
  .si-room{margin-top:84px}
  .si-room:first-of-type{margin-top:60px}
  .si-room:not(:last-of-type)::after{margin-top:84px}
  .si-room-main{aspect-ratio:4/3}
  .si-room-copy{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .si-room-copy h3{font-size:23px}
  .si-facility{margin-top:68px}
  .si-facility-copy,.si-facility.image-left .si-facility-copy,.si-facility.image-right .si-facility-copy{padding-top:30px}
  .si-map{margin-top:78px}
  .si-list-title{margin-top:88px;font-size:21px}
  .si-service-photos{display:flex;gap:12px;margin-top:32px;margin-right:-20px;padding-right:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .si-service-photos::-webkit-scrollbar{display:none}
  .si-service-photos figure{flex:0 0 78%;aspect-ratio:4/3;scroll-snap-align:start}
  .si-food-hero,.si-access-image{margin-top:55px;aspect-ratio:4/3}
  .si-meal{margin-top:76px}
  .si-meal-title{font-size:20px}
  .si-chef{margin-top:78px;padding:23px 20px}
  .si-property-name{font-size:20px}
  .si-faq-group{margin-top:58px}
}

@media(max-width:1040px){
  .si-page .si-meal-copy h4{font-size:16px}
}

@media(max-width:1040px){
  .setoda-footer-phrase{width:calc(100% - 40px)}
}

@media(max-width:1040px){
  .si-faq-answer{padding:10px 30px 34px 12px;}
  .si-faq-answer-ja{font-size:13px;line-height:2.15;}
  .si-faq-answer-en{margin-top:16px;padding-top:15px;font-size:12px;line-height:1.9;letter-spacing:.015em;}
}

@media(max-width:1040px){
  .si-faq-answer{padding-top:12px!important}
}

@media (max-width:1040px){
  body{padding-bottom:0!important}
  body.mobile-cta-visible{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}

}

@media (max-width:1040px){
  :root{
    --pad:var(--mobile-gutter);
    --setoda-mobile-title:clamp(32px,9vw,38px);
    --setoda-mobile-section:clamp(31px,8.6vw,35px);
    --setoda-mobile-h3:clamp(23px,6.6vw,27px);
    --setoda-mobile-lead:16px;
    --setoda-mobile-body:15px;
    --setoda-mobile-small:14px;
    --setoda-mobile-meta:10px;
  }

  html{scroll-padding-top:calc(var(--fab-header-height,64px) + 16px)}
  body{font-size:14px;line-height:1.95;overflow-x:clip}

  /* COMMON MASTER / HEADER */
  .header{
    min-height:56px;
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-bottom:10px;
    padding-left:max(var(--mobile-gutter),env(safe-area-inset-left));
    padding-right:max(var(--mobile-gutter),env(safe-area-inset-right));
  }
  .header.scrolled{padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:8px}
  .header-actions{gap:8px}
  .utility-btn{min-width:44px;min-height:44px;padding-inline:14px}
  .menu-btn{width:44px;padding:0}
  .menu-lines{width:16px;height:10px}
  .menu-lines::before,.menu-lines::after{width:16px}


  /* STAY / HERO: mobile is editorial flow, not scaled desktop coordinates. */
  .si-header-slot{height:64px!important}
  .si-hero{padding:82px var(--mobile-gutter) var(--mobile-space-8)!important}
  .si-hero h1{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
    line-height:1.55!important;
    letter-spacing:.065em!important;
  }
  .si-hero-en{margin-top:12px!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-meta)) !important;letter-spacing:.1em!important}
  .si-hero-copy{
    max-width:none!important;
    margin-top:var(--mobile-space-5)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.15!important;
    letter-spacing:.035em!important;
  }
  .si-hero-copy br{display:none!important}
  
  
  
  .si-hero-image{aspect-ratio:4/3!important;margin-top:var(--mobile-space-6)!important;border-radius:8px!important}

  /* STAY / common section rhythm. */
  .si-rooms{padding:0 var(--mobile-gutter) var(--mobile-space-8)!important}
  .si-equipment,.si-food,.si-access,.si-faq{padding:var(--mobile-space-8) var(--mobile-gutter)!important}
  .si-section-head,.si-faq-head{width:100%!important}
  .si-section-name h2,.si-faq-head h2{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-section)) !important;
    line-height:1.6!important;
    letter-spacing:.055em!important;
  }
  .si-section-name p,.si-faq-head p{margin-top:4px!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-meta)) !important}
  .si-section-intro{margin-top:var(--mobile-space-5)!important}
  .si-section-intro h3{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-h3)) !important;
    line-height:1.82!important;
    letter-spacing:.055em!important;
  }
  .si-section-intro h3 br,.si-section-intro p br{display:none!important}
  .si-section-intro p{
    margin-top:var(--mobile-group-inner)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.18!important;
  }

  /* ROOMS: image family -> title/body is one semantic unit. */
  .si-room{margin-top:var(--mobile-group-separate)!important}
  .si-room:first-of-type{margin-top:var(--mobile-space-6)!important}
  .si-room:not(:last-of-type)::after{margin-top:var(--mobile-group-separate)!important}
  .si-room-main{aspect-ratio:4/3!important;border-radius:8px!important}
  .si-room-thumbs{gap:8px!important;margin-top:8px!important}
  .si-thumb{border-radius:6px!important;min-height:44px}
  .si-room-copy{
    display:block!important;
    margin-top:var(--mobile-group-inner)!important;
    padding:0!important;
  }
  .si-room-copy h3{font-size:26px !important;line-height:1.65!important}
  .si-room-copy p{
    margin-top:var(--mobile-group-tight)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.16!important;
  }

  /* FACILITIES: mobile always reads photo -> narrative. */
  .si-facility{margin-top:var(--mobile-space-7)!important}
  .si-facility-gallery{order:1!important}
  .si-facility-gallery>img{aspect-ratio:4/3!important;border-radius:8px!important}
  .si-facility-thumbs{gap:8px!important;margin-top:8px!important}
  .si-facility-copy,.si-facility.image-left .si-facility-copy,.si-facility.image-right .si-facility-copy{
    order:2!important;
    padding:var(--mobile-group-inner) 0 0!important;
  }
  .si-facility-copy h3{font-size:25px !important;line-height:1.7!important}
  .si-facility-copy p{margin-top:var(--mobile-group-tight)!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-map{aspect-ratio:4/3!important;margin-top:var(--mobile-space-7)!important;border-radius:8px!important}

  .si-specs{margin-top:var(--mobile-space-6)!important}
  .si-specs>div{grid-template-columns:96px minmax(0,1fr)!important;gap:16px!important;padding:18px 0!important;font-size:14px !important}
  .si-specs dt{font-size:14px !important}
  .si-specs dd{min-width:0;font-size:14px !important;line-height:1.95!important}
  .si-specs dd span{font-size:13px !important;line-height:1.9!important}
  .si-list-title{margin-top:var(--mobile-space-7)!important;font-size:25px !important;line-height:1.7!important}

  /* Photo sets use native touch scrolling, with the next image peeking. */
  .si-service-photos{
    display:flex!important;
    gap:12px!important;
    margin-top:var(--mobile-group-inner)!important;
    margin-right:calc(var(--mobile-gutter) * -1)!important;
    padding-right:var(--mobile-gutter)!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .si-service-photos::-webkit-scrollbar{display:none}
  .si-service-photos figure{
    flex:0 0 80vw!important;
    max-width:330px!important;
    aspect-ratio:4/3!important;
    border-radius:8px!important;
    scroll-snap-align:start;
  }
  .si-service-lists{grid-template-columns:1fr!important;gap:var(--mobile-space-5)!important}
  .si-service-lists.top{margin-top:var(--mobile-space-6)!important}
  .si-service-lists.bottom{margin-top:var(--mobile-space-5)!important}
  .si-service-lists h4{font-size:18px !important;line-height:1.7!important}
  .si-service-lists ul{grid-template-columns:1fr!important;margin-top:var(--mobile-group-tight)!important;font-size:14px !important;line-height:2!important}

  /* DINING: plan title -> image -> copy, with calm repeated rhythm. */
  .si-food-hero,.si-access-image{aspect-ratio:4/3!important;margin-top:var(--mobile-space-6)!important;border-radius:8px!important}
  .si-meal{margin-top:var(--mobile-group-separate)!important}
  .si-food .si-meal:first-of-type{margin-top:var(--mobile-space-7)!important}
  .si-meal-title{font-size:22px !important;line-height:1.75!important}
  .si-meal figure{aspect-ratio:4/3!important;margin:var(--mobile-group-inner) 0!important;border-radius:8px!important}
  .si-meal-copy h4{font-size:18px !important;line-height:1.8!important}
  .si-meal-copy p{margin-top:var(--mobile-group-tight)!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-meal-copy small{margin-top:var(--mobile-space-4)!important;padding-top:var(--mobile-space-4)!important;font-size:13px !important;line-height:1.95!important}
  .si-chef{margin-top:var(--mobile-space-7)!important;padding:24px 20px!important;border-radius:4px}
  .si-chef-copy h3{font-size:23px !important}
  .si-chef-copy p{font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-chef-profile{margin-top:var(--mobile-space-5)!important}
  .si-chef-profile figure{aspect-ratio:4/3!important;border-radius:8px!important}
  .si-chef-profile h4{font-size:14px !important}
  .si-chef-profile p{font-size:13px !important;line-height:1.95!important}


  /* 320px hardening: long divider headings and reservation internals must shrink within the 20px gutter. */
  .si-service-lists,.si-service-block,.si-service-lists h4,.si-service-lists ul{min-width:0!important;max-width:100%!important}
  .si-service-lists h4{white-space:normal!important}
  .si-service-lists h4::after{width:auto!important;flex:1 1 auto!important;min-width:20px}
  .setoda-reservation-card,.setoda-reservation-copy,.setoda-reservation-action{min-width:0!important;max-width:100%!important}
  .setoda-reservation-action{grid-template-columns:minmax(0,1fr) auto!important;gap:8px 14px!important}
  .setoda-reservation-action strong{min-width:0;overflow-wrap:anywhere}

  /* ACCESS */
  .si-property-name{margin-top:var(--mobile-space-6)!important;font-size:22px !important;line-height:1.7!important}
  .si-address{margin-top:8px!important;font-size:13px !important;line-height:1.8!important}
  .si-access-method{margin-top:var(--mobile-space-5)!important;padding-left:18px!important}
  .si-access-method h4{font-size:19px !important;line-height:1.7!important}
  .si-access-method p{margin-top:var(--mobile-group-tight)!important;font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;line-height:2.16!important}
  .si-access-method small{font-size:13px !important;line-height:1.95!important}

  /* FAQ: reading text never collapses into micro copy; tap areas remain generous. */
  .si-faq-group{margin-top:var(--mobile-space-7)!important}
  .si-faq-group h3{height:auto!important;align-items:flex-start!important;font-size:19px !important;line-height:1.65!important}
  .si-faq-group h3 i{height:26px!important}
  .si-faq-group h3 span{font-size:13px !important;line-height:1.75!important}
  .si-faq-list{margin-top:var(--mobile-space-4)!important}
  .si-faq-trigger,.si-faq-item.is-long .si-faq-trigger{
    min-height:64px!important;
    padding:18px 38px 18px 12px!important;
    font-size:14px !important;
    line-height:1.8!important;
  }
  .si-faq-trigger:hover{padding:18px 38px 18px 12px!important;background:transparent!important}
  .si-faq-trigger em{margin-top:5px!important;font-size:13px !important;line-height:1.75!important}
  .si-faq-trigger>i{right:10px!important;width:18px!important;height:18px!important}
  .si-faq-answer{padding:12px 30px 34px 12px!important}
  .si-faq-answer-ja{font-size:14px !important;line-height:2.12!important}
  .si-faq-answer-en{margin-top:16px!important;padding-top:15px!important;font-size:13px !important;line-height:1.92!important}

  /* EXPLORE MORE: retain the PC visual language but reflow vertically. */

  /* COMMON MASTER / RESERVATION */
  .setoda-reservation{padding:var(--mobile-space-7) 0 var(--mobile-space-8)!important}
  .setoda-reservation-inner{width:calc(100% - 40px)!important}
  .setoda-reservation-head{display:block!important;margin-bottom:var(--mobile-space-5)!important}
  .setoda-reservation-head p{margin-bottom:12px!important}
  .setoda-reservation-head h2{margin-top:0!important;font-size:40px !important}
  .setoda-reservation-card{grid-template-columns:1fr!important;gap:var(--mobile-space-5)!important;min-height:0!important;padding:32px 25px!important;border-radius:4px!important}
  .setoda-reservation-copy h3{font-size:27px !important;line-height:1.62!important}
  .setoda-reservation-copy p{font-size:15px !important;line-height:2!important}
  .setoda-reservation-action{padding:24px 0 0!important;border-left:0!important;border-top:1px solid var(--setoda-line)!important}
  .setoda-reservation-sub{justify-content:flex-start!important;flex-direction:column!important;margin-top:var(--mobile-group-inner)!important;gap:0!important}
  .setoda-reservation-sub a{justify-content:space-between!important;min-height:46px!important;margin:0!important}
  .setoda-reservation-sub a + a{border-top:1px solid rgba(22,75,45,.12)!important}

  /* COMMON MASTER / FOOTER density and two-line brand phrase. */
  .setoda-footer-directory.setoda-footer-directory-sketch{
    width:calc(100% - 40px)!important;
    grid-template-columns:1fr!important;
    gap:var(--mobile-group-related)!important;
    padding:var(--mobile-space-7) 0 var(--mobile-space-6)!important;
  }
  .setoda-footer-profile{grid-template-columns:auto minmax(0,1fr)!important;column-gap:20px!important;row-gap:16px!important;align-items:start!important}
  .setoda-footer-stamp{grid-row:1/3!important;width:88px!important}
  .setoda-footer-address{gap:5px!important;min-width:0!important}
  .setoda-footer-address b{font-size:12px !important}
  .setoda-footer-address span{font-size:11px !important;line-height:1.75!important}
  .setoda-footer-booking{grid-column:1/-1!important;max-width:none!important;min-height:68px!important}
  .setoda-footer-menu-heading{display:grid!important;gap:7px!important;margin-bottom:var(--mobile-group-inner)!important}
  .setoda-footer-feature-links{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 12px!important;margin-bottom:var(--mobile-group-related)!important}
  .setoda-footer-feature-links figure{aspect-ratio:1.35/1!important}
  .setoda-footer-feature-links span{font-size:12px !important}
  .setoda-footer-utility-area{gap:8px!important}
  .setoda-footer-text-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 16px!important}
  .setoda-footer-text-links a,.setoda-footer-instagram{min-height:44px!important}
  .setoda-footer-instagram{margin-top:4px!important}
  .setoda-footer-legal{display:grid!important;margin-top:8px!important;gap:0!important}
  .setoda-footer-legal a{min-height:38px!important}
  .setoda-footer-phrase{
    width:calc(100% - 40px)!important;
    display:grid!important;
    grid-template-rows:auto auto!important;
    align-content:center!important;
    row-gap:24px!important;
    height:auto!important;
    min-height:176px!important;
    margin-inline:auto!important;
    padding:30px 0!important;
  }
  .setoda-footer-phrase span{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
    white-space:nowrap!important;
    font-size:max(var(--fab-font-minimum), clamp(20px,6vw,28px)) !important;
    line-height:1.5!important;
    letter-spacing:.04em!important;
  }
  .setoda-footer-phrase-one{justify-self:start!important;text-align:left!important}
  .setoda-footer-phrase-two{justify-self:end!important;text-align:right!important}
  .setoda-footer-bottom{
    width:calc(100% - 40px)!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
    gap:12px!important;
    padding:18px 0 calc(24px + env(safe-area-inset-bottom))!important;
    font-size:var(--fab-font-minimum) !important;
    line-height:1.45!important;
  }
  .setoda-footer-bottom>span{white-space:nowrap!important}
  .setoda-footer-bottom>div{display:block!important;justify-self:end!important;text-align:right!important;min-width:0!important}
  .setoda-footer-bottom>div span{white-space:nowrap!important}

  /* COMMON MASTER / mobile menu: one clear reading column and comfortable targets. */
  .menu-panel{padding-top:max(58px,env(safe-area-inset-top))!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .menu-shell{min-height:calc(100vh - 58px)!important;min-height:calc(100dvh - 58px)!important;}
  .menu-visual{min-height:24vh!important;min-height:24dvh!important;height:24vh!important;height:24dvh!important;}
  .menu-visual-copy{left:20px!important;right:20px!important;bottom:18px!important}
  .menu-visual-copy>span{margin-bottom:7px!important}
  .menu-visual-copy strong{font-size:17px !important;line-height:1.65!important}
  .menu-visual-copy small{margin-top:8px!important}
  .menu-directory{padding:30px var(--mobile-gutter) calc(32px + env(safe-area-inset-bottom))!important}
  .menu-directory-head{padding-bottom:22px!important}
  .menu-directory-head h2{font-size:22px !important;line-height:1.62!important}
  .menu-directory-head p{margin-top:12px!important;font-size:13px !important;line-height:1.9!important}
  .menu-directory-body{display:block!important;padding:14px 0 24px!important}
  .menu-primary{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  .menu-primary a{grid-template-columns:28px minmax(0,1fr) 18px!important;gap:12px!important;min-height:60px!important;padding:8px 2px!important}
  .menu-no{font-size:var(--fab-font-minimum) !important}
  .menu-label b{font-size:15px !important;line-height:1.5!important}
  .menu-label small{margin-top:2px!important;font-size:var(--fab-font-minimum) !important}
  .menu-aside{margin-top:24px!important}
  .menu-reservation{min-height:70px!important;padding:17px 18px!important;background:var(--brown)!important;color:#fff9ee!important;border-radius:4px}
  .menu-reservation strong{font-size:16px !important}
  .menu-utility-links{display:grid!important;grid-template-columns:1fr!important;margin-top:20px!important;border-top:1px solid var(--line)!important}
  .menu-utility-links a{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;min-height:50px!important;padding:9px 0!important}
  .menu-utility-links a small{margin-top:0!important;text-align:right!important}
  .menu-contact-meta{margin-top:20px!important;gap:6px!important}
  .menu-footer{grid-template-columns:1fr auto!important;gap:10px 18px!important;margin-top:20px!important;padding-top:16px!important;padding-bottom:4px!important}
  .menu-footer span:nth-child(3){grid-column:2}
  .menu-footer small{grid-column:1/-1!important}

  /* Touch devices must not depend on hover-only motion. */
  .setoda-reservation-card:hover{transform:none!important;box-shadow:none!important}
}

@media (max-width:1040px) and (prefers-reduced-motion:reduce){
  .si-scroll-reveal,.reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
}

@media (max-width:1040px){
  body{padding-bottom:0!important}
  body.mobile-cta-visible{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
  .page-index{
    bottom:calc(12px + env(safe-area-inset-bottom))!important;
    transition:opacity .45s var(--setoda-ease),visibility .45s var(--setoda-ease),transform .45s var(--setoda-ease),width .45s var(--ease),bottom .35s var(--ease)!important;
  }
  body.mobile-cta-visible .page-index{
    bottom:calc(88px + env(safe-area-inset-bottom))!important;
  }
}

@media (max-width:1040px){
  :root{
    --pad:var(--mobile-gutter);
    --setoda-mobile-title:clamp(30px,8.2vw,34px);
    --setoda-mobile-display:clamp(38px,10.2vw,42px);
    --setoda-mobile-h3:clamp(28px,7.8vw,31px);
    --setoda-mobile-lead:16px;
    --setoda-mobile-body:15px;
    --setoda-mobile-small:14px;
    --setoda-mobile-meta:10px;
  }

  html{scroll-padding-top:calc(var(--fab-header-height,64px) + 16px)}
  body{
    font-size:14px;
    line-height:1.95;
    overflow-x:clip;
  }

  .header{
    min-height:56px;
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-bottom:10px;
    padding-left:max(var(--mobile-gutter),env(safe-area-inset-left));
    padding-right:max(var(--mobile-gutter),env(safe-area-inset-right));
  }
  .header.scrolled{
    padding-top:calc(8px + env(safe-area-inset-top));
    padding-bottom:8px;
  }
  .header-actions{gap:8px}
  .utility-btn{
    min-width:44px;
    min-height:44px;
    padding-inline:14px;
  }
  .menu-btn{width:44px;padding:0}
  .menu-lines{width:16px;height:10px}
  .menu-lines::before,.menu-lines::after{width:16px}
  .logo{min-width:132px}
  .logo img{height:auto;object-fit:contain}
  .scene-nav{
    left:var(--mobile-gutter);
    right:var(--mobile-gutter);
    bottom:calc(26px + env(safe-area-inset-bottom));
    min-height:44px;
    padding-top:12px;
  }
  .scene-buttons{gap:6px}
  .scene-btn{
    min-width:68px;
    min-height:44px;
    padding:8px 5px 8px 30px;
    font-size:var(--fab-font-minimum);
  }
  .scene-btn::before,.scene-btn.is-active::before{width:24px}
  .scene-btn.is-active::after{max-width:24px}
  [data-hero-drift]{transform:none!important}

  .quick-booking{
    padding:var(--mobile-space-7) var(--mobile-gutter) var(--mobile-space-6)!important;
  }
  .quick-booking-form{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr!important;
    gap:0;
    padding:14px!important;
    border-radius:4px;
  }
  .quick-booking-field{
    min-width:0;
    min-height:72px;
    margin:0!important;
    padding:14px 10px 12px!important;
  }
  .quick-booking-date{grid-column:1/-1!important}
  .quick-booking-field:nth-of-type(2){grid-column:1}
  .quick-booking-field:nth-of-type(3){grid-column:2}
  .quick-booking-field:nth-of-type(4){grid-column:1/-1!important}
  .quick-booking-field label{font-size:11px !important}
  .quick-booking-field input,
  .quick-booking-field select{
    width:100%;
    min-height:32px;
    font-size:16px !important;
    line-height:1.4;
  }
  .quick-booking-date input{font-size:18px !important}
  .quick-booking-links{
    grid-column:1/-1!important;
    display:flex;
    justify-content:space-between;
    gap:12px 18px;
    min-height:52px;
    padding:16px 10px!important;
  }
  .quick-booking-links a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    font-size:11px !important;
  }
  .quick-booking-submit{
    grid-column:1/-1!important;
    min-height:58px!important;
    margin-top:6px;
    font-size:13px !important;
  }

  .setoda-intro{
    padding:var(--mobile-space-8) 0 calc(var(--mobile-space-8) + 8px)!important;
  }
  .setoda-intro-shell{width:calc(100% - (var(--mobile-gutter) * 2))!important}
  .setoda-intro-composition{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    min-height:0!important;
  }
  .setoda-intro-center{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    grid-column:1/-1!important;
    grid-row:1!important;
    width:100%!important;
    max-width:none!important;
    padding:0 0 var(--mobile-space-6)!important;
    transform:none!important;
    text-align:left!important;
  }
  .setoda-intro-center.reveal,
  .setoda-intro-center.reveal.in{transform:none!important}
  .setoda-round-label,
  .setoda-intro-eyebrow{text-align:left}
  .setoda-intro-center h2{
    max-width:100%!important;
    margin-inline:0!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
    line-height:1.72!important;
    text-align:left!important;
  }
  .setoda-intro-story{
    width:100%!important;
    max-width:100%!important;
    margin-top:var(--mobile-space-5)!important;
    padding-top:var(--mobile-space-4)!important;
    text-align:left!important;
  }
  .setoda-intro-story p{
    margin-bottom:2.1em!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.15!important;
  }
  .setoda-intro-orbit{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:auto!important;
    overflow:hidden;
  }
  .setoda-intro-orbit-left-main{
    grid-column:1/-1!important;
    grid-row:2!important;
    height:66vw!important;
    margin:0!important;
  }
  .setoda-intro-orbit-left-secondary-v08{
    display:block!important;
    grid-column:1!important;
    grid-row:3!important;
    height:48vw!important;
    margin:var(--mobile-space-3) 0 0!important;
  }
  .setoda-intro-orbit-right-top{
    grid-column:2!important;
    grid-row:3!important;
    height:58vw!important;
    margin:var(--mobile-space-6) 0 0!important;
  }
  .setoda-intro-orbit-right-mid{
    grid-column:1/-1!important;
    grid-row:4!important;
    width:76%!important;
    height:58vw!important;
    margin:var(--mobile-space-5) 0 0 auto!important;
  }
  .setoda-intro-parallax-media{
    will-change:transform!important;
  }
  .setoda-island-location-note{
    position:relative!important;
    grid-column:1/-1!important;
    grid-row:5!important;
    left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    margin-top:var(--mobile-space-5);
  }

  .setoda-values-header{
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
    padding:var(--mobile-space-8) 0 var(--mobile-space-7)!important;
  }
  .setoda-values h2{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-display)) !important;
    line-height:1.28!important;
  }
  .setoda-values-intro{
    margin-top:var(--mobile-space-4);
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-small)) !important;
    line-height:2.05!important;
  }
  .setoda-values-stage{display:block!important}
  .setoda-values-visual,.setoda-value-thumbs{display:none!important}
  .setoda-value{
    display:block!important;
    min-height:0!important;
    padding:var(--mobile-space-7) var(--mobile-gutter) var(--mobile-space-8)!important;
  }
  .setoda-value + .setoda-value{border-top:1px solid var(--setoda-line)}
  .setoda-value-inner{max-width:none!important}
  .setoda-value-meta{font-size:max(var(--fab-font-minimum), var(--setoda-mobile-meta)) !important}
  .setoda-value-category{
    margin-top:var(--mobile-space-5)!important;
    font-size:12px !important;
  }
  .setoda-value h3{
    margin-bottom:var(--mobile-space-4)!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-h3)) !important;
    line-height:1.62!important;
  }
  .setoda-value-body p{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-body)) !important;
    line-height:2.15!important;
  }
  .setoda-text-link{
    min-height:44px;
    margin-top:var(--mobile-space-4)!important;
  }
  .setoda-value-mobile-image{
    display:block!important;
    height:auto!important;
    aspect-ratio:4/3;
    margin-top:var(--mobile-space-6)!important;
    overflow:hidden;
    border-radius:var(--fab-content-image-radius,8px);
  }
  .setoda-value-mobile-image img{
    position:static!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover;
    transform:none!important;
  }

  .stay-support{
    padding-top:var(--mobile-space-8)!important;
    padding-bottom:var(--mobile-space-8)!important;
  }
  .support-head{gap:var(--mobile-space-4)!important;margin-bottom:var(--mobile-space-5)!important}
  .support-head p{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-small)) !important;
    line-height:2.05!important;
  }
  .support-accordion-trigger{
    grid-template-columns:36px minmax(0,1fr) 32px!important;
    gap:10px 14px!important;
    min-height:64px!important;
    padding:22px 0!important;
  }
  .support-accordion-trigger strong{font-size:15px !important}
  .support-summary{font-size:13px !important;line-height:1.85!important}
  .support-toggle{width:28px!important;height:28px!important}
  .support-detail-grid{grid-template-columns:1fr!important;padding-left:36px!important}
  .support-detail-grid>div{padding:20px 16px!important}
  .support-lower-links{grid-template-columns:1fr!important}

  .setoda-about{
    height:auto!important;
    min-height:760px!important;
    display:flex;
    align-items:flex-end;
    padding:
      calc(var(--mobile-space-8) + 20px)
      var(--mobile-gutter)
      var(--mobile-space-7)!important;
    overflow:hidden;
  }
  .setoda-about-media img{
    top:0!important;
    height:100%!important;
    transform:scale(1.03)!important;
    transition:none!important;
    will-change:auto!important;
  }
  .setoda-about-type{
    top:96px!important;
    font-size:max(var(--fab-font-minimum), clamp(54px,16vw,78px)) !important;
    line-height:1!important;
  }
  .setoda-about-content{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:430px!important;
  }
  .setoda-about-content h2{
    max-width:100%!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
    line-height:1.65!important;
  }
  .setoda-about-content>p:not(.setoda-about-eyebrow){
    max-width:100%!important;
    font-size:14px !important;
    line-height:2.05!important;
  }
  .setoda-about-link{
    min-height:44px;
    margin-top:var(--mobile-space-4)!important;
  }

  .setoda-reservation{
    padding:var(--mobile-space-8) 0 calc(var(--mobile-space-8) + 8px)!important;
  }
  .setoda-reservation-inner{width:calc(100% - (var(--mobile-gutter) * 2))!important}
  .setoda-reservation-head{margin-bottom:var(--mobile-space-5)!important}
  .setoda-reservation-head h2{
    margin-top:16px!important;
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-title)) !important;
  }
  .setoda-reservation-card{
    grid-template-columns:1fr!important;
    gap:var(--mobile-space-4)!important;
    min-height:0!important;
    padding:30px 24px!important;
  }
  .setoda-reservation-copy h3{
    font-size:max(var(--fab-font-minimum), var(--setoda-mobile-h3)) !important;
    line-height:1.6!important;
  }
  .setoda-reservation-copy p{font-size:14px !important}
  .setoda-reservation-action{
    min-height:64px;
    padding:22px 0 0!important;
    border-left:0!important;
    border-top:1px solid var(--setoda-line)!important;
  }
  .setoda-reservation-sub{
    flex-direction:column!important;
    gap:12px!important;
  }
  .setoda-reservation-sub a{
    min-height:48px;
    justify-content:space-between!important;
  }

  .setoda-footer-directory.setoda-footer-directory-sketch,
  .setoda-footer-phrase,
  .setoda-footer-bottom{
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
  }
  .setoda-footer-directory.setoda-footer-directory-sketch{
    grid-template-columns:1fr!important;
    gap:var(--mobile-space-6)!important;
    padding:var(--mobile-space-7) 0 var(--mobile-space-7)!important;
  }
  .setoda-footer-profile{
    grid-template-columns:1fr!important;
    gap:var(--mobile-space-4)!important;
  }
  .setoda-footer-brand-logo{width:150px!important}
  .setoda-footer-booking{
    grid-column:auto!important;
    max-width:none!important;
    min-height:64px!important;
  }
  .setoda-footer-feature-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:22px 12px!important;
  }
  .setoda-footer-text-links{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important;
    gap:10px 16px!important;
  }
  .setoda-footer-text-links a,
  .setoda-footer-instagram{
    width:auto!important;
    min-width:0;
    min-height:44px;
    display:flex;
    align-items:center;
    overflow-wrap:anywhere;
  }
  .setoda-footer-legal{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:4px!important;
  }
  .setoda-footer-legal a{
    display:flex;
    align-items:center;
    min-height:40px;
    width:auto!important;
  }
  .setoda-footer-phrase{
    height:auto!important;
    min-height:300px;
    padding:0!important;
  }
  .setoda-footer-phrase span{
    left:0!important;
    right:0!important;
    width:100%;
    white-space:normal!important;
    font-size:max(var(--fab-font-minimum), clamp(26px,7.6vw,34px)) !important;
    line-height:1.55!important;
  }
  .setoda-footer-phrase-one{top:20%!important}
  .setoda-footer-phrase-two{top:56%!important;text-align:right}
  .setoda-footer-bottom{
    flex-direction:column!important;
    gap:10px!important;
    padding-bottom:calc(34px + env(safe-area-inset-bottom))!important;
  }
  .setoda-footer-bottom>div{justify-content:flex-start!important}
  .page-index{
    left:11px!important;
    right:auto!important;
    width:176px!important;
    padding:0!important;
  }
  .page-index.is-open{width:min(228px,calc(100vw - 22px))!important}
  .page-index-mobile-toggle{
    min-height:44px!important;
    padding:8px 10px!important;
    grid-template-columns:42px minmax(0,1fr) 14px!important;
  }
  .page-index-mobile-label{font-size:var(--fab-font-minimum) !important}
  .page-index-mobile-toggle em{font-size:var(--fab-font-minimum) !important}
  .page-index-link,.page-index-link.is-active{
    min-height:40px!important;
  }
}

@media (max-width:1040px) and (prefers-reduced-motion:reduce){
  .setoda-intro-parallax-media,
  .setoda-about-media img,
  .gallery-track{
    animation:none!important;
    transition:none!important;
    transform:none!important;
  }
}

@media (max-width:1040px){
  :root{
    --mobile-group-tight:16px;
    --mobile-group-inner:28px;
    --mobile-group-related:44px;
    --mobile-group-separate:88px;
  }

  /* FOR YOU: one calm visual path rather than a noisy mini-grid. */
  .setoda-intro{padding-bottom:var(--mobile-group-separate)!important}
  .setoda-intro-composition{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
  }
  .setoda-intro-center{
    order:1!important;
    padding-bottom:var(--mobile-group-related)!important;
  }
  .setoda-intro-story{margin-top:var(--mobile-group-inner)!important}
  .setoda-intro-story p{margin-bottom:1.75em!important}
  .setoda-intro-orbit{
    flex:none;
    contain:paint;
  }
  .setoda-intro-orbit-left-main{
    order:2!important;
    width:86%!important;
    height:auto!important;
    aspect-ratio:4/3;
    margin:0 auto 0 0!important;
  }
  .setoda-intro-orbit-left-secondary-v08{
    order:3!important;
    width:56%!important;
    height:auto!important;
    aspect-ratio:3/4;
    margin:var(--mobile-group-related) 3% 0 auto!important;
  }
  .setoda-intro-orbit-right-top{
    order:4!important;
    width:72%!important;
    height:auto!important;
    aspect-ratio:4/3;
    margin:var(--mobile-group-separate) auto 0 4%!important;
  }
  .setoda-intro-orbit-right-mid{
    order:5!important;
    width:62%!important;
    height:auto!important;
    aspect-ratio:3/4;
    margin:var(--mobile-group-related) 0 0 auto!important;
  }
  .setoda-intro-orbit img{aspect-ratio:auto!important}
  .setoda-intro-parallax-media{
    top:-9%!important;
    bottom:-9%!important;
    background-size:cover!important;
    will-change:transform!important;
  }
  .setoda-island-location-note{
    order:6!important;
    margin-top:var(--mobile-group-related)!important;
  }

  /* FEATURE intro and first story belong to one semantic family. */
  .setoda-values-header{
    padding-bottom:var(--mobile-group-related)!important;
  }
  .setoda-value{
    padding:var(--mobile-group-separate) var(--mobile-gutter) 0!important;
  }
  .setoda-value:first-child{
    padding-top:var(--mobile-group-inner)!important;
  }
  .setoda-value:last-child{
    padding-bottom:var(--mobile-space-8)!important;
  }
  .setoda-value-inner{
    display:flex!important;
    flex-direction:column!important;
  }
  .setoda-value-meta{order:1}
  .setoda-value-category{
    order:2;
    margin:var(--mobile-group-inner) 0 0!important;
  }
  .setoda-value-mobile-image{
    order:3;
    width:100%!important;
    aspect-ratio:1/1!important;
    height:auto!important;
    margin:var(--mobile-group-inner) 0 0!important;
  }
  .setoda-value h3{
    order:4;
    margin:var(--mobile-group-related) 0 var(--mobile-group-inner)!important;
  }
  .setoda-value-body{order:5}
  .setoda-value-body p{margin-bottom:1.35em!important}
  .setoda-text-link{
    order:6;
    margin-top:var(--mobile-group-inner)!important;
  }

  /* ACCESS / FAQ uses the same content width as the rest of the page. */
  .stay-support{
    padding-left:var(--mobile-gutter)!important;
    padding-right:var(--mobile-gutter)!important;
  }
  .support-shell{
    width:100%!important;
    max-width:none!important;
  }

  /* ABOUT: soften the oversized lettering and lock the narrative heading to two lines. */
  .setoda-about-type{
    top:92px!important;
    font-size:max(var(--fab-font-minimum), clamp(46px,14vw,64px)) !important;
    line-height:1.12!important;
    letter-spacing:.012em!important;
    opacity:.84;
  }
  .setoda-about-type span{padding-left:10px!important}
  .setoda-about-type span:nth-child(2){padding-left:6vw!important}
  .setoda-about-type span:nth-child(3){padding-left:18vw!important}
  .setoda-about-content h2{
    font-size:max(var(--fab-font-minimum), clamp(21px,6.3vw,27px)) !important;
    line-height:1.75!important;
    letter-spacing:.035em!important;
  }
  .setoda-about-content h2 br{display:none}
  .setoda-about-line{
    display:block;
    white-space:nowrap;
  }

  /* RESERVATION: consultation + FAQ are one compact secondary action group. */
  .setoda-reservation-card{margin-bottom:14px!important}
  .setoda-reservation-sub{
    margin-top:var(--mobile-group-inner)!important;
    gap:0!important;
  }
  .setoda-reservation-sub a{
    min-height:46px!important;
    margin:0!important;
  }
  .setoda-reservation-sub a + a{
    border-top:1px solid rgba(22,75,45,.12);
  }

  /* FOOTER: keep utility/navigation groups compact while preserving tap area. */
  .setoda-footer-directory.setoda-footer-directory-sketch{
    gap:var(--mobile-group-related)!important;
    padding-top:var(--mobile-space-7)!important;
    padding-bottom:var(--mobile-space-6)!important;
  }
  .setoda-footer-menu-heading{margin-bottom:var(--mobile-group-inner)!important}
  .setoda-footer-feature-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:20px 12px!important;
    margin-bottom:var(--mobile-group-related)!important;
  }
  .setoda-footer-utility-area{gap:8px!important}
  .setoda-footer-text-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0 16px!important;
  }
  .setoda-footer-text-links a,
  .setoda-footer-instagram{
    min-height:44px!important;
  }
  .setoda-footer-instagram{margin-top:4px!important}
  .setoda-footer-legal{
    margin-top:8px;
    gap:0!important;
  }
  .setoda-footer-legal a{min-height:38px!important}

  /* Footer tagline = exactly two semantic lines from 320px through 760px. */
  .setoda-footer-phrase{
    min-height:228px!important;
  }
  .setoda-footer-phrase span{
    width:100%!important;
    white-space:nowrap!important;
    font-size:max(var(--fab-font-minimum), clamp(20px,6vw,28px)) !important;
    line-height:1.5!important;
    letter-spacing:.04em!important;
  }
  .setoda-footer-phrase-one{
    top:25%!important;
    text-align:left!important;
  }
  .setoda-footer-phrase-two{
    top:58%!important;
    text-align:right!important;
    transform:none!important;
  }
}

@media (max-width:1040px) and (prefers-reduced-motion:reduce){
  .setoda-intro-parallax-media{transform:none!important;will-change:auto!important}
}

@media (max-width:1040px){
  /* COMMON MASTER: fixed INDEX is removed on smartphones to preserve viewport space. */
  .page-index{display:none!important}

  /* TOP: give the beginning of FEATURE stories room after the background transition. */
  .setoda-values-header{padding-bottom:48px!important}
  .setoda-value:first-child{padding-top:76px!important}
  .setoda-value + .setoda-value{border-top:0!important}

  /* TOP: identity -> square photo -> category -> title -> body -> detail. */
  .setoda-value-inner{display:flex!important;flex-direction:column!important}
  .setoda-value-meta{order:1!important}
  .setoda-value-mobile-image{
    order:2!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    margin:32px 0 0!important;
    border-radius:var(--fab-content-image-radius,8px)!important;
    overflow:hidden!important;
  }
  .setoda-value-mobile-image img{width:100%!important;height:100%!important;object-fit:cover!important}
  .setoda-value-category{order:3!important;margin:24px 0 0!important}
  .setoda-value h3{order:4!important;margin:14px 0 26px!important}
  .setoda-value-body{order:5!important}
  .setoda-text-link{
    order:6!important;
    align-self:flex-end!important;
    justify-content:flex-end!important;
    margin:22px 0 0 auto!important;
    text-align:right!important;
  }

  /* TOP: ABOUT typography travels from left -> center -> right. */
  .setoda-about-type{
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
    width:auto!important;
    padding:0!important;
  }
  .setoda-about-type span{width:100%!important;margin:0!important;padding:0!important}
  .setoda-about-type span:nth-child(1){justify-self:start!important;text-align:left!important}
  .setoda-about-type span:nth-child(2){justify-self:center!important;text-align:center!important}
  .setoda-about-type span:nth-child(3){justify-self:end!important;text-align:right!important}
  .setoda-about-link{
    display:flex!important;
    width:max-content!important;
    margin:30px 0 0 auto!important;
    justify-content:flex-end!important;
    text-align:right!important;
  }

  /* COMMON MASTER: related reservation utility links are a compact pair. */
  .setoda-reservation-sub{margin-top:14px!important;gap:0!important}
  .setoda-reservation-sub a{min-height:44px!important;padding-top:6px!important;padding-bottom:6px!important}

  /* COMMON MASTER: mobile footer uses tighter semantic grouping. */
  .setoda-footer-directory.setoda-footer-directory-sketch{
    gap:34px!important;
    padding-top:64px!important;
    padding-bottom:26px!important;
  }
  .setoda-footer-address{gap:5px!important}
  .setoda-footer-address span{
    white-space:normal!important;
    font-size:11px !important;
    line-height:1.7!important;
  }
  .setoda-footer-menu-heading{margin-bottom:20px!important}
  .setoda-footer-feature-links{margin-bottom:26px!important;gap:17px 12px!important}
  .setoda-footer-utility-area{gap:2px!important}
  .setoda-footer-text-links{gap:0 14px!important}
  .setoda-footer-text-links a,
  .setoda-footer-instagram{min-height:38px!important}
  .setoda-footer-instagram{margin-top:0!important}
  .setoda-footer-legal{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:0 14px!important;
    margin-top:2px!important;
  }
  .setoda-footer-legal a{
    min-height:28px!important;
    font-size:var(--fab-font-minimum) !important;
    line-height:1.45!important;
    opacity:.78;
  }
  .setoda-footer-phrase{
    min-height:176px!important;
    height:176px!important;
    margin-top:0!important;
  }
  .setoda-footer-phrase-one{top:19%!important}
  .setoda-footer-phrase-two{top:48%!important}
  .setoda-footer-bottom{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
    gap:12px!important;
    padding:18px 0 calc(24px + env(safe-area-inset-bottom))!important;
    font-size:var(--fab-font-minimum) !important;
    line-height:1.45!important;
  }
  .setoda-footer-bottom>span{white-space:nowrap!important}
  .setoda-footer-bottom>div{
    display:block!important;
    justify-self:end!important;
    text-align:right!important;
    min-width:0!important;
  }
  .setoda-footer-bottom>div span{white-space:nowrap!important}

  /* COMMON MASTER: mobile menu prioritizes readability and touch comfort. */
  .menu-panel{
    padding-top:max(58px,env(safe-area-inset-top))!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .menu-shell{min-height:calc(100vh - 58px)!important;min-height:calc(100dvh - 58px)!important;}
  .menu-visual{
    min-height:24vh!important;min-height:24dvh!important;
    height:24vh!important;height:24dvh!important;
  }
  .menu-visual-copy{left:20px!important;right:20px!important;bottom:18px!important}
  .menu-visual-copy>span{margin-bottom:7px!important}
  .menu-visual-copy strong{font-size:17px !important;line-height:1.65!important}
  .menu-visual-copy small{margin-top:8px!important}
  .menu-directory{
    padding:30px var(--mobile-gutter) calc(32px + env(safe-area-inset-bottom))!important;
  }
  .menu-directory-head{padding-bottom:22px!important}
  .menu-directory-head h2{font-size:22px !important;line-height:1.62!important}
  .menu-directory-head p{margin-top:12px!important;font-size:13px !important;line-height:1.9!important}
  .menu-directory-body{display:block!important;padding:14px 0 24px!important}
  .menu-primary{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
  }
  .menu-primary a{
    grid-template-columns:28px minmax(0,1fr) 18px!important;
    gap:12px!important;
    min-height:60px!important;
    padding:8px 2px!important;
  }
  .menu-no{font-size:var(--fab-font-minimum) !important}
  .menu-label b{font-size:15px !important;line-height:1.5!important}
  .menu-label small{margin-top:2px!important;font-size:var(--fab-font-minimum) !important}
  .menu-aside{margin-top:24px!important}
  .menu-reservation{
    min-height:70px!important;
    padding:17px 18px!important;
    background:var(--brown)!important;
    color:#fff9ee!important;
    border-radius:4px;
  }
  .menu-reservation strong{font-size:16px !important}
  .menu-utility-links{
    display:grid!important;
    grid-template-columns:1fr!important;
    margin-top:20px!important;
    border-top:1px solid var(--line)!important;
  }
  .menu-utility-links a{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    min-height:50px!important;
    padding:9px 0!important;
  }
  .menu-utility-links a small{margin-top:0!important;text-align:right!important}
  .menu-contact-meta{margin-top:20px!important;gap:6px!important}
  .menu-footer{
    grid-template-columns:1fr auto!important;
    gap:10px 18px!important;
    margin-top:20px!important;
    padding-top:16px!important;
    padding-bottom:4px!important;
  }
  .menu-footer span:nth-child(3){grid-column:2}
  .menu-footer small{grid-column:1/-1!important}
}

@media (max-width:1040px) and (prefers-reduced-motion:reduce){
}

@media (max-width:1040px){

  /* TOP: FOR YOU opening copy belongs to one uninterrupted semantic group. */
  .setoda-intro-story{
    border-top:0!important;
  }

  /* TOP: exact FEATURE reading rhythm requested. */
  .setoda-value-category{
    margin-top:30px!important;
    margin-bottom:0!important;
  }
  .setoda-value h3{
    margin-top:10px!important;
    margin-bottom:20px!important;
  }
  .setoda-value-body p{
    margin-top:0!important;
    margin-bottom:15px!important;
  }

  /* TOP: line alignment handles position; manual padding is no longer needed. */
  .setoda-about-type{gap:5px!important}
  .setoda-about-type span:nth-child(2),
  .setoda-about-type span:nth-child(3){padding-left:0!important}

  /* COMMON MASTER: equal optical breathing room above and below the two-line phrase. */
  .setoda-footer-phrase{
    display:grid!important;
    grid-template-rows:auto auto!important;
    align-content:center!important;
    row-gap:24px!important;
    height:auto!important;
    min-height:176px!important;
    padding:30px 0!important;
  }
  .setoda-footer-phrase span{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
  }
  .setoda-footer-phrase-one{
    justify-self:start!important;
    text-align:left!important;
  }
  .setoda-footer-phrase-two{
    justify-self:end!important;
    text-align:right!important;
  }
}

@media (max-width:1040px) and (prefers-reduced-motion:reduce){
}

@media (max-width:1040px){
}

@media (max-width:1040px){

  /* TOP: unify the third (lemon) image's top spacing with the other FOR YOU images. */
  .setoda-intro-orbit-right-top{
    margin:var(--mobile-group-related) auto 0 4%!important;
  }
}

@media (max-width:1040px){
}

@media (max-width:1040px){/* TOP exact fixed RESERVATION visual language. */

}

@media (max-width:1040px){
  :root{
    /* Semantic spacing hierarchy: related information stays close; chapter changes breathe. */
    --si-gap-micro:8px;
    --si-gap-copy:12px;
    --si-gap-unit:24px;
    --si-gap-cluster:40px;
    --si-gap-section:80px;
  }

  /* TOP exact logo scale. */
  .header .logo{
    width:132px!important;
    max-width:132px!important;
    min-width:132px!important;
  }

  /* TOP menu visual must remain a real visual, never a placeholder. */
  .menu-visual img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  /* FIRST VIEW INDEX: every item owns its own top/bottom rule; no continuous first-row rule. */
  
  
  

  /* Typography hierarchy: section titles lead, editorial lead and item titles step down clearly. */
  .si-section-intro h3{
    font-size:19px !important;
    line-height:1.8!important;
    letter-spacing:.05em!important;
  }
  .si-room-copy h3,
  .si-facility-copy h3,
  .si-list-title,
  .si-meal-title,
  .si-chef-copy h3,
  .si-property-name{
    font-size:20px !important;
    line-height:1.72!important;
    letter-spacing:.055em!important;
  }
  .si-service-lists h4,
  .si-meal-copy h4,
  .si-access-method h4{
    font-size:17px !important;
    line-height:1.75!important;
  }

  /* Page-wide semantic rhythm audit. */
  .si-hero-copy{margin-top:32px!important}
  
  .si-hero-image{margin-top:56px!important}

  .si-section-intro{margin-top:32px!important}
  .si-section-intro p{margin-top:16px!important}

  /* ROOMS: thumbnail family -> heading -> body = one cluster. */
  .si-room{margin-top:72px!important}
  .si-room:first-of-type{margin-top:56px!important}
  .si-room:not(:last-of-type)::after{margin-top:64px!important}
  .si-room-thumbs{margin-top:8px!important}
  .si-room-copy{margin-top:24px!important}
  .si-room-copy p{margin-top:12px!important}

  /* FACILITIES: exactly the same image -> heading -> body rhythm as ROOMS. */
  .si-facility{margin-top:64px!important}
  .si-equipment .si-facility:first-of-type{margin-top:56px!important}
  .si-facility-thumbs{margin-top:8px!important}
  .si-facility.image-left,
  .si-facility.image-right{gap:0!important}
  .si-facility-copy,
  .si-facility.image-left .si-facility-copy,
  .si-facility.image-right .si-facility-copy{
    margin-top:24px!important;
    padding-top:0!important;
  }
  .si-facility-copy p{margin-top:12px!important}

  /* Floor plan and overview information are one semantic unit. */
  .si-map{margin-top:64px!important}
  .si-specs{margin-top:24px!important}
  .si-list-title{margin-top:56px!important}
  .si-service-photos{margin-top:24px!important}
  .si-service-lists.top{margin-top:40px!important}
  .si-service-lists.bottom{margin-top:32px!important}
  .si-service-lists ul{margin-top:12px!important}

  /* DINING: fix flex-shrink bug from .si-meal.one/.two/.three fixed heights. */
  .si-meal,
  .si-meal.one,
  .si-meal.two,
  .si-meal.three{height:auto!important;min-height:0!important}
  .si-food .si-meal:first-of-type{margin-top:64px!important}
  .si-meal{margin-top:72px!important}
  .si-meal figure{
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:4/3!important;
    margin:20px 0!important;
  }
  .si-meal figure img{width:100%!important;height:100%!important;object-fit:cover!important}
  .si-meal-copy p{margin-top:12px!important}
  .si-meal-copy small{margin-top:24px!important;padding-top:24px!important}
  .si-chef{margin-top:64px!important}
  .si-chef-profile{margin-top:32px!important}

  /* ACCESS: name/address stay together; transport methods form the next cluster. */
  .si-property-name{margin-top:24px!important}
  .si-address{margin-top:8px!important}
  .si-access-method{margin-top:32px!important}
  .si-access-method p{margin-top:12px!important}

  /* FAQ group heading: JP first, EN second; vertical rule spans both lines exactly. */
  .si-faq-group{margin-top:56px!important}
  .si-faq-group h3{
    display:grid!important;
    grid-template-columns:1px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:14px!important;
    row-gap:5px!important;
    align-items:start!important;
    height:auto!important;
    font-size:18px !important;
    line-height:1.65!important;
  }
  .si-faq-group h3 i{
    grid-column:1!important;
    grid-row:1/3!important;
    width:1px!important;
    height:100%!important;
    min-height:0!important;
    align-self:stretch!important;
    background:#333!important;
  }
  .si-faq-group-ja{
    grid-column:2!important;
    grid-row:1!important;
    display:block!important;
    min-width:0;
  }
  .si-faq-group-en{
    grid-column:2!important;
    grid-row:2!important;
    display:block!important;
    margin:0!important;
    font-size:12px !important;
    line-height:1.6!important;
    letter-spacing:.095em!important;
    color:#6a625b;
  }
  .si-faq-list{margin-top:24px!important}

  /* EXPLORE MORE: English meta and Japanese title belong to one label group. */

  /* Section boundaries remain generous; within-section gaps above are deliberately smaller. */
  .si-equipment,.si-food,.si-access,.si-faq{
    padding-top:var(--si-gap-section)!important;
    padding-bottom:var(--si-gap-section)!important;
  }
}

@media (max-width:1040px){
  :root{
    --si-type-page:34px;
    --si-type-section:30px;
    --si-type-lead:17px;
    --si-type-item:18px;
    --si-type-sub:15px;
    --si-type-body:13px;
    --si-type-small:12px;
    --si-type-meta:10px;
    --si-space-tight:15px;
    --si-space-inner:30px;
    --si-space-group:50px;
    --si-space-section:80px;
  }

  /* TYPOGRAPHY / 13px body baseline */
  .si-hero h1{font-size:max(var(--fab-font-minimum), var(--si-type-page)) !important;line-height:1.55!important}
  .si-section-name h2,.si-faq-head h2{font-size:max(var(--fab-font-minimum), var(--si-type-section)) !important;line-height:1.55!important}
  .si-section-intro h3{font-size:max(var(--fab-font-minimum), var(--si-type-lead)) !important;line-height:1.9!important;letter-spacing:.05em!important}
  .si-room-copy h3,
  .si-facility-copy h3,
  .si-list-title,
  .si-meal-title,
  .si-chef-copy h3,
  .si-property-name{font-size:max(var(--fab-font-minimum), var(--si-type-item)) !important;line-height:1.72!important;letter-spacing:.05em!important}
  .si-service-lists h4,.si-meal-copy h4,.si-access-method h4{font-size:max(var(--fab-font-minimum), var(--si-type-sub)) !important;line-height:1.8!important}

  .si-hero-copy,
  .si-section-intro p,
  .si-room-copy p,
  .si-facility-copy p,
  .si-meal-copy p,
  .si-chef-copy p,
  .si-access-method p,
  .si-faq-answer-ja{
    font-size:max(var(--fab-font-minimum), var(--si-type-body)) !important;
    line-height:2.12!important;
    letter-spacing:.025em!important;
  }

  .si-section-name p,.si-faq-head p,.si-hero-en{font-size:max(var(--fab-font-minimum), var(--si-type-meta)) !important}
  
  .si-specs>div,.si-specs dt,.si-specs dd{font-size:13px !important}
  .si-specs dd span{font-size:12px !important}
  .si-service-lists ul{font-size:13px !important;line-height:2!important}
  .si-meal-copy small,.si-access-method small{font-size:max(var(--fab-font-minimum), var(--si-type-small)) !important;line-height:1.95!important}
  .si-chef-profile h4{font-size:13px !important}
  .si-chef-profile p{font-size:12px !important;line-height:1.95!important}
  .si-faq-group h3{font-size:16px !important;line-height:1.7!important}
  .si-faq-group-en{font-size:11px !important;line-height:1.6!important}
  .si-faq-trigger,.si-faq-item.is-long .si-faq-trigger{font-size:14px !important;line-height:1.85!important}
  .si-faq-trigger em{font-size:12px !important;line-height:1.75!important}
  .si-faq-answer-en{font-size:12px !important;line-height:1.95!important}

  /* HERO / one clear lead cluster */
  .si-hero-copy{margin-top:var(--si-space-inner)!important}
  
  .si-hero-image{margin-top:var(--si-space-group)!important}

  /* SECTION HEADER -> LEAD -> BODY */
  .si-section-intro{margin-top:50px!important}
  .si-section-intro p{margin-top:30px!important}

  /* ROOMS / image family -> title -> body */
  .si-room:first-of-type{margin-top:60px!important}
  .si-room{margin-top:70px!important}
  .si-room:not(:last-of-type)::after{margin-top:60px!important}
  .si-room-thumbs{margin-top:8px!important}
  .si-room-copy{margin-top:30px!important}
  .si-room-copy p{margin-top:15px!important}
  .si-room-copy p+p{margin-top:15px!important}

  /* FACILITIES / exact requested values */
  .si-facility{margin-top:70px!important}
  .si-equipment .si-facility:first-of-type{margin-top:60px!important}
  .si-facility-thumbs{margin-top:8px!important}
  .si-facility-copy,
  .si-facility.image-left .si-facility-copy,
  .si-facility.image-right .si-facility-copy{
    margin-top:30px!important;
    padding-top:0!important;
  }
  .si-facility-copy p{margin-top:15px!important}
  .si-facility-copy p+p{margin-top:15px!important}

  /* FLOOR PLAN + OVERVIEW are one cluster */
  .si-map{margin-top:70px!important}
  .si-specs{margin-top:30px!important}
  .si-list-title{margin-top:60px!important}
  .si-service-photos{margin-top:30px!important}
  .si-service-lists.top{margin-top:50px!important}
  .si-service-lists.bottom{margin-top:40px!important}
  .si-service-lists ul{margin-top:15px!important}

  /* DINING / repeated plan rhythm */
  .si-food-hero{margin-top:50px!important}
  .si-food .si-meal:first-of-type{margin-top:60px!important}
  .si-meal{margin-top:70px!important}
  .si-meal figure{margin:30px 0!important}
  .si-meal-copy p{margin-top:15px!important}
  .si-meal-copy p+p{margin-top:15px!important}
  .si-meal-copy small{margin-top:30px!important;padding-top:30px!important}
  .si-chef{margin-top:70px!important}
  .si-chef-copy p{margin-top:15px!important}
  .si-chef-profile{margin-top:40px!important}

  /* ACCESS / location cluster -> transport cluster */
  .si-access-image{margin-top:50px!important}
  .si-property-name{margin-top:30px!important}
  .si-address{margin-top:10px!important;font-size:12px !important;line-height:1.85!important}
  .si-access-method{margin-top:40px!important}
  .si-access-method p{margin-top:15px!important}

  /* FAQ / group heading -> questions -> answers */
  .si-faq-group{margin-top:60px!important}
  .si-faq-list{margin-top:30px!important}
  .si-faq-answer{padding-top:15px!important;padding-bottom:30px!important}
  .si-faq-answer-en{margin-top:15px!important;padding-top:15px!important}

  /* PAGE-WIDE chapter rhythm */
  .si-equipment,.si-food,.si-access,.si-faq{
    padding-top:var(--si-space-section)!important;
    padding-bottom:var(--si-space-section)!important;
  }
  .si-rooms{padding-bottom:var(--si-space-section)!important}

  /* FOOTER / address is one uninterrupted line on smartphone. */
  .setoda-footer-address span{white-space:nowrap!important}
  .setoda-footer-address span br{display:none!important}
}

@media (max-width:1040px){
  /* FIRST VIEW INDEX / one visual separator per row boundary. */
  
  
  

  /* EDITORIAL BODY COLOR / preserve meta labels and headings. */
  .si-hero-copy,
  .si-section-intro p,
  .si-room-copy p,
  .si-facility-copy p,
  .si-meal-copy p,
  .si-chef-copy p,
  .si-chef-profile p,
  .si-address,
  .si-access-method p,
  .si-faq-answer-ja,
  .si-faq-answer-en{
    color:#5c5856!important;
  }
}

@media(max-width:1040px){
  .si-room:first-of-type,
  .si-equipment .si-facility:first-of-type,
  .si-food .si-meal:first-of-type,
  .si-faq-group{
    margin-top:70px!important;
  }
  .si-meal figure{
    margin:20px 0 30px!important;
  }
  .si-chef-profile{
    margin-top:30px!important;
  }
  .si-faq-group h3{
    gap:3px!important;
  }
  .si-faq-list{
    margin-top:10px!important;
  }
}

@media(max-width:1040px){
  /*
    FAQ group heading:
    short rule -> Japanese = 15px
    Japanese -> English = 3px
  */
  .si-faq-group h3{
    gap:0!important;
    column-gap:15px!important;
    row-gap:3px!important;
  }
  .si-faq-group h3 .si-faq-group-ja,
  .si-faq-group h3 .si-faq-group-en{
    margin-left:0!important;
  }
}

@media(max-width:1040px){
  
  
  
  
  
  
  
}

@media(max-width:1040px){
  
  
}

@media(max-width:1040px){.si-service-note{margin-top:20px;font-size:11px;line-height:1.9}}

@media(max-width:1040px){
  
  
  
}

@media (max-width:1040px){
  .menu-visual-copy strong{
    font-size:17px !important;
  }
}

@media (max-width:1040px){
  .menu-utility-links a > span{overflow-wrap:normal;word-break:keep-all;}
}

@media (max-width:1040px){
  .menu-legal-links{
    gap:7px 13px;
    margin-top:14px;
    padding-top:13px;
    font-size:var(--fab-font-minimum);
    letter-spacing:.1em;
  }
  .menu-footer{grid-template-columns:minmax(0,1fr) auto!important;}
  .menu-footer small{grid-column:auto!important;justify-self:end!important;}
}

@media (max-width:1040px){
  .menu-footer{grid-template-columns:1fr!important;}
  .menu-footer > small{grid-column:1!important;justify-self:end!important;font-size:var(--fab-font-minimum) !important;}
}

@media(max-width:1040px){.menu-legal-links{font-size:var(--fab-font-minimum) !important;}}

@media(max-width:1040px){
  .menu-footer{
    grid-template-columns:1fr!important;
    grid-template-areas:"legal" "copyright"!important;
    gap:5px!important;
    padding-top:10px!important;
  }
  .menu-footer .menu-legal-links{
    gap:0 14px!important;
    font-size:var(--fab-font-minimum) !important;
    letter-spacing:.07em!important;
  }
  .menu-footer > small{font-size:var(--fab-font-minimum) !important;}
}

@media (max-width:1040px){
  .menu-label small{
    margin-top:5px!important;
    font-weight:400!important;
  }
}

@media (max-width:1040px){
  .menu-utility-links a small{
    margin-top:10px!important;
    font-weight:400!important;
  }
}

@media (max-width:1040px){
  .menu-primary a{
    padding-top:20px!important;
    padding-bottom:20px!important;
  }
  .menu-aside,
  .menu-utility-links{
    margin-top:30px!important;
  }
  .menu-visual-copy strong{
    font-size:20px!important;
  }
}

@media (max-width:1040px){
  .menu-visual-copy strong{
    font-size:18px!important;
    line-height:1.5!important;
  }
  .menu-visual-copy > span{
    margin-bottom:10px!important;
    font-weight:400!important;
  }
  .menu-visual-copy small{
    display:none!important;
  }
}

@media (max-width:1040px){
  .setoda-text-link{
    margin-top:10px!important;
  }
}


/* v44 style block 45: additional-revision-20260907-stay */

/* 2026-09-07 additional revision: preserve established column structure and spacing. */
.si-menu-section,.si-menu-note{display:block;margin-top:20px}
.si-menu-note{margin-top:24px}
.si-service-note-tv{margin-top:8px!important}
.si-chef-profile figure{overflow:hidden}
.si-chef-profile img{object-position:50% 20%!important}
@media(min-width:1041px){
  /* Dish box must remain text-left / image-right on desktop. */
  .si-meal.one .si-dish-menu{
    position:static!important;left:auto!important;top:auto!important;width:auto!important;
    display:block!important;grid-template-columns:none!important;gap:0!important;
    margin-top:34px!important;padding-top:27px!important
  }
  .si-meal.one .si-dish-menu-col{display:block!important;margin-top:20px!important}
  .si-meal.one .si-dish-menu-col:first-child{margin-top:0!important}
  .si-chef-profile img{object-position:50% 20%!important}
}
@media(max-width:1040px){
  /* Tablet intentionally follows the smartphone content order and spacing. */
  .si-chef-profile img{object-position:50% 18%!important}
  .si-menu-section{margin-top:20px!important}
  .si-menu-note{margin-top:24px!important}
}


/* v44 style block 46: client-revision-20260910-v3 */

/* 2026-09-10 additional refinement. Existing spacing/typography remains unchanged except where requested. */
.si-chef-copy .si-chef-paragraph{margin-top:10px!important}
.si-chef-copy h3 + .si-chef-paragraph{margin-top:16px!important}
.si-dish-usage{display:block;margin-top:24px}
.si-profile-name,.si-profile-role,.si-profile-representative{font-size:1em!important}
.si-profile-role{font-style:normal}

@media(min-width:1041px){
  /* Restore the original dining composition: top copy at left, image at right, menu details spanning below. */
  .si-meal.one{height:68.5rem!important}
  .si-meal.two{top:164rem!important}
  .si-meal.three{top:216.5625rem!important}
  .si-chef{top:269.125rem!important}
  .si-meal.one .si-dish-menu{
    position:absolute!important;left:0!important;top:36rem!important;width:81.5625rem!important;
    display:grid!important;grid-template-columns:1.35fr .9fr!important;gap:3.75rem!important;
    margin:0!important;padding-top:1.6875rem!important
  }
  .si-meal.one .si-dish-menu-col{display:block!important;margin-top:0!important}
  .si-chef-copy{top:3.25rem!important}
  .si-chef-profile{top:3.25rem!important}
}

@media(max-width:1040px){
  .si-chef-copy .si-chef-paragraph{margin-top:9px!important}
  .si-chef-copy h3 + .si-chef-paragraph{margin-top:14px!important}
  .si-dish-usage{margin-top:22px!important}
}


/* v44 style block 47: client-revision-20260911-global-v4 */

/* 2026-09-11 v4: shared interaction rules only. Existing placement/margins are preserved. */

/* Hamburger menu: Japanese, English, number and arrow change together. */
@media (hover:hover){
  .menu-primary a:hover,
  .menu-primary a:focus-visible,
  .menu-primary a:hover .menu-no,
  .menu-primary a:focus-visible .menu-no,
  .menu-primary a:hover .menu-label b,
  .menu-primary a:focus-visible .menu-label b,
  .menu-primary a:hover .menu-label small,
  .menu-primary a:focus-visible .menu-label small,
  .menu-primary a:hover i,
  .menu-primary a:focus-visible i,
  .menu-utility-links a:hover > span,
  .menu-utility-links a:focus-visible > span,
  .menu-utility-links a:hover small,
  .menu-utility-links a:focus-visible small{
    color:var(--lemon)!important;
  }
}
/* v44 style block 48: client-revision-20260911-stay-v4 */

/* Dining / chef refinements requested 2026-09-11. */
@media(min-width:1041px){
  /* Dish-box: title stays above; all textual information is contained in the left flex column, photo on the right. */
  .si-meal.one{
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:flex-start!important;
    column-gap:4.375rem!important;
    box-sizing:border-box!important;
    padding-top:4.5rem!important;
  }
  .si-meal.one .si-meal-title{position:absolute!important;left:0!important;top:-3.125rem!important;width:100%!important}
  .si-meal.one .si-meal-copy{
    position:static!important;
    flex:0 0 27.1875rem!important;
    width:27.1875rem!important;
    min-width:0!important;
  }
  .si-meal.one > figure{
    position:static!important;
    flex:0 0 50rem!important;
    width:50rem!important;
    height:37.5rem!important;
    margin:0!important;
  }
  .si-meal.one .si-dish-menu{
    position:static!important;
    display:block!important;
    width:auto!important;
    margin:2.125rem 0 0!important;
    padding-top:1.6875rem!important;
  }
  .si-meal.one .si-dish-menu-col{display:block!important;margin-top:1.25rem!important}
  .si-meal.one .si-dish-menu-col:first-child{margin-top:0!important}

  /* Equal inner padding on all four sides of the framed Gochiso-no-Mori section. */
  .si-chef{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1.12fr)!important;
    gap:2.5rem!important;
    padding:3.25rem!important;
  }
  .si-chef-copy,.si-chef-profile{
    position:static!important;
    left:auto!important;
    top:auto!important;
    width:auto!important;
    min-width:0!important;
    margin-top:0!important;
  }
  .si-chef-profile figure{width:100%!important;margin:0!important}
}

/* PROFILE hierarchy: person's name is primary, English label is secondary; body size remains unchanged. */
.si-chef-profile h4{font-size:12px!important;line-height:1.4!important;letter-spacing:.16em!important}
.si-chef-profile .si-profile-name{font-size:18px!important;line-height:1.65!important;font-weight:500!important}
.si-chef-profile .si-profile-role,.si-chef-profile .si-profile-representative{font-size:12.5px!important;line-height:1.8!important}
.si-chef-profile .si-profile-body{display:block!important;margin-top:10px!important}

@media(max-width:1040px){
  .si-chef{padding:24px!important}
  .si-chef-profile h4{font-size:11px!important}
  .si-chef-profile .si-profile-name{font-size:17px!important}
  .si-chef-profile .si-profile-role,.si-chef-profile .si-profile-representative{font-size:12px!important}
  .si-chef-profile .si-profile-body{margin-top:8px!important}
}


/* v44 style block 49: client-revision-20260911-global-v5 */

/* 2026-09-11 v5: targeted interaction / reservation refinements. */
@media (hover:hover){
  /* International Guests: underline sweep only. Remove lift / scale / text or icon shift. */
  .international-header-link:hover,
  .international-header-link:focus-visible{
    transform:none!important;
  }
  .international-header-link:hover > span:last-child,
  .international-header-link:focus-visible > span:last-child,
  .international-header-link:hover .nav-icon,
  .international-header-link:focus-visible .nav-icon{
    transform:none!important;
  }
}

/* Smartphone reservation card: remove minimum-height surplus and make visual top / bottom padding equal. */
@media(max-width:760px){
  
  
}


/* v44 style block 50: client-revision-20260911-stay-v6 */

/* 2026-09-11 v6: meal accordions aligned to the established FAQ interaction system. */
.si-meal-accordion{
  margin-top:34px;
  border-top:1px solid var(--si-line);
  border-bottom:1px solid var(--si-line);
}
.si-meal-accordion summary{
  list-style:none;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  min-height:52px;
  padding:14px 40px 14px 30px;
  box-sizing:border-box;
  color:var(--brown-soft);
  cursor:pointer;
  font-size:13px;
  line-height:1.6;
  letter-spacing:.07em;
  transition:padding .65s var(--ease),background .65s var(--ease);
}
.si-meal-accordion summary::-webkit-details-marker{display:none}
@media (hover:hover){
  .si-meal-accordion summary:hover{
    padding-left:42px;
    padding-right:52px;
    background:rgba(255,253,248,.42);
  }
}
.si-meal-accordion summary i{
  position:relative;
  flex:0 0 20px;
  width:20px;
  height:20px;
  border:1px solid rgba(72,45,18,.24);
  border-radius:50%;
  font-style:normal;
}
.si-meal-accordion summary i::before,
.si-meal-accordion summary i::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:8px;height:1px;
  background:var(--brown);
  transform:translate(-50%,-50%);
  transition:transform .55s var(--ease),opacity .55s var(--ease);
}
.si-meal-accordion summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.si-meal-accordion[open] summary i::after{opacity:0;transform:translate(-50%,-50%) rotate(0)}

/* Override the UA closed-details rule so the panel can animate exactly like FAQ (0fr -> 1fr). */
.si-meal-accordion > .si-meal-accordion-panel,
.si-meal-accordion:not([open]) > .si-meal-accordion-panel{
  display:grid!important;
  grid-template-rows:0fr;
  padding:0!important;
  overflow:hidden;
  transition:grid-template-rows .8s var(--ease);
}
.si-meal-accordion[open] > .si-meal-accordion-panel{grid-template-rows:1fr}
.si-meal-accordion-panel-inner{
  min-height:0;
  overflow:hidden;
  padding:0 30px;
}
.si-meal-accordion[open] .si-meal-accordion-panel-inner{padding-bottom:22px}

/* All expanded meal text follows the <夕食メニュー例> size / color. */
.si-meal-accordion .si-dish-menu,
.si-meal-accordion-panel small{
  position:static!important;
  display:block!important;
  width:auto!important;
  margin:0!important;
  padding:18px 0 0!important;
  border-top:0!important;
  color:var(--brown-soft)!important;
  font-size:13px!important;
  line-height:1.9!important;
  letter-spacing:.035em!important;
}
.si-meal.one .si-meal-accordion .si-dish-menu{margin:0!important;padding:18px 0 0!important}
.si-meal-accordion .si-dish-menu b,
.si-meal-accordion .si-dish-menu span,
.si-meal-accordion-panel small span{
  color:inherit!important;
  font-size:inherit!important;
  line-height:inherit!important;
}
.si-meal-accordion .si-dish-menu-col{display:block!important;margin-top:20px!important}
.si-meal-accordion .si-dish-menu-col:first-child{margin-top:0!important}
.si-menu-heading-soft,
.si-dish-usage-static > b{
  color:var(--brown-soft)!important;
  font-weight:500!important;
}
.si-menu-section,.si-menu-note{display:block!important;margin-top:20px!important}
.si-menu-note{margin-top:24px!important}
.si-dish-usage-static{
  display:block!important;
  margin-top:24px!important;
  padding-top:0!important;
  border-top:0!important;
  color:#555!important;
}

/* Gochiso-no-Mori: no fixed/minimum height. Content + equal padding determine the frame height. */
@media(min-width:1041px){
  .si-chef{padding:52px!important}
}
@media(max-width:1040px){
  .si-chef{padding:24px!important}
  .si-meal-accordion{margin-top:26px}
  .si-meal-accordion summary{min-height:50px;padding:13px 34px 13px 12px;font-size:12px}
  .si-meal-accordion summary:hover{padding:13px 34px 13px 12px;background:transparent}
  .si-meal-accordion summary i{right:auto;width:18px;height:18px;flex-basis:18px}
  .si-meal-accordion-panel-inner{padding-left:12px;padding-right:34px}
  .si-meal-accordion[open] .si-meal-accordion-panel-inner{padding-bottom:19px}
  .si-meal-accordion .si-dish-menu,
  .si-meal-accordion-panel small{font-size:12px!important}
  .si-dish-usage-static{margin-top:20px!important}
}

/* v44 style block 52: client-revision-20260912-stay-v7 */

/* FAQ is the canonical accordion interaction. Closed-state edge inset = 5px. */
.si-faq-trigger,
.si-faq-item.is-long .si-faq-trigger{
  min-height:0!important;
  padding:29px 35px 29px 5px!important;
  transition:padding .65s var(--ease),background .65s var(--ease)!important;
}
.si-faq-trigger>i{right:5px!important}
.si-faq-panel{transition:grid-template-rows .8s var(--ease)!important}
.si-faq-trigger>i::before,.si-faq-trigger>i::after{
  transition:transform .55s var(--ease),opacity .55s var(--ease)!important;
}
@media(hover:hover){
  .si-faq-trigger:hover{
    padding-left:17px!important;
    padding-right:47px!important;
    background:rgba(255,253,248,.42)!important;
  }
  .si-faq-trigger:hover>i{right:17px!important}
}

/* Meal accordions use the exact same interaction timing and 5px closed-state edge inset. */
.si-meal-accordion summary{
  min-height:0!important;
  padding:14px 5px!important;
  transition:padding .65s var(--ease),background .65s var(--ease)!important;
}
.si-meal-accordion-panel{
  display:grid!important;
  grid-template-rows:0fr!important;
  transition:grid-template-rows .8s var(--ease)!important;
}
.si-meal-accordion.is-open .si-meal-accordion-panel{grid-template-rows:1fr!important}
.si-meal-accordion-panel-inner{min-height:0!important;overflow:hidden!important}
.si-meal-accordion summary i::before,.si-meal-accordion summary i::after{
  transition:transform .55s var(--ease),opacity .55s var(--ease)!important;
}
@media(hover:hover){
  .si-meal-accordion summary:hover{
    padding-left:17px!important;
    padding-right:17px!important;
    background:rgba(255,253,248,.42)!important;
  }
}
/* Expanded meal text exactly follows the static "ご利用について" typography. */
.si-meal-copy{--si-meal-detail-size:13px}
.si-dish-usage-static,
.si-meal-accordion .si-dish-menu,
.si-meal-accordion-panel small{
  font-size:var(--si-meal-detail-size)!important;
}
.si-meal-accordion .si-dish-menu,
.si-meal-accordion-panel small{
  color:var(--brown-soft)!important;
  line-height:1.9!important;
  letter-spacing:.035em!important;
}
@media(max-width:1040px){
  .si-meal-copy{--si-meal-detail-size:max(var(--fab-font-minimum),var(--si-type-small))}
  .si-faq-trigger,
  .si-faq-item.is-long .si-faq-trigger{padding:18px 35px 18px 5px!important}
  .si-faq-trigger>i{right:5px!important}
  .si-meal-accordion summary{padding:13px 5px!important}
  .si-meal-accordion-panel-inner{padding-left:5px!important;padding-right:5px!important}
}

/* Numeric content-height constraints removed. The legacy desktop coordinate canvas
   gets its extent from padding variables so text/padding can grow naturally. */
.si-section-head,.si-room-copy,.si-faq-group h3{height:auto!important}
.si-meal,.si-meal.one,.si-meal.two,.si-meal.three{
  height:auto!important;
  min-height:0!important;
}
.si-chef{height:auto!important;min-height:0!important}
@media(min-width:1041px){
  /* Dining cards themselves are natural-height flex rows. Photo height stays fixed as media geometry;
     text growth (including accordion expansion) increases the card height instead of being trapped by height. */
  .si-meal,.si-meal.one,.si-meal.two,.si-meal.three{
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:flex-start!important;
    column-gap:4.375rem!important;
    box-sizing:border-box!important;
    height:auto!important;
    min-height:0!important;
    padding-top:4.5rem!important;
  }
  .si-meal.one{padding-bottom:7.125rem!important}
  .si-meal.two,.si-meal.three{padding-bottom:5.0625rem!important}
  .si-meal .si-meal-title{position:absolute!important;left:0!important;top:-3.125rem!important;width:100%!important}
  .si-meal .si-meal-copy{position:static!important;flex:0 0 27.1875rem!important;width:27.1875rem!important;min-width:0!important}
  .si-meal > figure{position:static!important;flex:0 0 50rem!important;width:50rem!important;height:37.5rem!important;margin:0!important}
  .si-equipment,.si-food,.si-access,.si-faq{
    height:auto!important;
    min-height:0!important;
    padding-bottom:var(--si-natural-extent,0px)!important;
    box-sizing:border-box!important;
  }
  .si-page{
    height:auto!important;
    min-height:0!important;
    padding-bottom:var(--si-natural-extent,0px)!important;
    box-sizing:border-box!important;
  }
}
@media(max-width:1040px){
  .si-equipment,.si-food,.si-access,.si-faq,.si-page,
  .si-meal,.si-meal.one,.si-meal.two,.si-meal.three{
    height:auto!important;
    min-height:0!important;
  }
}


/* v44 style block 53: client-revision-20260912-stay-v8 */

/* v8: FAQ plus hover stabilization + meal typography aligned to the static usage heading. */

/* FAQ: keep the plus icon anchored in place on hover.
   The text/background hover motion remains, but the circular icon no longer jumps between right offsets. */
.si-faq-trigger>i{
  right:5px!important;
  transition:border-color .55s var(--ease),background-color .55s var(--ease),color .55s var(--ease)!important;
}
@media(hover:hover){
  .si-faq-trigger:hover>i{right:5px!important}
}

/* Meal detail typography: the usage heading is the single font-size reference.
   Expanded menu text and the static usage copy use the exact same size on every breakpoint. */
.si-meal-copy{--si-meal-usage-heading-size:13px}
.si-menu-heading-soft,
.si-dish-usage-static,
.si-dish-usage-static > b,
.si-meal-accordion .si-dish-menu,
.si-meal-accordion-panel small,
.si-meal-accordion .si-dish-menu b,
.si-meal-accordion .si-dish-menu span,
.si-meal-accordion-panel small span{
  font-size:var(--si-meal-usage-heading-size)!important;
}
@media(max-width:1040px){
  .si-meal-copy{--si-meal-usage-heading-size:max(var(--fab-font-minimum),var(--si-type-small))}
}


/* v44 style block 54: fab-desktop-typography-v9 */

:root{
  --fab-type-body-target:clamp(14px,1.05vw,17px);
  --fab-type-content-target:clamp(13px,.95vw,15px);
  --fab-type-secondary-target:clamp(12px,.9vw,14px);
  --fab-type-index-target:var(--fab-type-secondary-target);
  --fab-type-meta-target:clamp(11px,.78vw,12px);
  --fab-type-exception-target:clamp(10px,.68vw,11px);
  --fab-type-lead-heading-target:clamp(20px,1.65vw,27px);
  --fab-type-h3-target:clamp(18px,1.35vw,22px);
  --fab-type-h4-target:clamp(16px,1.15vw,19px);
  --fab-type-h5-target:clamp(14px,1vw,17px);
  --fab-type-h6-target:clamp(13px,.9vw,15px);
}


/* v44 style block 55: fab-flow-layout-v11-stay-safe */

/* v11 — Safe internal flow conversion inside the existing measured desktop canvas.
   Outer measured sections remain coordinate-managed in this phase because the current JS uses them for CMS-safe section extents. */
@media (min-width:1041px){
  .si-section-head{
    display:grid!important;
    grid-template-columns:31.25rem 43.4375rem!important;
    column-gap:6.875rem!important;
    align-items:start!important;
    height:auto!important;
  }
  .si-section-name{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:auto!important;
  }
  .si-section-intro{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:auto!important;
    margin-top:2.4375rem!important;
  }
  .si-room-copy{
    display:grid!important;
    grid-template-columns:31.25rem 43.4375rem!important;
    column-gap:6.875rem!important;
    align-items:start!important;
    height:auto!important;
  }
  .si-room-copy h3,.si-room-copy p{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:auto!important;
  }
  .si-room-copy p{margin:0!important;}

  .si-chef{
    display:grid!important;
    grid-template-columns:32.1875rem 38.125rem!important;
    column-gap:2.5rem!important;
    align-items:start!important;
    padding:4.375rem!important;
    box-sizing:border-box!important;
  }
  .si-chef-copy,.si-chef-profile{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:auto!important;
  }
}


/* v44 style block 56: fab-responsive-section-rhythm-v12 */

/* v12 Phase 1 — <=1040px responsive section rhythm.
   Natural-height rules never own design spacing. Chapter boundaries own their breathing room explicitly. */
@media(max-width:1040px){
  :root{
    --fab-rhythm-chapter:104px;
    --fab-rhythm-boundary-half:52px;
    --fab-rhythm-page-end:80px;
  }
  .si-equipment,.si-food,.si-access,.si-faq{
    padding-bottom:var(--si-space-section, var(--fab-rhythm-page-end))!important;
  }
}


/* v44 style block 57: fab-responsive-section-rhythm-v13 */

/* v13 — Stay Information is the canonical <=1040px chapter-boundary rhythm.
   Its final visual standard is 80px before + 80px after a background-color boundary.
   Meal supplementary copy gets only the requested responsive padding-top adjustment. */
@media(max-width:1040px){
  :root{
    --fab-rhythm-chapter:160px;
    --fab-rhythm-boundary-side:80px;
  }
  #siPage .si-meal-copy small{padding-top:10px!important;}
}


/* v44 style block 58: fab-v18-stay-desktop-flow-rhythm */

/* v18 — Bring Stay Information onto the same desktop flow/rhythm contract as the other lower pages.
   The FV text/image relation and section-head grid are ordinary flow; only navigation/decorative coordinates remain absolute.
   Room separators are positioned from the rendered copy bottom via --si-room-line-top. */
@media (min-width:1041px){
  .si-hero{
    height:auto!important;
    padding:13.75rem 9.375rem 7.375rem!important;
    box-sizing:border-box!important;
  }
  .si-hero h1,.si-hero-en,.si-hero-copy,.si-hero-image{
    position:relative!important;
    left:auto!important;top:auto!important;
  }
  .si-hero h1{margin:0!important;}
  .si-hero-en{margin-top:0!important;}
  .si-hero-copy{
    width:41.25rem!important;
    margin-top:3.6875rem!important;
  }
  .si-hero-image{
    width:100%!important;
    height:43.75rem!important;
    margin-top:3.75rem!important;
  }

  /* Same two-column contract as the canonical “宿を辿る” section.
     Right-column x/width remain unchanged; the left heading column and gap now use the shared values. */
  .si-section-head{
    grid-template-columns:32.5rem 43.4375rem!important;
    column-gap:5.625rem!important;
  }

  .si-room:not(:last-of-type)::after{
    top:var(--si-room-line-top,61.875rem)!important;
  }
}


/* v44 style block 59: fab-fv-index-desktop-lock-v19 */

/* v19 — Keep the desktop FV INDEX at the 1920px visual Y-position and prevent label wrapping.
   The vertical top itself is inverse-scaled by the existing desktop spacing JS above. */


/* v44 style block 60: fab-fv-index-rule-lock-v20 */

/* v20 — Preserve the 1920px FV INDEX rule length as a screen-space value.
   nowrap labels must not steal width from the decorative rule when the stage is scaled down. */


/* v44 style block 61: fab-stay-refinements-v20 */

/* v20 — requested Stay refinements. */
@media (min-width:1041px){
  /* Gochiso-no-Mori: one spacing tier wider than the former 40px gap, held at 50px on screen. */
  .si-chef{gap:calc(50px / var(--si-scale,1))!important;}
}

/* Meal accordion: no extra vertical offset before the revealed text block.
   The previous visible gap came from padding-top:18px in the late v6 rule, not from content itself. */
.si-meal-accordion .si-dish-menu,
.si-meal-accordion-panel small,
.si-meal.one .si-meal-accordion .si-dish-menu{
  margin-top:0!important;
  padding-top:0!important;
}

/* Action labels use CONTENT hierarchy on Tablet/SP too; profile role remains SECONDARY. */
@media (max-width:1040px){
  .si-meal-accordion summary{font-size:13px!important;}
  .si-chef-profile .si-profile-role,
  .si-chef-profile .si-profile-representative{font-size:12px!important;}
}


/* v44 style block 62: fab-system-coherence-v21 */

  /* v21 — Canonical typography roles not covered by the shared hierarchy. */
  :root{--fab-type-profile-name-target:clamp(17px,.95vw,18px);}


/* v44 style block 63: fab-v22-stay-and-index-refinements */

/* v22 — FV INDEX rhythm: authored spacing remains stable while labels stay on one line. */
@media (min-width:1041px){
  
  
  

  /* Gochiso-no-Mori: preserve equal 70px screen-space inset on both sides.
     Flexible columns prevent the inverse-scaled padding/gap from stealing the right inset. */
  .si-chef{
    grid-template-columns:minmax(0,515fr) minmax(0,610fr)!important;
    column-gap:calc(50px / var(--si-scale,1))!important;
    padding:calc(70px / var(--si-scale,1))!important;
    box-sizing:border-box!important;
  }
}

/* Meal accordions: the reveal begins immediately after the summary.
   Clear both physical and logical margins because legacy revisions used both box models. */
.si-meal-accordion-panel-inner{padding-top:0!important;}
.si-meal-accordion-panel-inner > small,
.si-meal-accordion .si-dish-menu,
.si-meal.one .si-meal-accordion .si-dish-menu{
  margin:0!important;
  margin-top:0!important;
  margin-block-start:0!important;
  padding-top:0!important;
}


/* v44 style block 64: fab-v23-si-geometry */

/* v23 — FV INDEX canonical PC geometry.
   1920px restores the original authored position/measure. Font size remains responsive,
   while line length, line-to-label gap, row interval and column gap remain visually fixed. */


/* v44 style block 65: fab-v24-stay-accordion-padding */

/* v24 — Meal accordion revealed panel keeps symmetric vertical padding.
   Top padding follows the same responsive value as the existing bottom padding. */
.si-meal-accordion[open] .si-meal-accordion-panel-inner{
  padding-top:22px!important;
  padding-bottom:22px!important;
}
@media(max-width:1040px){
  .si-meal-accordion[open] .si-meal-accordion-panel-inner{
    padding-top:19px!important;
    padding-bottom:19px!important;
  }
}


/* v44 style block 66: fab-v26-service-list-wrap-stability */

/* v26 — Keep the bullet attached to wrapped service-list text.
   JS still owns each item's responsive position/width; this rule only owns
   the internal bullet/text layout so narrow desktop columns cannot strand
   the bullet on a line by itself. */
@media (min-width:1041px){
  .si-service-lists li{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    column-gap:.35em!important;
    align-items:start!important;
  }
  .si-service-lists li::before{
    grid-column:1!important;
    grid-row:1!important;
  }
}


/* v44 style block 67: fab-v27-accessibility-and-legal-links */

/* v27 — expand hit areas without materially changing the visible design. */
.setoda-footer-legal a{
  display:inline-flex!important;align-items:center!important;min-height:40px!important;
  color:inherit!important;text-decoration:none!important;
}
.menu-legal-links span>a{color:inherit!important;text-decoration:none!important;}
.menu-legal-links span>a:focus-visible,.setoda-footer-legal a:focus-visible{outline:1px solid currentColor;outline-offset:3px;}
@media(max-width:1040px){.setoda-footer-legal a{min-height:44px!important;}}


/* v44 style block 68: fab-v27-stay-interactive-minimum */

@media(min-width:1041px){
  .si-meal-accordion summary,.si-faq-item summary{min-height:calc(40px / var(--si-scale,1))!important;}
}


/* v44 style block 69: fab-v29-facility-copy-pc-narrow-spacing */

/* v29 — Stay / Facilities: use a simple fixed 50px padding-top
   across the existing narrow-PC breakpoint. */
@media (min-width:1041px) and (max-width:1280px){
  .si-facility-copy,
  .si-facility.image-left .si-facility-copy,
  .si-facility.image-right .si-facility-copy{
    padding-top:50px!important;
  }
}


  @media (min-width:1041px) and (max-width:1280px){
    .setoda-reservation{padding-top:90px!important;padding-bottom:104px!important}
  }

/* NEW MASTER v45 sync — FV INDEX column gap uses HOW TO STAY as the canonical value. */


/* ClientRevision01B — floor-plan zoom component. Outer .si-map geometry remains unchanged. */
.si-map-zoom{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:inherit;
  background:transparent;
  color:var(--brown,#4a4038);
  cursor:zoom-in;
  font:inherit;
}
.si-map-zoom>img{display:block;width:100%;height:100%;object-fit:contain}
.si-map-zoom-icon{
  position:absolute;
  top:16px;
  right:16px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid rgba(74,64,56,.18);
  border-radius:50%;
  background:rgba(255,255,255,.86);
  box-shadow:0 2px 14px rgba(39,34,30,.08);
  pointer-events:none;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.si-map-zoom-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.si-map-zoom:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
body.si-map-lightbox-open{overflow:hidden}
.si-map-lightbox[hidden]{display:none!important}
.si-map-lightbox{
  position:fixed;
  inset:0;
  z-index:100000;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  padding:clamp(20px,4vw,64px);
  background:rgba(24,22,20,.82);
  opacity:0;
  transition:opacity .2s ease;
}
.si-map-lightbox.is-open{opacity:1}
.si-map-lightbox-panel{
  position:relative;
  display:grid;
  place-items:center;
  width:min(1600px,96vw);
  max-height:92vh;
}
.si-map-lightbox-image{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:90vh;
  object-fit:contain;
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 60px rgba(0,0,0,.24);
}
.si-map-lightbox-close{
  position:absolute;
  z-index:2;
  top:12px;
  right:12px;
  width:42px;
  height:42px;
  margin:0;
  padding:0;
  border:1px solid rgba(74,64,56,.16);
  border-radius:50%;
  background:rgba(255,255,255,.9);
  cursor:pointer;
}
.si-map-lightbox-close span::before,.si-map-lightbox-close span::after{
  content:"";
  position:absolute;
  left:12px;
  top:20px;
  width:18px;
  height:1px;
  background:#4a4038;
}
.si-map-lightbox-close span::before{transform:rotate(45deg)}
.si-map-lightbox-close span::after{transform:rotate(-45deg)}
.si-map-lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:1040px){
  .si-map-zoom-icon{top:10px;right:10px;width:36px;height:36px}
  .si-map-zoom-icon svg{width:17px;height:17px}
  .si-map-lightbox{padding:14px}
  .si-map-lightbox-panel{width:100%}
  .si-map-lightbox-close{top:8px;right:8px;width:38px;height:38px}
  .si-map-lightbox-close span::before,.si-map-lightbox-close span::after{left:11px;top:18px;width:16px}
}
@media(prefers-reduced-motion:reduce){.si-map-lightbox{transition:none}}


/* ClientRevision01C — floor-plan presentation: full image width, no side bands, no crop. */
.si-map{height:auto!important;aspect-ratio:6615/4678!important;background:transparent!important}
.si-map-zoom>img{width:100%;height:100%;object-fit:contain;object-position:center center}

/* Stage8B2 Hotfix01 — meal accordion motion coherence.
   .is-open is the single visual state; [open] only keeps native <details> content
   renderable during the closing transition. This removes the instant padding jump
   that previously happened before/after the 0.8s grid animation. */
.si-meal-accordion-panel-inner{
  transition:padding-top .8s var(--ease),padding-bottom .8s var(--ease)!important;
}
.si-meal-accordion[open] .si-meal-accordion-panel-inner{
  padding-top:0!important;
  padding-bottom:0!important;
}
.si-meal-accordion.is-open .si-meal-accordion-panel-inner{
  padding-top:22px!important;
  padding-bottom:22px!important;
}
.si-meal-accordion[open]:not(.is-open) summary i::after{
  opacity:1!important;
  transform:translate(-50%,-50%) rotate(90deg)!important;
}
.si-meal-accordion.is-open summary i::after{
  opacity:0!important;
  transform:translate(-50%,-50%) rotate(0)!important;
}
@media(max-width:1040px){
  .si-meal-accordion.is-open .si-meal-accordion-panel-inner{
    padding-top:19px!important;
    padding-bottom:19px!important;
  }
}

/* RC01 Hotfix08: restore intentional serif secondary roles
   These content roles are intentionally serif for the visual harmony of the
   Stay Information page. Shared English section labels such as CUISINE remain
   on var(--sans). */
.si-page .si-specs dd,
.si-page .si-specs dd span,
.si-page .si-meal-copy small,
.si-page .si-chef-copy small,
.si-page .si-chef-profile p,
.si-page .si-chef-profile h4{
  font-family:var(--serif);
}

