/* ============================================================
   Property Microsite - Editorial template
   Token-driven; all colors/fonts come from /themes/{name}/theme.json
   ============================================================ */

/* Theme-token aliases.
   The PHP <head> emits design tokens as CSS custom properties under the
 --color-*, --space-*, --radius-* namespaces. We alias them to short names
   so the rest of the stylesheet stays readable. */
:root{
 --ivory:        var(--color-ivory,        #f4f0e8);
 --ivory-soft:   var(--color-ivory-soft,   #ebe5d7);
 --paper:        var(--color-paper,        #fbf8f1);
 --sage:         var(--color-sage,         #5b6a52);
 --sage-deep:    var(--color-sage-deep,    #3b4a36);
 --sage-soft:    var(--color-sage-soft,    #aab39e);
 --charcoal:     var(--color-charcoal,     #1c1d1a);
 --charcoal-mid: var(--color-charcoal-mid, #2e302b);
 --accent:       var(--color-accent,       #b6553a);
 --accent-deep:  var(--color-accent-deep,  #8a3d27);
 --line:         var(--color-line,         rgba(28,29,26,.14));
 --line-soft:    var(--color-line-soft,    rgba(28,29,26,.08));
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--ivory);
  font-size:16px;
  line-height:1.6;
  font-feature-settings:"ss01","cv11";
 -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; cursor:pointer; border:none; background:none; color:inherit}

/* Skip link */
.skip{position:absolute; left:-9999px; top:0}
.skip:focus{left:1rem; top:1rem; padding:.6rem 1rem; background:var(--charcoal); color:var(--ivory); z-index:100; border-radius:2px}

/* Type scale */
.eyebrow{
  font-family:var(--font-body);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--sage);
  font-weight:500;
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.02em;
  margin:0;
  font-variation-settings:"SOFT" 30, "WONK" 0;
}
h1{font-size:clamp(3rem, 8vw, 6.75rem)}
h2{font-size:clamp(2.1rem, 4.6vw, 3.6rem)}
h3{font-size:clamp(1.35rem, 2.2vw, 1.85rem)}
h4{font-size:1.05rem; font-family:var(--font-body); font-weight:600; letter-spacing:-.005em}

p{margin:0 0 1em}
.lead{font-family:var(--font-display); font-size:clamp(1.2rem,1.6vw,1.55rem); line-height:1.4; max-width:55ch; font-weight:300; font-style:italic; color:var(--charcoal-mid)}

/* Layout primitives */
.wrap{max-width:var(--max-w); margin:0 auto; padding:0 var(--gutter)}
.section{padding:var(--section-y) 0; position:relative}
.section--tight{padding:calc(var(--section-y)*.55) 0}
.section--dark{background:var(--charcoal); color:var(--ivory)}
.section--dark .eyebrow{color:var(--sage-soft)}
.section--cream{background:var(--paper)}
.section--page-top{padding-top:calc(var(--section-y)*.55 + 60px); padding-bottom:calc(var(--section-y)*.4)}
.page-head{max-width:60ch}
.page-head h1{font-size:clamp(2.4rem, 6vw, 4.5rem); margin-top:.6rem}
.page-head .lead{margin-top:1rem}
.divider{height:1px; background:var(--line); border:0}

.grid{display:grid; gap:var(--gutter)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-12{grid-template-columns:repeat(12,1fr)}
@media (max-width:900px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .grid-12{grid-template-columns:repeat(6,1fr)}
}

/* Nav */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem var(--gutter);
  background:color-mix(in oklab, var(--ivory) 80%, transparent);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.nav.is-scrolled{border-color:var(--line-soft); background:color-mix(in oklab, var(--ivory) 92%, transparent)}
.nav__brand{display:flex; align-items:center; gap:.6rem; font-family:var(--font-display); font-size:1.2rem; letter-spacing:.04em; color:var(--charcoal)}
.nav__logo{width:28px; height:28px; display:inline-flex; color:var(--charcoal)}
.nav__logo svg{width:100%; height:100%}
.nav__links{display:flex; gap:1.75rem; font-size:13px; letter-spacing:.06em}
.nav__links a{color:var(--charcoal); position:relative; padding:.25rem 0}
.nav__links a:hover{color:var(--sage)}
.nav__right{display:flex; align-items:center; gap:1.25rem}
/* Language dropdown */
.lang-switch{position:relative}
.lang-switch__toggle{
  display:inline-flex; align-items:center; gap:.4rem;
  background:transparent; border:1px solid var(--line-soft);
  color:var(--charcoal); font:inherit;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase;
  padding:.45rem .65rem; border-radius:2px; cursor:pointer;
  transition:border-color .2s var(--ease), color .2s var(--ease);
}
.lang-switch__toggle:hover,
.lang-switch__toggle[aria-expanded="true"]{border-color:var(--sage); color:var(--sage)}
.lang-switch__icon{opacity:.7; flex:none}
.lang-switch__label{line-height:1}
.lang-switch__chev{transition:transform .2s var(--ease); opacity:.6; flex:none}
.lang-switch__toggle[aria-expanded="true"] .lang-switch__chev{transform:rotate(180deg); opacity:1}
.lang-switch__menu{
  position:absolute; top:calc(100% + .5rem); right:0;
  min-width:200px; max-height:340px; overflow:auto;
  background:var(--paper); border:1px solid var(--line-soft);
  border-radius:2px; box-shadow:0 20px 40px -20px rgba(20,28,32,.18);
  list-style:none; margin:0; padding:.35rem 0;
  opacity:0; visibility:hidden; transform:translateY(-4px);
  transition:opacity .18s var(--ease), transform .18s var(--ease), visibility .18s var(--ease);
  z-index:60;
}
.lang-switch.is-open .lang-switch__menu{opacity:1; visibility:visible; transform:translateY(0)}
.lang-switch__menu li{margin:0}
.lang-switch__menu a{
  display:flex; align-items:baseline; gap:.75rem;
  padding:.6rem .95rem; color:var(--charcoal);
  font-size:13px; line-height:1.3; letter-spacing:0; text-transform:none;
  transition:background-color .15s var(--ease), color .15s var(--ease);
}
.lang-switch__menu a:hover,
.lang-switch__menu a:focus-visible{background:var(--paper-alt, rgba(0,0,0,.03)); color:var(--sage); outline:none}
.lang-switch__menu a.is-active{color:var(--sage)}
.lang-switch__menu a.is-active::after{content:""; margin-left:auto; width:5px; height:5px; border-radius:50%; background:var(--sage); align-self:center}
.lang-switch__code{
  font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--charcoal-mid); min-width:22px;
}
.lang-switch__menu a.is-active .lang-switch__code{color:var(--sage)}
.lang-switch__name{color:inherit}
@media (max-width:520px){
  .lang-switch__menu{right:auto; left:0; min-width:180px}
}
.nav__cta{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  padding:.7rem 1.1rem; border:1px solid var(--charcoal);
  border-radius:999px; transition:.2s var(--ease);
  color:var(--charcoal);
}
.nav__cta:hover{background:var(--charcoal); color:var(--ivory)}
@media (max-width:780px){ .nav__links{display:none} }

/* Hero */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:end;
  overflow:hidden;
  background:var(--charcoal);
  color:var(--ivory);
  padding:0;
}
.hero__bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:saturate(.95) contrast(1.02);
  transform:scale(1.06);
}
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.05) 35%, rgba(0,0,0,.65) 100%);
}
.hero__inner{position:relative; z-index:2; padding:var(--gutter) var(--gutter) clamp(2rem,5vw,4rem); width:100%}
.hero__meta{display:flex; gap:2rem; flex-wrap:wrap; margin-bottom:1.25rem; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(244,240,232,.78)}
.hero__kicker{max-width:14ch; font-weight:300; color:var(--ivory); font-family:var(--font-display); font-size:clamp(3rem, 8vw, 6.75rem); line-height:1.02; letter-spacing:-.02em; margin:0}
.hero__kicker em{font-style:italic; color:var(--sage-soft); font-weight:300}
.hero__title{max-width:34ch; font-weight:400; color:var(--ivory); font-family:var(--font-display); font-size:clamp(1.4rem, 2.4vw, 2rem); line-height:1.2; letter-spacing:.005em; margin:1.25rem 0 0}
.hero__row{display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-top:2.5rem; flex-wrap:wrap}
.hero__claim{font-family:var(--font-display); font-style:italic; font-size:clamp(1.05rem,1.4vw,1.3rem); max-width:42ch; color:rgba(244,240,232,.86); font-weight:300}
.hero__stats{display:flex; gap:2.25rem; flex-wrap:wrap}
.hero__stat-n{font-family:var(--font-display); font-size:clamp(1.7rem,2.6vw,2.3rem); line-height:1; letter-spacing:-.02em}
.hero__stat-l{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:rgba(244,240,232,.7); margin-top:.4rem}
.hero__cta{margin-top:2rem; display:flex; gap:1rem; flex-wrap:wrap}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:1rem 1.6rem;
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  border-radius:999px;
  transition:.25s var(--ease);
}
.btn--primary{background:var(--ivory); color:var(--charcoal)}
.btn--primary:hover{background:var(--accent); color:var(--ivory)}
.btn--ghost{border:1px solid rgba(244,240,232,.4); color:var(--ivory)}
.btn--ghost:hover{border-color:var(--ivory); background:rgba(244,240,232,.08)}
.btn--dark{background:var(--charcoal); color:var(--ivory)}
.btn--dark:hover{background:var(--accent)}
.btn svg{width:14px; height:14px}

/* Fact strip */
.facts{
  display:grid; grid-template-columns:repeat(5, 1fr);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--ivory);
}
.facts__cell{
  padding:2rem 1.5rem; border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:.4rem;
}
.facts__cell:last-child{border-right:none}
.facts__n{font-family:var(--font-display); font-size:clamp(1.8rem,2.6vw,2.4rem); line-height:1}
.facts__l{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage)}
.facts__s{font-size:13px; color:var(--charcoal-mid)}
@media (max-width:900px){ .facts{grid-template-columns:repeat(2,1fr)} .facts__cell{border-bottom:1px solid var(--line)} }

