/* =========================================================
   Seascape Getaway — editorial design system
   Faithful to the Woodstar reference:
   pearl-white paper · deep navy ink · one sapphire accent
   Cormorant Garamond (300) display · Manrope labels
   ========================================================= */

:root{
  --paper:#f7f9fc;       /* primary section background — soft pearl */
  --white:#ffffff;       /* purest white — alt sections / colophon */
  --wash:#eef3f8;        /* pale wash */
  --ink:#0e2a47;         /* primary text — deep navy */
  --ink-soft:#2c4a72;    /* softer navy — body / captions */
  --muted:#6f87a3;       /* muted slate — labels / meta */
  --accent:#2c5a87;      /* sapphire accent — used sparingly */
  --accent-deep:#1a3d5e; /* darker sapphire — hover / emphasis */
  --rule:rgba(14,42,71,.12);
  --rule-soft:rgba(14,42,71,.10);
  --night:#08111d;       /* near-black navy for image overlays */

  --display:"Cormorant Garamond","Times New Roman",serif;
  --sans:"Manrope",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --slow:cubic-bezier(.65,.05,.36,1);

  --maxw:1640px;
  --gutter:56px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  font-size:16px;
  line-height:1.7;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--accent);color:var(--paper);}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);width:100%;}
.wrap-narrow{max-width:1080px;margin:0 auto;padding:0 var(--gutter);width:100%;}

/* ---------- Display type ---------- */
.d{font-family:var(--display);font-weight:300;line-height:.95;letter-spacing:-.012em;color:var(--ink);margin:0;}
.d em{font-style:italic;color:var(--accent);}
h1,h2,h3,h4{font-family:var(--display);font-weight:300;margin:0;}
h1 em,h2 em,h3 em,h4 em{font-style:italic;color:var(--accent);}
p{margin:0 0 1.2em;}

/* ---------- Label / eyebrow ---------- */
.label{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.34em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin:0;
}
.label::before{content:"";display:inline-block;width:34px;height:1px;background:var(--accent);flex:0 0 auto;}
.label--plain::before{display:none;}
.label--ember{color:var(--accent-deep);}

/* ---------- Lede / serif body ---------- */
.lede{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(20px,2vw,26px);line-height:1.5;color:var(--ink-soft);}
.serif{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--ink-soft);}
.meta{font-family:var(--sans);font-size:13px;letter-spacing:.02em;color:var(--ink-soft);line-height:1.7;}

/* ---------- CTA ---------- */
.cta{
  display:inline-flex;align-items:center;gap:16px;
  font-family:var(--sans);font-size:11px;letter-spacing:.32em;text-transform:uppercase;font-weight:600;
  padding:18px 30px;border:0;cursor:pointer;
  background:var(--ink);color:var(--white);
  transition:background .4s var(--ease),letter-spacing .4s var(--ease),box-shadow .4s var(--ease);
}
.cta:hover{background:var(--accent-deep);letter-spacing:.36em;}
.cta--accent{background:var(--accent);}
.cta--accent:hover{background:var(--accent-deep);}
.cta--light{background:var(--white);color:var(--ink);}
.cta--light:hover{background:var(--accent);color:var(--white);}
.cta--ghost{background:transparent;border:1px solid currentColor;color:var(--ink);}
.cta--ghost:hover{background:var(--ink);color:var(--white);}
.cta .arr{display:inline-block;width:20px;height:1px;background:currentColor;position:relative;transition:width .4s var(--ease);}
.cta .arr::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}
.cta:hover .arr{width:30px;}

.textlink{
  font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;
  color:var(--accent-deep);display:inline-flex;align-items:center;gap:14px;
}
.textlink .arr{display:inline-block;width:24px;height:1px;background:currentColor;position:relative;transition:width .4s var(--ease);}
.textlink .arr::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}
.textlink:hover .arr{width:38px;}

/* =========================================================
   Top nav
   ========================================================= */
.top{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;
  padding:22px var(--gutter);
  color:var(--white);
  transition:padding .5s var(--ease),background .5s var(--ease),border-color .5s var(--ease),color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.top::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,17,29,.55) 0%,rgba(8,17,29,.18) 60%,rgba(8,17,29,0) 100%);
  transition:opacity .5s var(--ease);}
.top.is-down{background:rgba(255,255,255,.96);backdrop-filter:blur(14px) saturate(1.4);padding:14px var(--gutter);border-bottom:1px solid var(--rule);color:var(--ink);}
.top.is-down::before{opacity:0;}
.top--solid{position:sticky;background:rgba(255,255,255,.96);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--rule);color:var(--ink);padding:16px var(--gutter);}
.top--solid::before{opacity:0;}

