/* ==========================================================================
   Seagate Works — site.css
   Paper, ink, terracotta. Cormorant Garamond for display, Jost for text.
   ========================================================================== */

:root{
  --paper:#FBF8F2;
  --paper-deep:#F3EDE2;
  --paper-warm:#F7F1E6;
  --ink:#2B2622;
  --ink-deep:#1E1A17;
  --ink-soft:#6B615A;
  --ink-mute:#9A8F86;
  --stucco:#E9B79A;
  --stucco-tint:#F7E6DA;
  --terracotta:#B95F3B;
  --terracotta-deep:#9E4E2E;
  --palm:#6F7F52;
  --sky:#DCE6EC;
  --line:rgba(43,38,34,.14);
  --line-strong:rgba(43,38,34,.28);
  --line-light:rgba(251,248,242,.18);

  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Jost','Helvetica Neue',Arial,sans-serif;

  --gutter:clamp(20px,5vw,72px);
  --measure:58ch;
  --max:1440px;
  --max-text:1160px;

  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur:.9s;
  --header-h:84px;
}

/* ---- reset & base ---------------------------------------------------- */
*,*::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:1rem;line-height:1.7;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:clip;
}
h1,h2,h3,h4,.serif{font-family:var(--serif);font-weight:400;margin:0;text-wrap:balance;line-height:1.08;letter-spacing:-.005em;}
h1 em,h2 em,h3 em,.serif em{font-style:italic;color:var(--terracotta);}
p{margin:0 0 1.1em;}
p:last-child{margin-bottom:0;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;height:auto;display:block;}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;}
address{font-style:normal;}
::selection{background:var(--stucco-tint);color:var(--ink);}
:focus-visible{outline:1.5px solid var(--terracotta);outline-offset:4px;border-radius:2px;}
[hidden]{display:none !important;}

.skip{position:absolute;left:-999px;top:12px;z-index:1000;background:var(--ink);color:var(--paper);padding:10px 16px;font-size:.8rem;}
.skip:focus{left:12px;}

/* Cross-document page transitions (progressive; Chrome/Safari 18+) */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:vt-out .32s var(--ease-in-out) both;}
::view-transition-new(root){animation:vt-in .5s var(--ease-out) both;}
@keyframes vt-out{to{opacity:0;}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px);}}

/* ---- type utilities -------------------------------------------------- */
.caps{font-family:var(--sans);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft);font-weight:400;}
.eyebrow{display:block;margin-bottom:20px;color:var(--terracotta);font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;font-weight:400;}
.eyebrow--light{color:var(--stucco);}
.eyebrow--center{text-align:center;}
.lede{font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--ink-soft);line-height:1.65;max-width:48ch;}
.measure{max-width:var(--measure);}
.muted{color:var(--ink-soft);}

.display-xl{font-size:clamp(2.9rem,7.2vw,6.4rem);line-height:.98;letter-spacing:-.015em;}
.display-lg{font-size:clamp(2.4rem,5.2vw,4.2rem);line-height:1.02;letter-spacing:-.01em;}
.display-md{font-size:clamp(2rem,3.8vw,3.1rem);line-height:1.08;}
.display-sm{font-size:clamp(1.55rem,2.6vw,2.2rem);line-height:1.15;}

/* ---- links & buttons ------------------------------------------------- */
.link-line{
  display:inline-flex;align-items:center;gap:14px;
  font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;font-weight:400;color:var(--ink);
  padding-bottom:6px;position:relative;
}
.link-line::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--terracotta);
  transform-origin:left;transition:transform .5s var(--ease-out);
}
.link-line:hover::after{transform:scaleX(.6);}
.link-line .arrow{transition:transform .5s var(--ease-out);}
.link-line:hover .arrow{transform:translateX(6px);}
.link-line--light{color:var(--paper);}
.link-line--light::after{background:var(--stucco);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:17px 40px;border:1px solid var(--ink);border-radius:999px;
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;font-weight:400;color:var(--ink);
  position:relative;overflow:hidden;isolation:isolate;
  transition:color .45s var(--ease-out),border-color .45s var(--ease-out),transform .45s var(--ease-out);
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;
  transform:translateY(101%);transition:transform .55s var(--ease-out);
}
.btn:hover{color:var(--paper);}
.btn:hover::before{transform:translateY(0);}
.btn:active{transform:scale(.985);}
.btn--fill{background:var(--ink);color:var(--paper);}
.btn--fill::before{background:var(--terracotta);}
.btn--fill:hover{border-color:var(--terracotta);}
.btn--light{border-color:rgba(251,248,242,.6);color:var(--paper);}
.btn--light::before{background:var(--paper);}
.btn--light:hover{color:var(--ink);border-color:var(--paper);}
.btn--small{padding:12px 24px;font-size:.62rem;letter-spacing:.22em;}
.btn--wide{width:100%;}