/* Section header */
.shead{display:grid; grid-template-columns:1fr 2fr; gap:var(--gutter); align-items:end; margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.shead__l{display:flex; flex-direction:column; gap:.8rem}
.shead__num{font-family:var(--font-mono); font-size:11px; letter-spacing:.15em; color:var(--sage)}
.shead__r{max-width:60ch; color:var(--charcoal-mid); font-size:1.05rem}
.section--dark .shead__r{color:rgba(244,240,232,.78)}
@media (max-width:780px){ .shead{grid-template-columns:1fr} }

/* Project intro */
.intro__big{font-family:var(--font-display); font-size:clamp(1.6rem, 2.6vw, 2.4rem); line-height:1.25; font-weight:300; max-width:22ch}
.intro__grid{display:grid; grid-template-columns:1.2fr 1fr; gap:var(--gutter); align-items:start; margin-top:3rem}
.intro__media img{aspect-ratio:4/5; object-fit:cover; width:100%; border-radius:2px}
.intro__copy p{max-width:55ch}
@media (max-width:900px){ .intro__grid{grid-template-columns:1fr} }

/* Image grid */
/* Apartments page image bands */
.apt-hero-figure{margin:0; border-radius:2px; overflow:hidden}
.apt-hero-figure img{width:100%; height:auto; aspect-ratio:21/9; object-fit:cover; display:block}
.apt-wide-figure{margin:0}
.apt-wide-figure img{width:100%; height:auto; aspect-ratio:21/9; object-fit:cover; display:block; border-radius:2px}
.apt-wide-figure figcaption{margin-top:.9rem; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); text-align:center}
@media (max-width:780px){
  .apt-hero-figure img, .apt-wide-figure img{aspect-ratio:4/3}
}

