/* v44 style block 1: inline-1 */
:root{
  --paper:#f4f0e7;
  --paper-deep:#e9e2d5;
  --paper-light:#faf7f0;
  --ink:#2d241d;
  --brown:#482d12;
  --brown-soft:#73563b;
  --green:#596d45;
  --lemon:#d2b451;
  --line:rgba(72,45,18,.16);
  --white:#fffdf8;
  --pad:clamp(22px,4.6vw,74px);
  --max:1440px;
  --serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --sans:"Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
body.menu-open{overflow:hidden}
.grain{position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}

.header{position:fixed;inset:0 0 auto;z-index:120;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:18px var(--pad);color:#fff;transition:color .8s var(--ease),background .8s var(--ease),padding .8s var(--ease),border-color .8s var(--ease)}
.header.scrolled{color:var(--brown);background:rgba(244,240,231,.88);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding-top:13px;padding-bottom:13px}
.logo{justify-self:start;font:500 14px/1.35 var(--serif);letter-spacing:.15em}
.logo small{display:block;margin-bottom:3px;font:500 var(--fab-font-minimum)/1.3 var(--sans);letter-spacing:.24em;opacity:.78}
.header-place{justify-self:center;font-size:var(--fab-font-minimum);letter-spacing:.22em;white-space:nowrap;opacity:.82}
.header-actions{justify-self:end;display:flex;align-items:center;gap:8px}
.header-link{padding:10px 12px;font-size:var(--fab-font-minimum);letter-spacing:.15em}
.utility-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 16px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font-size:var(--fab-font-minimum);letter-spacing:.16em;transition:.5s var(--ease);cursor:pointer}
.utility-btn:hover{background:var(--lemon);border-color:var(--lemon);color:var(--brown)}
.menu-btn{width:40px;padding:0}
.menu-lines{position:relative;width:13px;height:8px}
.menu-lines::before,.menu-lines::after{content:"";position:absolute;left:0;width:13px;height:1px;background:currentColor;transition:.5s var(--ease)}
.menu-lines::before{top:1px}
.menu-lines::after{bottom:1px}
.menu-open .menu-lines::before{top:3px;transform:rotate(45deg)}
.menu-open .menu-lines::after{bottom:4px;transform:rotate(-45deg)}
.menu-panel{position:fixed;inset:0;z-index:110;display:grid;place-items:center;background:rgba(52,35,20,.96);color:#f8f1e5;opacity:0;visibility:hidden;transition:.8s var(--ease)}
.menu-open .menu-panel{opacity:1;visibility:visible}
.menu-panel nav{display:grid;text-align:center;gap:20px}
.menu-panel a{font:500 max(var(--fab-font-minimum), clamp(21px,2.4vw,30px))/1.7 var(--serif);letter-spacing:.1em}
.menu-panel small{display:block;margin-top:28px;font-size:var(--fab-font-minimum);letter-spacing:.2em;color:#d9c9b4}
@media(max-width:1040px){.header{grid-template-columns:1fr auto}
.header-place,.header-link{display:none}
}
@media(max-width:760px){: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}
}

.header-actions{gap:3px}
.header-link-icon,.reserve-btn{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.header-link-icon{padding-inline:9px}
.nav-icon{display:inline-flex;width:14px;height:14px;flex:0 0 auto}
.nav-icon svg,.mobile-cta-icon svg,.panel-bike svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.reserve-btn .nav-icon{width:13px;height:13px}
.menu-panel nav{gap:13px;min-width:min(420px,82vw)}
.menu-panel nav>a{display:grid;grid-template-columns:34px 1fr;align-items:center;text-align:left;font-size:max(var(--fab-font-minimum), clamp(18px,2vw,26px))}
.mobile-reserve-cta{display:none}
@media(max-width:1240px){.header-link-icon{font-size:var(--fab-font-minimum)}
}
@media(max-width:980px){.header-link,.header .reserve-btn{display:none!important}
.header-actions{gap:8px}
.mobile-reserve-cta{position:fixed;z-index:125;left:10px;right:10px;bottom:10px;display:block;padding-bottom:env(safe-area-inset-bottom)}
.mobile-reserve-cta>a{display:grid;grid-template-columns:25px 1fr 20px;gap:13px;align-items:center;min-height:62px;padding:10px 17px;background:rgba(72,45,18,.96);color:#fffdf8;box-shadow:0 15px 42px rgba(35,22,12,.25);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}

:root{
  
  --section-space-utility:clamp(84px,8.5vw,128px);
  --section-space-editorial:clamp(112px,12vw,176px);
  --section-space-immersive:clamp(128px,14vw,208px);
  --block-space-xl:clamp(72px,7.5vw,112px);
  --block-space-lg:clamp(48px,5.4vw,80px);
  --block-space-md:clamp(30px,3.4vw,52px);
  --block-space-sm:clamp(18px,2vw,30px);
  --grid-gap:clamp(14px,1.7vw,28px);
  --content-shell:min(calc(100% - (var(--pad) * 2)),var(--max));
}
@media(max-width:760px){: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;
  }
}

:root{
  --fab-type-body:15px;
  --fab-type-lead:16px;
  --fab-type-small-heading:18px;
  --fab-type-section:25px;
  --fab-type-story:24px;
  --fab-type-hero:35px;
}
@media(max-width:820px){:root{
    --fab-type-body:14px;
    --fab-type-lead:15px;
    --fab-type-small-heading:16px;
    --fab-type-section:22px;
    --fab-type-story:21px;
    --fab-type-hero:28px;
  }
}

.menu-panel{
  display:block;
  padding-top:64px;
  background:var(--paper-light);
  color:var(--brown);
  overflow:auto;
  opacity:0;
  visibility:hidden;
  transform:translateY(-10px);
  transition:opacity .72s var(--ease),visibility .72s var(--ease),transform .85s var(--ease);
}
.menu-open .menu-panel{opacity:1;visibility:visible;transform:none}
.menu-open .header{
  color:var(--brown)!important;
  background:rgba(250,247,240,.96)!important;
  border-bottom:1px solid var(--line);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
}
.menu-open .menu-btn{background:var(--lemon);border-color:var(--lemon)}
.menu-shell{
  min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px);
  display:grid;
  grid-template-columns:minmax(300px,33vw) minmax(0,1fr);
}
.menu-visual{
  position:relative;
  min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px);
  overflow:hidden;
  background:#665743;
  opacity:0;
  transform:translateX(-24px);
  transition:opacity 1s .12s var(--ease),transform 1.2s .12s var(--ease);
}
.menu-open .menu-visual{opacity:1;transform:none}
.menu-visual img{position:absolute;inset:0;object-position:48% center;transform:scale(1.025);transition:transform 8s ease}
.menu-open .menu-visual img{transform:scale(1)}
.menu-visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,24,19,.08),rgba(31,23,16,.58))}
.menu-visual-copy{position:absolute;left:clamp(28px,4vw,62px);right:clamp(28px,4vw,62px);bottom:clamp(32px,5vw,72px);color:#fff9ee}
.menu-visual-copy>span{display:block;margin-bottom:20px;font:500 var(--fab-font-minimum)/1.4 var(--sans);letter-spacing:.22em}
.menu-visual-copy strong{display:block;font:500 max(var(--fab-font-minimum), clamp(20px,2vw,29px))/1.9 var(--serif);letter-spacing:.08em}
.menu-visual-copy small{display:block;margin-top:24px;font-size:var(--fab-font-minimum);letter-spacing:.2em;opacity:.75}
.menu-directory{
  min-width:0;
  padding:clamp(42px,5vw,74px) clamp(36px,5.4vw,86px) 28px;
  display:flex;
  flex-direction:column;
  background:var(--paper-light);
}
.menu-directory-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,.62fr);
  gap:40px;
  align-items:end;
  padding-bottom:clamp(30px,3.5vw,48px);
  border-bottom:1px solid var(--line);
  opacity:0;
  transform:translateY(18px);
  transition:opacity .9s .18s var(--ease),transform 1s .18s var(--ease);
}
.menu-open .menu-directory-head{opacity:1;transform:none}
.menu-kicker{display:block;margin-bottom:15px;font:600 var(--fab-font-minimum)/1.4 var(--sans);letter-spacing:.26em;color:var(--brown-soft)}
.menu-directory-head h2{margin:0;font:500 max(var(--fab-font-minimum), clamp(22px,2vw,28px))/1.75 var(--serif);letter-spacing:.08em}
.menu-directory-head p{max-width:340px;margin:0 0 3px;font:400 13px/2.05 var(--serif);color:var(--brown-soft)}
.menu-directory-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,.48fr);
  gap:clamp(42px,5vw,78px);
  padding:clamp(34px,4vw,58px) 0;
}
.menu-primary{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(26px,3vw,48px)!important;text-align:left!important}
.menu-primary a{
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) 18px!important;
  align-items:center!important;
  gap:12px!important;
  min-height:82px;
  border-bottom:1px solid var(--line);
  color:var(--brown)!important;
  font:400 14px/1.6 var(--serif) !important;
  letter-spacing:.06em!important;
  opacity:0;
  transform:translateY(15px);
  transition:color .45s var(--ease),padding .45s var(--ease),opacity .8s var(--ease),transform .9s var(--ease);
}
.menu-open .menu-primary a{opacity:1;transform:none}
.menu-open .menu-primary a:nth-child(1){transition-delay:.24s}
.menu-open .menu-primary a:nth-child(2){transition-delay:.29s}
.menu-open .menu-primary a:nth-child(3){transition-delay:.34s}
.menu-open .menu-primary a:nth-child(4){transition-delay:.39s}
.menu-open .menu-primary a:nth-child(5){transition-delay:.44s}
.menu-open .menu-primary a:nth-child(6){transition-delay:.49s}
.menu-primary a:hover{color:var(--green)!important;padding-left:0}
.menu-no{font:500 var(--fab-font-minimum)/1 var(--sans);letter-spacing:.1em;color:var(--brown-soft)}
.menu-label b{display:block;font:500 15px/1.65 var(--serif);letter-spacing:.075em}
.menu-label small{display:block;margin-top:3px;font:500 var(--fab-font-minimum)/1.3 var(--sans);letter-spacing:.18em;color:var(--brown-soft)}
.menu-primary i{font:400 14px/1 var(--sans);font-style:normal;transition:transform .45s var(--ease)}
.menu-primary a:hover i{transform:translateX(4px)}
.menu-aside{opacity:0;transform:translateY(16px);transition:opacity .9s .42s var(--ease),transform 1s .42s var(--ease)}
.menu-open .menu-aside{opacity:1;transform:none}
.menu-reservation{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:"meta icon" "title icon";
  align-items:center;
  gap:5px 18px;
  padding:24px 22px;
  border:1px solid var(--brown);
  transition:background .5s var(--ease),color .5s var(--ease);
}
.menu-reservation span{grid-area:meta;font:600 var(--fab-font-minimum)/1.3 var(--sans);letter-spacing:.2em}
.menu-reservation strong{grid-area:title;font:500 16px/1.7 var(--serif);letter-spacing:.08em}
.menu-reservation i{grid-area:icon;font:400 17px/1 var(--sans);font-style:normal}
.menu-reservation:hover{background:var(--brown);color:#fff9ee}
.menu-utility-links{margin-top:26px;border-top:1px solid var(--line)}
.menu-utility-links a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);font:400 13px/1.55 var(--serif);letter-spacing:.055em}
.menu-utility-links a small{font:500 var(--fab-font-minimum)/1.2 var(--sans);letter-spacing:.16em;color:var(--brown-soft)}
.menu-contact-meta{display:grid;gap:9px;margin-top:27px;color:var(--brown-soft);font-size:var(--fab-font-minimum);line-height:1.7;letter-spacing:.08em}
.menu-contact-meta p{margin:0}
.menu-contact-meta span{display:inline-block;width:82px;font-size:var(--fab-font-minimum);letter-spacing:.18em}
.menu-contact-meta a{text-decoration:underline;text-underline-offset:3px}
.menu-footer{
  margin-top:auto;
  display:grid;
  grid-template-columns:1fr auto auto auto;
  gap:22px;
  align-items:center;
  padding-top:20px;
  border-top:1px solid var(--line);
  font-size:var(--fab-font-minimum);
  letter-spacing:.18em;
  color:var(--brown-soft);
  opacity:0;
  transition:opacity .8s .55s var(--ease);
}
.menu-open .menu-footer{opacity:1}
.menu-footer small{font-size:var(--fab-font-minimum)}
.menu-open .mobile-reserve-cta{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
@media(max-width:1040px){.menu-shell{grid-template-columns:minmax(260px,31vw) minmax(0,1fr)}
.menu-directory{padding-inline:34px}
.menu-directory-body{grid-template-columns:minmax(0,1fr) 230px;gap:34px}
.menu-primary{grid-template-columns:1fr!important}
.menu-primary a{min-height:64px}
}
@media(max-width:760px){.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(prefers-reduced-motion:reduce){.menu-visual,.menu-directory-head,.menu-primary a,.menu-aside,.menu-footer{opacity:1!important;transform:none!important;transition:none!important}
}

:root{
  --setoda-bg:#f2f0e7;
  --setoda-paper:#f8f6ef;
  --setoda-green:#164b2d;
  --setoda-green-deep:#0d3420;
  --setoda-green-light:#dfe8dd;
  --setoda-ink:#16251c;
  --setoda-muted:#667168;
  --setoda-line:rgba(22,75,45,.20);
  --setoda-yellow:#d1bd45;
  --setoda-white:#fffef8;
  --setoda-sans:"Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  --setoda-serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --setoda-ease:cubic-bezier(.22,.61,.36,1);
}
.setoda-footer{position:relative;background:#f3f1e8;color:var(--setoda-green-deep);overflow:hidden}
.setoda-footer-contact{padding:clamp(105px,12vw,180px) var(--pad) clamp(85px,10vw,145px);border-bottom:1px solid var(--setoda-line)}
.setoda-footer-contact>header{display:grid;grid-template-columns:1fr 2fr;align-items:end;width:min(100%,1540px);margin:0 auto clamp(48px,6vw,82px)}
.setoda-footer-contact>header p{margin:0;color:var(--setoda-green);font:500 11px/1.4 var(--setoda-sans);letter-spacing:.16em}
.setoda-footer-contact>header h2{margin:0;color:var(--setoda-green-deep);font:400 max(var(--fab-font-minimum), clamp(42px,5.2vw,78px))/1.2 var(--setoda-serif);letter-spacing:.025em}
.setoda-footer-contact-links{width:min(100%,1540px);margin:auto;border-top:1px solid var(--setoda-line)}
.setoda-footer-contact-links a{display:grid;grid-template-columns:70px minmax(0,1fr) auto 28px;gap:25px;align-items:center;min-height:112px;border-bottom:1px solid var(--setoda-line);transition:padding .65s var(--setoda-ease),background .65s var(--setoda-ease)}
.setoda-footer-contact-links a:hover{padding-left:18px;background:rgba(255,255,255,.45)}
.setoda-footer-contact-links span{font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.12em;color:var(--setoda-green)}
.setoda-footer-contact-links strong{font:400 max(var(--fab-font-minimum), clamp(17px,1.5vw,23px))/1.6 var(--setoda-serif);letter-spacing:.035em}
.setoda-footer-contact-links small{font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.12em;color:var(--setoda-muted)}
.setoda-footer-contact-links i{font-style:normal;font-size:19px}
.setoda-footer-body{width:min(calc(100% - (var(--pad) * 2)),1540px);margin:auto;display:grid;grid-template-columns:1.05fr .85fr 1.1fr;grid-template-areas:"brand nav actions" "social nav letter";gap:clamp(35px,5vw,82px);padding:clamp(85px,10vw,145px) 0 clamp(75px,9vw,130px)}
.setoda-footer-brand-block{grid-area:brand}
.setoda-footer-logo{font:400 max(var(--fab-font-minimum), clamp(24px,2.4vw,38px))/1.4 var(--setoda-serif);letter-spacing:.09em}
.setoda-footer-brand-block p{margin:25px 0 0;color:var(--setoda-muted);font:400 12px/1.9 var(--setoda-sans);letter-spacing:.07em}
.setoda-footer-nav{grid-area:nav;display:grid;align-content:start;gap:14px}
.setoda-footer-nav a{width:max-content;font:400 14px/1.7 var(--setoda-serif);letter-spacing:.05em}
.setoda-footer-actions{grid-area:actions;display:grid;align-self:start;border-top:1px solid var(--setoda-line)}
.setoda-footer-action{display:flex;align-items:center;justify-content:space-between;min-height:78px;border-bottom:1px solid var(--setoda-line);font:500 13px/1.5 var(--setoda-sans);letter-spacing:.1em}
.setoda-footer-action i{font-style:normal;font-size:18px}
.setoda-footer-action-primary{color:#fff;background:var(--setoda-green);padding:0 24px;border:0;margin-bottom:12px}
.setoda-footer-social{grid-area:social;align-self:end;display:flex;gap:23px;align-items:center;font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.12em}
.setoda-footer-social span{color:var(--setoda-muted)}
.setoda-footer-letter{grid-area:letter;align-self:end;display:flex;justify-content:space-between;align-items:end;padding:26px 0;border-top:1px solid var(--setoda-line);border-bottom:1px solid var(--setoda-line)}
.setoda-footer-letter span{font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.16em;color:var(--setoda-green)}
.setoda-footer-letter h3{margin:9px 0 5px;font:400 20px/1.5 var(--setoda-serif);letter-spacing:.05em}
.setoda-footer-letter p{margin:0;color:var(--setoda-muted);font:400 11px/1.7 var(--setoda-sans);letter-spacing:.04em}
.setoda-footer-letter>a{font-size:22px}
.setoda-footer-phrase{width:max-content;border-top:1px solid var(--setoda-line);border-bottom:1px solid var(--setoda-line);padding:24px 0 30px;overflow:hidden}
.setoda-footer-phrase div{font:400 max(var(--fab-font-minimum), clamp(60px,9.7vw,154px))/1 var(--setoda-serif);letter-spacing:-.025em;white-space:nowrap;animation:setodaFooterFlow 38s linear infinite}
@keyframes setodaFooterFlow{to{transform:translateX(-50%)}}
.setoda-footer-bottom{display:flex;justify-content:space-between;gap:25px;width:min(calc(100% - (var(--pad) * 2)),1540px);margin:auto;padding:26px 0 34px;color:var(--setoda-muted);font:500 var(--fab-font-minimum)/1.5 var(--setoda-sans);letter-spacing:.12em}
.setoda-footer-bottom div{display:flex;gap:25px}
@media(max-width:1040px){.setoda-footer-body{grid-template-columns:1fr 1fr;grid-template-areas:"brand actions" "nav letter" "social social"}
}
@media(max-width:760px){.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(prefers-reduced-motion:reduce){.setoda-footer-phrase div{animation:none!important}
}

:root{
  --setoda-frame:1540px;
  --setoda-frame-narrow:1180px;
  --setoda-footer:#095319;
  --setoda-footer-deep:#064412;
  --setoda-footer-text:#f1f3e8;
}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.setoda-reservation-inner,
.setoda-footer-directory,
.setoda-footer-bottom{
  width:min(calc(100% - (var(--pad) * 2)),var(--setoda-frame));
  margin-inline:auto;
}

.setoda-reservation{padding:clamp(105px,11vw,165px) 0 clamp(115px,12vw,180px);background:#f2f0e7;color:var(--setoda-green-deep);border-top:1px solid var(--setoda-line)}
.setoda-reservation-head{display:grid;grid-template-columns:1fr 2fr;align-items:end;margin-bottom:clamp(42px,5vw,70px)}
.setoda-reservation-head p{margin:0;color:var(--setoda-green);font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.17em}
.setoda-reservation-head h2{margin:0;font:400 max(var(--fab-font-minimum), clamp(38px,4.5vw,64px))/1.25 var(--setoda-serif);letter-spacing:.035em}
.setoda-reservation-card{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:clamp(35px,6vw,100px);align-items:center;min-height:290px;padding:clamp(38px,5vw,72px);overflow:hidden;border:1px solid var(--setoda-line);background:var(--setoda-paper);transition:transform .75s var(--setoda-ease),box-shadow .75s var(--setoda-ease),background .75s var(--setoda-ease),color .75s var(--setoda-ease)}
.setoda-reservation-card::before{content:"";position:absolute;right:-90px;top:-120px;width:360px;height:360px;border:1px solid rgba(22,75,45,.16);border-radius:50%;transition:transform 1s var(--setoda-ease)}
.setoda-reservation-card:hover{transform:translateY(-7px);box-shadow:0 28px 75px rgba(13,52,32,.13);background:var(--setoda-green-deep);color:#fff}
.setoda-reservation-card:hover::before{transform:scale(1.18)}
.setoda-reservation-copy{position:relative;z-index:1}
.setoda-reservation-copy>span{display:block;margin-bottom:22px;color:var(--setoda-green);font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.2em;transition:color .6s ease}
.setoda-reservation-copy h3{margin:0 0 18px;font:400 max(var(--fab-font-minimum), clamp(27px,3vw,43px))/1.55 var(--setoda-serif);letter-spacing:.045em}
.setoda-reservation-copy p{margin:0;color:var(--setoda-muted);font:400 max(var(--fab-font-minimum), clamp(14px,1vw,16px))/2 var(--setoda-serif);transition:color .6s ease}
.setoda-reservation-card:hover .setoda-reservation-copy>span{color:#d8cb69}
.setoda-reservation-card:hover .setoda-reservation-copy p{color:rgba(255,255,255,.74)}
.setoda-reservation-action{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 25px;align-items:center;padding:28px 0 28px 30px;border-left:1px solid var(--setoda-line)}
.setoda-reservation-action small{font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.17em;color:var(--setoda-muted)}
.setoda-reservation-action strong{font:500 15px/1.5 var(--setoda-serif);letter-spacing:.07em}
.setoda-reservation-action i{grid-column:2;grid-row:1/3;display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:var(--setoda-yellow);color:var(--setoda-green-deep);font-style:normal;font-size:24px;transition:transform .65s var(--setoda-ease)}
.setoda-reservation-card:hover .setoda-reservation-action{border-color:rgba(255,255,255,.25)}
.setoda-reservation-card:hover .setoda-reservation-action small{color:rgba(255,255,255,.62)}
.setoda-reservation-card:hover .setoda-reservation-action i{transform:rotate(45deg) scale(1.07)}
.setoda-reservation-sub{display:flex;justify-content:flex-end;gap:35px;margin-top:28px}
.setoda-reservation-sub a{display:flex;align-items:center;gap:28px;padding-bottom:9px;border-bottom:1px solid var(--setoda-line);font:500 11px/1.4 var(--setoda-sans);letter-spacing:.11em}
.setoda-reservation-sub i{font-style:normal}

.setoda-footer{background:var(--setoda-footer);color:var(--setoda-footer-text)}
.setoda-footer-main{position:relative;overflow:hidden;background:var(--setoda-footer)}
.setoda-footer-main::before,.setoda-footer-main::after{content:"";position:absolute;pointer-events:none;border:1px solid rgba(188,220,192,.13);border-radius:50%}
.setoda-footer-main::before{left:-28vw;top:17%;width:78vw;height:82vw;transform:rotate(-24deg)}
.setoda-footer-main::after{right:-25vw;top:26%;width:86vw;height:73vw;transform:rotate(18deg)}
.setoda-footer-directory{position:relative;z-index:2;display:grid;grid-template-columns:.95fr .95fr .85fr 1.25fr;gap:clamp(35px,5vw,88px);padding:clamp(75px,8vw,125px) 0 clamp(65px,7vw,105px)}
.setoda-footer-nav{display:grid;align-content:start;gap:13px}
.setoda-footer-nav a,.setoda-footer-social a{width:max-content;color:var(--setoda-footer-text);font:400 14px/1.7 var(--setoda-serif);letter-spacing:.055em;transition:opacity .35s ease,transform .35s ease}
.setoda-footer-nav a:hover,.setoda-footer-social a:hover{opacity:.72;transform:translateX(4px)}
.setoda-footer-social{display:grid;align-content:start;gap:14px}
.setoda-footer-letter{align-self:start}
.setoda-footer-letter figure{height:155px;margin:0 0 30px;overflow:hidden;border-radius:2px}
.setoda-footer-letter figure img{width:100%;height:100%;object-fit:cover}
.setoda-footer-letter>div>span{font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);letter-spacing:.17em;color:#b8cab8}
.setoda-footer-letter h3{margin:13px 0 17px;color:var(--setoda-footer-text);font:400 20px/1.55 var(--setoda-serif);letter-spacing:.055em}
.setoda-footer-letter p{margin:0 0 24px;color:#b8cab8;font:400 12px/1.85 var(--setoda-sans);letter-spacing:.04em}
.setoda-footer-letter-form{display:grid;grid-template-columns:1fr auto;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.08)}
.setoda-footer-letter-form input{min-width:0;height:48px;padding:0 16px;border:0;background:transparent;color:#fff;outline:none;font:400 12px var(--setoda-sans)}
.setoda-footer-letter-form input::placeholder{color:rgba(255,255,255,.48)}
.setoda-footer-letter-form button{width:64px;border:0;background:#f4f5ed;color:var(--setoda-footer-deep);cursor:pointer;font:500 12px var(--setoda-serif);transition:background .35s ease}
.setoda-footer-letter-form button:hover{background:var(--setoda-yellow)}
.setoda-footer-phrase{position:relative;z-index:2;height:clamp(390px,42vw,640px);border-top:1px solid rgba(255,255,255,.13)}
.setoda-footer-phrase span{position:absolute;color:var(--setoda-footer-text);font:400 max(var(--fab-font-minimum), clamp(34px,4.5vw,70px))/1.25 var(--setoda-serif);letter-spacing:.06em;white-space:nowrap}
.setoda-footer-phrase-one{left:var(--pad);top:18%}
.setoda-footer-phrase-two{left:50%;top:43%;transform:translateX(-50%)}
.setoda-footer-phrase-three{right:var(--pad);top:68%}
.setoda-footer-bottom{position:relative;z-index:2;display:flex;justify-content:space-between;gap:30px;padding:25px 0 34px;color:#adc0af;border-top:1px solid rgba(255,255,255,.13);font:500 var(--fab-font-minimum)/1.5 var(--setoda-sans);letter-spacing:.11em}
.setoda-footer-bottom div{display:flex;gap:28px}
@media(max-width:1040px){.setoda-footer-directory{grid-template-columns:1fr 1fr;grid-template-areas:"nav1 nav2" "social letter"}
.setoda-footer-nav-primary{grid-area:nav1}
.setoda-footer-nav-secondary{grid-area:nav2}
.setoda-footer-social{grid-area:social}
.setoda-footer-letter{grid-area:letter}
}
@media(max-width:760px){.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:430px){.setoda-footer-directory{grid-template-columns:1fr;grid-template-areas:"nav1" "nav2" "social" "letter"}
.setoda-footer-phrase span{font-size:24px;letter-spacing:.035em}
}
.setoda-footer-directory>.setoda-footer-nav,
.setoda-footer-directory>.setoda-footer-social,
.setoda-footer-directory>.setoda-footer-letter{grid-area:auto}
.setoda-footer-directory>.setoda-footer-letter{display:block}
.setoda-footer-phrase{width:100%;max-width:none;margin:0;padding:0;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.13)}
@media(max-width:1040px){.setoda-footer-directory>.setoda-footer-nav-primary{grid-area:nav1}
.setoda-footer-directory>.setoda-footer-nav-secondary{grid-area:nav2}
.setoda-footer-directory>.setoda-footer-social{grid-area:social}
.setoda-footer-directory>.setoda-footer-letter{grid-area:letter}
}

.setoda-reservation-head{display:block;text-align:center;margin-bottom:clamp(42px,5vw,70px)}
.setoda-reservation-head p{margin:0 0 17px;text-align:center}
.setoda-reservation-head h2{text-align:center}

.setoda-footer-main::before,.setoda-footer-main::after{display:none!important}
.setoda-footer-bridge{position:absolute;z-index:1;left:0;top:5%;width:100%;height:82%;pointer-events:none;overflow:visible}
.setoda-footer-bridge path{fill:none;vector-effect:non-scaling-stroke;stroke:rgba(194,220,194,.13);stroke-width:1.2}
.setoda-footer-bridge .setoda-bridge-deck{stroke:rgba(194,220,194,.11)}
.setoda-footer-bridge .setoda-bridge-hangers path{stroke:rgba(194,220,194,.085);stroke-width:.8}
.setoda-footer-directory,.setoda-footer-phrase,.setoda-footer-bottom{position:relative;z-index:2}
.setoda-footer-phrase{height:clamp(330px,36vw,550px)}
.setoda-footer-phrase span{font-size:max(var(--fab-font-minimum), clamp(32px,4.25vw,66px));line-height:1.32;letter-spacing:.055em}
.setoda-footer-phrase-one{left:var(--pad);top:24%}
.setoda-footer-phrase-two{left:auto;right:var(--pad);top:58%;transform:none}
@media(max-width:760px){.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}
}

.setoda-footer-main{
  isolation:isolate;
  background:
    radial-gradient(ellipse at 16% 42%,rgba(72,111,83,.38) 0%,rgba(72,111,83,.18) 26%,rgba(72,111,83,0) 58%),
    radial-gradient(ellipse at 84% 82%,rgba(32,91,96,.48) 0%,rgba(32,91,96,.20) 34%,rgba(32,91,96,0) 68%),
    radial-gradient(circle at 76% 12%,rgba(211,220,184,.14) 0%,rgba(211,220,184,0) 32%),
    linear-gradient(155deg,#476f64 0%,#38645c 28%,#285a54 55%,#174d4c 78%,#0a3f43 100%);
}
.setoda-footer-main::before{
  content:"";display:block!important;position:absolute;z-index:0;inset:0;width:auto;height:auto;pointer-events:none;
  border:0;border-radius:0;transform:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
  background-size:240px 240px;background-repeat:repeat;opacity:.15;mix-blend-mode:soft-light;
}
.setoda-footer-main::after{display:none!important}
.setoda-footer-bridge{display:none!important}
.setoda-footer-directory,.setoda-footer-phrase{position:relative;z-index:2;background:transparent}
.setoda-footer-bottom{position:relative;z-index:2}

.setoda-footer-bridge{
  display:block!important;
  position:absolute;
  z-index:1;
  left:0;
  top:6%;
  width:100%;
  height:80%;
  pointer-events:none;
  overflow:visible;
  opacity:1;
}
.setoda-footer-bridge path{
  fill:none;
  vector-effect:non-scaling-stroke;
  stroke:rgba(226,235,218,.15);
  stroke-width:1.15;
}
.setoda-footer-bridge .setoda-bridge-deck{
  stroke:rgba(226,235,218,.12);
}
.setoda-footer-bridge .setoda-bridge-hangers path{
  stroke:rgba(226,235,218,.095);
  stroke-width:.8;
}
.setoda-footer-directory,.setoda-footer-phrase,.setoda-footer-bottom{
  position:relative;
  z-index:2;
}
@media(max-width:760px){.setoda-footer-bridge{
    left:-22.5%;
    top:14%;
    width:145%;
    height:70%;
  }
}

.header .logo{
  justify-self:start;
  position:relative;
  display:block;
  width:130px!important;
  max-width:130px;
  line-height:0;
}
.header .logo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  transition:opacity .55s var(--ease),visibility .55s var(--ease);
}
.header .logo-light{opacity:1;visibility:visible}
.header .logo-dark{position:absolute;inset:0;opacity:0;visibility:hidden}
.header.scrolled .logo-light{opacity:0;visibility:hidden}
.header.scrolled .logo-dark{opacity:1;visibility:visible}
@media(max-width:760px){.header .logo{width:118px!important;max-width:118px}
}
.setoda-reservation{
  background:#eee9dd!important;
}

.skip-link{position:fixed;z-index:1000;left:16px;top:12px;padding:10px 14px;background:#fffdf8;color:#482d12;border:1px solid rgba(72,45,18,.28);transform:translateY(-160%);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.setoda-reservation{content-visibility:auto;contain-intrinsic-size:900px}











@media(max-width:760px){
}
.international-header-link .nav-icon svg{stroke-width:1.35}


.header-link{
  position:relative;
  isolation:isolate;
  transition:transform .72s var(--ease),opacity .72s var(--ease),color .72s var(--ease);
}
.header-link::after{
  content:"";
  position:absolute;
  left:9px;
  right:9px;
  bottom:5px;
  height:1px;
  background:currentColor;
  opacity:.72;
  transform:scaleX(0);
  transform-origin:right center;
  transition:transform .82s var(--ease),opacity .72s var(--ease);
  pointer-events:none;
}
.header-link > span:last-child{
  display:inline-block;
  transition:transform .72s var(--ease),opacity .72s var(--ease);
}
.header-link .nav-icon{
  transition:transform .72s var(--ease),opacity .72s var(--ease);
}
@media(hover:hover){.header-link:hover,
  .header-link:focus-visible{transform:translateY(-1px)}
.header-link:hover::after,
  .header-link:focus-visible::after{transform:scaleX(1);transform-origin:left center;opacity:1}
.header-link:hover > span:last-child,
  .header-link:focus-visible > span:last-child{transform:translateX(2px)}
.header-link:hover .nav-icon,
  .header-link:focus-visible .nav-icon{transform:translateY(-1px) scale(1.035)}
.menu-panel nav > a .menu-label,
  .menu-utility-links a > span{
    display:inline-block;
    transition:transform .78s var(--ease),color .78s var(--ease),opacity .78s var(--ease);
  }
.menu-panel nav > a i,
  .menu-utility-links a small{
    transition:transform .78s var(--ease),color .78s var(--ease),opacity .78s var(--ease);
  }
.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:translateX(6px);color:var(--lemon)}
.menu-panel nav > a:hover i,
  .menu-panel nav > a:focus-visible i{transform:translateX(5px)}
.menu-utility-links a:hover small,
  .menu-utility-links a:focus-visible small{transform:translateX(3px);opacity:1}
}
@media(prefers-reduced-motion:reduce){.header-link,
  .header-link::after,
  .header-link > span:last-child,
  .header-link .nav-icon,
  .menu-panel nav > a .menu-label,
  .menu-panel nav > a i,
  .menu-utility-links a > span,
  .menu-utility-links a small{transition:none!important}
}


:root{
  --fab-content-image-radius: 10px;
}

.setoda-footer-letter figure{
  border-radius:var(--fab-content-image-radius);
  overflow:hidden;
  isolation:isolate;
}

.setoda-footer-letter figure > img{
  border-radius:inherit;
}
@media(max-width:760px){:root{
    --fab-content-image-radius:8px;
  }
}


.setoda-reservation-card{
  border-radius:var(--fab-content-image-radius);
}

.setoda-footer-letter-form{
  border-radius:var(--fab-content-image-radius);
  overflow:hidden;
  isolation:isolate;
}
@media(max-width:760px){.setoda-reservation-card,
.setoda-footer-letter-form{
    border-radius:var(--fab-content-image-radius);
  }
}


:root{
  --fab-interface-radius:4px;
}

.setoda-reservation-card,
.setoda-footer-letter-form{
  border-radius:var(--fab-interface-radius);
}
@media(max-width:760px){:root{
    --fab-interface-radius:3px;
  }
.setoda-reservation-card,
.setoda-footer-letter-form{
    border-radius:var(--fab-interface-radius);
  }
}


:root{
  --fab-header-height:76px;
}



.setoda-footer-directory.setoda-footer-directory-sketch{
  position:relative;
  z-index:2;
  width:min(90vw,var(--setoda-frame));
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(190px,250px) minmax(0,1fr);
  grid-template-areas:none;
  gap:clamp(34px,4.5vw,76px);
  align-items:start;
  padding:clamp(76px,8vw,124px) 0 clamp(70px,7vw,108px);
}
.setoda-footer-profile{
  display:grid;
  align-content:start;
  justify-items:start;
  gap:25px;
}
.setoda-footer-stamp{
  display:grid;
  place-content:center;
  width:112px;
  aspect-ratio:1.36/1;
  border:1px solid rgba(241,243,232,.48);
  border-radius:4px;
  color:var(--setoda-footer-text);
  text-align:center;
  transition:background .45s ease,color .45s ease,border-color .45s ease;
}
.setoda-footer-stamp span{
  font:400 19px/1 var(--setoda-serif);
  letter-spacing:.12em;
}
.setoda-footer-stamp small{
  margin-top:8px;
  color:rgba(241,243,232,.62);
  font:500 var(--fab-font-minimum)/1 var(--setoda-sans);
  letter-spacing:.24em;
}
.setoda-footer-stamp:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(241,243,232,.76);
}
.setoda-footer-address{
  display:grid;
  gap:8px;
  color:var(--setoda-footer-text);
  font-style:normal;
}
.setoda-footer-address b{
  font:400 12px/1.6 var(--setoda-serif);
  letter-spacing:.08em;
}
.setoda-footer-address span{
  color:rgba(241,243,232,.68);
  font:400 11px/1.85 var(--setoda-serif);
  letter-spacing:.055em;
}
.setoda-footer-booking{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  width:100%;
  min-height:72px;
  padding:15px 16px;
  border:1px solid rgba(241,243,232,.42);
  border-radius:4px;
  color:var(--setoda-footer-text);
  transition:background .45s ease,color .45s ease,border-color .45s ease,transform .45s ease;
}
.setoda-footer-booking small{
  grid-column:1/-1;
  margin-bottom:3px;
  color:rgba(241,243,232,.55);
  font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);
  letter-spacing:.18em;
}
.setoda-footer-booking span{
  font:400 14px/1.5 var(--setoda-serif);
  letter-spacing:.08em;
}
.setoda-footer-booking i{
  font-style:normal;
  font-size:15px;
}
.setoda-footer-booking:hover{
  transform:translateY(-2px);
  background:#f1f3e8;
  border-color:#f1f3e8;
  color:var(--setoda-footer-deep);
}
.setoda-footer-booking:hover small{color:rgba(6,68,18,.58)}
.setoda-footer-menu-block{
  min-width:0;
}
.setoda-footer-menu-heading{
  display:flex;
  align-items:baseline;
  gap:18px;
  margin-bottom:clamp(27px,3vw,42px);
}
.setoda-footer-menu-heading span{
  color:rgba(241,243,232,.50);
  font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans);
  letter-spacing:.19em;
}
.setoda-footer-menu-heading h3{
  margin:0;
  color:var(--setoda-footer-text);
  font:400 max(var(--fab-font-minimum), clamp(18px,1.55vw,24px))/1.5 var(--setoda-serif);
  letter-spacing:.065em;
}
.setoda-footer-feature-links{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.45vw,22px);
  margin-bottom:clamp(34px,4vw,52px);
}
.setoda-footer-feature-links a{
  min-width:0;
  color:var(--setoda-footer-text);
}
.setoda-footer-feature-links figure{
  aspect-ratio:1.48/1;
  margin:0 0 13px;
  overflow:hidden;
  border-radius:4px;
  background:rgba(255,255,255,.08);
}
.setoda-footer-feature-links img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.86) brightness(.88);
  transition:transform 1.15s var(--setoda-ease),filter .75s ease;
}
.setoda-footer-feature-links span{
  display:inline-block;
  padding-bottom:5px;
  border-bottom:1px solid transparent;
  font:400 max(var(--fab-font-minimum), clamp(11px,.85vw,14px))/1.75 var(--setoda-serif);
  letter-spacing:.045em;
  transition:border-color .4s ease,transform .4s ease;
}
.setoda-footer-feature-links a:hover img{
  transform:scale(1.045);
  filter:saturate(1) brightness(.98);
}
.setoda-footer-feature-links a:hover span{
  border-color:rgba(241,243,232,.46);
  transform:translateX(3px);
}
.setoda-footer-utility-area{
  display:grid;
  gap:18px;
}
.setoda-footer-text-links{
  display:flex;
  flex-wrap:wrap;
  gap:9px clamp(20px,2.2vw,38px);
}
.setoda-footer-text-links a,
.setoda-footer-instagram{
  width:max-content;
  color:var(--setoda-footer-text);
  font:400 13px/1.75 var(--setoda-serif);
  letter-spacing:.055em;
  transition:opacity .35s ease,transform .35s ease;
}
.setoda-footer-text-links a:hover,
.setoda-footer-instagram:hover{
  opacity:.72;
  transform:translateX(3px);
}
.setoda-footer-instagram{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:2px;
}
.setoda-footer-instagram span{
  font-size:14px;
}
.setoda-footer-legal{
  display:flex;
  flex-wrap:wrap;
  gap:7px 20px;
  margin-top:5px;
}
.setoda-footer-legal a{
  width:max-content;
  color:rgba(241,243,232,.43);
  font:500 var(--fab-font-minimum)/1.6 var(--setoda-sans);
  letter-spacing:.085em;
  transition:color .35s ease;
}
.setoda-footer-legal a:hover{
  color:rgba(241,243,232,.68);
}
.setoda-footer-bottom>div{
  justify-content:flex-end;
}
@media(max-width:1120px){.setoda-footer-directory.setoda-footer-directory-sketch{
    grid-template-columns:minmax(170px,220px) minmax(0,1fr);
    gap:36px;
  }
.setoda-footer-feature-links{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px 18px;
  }
}
@media(max-width:760px){.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:430px){.setoda-footer-profile{
    grid-template-columns:88px 1fr;
    column-gap:18px;
  }
.setoda-footer-stamp{
    width:88px;
  }
.setoda-footer-booking{
    grid-column:1/-1;
    max-width:none;
  }
.setoda-footer-feature-links{
    gap:21px 10px;
  }
.setoda-footer-feature-links figure{
    aspect-ratio:1.25/1;
  }
.setoda-footer-text-links{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
.setoda-footer-legal{
    display:grid;
    gap:8px;
  }
}


.setoda-footer-brand-logo{
  display:block;
  width:min(178px,100%);
  line-height:0;
}
.setoda-footer-brand-logo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.setoda-footer-menu-heading{
  display:block;
}
.setoda-footer-instagram svg{
  display:block;
  width:15px;
  height:15px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.setoda-footer-instagram span{
  font:inherit;
}
.setoda-footer-legal{
  justify-content:flex-end;
}
@media(max-width:760px){.setoda-footer-brand-logo{width:150px;}
}

.ct-mail-note{margin:18px 0 0;color:var(--brown-soft,#73563b);font-size:max(var(--fab-font-minimum),11px);line-height:1.95;letter-spacing:.035em}.ct-mail-note::before{content:"※ ";}@media(max-width:760px){.ct-mail-note{margin-top:14px;font-size:12px;line-height:2}}


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














































































































.si-journeys{position:relative;padding:clamp(120px,10.42vw,200px) 0;background:var(--paper,#f4f0e7);color:var(--si-ink);border-top:1px solid var(--si-line)}
.si-journeys-inner{width:min(calc(100% - var(--pad)*2),1540px);margin-inline:auto}
.si-journeys-head{margin-bottom:clamp(42px,3.65vw,70px)}
.si-journeys-head>p{color:var(--brown-soft);font:500 var(--fab-font-minimum)/1.4 var(--sans);letter-spacing:.18em}
.si-journey-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.si-journey-card{position:relative;min-height:540px;overflow:hidden;border-radius:2px;background:var(--setoda-green-deep,#06351f);color:#fffdf8}
.si-journey-card figure,.si-journey-card figure::after{position:absolute;inset:0}
.si-journey-card figure{margin:0;overflow:hidden}
.si-journey-card figure::after{content:"";background:linear-gradient(180deg,rgba(5,29,17,.04) 24%,rgba(5,29,17,.67) 100%);transition:background .9s var(--ease)}
.si-journey-card img{transition:transform 1.5s var(--ease),filter 1.1s var(--ease)}
.si-journey-copy{position:absolute;z-index:2;inset:auto clamp(28px,3.13vw,60px) clamp(28px,3.13vw,60px)}
.si-journey-copy small{display:block;margin-bottom:18px;color:rgba(255,253,248,.68);font:500 var(--fab-font-minimum)/1.4 var(--sans);letter-spacing:.19em}
.si-journey-copy h3{max-width:calc(100% - 58px);font:400 max(var(--fab-font-minimum), clamp(24px,1.67vw,32px))/1.55 var(--serif);letter-spacing:.055em}
.si-journey-copy i{position:absolute;right:0;bottom:0;display:grid;width:62px;height:62px;place-items:center;border:1px solid rgba(255,255,255,.52);border-radius:50%;font-style:normal;font-size:20px;transition:transform .7s var(--ease),background .7s var(--ease),color .7s var(--ease)}
@media(hover:hover){
  .si-journey-card:hover img{transform:scale(1.045);filter:saturate(1.05)}
  .si-journey-card:hover figure::after{background:linear-gradient(180deg,rgba(5,29,17,.01) 18%,rgba(5,29,17,.76) 100%)}
  .si-journey-card:hover .si-journey-copy i{transform:rotate(45deg);background:var(--lemon,#d8cb69);color:var(--setoda-green-deep,#06351f)}
}
@media(max-width:1919px){
  
}
@media(max-width:1040px){
  body{font-size:14px;line-height:1.95}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  .si-journeys{padding:clamp(105px,11.54vw,120px) 0}
  .si-journeys-head{margin-bottom:50px}
  .si-journey-grid{grid-template-columns:1fr;gap:18px}
  .si-journey-time,.si-journey-island,.si-journey-about{grid-column:1;min-height:460px;margin:0}
}
@media(max-width:980px){
  
}
@media(max-width:760px){
  :root{--pad:20px}
  body{font-size:14px}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .si-journeys{padding:92px 0 105px}
  .si-journeys-inner{width:calc(100% - 40px)}
  .si-journeys-head{margin-bottom:38px}
  .si-journey-grid{grid-template-columns:1fr;gap:14px}
  .si-journey-time,.si-journey-island,.si-journey-about{grid-column:1;min-height:420px;margin:0}
  .si-journey-copy{inset:auto 23px 25px}
  .si-journey-copy h3{max-width:calc(100% - 50px);font-size:27px}
  .si-journey-copy i{width:48px;height:48px;font-size:17px}
}
@media(max-width:430px){
  
  
  
  .si-journey-time,.si-journey-island,.si-journey-about{min-height:390px}
}
@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;
}





.si-journeys-head>p{
  color:var(--brown-soft);
  font-family:var(--sans);
  line-height:1.5;
  letter-spacing:.24em;
}




















.si-journey-copy small{
  font-family:var(--sans);
  line-height:1.4;
  letter-spacing:.19em;
}
.si-journey-copy h3{
  font-family:var(--serif);
  line-height:1.62;
  letter-spacing:.07em;
}




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


/* v44 style block 4: contact-page */


:root{
  --ct-space-scale:1;
  --ct-paper:var(--paper,#f4f0e7);
  --ct-ink:var(--ink,#2d241d);
  --ct-muted:var(--brown-soft,#73563b);
  --ct-border:rgba(72,45,18,.28);
  --ct-field:rgba(255,255,255,.58);
  --ct-error:#a33d34;
}
body{overflow-x:clip;background:var(--ct-paper);color:var(--ct-ink)}
.ct-header-slot{height:5rem;background:var(--ct-paper)}
.ct-stage{position:relative;width:100%;overflow:visible;background:var(--ct-paper)}
.ct-page{
  position:relative;width:120rem;transform-origin:0 0;
  overflow:hidden;background:var(--ct-paper);color:var(--ct-ink)
}
.ct-page,.ct-page *{box-sizing:border-box}
.ct-main{position:relative;width:120rem;background:var(--ct-paper)}
.ct-page-head h1{
  position:absolute;left:9.375rem;top:13.75rem;margin:0;color:var(--brown);
  font:400 72px/1.82 var(--serif);letter-spacing:.078em
}
.ct-page-en{
  position:absolute;left:9.375rem;top:21.875rem;display:flex;align-items:center;gap:1.0625rem;
  margin:0;color:var(--ct-muted);font:400 20px/1.8 var(--sans);letter-spacing:.07em
}
.ct-page-en i{display:block;flex:0 0 1.875rem;width:1.875rem;height:1px;background:currentColor}
.ct-content{width:72.25rem;margin-left:23.875rem;padding-top:30.875rem}
.ct-lead{
  margin:0;color:var(--ct-ink);
  font:400 15px/2.3333333333 var(--serif);letter-spacing:.075em
}
.ct-lead a{
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;
  transition:color .45s var(--ease)
}
.ct-special-consultation{
  display:grid;
  grid-template-columns:11.5rem minmax(0,1fr);
  gap:2.25rem;
  align-items:start;
  width:100%;
  max-width:none;
  margin-top:3.25rem;
  padding:1.75rem 0;
  border-top:1px solid var(--ct-border);
  border-bottom:1px solid var(--ct-border);
}
.ct-special-label{
  margin:0;
  color:var(--ct-muted);
  font:500 12px/2 var(--serif);
  letter-spacing:.085em;
}
.ct-special-body{
  width:100%;
  max-width:none;
  margin:0;
  color:var(--ct-muted);
  font:400 14px/2.2 var(--serif);
  letter-spacing:.045em;
}
.ct-form{margin-top:4.5rem;padding-bottom:15.625rem}
.ct-label-row{display:flex;align-items:center;min-height:1.8125rem}
.ct-label-row label{
  display:inline-block;color:var(--ct-ink);
  font:400 18px/1.8125rem var(--serif);letter-spacing:.1em
}
.ct-required{
  display:grid;place-items:center;width:2.9375rem;height:1.8125rem;margin-left:1.25rem;
  border:1px solid #ef6b63;border-radius:.1875rem;color:#e95049;
  font:400 11px/1 var(--serif);letter-spacing:.08em
}
.ct-control{
  display:block;width:100%;height:3.8125rem;margin-top:1.25rem;padding:0 1.75rem;
  border:1px solid var(--ct-border);border-radius:.25rem;background:var(--ct-field);
  color:var(--ct-ink);outline:none;
  font:400 14px/1.8 var(--serif);letter-spacing:.08em;
  transition:border-color .45s var(--ease),background-color .45s var(--ease),box-shadow .45s var(--ease)
}
textarea.ct-control{
  height:16.125rem;padding-top:1.375rem;padding-bottom:1.375rem;resize:vertical;
  min-height:10rem
}
.ct-control::placeholder{color:rgba(45,36,29,.38);opacity:1}
.ct-control:hover{border-color:rgba(72,45,18,.5)}
.ct-control:focus{
  border-color:var(--brown);background:rgba(255,255,255,.76);
  box-shadow:0 0 0 3px rgba(72,45,18,.09)
}
.ct-control[aria-invalid="true"]{border-color:var(--ct-error)}
.ct-field+.ct-field{margin-top:3.125rem}
.ct-error{
  display:none;margin:.625rem 0 0;color:var(--ct-error);
  font:400 13px/1.8 var(--serif);letter-spacing:.045em
}
.ct-error.is-visible{display:block}
.ct-consent-block{margin-top:4.375rem}
.ct-consent{
  display:flex;justify-content:center;align-items:center;gap:1.25rem;
  width:max-content;max-width:100%;margin-inline:auto;cursor:pointer
}
.ct-consent input{
  appearance:none;display:grid;place-items:center;flex:0 0 1.875rem;
  width:1.875rem;height:1.875rem;margin:0;border:1px solid var(--ct-ink);
  border-radius:.25rem;background:rgba(255,255,255,.5);cursor:pointer;
  transition:background-color .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)
}
.ct-consent input::before{
  content:"";width:.75rem;height:.4375rem;border-left:2px solid #fff;border-bottom:2px solid #fff;
  opacity:0;transform:translateY(-.0625rem) rotate(-45deg) scale(.7);
  transition:opacity .25s ease,transform .25s ease
}
.ct-consent input:checked{border-color:var(--brown);background:var(--brown)}
.ct-consent input:checked::before{opacity:1;transform:translateY(-.0625rem) rotate(-45deg) scale(1)}
.ct-consent input:focus-visible{outline:2px solid var(--lemon);outline-offset:.25rem}
.ct-consent span{font:400 14px/1.5 var(--serif);letter-spacing:.08em}
.ct-consent a{
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;
  transition:color .45s var(--ease)
}
.ct-consent-block .ct-error{width:max-content;max-width:100%;margin-inline:auto}
.ct-submit{
  position:relative;display:grid;place-items:center;width:29.8125rem;height:7.125rem;margin:6.25rem auto 0;
  padding:0;border:0;border-radius:.25rem;background:var(--setoda-green-deep,#173d27);color:#fff;
  cursor:pointer;font:400 18px/1.5 var(--serif);letter-spacing:.14em;
  transition:background-color .55s var(--ease),color .55s var(--ease),transform .55s var(--ease),box-shadow .55s var(--ease)
}
.ct-submit i{position:absolute;right:3.125rem;font:400 25px/1 var(--sans);font-style:normal;transition:transform .55s var(--ease)}
.ct-form-status{
  display:none;margin:1.25rem auto 0;text-align:center;color:var(--ct-muted);
  font:400 14px/2 var(--serif);letter-spacing:.05em
}
.ct-form-status.is-visible{display:block}
@media(hover:hover){
  .ct-lead a:hover,.ct-consent a:hover{color:var(--lemon)}
  .ct-submit:hover{
    background:var(--lemon);color:var(--brown);transform:translateY(-.1875rem);
    box-shadow:0 1.25rem 3.125rem rgba(35,22,12,.14)
  }
  .ct-submit:hover i{transform:translateX(.375rem)}
}
.ct-reveal{opacity:0;transform:translateY(1.5rem);filter:blur(.125rem);transition:opacity 1.15s var(--ease),transform 1.15s var(--ease),filter 1.15s var(--ease)}
.ct-reveal.is-visible{opacity:1;transform:none;filter:none}

@media(max-width:1040px){
  :root{--ct-space-scale:.65}
  .ct-header-slot{height:5rem}
  .ct-page,.ct-main{width:100%}
  .ct-main{padding:clamp(7.5rem,12vw,9.375rem) 1.25rem 0}
  .ct-page-head h1,.ct-page-en{position:relative;left:auto;top:auto}
  .ct-page-head h1{font-size:max(var(--fab-font-minimum), clamp(31px,8.4vw,48px));line-height:1.55;letter-spacing:.068em}
  .ct-page-en{margin-top:calc(1.625rem * var(--ct-space-scale));font-size:11px;letter-spacing:.08em}
  .ct-page-en i{flex-basis:1.875rem;width:1.875rem}
  .ct-content{
    width:100%;margin-left:0;padding-top:0;
    margin-top:calc(8.125rem * var(--ct-space-scale))
  }
  .ct-lead{font-size:14px;line-height:2.25}
  .ct-special-consultation{
    grid-template-columns:9.5rem minmax(0,1fr);
    gap:1.5rem;
    max-width:100%;
    margin-top:calc(3.25rem * var(--ct-space-scale));
    padding:1.5rem 0
  }
  .ct-special-label{font-size:11px}
  .ct-special-body{font-size:13.5px;line-height:2.15}
  .ct-form{
    margin-top:calc(4.5rem * var(--ct-space-scale));
    padding-bottom:calc(15.625rem * var(--ct-space-scale))
  }
  .ct-field+.ct-field{margin-top:calc(3.125rem * var(--ct-space-scale))}
  .ct-control{margin-top:calc(1.25rem * var(--ct-space-scale))}
  .ct-error{margin-top:calc(.625rem * var(--ct-space-scale))}
  .ct-consent-block{margin-top:calc(4.375rem * var(--ct-space-scale))}
  .ct-submit{margin-top:calc(6.25rem * var(--ct-space-scale))}
}
@media(max-width:760px){
  .ct-main{padding-inline:1.25rem}
  .ct-page-head h1{font-size:max(var(--fab-font-minimum), clamp(34px,10.7vw,42px));line-height:1.45}
  .ct-lead{font-size:14px;line-height:2.2;letter-spacing:.055em}
  .ct-special-consultation{
    display:block;
    margin-top:2.5rem;
    padding:1.4rem 0 1.5rem
  }
  .ct-special-label{margin-bottom:.55rem;font-size:11px;line-height:1.8}
  .ct-special-body{font-size:13px;line-height:2.15;letter-spacing:.035em}
  .ct-form{margin-top:3.5rem}
  .ct-label-row label{font-size:16px;letter-spacing:.08em}
  .ct-required{width:2.625rem;font-size:var(--fab-font-minimum)}
  .ct-control{height:3.75rem;padding-inline:1rem;font-size:14px}
  textarea.ct-control{height:13.75rem;padding-top:1rem;padding-bottom:1rem}
  .ct-consent{align-items:flex-start;width:100%}
  .ct-consent span{font-size:13px;line-height:1.8}
  .ct-submit{width:100%;height:max(4.75rem,calc(7.125rem * var(--ct-space-scale)));font-size:16px}
  .ct-submit i{right:1.75rem}
}
@media(max-width:430px){:root{--ct-space-scale:.45}}
@media(prefers-reduced-motion:reduce){
  .ct-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  .ct-control,.ct-consent input,.ct-submit,.ct-submit i{transition:none!important}
}



/* 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: 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}
  .mobile-reserve-cta{
    display:block!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,12px,0);
    transition:opacity .28s ease,visibility .28s ease,transform .28s ease;
  }
  body.mobile-cta-visible .mobile-reserve-cta{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  body.mobile-cta-visible{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
  
  .mobile-reserve-cta>a{min-height:62px!important;border-radius:4px}
}

@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}

  /* COMMON MASTER / fixed INDEX is removed on smartphones. */
  

  /* 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. */
  .si-journeys{padding:var(--mobile-space-8) 0!important}
  .si-journeys-inner{width:calc(100% - 40px)!important}
  .si-journeys-head{margin-bottom:var(--mobile-space-5)!important}
  .si-journey-grid{grid-template-columns:1fr!important;gap:14px!important}
  .si-journey-time,.si-journey-island,.si-journey-about{grid-column:1!important;min-height:0!important;aspect-ratio:4/3;margin:0!important}
  .si-journey-copy{inset:auto 22px 24px!important}
  .si-journey-copy h3{max-width:calc(100% - 50px)!important;font-size:26px !important}
  .si-journey-copy i{width:48px!important;height:48px!important;font-size:17px !important}

  /* 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}
  .si-journey-card:hover img{transform: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}
}



/* v44 style block 7: lower-shared-top-master-setoda-responsive-final */



@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}
  .mobile-reserve-cta{
    display:block!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,12px,0);
    transition:opacity .28s ease,visibility .28s ease,transform .28s ease;
  }
  body.mobile-cta-visible .mobile-reserve-cta{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  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(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}

  
  
  
  
  
  
  
  
  
  
  
  [data-hero-drift]{transform:none!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}

  .mobile-reserve-cta{
    left:max(10px,env(safe-area-inset-left))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    bottom:10px!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
  .mobile-reserve-cta>a{
    min-height:62px!important;
    border-radius:4px;
  }
  
  
  
  
  
  
}

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

@media (max-width:430px){
  
  
  
  
  .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){
  .setoda-footer-feature-links a:hover img{transform:none!important}
  .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){
  
}



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

  /* FIRST VIEW: preserve two intentional lines on all supported phone widths. */
  
  

  /* NEWS: give the category/title/arrow their own breathing room. */
  
  
  
  
  
  
  

  /* FOR YOU: one calm visual path rather than a noisy mini-grid. */
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* FEATURE intro and first story belong to one semantic family. */
  
  
  
  
  
  
  
  
  
  
  
  

  /* ACCESS / FAQ uses the same content width as the rest of the page. */
  
  

  /* ABOUT: soften the oversized lettering and lock the narrative heading to two lines. */
  
  
  
  
  
  
  

  /* GALLERY remains touch-operable; autoplay is added in JS below. */
  

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



/* v44 style block 9: 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. */
  

  /* COMMON MASTER: category tags size to content and never clip long labels. */
  
  
  

  /* TOP: FEATURE introduction belongs visually to the banner row below. */
  
  
  

  /* TOP: give the beginning of FEATURE stories room after the background transition. */
  
  
  

  /* TOP: identity -> square photo -> category -> title -> body -> detail. */
  
  
  
  
  
  
  
  

  /* TOP: ABOUT typography travels from left -> center -> right. */
  
  
  
  
  
  

  /* TOP: same slow continuous infinite gallery language as desktop. */
  
  
  
  
  
  

  /* 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 10: 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){
  /* COMMON MASTER: tag length must not move the headline start position. */
  
  
  

  /* TOP: FOR YOU opening copy belongs to one uninterrupted semantic group. */
  

  /* TOP: remove inherited 620px minimum that created empty air above the cards. */
  
  

  /* TOP: exact FEATURE reading rhythm requested. */
  
  
  

  /* TOP: line alignment handles position; manual padding is no longer needed. */
  
  

  /* TOP: same continuously moving gallery language as desktop. */
  
  
  

  /* 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){
  /* Keep the title lane aligned even on the narrowest supported devices. */
  
  
}

@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 11: 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){
  /* COMMON MASTER: no artificial gap between the fixed category lane and headline lane. */
  

  /* TOP: requested semantic distance from the FEATURE explanation to the banner rail. */
  
}



/* v44 style block 12: 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){
  /* COMMON MASTER: category and headline are independent rows, aligned to one left edge. */
  
  
  

  /* TOP: unify the third (lemon) image's top spacing with the other FOR YOU images. */
  
}



/* v44 style block 13: 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 14: 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. */
  .mobile-reserve-cta{
    left:10px!important;right:10px!important;bottom:10px!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
  .mobile-reserve-cta>a{
    display:grid!important;
    grid-template-columns:25px 1fr 20px!important;
    gap:13px!important;
    align-items:center!important;
    min-height:62px!important;
    padding:10px 17px!important;
    background:rgba(72,45,18,.96)!important;
    color:#fffdf8!important;
    box-shadow:0 15px 42px rgba(35,22,12,.25)!important;
    -webkit-backdrop-filter:blur(14px)!important;backdrop-filter:blur(14px)!important;
    border-radius:4px!important;
  }
  .mobile-cta-icon{display:block!important;width:20px!important;height:20px!important;color:var(--lemon)!important}
  .mobile-cta-copy{display:grid!important;gap:2px!important;min-width:0}
  .mobile-cta-copy small{display:block!important;font-size:var(--fab-font-minimum) !important;line-height:1.3!important;letter-spacing:.19em!important;color:#d9c89d!important}
  .mobile-cta-copy b{display:block!important;font:500 13px/1.55 var(--serif) !important;letter-spacing:.065em!important;white-space:nowrap}
  .mobile-cta-arrow{display:block!important;justify-self:end!important;font-size:15px !important}
}

@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. */
  .si-journey-copy small{margin-bottom:8px!important}

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



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

  

  
  
  
  
  
  
  
  
  
  
  
  
  
  .si-journey-copy h3{font-size:22px !important;line-height:1.55!important}

  /* 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 */
  
  
  .si-journeys{padding-top:var(--si-space-section)!important;padding-bottom:var(--si-space-section)!important}

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



/* v44 style block 16: 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 17: 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 18: lower-page-responsive-お問合せ */


@media(max-width:980px){
  .mobile-reserve-cta{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translate3d(0,12px,0)!important}
  body.mobile-cta-visible .mobile-reserve-cta{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
  body.menu-open .mobile-reserve-cta{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
}
@media(max-width:760px){
  .mobile-reserve-cta>a{border-radius:4px!important}
}


/* ALL DEVICE COLOR HIERARCHY */
.ct-page-head h1,.ct-label-row label{color:#482d12!important}
.ct-page-en,.ct-special-label,.ct-form-status{color:#73563b!important}
.ct-lead,.ct-special-body{color:#5c5856!important}

@media(max-width:760px){
  :root{--ct-space-scale:1!important}
  .ct-header-slot{height:64px!important}
  .ct-main{width:100%!important;padding:80px 20px 0!important}
  .ct-page-head h1{font-size:34px !important;line-height:1.55!important;letter-spacing:.06em!important}
  .ct-page-en{margin-top:15px!important;font-size:var(--fab-font-minimum) !important;line-height:1.6!important;letter-spacing:.10em!important}
  .ct-content{width:100%!important;margin:50px 0 0!important;padding:0!important}
  .ct-lead{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ct-special-consultation{display:block!important;margin-top:50px!important;padding:30px 0!important}
  .ct-special-label{margin:0 0 15px!important;font-size:12px !important;line-height:1.8!important}
  .ct-special-body{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ct-form{margin-top:50px!important;padding-bottom:0!important}
  .ct-field+.ct-field{margin-top:50px!important}
  .ct-label-row{min-height:0!important}
  .ct-label-row label{font-size:15px !important;line-height:1.8!important;letter-spacing:.06em!important}
  .ct-required{width:42px!important;height:26px!important;margin-left:12px!important;font-size:var(--fab-font-minimum) !important}
  .ct-control{height:52px!important;margin-top:15px!important;padding:0 14px!important;font-size:14px !important;line-height:1.8!important}
  textarea.ct-control{height:200px!important;min-height:160px!important;padding-top:14px!important;padding-bottom:14px!important}
  .ct-error{margin-top:10px!important;font-size:12px !important}
  .ct-consent-block{margin-top:50px!important}
  .ct-consent{gap:15px!important;width:100%!important}
  .ct-consent input{flex-basis:28px!important;width:28px!important;height:28px!important}
  .ct-consent span{font-size:13px !important;line-height:1.9!important}
  .ct-submit{width:100%!important;height:60px!important;margin-top:50px!important;font-size:15px !important}
  .ct-submit i{right:20px!important;font-size:20px !important}
}

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

@media(max-width:760px){
  /* Shared lower-page journey banners: all three use the exact Stay Information 4:3 geometry. */
  .si-journey-card,
  .si-journey-card:nth-child(n),
  .si-journey-card figure,
  .si-journey-card:nth-child(n) figure{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4/3!important;
  }

  /* Standard lower-page section-title component follows Stay Information. */
  

  /* 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 21: fab-contact-refinement-v2 */

/* Explicit content-hierarchy change requested for both PC and responsive views. */
.ct-special-label{
  margin-bottom:10px!important;
  font-size:14px !important;
}
.ct-special-body{
  font-size:12px !important;
}
@media(max-width:760px){
  /* Contact FV follows the same title → EN → first-reading-copy rhythm as the lower-page master. */
  .ct-main{padding-top:82px!important;}
  .ct-page-en{margin-top:12px!important;}
  .ct-content{margin-top:30px!important;}
  .ct-special-label{margin-bottom:10px!important;font-size:14px !important;}
  .ct-special-body{font-size:12px !important;line-height:2.12!important;}
  .ct-field + .ct-field{margin-top:30px!important;}
}


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

/* Client revision: reservation banner only. Existing component code remains intact underneath. */
.setoda-reservation-card.fab-best-rate-card{
  display:block!important;position:relative!important;isolation:isolate!important;
  min-height:clamp(235px,19vw,300px)!important;padding:clamp(38px,4.8vw,70px)!important;
  overflow:hidden!important;background:var(--setoda-paper,#f8f6ef)!important;color:var(--setoda-green-deep,#0d3420)!important;
  border:1px solid var(--setoda-line,rgba(22,75,45,.20))!important;
  transition:transform .8s var(--setoda-ease,var(--ease)),box-shadow .8s var(--setoda-ease,var(--ease)),border-color .8s var(--setoda-ease,var(--ease))!important;
}
.setoda-reservation-card.fab-best-rate-card::before{
  content:""!important;position:absolute!important;z-index:0!important;inset:-3%!important;width:auto!important;height:auto!important;
  right:-3%!important;top:-3%!important;border:0!important;border-radius:0!important;pointer-events:none!important;
  background-image:linear-gradient(90deg,rgba(248,246,239,1) 0%,rgba(248,246,239,.985) 27%,rgba(248,246,239,.88) 49%,rgba(248,246,239,.52) 70%,rgba(248,246,239,.16) 100%),var(--fab-media-002-url)!important;
  background-position:center right!important;background-size:cover!important;background-repeat:no-repeat!important;
  opacity:.92!important;transform:scale(1.02)!important;transform-origin:right center!important;
  transition:transform 1.65s var(--setoda-ease,var(--ease)),filter 1.25s ease,opacity 1.1s ease!important;
}
.setoda-reservation-card.fab-best-rate-card::after{
  content:"";position:absolute;z-index:0;left:clamp(38px,4.8vw,70px);bottom:clamp(28px,3.5vw,48px);
  width:42px;height:1px;background:var(--setoda-green,#164b2d);opacity:.45;
  transition:width .85s var(--setoda-ease,var(--ease)),opacity .85s var(--setoda-ease,var(--ease));
}
.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy{
  position:relative!important;z-index:2!important;max-width:min(58%,720px)!important;
  transition:transform .9s var(--setoda-ease,var(--ease))!important;
}
.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy>span{margin-bottom:18px!important;color:var(--setoda-green,#164b2d)!important}
.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy h3{
  margin:0 0 16px!important;color:var(--setoda-green-deep,#0d3420)!important;
  font-size:max(var(--fab-font-minimum), clamp(25px,2.25vw,36px)) !important;line-height:1.55!important;
}
.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy p{
  margin:0!important;width:max-content;max-width:100%;color:var(--setoda-muted,#667168)!important;
  font-size:max(var(--fab-font-minimum), clamp(12px,.9vw,14px)) !important;line-height:1.9!important;
  text-decoration:none;
}
.setoda-reservation-card.fab-best-rate-card:hover{
  transform:translateY(-5px)!important;box-shadow:0 25px 65px rgba(38,57,43,.13)!important;
  background:var(--setoda-paper,#f8f6ef)!important;color:var(--setoda-green-deep,#0d3420)!important;border-color:rgba(22,75,45,.34)!important;
}
.setoda-reservation-card.fab-best-rate-card:hover::before{transform:scale(1.075) translateX(-.6%)!important;filter:saturate(1.05) contrast(1.025)!important;opacity:1!important}
.setoda-reservation-card.fab-best-rate-card:hover::after{width:78px;opacity:.8}
.setoda-reservation-card.fab-best-rate-card:hover .setoda-reservation-copy{transform:translateX(5px)}
.setoda-reservation-card.fab-best-rate-card:hover .setoda-reservation-copy>span{color:var(--setoda-green,#164b2d)!important}
.setoda-reservation-card.fab-best-rate-card:hover .setoda-reservation-copy p{color:var(--setoda-muted,#667168)!important}
@media(max-width:760px){
  .setoda-reservation-card.fab-best-rate-card{min-height:245px!important;padding:31px 25px 40px!important}
  .setoda-reservation-card.fab-best-rate-card::before{
    inset:-2%!important;right:-2%!important;top:-2%!important;
    background-image:linear-gradient(90deg,rgba(248,246,239,1) 0%,rgba(248,246,239,.97) 34%,rgba(248,246,239,.74) 64%,rgba(248,246,239,.28) 100%),var(--fab-media-002-url)!important;
    background-position:64% center!important;
  }
  .setoda-reservation-card.fab-best-rate-card::after{left:25px;bottom:25px;width:32px}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy{max-width:78%!important}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy>span{margin-bottom:14px!important;font-size:var(--fab-font-minimum) !important}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy h3{font-size:25px !important;margin-bottom:13px!important}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy p{font-size:12px !important;line-height:1.8!important}
}
@media(prefers-reduced-motion:reduce){
  .setoda-reservation-card.fab-best-rate-card,.setoda-reservation-card.fab-best-rate-card::before,.setoda-reservation-card.fab-best-rate-card::after,.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy{transition:none!important}
}


/* Client revision v4: make the reservation destination explicit without adding a decorative underline. */
.setoda-reservation-card.fab-best-rate-card::after{
  content:none!important;display:none!important;
}
.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy p{
  text-decoration:none!important;
}
.setoda-reservation-card.fab-best-rate-card .fab-best-rate-action{
  display:inline-flex;align-items:center;gap:14px;
  margin-top:clamp(24px,2.15vw,34px);
  color:inherit;
  font:500 var(--fab-font-minimum)/1.4 var(--setoda-sans,var(--sans));
  letter-spacing:.14em;
  white-space:nowrap;
}
.setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i{
  display:inline-grid;place-items:center;
  width:42px;height:42px;
  border:1px solid currentColor;border-radius:50%;
  font:400 15px/1 var(--setoda-sans,var(--sans));font-style:normal;
  transition:transform .65s var(--setoda-ease,var(--ease)),background-color .65s var(--setoda-ease,var(--ease)),color .65s var(--setoda-ease,var(--ease));
}
@media(hover:hover){
  .setoda-reservation-card.fab-best-rate-card:hover .fab-best-rate-action i{transform:translateX(4px)}
}
@media(max-width:760px){
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action{gap:11px;margin-top:21px;font-size:var(--fab-font-minimum);letter-spacing:.13em}
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i{width:36px;height:36px;font-size:14px}
}
@media(prefers-reduced-motion:reduce){
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i{transition:none!important}
}


/* v44 style block 23: 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 -------------------------------------------------- */
.setoda-reservation-card.fab-best-rate-card{
  border-radius:10px!important;
  transition:
    transform .8s var(--setoda-ease,var(--ease)),
    box-shadow .8s var(--setoda-ease,var(--ease)),
    border-color .8s var(--setoda-ease,var(--ease))!important;
}

.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy{
  transform:none!important;
  transition:none!important;
}

.setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy p{
  text-decoration-line:underline!important;
  text-decoration-thickness:1px!important;
  text-decoration-color:rgba(22,75,45,.34)!important;
  text-underline-offset:5px!important;
  text-decoration-skip-ink:auto!important;
}

.setoda-reservation-card.fab-best-rate-card .fab-best-rate-action{
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  font-size:11px !important;
  line-height:1.4!important;
  letter-spacing:.12em!important;
}

.setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i{
  width:32px!important;
  height:32px!important;
  flex:0 0 32px!important;
  font-size:12px !important;
  line-height:1!important;
  transform:none!important;
  transition:
    transform .72s var(--setoda-ease,var(--ease)),
    background-color .72s var(--setoda-ease,var(--ease)),
    border-color .72s var(--setoda-ease,var(--ease))!important;
}

@media(hover:hover){
  .setoda-reservation-card.fab-best-rate-card:hover{
    transform:translateY(-2px)!important;
    box-shadow:0 14px 36px rgba(38,57,43,.075)!important;
    border-color:rgba(22,75,45,.30)!important;
  }
  .setoda-reservation-card.fab-best-rate-card:hover::before{
    transform:scale(1.025)!important;
    filter:saturate(1.02)!important;
    opacity:.96!important;
  }
  .setoda-reservation-card.fab-best-rate-card:hover .setoda-reservation-copy{
    transform:none!important;
  }
  .setoda-reservation-card.fab-best-rate-card:hover .fab-best-rate-action i{
    transform:translateX(3px)!important;
    background-color:rgba(22,75,45,.055)!important;
  }
}

/* Lower-page navigation banners / EXPLORE MORE ----------------------- */
.si-journey-card{
  border-radius:10px!important;
  transition:box-shadow .9s var(--ease),transform .9s var(--ease)!important;
}
.si-journey-card figure{
  border-radius:inherit!important;
}
.si-journey-card figure::after{
  transition:background .95s var(--ease)!important;
}
.si-journey-card img{
  transition:transform 1.35s var(--ease),filter 1.1s var(--ease)!important;
}
.si-journey-copy i{
  transition:
    transform .72s var(--ease),
    background-color .72s var(--ease),
    border-color .72s var(--ease),
    color .72s var(--ease)!important;
}

@media(hover:hover){
  .si-journey-card:hover{
    transform:translateY(-1px)!important;
    box-shadow:0 16px 34px rgba(37,45,34,.08)!important;
  }
  .si-journey-card:hover img{
    transform:scale(1.018)!important;
    filter:saturate(1.015)!important;
  }
  .si-journey-card:hover figure::after{
    background:linear-gradient(180deg,rgba(5,29,17,.03) 22%,rgba(5,29,17,.70) 100%)!important;
  }
  .si-journey-card:hover .si-journey-copy i{
    transform:translate(2px,-2px)!important;
    background:rgba(255,255,255,.08)!important;
    border-color:rgba(255,255,255,.68)!important;
    color:#fffdf8!important;
  }
}

@media(max-width:760px){
  .setoda-reservation-card.fab-best-rate-card,
  .si-journey-card{
    border-radius:10px!important;
  }
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action{
    gap:9px!important;
    font-size:11px !important;
  }
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i{
    width:30px!important;
    height:30px!important;
    flex-basis:30px!important;
    font-size:11px !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .setoda-reservation-card.fab-best-rate-card,
  .setoda-reservation-card.fab-best-rate-card::before,
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i,
  .si-journey-card,
  .si-journey-card img,
  .si-journey-card figure::after,
  .si-journey-copy i{
    transition:none!important;
    transform:none!important;
  }
}


/* v44 style block 24: 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 26: 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 27: 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 28: 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 29: 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 30: 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 32: 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 33: 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;
  }

  /* TOP NEWS: when category buttons occupy a second row, the heading remains anchored
     to its original top edge; only the tab group grows downward. */
  
  
}

/* 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 34: 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. */



/* v44 style block 35: 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 36: 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 37: 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 38: 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 39: fab-news-more-font-size-v20 */

/* v20 — NEWS list link uses the same font size as setoda text/about links. */



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

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


/* v44 style block 41: 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}
.mobile-reserve-cta{position:fixed;z-index:125;left:10px;right:10px;bottom:10px;display:block;padding-bottom:env(safe-area-inset-bottom)}
.mobile-reserve-cta>a{display:grid;grid-template-columns:25px 1fr 20px;gap:13px;align-items:center;min-height:62px;padding:10px 17px;background:rgba(72,45,18,.96);color:#fffdf8;box-shadow:0 15px 42px rgba(35,22,12,.25);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}

@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){
}

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

@media(max-width:1040px){.setoda-reservation-card,
.setoda-footer-letter-form{
    border-radius:var(--fab-content-image-radius);
  }
}

@media(max-width:1040px){:root{
    --fab-interface-radius:3px;
  }
.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){.ct-mail-note{margin-top:14px;font-size:12px;line-height:2}}

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

@media(max-width:1040px){
  :root{--pad:20px}
  body{font-size:14px}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .si-journeys{padding:92px 0 105px}
  .si-journeys-inner{width:calc(100% - 40px)}
  .si-journeys-head{margin-bottom:38px}
  .si-journey-grid{grid-template-columns:1fr;gap:14px}
  .si-journey-time,.si-journey-island,.si-journey-about{grid-column:1;min-height:420px;margin:0}
  .si-journey-copy{inset:auto 23px 25px}
  .si-journey-copy h3{max-width:calc(100% - 50px);font-size:27px}
  .si-journey-copy i{width:48px;height:48px;font-size:17px}
}

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

@media(max-width:1040px){
  .ct-main{padding-inline:1.25rem}
  .ct-page-head h1{font-size:max(var(--fab-font-minimum), clamp(34px,10.7vw,42px));line-height:1.45}
  .ct-lead{font-size:14px;line-height:2.2;letter-spacing:.055em}
  .ct-special-consultation{
    display:block;
    margin-top:2.5rem;
    padding:1.4rem 0 1.5rem
  }
  .ct-special-label{margin-bottom:.55rem;font-size:11px;line-height:1.8}
  .ct-special-body{font-size:13px;line-height:2.15;letter-spacing:.035em}
  .ct-form{margin-top:3.5rem}
  .ct-label-row label{font-size:16px;letter-spacing:.08em}
  .ct-required{width:2.625rem;font-size:var(--fab-font-minimum)}
  .ct-control{height:3.75rem;padding-inline:1rem;font-size:14px}
  textarea.ct-control{height:13.75rem;padding-top:1rem;padding-bottom:1rem}
  .ct-consent{align-items:flex-start;width:100%}
  .ct-consent span{font-size:13px;line-height:1.8}
  .ct-submit{width:100%;height:max(4.75rem,calc(7.125rem * var(--ct-space-scale)));font-size:16px}
  .ct-submit i{right:1.75rem}
}

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

@media (max-width:1040px){
  body{padding-bottom:0!important}
  .mobile-reserve-cta{
    display:block!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,12px,0);
    transition:opacity .28s ease,visibility .28s ease,transform .28s ease;
  }
  body.mobile-cta-visible .mobile-reserve-cta{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  body.mobile-cta-visible{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
  
  .mobile-reserve-cta>a{min-height:62px!important;border-radius:4px}
}

@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}

  /* COMMON MASTER / fixed INDEX is removed on smartphones. */
  

  /* 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. */
  .si-journeys{padding:var(--mobile-space-8) 0!important}
  .si-journeys-inner{width:calc(100% - 40px)!important}
  .si-journeys-head{margin-bottom:var(--mobile-space-5)!important}
  .si-journey-grid{grid-template-columns:1fr!important;gap:14px!important}
  .si-journey-time,.si-journey-island,.si-journey-about{grid-column:1!important;min-height:0!important;aspect-ratio:4/3;margin:0!important}
  .si-journey-copy{inset:auto 22px 24px!important}
  .si-journey-copy h3{max-width:calc(100% - 50px)!important;font-size:26px !important}
  .si-journey-copy i{width:48px!important;height:48px!important;font-size:17px !important}

  /* 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}
  .si-journey-card:hover img{transform: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}
  .mobile-reserve-cta{
    display:block!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,12px,0);
    transition:opacity .28s ease,visibility .28s ease,transform .28s ease;
  }
  body.mobile-cta-visible .mobile-reserve-cta{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  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(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}

  
  
  
  
  
  
  
  
  
  
  
  [data-hero-drift]{transform:none!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}

  .mobile-reserve-cta{
    left:max(10px,env(safe-area-inset-left))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    bottom:10px!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
  .mobile-reserve-cta>a{
    min-height:62px!important;
    border-radius:4px;
  }
  
  
  
  
  
  
}

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

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

  /* FIRST VIEW: preserve two intentional lines on all supported phone widths. */
  
  

  /* NEWS: give the category/title/arrow their own breathing room. */
  
  
  
  
  
  
  

  /* FOR YOU: one calm visual path rather than a noisy mini-grid. */
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* FEATURE intro and first story belong to one semantic family. */
  
  
  
  
  
  
  
  
  
  
  
  

  /* ACCESS / FAQ uses the same content width as the rest of the page. */
  
  

  /* ABOUT: soften the oversized lettering and lock the narrative heading to two lines. */
  
  
  
  
  
  
  

  /* GALLERY remains touch-operable; autoplay is added in JS below. */
  

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

@media (max-width:1040px){
  /* COMMON MASTER: fixed INDEX is removed on smartphones to preserve viewport space. */
  

  /* COMMON MASTER: category tags size to content and never clip long labels. */
  
  
  

  /* TOP: FEATURE introduction belongs visually to the banner row below. */
  
  
  

  /* TOP: give the beginning of FEATURE stories room after the background transition. */
  
  
  

  /* TOP: identity -> square photo -> category -> title -> body -> detail. */
  
  
  
  
  
  
  
  

  /* TOP: ABOUT typography travels from left -> center -> right. */
  
  
  
  
  
  

  /* TOP: same slow continuous infinite gallery language as desktop. */
  
  
  
  
  
  

  /* 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){
  /* COMMON MASTER: tag length must not move the headline start position. */
  
  
  

  /* TOP: FOR YOU opening copy belongs to one uninterrupted semantic group. */
  

  /* TOP: remove inherited 620px minimum that created empty air above the cards. */
  
  

  /* TOP: exact FEATURE reading rhythm requested. */
  
  
  

  /* TOP: line alignment handles position; manual padding is no longer needed. */
  
  

  /* TOP: same continuously moving gallery language as desktop. */
  
  
  

  /* 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){
  /* COMMON MASTER: no artificial gap between the fixed category lane and headline lane. */
  

  /* TOP: requested semantic distance from the FEATURE explanation to the banner rail. */
  
}

@media (max-width:1040px){
  /* COMMON MASTER: category and headline are independent rows, aligned to one left edge. */
  
  
  

  /* TOP: unify the third (lemon) image's top spacing with the other FOR YOU images. */
  
}

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

@media (max-width:1040px){
  /* TOP exact fixed RESERVATION visual language. */
  .mobile-reserve-cta{
    left:10px!important;right:10px!important;bottom:10px!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
  .mobile-reserve-cta>a{
    display:grid!important;
    grid-template-columns:25px 1fr 20px!important;
    gap:13px!important;
    align-items:center!important;
    min-height:62px!important;
    padding:10px 17px!important;
    background:rgba(72,45,18,.96)!important;
    color:#fffdf8!important;
    box-shadow:0 15px 42px rgba(35,22,12,.25)!important;
    -webkit-backdrop-filter:blur(14px)!important;backdrop-filter:blur(14px)!important;
    border-radius:4px!important;
  }
  .mobile-cta-icon{display:block!important;width:20px!important;height:20px!important;color:var(--lemon)!important}
  .mobile-cta-copy{display:grid!important;gap:2px!important;min-width:0}
  .mobile-cta-copy small{display:block!important;font-size:var(--fab-font-minimum) !important;line-height:1.3!important;letter-spacing:.19em!important;color:#d9c89d!important}
  .mobile-cta-copy b{display:block!important;font:500 13px/1.55 var(--serif) !important;letter-spacing:.065em!important;white-space:nowrap}
  .mobile-cta-arrow{display:block!important;justify-self:end!important;font-size:15px !important}
}

@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. */
  .si-journey-copy small{margin-bottom:8px!important}

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

  

  
  
  
  
  
  
  
  
  
  
  
  
  
  .si-journey-copy h3{font-size:22px !important;line-height:1.55!important}

  /* 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 */
  
  
  .si-journeys{padding-top:var(--si-space-section)!important;padding-bottom:var(--si-space-section)!important}

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

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

  /* EDITORIAL BODY COLOR / preserve meta labels and headings. */
  
}

@media(max-width:1040px){
  .mobile-reserve-cta{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translate3d(0,12px,0)!important}
  body.mobile-cta-visible .mobile-reserve-cta{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
  body.menu-open .mobile-reserve-cta{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
}

@media(max-width:1040px){
  .mobile-reserve-cta>a{border-radius:4px!important}
}

@media(max-width:1040px){
  :root{--ct-space-scale:1!important}
  .ct-header-slot{height:64px!important}
  .ct-main{width:100%!important;padding:80px 20px 0!important}
  .ct-page-head h1{font-size:34px !important;line-height:1.55!important;letter-spacing:.06em!important}
  .ct-page-en{margin-top:15px!important;font-size:var(--fab-font-minimum) !important;line-height:1.6!important;letter-spacing:.10em!important}
  .ct-content{width:100%!important;margin:50px 0 0!important;padding:0!important}
  .ct-lead{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ct-special-consultation{display:block!important;margin-top:50px!important;padding:30px 0!important}
  .ct-special-label{margin:0 0 15px!important;font-size:12px !important;line-height:1.8!important}
  .ct-special-body{font-size:14px !important;line-height:2.12!important;letter-spacing:.025em!important}
  .ct-form{margin-top:50px!important;padding-bottom:0!important}
  .ct-field+.ct-field{margin-top:50px!important}
  .ct-label-row{min-height:0!important}
  .ct-label-row label{font-size:15px !important;line-height:1.8!important;letter-spacing:.06em!important}
  .ct-required{width:42px!important;height:26px!important;margin-left:12px!important;font-size:var(--fab-font-minimum) !important}
  .ct-control{height:52px!important;margin-top:15px!important;padding:0 14px!important;font-size:14px !important;line-height:1.8!important}
  textarea.ct-control{height:200px!important;min-height:160px!important;padding-top:14px!important;padding-bottom:14px!important}
  .ct-error{margin-top:10px!important;font-size:12px !important}
  .ct-consent-block{margin-top:50px!important}
  .ct-consent{gap:15px!important;width:100%!important}
  .ct-consent input{flex-basis:28px!important;width:28px!important;height:28px!important}
  .ct-consent span{font-size:13px !important;line-height:1.9!important}
  .ct-submit{width:100%!important;height:60px!important;margin-top:50px!important;font-size:15px !important}
  .ct-submit i{right:20px!important;font-size:20px !important}
}

@media(max-width:1040px){
  /* Shared lower-page journey banners: all three use the exact Stay Information 4:3 geometry. */
  .si-journey-card,
  .si-journey-card:nth-child(n),
  .si-journey-card figure,
  .si-journey-card:nth-child(n) figure{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4/3!important;
  }

  /* Standard lower-page section-title component follows Stay Information. */
  

  /* 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){
  /* Contact FV follows the same title → EN → first-reading-copy rhythm as the lower-page master. */
  .ct-main{padding-top:82px!important;}
  .ct-page-en{margin-top:12px!important;}
  .ct-content{margin-top:30px!important;}
  .ct-special-label{margin-bottom:10px!important;font-size:14px !important;}
  .ct-special-body{font-size:12px !important;line-height:2.12!important;}
  .ct-field + .ct-field{margin-top:30px!important;}
}

@media(max-width:1040px){
  .setoda-reservation-card.fab-best-rate-card{min-height:245px!important;padding:31px 25px 40px!important}
  .setoda-reservation-card.fab-best-rate-card::before{
    inset:-2%!important;right:-2%!important;top:-2%!important;
    background-image:linear-gradient(90deg,rgba(248,246,239,1) 0%,rgba(248,246,239,.97) 34%,rgba(248,246,239,.74) 64%,rgba(248,246,239,.28) 100%),var(--fab-media-002-url)!important;
    background-position:64% center!important;
  }
  .setoda-reservation-card.fab-best-rate-card::after{left:25px;bottom:25px;width:32px}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy{max-width:78%!important}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy>span{margin-bottom:14px!important;font-size:var(--fab-font-minimum) !important}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy h3{font-size:25px !important;margin-bottom:13px!important}
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy p{font-size:12px !important;line-height:1.8!important}
}

@media(max-width:1040px){
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action{gap:11px;margin-top:21px;font-size:var(--fab-font-minimum);letter-spacing:.13em}
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i{width:36px;height:36px;font-size:14px}
}

@media(max-width:1040px){
  .setoda-reservation-card.fab-best-rate-card,
  .si-journey-card{
    border-radius:10px!important;
  }
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action{
    gap:9px!important;
    font-size:11px !important;
  }
  .setoda-reservation-card.fab-best-rate-card .fab-best-rate-action i{
    width:30px!important;
    height:30px!important;
    flex-basis:30px!important;
    font-size:11px !important;
  }
}

@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){
  
}


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

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

/* Text navigation: use the FEATURE 01 "詳細を見る" text + line + arrow language consistently. */









/* 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;
  }
}
@media(max-width:760px){
  
}


/* v44 style block 43: 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){
  .setoda-reservation-card.fab-best-rate-card{
    min-height:0!important;
    height:auto!important;
    padding:30px 24px!important;
  }
  .setoda-reservation-card.fab-best-rate-card .setoda-reservation-copy > .fab-best-rate-action{margin-bottom:9px!important}
}

/* v44 style block 45: client-revision-20260912-contact-v7 */

/* Form controls retain their explicit control geometry; no content-height container override is required. */


/* v44 style block 46: 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 47: fab-flow-layout-v11-contact */

/* v11 — Page heading and form intro use padding/margin flow instead of fixed top coordinates. */
@media (min-width:1041px){
  .ct-main{
    padding:13.75rem 9.375rem 0!important;
  }
  .ct-page-head h1,.ct-page-en{
    position:relative!important;
    left:auto!important;top:auto!important;
  }
  .ct-page-head h1{margin:0!important;}
  .ct-page-en{margin-top:0!important;}
  .ct-content{
    width:72.25rem!important;
    margin:6.6875rem 0 0 14.5rem!important;
    padding-top:0!important;
  }
}


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

/* v12 Phase 1 — The form owns the breathing room before the Reservation color boundary. */
@media(max-width:1040px){
  :root{--fab-rhythm-page-end:80px;}
  .ct-form{padding-bottom:var(--fab-rhythm-page-end)!important;}
}


/* v44 style block 49: 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 50: fab-v27-contact-responsive-ux */

@media(max-width:1040px){
  .ct-control{font-size:16px!important;}
}
@media(min-width:1041px){
  .ct-control:not(textarea),.ct-submit{min-height:calc(40px / var(--ct-scale,1))!important;}
  .ct-consent{position:relative!important;}
  .ct-consent::after{content:"";position:absolute;left:0;right:0;top:50%;height:calc(40px / var(--ct-scale,1));transform:translateY(-50%);}
}

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

/* PC only: allow journey headings to use the full copy width and standardize the circular icon to 42px. */
@media (min-width:1041px){
  .si-journey-copy h3{max-width:none!important;}
  .si-journey-copy i{width:42px!important;height:42px!important;}
}


/* v44 style block 54: fab-news-tag-radius-v43 */

/* v43 — unify all circular-board category tags with the TOP filter corner radius. */



/* Stage 8C — Contact Form 7 / Flamingo visual bridge.
   CF7 owns transport and validation; FAB keeps the Visual Lock. */
.ct-cf7-shell .wpcf7{width:100%;margin:0;padding:0}
.ct-cf7-shell .wpcf7 form{margin:0;padding:0}

/* Stage 8C Hotfix01 — retain the non-visual / functional subset that is
   normally supplied by CF7's default stylesheet. The default stylesheet is
   intentionally dequeued so FAB keeps complete ownership of the Visual Lock. */
.ct-cf7-shell .wpcf7 .hidden-fields-container,
.ct-cf7-shell .wpcf7 fieldset.hidden-fields-container{
  display:none!important
}
.ct-cf7-shell .wpcf7-form-control-wrap{display:block;position:relative;width:100%}
.ct-cf7-shell .screen-reader-response{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;
  white-space:nowrap!important;word-wrap:normal!important;border:0!important
}
/* FAB mirrors CF7's submitting state on the existing submit button, so the
   plugin spinner is deliberately suppressed instead of being restyled. */
.ct-cf7-shell .wpcf7-spinner{display:none!important}
.ct-cf7-shell .ct-control.wpcf7-not-valid,
.ct-cf7-shell .ct-control[aria-invalid="true"]{border-color:var(--ct-error)}
.ct-cf7-shell .wpcf7-not-valid-tip{
  display:block;margin:.625rem 0 0;color:var(--ct-error);
  font:400 13px/1.8 var(--serif);letter-spacing:.045em
}
.ct-cf7-shell .ct-consent{display:block;width:max-content;max-width:100%;margin-inline:auto}
.ct-cf7-shell .ct-consent .wpcf7-form-control-wrap,
.ct-cf7-shell .ct-consent .wpcf7-acceptance,
.ct-cf7-shell .ct-consent .wpcf7-list-item,
.ct-cf7-shell .ct-consent .wpcf7-list-item>label{
  display:flex;width:max-content;max-width:100%;align-items:center;gap:1.25rem;margin:0
}
.ct-cf7-shell .ct-consent .wpcf7-list-item-label{
  font:400 14px/1.5 var(--serif);letter-spacing:.08em
}
.ct-cf7-shell .ct-consent input[type="checkbox"]{
  appearance:none;display:grid;place-items:center;flex:0 0 1.875rem;
  width:1.875rem;height:1.875rem;margin:0;border:1px solid var(--ct-ink);
  border-radius:.25rem;background:rgba(255,255,255,.5);cursor:pointer;
  transition:background-color .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)
}
.ct-cf7-shell .ct-consent input[type="checkbox"]::before{
  content:"";width:.75rem;height:.4375rem;border-left:2px solid #fff;border-bottom:2px solid #fff;
  opacity:0;transform:translateY(-.0625rem) rotate(-45deg) scale(.7);
  transition:opacity .25s ease,transform .25s ease
}
.ct-cf7-shell .ct-consent input[type="checkbox"]:checked{border-color:var(--brown);background:var(--brown)}
.ct-cf7-shell .ct-consent input[type="checkbox"]:checked::before{opacity:1;transform:translateY(-.0625rem) rotate(-45deg) scale(1)}
.ct-cf7-shell .ct-consent input[type="checkbox"]:focus-visible{outline:2px solid var(--lemon);outline-offset:.25rem}
.ct-cf7-shell .ct-consent a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;transition:color .45s var(--ease)}
.ct-cf7-shell .ct-consent .wpcf7-not-valid-tip{width:max-content;max-width:100%;margin:.625rem auto 0}
.ct-cf7-shell .wpcf7-response-output{
  display:none;margin:1.25rem auto 0!important;padding:0!important;border:0!important;text-align:center;
  color:var(--ct-muted);font:400 14px/2 var(--serif);letter-spacing:.05em
}
.ct-cf7-shell .wpcf7-response-output.is-visible{display:block}
.ct-cf7-shell form.invalid .wpcf7-response-output,
.ct-cf7-shell form.failed .wpcf7-response-output,
.ct-cf7-shell form.spam .wpcf7-response-output{color:var(--ct-error)}
.ct-cf7-shell .ct-submit:disabled,
.ct-cf7-shell.is-submitting .ct-submit{cursor:wait;opacity:.7;transform:none!important;box-shadow:none!important}
.fab-contact-honeypot{
  position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;
  overflow:hidden!important;opacity:0!important;pointer-events:none!important
}
@media(hover:hover){.ct-cf7-shell .ct-consent a:hover{color:var(--lemon)}}
@media(max-width:760px){
  .ct-cf7-shell .ct-consent{width:100%}
  .ct-cf7-shell .ct-consent .wpcf7-list-item,
  .ct-cf7-shell .ct-consent .wpcf7-list-item>label{align-items:flex-start;width:100%}
  .ct-cf7-shell .ct-consent .wpcf7-list-item-label{font-size:13px;line-height:1.8}
}
@media(prefers-reduced-motion:reduce){
  .ct-cf7-shell .ct-consent input[type="checkbox"]{transition:none!important}
}