/* ---- header ---------------------------------------------------------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .5s var(--ease-out),box-shadow .5s var(--ease-out),transform .6s var(--ease-out);
}
.site-header::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);
  opacity:0;transition:opacity .5s;
}
.site-header.is-scrolled{background:rgba(251,248,242,.82);-webkit-backdrop-filter:saturate(1.4) blur(18px);backdrop-filter:saturate(1.4) blur(18px);}
.site-header.is-scrolled::after{opacity:1;}
.site-header.is-hidden{transform:translateY(-100%);}
.site-header__inner{
  max-width:var(--max);margin:0 auto;height:var(--header-h);
  padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{display:block;flex:none;}
.brand__mark{width:clamp(150px,14vw,196px);height:auto;transition:opacity .3s;}
.brand:hover .brand__mark{opacity:.72;}

.nav{display:none;}
@media (min-width:980px){.nav{display:block;}}
.nav__list{list-style:none;margin:0;padding:0;display:flex;gap:6px;}
.nav__item{position:relative;}
.nav__link{
  display:inline-flex;align-items:center;gap:8px;padding:12px 16px;
  font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;font-weight:400;color:var(--ink);
  position:relative;
}
.nav__link::after{
  content:"";position:absolute;left:16px;right:16px;bottom:6px;height:1px;background:var(--terracotta);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out);
}
.nav__item:hover>.nav__link::after,.nav__item.is-open>.nav__link::after{transform:scaleX(1);}
html[data-nav="spaces"] .nav__item:nth-child(1)>.nav__link::after,
html[data-nav="solutions"] .nav__item:nth-child(2)>.nav__link::after{transform:scaleX(1);}
.has-sub>.nav__link::before{
  content:"";width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:translateY(-2px) rotate(45deg);order:2;transition:transform .3s;
}
.nav__item.is-open>.nav__link::before{transform:translateY(1px) rotate(225deg);}
.nav__sub{
  position:absolute;top:calc(100% + 6px);left:4px;min-width:250px;
  background:rgba(251,248,242,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  border:1px solid var(--line);padding:10px;
  box-shadow:0 24px 60px -20px rgba(43,38,34,.25);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .35s var(--ease-out),transform .35s var(--ease-out),visibility .35s;
}
.nav__item:hover>.nav__sub,.nav__item.is-open>.nav__sub,.nav__item:focus-within>.nav__sub{opacity:1;visibility:visible;transform:translateY(0);}
.nav__sub a{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:2px;transition:background .25s;}
.nav__sub a:hover{background:var(--stucco-tint);}
.nav__sub-name{font-family:var(--serif);font-size:1.15rem;line-height:1.1;}
.nav__sub-desc{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);}

.site-header__actions{display:flex;align-items:center;gap:22px;}
.nav__login{display:none;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);transition:color .3s;}
.nav__login:hover{color:var(--terracotta);}
@media (min-width:1180px){.nav__login{display:inline-block;}}
.site-header__actions .btn--small{display:none;}
@media (min-width:640px){.site-header__actions .btn--small{display:inline-flex;}}

.burger{
  width:44px;height:44px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  margin-right:-10px;
}
@media (min-width:980px){.burger{display:none;}}
.burger__line{width:24px;height:1px;background:var(--ink);transition:transform .5s var(--ease-out),opacity .3s;}
.burger[aria-expanded="true"] .burger__line:first-child{transform:translateY(3.5px) rotate(45deg);}
.burger[aria-expanded="true"] .burger__line:last-child{transform:translateY(-3.5px) rotate(-45deg);}

/* ---- mobile menu ----------------------------------------------------- */
.mobile-menu{
  position:fixed;inset:0;z-index:90;background:var(--paper);
  padding-top:var(--header-h);overflow-y:auto;
  clip-path:inset(0 0 100% 0);visibility:hidden;
  transition:clip-path .7s var(--ease-in-out),visibility .7s;
}
.mobile-menu.is-open{clip-path:inset(0 0 0 0);visibility:visible;}
.mobile-menu__inner{padding:24px var(--gutter) 48px;max-width:640px;}
.mobile-menu__group{padding:22px 0;border-bottom:1px solid var(--line);}
.mobile-menu__group .eyebrow{margin-bottom:10px;}
.mobile-menu__group a{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  font-family:var(--serif);font-size:clamp(1.7rem,6vw,2.3rem);line-height:1.25;padding:5px 0;
  opacity:0;transform:translateY(16px);
}
.mobile-menu__group a small{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);}
.mobile-menu.is-open .mobile-menu__group a{
  animation:menu-in .8s var(--ease-out) forwards;
  animation-delay:calc(.25s + var(--i,0)*.05s);
}
@keyframes menu-in{to{opacity:1;transform:none;}}
.mobile-menu__cta{margin-top:30px;width:100%;}
.mobile-menu__foot{margin-top:24px;}
body.menu-open{overflow:hidden;}