.gallery{display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gutter); margin-top:2rem}
.gallery img{width:100%; height:100%; object-fit:cover; border-radius:2px}
.g--a{grid-column:span 7; aspect-ratio:4/3}
.g--b{grid-column:span 5; aspect-ratio:3/4}
.g--c{grid-column:span 4; aspect-ratio:1/1}
.g--d{grid-column:span 8; aspect-ratio:16/10}
.g--full{grid-column:span 12; aspect-ratio:21/9}
@media (max-width:900px){ .gallery > *{grid-column:span 12 !important; aspect-ratio:4/3 !important} }

/* Architecture */
.arch{display:grid; grid-template-columns:1fr 1fr; gap:var(--gutter); align-items:center}
.arch__quote{
  font-family:var(--font-display); font-style:italic; font-weight:300;
  font-size:clamp(1.4rem, 2.2vw, 2rem); line-height:1.35;
  padding-left:1.25rem; border-left:1px solid var(--sage);
  max-width:32ch;
}
.arch__attr{display:block; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage); margin-top:1.5rem; font-style:normal; font-family:var(--font-body)}
.arch__img{aspect-ratio:4/5; object-fit:cover; border-radius:2px; width:100%}
@media (max-width:900px){ .arch{grid-template-columns:1fr} }

/* Units / pricing table */
.unit-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:3rem}
@media (max-width:1100px){ .unit-cards{grid-template-columns:repeat(2,1fr)} }
@media (max-width:600px){ .unit-cards{grid-template-columns:1fr} }
.units-cta{margin-top:2.5rem}
.unit-card{
  background:var(--paper); border:1px solid var(--line-soft);
  padding:1.5rem 1.4rem 1.8rem; border-radius:3px;
  display:flex; flex-direction:column; gap:.4rem;
  transition:.25s var(--ease);
}
.unit-card:hover{border-color:var(--sage); transform:translateY(-2px)}
.unit-card__type{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage)}
.unit-card__name{font-family:var(--font-display); font-size:1.35rem; line-height:1.1; margin-top:.3rem}
.unit-card__size{font-size:13px; color:var(--charcoal-mid); margin-top:.2rem}
.unit-card__price{font-family:var(--font-display); font-size:1.6rem; margin-top:1rem; letter-spacing:-.01em}
.unit-card__price small{font-family:var(--font-body); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--sage); display:block; margin-top:.3rem; font-weight:500}

