:root{
  --ink:#1d1d1a;--paper:#ddd9cf;--line:rgba(29,29,26,.18);
  --gutter:clamp(24px,4vw,72px);
  /* Vertical rhythm system */
  --space-hero:clamp(96px,8vw,128px);
  --space-feature:clamp(84px,7vw,116px);
  --space-break:clamp(132px,10vw,176px);
  --space-content:clamp(80px,6vw,112px);
  --space-book:clamp(52px,4vw,76px);
  --space-booking-y:clamp(72px,7vw,112px);
  --paired-row-gap:clamp(54px,5.5vw,92px);
  --grid-gap:clamp(32px,5vw,90px);--label:clamp(15px,1.2vw,19px);
  --title:clamp(48px,5vw,82px);--copy:clamp(17px,1.3vw,20px);
  --hero-progress:0;
  --motion-ease:cubic-bezier(.22,.61,.36,1);
  --header-copy-clearance:clamp(96px,8vw,132px)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}img{display:block;width:100%;height:100%;object-fit:cover}figure{margin:0}a{color:inherit}

/* Approved Hero */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:rgba(29,29,26,.34);color:#fff}
.hero__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1;transform:scale(calc(1 + var(--hero-progress) * .015));transform-origin:center center;transition:opacity 1200ms var(--motion-ease);will-change:opacity,transform}
.hero__tone{position:absolute;inset:0;background:linear-gradient(rgba(8,8,7,.16),rgba(8,8,7,.16)),radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.22) 100%),linear-gradient(to top,rgba(0,0,0,.46),transparent 48%);opacity:1;transition:opacity 1200ms var(--motion-ease);will-change:opacity}
.hero__branding{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:clamp(0,calc(1 - (var(--hero-progress) - .12) / .60),1);transform:translateY(calc(var(--hero-progress) * -10px));will-change:opacity,transform}
.hero__branding img{width:clamp(138px,13.2vw,228px);height:auto;object-fit:contain;filter:brightness(0) invert(1);opacity:1;transform:translateY(0);transition:opacity 760ms var(--motion-ease),transform 900ms var(--motion-ease)}
.hero__scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%) translateY(calc(var(--hero-progress) * 6px));display:flex;flex-direction:column;align-items:center;gap:10px;font-size:8px;letter-spacing:.28em;opacity:clamp(0,calc(1 - var(--hero-progress) / .34),1);transition:opacity 620ms var(--motion-ease);will-change:opacity,transform}.hero__scroll i{display:block;width:1px;height:42px;background:rgba(255,255,255,.7)}
.site-header{position:fixed;z-index:20;top:0;left:0;width:100%;padding:clamp(22px,3vw,44px) var(--gutter);display:flex;justify-content:space-between;align-items:flex-start;color:var(--ink);pointer-events:none}

/* Hero entrance sequence. Applied only when JavaScript is available. */
.js:not(.is-hero-brand-ready) .hero__branding img{opacity:0;transform:translateY(8px)}
.js:not(.is-hero-image-ready) .hero__photo,
.js:not(.is-hero-image-ready) .hero__tone{opacity:0}
.js:not(.is-hero-ui-ready) .site-nav{opacity:0;transform:translateY(-6px)}
.js:not(.is-hero-scroll-ready) .hero__scroll{opacity:0}
.site-nav{transition:opacity 620ms var(--motion-ease),transform 760ms var(--motion-ease)}
.header-brand{width:clamp(60px,5.5vw,86px);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .55s var(--motion-ease),transform .55s var(--motion-ease),visibility 0s linear .55s;pointer-events:none}.header-brand img{
  height:auto;
  object-fit:contain;
  filter:none;
  transition:filter 300ms var(--motion-ease)
}
.header-brand.is-over-photo img{filter:brightness(0) invert(1)}
.site-nav{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.18em;pointer-events:auto}
.site-nav a{text-decoration:none}