/* ---- sections & layout ---------------------------------------------- */
.section{padding:clamp(80px,10vw,150px) var(--gutter);}
.section--tight{padding-top:clamp(56px,7vw,100px);padding-bottom:clamp(56px,7vw,100px);}
.section--flush-top{padding-top:0;}
.section--deep{background:var(--paper-deep);}
.section--ink{background:var(--ink-deep);color:var(--paper);}
.section--ink .eyebrow{color:var(--stucco);}
.section--ink .muted,.section--ink .lede{color:rgba(251,248,242,.66);}
.section--hairline{border-top:1px solid var(--line);}
.wrap{max-width:var(--max);margin:0 auto;}
.wrap--text{max-width:var(--max-text);margin:0 auto;}
.center{text-align:center;}
.center .lede{margin-left:auto;margin-right:auto;}
.head{max-width:680px;margin:0 auto clamp(48px,6vw,80px);text-align:center;}
.head .lede{margin:18px auto 0;}
.rule{height:1px;background:var(--line);border:0;margin:0;}
.hairline{width:32px;height:1px;background:var(--terracotta);margin:26px auto;}

/* ---- reveal ---------------------------------------------------------- */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-out);transition-delay:var(--d,0s);will-change:opacity,transform;}
[data-reveal="fade"]{transform:none;}
[data-reveal="scale"]{transform:scale(.96);}
[data-reveal].is-in{opacity:1;transform:none;}
.stagger>*{--d:calc(var(--i,0)*.09s);}

/* split-line headline reveal */
.lines .line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em;}
.lines .line>span{display:block;transform:translateY(110%);transition:transform 1.1s var(--ease-out);transition-delay:calc(.15s + var(--i,0)*.11s);}
.lines.is-in .line>span{transform:none;}