.price-table{
  width:100%; border-collapse:collapse; font-size:14px;
  background:var(--paper); border:1px solid var(--line-soft);
}
.price-table th, .price-table td{
  padding:1rem 1.1rem; text-align:left; border-bottom:1px solid var(--line-soft);
}
.price-table thead th{
  font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--sage); background:var(--ivory-soft); font-weight:600;
}
.price-table tbody tr:last-child td{border-bottom:none}
.price-table tbody tr:hover{background:var(--ivory)}
.price-table .num{font-variant-numeric:tabular-nums; text-align:right}
.price-table .total{font-family:var(--font-display); font-size:1.05rem; color:var(--charcoal)}
.price-table caption{
  caption-side:bottom; text-align:left; padding:1rem 0;
  font-size:12px; color:var(--charcoal-mid);
}

/* Payment timeline */
.timeline{
  display:grid; grid-template-columns:repeat(5,1fr); gap:0;
  margin-top:3rem; position:relative;
}
.timeline::before{
  content:""; position:absolute;
  top:32px; left:5%; right:5%; height:1px; background:var(--line);
}
.timeline__step{display:flex; flex-direction:column; align-items:center; text-align:center; padding:0 .5rem; position:relative}
.timeline__pct{
  width:64px; height:64px; border-radius:50%;
  background:var(--ivory); border:1px solid var(--sage);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:1.2rem;
  margin-bottom:1.25rem; position:relative; z-index:2;
}
.timeline__label{font-size:13px; line-height:1.4; max-width:18ch}
.timeline__when{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); margin-top:.4rem}
@media (max-width:900px){
  .timeline{grid-template-columns:1fr 1fr; gap:1.5rem 0}
  .timeline::before{display:none}
}