/* Language switch: treated as a primary control */
.site-nav>a:not(.site-nav__book){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  min-height:36px;
  padding:8px 2px;
  font-size:12px;
  font-weight:400;
  letter-spacing:.14em;
  opacity:.56;
  transition:opacity 220ms ease,font-weight 220ms ease
}
.site-nav>span{
  opacity:.30
}
html:lang(en) .site-nav>a:nth-of-type(1),
html:lang(ja) .site-nav>a:nth-of-type(2){
  font-weight:600;
  opacity:1
}
@media(hover:hover){
  .site-nav>a:not(.site-nav__book):hover{
    opacity:1
  }
}
.site-nav__book{margin-left:clamp(14px,2vw,32px);padding-bottom:5px;border-bottom:1px solid currentColor;font-weight:500;letter-spacing:.12em}
.site-header{transition:none}
.site-header.is-post-hero{color:var(--ink)}
.site-nav{
  color:var(--ink);
  transition:color 300ms var(--motion-ease),opacity 620ms var(--motion-ease),transform 760ms var(--motion-ease)
}
.site-nav.is-over-photo{color:#fff}.site-header.is-post-hero .header-brand{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto}

/* Continuous WebGL atmosphere */
.site-canvas{
  position:relative;
  isolation:isolate;
  background:transparent
}
main{
  position:static;
  background:transparent
}
.hero{
  z-index:3
}
.page-atmosphere{
  display:block;
  position:fixed;
  z-index:0;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  background:#d9d5cb
}
.page-atmosphere__viewport{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden
}
.page-atmosphere__fallback,
.page-atmosphere__canvas,
.page-atmosphere__grain{
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}
.page-atmosphere__fallback{
  z-index:0;
  /* Hero-linked fallback. The previous version is preserved in
     _backup_before_canvas_colour_test/style.css. */
  background:
    radial-gradient(circle at 18% 18%,rgba(180,164,147,.44),transparent 42%),
    radial-gradient(circle at 80% 34%,rgba(157,166,151,.36),transparent 44%),
    radial-gradient(circle at 68% 82%,rgba(153,158,157,.30),transparent 46%),
    linear-gradient(180deg,#d4cec4 0%,#c9c8bd 38%,#cec8be 70%,#c7cbc7 100%)
}
.page-atmosphere__canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block
}
.page-atmosphere__canvas--source{
  z-index:1;
  visibility:hidden
}
.page-atmosphere__canvas--display{
  z-index:2
}
.page-atmosphere__grain{
  z-index:3;
  opacity:.045;
  mix-blend-mode:multiply;
  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='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.26'/%3E%3C/svg%3E");
  background-size:280px 280px
}
main>section:not(.hero){position:relative;z-index:1;background:transparent}

/* Shared typography */
.section-label{margin:0 0 28px;font-size:var(--label);line-height:1.15;letter-spacing:.055em;text-transform:uppercase}
.feature h1,.feature h2,.stay h2,.section-heading h2,.booking h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.05em;line-height:.94}
.feature h1,.feature h2,.stay h2,.section-heading h2{font-size:var(--title)}
.feature p,.stay__intro>p:last-child,.section-heading>p:last-child{font-size:var(--copy);line-height:1.62}

/* Stable alternating two-column foundation.
   Internal composition and inter-section spacing are intentionally separate:
   features have no vertical padding; the page rhythm is controlled by sibling gaps. */