/* ---- hero ------------------------------------------------------------ */
.hero{
  position:relative;padding:calc(var(--header-h) + clamp(20px,4vw,48px)) var(--gutter) 0;
  text-align:center;overflow:hidden;
}
.hero__plate{
  position:relative;max-width:1360px;margin:0 auto;aspect-ratio:16/9;overflow:hidden;
}
.hero__plate img{
  width:100%;height:100%;object-fit:cover;object-position:center 60%;
  transform:scale(1.08);opacity:0;
  animation:hero-in 2.6s var(--ease-out) forwards;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 74%,transparent 100%),linear-gradient(to right,transparent 0%,#000 7%,#000 93%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to bottom,#000 0%,#000 74%,transparent 100%),linear-gradient(to right,transparent 0%,#000 7%,#000 93%,transparent 100%);
  mask-composite:intersect;
}
@keyframes hero-in{to{transform:scale(1);opacity:1;}}
.hero__caption{
  display:flex;align-items:center;justify-content:center;gap:18px;margin-top:-6px;
  opacity:0;animation:fade-up 1.2s var(--ease-out) .6s forwards;
}
.hero__caption::before,.hero__caption::after{content:"";width:44px;height:1px;background:var(--line-strong);flex:none;}
@media (max-width:640px){.hero__caption{font-size:.6rem;letter-spacing:.22em;gap:12px;}.hero__caption::before,.hero__caption::after{width:24px;}.hero__plate{aspect-ratio:4/3;}}
.hero h1{margin:clamp(26px,3.5vw,44px) auto 0;max-width:14ch;}
.hero__sub{
  margin:clamp(20px,2.5vw,30px) auto 0;max-width:46ch;color:var(--ink-soft);font-size:clamp(1rem,1.3vw,1.15rem);
  opacity:0;animation:fade-up 1.2s var(--ease-out) .9s forwards;
}
.hero__cta{
  display:flex;flex-wrap:wrap;gap:18px 34px;justify-content:center;align-items:center;margin-top:clamp(30px,3.5vw,44px);
  opacity:0;animation:fade-up 1.2s var(--ease-out) 1.1s forwards;
}
@keyframes fade-up{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.hero__scroll{
  margin:clamp(56px,7vw,96px) auto 0;width:1px;height:64px;position:relative;overflow:hidden;background:var(--line);
}
.hero__scroll::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--terracotta);animation:scroll-cue 2.2s var(--ease-in-out) infinite;}
@keyframes scroll-cue{0%{top:-100%;}55%,100%{top:100%;}}

/* ---- ticker ---------------------------------------------------------- */
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:16px 0;}
.ticker__track{display:flex;width:max-content;animation:ticker 48s linear infinite;}
.ticker:hover .ticker__track{animation-play-state:paused;}
.ticker__track span{display:inline-flex;align-items:center;gap:32px;padding-right:32px;white-space:nowrap;}
.ticker__track span::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--terracotta);opacity:.7;}
@keyframes ticker{to{transform:translateX(-50%);}}

/* ---- intro ----------------------------------------------------------- */
.intro{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,6vw,96px);align-items:start;}
@media (max-width:860px){.intro{grid-template-columns:1fr;gap:36px;}}
.intro blockquote{margin:0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.25;text-wrap:balance;}
.intro blockquote::before{content:"";display:block;width:32px;height:1px;background:var(--terracotta);margin-bottom:28px;}
.intro__text{padding-top:14px;color:var(--ink-soft);font-size:1.02rem;}
.intro__text .link-line{margin-top:22px;}

/* ---- the space ------------------------------------------------------- */
.space{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,96px);align-items:center;}
@media (max-width:860px){.space{grid-template-columns:1fr;gap:44px;}}
.space__text p{color:var(--ink-soft);}
.facts{list-style:none;margin:36px 0 0;padding:0;display:grid;border-top:1px solid var(--line);}
.facts li{display:grid;grid-template-columns:96px 1fr;gap:20px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);font-size:.92rem;color:var(--ink-soft);}
.facts b{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,3vw,2.8rem);line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;}
.plate{position:relative;overflow:hidden;}
.plate img{width:100%;transition:transform 1.4s var(--ease-out);}
.plate--wc img{
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 8%,#000 92%,transparent 100%);
  mask-composite:intersect;
}
.plate__cap{margin-top:14px;text-align:center;}
[data-parallax]{will-change:transform;}

/* ---- amenities ------------------------------------------------------- */
.amen{border-top:1px solid var(--line);}
.amen__row{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,5vw,72px);align-items:center;
  padding:clamp(28px,3.5vw,44px) 0;border-bottom:1px solid var(--line);
}
.amen__row:hover .amen__num{color:var(--terracotta);}
.amen__num{font-family:var(--serif);font-size:.95rem;color:var(--ink-mute);display:block;margin-bottom:14px;transition:color .3s;font-variant-numeric:tabular-nums;}
.amen__row h3{font-size:clamp(1.5rem,2.3vw,2rem);margin-bottom:10px;transition:color .3s;}
.amen__row:hover h3{color:var(--terracotta);}
.amen__row p{font-size:.95rem;color:var(--ink-soft);max-width:36ch;}
.amen__row .link-line{margin-top:18px;font-size:.62rem;}
.amen__art{display:flex;justify-content:flex-end;}
.amen__art .plate{width:100%;max-width:600px;aspect-ratio:16/10;}
.amen__art img{width:100%;height:100%;object-fit:cover;}
.amen__row:hover .plate img{transform:scale(1.035);}
@media (max-width:760px){
  .amen__row{grid-template-columns:1fr;gap:18px;}
  .amen__row .amen__art{order:-1;justify-content:center;}
}