/* ROI section */
.roi{display:grid; grid-template-columns:1fr 1fr; gap:0; background:var(--charcoal); border-radius:3px; overflow:hidden}
.roi__col{padding:clamp(2rem,4vw,3.5rem); color:var(--ivory)}
.roi__col + .roi__col{border-left:1px solid rgba(244,240,232,.12)}
.roi__col h3{color:var(--ivory); margin-bottom:.6rem}
.roi__tag{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage-soft); margin-bottom:1.25rem}
.roi__yields{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1.75rem}
.roi__y{padding-top:1rem; border-top:1px solid rgba(244,240,232,.16)}
.roi__y-pct{font-family:var(--font-display); font-size:clamp(1.5rem,2.4vw,2rem); line-height:1}
.roi__y-l{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(244,240,232,.65); margin-top:.4rem}
.roi__note{font-size:12.5px; color:rgba(244,240,232,.65); margin-top:1.5rem; max-width:42ch; line-height:1.5}
@media (max-width:900px){
  .roi{grid-template-columns:1fr}
  .roi__col + .roi__col{border-left:none; border-top:1px solid rgba(244,240,232,.12)}
  .roi__yields{grid-template-columns:repeat(2,1fr); gap:1.25rem 1rem}
}
@media (max-width:520px){
  .roi__yields{grid-template-columns:1fr 1fr}
  .roi__y-pct{font-size:1.4rem}
}

/* ROI calculator */
.calc{background:var(--paper); border:1px solid var(--line-soft); padding:clamp(1.5rem,3vw,2.5rem); border-radius:3px; margin-top:3rem}
.calc__head{display:grid; grid-template-columns:1fr auto; align-items:end; gap:1rem; margin-bottom:1.75rem}
.calc__controls{display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:2rem}
.calc__field label{display:block; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--sage); margin-bottom:.4rem}
.calc__field select, .calc__field input[type="range"]{width:100%; font:inherit}
.calc__field select{padding:.7rem .8rem; border:1px solid var(--line); background:var(--ivory); border-radius:2px; font-size:14px}
.calc__field input[type="range"]{accent-color:var(--sage)}
.calc__val{font-family:var(--font-display); font-size:1.1rem; color:var(--charcoal); margin-top:.35rem; display:block}
.calc__out{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding-top:1.5rem; border-top:1px solid var(--line)}
.calc__out > div{display:flex; flex-direction:column; gap:.3rem}
.calc__out-l{font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--sage)}
.calc__out-v{font-family:var(--font-display); font-size:clamp(1.3rem,2vw,1.7rem); line-height:1}
@media (max-width:900px){ .calc__controls, .calc__out{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .calc__controls, .calc__out{grid-template-columns:1fr} }

/* Amenities */
.amen{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line)}
.amen__item{
  padding:2rem 1.75rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  display:flex; flex-direction:column; gap:.6rem; min-height:200px;
}
.amen__item:nth-child(3n){border-right:none}
.amen__icn{font-family:var(--font-mono); font-size:11px; color:var(--sage); letter-spacing:.1em}
.amen__t{font-family:var(--font-display); font-size:1.25rem; line-height:1.2}
.amen__d{font-size:13.5px; color:var(--charcoal-mid); line-height:1.55}
@media (max-width:900px){
  .amen{grid-template-columns:1fr 1fr}
  .amen__item:nth-child(3n){border-right:1px solid var(--line)}
  .amen__item:nth-child(2n){border-right:none}
}
@media (max-width:600px){
  .amen{grid-template-columns:1fr}
  .amen__item{border-right:none !important}
}