.feature{
  min-height:0;
  padding:0;
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  column-gap:var(--grid-gap);
  align-items:center;
}
.page-atmosphere + .feature{margin-top:var(--space-hero)}
.feature + .feature{margin-top:var(--space-feature)}
.feature--image-left{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
.feature--image-right>.feature__copy{margin-left:calc(var(--gutter) + var(--header-copy-clearance))}
.feature--image-left>.feature__copy{margin-right:var(--gutter)}
.feature__copy{max-width:560px}
.feature__copy>p:not(.section-label){margin:28px 0 0}
.feature__copy>p+p{margin-top:16px}

/* Media system */
.feature__media{position:relative;width:100%}
.feature__media-main{width:100%;aspect-ratio:4/3;overflow:hidden}

/* Two-photo sections: two stable rows.
   The second image sits on the opposite viewport edge from the first. */
.feature--paired-layout{display:block;min-height:0}
.feature__row{display:grid;column-gap:var(--grid-gap);align-items:center}
.feature--paired-layout.feature--image-right .feature__row--primary{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}
.feature--paired-layout.feature--image-right .feature__row--secondary{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
.feature--paired-layout.feature--image-left .feature__row--primary{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
.feature--paired-layout.feature--image-left .feature__row--secondary{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}
.feature--paired-layout.feature--image-right .feature__row--primary .feature__copy,
.feature--paired-layout.feature--image-left .feature__row--secondary .feature__copy{
  margin-left:calc(var(--gutter) + var(--header-copy-clearance))
}
.feature--paired-layout.feature--image-right .feature__row--secondary .feature__copy,
.feature--paired-layout.feature--image-left .feature__row--primary .feature__copy{margin-right:var(--gutter)}
.feature__row--secondary{margin-top:var(--paired-row-gap)}
.feature__media-frame{width:100%;aspect-ratio:4/3;overflow:hidden}
.feature__copy--body p{margin:0;font-size:var(--copy);line-height:1.62}
.feature__media-frame--rest-main img{object-position:52% 66%;transform:scale(1.04)}
.feature__media-frame--rest-sub img{object-position:70% 50%}

/* Feature section reveal */
.reveal-item{
  opacity:0;
  transform:translateY(var(--reveal-distance,8px));
  transition:
    opacity 900ms var(--motion-ease) var(--reveal-delay,0ms),
    transform 900ms var(--motion-ease) var(--reveal-delay,0ms);
  will-change:opacity,transform
}
.reveal-item--media{--reveal-distance:0px}
.reveal-item.is-revealed{opacity:1;transform:none}

/* Functional content */
.stay,.floorplan,.gallery,.location{padding:0 var(--gutter)}
.feature + .stay{margin-top:var(--space-break)}
.stay + .floorplan{margin-top:var(--space-break)}
.floorplan + .gallery,.gallery + .location{margin-top:var(--space-content)}
.location + .booking{margin-top:var(--space-book)}
.stay{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--grid-gap)}.stay__intro{max-width:580px}.stay__intro>p:last-child{margin:28px 0 0}.stay__facts{margin:0}.stay__facts div{display:grid;grid-template-columns:150px 1fr;gap:28px;padding:24px 0;border-top:1px solid var(--line)}.stay__facts div:last-child{border-bottom:1px solid var(--line)}.stay__facts dt{font-size:12px;letter-spacing:.14em}.stay__facts dd{margin:0;font-family:Georgia,serif;font-size:clamp(20px,1.8vw,28px)}

/* Floor plan */
.floorplan{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.7fr);column-gap:var(--grid-gap);row-gap:clamp(54px,5vw,86px);align-items:start}
.floorplan__intro{max-width:520px;grid-row:1 / span 2}
.floorplan__intro h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.05em;line-height:.94;font-size:var(--title)}
.floorplan__drawings{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:clamp(62px,6vw,102px)}
.floorplan__drawing{min-width:0}
.floorplan__drawing figcaption{margin:0 0 20px;font-size:var(--label);line-height:1.15;letter-spacing:.055em;text-transform:uppercase}
.floorplan__drawing img{display:block;width:auto;height:auto;object-fit:contain;margin-left:auto}
/* Uploaded previews were independently downscaled. These heights restore the original 1F/2F drawing scale. */
.floorplan__drawing--1f img{height:clamp(180px,18.2vw,318px);max-width:100%}
.floorplan__drawing--2f img{height:clamp(184px,18.65vw,326px);max-width:100%}
.sleeping-arrangement{grid-column:2;border-top:1px solid var(--line);padding-top:24px}
.sleeping-arrangement__label{margin:0 0 22px;font-size:12px;letter-spacing:.14em}
.sleeping-arrangement__grid{display:grid;grid-template-columns:repeat(3,1fr)}
.sleeping-arrangement__grid article{min-height:96px;padding:0 clamp(20px,2.4vw,38px);border-left:1px solid var(--line)}
.sleeping-arrangement__grid article:first-child{padding-left:0;border-left:0}
.sleeping-arrangement__heading{display:flex;align-items:center;gap:12px}
.sleeping-arrangement__heading span{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border:1px solid rgba(29,29,26,.62);border-radius:50%;font-family:Georgia,serif;font-size:12.5px;line-height:1}
.sleeping-arrangement__heading h3{margin:0;font-family:Georgia,serif;font-size:clamp(18px,1.35vw,22px);font-weight:400}
.sleeping-arrangement__grid p{margin:12px 0 0 35px;font-family:Georgia,serif;font-size:clamp(14px,1vw,16px);line-height:1.55}