/* ---- audience -------------------------------------------------------- */
.audience{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.audience div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
@media (max-width:820px){.audience{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.audience{grid-template-columns:1fr;}}
.audience div{background:var(--paper);padding:30px 26px;font-family:var(--serif);font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.2;transition:background .35s;}
.audience div:hover{background:var(--stucco-tint);}
.audience small{display:block;margin-top:8px;font-family:var(--sans);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);}

/* ---- memberships ----------------------------------------------------- */
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media (max-width:1040px){.tiers{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.tiers{grid-template-columns:1fr;}}
.tier{
  position:relative;background:var(--paper);padding:clamp(34px,3.5vw,48px) clamp(24px,2.5vw,34px) clamp(30px,3vw,40px);
  display:flex;flex-direction:column;transition:background .45s var(--ease-out);
}
.tier:hover{background:var(--paper-warm);}
.tier__tag{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:var(--terracotta);color:var(--paper);font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;padding:6px 14px;border-radius:999px;white-space:nowrap;}
.tier__name{font-family:var(--serif);font-size:clamp(1.7rem,2.2vw,2rem);line-height:1;}
.tier__desc{margin-top:8px;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);}
.tier__price{margin-top:28px;font-family:var(--serif);font-size:clamp(2.4rem,3.2vw,3rem);line-height:1;letter-spacing:-.01em;}
.tier__price sup{font-size:.45em;vertical-align:.9em;margin-right:2px;font-weight:300;}
.tier__period{margin-top:6px;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);}
.tier__rule{width:28px;height:1px;background:var(--terracotta);margin:26px 0;}
.tier__note{font-size:.92rem;color:var(--ink-soft);flex:1;}
.tier__list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px;font-size:.84rem;color:var(--ink-soft);}
.tier__list li{display:flex;gap:12px;}
.tier__list li::before{content:"";width:12px;height:1px;background:var(--terracotta);margin-top:.85em;flex:none;}
.tier .link-line{margin-top:28px;font-size:.64rem;align-self:flex-start;}
.fine{text-align:center;margin-top:28px;font-size:.8rem;color:var(--ink-soft);max-width:60ch;margin-left:auto;margin-right:auto;}

/* ---- location -------------------------------------------------------- */
.location{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,96px);align-items:center;}
@media (max-width:900px){.location{grid-template-columns:1fr;gap:40px;}}
.location p{color:var(--ink-soft);}
.addr{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:22px;padding-top:24px;border-top:1px solid var(--line);}
.addr .k{display:block;margin-bottom:6px;}
.addr .v{font-size:.95rem;}
.glance{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:10px;font-size:.9rem;color:var(--ink-soft);}
.glance li{display:flex;gap:14px;}
.glance li::before{content:"";width:14px;height:1px;background:var(--terracotta);margin-top:.85em;flex:none;}
.map{
  position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-deep);border:1px solid var(--line);
}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) sepia(.28) saturate(.9) contrast(.92) brightness(1.04);transition:filter .8s var(--ease-out);}
.map:hover iframe{filter:grayscale(.2) sepia(.1) saturate(.95);}
.map__pin{
  position:absolute;left:18px;bottom:18px;background:rgba(251,248,242,.94);padding:14px 18px;border:1px solid var(--line);
  font-size:.8rem;line-height:1.5;pointer-events:none;
}
.map__pin b{display:block;font-family:var(--serif);font-weight:500;font-size:1.05rem;}