.brand{display:flex;align-items:center;gap:18px;justify-self:start;}
.brand__name{font-family:var(--display);font-weight:300;font-size:24px;letter-spacing:.005em;line-height:1;}
.brand__name em{font-style:italic;color:var(--accent);}
.top.is-down .brand__name em,.top--solid .brand__name em{color:var(--accent);}
.brand__dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.5;}
.brand__place{font-family:var(--sans);font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;font-weight:500;opacity:.8;}

.nav{display:flex;align-items:center;gap:34px;justify-self:center;list-style:none;margin:0;padding:0;}
.nav a{font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:500;position:relative;padding:6px 0;}
.nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--accent);transition:left .4s var(--ease),right .4s var(--ease);}
.nav a:hover::after,.nav a.active::after{left:0;right:0;}
.nav a.active{color:inherit;}

.top__right{justify-self:end;display:flex;align-items:center;gap:24px;}
.top__cta{font-family:var(--sans);font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;font-weight:600;background:var(--accent);color:var(--white);padding:14px 22px;transition:background .4s var(--ease);}
.top__cta:hover{background:var(--accent-deep);}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;color:inherit;}
.nav-toggle span{display:block;width:24px;height:1.5px;background:currentColor;margin:5px 0;transition:.3s;}

/* spine — vertical label on the left edge */
.spine{position:fixed;left:18px;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;z-index:40;
  font-family:var(--sans);font-size:9.5px;letter-spacing:.42em;text-transform:uppercase;font-weight:500;color:var(--muted);}

/* =========================================================
   Hero
   ========================================================= */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--white);overflow:hidden;background:var(--night);}
.hero__bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero__bg img{width:100%;height:100%;object-fit:cover;animation:ken 26s var(--ease) forwards;}
@keyframes ken{from{transform:scale(1.12);}to{transform:scale(1);}}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,17,29,.30) 0%,rgba(8,17,29,.05) 40%,rgba(8,17,29,.78) 100%);}
.hero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,7vh,80px);}
.hero__name{font-family:var(--display);font-weight:300;font-size:clamp(70px,13vw,210px);line-height:.86;letter-spacing:-.025em;}
.hero__name em{font-style:italic;color:#9fc1e0;}
.hero__sub{font-family:var(--display);font-style:italic;font-size:clamp(20px,2.4vw,34px);line-height:1.3;margin-top:.4em;color:rgba(255,255,255,.92);max-width:18ch;}
.hero__row{display:flex;flex-wrap:wrap;align-items:center;gap:22px 40px;margin-top:48px;}
.hero__rate{font-family:var(--display);font-style:italic;font-size:22px;color:rgba(255,255,255,.92);}
.hero__rate b{font-style:normal;font-weight:500;}
.hero__corner{position:absolute;top:clamp(90px,14vh,150px);right:var(--gutter);z-index:2;text-align:right;font-family:var(--sans);font-size:11px;letter-spacing:.16em;line-height:2;color:rgba(255,255,255,.7);}
.hero__corner b{display:block;color:var(--white);letter-spacing:.22em;text-transform:uppercase;font-weight:500;}
.hero__corner em{font-family:var(--display);font-style:italic;font-size:15px;letter-spacing:0;text-transform:none;color:rgba(255,255,255,.85);}
.hero__scroll{position:absolute;bottom:34px;right:var(--gutter);z-index:2;font-family:var(--sans);font-size:9.5px;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.6);writing-mode:vertical-rl;}

/* =========================================================
   Sections
   ========================================================= */
.section{padding:clamp(80px,13vh,130px) 0;position:relative;}
.section--white{background:var(--white);}
.section--tight{padding:clamp(64px,9vh,100px) 0;}
.section--dark{background:var(--night);color:var(--white);}
.section--dark .d{color:var(--white);}
.section--dark .lede,.section--dark .serif{color:rgba(255,255,255,.78);}
.section--dark .label{color:rgba(255,255,255,.6);}

.bloom::before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.45;}

/* Asymmetric head — label column + heading column */
.head{display:grid;grid-template-columns:.34fr 1fr;gap:80px;align-items:end;margin-bottom:clamp(40px,6vw,70px);}
.head__title{font-size:clamp(38px,4.8vw,84px);line-height:1;letter-spacing:-.012em;}
.head--center{display:block;text-align:center;max-width:20ch;margin-left:auto;margin-right:auto;}

