/* 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}

body .header{color:var(--brown)}




















@media(hover:hover){
  
  
  
  
}














































































































@media(max-width:1919px){
  
}
@media(max-width:1040px){
  body{font-size:14px;line-height:1.95}
  
  
  














  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  

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

}
@media(max-width:760px){
  :root{--pad:20px}
  body{font-size:14px}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}
@media(max-width:430px){
  
  
  
}
@media(prefers-reduced-motion:reduce){
  
}


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


body{
  color:var(--ink);
  font-family:var(--sans);
  line-height:2.04;
  letter-spacing:.045em;
}




























@media(max-width:1040px){
  
}
@media(max-width:760px){
  
}
@media(max-width:820px){
  body{line-height:1.98}
  
  
  
  
  
}


/* v44 style block 4: koune-island-page */

:root{
  --ki-scale:1;
  --ki-paper:var(--paper,#f4f0e7);
  --ki-paper-light:var(--paper-light,#faf7f0);
  --ki-paper-deep:var(--paper-deep,#e9e2d5);
  --ki-ink:var(--ink,#2d241d);
  --ki-muted:var(--brown-soft,#73563b);
  --ki-line:rgba(72,45,18,.16);
  --ki-responsive-space:.7;
}
html{scroll-behavior:smooth}
body{overflow-x:clip;color:var(--ki-ink);background:var(--ki-paper)}
.ki-header-slot{height:5rem;background:var(--ki-paper)}
.ki-stage{position:relative;width:100%;height:989.25rem;overflow:visible;background:transparent}
.ki-page{
  position:relative;left:0;width:120rem;height:989.25rem;
  transform-origin:0 0;background:transparent;color:var(--ki-ink)
}
.ki-page img{display:block;width:100%;height:100%;object-fit:cover}
.ki-section{position:absolute;left:0;width:120rem;scroll-margin-top:5rem}
.ki-hero{top:0;height:94.5625rem;background:var(--ki-paper)}
.ki-hero h1{
  position:absolute;left:9.375rem;top:13.75rem;margin:0;
  font:400 max(var(--fab-font-minimum), 4.5rem)/1.25 var(--serif);letter-spacing:.078em
}
.ki-hero-en{
  position:absolute;left:9.375rem;top:21.875rem;display:flex;align-items:center;
  gap:1.0625rem;color:var(--ki-muted);font:400 max(var(--fab-font-minimum), 1.25rem)/1 var(--sans);letter-spacing:.07em
}
.ki-hero-en i,.ki-kicker i{display:block;width:1.875rem;height:.0625rem;background:currentColor}
.ki-hero-copy{
  position:absolute;left:9.375rem;top:27.8125rem;width:41.25rem;
  font:400 max(var(--fab-font-minimum), 1rem)/2.28 var(--serif);letter-spacing:.04em
}



.ki-hero-image{
  position:absolute;left:9.375rem;top:41.4375rem;width:101.25rem;height:43.75rem;
  overflow:hidden;border-radius:.625rem;background:#c3c3c3
}
.ki-hero::after{
  content:"";position:absolute;z-index:5;left:0;right:0;bottom:-16rem;height:16.25rem;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    var(--ki-paper) 0,
    var(--ki-paper) 3%,
    rgba(244,240,231,.98) 8%,
    rgba(244,240,231,.86) 22%,
    rgba(244,240,231,.58) 45%,
    rgba(244,240,231,.28) 65%,
    rgba(244,240,231,.08) 82%,
    rgba(244,240,231,0) 92%,
    rgba(244,240,231,0) 100%
  )
}

.ki-prologue{
  top:94.5625rem;height:95.4375rem;overflow:hidden;background:transparent;color:#fff
}
.ki-prologue::after{
  content:"";position:absolute;z-index:1;inset:0;
  background:linear-gradient(90deg,rgba(8,13,10,.04),rgba(8,13,10,.10) 48%,rgba(8,13,10,.30))
}
.ki-prologue-image{position:absolute;inset:0;margin:0;transition:opacity .25s linear}
.ki-prologue-image img{object-position:center center;filter:brightness(.5) saturate(.86) contrast(1.08)}
@media(min-width:1041px){
  html.ki-fixed-prologue-ready .ki-prologue-image{opacity:0}
}
.ki-prologue-copy{
  position:absolute;z-index:2;left:75.1875rem;top:25.4375rem;width:32.5rem;
  font:400 max(var(--fab-font-minimum), .9375rem)/2.45 var(--serif);letter-spacing:.08em;
  text-shadow:0 .125rem 1.125rem rgba(0,0,0,.92),0 .0625rem .25rem rgba(0,0,0,.95)
}
.ki-prologue-copy p{margin:0}
.ki-prologue-copy p+ p{margin-top:5.125rem}
.ki-prologue-copy p:nth-child(3){margin-top:5.5rem}
.ki-prologue-copy-block{display:block}
html.ki-prologue-reveal-ready .ki-prologue-copy-block{
  opacity:0;
  transform:translate3d(0,1rem,0);
  filter:blur(.125rem);
  transition:
    opacity 1.4s var(--ease),
    transform 1.4s var(--ease),
    filter 1.4s var(--ease);
  will-change:opacity,transform,filter
}
html.ki-prologue-reveal-ready .ki-prologue-copy-block.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0)
}
.ki-prologue-bg{
  --prologue-bg-opacity:0;
  position:fixed;z-index:0;inset:0;margin:0;overflow:hidden;background:#1e241d;
  opacity:var(--prologue-bg-opacity);visibility:hidden;pointer-events:none;will-change:opacity;
  transition:opacity .18s linear,visibility 0s linear .22s
}
.ki-prologue-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(8,13,10,.12),rgba(8,13,10,.24) 46%,rgba(8,13,10,.62))
}
.ki-prologue-bg img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center center;
  filter:brightness(.5) saturate(.82) contrast(1.10);
  transform:scale(1.08) translate3d(0,-2vh,0);
  transition:none
}
.ki-prologue-bg.is-visible{
  visibility:visible;
  transition:opacity .18s linear,visibility 0s linear 0s
}
main,.setoda-footer{position:relative;z-index:1}

.ki-nature{top:190rem;height:213.0625rem;background:var(--ki-paper)}
.ki-nature::before{
  content:"";position:absolute;z-index:4;left:0;right:0;top:-16rem;height:26rem;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(244,240,231,0) 0,
    rgba(244,240,231,0) 8%,
    rgba(244,240,231,.08) 18%,
    rgba(244,240,231,.28) 32%,
    rgba(244,240,231,.58) 46%,
    rgba(244,240,231,.86) 56%,
    var(--ki-paper) 62%,
    var(--ki-paper) 100%
  )
}
.ki-seasons{top:403.0625rem;height:202.1875rem;background:var(--ki-paper-light)}
.ki-life{top:605.25rem;height:128.5625rem;background:var(--ki-paper)}
.ki-numbers{top:733.8125rem;height:87.4375rem;background:var(--ki-paper-deep)}
.ki-history{top:821.25rem;height:168rem;background:var(--ki-paper)}

.ki-section-head{position:absolute;left:29.0625rem;top:10.375rem;width:81.5625rem}
.ki-nature .ki-section-head{top:19.1875rem}
.ki-section-title h2{margin:0;font:400 max(var(--fab-font-minimum), 3.375rem)/1.3 var(--serif);letter-spacing:.065em}
.ki-kicker{
  display:flex;align-items:center;gap:.75rem;margin-top:.9375rem;
  color:var(--ki-muted);font:400 max(var(--fab-font-minimum), .625rem)/1.5 var(--sans);letter-spacing:.24em
}
.ki-kicker i{width:.625rem}
.ki-section-intro{position:absolute;left:38.125rem;top:.625rem;width:43.4375rem}
.ki-nature .ki-section-intro{top:2.875rem}
.ki-section-intro h3{margin:0;font:400 max(var(--fab-font-minimum), 1.375rem)/1.9 var(--serif);letter-spacing:.09em}
.ki-section-intro p{margin:3.125rem 0 0;font:400 max(var(--fab-font-minimum), .875rem)/2.25 var(--serif);letter-spacing:.045em}