/* ---- faq ------------------------------------------------------------- */
.faq{max-width:820px;margin:0 auto;border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding:24px 0;font-family:var(--serif);font-size:clamp(1.25rem,1.8vw,1.5rem);line-height:1.3;transition:color .3s;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--terracotta);}
.faq summary .plus{flex:none;width:14px;height:14px;position:relative;}
.faq summary .plus::before,.faq summary .plus::after{content:"";position:absolute;background:var(--terracotta);transition:transform .45s var(--ease-out);}
.faq summary .plus::before{left:0;right:0;top:50%;height:1px;}
.faq summary .plus::after{top:0;bottom:0;left:50%;width:1px;}
.faq details[open] summary .plus::after{transform:rotate(90deg);}
.faq .faq__body{overflow:hidden;}
.faq .faq__body>div{padding:0 0 26px;color:var(--ink-soft);font-size:.96rem;max-width:62ch;}

/* ---- enquire band ---------------------------------------------------- */
.band{
  position:relative;overflow:hidden;background:var(--ink-deep);color:var(--paper);
  padding:clamp(80px,10vw,140px) var(--gutter);text-align:center;
}
.band::before{
  content:"";position:absolute;inset:-20%;background:radial-gradient(60% 50% at 50% 100%,rgba(185,95,59,.32),transparent 70%);
  pointer-events:none;
}
.band .wrap{position:relative;}
.band h2{max-width:20ch;margin:0 auto;}
.band .lede{margin:22px auto 0;color:rgba(251,248,242,.66);}
.band__cta{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px 30px;justify-content:center;align-items:center;}
.band__note{margin-top:22px;font-size:.78rem;color:rgba(251,248,242,.5);}

/* ---- footer ---------------------------------------------------------- */
.site-footer{background:var(--ink);color:var(--paper);border-top:1px solid var(--line-light);}
.site-footer__inner{
  max-width:var(--max);margin:0 auto;padding:clamp(56px,7vw,88px) var(--gutter) clamp(40px,5vw,60px);
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;
}
@media (max-width:900px){.site-footer__inner{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.site-footer__inner{grid-template-columns:1fr;gap:34px;}}
.site-footer__brand img{width:200px;opacity:.95;}
.site-footer__brand p{margin:22px 0 26px;max-width:32ch;color:rgba(251,248,242,.62);font-size:.92rem;}
.site-footer__col{display:flex;flex-direction:column;gap:9px;font-size:.92rem;}
.site-footer__col .eyebrow{margin-bottom:8px;}
.site-footer__col a{color:rgba(251,248,242,.78);transition:color .3s;width:fit-content;}
.site-footer__col a:hover{color:var(--stucco);}
.site-footer__col address{color:rgba(251,248,242,.78);}
.site-footer__hours{color:rgba(251,248,242,.5);font-size:.82rem;line-height:1.6;margin-top:4px;}
.site-footer__base{
  max-width:var(--max);margin:0 auto;padding:22px var(--gutter) max(28px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line-light);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  color:rgba(251,248,242,.45);
}
.site-footer__base a{color:rgba(251,248,242,.7);}
.site-footer__base a:hover{color:var(--stucco);}

/* ---- detail pages ---------------------------------------------------- */
.page-hero{padding:calc(var(--header-h) + clamp(28px,5vw,64px)) var(--gutter) 0;}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:clamp(28px,4vw,48px);}
.crumb a:hover{color:var(--terracotta);}
.crumb .sep{width:18px;height:1px;background:var(--line-strong);}
.page-head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:end;padding-bottom:clamp(40px,5vw,64px);}
@media (max-width:860px){.page-head{grid-template-columns:1fr;gap:24px;}}
.page-head h1{max-width:12ch;}
.page-head .lede{margin:0;}
.page-plate{max-width:1100px;margin:0 auto;}
.page-plate .plate{aspect-ratio:16/9;}
.page-plate img{width:100%;height:100%;object-fit:cover;}