/* Overture — centered statement */
.overture{text-align:center;}
.overture__statement{font-size:clamp(36px,4.6vw,84px);line-height:1.02;letter-spacing:-.012em;max-width:20ch;margin:0 auto;}
.overture__rule{height:1px;width:100px;background:var(--accent);margin:48px auto;}
.overture .lede{max-width:60ch;margin:0 auto;}

/* Diptych — image + text */
.diptych{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center;}
.diptych--offset .diptych__text{padding-top:60px;}
.diptych.reverse .diptych__media{order:2;}
.diptych__media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.diptych__media.wide img{aspect-ratio:5/4;}
.diptych__media.tall img{aspect-ratio:3/4;}
.cap{font-family:var(--display);font-style:italic;font-size:15px;color:var(--muted);margin-top:14px;}

/* Numbered editorial list (i. ii. iii.) */
.numbered{display:grid;gap:34px;margin-top:34px;}
.numbered__item{display:grid;grid-template-columns:auto 1fr;gap:22px;}
.numbered__ix{font-family:var(--display);font-style:italic;font-size:22px;color:var(--accent);line-height:1;}
.numbered__item h4{font-size:clamp(24px,2.4vw,34px);line-height:1.05;letter-spacing:-.008em;margin-bottom:.3em;}
.numbered__item p{font-family:var(--display);font-style:italic;font-size:18px;line-height:1.55;color:var(--ink-soft);margin:0;}

/* =========================================================
   Item features (alternating big property blocks)
   ========================================================= */
.item{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(40px,6vw,90px);align-items:center;}
.item + .item{margin-top:clamp(60px,9vw,130px);}
.item:nth-child(even) .item__media{order:2;}
.item__media{position:relative;overflow:hidden;}
.item__media img{width:100%;aspect-ratio:5/4;object-fit:cover;transition:transform 1.3s var(--slow),filter 1.3s var(--ease);}
.item:hover .item__media img{transform:scale(1.03);filter:saturate(1.06);}
.item__tag{position:absolute;top:20px;left:20px;background:rgba(255,255,255,.92);color:var(--accent-deep);font-family:var(--sans);font-size:10px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;padding:9px 14px;}
.item__body h3{font-size:clamp(34px,4vw,64px);line-height:1;letter-spacing:-.012em;margin-bottom:.25em;}
.item__specs{display:flex;flex-wrap:wrap;gap:10px 26px;font-family:var(--sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:18px 0 22px;}
.item__body p{font-family:var(--display);font-style:italic;font-size:19px;line-height:1.55;color:var(--ink-soft);max-width:46ch;}
.item__foot{display:flex;align-items:center;gap:34px;margin-top:30px;}
.item__rate{font-family:var(--display);font-size:24px;}
.item__rate span{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-left:6px;}

/* =========================================================
   Day cards (giant italic numerals)
   ========================================================= */
.day{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,48px);}
.day__card{position:relative;}
.day__num{position:absolute;top:-22px;left:-8px;font-family:var(--display);font-style:italic;font-size:96px;line-height:.8;letter-spacing:-.04em;color:var(--accent);opacity:.9;}
.day__time{position:relative;display:flex;align-items:center;gap:14px;font-family:var(--sans);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:0 0 18px;padding-top:46px;}
.day__time::before{content:"";width:30px;height:1px;background:var(--accent);}
.day__media{overflow:hidden;}
.day__media img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:24px;transition:transform 1.2s var(--slow);}
.day__card:hover .day__media img{transform:scale(1.04);}
.day__card h3{font-size:clamp(26px,2.6vw,34px);line-height:1.1;letter-spacing:-.005em;margin-bottom:.4em;}
.day__card p{font-family:var(--display);font-style:italic;font-size:17px;line-height:1.55;color:var(--ink-soft);margin:0;}

/* =========================================================
   Facts / stats blocks
   ========================================================= */
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule);}
.fact{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:46px 34px 40px;}
.fact__num{font-family:var(--display);font-weight:300;font-size:clamp(56px,7vw,96px);line-height:.85;letter-spacing:-.02em;color:var(--accent);}
.fact__num sup{font-style:italic;font-size:.38em;color:var(--accent-deep);vertical-align:top;margin-left:2px;}
.fact__unit{font-family:var(--sans);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px;}
.fact__desc{font-family:var(--display);font-style:italic;font-size:16px;line-height:1.5;color:var(--ink-soft);}