.gallery{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.7fr);gap:var(--grid-gap);align-items:start}
.section-heading{max-width:520px}.section-heading>p:last-child{margin:28px 0 0}
.gallery__intro{position:sticky;top:clamp(180px,13vw,220px)}
.gallery__masonry{column-count:3;column-gap:clamp(14px,1.6vw,24px)}
.gallery__masonry figure{break-inside:avoid;margin:0 0 clamp(14px,1.6vw,24px);overflow:hidden}
.gallery__masonry img{display:block;width:100%;height:auto;object-fit:initial}

/* Gallery reveal */
.gallery__masonry figure.gallery-reveal-item{
  opacity:0;
  transform:translateY(7px);
  transition:
    opacity 900ms var(--motion-ease) var(--gallery-reveal-delay,0ms),
    transform 900ms var(--motion-ease) var(--gallery-reveal-delay,0ms);
  will-change:opacity,transform
}
.gallery__masonry figure.gallery-reveal-item.is-revealed{opacity:1;transform:none}
.location{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);gap:var(--grid-gap);align-items:start}
.location__map-wrap{min-width:0}
.location__map{height:clamp(560px,68vh,820px)}
.location__map iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(.65) contrast(.92)}
.location__map-link{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding-bottom:6px;border-bottom:1px solid currentColor;text-decoration:none;font-size:11px;line-height:1;letter-spacing:.14em;text-transform:uppercase}
.location__map-link span{font-size:13px;line-height:1}
.booking{min-height:68svh;padding:0 var(--gutter);text-align:center}
.booking__inner{min-height:68svh;padding:var(--space-booking-y) 0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-top:1px solid var(--line)}
.booking__inner>p{margin:0 0 30px;font-size:var(--label);letter-spacing:.16em}
.booking h2{font-size:clamp(66px,9vw,142px);line-height:.86}
.booking__trigger{margin-top:58px;padding:0 0 8px;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-size:13px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}

.booking-dialog[hidden]{display:none}
.booking-dialog{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:var(--gutter);pointer-events:none}
.booking-dialog.is-active{pointer-events:auto}
.booking-dialog__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:transparent;
  opacity:0;
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  transition:opacity 420ms cubic-bezier(.22,.61,.36,1);
  cursor:pointer
}
.booking-dialog__panel{position:relative;z-index:1;width:min(560px,100%);padding:clamp(42px,5vw,72px);background:rgba(255,255,255,.30);border-radius:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.05);color:var(--ink);text-align:left;opacity:0;transform:translateY(8px);
  transition:opacity 420ms cubic-bezier(.22,.61,.36,1),transform 420ms cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
.booking-dialog.is-active .booking-dialog__backdrop{opacity:1}
.booking-dialog.is-active .booking-dialog__panel{opacity:1;transform:translateY(0)}
.booking-dialog.is-closing .booking-dialog__backdrop{transition-duration:300ms}
.booking-dialog.is-closing .booking-dialog__panel{transition-duration:300ms}
.booking-dialog__close{position:absolute;top:20px;right:22px;border:0;background:transparent;color:inherit;font-family:Arial,Helvetica,sans-serif;font-size:28px;font-weight:300;line-height:1;cursor:pointer}
.booking-dialog__eyebrow{margin:0 0 24px;font-size:11px;letter-spacing:.18em}
.booking-dialog__panel h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,4.5vw,58px);font-weight:400;letter-spacing:-.045em;line-height:.98}
.booking-dialog__links{margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--line)}
.booking-dialog__links a{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;font-family:Georgia,"Times New Roman",serif;font-size:clamp(20px,2vw,28px)}
.booking-dialog__links span{font-family:Arial,Helvetica,sans-serif;font-size:13px}
body.is-dialog-open{overflow:hidden}