/* Location */
.loc__map{aspect-ratio:16/9; border-radius:3px; overflow:hidden; margin-top:2rem; background:var(--paper)}
.loc__map img{width:100%; height:100%; object-fit:cover}
.loc__chips{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem}
.chip{
  padding:1rem 1.1rem; background:var(--paper); border:1px solid var(--line-soft); border-radius:2px;
  font-size:13px; display:flex; flex-direction:column; gap:.35rem;
}
.chip__d{font-family:var(--font-display); font-size:1.4rem; line-height:1; color:var(--sage-deep)}
.chip__l{font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--charcoal-mid)}
@media (max-width:900px){ .loc__chips{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .loc__chips{grid-template-columns:1fr} }

/* Process */
.process{counter-reset:step; display:grid; grid-template-columns:repeat(2,1fr); gap:0}
.process__step{
  padding:2rem 0; display:grid; grid-template-columns:auto 1fr; gap:1.5rem;
  border-bottom:1px solid var(--line);
}
.process__n{counter-increment:step; font-family:var(--font-display); font-size:2rem; line-height:1; color:var(--sage); min-width:3ch}
.process__n::before{content:counter(step,decimal-leading-zero)}
.process__b h4{margin-bottom:.4rem; font-family:var(--font-display); font-size:1.25rem; font-weight:400}
.process__b p{margin:0; font-size:14px; color:var(--charcoal-mid); max-width:50ch}
.process__step:nth-child(odd){padding-right:var(--gutter); border-right:1px solid var(--line)}
.process__step:nth-child(even){padding-left:var(--gutter)}
.process__step:last-child:nth-child(odd){border-right:none}
@media (max-width:900px){
  .process{grid-template-columns:1fr}
  .process__step{padding:1.5rem 0 !important; border-right:none !important}
}

/* Construction log */
.constr-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem}
.constr-card{
  position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:2px;
}
.constr-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease)}
.constr-card:hover img{transform:scale(1.04)}
.constr-card__cap{
  position:absolute; left:0; right:0; bottom:0;
  padding:1rem 1rem .9rem; background:linear-gradient(0deg, rgba(0,0,0,.7), transparent);
  color:var(--ivory); font-size:12px; letter-spacing:.05em;
}
.constr-card__date{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage-soft); margin-bottom:.3rem; display:block}
@media (max-width:900px){ .constr-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .constr-grid{grid-template-columns:1fr} }

/* Team */
.team{display:grid; grid-template-columns:repeat(2,1fr); gap:0}
.team__c{padding:2rem 0 2rem var(--gutter); border-left:1px solid var(--line)}
.team__c:first-child{padding-left:0; border-left:none}
.team__role{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage)}
.team__name{font-family:var(--font-display); font-size:1.6rem; margin-top:.4rem}
.team__body{font-size:14px; color:var(--charcoal-mid); margin-top:.8rem; max-width:46ch; line-height:1.6}
@media (max-width:780px){
  .team{grid-template-columns:1fr}
  .team__c{padding:1.5rem 0; border-left:none; border-top:1px solid var(--line)}
  .team__c:first-child{border-top:none}
}

/* Press logos */
.press{display:flex; gap:2.5rem; flex-wrap:wrap; align-items:center; margin-top:2rem; opacity:.85}
.press__item{
  font-family:var(--font-display); font-style:italic;
  font-size:1.15rem; color:var(--charcoal-mid);
  padding-right:2.5rem; border-right:1px solid var(--line);
}
.press__item:last-child{border-right:none}
.press__item small{display:block; font-family:var(--font-body); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--sage); font-style:normal; margin-top:.3rem}

/* FAQ */
.faq__group{margin-bottom:3rem}
.faq__cat{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage); margin-bottom:1rem}
.faq__item{border-top:1px solid var(--line)}
.faq__item:last-child{border-bottom:1px solid var(--line)}
.faq__q{
  width:100%; text-align:left; padding:1.4rem 0;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  font-family:var(--font-display); font-size:1.15rem; font-weight:400; color:var(--charcoal);
}
.faq__q::after{content:"+"; font-family:var(--font-display); font-size:1.4rem; color:var(--sage); transition:.25s var(--ease)}
.faq__item.is-open .faq__q::after{transform:rotate(45deg)}
.faq__a{max-height:0; overflow:hidden; transition:max-height .35s var(--ease)}
.faq__a-inner{padding:0 0 1.4rem; max-width:62ch; color:var(--charcoal-mid); font-size:14.5px; line-height:1.65}
.faq__a-inner p{margin:0 0 .7em}
.faq__a-inner ul{margin:.4rem 0 .8rem; padding-left:1.2rem}
.faq__a-inner li{margin-bottom:.25rem}
.faq__item.is-open .faq__a{max-height:1400px}