/* dossier — 4-up stat strip */
.dossier{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule);}
.dossier .fact{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);}

/* =========================================================
   Proof / reviews
   ========================================================= */
.proof__rating{position:relative;font-family:var(--display);font-weight:300;font-size:clamp(64px,8vw,120px);line-height:1;color:var(--accent);}
.proof__rating .stars{display:block;font-size:.18em;letter-spacing:.18em;color:var(--accent);margin-top:.4em;}
.reviews{columns:2;column-gap:clamp(28px,4vw,56px);}
.review{break-inside:avoid;border-top:1px solid var(--rule);padding:34px 0;margin-bottom:0;}
.review:first-child{border-top:0;}
.review .stars{color:var(--accent);letter-spacing:.16em;font-size:13px;margin-bottom:14px;}
.review h4{font-size:clamp(24px,2.4vw,32px);line-height:1.1;letter-spacing:-.006em;margin-bottom:.5em;}
.review p{font-family:var(--display);font-style:italic;font-size:19px;line-height:1.55;color:var(--ink-soft);margin:0;}
.review .by{font-family:var(--sans);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:18px;}

/* =========================================================
   Place / location list
   ========================================================= */
.place__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);}
.place__item{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--rule);transition:padding-left .4s var(--ease);}
.place__item:hover{padding-left:18px;}
.place__name{font-family:var(--display);font-weight:300;font-size:clamp(22px,2.4vw,28px);line-height:1.1;}
.place__sub{font-family:var(--display);font-style:italic;font-size:15px;color:var(--muted);}
.place__dist{font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--accent-deep);white-space:nowrap;text-align:right;}
.place__coords{font-family:var(--display);font-size:clamp(40px,5vw,80px);line-height:1;letter-spacing:-.012em;}
.place__ll{font-family:var(--sans);font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-top:16px;}

/* attractions grouping */
.attr-group{margin-bottom:clamp(40px,6vw,70px);}
.attr-group h3{font-size:clamp(28px,3vw,46px);line-height:1;letter-spacing:-.01em;margin-bottom:8px;}
.attr-group h3 em{font-style:italic;color:var(--accent);}

/* =========================================================
   Inquire / reservation form
   ========================================================= */
.inquire-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(40px,6vw,90px);align-items:start;}
.inquire__left .lede{margin-bottom:36px;}
.inquire__rate{border-top:1px solid var(--rule);padding-top:24px;margin-top:8px;}
.inquire__rate .k{font-family:var(--sans);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent-deep);}
.inquire__rate .v{font-family:var(--display);font-size:clamp(40px,5vw,64px);line-height:1;margin-top:10px;}
.inquire__rate .v span{font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.contact-lines{margin-top:30px;display:grid;gap:2px;}
.contact-lines a,.contact-lines span{font-family:var(--display);font-style:italic;font-size:20px;color:var(--ink-soft);}

.form{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;align-items:end;}
.field{display:flex;flex-direction:column;padding:30px 0 14px;border-bottom:1px solid var(--rule);position:relative;}
.field--full{grid-column:span 2;}
.field label{font-family:var(--sans);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--accent-deep);font-weight:500;margin-bottom:10px;transition:letter-spacing .4s var(--ease);}
.field input,.field select,.field textarea{background:transparent;border:none;outline:none;color:var(--ink);font-family:var(--display);font-weight:300;font-size:24px;}
.field textarea{font-size:20px;min-height:80px;resize:vertical;font-style:italic;}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;}
.field input::placeholder{color:rgba(14,42,71,.30);font-style:italic;}
.field::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);}
.field:focus-within::after{transform:scaleX(1);}
.field:focus-within label{letter-spacing:.36em;color:var(--accent);}
.form__foot{grid-column:span 2;margin-top:34px;display:flex;flex-direction:column;gap:18px;}
.form__note{font-family:var(--display);font-style:italic;font-size:16px;color:var(--muted);margin:0;}

/* =========================================================
   Endstrip / closing
   ========================================================= */
.endstrip{text-align:center;}
.endstrip h2,.closing h2{font-size:clamp(48px,8vw,140px);line-height:.94;letter-spacing:-.02em;}
.closing{text-align:center;}
.closing p{font-family:var(--display);font-style:italic;font-size:clamp(20px,2vw,26px);color:var(--ink-soft);max-width:46ch;margin:24px auto 36px;}
.section--dark .closing p{color:rgba(255,255,255,.78);}