.ki-nature-card{position:absolute}
.ki-nature-card figure{margin:0;overflow:hidden;border-radius:.625rem;background:#c3c3c3}
.ki-nature-card-copy{margin-top:1.875rem}
.ki-nature-card h3{margin:0;font:400 max(var(--fab-font-minimum), 1.25rem)/1.5 var(--serif);letter-spacing:.08em}
.ki-nature-card p{margin:1.25rem 0 0;font:400 max(var(--fab-font-minimum), .8125rem)/2.15 var(--serif);letter-spacing:.04em}
.ki-nature-card.one{left:29.0625rem;top:43.875rem;width:38.125rem}
.ki-nature-card.one figure{height:38.75rem}
.ki-nature-card.two{left:79.6875rem;top:61.375rem;width:30.9375rem;text-align:right}
.ki-nature-card.two figure{height:39.125rem}
.ki-nature-card.two .ki-nature-card-copy{margin-left:auto;width:22.5rem}
.ki-nature-card.three{left:29.0625rem;top:104.1875rem;width:28.0625rem}
.ki-nature-card.three figure{height:38.75rem}
.ki-nature-card.four{left:69.625rem;top:123.625rem;width:41rem;text-align:right}
.ki-nature-card.four figure{height:29.4375rem}
.ki-nature-card.four .ki-nature-card-copy{margin-left:auto;width:25rem}
.ki-nature-card.five{
  left:41.1875rem;top:165.5625rem;display:grid;
  grid-template-columns:28.4375rem 25rem;gap:1.9375rem;align-items:end;width:55.375rem
}
.ki-nature-card.five figure{width:28.4375rem;height:38.125rem}
.ki-nature-card.five .ki-nature-card-copy{margin:0 0 .625rem}

.ki-season-row{position:absolute;left:29.0625rem;width:81.5625rem;height:34.75rem}
.ki-season-row.spring{top:35.0625rem}
.ki-season-row.summer{top:76.0625rem}
.ki-season-row.autumn{top:117.0625rem}
.ki-season-row.winter{top:158.0625rem}
.ki-season-copy{
  position:absolute;left:0;top:0;width:34.6875rem;min-height:14.375rem;
  padding-left:7.5rem;border-left:.0625rem solid rgba(72,45,18,.45)
}
.ki-season-copy h3{
  position:absolute;left:1.25rem;top:.625rem;margin:0;
  font:400 max(var(--fab-font-minimum), 2rem)/1.3 var(--serif);letter-spacing:.06em
}
.ki-season-copy h4{margin:3.125rem 0 0;font:400 max(var(--fab-font-minimum), 1.0625rem)/1.8 var(--serif);letter-spacing:.09em}
.ki-season-copy p{margin:1.875rem 0 0;font:400 max(var(--fab-font-minimum), .8125rem)/2.2 var(--serif);letter-spacing:.04em}
.ki-season-row figure{
  position:absolute;left:39.375rem;top:0;width:42.1875rem;height:34.75rem;
  margin:0;overflow:hidden;border-radius:.625rem;background:#c3c3c3
}

.ki-life-card{position:absolute;width:38.5625rem}
.ki-life-card.one,.ki-life-card.three{left:29.0625rem}
.ki-life-card.two,.ki-life-card.four{left:72rem}
.ki-life-card.one,.ki-life-card.two{top:35rem}
.ki-life-card.three,.ki-life-card.four{top:80.1875rem}
.ki-life-card-copy{
  display:grid;grid-template-columns:15.9375rem 1fr;gap:1.875rem;min-height:10rem;
  padding-top:1.875rem;border-top:.0625rem solid rgba(72,45,18,.45)
}
.ki-life-card h3{margin:0;font:400 max(var(--fab-font-minimum), 1.0625rem)/1.8 var(--serif);letter-spacing:.09em}
.ki-life-card p{margin:0;font:400 max(var(--fab-font-minimum), .8125rem)/2.15 var(--serif);letter-spacing:.04em}
.ki-life-card figure{
  width:38.5625rem;height:25rem;margin:1.875rem 0 0;
  overflow:hidden;border-radius:.625rem;background:#c3c3c3
}

.ki-numbers .ki-section-intro{display:none}
.ki-stats{
  position:absolute;left:29.125rem;top:23.1875rem;display:grid;
  grid-template-columns:23.75rem 23.75rem 23.75rem;column-gap:4.875rem;
  row-gap:3.0625rem;width:81.125rem
}
.ki-stat{min-height:8.75rem}
.ki-stat dt{font:400 max(var(--fab-font-minimum), .875rem)/1.6 var(--serif);letter-spacing:.07em}
.ki-stat dd{margin:.625rem 0 0;font:400 max(var(--fab-font-minimum), 2.125rem)/1.2 var(--serif);letter-spacing:.02em}
.ki-stat dd span{font-size:max(var(--fab-font-minimum), .55em)}
.ki-stat p{margin:1.25rem 0 0;color:var(--ki-muted);font:400 max(var(--fab-font-minimum), .6875rem)/2 var(--serif);letter-spacing:.04em}

.ki-history-line{
  position:absolute;left:28.4375rem;top:22.9375rem;width:.0625rem;height:133.1875rem;
  background:rgba(72,45,18,.45)
}
.ki-history-item{position:absolute;left:28.4375rem;width:82.1875rem;min-height:20.6875rem}
.ki-history-item.one{top:26.6875rem}
.ki-history-item.two{top:52.375rem}
.ki-history-item.three{top:78.0625rem}
.ki-history-item.four{top:103.75rem}
.ki-history-item.five{top:129.4375rem}
.ki-history-item::before{
  content:"";position:absolute;left:-.625rem;top:.625rem;width:1.25rem;height:1.25rem;
  border-radius:50%;background:#929292
}
.ki-history-year{
  position:absolute;left:12rem;top:0;font:400 max(var(--fab-font-minimum), 1.625rem)/1.4 var(--serif);letter-spacing:.04em
}
.ki-history-year::before{
  content:"";position:absolute;right:calc(100% + 1.25rem);top:1.0625rem;
  width:8.75rem;height:.0625rem;background:rgba(72,45,18,.25)
}
.ki-history-item figure{
  position:absolute;left:12.1875rem;top:3.5rem;width:24.6875rem;height:17.1875rem;
  margin:0;overflow:hidden;border-radius:.625rem;background:#c3c3c3
}
.ki-history-copy{position:absolute;left:41.3125rem;top:3.8125rem;width:40.875rem}
.ki-history-copy h3{margin:0;font:400 max(var(--fab-font-minimum), 1.125rem)/1.8 var(--serif);letter-spacing:.09em}
.ki-history-copy p{margin:3.625rem 0 0;font:400 max(var(--fab-font-minimum), .75rem)/2.25 var(--serif);letter-spacing:.04em}








@media(hover:hover){
  
  
}

.ki-reveal{
  opacity:0;transform:translateY(1.75rem);filter:blur(.125rem);
  transition:opacity 1.3s var(--ease),transform 1.3s var(--ease),filter 1.3s var(--ease)
}
.ki-reveal.is-visible{opacity:1;transform:none;filter:none}

@media(max-width:1919px){
  .ki-stage{width:100%}
}
@media(max-width:1040px){
  .ki-header-slot{height:4.375rem}
  .ki-stage{height:auto!important}
  .ki-page{left:0!important;width:100%;height:auto!important;transform:none!important}
  .ki-section{position:relative;left:auto;top:auto!important;width:100%;height:auto!important}














  .ki-hero{padding:calc(8.928571rem * var(--ki-responsive-space)) calc(1.785714rem * var(--ki-responsive-space))}
  .ki-hero h1, .ki-hero-en, .ki-hero-copy, .ki-hero-image{
    position:relative;left:auto;top:auto;width:auto
  }
  .ki-hero h1{font-size:max(var(--fab-font-minimum), clamp(2.375rem,7.1vw,3.5rem))}
  .ki-hero-en{margin-top:calc(1.428571rem * var(--ki-responsive-space));font-size:max(var(--fab-font-minimum), .625rem)}
  .ki-hero-copy{
    margin-top:calc(4.464286rem * var(--ki-responsive-space));
    max-width:40.625rem;font-size:max(var(--fab-font-minimum), .875rem);line-height:2.2
  }
  
  
  .ki-hero-image{
    height:auto;aspect-ratio:1620/700;
    margin-top:calc(6.25rem * var(--ki-responsive-space));border-radius:.4375rem
  }
  .ki-hero::after{bottom:-8rem;height:8.25rem}

  .ki-prologue{min-height:55rem}
  .ki-prologue-image{position:absolute;opacity:1!important}
  .ki-prologue-bg{display:none}
  .ki-prologue-copy{
    position:relative;left:auto;top:auto;width:min(calc(100% - 2.5rem),36.875rem);
    margin-left:auto;padding:
      calc(13.392857rem * var(--ki-responsive-space))
      calc(1.785714rem * var(--ki-responsive-space))
      calc(8.928571rem * var(--ki-responsive-space));
    font-size:max(var(--fab-font-minimum), .875rem);line-height:2.3
  }
  .ki-prologue-copy p+ p,.ki-prologue-copy p:nth-child(3){
    margin-top:calc(4.464286rem * var(--ki-responsive-space))
  }

  .ki-nature,.ki-life,.ki-history,.ki-seasons,.ki-numbers{
    padding:calc(10.714286rem * var(--ki-responsive-space)) calc(1.785714rem * var(--ki-responsive-space))
  }
  .ki-nature::before{top:-8rem;height:13rem}
  .ki-section-head{position:relative;left:auto;top:auto!important;width:100%}
  .ki-section-title h2{font-size:max(var(--fab-font-minimum), 2.375rem)}
  .ki-section-intro{
    position:relative;left:auto;top:auto;width:100%;max-width:45rem;
    margin:calc(6.25rem * var(--ki-responsive-space)) 0 0 auto
  }
  .ki-section-intro h3{font-size:max(var(--fab-font-minimum), 1.25rem)}
  .ki-section-intro p{
    margin-top:calc(2.678571rem * var(--ki-responsive-space));font-size:max(var(--fab-font-minimum), .8125rem)}

  .ki-nature-card,.ki-nature-card.one,.ki-nature-card.two,.ki-nature-card.three,
  .ki-nature-card.four,.ki-nature-card.five{
    position:relative;left:auto;top:auto!important;width:100%;display:block;
    margin-top:calc(8.928571rem * var(--ki-responsive-space));text-align:left
  }
  .ki-nature-card figure,.ki-nature-card.one figure,.ki-nature-card.two figure,
  .ki-nature-card.three figure,.ki-nature-card.four figure,.ki-nature-card.five figure{
    width:100%;height:auto;aspect-ratio:4/3;border-radius:.4375rem
  }
  .ki-nature-card-copy{margin-top:calc(2.678571rem * var(--ki-responsive-space))}
  .ki-nature-card.two .ki-nature-card-copy,.ki-nature-card.four .ki-nature-card-copy{
    width:100%;margin-left:0
  }
  .ki-nature-card.five .ki-nature-card-copy{
    margin-top:calc(2.678571rem * var(--ki-responsive-space))
  }

  .ki-season-row,.ki-season-row.spring,.ki-season-row.summer,
  .ki-season-row.autumn,.ki-season-row.winter{
    position:relative;left:auto;top:auto!important;width:100%;height:auto;
    margin-top:calc(8.928571rem * var(--ki-responsive-space))
  }
  .ki-season-copy{
    position:relative;left:auto;top:auto;width:100%;min-height:14.375rem;
    padding-left:calc(8.928571rem * var(--ki-responsive-space))
  }
  .ki-season-copy h3{left:1.125rem;font-size:max(var(--fab-font-minimum), 1.6875rem)}
  .ki-season-copy h4{font-size:max(var(--fab-font-minimum), 1rem)}
  .ki-season-row figure{
    position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:4/3;
    margin-top:calc(4.464286rem * var(--ki-responsive-space));border-radius:.4375rem
  }

  .ki-life-card,.ki-life-card.one,.ki-life-card.two,.ki-life-card.three,.ki-life-card.four{
    position:relative;left:auto;top:auto!important;width:100%;
    margin-top:calc(8.928571rem * var(--ki-responsive-space))
  }
  .ki-life-card-copy{
    grid-template-columns:1fr;gap:calc(1.785714rem * var(--ki-responsive-space));
    padding-top:calc(2.678571rem * var(--ki-responsive-space))
  }
  .ki-life-card figure{
    width:100%;height:auto;aspect-ratio:617/400;
    margin-top:calc(2.678571rem * var(--ki-responsive-space));border-radius:.4375rem
  }

  .ki-numbers .ki-section-head{margin-bottom:calc(6.25rem * var(--ki-responsive-space))}
  .ki-stats{
    position:relative;left:auto;top:auto!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:calc(4.464286rem * var(--ki-responsive-space)) calc(2.678571rem * var(--ki-responsive-space));
    width:100%
  }

  .ki-history-line{left:1.5rem;top:26.25rem;height:calc(100% - 35rem)}
  .ki-history-item,.ki-history-item.one,.ki-history-item.two,.ki-history-item.three,
  .ki-history-item.four,.ki-history-item.five{
    position:relative;left:auto;top:auto!important;width:100%;min-height:0;
    margin-top:calc(8.928571rem * var(--ki-responsive-space));
    padding-left:calc(4.464286rem * var(--ki-responsive-space))
  }
  .ki-history-item::before{left:-.5625rem;top:.4375rem}
  .ki-history-year{
    position:relative;left:auto;top:auto;
    margin-bottom:calc(2.678571rem * var(--ki-responsive-space));font-size:max(var(--fab-font-minimum), 1.375rem)}
  .ki-history-year::before{display:none}
  .ki-history-item figure{
    position:relative;left:auto;top:auto;width:100%;height:auto;
    aspect-ratio:4/3;border-radius:.4375rem
  }
  .ki-history-copy{
    position:relative;left:auto;top:auto;width:100%;
    margin-top:calc(2.678571rem * var(--ki-responsive-space))
  }
  .ki-history-copy p{margin-top:calc(1.785714rem * var(--ki-responsive-space))}
}
@media(max-width:760px){
  .ki-header-slot{height:4rem}
  .ki-hero h1{font-size:max(var(--fab-font-minimum), clamp(2.125rem,10.7vw,2.625rem))}
  .ki-prologue{min-height:61.25rem}
  .ki-prologue-copy{width:100%;font-size:max(var(--fab-font-minimum), .8125rem)}
  .ki-section-title h2{font-size:max(var(--fab-font-minimum), 2.125rem)}
  .ki-stats{grid-template-columns:1fr}
  .ki-stat{
    padding-bottom:calc(2.678571rem * var(--ki-responsive-space));
    border-bottom:.0625rem solid var(--ki-line)
  }
  .ki-history-line{left:1.25rem}
  .ki-history-item,.ki-history-item.one,.ki-history-item.two,.ki-history-item.three,
  .ki-history-item.four,.ki-history-item.five{
    padding-left:calc(2.678571rem * var(--ki-responsive-space))
  }

}
@media(prefers-reduced-motion:reduce){
  .ki-reveal{opacity:1;transform:none;filter:none;transition:none}
  html.ki-prologue-reveal-ready .ki-prologue-copy-block{opacity:1;transform:none;filter:none;transition:none}
  .ki-prologue-image,.ki-prologue-bg img{transition:none}
}


/* 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)}
}


/* v44 style block 6: ki-copy-readability-v02 */

/* TOPで確定した可読性ルール：本文・補足・遷移導線は12px以上。番号／英字キッカー等のメタ情報は既存サイズを維持。 */
.ki-stat p{font-size:max(var(--fab-font-minimum), .75rem) !important;line-height:2.05!important}
.ki-history-copy p{font-size:max(var(--fab-font-minimum), .8125rem) !important;line-height:2.25!important}
.setoda-reservation-sub a{font-size:13px !important;line-height:1.6!important}
.setoda-footer-address span,
.setoda-footer-letter p{font-size:13px !important;line-height:1.85!important}
@media(max-width:760px){
  .setoda-footer-feature-links span{font-size:13px !important}
  .setoda-reservation-sub a{font-size:13px !important}
  .setoda-footer-address span,
  .setoda-footer-letter p{font-size:13px !important}
}


/* v44 style block 7: ki-prologue-background-crossfade-v01 */

/* Prologue background changes with the narrative.
   Trigger line = 65dvh above the viewport bottom (= about 35dvh from top). */
.ki-prologue-image,
.ki-prologue-bg{
  isolation:isolate;
}
.ki-prologue-image > .ki-prologue-bg-layer,
.ki-prologue-bg > .ki-prologue-bg-layer{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  pointer-events:none;
  will-change:opacity,transform;
  transition:opacity 1.8s cubic-bezier(.22,.61,.36,1);
}
.ki-prologue-image > .ki-prologue-bg-layer{
  object-position:center center;
  filter:brightness(.5) saturate(.86) contrast(1.08);
  transform:scale(1.02);
}
.ki-prologue-bg > .ki-prologue-bg-layer{
  object-position:center center;
  filter:brightness(.5) saturate(.82) contrast(1.10);
  transform:scale(1.08) translate3d(0,-2vh,0);
}
.ki-prologue-image > .ki-prologue-bg-layer.is-active,
.ki-prologue-bg > .ki-prologue-bg-layer.is-active{
  opacity:1;
}
.ki-prologue-bg::after{
  z-index:3;
}
@media(prefers-reduced-motion:reduce){
  .ki-prologue-image > .ki-prologue-bg-layer,
  .ki-prologue-bg > .ki-prologue-bg-layer{
    transition:none!important;
  }
}


/* v44 style block 8: ki-prologue-scroll-fade-v02 */

/*
  Hero → Prologue → Nature の境界グラデーションを廃止。
  「ふと漂う〜」が画面下部へ入ったところから背景写真が徐々に現れ、
  「豊かな自然」が画面下部へ入ったところから徐々に消える。
  opacity は JS でスクロール量に連続追従させる。
*/
.ki-hero::after,
.ki-nature::before{
  display:none!important;
}

.ki-prologue-image{
  opacity:var(--prologue-scene-opacity,0);
  transition:none!important;
  will-change:opacity;
}

.ki-prologue-bg{
  transition:none!important;
}

.ki-prologue-bg.is-visible{
  transition:none!important;
}

@media(max-width:1040px){
  .ki-prologue-image{
    opacity:var(--prologue-scene-opacity,0)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .ki-prologue-image,
  .ki-prologue-bg{
    transition:none!important;
  }
}


/* v44 style block 9: ki-prologue-unified-surface-v04 */

/*
  HERO / PROLOGUE / NATURE の背景を一枚の共通サーフェスへ統合。
  セクションごとに背景色を変化させないため、境界線は構造上発生しない。

  stacking order:
    z0 : fixed prologue photo
    z1 : one fixed paper-color surface
    z2 : page contents (hero / prologue / nature etc.)
*/
.ki-header-slot,
.ki-hero,
.ki-prologue,
.ki-nature{
  background:transparent!important;
}

/* 旧境界グラデーションは完全に廃止 */
.ki-hero::after,
.ki-nature::before{
  display:none!important;
  content:none!important;
}

.ki-prologue-bg{
  z-index:0!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  transition:none!important;
}

.ki-unified-page-surface{
  position:fixed;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:var(--ki-paper);
  opacity:1;
  will-change:opacity;
  transform:translateZ(0);
}

main,
.setoda-footer{
  position:relative;
  z-index:2!important;
}

/* 固定背景を使用するため、プロローグ内の重複画像は非表示 */
html.ki-fixed-prologue-ready .ki-prologue-image{
  opacity:0!important;
}

/*
  PROLOGUE SPACING RULE
  - desktop は JS が実描画された文章末尾を測定し、
    次セクションまで最低220pxを確保。
  - responsive は文章量に追従する通常フロー + 下余白で管理。
*/
@media(max-width:1040px){
  .ki-prologue{
    min-height:0!important;
  }
  .ki-prologue-copy{
    box-sizing:border-box;
    padding-bottom:max(
      calc(10.714286rem * var(--ki-responsive-space)),
      18vh
    )!important;
  }
}

@media(max-width:560px){
  .ki-prologue-copy{
    padding-bottom:max(8.5rem,16vh)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .ki-unified-page-surface{
    opacity:0!important;
  }
}


/* v44 style block 10: ki-prologue-gradient-removal-v05 */

/*
  旧プロローグ実装に残っていた黒〜灰色の色膜を完全撤去。
  共通背景サーフェスと固定写真だけで背景遷移を成立させ、
  HERO / PROLOGUE / NATURE の境界に異なる色面を一切つくらない。
*/
.ki-prologue::after,
.ki-prologue-bg::after{
  content:none!important;
  display:none!important;
  background:none!important;
  opacity:0!important;
}

/* 写真そのものの均一なトーン調整のみ残す。局所グラデーションは使わない。 */
.ki-prologue-image img{
  filter:brightness(.5) saturate(.86) contrast(1.08)!important;
}
.ki-prologue-bg > .ki-prologue-bg-layer,
.ki-prologue-bg img{
  filter:brightness(.5) saturate(.82) contrast(1.10)!important;
}


/* v44 style block 11: lower-shared-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. */
  
  
  
  
  
  
  
  
  
  

  /* STAY / common section rhythm. */
  
  
  
  
  
  
  
  
  

  /* ROOMS: image family -> title/body is one semantic unit. */
  
  
  
  
  
  
  
  
  

  /* FACILITIES: mobile always reads photo -> narrative. */
  
  
  
  
  
  
  
  

  
  
  
  
  
  

  /* Photo sets use native touch scrolling, with the next image peeking. */
  
  
  
  
  
  
  
  

  /* DINING: plan title -> image -> copy, with calm repeated rhythm. */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  


  /* 320px hardening: long divider headings and reservation internals must shrink within the 20px gutter. */
  
  
  
  .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 */
  
  
  
  
  
  

  /* FAQ: reading text never collapses into micro copy; tap areas remain generous. */
  
  
  
  
  
  
  
  
  
  
  
  

  /* 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){
  
}

@media (max-width:430px){
  
  .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){
  .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 13: lower-shared-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 14: lower-shared-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 15: lower-shared-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 16: lower-shared-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 17: lower-shared-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 18: lower-shared-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 19: lower-shared-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.
*/


@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. */
  
  
  

  /* Page-wide semantic rhythm audit. */
  
  
  

  
  

  /* ROOMS: thumbnail family -> heading -> body = one cluster. */
  
  
  
  
  
  

  /* FACILITIES: exactly the same image -> heading -> body rhythm as ROOMS. */
  
  
  
  
  
  

  /* Floor plan and overview information are one semantic unit. */
  
  
  
  
  
  
  

  /* DINING: fix flex-shrink bug from .si-meal.one/.two/.three fixed heights. */
  
  
  
  
  
  
  
  
  

  /* ACCESS: name/address stay together; transport methods form the next cluster. */
  
  
  
  

  /* FAQ group heading: JP first, EN second; vertical rule spans both lines exactly. */
  
  
  
  
  
  

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

  /* Section boundaries remain generous; within-section gaps above are deliberately smaller. */
  
}



/* v44 style block 20: lower-shared-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 */
  
  
  
  
  

  

  
  
  
  
  
  
  
  
  
  
  
  
  

  /* HERO / one clear lead cluster */
  
  
  

  /* SECTION HEADER -> LEAD -> BODY */
  
  

  /* ROOMS / image family -> title -> body */
  
  
  
  
  
  
  

  /* FACILITIES / exact requested values */
  
  
  
  
  
  

  /* FLOOR PLAN + OVERVIEW are one cluster */
  
  
  
  
  
  
  

  /* DINING / repeated plan rhythm */
  
  
  
  
  
  
  
  
  
  

  /* ACCESS / location cluster -> transport cluster */
  
  
  
  
  

  /* FAQ / group heading -> questions -> answers */
  
  
  
  

  /* PAGE-WIDE chapter rhythm */
  
  

  /* 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 21: lower-shared-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. */
  
}



/* v44 style block 22: lower-shared-si-responsive-master-v5 */


/*
  STAY INFORMATION / responsive refinement v5
  Shared lower-page typography update:
  - Editorial body color is unified across all viewport sizes.
*/




/* v44 style block 23: lower-page-responsive-高根島について */


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


/* ALL DEVICE COLOR HIERARCHY */
.ki-hero h1,.ki-section-title h2,.ki-section-intro h3,.ki-nature-card h3,.ki-season-copy h4,.ki-life-card h3,.ki-history-copy h3{color:#482d12!important}
.ki-hero-en,.ki-kicker,.ki-stat p{color:#73563b!important}
.ki-hero-copy,.ki-section-intro p,.ki-nature-card p,.ki-season-copy p,.ki-life-card p,.ki-history-copy p{color:#5c5856!important}
/* Prologue copy intentionally keeps its light image-overlay color. */

@media(max-width:760px){
  :root{--ki-responsive-space:1!important}
  .ki-header-slot{height:64px!important}

  .ki-hero{height:auto!important;padding:80px 20px 0!important}
  .ki-hero h1{font-size:34px !important;line-height:1.55!important;letter-spacing:.055em!important}
  .ki-hero-en{margin-top:15px!important;font-size:var(--fab-font-minimum) !important;line-height:1.6!important;letter-spacing:.10em!important}
  .ki-hero-copy{max-width:none!important;margin-top:30px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-hero-copy br{display:none!important}
  
  
  
  .ki-hero-image{width:100%!important;height:auto!important;aspect-ratio:4/3!important;margin-top:50px!important;border-radius:8px!important}

  .ki-prologue-copy{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-prologue-copy p+p,.ki-prologue-copy p:nth-child(3){margin-top:50px!important}

  .ki-nature,.ki-seasons,.ki-life,.ki-numbers,.ki-history{padding:80px 20px 0!important}
  .ki-section-head{position:relative!important;left:auto!important;top:auto!important;width:100%!important}
  .ki-section-title h2{font-size:30px !important;line-height:1.55!important;letter-spacing:.055em!important}
  .ki-kicker{margin-top:15px!important;font-size:var(--fab-font-minimum) !important;line-height:1.5!important;letter-spacing:.10em!important}
  .ki-section-intro{position:relative!important;left:auto!important;top:auto!important;width:100%!important;max-width:none!important;margin:50px 0 0!important}
  .ki-section-intro h3{font-size:17px !important;line-height:1.9!important;letter-spacing:.05em!important}
  .ki-section-intro p{margin-top:30px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}

  .ki-nature-card,.ki-nature-card.one,.ki-nature-card.two,.ki-nature-card.three,.ki-nature-card.four,.ki-nature-card.five{display:block!important;width:100%!important;margin-top:50px!important;text-align:left!important}
  .ki-nature-card figure,.ki-nature-card.one figure,.ki-nature-card.two figure,.ki-nature-card.three figure,.ki-nature-card.four figure,.ki-nature-card.five figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;border-radius:8px!important}
  .ki-nature-card-copy,.ki-nature-card.two .ki-nature-card-copy,.ki-nature-card.four .ki-nature-card-copy,.ki-nature-card.five .ki-nature-card-copy{width:100%!important;margin:30px 0 0!important}
  .ki-nature-card h3{font-size:18px !important;line-height:1.72!important;letter-spacing:.05em!important}
  .ki-nature-card p{margin-top:15px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}

  .ki-season-row,.ki-season-row.spring,.ki-season-row.summer,.ki-season-row.autumn,.ki-season-row.winter{width:100%!important;height:auto!important;margin-top:50px!important}
  .ki-season-copy{width:100%!important;min-height:0!important;padding-left:50px!important}
  .ki-season-copy h3{left:15px!important;top:4px!important;font-size:24px !important}
  .ki-season-copy h4{margin-top:30px!important;font-size:15px !important;line-height:1.8!important}
  .ki-season-copy p{margin-top:15px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-season-row figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;margin-top:30px!important;border-radius:8px!important}

  .ki-life-card,.ki-life-card.one,.ki-life-card.two,.ki-life-card.three,.ki-life-card.four{width:100%!important;margin-top:50px!important}
  .ki-life-card-copy{grid-template-columns:1fr!important;gap:15px!important;min-height:0!important;padding-top:30px!important}
  .ki-life-card h3{font-size:18px !important;line-height:1.72!important}
  .ki-life-card p{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-life-card figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;margin-top:30px!important;border-radius:8px!important}

  .ki-numbers .ki-section-head{margin-bottom:14px!important}
  .ki-stats{grid-template-columns:1fr!important;gap:0!important;width:100%!important;margin-top:50px!important}
  .ki-stat{min-height:0!important;padding:0 0 30px!important;border-bottom:1px solid var(--ki-line)!important}
  .ki-stat + .ki-stat{padding-top:30px!important}
  .ki-stat dt{font-size:15px !important;line-height:1.8!important}
  .ki-stat dd{margin-top:10px!important;font-size:28px !important}
  .ki-stat p{margin-top:15px!important;font-size:12px !important;line-height:1.95!important}

  .ki-history-line{left:20px!important;top:210px!important;height:calc(100% - 260px)!important}
  .ki-history-item,.ki-history-item.one,.ki-history-item.two,.ki-history-item.three,.ki-history-item.four,.ki-history-item.five{width:100%!important;margin-top:50px!important;padding-left:30px!important}
  .ki-history-item::before{left:-5px!important;top:7px!important}
  .ki-history-year{margin-bottom:30px!important;font-size:18px !important;line-height:1.5!important}
  .ki-history-item figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;border-radius:8px!important}
  .ki-history-copy{width:100%!important;margin-top:30px!important}
  .ki-history-copy h3{font-size:18px !important;line-height:1.72!important}
  .ki-history-copy p{margin-top:15px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
}

/* v44 style block 25: fab-lower-responsive-alignment-v2 */

@media(max-width:760px){
  /* Shared lower-page journey banners: all three use the exact Stay Information 4:3 geometry. */

  /* Standard lower-page section-title component follows Stay Information. */
  .ki-kicker{
    margin-top:4px!important;
  }

  /* Standard FV index short rule follows Stay Information. */
  

  /* Standard hero rhythm follows Stay Information where the page uses the normal paper FV. */

  /* The first indexed chapter starts immediately after the 104px FV end-space.
     Subsequent INDEX chapters use 104px as the inter-chapter distance. */

  /* Standard 2-col FV INDEX: reset legacy borders before rebuilding one separator per row. */
  
  
  
}


/* v44 style block 26: fab-koune-mobile-refinement-v3 */

/* Darken the prologue image layer itself for stable white-copy readability on every device. */
.ki-prologue-image > img,
.ki-prologue-image > .ki-prologue-bg-layer,
.ki-prologue-bg > .ki-prologue-bg-layer{
  filter:brightness(.74) saturate(.86) contrast(1.08)!important;
}
@media(max-width:760px){
  .ki-nature-card p{margin-top:10px!important;}

  .ki-nature-card.one,
  .ki-season-row.spring,
  .ki-life-card.one{
    margin-top:80px!important;
  }

  .ki-season-row.summer,
  .ki-season-row.autumn,
  .ki-season-row.winter{
    margin-top:80px!important;
  }

  .ki-season-copy{
    padding-left:80px!important;
  }

  /* Keep the color change away from the last sentence/image:
     the total chapter-to-chapter breathing room remains 104px, split around the color boundary. */
  .ki-nature{padding-bottom:52px!important;}
  .ki-seasons{padding-top:52px!important;}
  .ki-numbers{padding-bottom:52px!important;}
  .ki-history{padding-top:52px!important;}

  /* Final history content gets breathing room before Reservation changes the paper color. */
  .ki-history{padding-bottom:80px!important;}

  /* History timeline: a smaller 10px dot is centered exactly over the x=20px vertical axis. */
  .ki-history-line{left:20px!important;}
  .ki-history-item::before{
    width:10px!important;
    height:10px!important;
    left:-5px!important;
    top:8px!important;
  }
  .ki-history-item figure{
    margin-top:10px!important;
  }
}


/* v44 style block 27: fab-koune-index-spacing-v1 */

@media(max-width:760px){
  /* INDEX chapter distance master: 104px on smartphone.
     Color-boundary pairs are already split 52px + 52px. */
  .ki-nature{padding-top:104px!important;}
  .ki-life,.ki-numbers{padding-top:104px!important;}
}


/* v44 style block 28: fab-koune-hero-rhythm-v1 */

@media(max-width:760px){
  .ki-hero{padding-top:82px!important;}
  .ki-hero-en{margin-top:12px!important;}
}


/* v44 style block 29: fab-aug13-koune-refinement-v2 */

@media(max-width:760px){
  /* History axis position is supplied by JS: 10px before the first item through the final item bottom. */
  .ki-history-line{
    top:var(--ki-history-axis-top,229px)!important;
    height:var(--ki-history-axis-height,calc(100% - 279px))!important;
  }
}


/* v44 style block 30: fab-aug13-koune-refinement-v3 */

/*
  Prologue source JPEG itself is darkened + softly blurred.
  Keep only a mild final layer treatment for stable white-copy readability.
*/
.ki-prologue-image > img,
.ki-prologue-image > .ki-prologue-bg-layer,
.ki-prologue-bg > .ki-prologue-bg-layer{
  filter:brightness(.88) saturate(.86) contrast(1.05)!important;
}


/* v44 style block 31: fab-aug14-koune-refinement-v7 */

/* Prologue reading copy: unified to 15px on every device. */
.ki-prologue-copy{
  font-size:15px !important;
}

/* Paragraph rhythm requested for the prologue reading copy. */
.ki-prologue-copy p+p,
.ki-prologue-copy p:nth-child(3){
  margin-top:70px!important;
}

/* The five specifically offset narrative blocks use a 20px top margin. */
.ki-prologue-copy-offset{
  margin-top:20px!important;
}


/* v44 style block 32: 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 33: 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 34: 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 35: 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 37: 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 38: 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 39: 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 40: 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 41: 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 43: 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 44: 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 45: 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 46: 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 47: 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 48: 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 49: 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 51: fab-mobile-setoda-text-link-margin-v21 */

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


/* v44 style block 52: 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}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

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

@media(max-width:1040px){
  .ki-header-slot{height:4rem}
  .ki-hero h1{font-size:max(var(--fab-font-minimum), clamp(2.125rem,10.7vw,2.625rem))}
  .ki-prologue{min-height:61.25rem}
  .ki-prologue-copy{width:100%;font-size:max(var(--fab-font-minimum), .8125rem)}
  .ki-section-title h2{font-size:max(var(--fab-font-minimum), 2.125rem)}
  .ki-stats{grid-template-columns:1fr}
  .ki-stat{
    padding-bottom:calc(2.678571rem * var(--ki-responsive-space));
    border-bottom:.0625rem solid var(--ki-line)
  }
  .ki-history-line{left:1.25rem}
  .ki-history-item,.ki-history-item.one,.ki-history-item.two,.ki-history-item.three,
  .ki-history-item.four,.ki-history-item.five{
    padding-left:calc(2.678571rem * var(--ki-responsive-space))
  }

}

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

@media(max-width:1040px){
  .setoda-footer-feature-links span{font-size:13px !important}
  .setoda-reservation-sub a{font-size:13px !important}
  .setoda-footer-address span,
  .setoda-footer-letter p{font-size:13px !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. */
  
  
  
  
  
  
  
  
  
  

  /* STAY / common section rhythm. */
  
  
  
  
  
  
  
  
  

  /* ROOMS: image family -> title/body is one semantic unit. */
  
  
  
  
  
  
  
  
  

  /* FACILITIES: mobile always reads photo -> narrative. */
  
  
  
  
  
  
  
  

  
  
  
  
  
  

  /* Photo sets use native touch scrolling, with the next image peeking. */
  
  
  
  
  
  
  
  

  /* DINING: plan title -> image -> copy, with calm repeated rhythm. */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  


  /* 320px hardening: long divider headings and reservation internals must shrink within the 20px gutter. */
  
  
  
  .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 */
  
  
  
  
  
  

  /* FAQ: reading text never collapses into micro copy; tap areas remain generous. */
  
  
  
  
  
  
  
  
  
  
  
  

  /* 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){
  .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. */
  
  
  

  /* Page-wide semantic rhythm audit. */
  
  
  

  
  

  /* ROOMS: thumbnail family -> heading -> body = one cluster. */
  
  
  
  
  
  

  /* FACILITIES: exactly the same image -> heading -> body rhythm as ROOMS. */
  
  
  
  
  
  

  /* Floor plan and overview information are one semantic unit. */
  
  
  
  
  
  
  

  /* DINING: fix flex-shrink bug from .si-meal.one/.two/.three fixed heights. */
  
  
  
  
  
  
  
  
  

  /* ACCESS: name/address stay together; transport methods form the next cluster. */
  
  
  
  

  /* FAQ group heading: JP first, EN second; vertical rule spans both lines exactly. */
  
  
  
  
  
  

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

  /* Section boundaries remain generous; within-section gaps above are deliberately smaller. */
  
}

@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 */
  
  
  
  
  

  

  
  
  
  
  
  
  
  
  
  
  
  
  

  /* HERO / one clear lead cluster */
  
  
  

  /* SECTION HEADER -> LEAD -> BODY */
  
  

  /* ROOMS / image family -> title -> body */
  
  
  
  
  
  
  

  /* FACILITIES / exact requested values */
  
  
  
  
  
  

  /* FLOOR PLAN + OVERVIEW are one cluster */
  
  
  
  
  
  
  

  /* DINING / repeated plan rhythm */
  
  
  
  
  
  
  
  
  
  

  /* ACCESS / location cluster -> transport cluster */
  
  
  
  
  

  /* FAQ / group heading -> questions -> answers */
  
  
  
  

  /* PAGE-WIDE chapter rhythm */
  
  

  /* 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. */
  
}

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

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

@media(max-width:1040px){
  :root{--ki-responsive-space:1!important}
  .ki-header-slot{height:64px!important}

  .ki-hero{height:auto!important;padding:80px 20px 0!important}
  .ki-hero h1{font-size:34px !important;line-height:1.55!important;letter-spacing:.055em!important}
  .ki-hero-en{margin-top:15px!important;font-size:var(--fab-font-minimum) !important;line-height:1.6!important;letter-spacing:.10em!important}
  .ki-hero-copy{max-width:none!important;margin-top:30px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-hero-copy br{display:none!important}
  
  
  
  .ki-hero-image{width:100%!important;height:auto!important;aspect-ratio:4/3!important;margin-top:50px!important;border-radius:8px!important}

  .ki-prologue-copy{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-prologue-copy p+p,.ki-prologue-copy p:nth-child(3){margin-top:50px!important}

  .ki-nature,.ki-seasons,.ki-life,.ki-numbers,.ki-history{padding:80px 20px 0!important}
  .ki-section-head{position:relative!important;left:auto!important;top:auto!important;width:100%!important}
  .ki-section-title h2{font-size:30px !important;line-height:1.55!important;letter-spacing:.055em!important}
  .ki-kicker{margin-top:15px!important;font-size:var(--fab-font-minimum) !important;line-height:1.5!important;letter-spacing:.10em!important}
  .ki-section-intro{position:relative!important;left:auto!important;top:auto!important;width:100%!important;max-width:none!important;margin:50px 0 0!important}
  .ki-section-intro h3{font-size:17px !important;line-height:1.9!important;letter-spacing:.05em!important}
  .ki-section-intro p{margin-top:30px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}

  .ki-nature-card,.ki-nature-card.one,.ki-nature-card.two,.ki-nature-card.three,.ki-nature-card.four,.ki-nature-card.five{display:block!important;width:100%!important;margin-top:50px!important;text-align:left!important}
  .ki-nature-card figure,.ki-nature-card.one figure,.ki-nature-card.two figure,.ki-nature-card.three figure,.ki-nature-card.four figure,.ki-nature-card.five figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;border-radius:8px!important}
  .ki-nature-card-copy,.ki-nature-card.two .ki-nature-card-copy,.ki-nature-card.four .ki-nature-card-copy,.ki-nature-card.five .ki-nature-card-copy{width:100%!important;margin:30px 0 0!important}
  .ki-nature-card h3{font-size:18px !important;line-height:1.72!important;letter-spacing:.05em!important}
  .ki-nature-card p{margin-top:15px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}

  .ki-season-row,.ki-season-row.spring,.ki-season-row.summer,.ki-season-row.autumn,.ki-season-row.winter{width:100%!important;height:auto!important;margin-top:50px!important}
  .ki-season-copy{width:100%!important;min-height:0!important;padding-left:50px!important}
  .ki-season-copy h3{left:15px!important;top:4px!important;font-size:24px !important}
  .ki-season-copy h4{margin-top:30px!important;font-size:15px !important;line-height:1.8!important}
  .ki-season-copy p{margin-top:15px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-season-row figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;margin-top:30px!important;border-radius:8px!important}

  .ki-life-card,.ki-life-card.one,.ki-life-card.two,.ki-life-card.three,.ki-life-card.four{width:100%!important;margin-top:50px!important}
  .ki-life-card-copy{grid-template-columns:1fr!important;gap:15px!important;min-height:0!important;padding-top:30px!important}
  .ki-life-card h3{font-size:18px !important;line-height:1.72!important}
  .ki-life-card p{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ki-life-card figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;margin-top:30px!important;border-radius:8px!important}

  .ki-numbers .ki-section-head{margin-bottom:14px!important}
  .ki-stats{grid-template-columns:1fr!important;gap:0!important;width:100%!important;margin-top:50px!important}
  .ki-stat{min-height:0!important;padding:0 0 30px!important;border-bottom:1px solid var(--ki-line)!important}
  .ki-stat + .ki-stat{padding-top:30px!important}
  .ki-stat dt{font-size:15px !important;line-height:1.8!important}
  .ki-stat dd{margin-top:10px!important;font-size:28px !important}
  .ki-stat p{margin-top:15px!important;font-size:12px !important;line-height:1.95!important}

  .ki-history-line{left:20px!important;top:210px!important;height:calc(100% - 260px)!important}
  .ki-history-item,.ki-history-item.one,.ki-history-item.two,.ki-history-item.three,.ki-history-item.four,.ki-history-item.five{width:100%!important;margin-top:50px!important;padding-left:30px!important}
  .ki-history-item::before{left:-5px!important;top:7px!important}
  .ki-history-year{margin-bottom:30px!important;font-size:18px !important;line-height:1.5!important}
  .ki-history-item figure{width:100%!important;height:auto!important;aspect-ratio:4/3!important;border-radius:8px!important}
  .ki-history-copy{width:100%!important;margin-top:30px!important}
  .ki-history-copy h3{font-size:18px !important;line-height:1.72!important}
  .ki-history-copy p{margin-top:15px!important;font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
}

@media(max-width:1040px){
  /* Shared lower-page journey banners: all three use the exact Stay Information 4:3 geometry. */

  /* Standard lower-page section-title component follows Stay Information. */
  .ki-kicker{
    margin-top:4px!important;
  }

  /* Standard FV index short rule follows Stay Information. */
  

  /* Standard hero rhythm follows Stay Information where the page uses the normal paper FV. */

  /* The first indexed chapter starts immediately after the 104px FV end-space.
     Subsequent INDEX chapters use 104px as the inter-chapter distance. */

  /* Standard 2-col FV INDEX: reset legacy borders before rebuilding one separator per row. */
  
  
  
}

@media(max-width:1040px){
  .ki-nature-card p{margin-top:10px!important;}

  .ki-nature-card.one,
  .ki-season-row.spring,
  .ki-life-card.one{
    margin-top:80px!important;
  }

  .ki-season-row.summer,
  .ki-season-row.autumn,
  .ki-season-row.winter{
    margin-top:80px!important;
  }

  .ki-season-copy{
    padding-left:80px!important;
  }

  /* Keep the color change away from the last sentence/image:
     the total chapter-to-chapter breathing room remains 104px, split around the color boundary. */
  .ki-nature{padding-bottom:52px!important;}
  .ki-seasons{padding-top:52px!important;}
  .ki-numbers{padding-bottom:52px!important;}
  .ki-history{padding-top:52px!important;}

  /* Final history content gets breathing room before Reservation changes the paper color. */
  .ki-history{padding-bottom:80px!important;}

  /* History timeline: a smaller 10px dot is centered exactly over the x=20px vertical axis. */
  .ki-history-line{left:20px!important;}
  .ki-history-item::before{
    width:10px!important;
    height:10px!important;
    left:-5px!important;
    top:8px!important;
  }
  .ki-history-item figure{
    margin-top:10px!important;
  }
}

@media(max-width:1040px){
  /* INDEX chapter distance master: 104px on smartphone.
     Color-boundary pairs are already split 52px + 52px. */
  .ki-nature{padding-top:104px!important;}
  .ki-life,.ki-numbers{padding-top:104px!important;}
}

@media(max-width:1040px){
  .ki-hero{padding-top:82px!important;}
  .ki-hero-en{margin-top:12px!important;}
}

@media(max-width:1040px){
  /* History axis position is supplied by JS: 10px before the first item through the final item bottom. */
  .ki-history-line{
    top:var(--ki-history-axis-top,229px)!important;
    height:var(--ki-history-axis-height,calc(100% - 279px))!important;
  }
}

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

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

@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 53: additional-revision-20260907-seasons */

/* 2026-09-07: season composition = [season label | copy] + image, preserving original outer geometry. */
@media(min-width:1041px){
  .ki-season-row{display:flex!important;align-items:flex-start!important;gap:4.6875rem!important}
  .ki-season-copy{
    position:relative!important;left:auto!important;top:auto!important;width:34.6875rem!important;
    min-height:14.375rem!important;padding-left:0!important;border-left:0!important;
    display:flex!important;align-items:flex-start!important;flex:0 0 34.6875rem!important
  }
  .ki-season-copy h3{
    position:static!important;flex:0 0 7.5rem!important;margin:.625rem 0 0!important;
    padding-left:1.25rem!important;font-size:max(var(--fab-font-minimum),2rem)!important
  }
  .ki-season-detail{
    flex:1 1 auto!important;min-width:0!important;padding-left:0!important;
    border-left:.0625rem solid rgba(72,45,18,.45)!important
  }
  .ki-season-detail h4{margin:3.125rem 0 0 0!important;padding-left:0!important}
  .ki-season-detail p{margin:1.875rem 0 0 0!important;padding-left:0!important}
  .ki-season-row figure{
    position:relative!important;left:auto!important;top:auto!important;flex:0 0 42.1875rem!important;
    width:42.1875rem!important;height:34.75rem!important;margin:0!important
  }
}
@media(max-width:1040px){
  .ki-season-copy{
    display:flex!important;align-items:flex-start!important;width:100%!important;min-height:0!important;
    padding-left:0!important;border-left:0!important
  }
  .ki-season-copy h3{
    position:static!important;flex:0 0 50px!important;margin:4px 0 0!important;padding-left:0!important;
    font-size:24px!important;line-height:1.3!important
  }
  .ki-season-detail{
    flex:1 1 auto!important;min-width:0!important;padding-left:20px!important;
    border-left:1px solid rgba(72,45,18,.45)!important
  }
  .ki-season-detail h4{margin-top:0!important}
  .ki-season-detail p{margin-top:15px!important}
  .ki-season-row figure{margin-top:30px!important}
}


/* v44 style block 54: client-revision-20260910-seasons-v3 */

/* Season block: vertical rule belongs to the far left of block A, not between the label and text. */
@media(min-width:1041px){
  .ki-season-row{display:flex!important;align-items:flex-start!important;gap:4.6875rem!important}
  .ki-season-copy{
    position:relative!important;left:auto!important;top:auto!important;width:34.6875rem!important;
    min-height:14.375rem!important;padding-left:0!important;
    border-left:.0625rem solid rgba(72,45,18,.45)!important;
    display:flex!important;align-items:flex-start!important;flex:0 0 34.6875rem!important
  }
  .ki-season-copy h3{
    position:static!important;flex:0 0 7.5rem!important;margin:.625rem 0 0!important;
    padding-left:1.25rem!important;font-size:max(var(--fab-font-minimum),2rem)!important
  }
  .ki-season-detail{
    flex:1 1 auto!important;min-width:0!important;padding-left:0!important;border-left:0!important
  }
  .ki-season-detail h4{margin:3.125rem 0 0!important;padding-left:0!important}
  .ki-season-detail p{margin:1.875rem 0 0!important;padding-left:0!important}
  .ki-season-row figure{
    position:relative!important;left:auto!important;top:auto!important;flex:0 0 42.1875rem!important;
    width:42.1875rem!important;height:34.75rem!important;margin:0!important
  }
}
@media(max-width:1040px){
  .ki-season-copy{
    display:flex!important;align-items:flex-start!important;width:100%!important;min-height:0!important;
    padding-left:0!important;border-left:1px solid rgba(72,45,18,.45)!important
  }
  .ki-season-copy h3{
    position:static!important;flex:0 0 50px!important;margin:4px 0 0!important;padding-left:15px!important;
    font-size:24px!important;line-height:1.3!important
  }
  .ki-season-detail{
    flex:1 1 auto!important;min-width:0!important;padding-left:20px!important;border-left:0!important
  }
  .ki-season-detail h4{margin-top:0!important}
  .ki-season-detail p{margin-top:15px!important}
  .ki-season-row figure{margin-top:30px!important}
}


/* v44 style block 55: 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 56: client-revision-20260911-koune-v4 */

/* Keep nature headings right-aligned, while the paragraph text reads left-aligned at the existing box width. */
@media(min-width:1041px){
  .ki-nature-card.two .ki-nature-card-copy,
  .ki-nature-card.four .ki-nature-card-copy{ text-align:right!important; }
  .ki-nature-card.two .ki-nature-card-copy h3,
  .ki-nature-card.four .ki-nature-card-copy h3{ text-align:right!important; }
  .ki-nature-card.two .ki-nature-card-copy p,
  .ki-nature-card.four .ki-nature-card-copy p{ text-align:left!important; }
}
/* On tablet/mobile the season name and detail heading must not start on the same horizontal line. */
@media(max-width:1040px){
  .ki-season-detail{margin-top:30px!important}
}


/* v44 style block 57: 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 59: client-revision-20260912-koune-v7 */

/* Dynamic text blocks are content-driven; media/canvas geometry remains untouched. */
.ki-season-row{height:auto!important;min-height:0!important}
.ki-season-copy,.ki-life-card-copy,.ki-stat,.ki-history-item{min-height:0!important}


/* v44 style block 60: 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 61: fab-flow-layout-v11-koune */

/* v11 — Keep the editorial collage / timeline coordinates where they are meaningful,
   but convert ordinary FV and two-column text/media relations to Grid + margin flow. */
@media (min-width:1041px){
  .ki-hero{
    height:auto!important;
    padding:13.75rem 9.375rem 9.375rem!important;
  }
  .ki-hero h1,.ki-hero-en,.ki-hero-copy,.ki-hero-image{
    position:relative!important;
    left:auto!important;top:auto!important;
  }
  .ki-hero h1{margin:0!important;}
  .ki-hero-en{margin-top:2.5rem!important;}
  .ki-hero-copy{
    width:41.25rem!important;
    margin-top:4.6875rem!important;
  }
  
  .ki-hero-image{
    width:100%!important;
    height:43.75rem!important;
    margin-top:3.75rem!important;
  }

  .ki-section-head{
    display:grid!important;
    grid-template-columns:32.5rem 43.4375rem!important;
    column-gap:5.625rem!important;
    align-items:start!important;
  }
  .ki-section-intro{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:auto!important;
    margin-top:2.4375rem!important;
  }

  .ki-season-row{
    display:grid!important;
    grid-template-columns:34.6875rem 42.1875rem!important;
    column-gap:4.6875rem!important;
    align-items:start!important;
    height:auto!important;
  }
  .ki-season-copy{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:auto!important;
    height:auto!important;
  }
  .ki-season-row figure{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:42.1875rem!important;
    height:34.75rem!important;
  }
}


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

/* v12 Phase 1 — Background changes share one 104px chapter gap as 52px + 52px. */
@media(max-width:1040px){
  :root{
    --fab-rhythm-chapter:104px;
    --fab-rhythm-boundary-half:52px;
    --fab-rhythm-page-end:80px;
  }
  .ki-nature{padding-bottom:var(--fab-rhythm-boundary-half)!important;}
  .ki-seasons{padding-top:var(--fab-rhythm-boundary-half)!important;padding-bottom:var(--fab-rhythm-boundary-half)!important;}
  .ki-life{padding-top:var(--fab-rhythm-boundary-half)!important;padding-bottom:var(--fab-rhythm-boundary-half)!important;}
  .ki-numbers{padding-top:var(--fab-rhythm-boundary-half)!important;padding-bottom:var(--fab-rhythm-boundary-half)!important;}
  .ki-history{padding-top:var(--fab-rhythm-boundary-half)!important;padding-bottom:var(--fab-rhythm-page-end)!important;}
}


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

/* v13 — Match Stay Information's canonical background-boundary rhythm: 80px + 80px.
   Page-end spacing before Reservation remains a separate 80px rule. */
@media(max-width:1040px){
  :root{
    --fab-rhythm-chapter:160px;
    --fab-rhythm-boundary-side:80px;
    --fab-rhythm-page-end:80px;
  }
  .ki-nature{padding-bottom:var(--fab-rhythm-boundary-side)!important;}
  .ki-seasons{padding-top:var(--fab-rhythm-boundary-side)!important;padding-bottom:var(--fab-rhythm-boundary-side)!important;}
  .ki-life{padding-top:var(--fab-rhythm-boundary-side)!important;padding-bottom:var(--fab-rhythm-boundary-side)!important;}
  .ki-numbers{padding-top:var(--fab-rhythm-boundary-side)!important;padding-bottom:var(--fab-rhythm-boundary-side)!important;}
  .ki-history{padding-top:var(--fab-rhythm-boundary-side)!important;padding-bottom:var(--fab-rhythm-page-end)!important;}
}


/* v44 style block 64: 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 65: 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 66: fab-system-coherence-v21 */

  /* v21 — Dedicated display-text roles that must not shrink with the 1920px stage. */
  :root{
    --fab-type-stat-value-target:clamp(28px,1.77vw,34px);
    --fab-type-history-year-target:clamp(18px,1.35vw,26px);
  }


/* v44 style block 67: fab-v22-koune-and-index-refinements */

/* v22 — FV INDEX rhythm: preserve rule/label, row and column spacing while preventing wraps. */
@media (min-width:1041px){
  
  
  

  /* Nature-card headings requested to remain single-line on desktop. */
  .ki-nature-card.two .ki-nature-card-copy h3,
  .ki-nature-card.four .ki-nature-card-copy h3,
  .ki-nature-card.five .ki-nature-card-copy h3{
    white-space:nowrap!important;
  }

  /* Takane mikan horizontal card:
     - narrower image gives the title enough measure;
     - 30px screen-space image/copy gap matches the canonical nature-card spacing;
     - start alignment guarantees copy never rises above the image top edge. */
  .ki-nature-card.five{
    grid-template-columns:24.5rem 29rem!important;
    column-gap:calc(30px / var(--ki-scale,1))!important;
    align-items:start!important;
    width:calc(53.5rem + (30px / var(--ki-scale,1)))!important;
  }
  .ki-nature-card.five figure{width:24.5rem!important;}
  .ki-nature-card.five .ki-nature-card-copy{
    width:29rem!important;
    margin:0!important;
    align-self:start!important;
  }
}


/* v44 style block 68: fab-v23-ki-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. */
@media (min-width:1041px){
  
  
  

  /* Koune FV title used a unique 1.25 line-height. Normalize it to the lower-page
     title system while compensating the added line-box height so following content
     keeps its established vertical geometry. */
  .ki-hero h1{
    line-height:1.82!important;
    margin:0 0 -2.565rem 0!important;
  }

  /* Takane mikan: keep the v22 width/gap contract, but bottom-align the copy. */
  .ki-nature-card.five{
    align-items:end!important;
  }
  .ki-nature-card.five .ki-nature-card-copy{
    align-self:end!important;
  }

}


/* v44 style block 69: fab-v24-koune-structure-and-nature */

/* v24 — Koune FV uses the same desktop title -> English-label flow contract as
   the other indexed lower pages. The previous v23 negative h1 margin was a
   page-specific compensation and made KOUNE ISLAND sit visually too high. */
@media(min-width:1041px){
  .ki-hero h1{
    line-height:1.82!important;
    margin:0!important;
  }
  .ki-hero-en{
    margin-top:0!important;
  }
  /* Keep the originally authored copy Y-position after normalising the h1 line box. */
  .ki-hero-copy{
    margin-top:3.6875rem!important;
  }

  /* One canonical media-to-copy gap for the Nature chapter.
     Vertical cards use this as margin-top; the Takane-mikan horizontal card
     uses the same screen-space amount as its column gap. */
  .ki-nature{--ki-nature-media-copy-gap:30px;}
  .ki-nature-card:not(.five) .ki-nature-card-copy{
    margin-top:calc(var(--ki-nature-media-copy-gap) / var(--ki-scale,1))!important;
  }
  .ki-nature-card.five{
    column-gap:calc(var(--ki-nature-media-copy-gap) / var(--ki-scale,1))!important;
  }
  .ki-nature-card.five .ki-nature-card-copy{
    margin:0!important;
  }

  /* Cards 2 and 4 keep their headings on one line without clipping on narrow PC widths.
     Their outer cards already have sufficient measure; the old copy-width caps were
     the actual constraint. Widening the copy also gives the body text more room. */
  .ki-nature-card.two .ki-nature-card-copy,
  .ki-nature-card.four .ki-nature-card-copy{
    width:100%!important;
    max-width:none!important;
  }
  .ki-nature-card.two .ki-nature-card-copy h3,
  .ki-nature-card.four .ki-nature-card-copy h3{
    white-space:nowrap!important;
    max-width:100%!important;
  }
}


/* v44 style block 70: fab-v25-dynamic-priority-and-koune-refinement */

/* v25 — Canonical ownership after CSS/JS interference audit.
   At 1041px+, responsive values listed in fabDesktopSpacingRules are owned by JS.
   CSS here is fallback/shape only and intentionally does not inverse-scale those values. */
@media(min-width:1041px){
  /* Match HOW TO STAY FV title -> English-label spacing.
     JS also writes margin-top:0, so resize cannot diverge from this fallback. */
  .ki-hero-en{margin-top:0!important;}

  /* Nature media/copy spacing: authored 30px-stage fallback only.
     applyFabDesktopSpacing() owns the final on-screen 30px at desktop widths. */
  .ki-nature-card:not(.five) .ki-nature-card-copy{margin-top:1.875rem!important;}
  .ki-nature-card.five{column-gap:1.875rem!important;}

  /* Cards 2/4: heading may use full card measure, body copy stays at 80%. */
  .ki-nature-card.two .ki-nature-card-copy,
  .ki-nature-card.four .ki-nature-card-copy{
    width:100%!important;
    max-width:none!important;
  }
  .ki-nature-card.two .ki-nature-card-copy p,
  .ki-nature-card.four .ki-nature-card-copy p{
    width:80%!important;
    max-width:80%!important;
    margin-left:auto!important;
  }
}


/* v44 style block 71: fab-v26-koune-label-and-mikan-spacing */

/* v26 — Match the lower-page FV English-label line-height to HOW TO STAY.
   The 1041–1280px PC band uses the existing breakpoint and adds 50px of
   visible breathing room above the Takane-mikan card only. */
@media (min-width:1041px){
  .ki-hero-en{line-height:1.8!important;}
}
@media (min-width:1041px) and (max-width:1280px){
  .ki-nature-card.five{
    margin-top:calc(50px / var(--ki-scale,1))!important;
  }
}


/* v44 style block 72: 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 73: fab-v27-koune-mikan-edge-fix */

@media(min-width:1041px){
  .ki-nature-card.five{
    grid-template-columns:24.5rem calc(29rem + (1px / var(--ki-scale,1)))!important;
    width:calc(53.5rem + (30px / var(--ki-scale,1)) + (1px / var(--ki-scale,1)))!important;
  }
}


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


/* v44 style block 77: client-revision-20260917-journey-desktop-v1 */

/* PC only: allow journey headings to use the full copy width and standardize the circular icon to 42px. */


/* v44 style block 78: fab-v41-koune-prologue-and-life-pair-alignment */

/* v41 — Koune desktop-only refinements.
   1) Prologue copy widens to 47.5rem while preserving its authored right edge.
   2) Life-card image bottoms are pair-aligned by JS; Tablet/SP remains unchanged. */
@media(min-width:1041px){
  .ki-prologue-copy{
    width:47.5rem!important;
    left:60.1875rem!important;
  }
}

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



/* v44 style block 79: client-revision-01f-prologue-background-fix */
/*
  Final prologue background treatment, unified in one place.
  Apply the same readable background recipe to all 3 scenes:
  - slight blur to push the image behind the copy
  - moderate brightness reduction on the image itself
  - consistent semi-transparent black mask above the image
  Existing older filter rules remain in the file for history,
  but this late block becomes the single effective visual spec.
*/
.ki-prologue-image,
.ki-prologue-bg{
  isolation:isolate;
}

.ki-prologue-image::after,
.ki-prologue-bg::after{
  content:"" !important;
  display:block !important;
  position:absolute;
  inset:0;
  pointer-events:none;
  background:rgba(0,0,0,.42) !important;
  opacity:1 !important;
  z-index:2;
}

.ki-prologue-image > img,
.ki-prologue-image > .ki-prologue-bg-layer,
.ki-prologue-bg > .ki-prologue-bg-layer,
.ki-prologue-bg > img{
  filter:brightness(.8) saturate(.84) contrast(1.02) blur(4px) !important;
}

.ki-prologue-image > img,
.ki-prologue-image > .ki-prologue-bg-layer{
  transform:scale(1.035) !important;
  transform-origin:center center;
}

.ki-prologue-bg > .ki-prologue-bg-layer,
.ki-prologue-bg > img{
  transform:scale(1.11) translate3d(0,-2vh,0) !important;
  transform-origin:center center;
}

/* Keep the reading copy clearly above the mask. */
.ki-prologue-copy{
  z-index:3;
}

@media(max-width:760px){
  .ki-prologue-image > img,
  .ki-prologue-image > .ki-prologue-bg-layer,
  .ki-prologue-bg > .ki-prologue-bg-layer,
  .ki-prologue-bg > img{
    filter:brightness(.8) saturate(.84) contrast(1.02) blur(3px) !important;
  }
}

/* RC01 Hotfix03: Koune FV lead vertical parity fallback
   The runtime desktop spacing helper now owns the final inline value at 59px.
   This CSS rule keeps the no-JS/fallback value aligned with the other lower pages.
   Responsive <=1040px remains unified at 30px and is intentionally unchanged. */
@media (min-width:1041px){
  .ki-hero-copy{
    margin-top:3.6875rem!important;
  }
}



/* RC01 Hotfix04: Koune FV banner spacing parity
   Desktop runtime spacing is owned by FabDesktopSpacing with a 60px target.
   Keep the stylesheet fallback aligned with Stay / Experience / About.
   <=1040px responsive rules remain unchanged. */
@media (min-width:1041px){
  .ki-hero-image{
    margin-top:3.75rem!important;
  }
}


/* RC01 Hotfix05: Koune FV lead text-height parity
   Experience is the canonical FV lead typography reference.
   Desktop font-size is already equivalent at 16px; only Koune's historical
   line-height differed (2.18 vs 2.28). Keep <=1040px rules untouched. */
@media (min-width:1041px){
  .ki-hero-copy{
    line-height:2.28!important;
  }
}