/* CTA / footer */
.cta{padding:clamp(4rem,8vw,7rem) 0; background:var(--charcoal); color:var(--ivory); text-align:center}
.cta h2{color:var(--ivory); max-width:18ch; margin:0 auto}
.cta__lead{max-width:55ch; margin:1.5rem auto 2.5rem; color:rgba(244,240,232,.75); font-size:1.1rem; line-height:1.5}
.cta__row{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap}

.footer{padding:3.5rem 0 2rem; background:var(--charcoal-mid); color:rgba(244,240,232,.7); font-size:13px}
.footer__grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:var(--gutter); margin-bottom:3rem}
.footer__brand{font-family:var(--font-display); font-size:1.6rem; color:var(--ivory); margin-bottom:.6rem}
.footer__h{font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sage-soft); margin-bottom:1rem}
.footer__col a{display:block; padding:.25rem 0; color:rgba(244,240,232,.7)}
.footer__col a:hover{color:var(--ivory)}
.footer__bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding-top:1.5rem; border-top:1px solid rgba(244,240,232,.12); font-size:11.5px; letter-spacing:.04em}
@media (max-width:900px){ .footer__grid{grid-template-columns:1fr 1fr} }

/* Contact page */
.contact-grid{display:grid; grid-template-columns:1.35fr 1fr; gap:calc(var(--gutter) * 1.4); margin-top:3rem; align-items:start}
.contact-grid .eyebrow{display:block}
.contact-grid a{color:var(--charcoal); border-bottom:1px solid var(--sage); padding-bottom:1px}
.contact-grid a:hover{color:var(--sage)}

.contact-form{display:flex; flex-direction:column; gap:1.25rem}
.contact-form .field{display:flex; flex-direction:column; gap:.4rem}
.contact-form label{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--charcoal-soft, var(--charcoal))}
.contact-form input,
.contact-form select,
.contact-form textarea{
  font:inherit; color:var(--charcoal);
  padding:.85rem 1rem; background:var(--ivory); border:1px solid rgba(0,0,0,.12); border-radius:2px;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{outline:none; border-color:var(--sage); background:#fff}
.contact-form textarea{resize:vertical; min-height:8rem}
.contact-form button{align-self:flex-start; margin-top:.25rem}
.contact-form .form-note{font-size:12.5px; color:var(--charcoal-soft, rgba(0,0,0,.6)); margin-top:.4rem; max-width:44ch}

.contact-aside{display:flex; flex-direction:column; gap:1.5rem; padding-left:0}
.contact-block{padding-top:1.2rem; border-top:1px solid rgba(0,0,0,.08)}
.contact-block:first-child{padding-top:0; border-top:0}
.contact-block p{margin-top:.4rem}

@media (max-width:780px){
  .contact-grid{grid-template-columns:1fr; gap:2.5rem}
  .contact-aside{padding-left:0}
}

/* Floating CTA */
.float-cta{
  position:fixed; bottom:1.25rem; right:1.25rem; z-index:40;
  padding:.9rem 1.3rem; background:var(--accent); color:var(--ivory);
  border-radius:999px; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase;
  box-shadow:0 10px 30px rgba(0,0,0,.22);
  transform:translateY(150%); transition:.4s var(--ease);
}
@media (max-width:520px){
  .float-cta{bottom:.85rem; right:.85rem; padding:.75rem 1rem; font-size:10.5px}
}
.float-cta.is-visible{transform:translateY(0)}
.float-cta:hover{background:var(--accent-deep)}

/* Reveal animation */
.reveal{opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease)}
.reveal.is-in{opacity:1; transform:translateY(0)}

/* Utility */
.dim{color:var(--charcoal-mid)}
.tight{max-width:60ch}
.center{text-align:center}
.mt-1{margin-top:1rem}
.mt-2{margin-top:2rem}
.mt-4{margin-top:4rem}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{transition:none !important; animation:none !important}
}