/* page hero (interior) */
.pagehero{position:relative;min-height:64vh;display:flex;align-items:flex-end;color:var(--white);overflow:hidden;background:var(--night);}
.pagehero .hero__bg img{animation:ken 32s var(--ease) forwards;}
.pagehero .hero__bg::after{background:linear-gradient(180deg,rgba(8,17,29,.25),rgba(8,17,29,.72));}
.pagehero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,6vh,70px);}
.pagehero__title{font-size:clamp(48px,8vw,128px);line-height:.94;letter-spacing:-.02em;}
.pagehero__title em{font-style:italic;color:#9fc1e0;}
.pagehero__specs{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:24px;font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.78);}

/* amenities columns */
.amenities{columns:3;column-gap:56px;}
.amenity{break-inside:avoid;margin-bottom:34px;}
.amenity h4{font-size:24px;color:var(--ink);margin-bottom:12px;}
.amenity h4 em{font-style:italic;color:var(--accent);}
.amenity ul{list-style:none;margin:0;padding:0;}
.amenity li{font-family:var(--display);font-style:italic;font-size:17px;color:var(--ink-soft);padding:3px 0;}

/* moments / gallery grid */
.moments{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.moment{overflow:hidden;}
.moment img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;transition:transform 1.2s var(--slow),filter .6s var(--ease);}
.moment:hover img{transform:scale(1.04);filter:saturate(1.06);}
.moment--tall img{aspect-ratio:3/5;}
.moment--wide img{aspect-ratio:5/4;}

/* =========================================================
   Colophon footer
   ========================================================= */
.colophon{background:var(--white);color:var(--muted);border-top:1px solid var(--rule);padding:90px 0 36px;}
.colophon__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:50px;padding-bottom:60px;border-bottom:1px solid var(--rule);}
.colophon__mark{font-family:var(--display);font-weight:300;font-size:38px;line-height:.9;letter-spacing:-.015em;color:var(--ink);}
.colophon__mark em{font-style:italic;color:var(--accent);}
.colophon__grid p{font-size:14px;line-height:1.6;color:var(--ink-soft);max-width:34ch;margin-top:16px;}
.colophon h4{font-family:var(--sans);font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 18px;}
.colophon ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.colophon a,.colophon li{font-size:14px;color:var(--ink-soft);transition:color .3s var(--ease);}
.colophon a:hover{color:var(--accent);}
.colophon__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:30px;font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);}

/* =========================================================
   Reveal (progressive enhancement)
   ========================================================= */
html.js .lift{opacity:0;transform:translateY(36px) scale(.99);transition:opacity 1.4s var(--slow),transform 1.4s var(--slow);}
html.js .lift.in{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
  .hero__bg img{animation:none;}
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1240px){.brand__place{display:none;}}
@media (max-width:1100px){.spine{display:none;}}
@media (max-width:980px){
  :root{--gutter:34px;}
  .nav{display:none;}
  .nav-toggle{display:block;}
  .top{grid-template-columns:1fr auto;}
  .top__cta{display:none;}
  .top.open .nav{display:flex;flex-direction:column;align-items:flex-start;position:absolute;top:100%;left:0;right:0;background:var(--white);border-bottom:1px solid var(--rule);padding:24px var(--gutter) 30px;gap:18px;}
  .top.open .nav a{color:var(--ink);}
  .head{grid-template-columns:1fr;gap:24px;}
  .diptych,.item,.inquire-grid{grid-template-columns:1fr;}
  .diptych.reverse .diptych__media,.item:nth-child(even) .item__media{order:0;}
  .diptych--offset .diptych__text{padding-top:0;}
  .day{grid-template-columns:1fr;}
  .dossier{grid-template-columns:repeat(2,1fr);}
  .amenities{columns:2;}
  .moments{grid-template-columns:repeat(2,1fr);}
  .colophon__grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:780px){
  :root{--gutter:22px;}
  .reviews,.amenities{columns:1;}
  .hero__corner{display:none;}
  .day__num{font-size:72px;}
}
@media (max-width:560px){
  .facts{grid-template-columns:1fr;}
  .dossier{grid-template-columns:1fr;}
  .moments{grid-template-columns:1fr;}
  .form{grid-template-columns:1fr;}
  .field--full,.form__foot{grid-column:span 1;}
  .colophon__grid{grid-template-columns:1fr;}
  .item__foot{flex-direction:column;align-items:flex-start;gap:18px;}
}