.page-body{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,88px);align-items:start;}
@media (max-width:860px){.page-body{grid-template-columns:1fr;}}
.page-body h2{margin-bottom:22px;}
.page-body .prose p{color:var(--ink-soft);font-size:1.02rem;}
.pairs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:36px;}
@media (max-width:600px){.pairs{grid-template-columns:1fr;}}
.pairs>div{background:var(--paper);padding:26px 28px;transition:background .35s;}
.pairs>div:hover{background:var(--paper-warm);}
.pairs h3{font-size:1.35rem;margin-bottom:6px;}
.pairs p{font-size:.88rem;color:var(--ink-soft);}

.incl{position:sticky;top:calc(var(--header-h) + 24px);border:1px solid var(--line);background:var(--paper-deep);padding:clamp(28px,3vw,38px);}
.incl ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:11px;font-size:.92rem;color:var(--ink-soft);}
.incl li{display:flex;gap:14px;}
.incl li::before{content:"";width:14px;height:1px;background:var(--terracotta);margin-top:.85em;flex:none;}
.pricebox{margin-top:28px;padding-top:26px;border-top:1px solid var(--line);}
.pricebox__price{font-family:var(--serif);font-size:clamp(2.4rem,3vw,2.9rem);line-height:1;}
.pricebox__price sup{font-size:.45em;vertical-align:.9em;margin-right:2px;}
.pricebox__period{margin-top:8px;}
.pricebox .btn{margin-top:24px;width:100%;}
.pricebox__fine{margin-top:16px;font-size:.76rem;color:var(--ink-mute);}

.page-next{border-top:1px solid var(--line);padding:32px 0 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.page-next a{display:inline-flex;align-items:center;gap:12px;transition:color .3s;}
.page-next a:hover{color:var(--terracotta);}
.page-next .arrow{transition:transform .45s var(--ease-out);display:inline-block;}
.page-next a:hover .arrow--r{transform:translateX(5px);}
.page-next a:hover .arrow--l{transform:translateX(-5px);}

/* ---- gallery strip --------------------------------------------------- */
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,28px);}
@media (max-width:700px){.strip{grid-template-columns:1fr;}}
.strip .plate{aspect-ratio:4/3;}
.strip img{width:100%;height:100%;object-fit:cover;}
.strip figure{margin:0;}
.strip figcaption{margin-top:12px;text-align:center;}
.strip .plate:hover img{transform:scale(1.04);}

/* ---- forms ----------------------------------------------------------- */
.form{display:grid;gap:22px;}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media (max-width:600px){.form__row{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);}
.field input,.field select,.field textarea{
  font:inherit;font-weight:300;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line-strong);
  padding:10px 0;border-radius:0;transition:border-color .3s;width:100%;appearance:none;-webkit-appearance:none;
}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px;}
.field textarea{min-height:110px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--terracotta);}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-mute);}
.form__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-top:8px;}
.form__foot small{font-size:.76rem;color:var(--ink-mute);max-width:44ch;}
.form__success{display:none;padding:clamp(40px,5vw,64px) 0;text-align:center;}
.form__success h2{max-width:18ch;margin:0 auto 16px;}
.form.is-sent{display:none;}
.form.is-sent+.form__success{display:block;}
.form__error{display:none;font-size:.82rem;color:var(--terracotta);}
.form.has-error .form__error{display:block;}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden;}

.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,96px);align-items:start;}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}.contact-grid>div{padding-top:40px;border-top:1px solid var(--line);}.form__foot .btn{width:100%;}}
.contact-aside .plate{margin-top:32px;aspect-ratio:4/3;}
.contact-aside img{width:100%;height:100%;object-fit:cover;}
.contact-aside dl{margin:28px 0 0;display:grid;gap:14px;padding-top:24px;border-top:1px solid var(--line);}
.contact-aside dt{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);}
.contact-aside dd{margin:2px 0 0;font-size:.95rem;}

/* ---- 404 ------------------------------------------------------------- */
.notfound{min-height:70vh;display:grid;place-items:center;text-align:center;padding:calc(var(--header-h) + 60px) var(--gutter) 80px;}