.footer{
position:relative;
z-index:1;
padding:clamp(96px,10vw,156px) var(--gutter) 34px;
background:rgba(0,0,0,.03);
color:#24231f;
display:grid;
grid-template-columns:1.45fr 1fr 1.2fr .8fr;
gap:clamp(40px,4.5vw,82px);
font-size:14px;
line-height:1.65
}
.footer a{text-decoration:none}
.footer__brand{align-self:start;max-width:320px}
.footer__brand img{width:clamp(150px,13vw,210px);height:auto;object-fit:contain;object-position:left center}
.footer__brand p{margin:20px 0 0;font-family:Georgia,serif;font-size:clamp(18px,1.5vw,24px);line-height:1.35;color:rgba(36,35,31,.68)}
.footer__column{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:10px;
padding-left:clamp(24px,2vw,36px);
border-left:1px solid var(--line)
}
.footer__column:first-of-type{
padding-left:0;
border-left:0
}
.footer__label{margin:0 0 14px;font-size:11px;letter-spacing:.18em;color:rgba(36,35,31,.5)}
.footer address{font-style:normal;color:rgba(36,35,31,.78)}
.footer__bottom{grid-column:1/-1;margin-top:44px;padding-top:24px;border-top:1px solid rgba(36,35,31,.18);display:grid;grid-template-columns:1fr auto;gap:24px;font-size:11px;letter-spacing:.08em;color:rgba(36,35,31,.52)}
.footer__bottom p{margin:0}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .hero__photo,.hero__branding,.hero__scroll{transform:none;will-change:auto}
  .hero__tone{will-change:auto}
  .hero__photo,.hero__tone,.hero__branding,.hero__branding img,.hero__scroll,.site-nav{opacity:1;transform:none}
  .site-header,.header-brand,.site-nav,.hero__photo,.hero__tone,.hero__branding img,.hero__scroll{transition:none}
  .reveal-item{opacity:1;transform:none;transition:none;will-change:auto}
  .gallery__masonry figure.gallery-reveal-item{opacity:1;transform:none;transition:none;will-change:auto}
  .booking-dialog__backdrop,.booking-dialog__panel{transition:none}
  .booking-dialog__panel{transform:none}
}
@media(max-width:900px){
  :root{--gutter:22px;--space-hero:88px;--space-feature:96px;--space-break:120px;--space-content:76px;--space-book:48px;--space-booking-y:72px;--paired-row-gap:68px;--feature-internal-gap:40px;--grid-gap:48px;--title:clamp(44px,9vw,72px);--label:18px}
  .hero{min-height:580px}.site-header{padding:20px 22px}.header-brand{width:58px}
  .reveal-item{--reveal-distance:6px}
  .gallery__masonry figure.gallery-reveal-item{transform:translateY(5px)}
  .gallery__masonry figure.gallery-reveal-item.is-revealed{transform:none}
  .feature,.feature--image-left,.stay,.floorplan,.gallery,.location{grid-template-columns:1fr;min-height:auto}.feature:not(.feature--paired-layout){row-gap:var(--feature-internal-gap)}.feature__copy{max-width:680px;margin-left:var(--gutter)!important;margin-right:var(--gutter)!important}.feature--image-left:not(.feature--paired-layout) .feature__media{order:2}.feature--image-left:not(.feature--paired-layout) .feature__copy{order:1}
  .feature--paired-layout .feature__row{grid-template-columns:1fr!important;row-gap:var(--feature-internal-gap)}.feature--paired-layout .feature__row--secondary{margin-top:var(--paired-row-gap)}
  .feature--paired-layout.feature--image-right .feature__row--primary .feature__copy,.feature--paired-layout.feature--image-left .feature__row--primary .feature__copy{order:1}
  .feature--paired-layout.feature--image-right .feature__row--primary .feature__media-frame,.feature--paired-layout.feature--image-left .feature__row--primary .feature__media-frame{order:2}
  .feature--paired-layout .feature__row--secondary .feature__media-frame{order:1}.feature--paired-layout .feature__row--secondary .feature__copy{order:2}
  .floorplan__intro{grid-row:auto;max-width:680px}
  .floorplan__drawings{gap:56px}
  .floorplan__drawing--1f img{height:auto;width:100%}
  .floorplan__drawing--2f img{height:auto;width:86.5%}
  .sleeping-arrangement{grid-column:auto}
  .stay__facts div{grid-template-columns:130px 1fr}.gallery__intro{position:static}.gallery__masonry{column-count:2}.location__map{height:clamp(520px,64vh,720px)}
  .footer{grid-template-columns:1fr 1fr;row-gap:54px}.footer__brand{grid-column:1/-1}.footer__bottom{grid-template-columns:1fr auto}
}
@media(max-width:560px){
  .site-nav{gap:7px}
  .site-nav>a:not(.site-nav__book){min-width:30px;min-height:40px;padding:10px 2px}
  .site-nav__book{margin-left:10px}.hero__branding img{width:clamp(132px,37vw,176px)}
  :root{--space-feature:84px;--paired-row-gap:56px;--feature-internal-gap:32px}
  .feature__media-main,.feature__media-frame{aspect-ratio:4/3}
  .floorplan{row-gap:46px}
  .floorplan__drawings{gap:42px}
  .floorplan__drawing figcaption{margin-bottom:14px}
  .sleeping-arrangement__grid{grid-template-columns:1fr}
  .sleeping-arrangement__grid article{min-height:0;padding:20px 0;border-left:0;border-top:1px solid var(--line)}
  .sleeping-arrangement__grid article:first-child{border-top:0;padding-top:0}
  .stay__facts div{grid-template-columns:1fr;gap:8px}
  .gallery__masonry{
    column-count:2;
    column-gap:10px;
  }
  .gallery__masonry figure{
    margin-bottom:10px;
  }
  .location__map{height:500px}
  .footer{
    grid-template-columns:1fr;
    row-gap:0;
    padding:84px var(--gutter) 30px;
  }
  .footer__brand{
    grid-column:auto;
    width:100%;
    max-width:none;
    margin:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding-bottom:54px;
  }
  .footer__brand img{
    width:clamp(82px,24vw,110px);
  }
  .footer__brand p{
    max-width:22ch;
    margin:14px auto 0;
    text-align:center;
  }
  .footer__column{
    gap:9px;
    padding:28px 0;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .footer__label{
    margin-bottom:12px;
  }
  .footer__bottom{
    margin-top:28px;
    padding-top:22px;
    grid-template-columns:1fr auto;
    align-items:end;
    gap:18px;
  }
  .footer__bottom>a{
    justify-self:end;
  }
}

/* Supporting section reveal */
.content-reveal-item{
  opacity:0;
  transform:translateY(var(--content-reveal-distance,7px));
  transition:
    opacity 900ms var(--motion-ease) var(--content-reveal-delay,0ms),
    transform 900ms var(--motion-ease) var(--content-reveal-delay,0ms);
  will-change:opacity,transform
}
.content-reveal-item--visual{--content-reveal-distance:0px}
.content-reveal-item.is-revealed{opacity:1;transform:none}

@media (max-width:900px){
  .content-reveal-item{--content-reveal-distance:5px}
  .content-reveal-item--visual{--content-reveal-distance:0px}
}

@media (prefers-reduced-motion:reduce){
  .content-reveal-item{opacity:1;transform:none;transition:none;will-change:auto}
}