/* ---- motion preferences --------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  [data-reveal],.lines .line>span{opacity:1;transform:none;}
  .hero__plate img,.hero__caption,.hero__sub,.hero__cta{opacity:1;transform:none;}
  .mobile-menu__group a{opacity:1;transform:none;}
  ::view-transition-old(root),::view-transition-new(root){animation:none;}
}

/* ---- the app ---------------------------------------------------------- */
.app{position:relative;overflow:hidden;}
.app::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(55% 60% at 78% 55%,rgba(185,95,59,.22),transparent 70%);
}
.app__grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;grid-template-areas:"text phone" "cta phone";column-gap:clamp(40px,6vw,96px);align-items:center;}
.app__text{grid-area:text;align-self:end;}
.app__cta{grid-area:cta;align-self:start;}
.app__phone{grid-area:phone;}
.app__text .lede{margin-top:22px;max-width:44ch;}
.app__tabs{margin-top:clamp(32px,4vw,48px);border-top:1px solid var(--line-light);}
.app__tab{
  display:grid;grid-template-columns:40px 1fr;gap:16px;width:100%;text-align:left;
  padding:20px 0;border-bottom:1px solid var(--line-light);color:var(--paper);
  opacity:.5;transition:opacity .45s var(--ease-out);position:relative;
}
.app__tab::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--stucco);transition:width .7s var(--ease-out);}
.app__tab:hover{opacity:.85;}
.app__tab.is-active{opacity:1;}
.app__tab.is-active::before{width:100%;}
.app__tab-num{font-family:var(--serif);font-size:.95rem;color:var(--stucco);padding-top:3px;font-variant-numeric:tabular-nums;}
.app__tab-body{display:flex;flex-direction:column;gap:6px;}
.app__tab-body b{font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,1.9vw,1.65rem);line-height:1.1;}
.app__tab-body span{font-size:.92rem;line-height:1.6;color:rgba(251,248,242,.62);max-width:46ch;overflow:hidden;
  display:block;max-height:0;opacity:0;transition:max-height .7s var(--ease-out),opacity .5s var(--ease-out),margin .5s var(--ease-out);}
.app__tab.is-active .app__tab-body span{max-height:12em;opacity:1;margin-top:4px;}
.app__cta{margin-top:clamp(30px,4vw,44px);}
.app__note{margin-top:16px;font-size:.78rem;color:rgba(251,248,242,.5);}

.app__phone{position:relative;justify-self:center;width:min(100%,360px);}
.app__glow{position:absolute;inset:8% -20% -6%;border-radius:50%;background:radial-gradient(closest-side,rgba(233,183,154,.28),transparent);filter:blur(20px);pointer-events:none;}
.app__screens{position:relative;aspect-ratio:571/1200;}
.app__screens img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  opacity:0;transform:translateY(14px) scale(.985);
  transition:opacity .8s var(--ease-out),transform .9s var(--ease-out);
  filter:drop-shadow(0 40px 60px rgba(0,0,0,.45));
}
.app__screens img.is-active{opacity:1;transform:none;}

@media (max-width:900px){
  .app__grid{grid-template-columns:1fr;grid-template-areas:"text" "phone" "cta";row-gap:40px;}
  .app__phone{width:min(78%,300px);}
  .app__cta{margin-top:0;text-align:center;}
  .app__cta .badges{justify-content:center;}
  .app__tabs{margin-top:28px;}
}

/* store badges */
.badges{display:flex;flex-wrap:wrap;gap:12px;}
.badge{
  display:inline-flex;align-items:center;gap:12px;padding:11px 20px 11px 16px;
  border:1px solid rgba(251,248,242,.35);border-radius:999px;color:var(--paper);
  transition:border-color .4s var(--ease-out),background .4s var(--ease-out),transform .4s var(--ease-out);
}
.badge:hover{border-color:var(--paper);background:rgba(251,248,242,.06);transform:translateY(-1px);}
.badge__icon{width:20px;height:20px;flex:none;}
.badge span{display:flex;flex-direction:column;line-height:1.05;font-size:.92rem;font-weight:400;letter-spacing:.01em;}
.badge span small{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(251,248,242,.55);margin-bottom:3px;}
.site-footer__app{margin-top:30px;padding-top:26px;border-top:1px solid var(--line-light);}
.site-footer__app .eyebrow{margin-bottom:14px;}
.site-footer__app .badge{padding:9px 16px 9px 13px;}
.site-footer__app .badge span{font-size:.84rem;}
