/* =========================================================================
   SYNCHRONIC ALLIANCE — Design System v2  ("Clean / Charcoal / Red")
   Reference direction: light, spacious, confident — white base, charcoal
   text & dark bands, a disciplined red accent, big bold numbers.
   Head: Archivo · Body: Inter · Data: IBM Plex Mono
   ========================================================================= */

:root {
  --red:     #6d28d9;
  --red-d:   #571fb0;
  --red-tint:#f2ecfd;
  --purple-lt:#a78bfa;
  --img-hero: url("https://images.unsplash.com/photo-1611005813863-6c1bc3d3908b?auto=format&fit=crop&w=1920&q=80");
  --img-band: url("https://images.unsplash.com/photo-1611005813863-6c1bc3d3908b?auto=format&fit=crop&w=1920&q=80");
  --ink:     #17181a;   /* near-black text / dark bands */
  --ink-2:   #212327;
  --ink-3:   #2c2f34;
  --white:   #ffffff;
  --off:     #f6f5f2;   /* warm off-white alt sections */
  --off-2:   #efece5;
  --grey:    #55575d;   /* body muted */
  --grey-2:  #8b8d93;   /* faint */
  --line:    #e7e4de;
  --line-2:  #d8d4cc;
  --line-dk: rgba(255,255,255,0.14);
  --line-dk2:rgba(255,255,255,0.28);
  --white-70:rgba(255,255,255,0.72);
  --white-45:rgba(255,255,255,0.46);

  --head: "Archivo", system-ui, sans-serif;
  --sans: "Inter", system-ui, -apple-system, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;

  --wrap: 1200px;
  --gutter: clamp(1.25rem, 4vw, 3.25rem);
  --radius: 4px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important} }
body {
  font-family: var(--sans);
  background: var(--white);
  color: var(--ink);
  line-height: 1.6;
  font-size: 1.05rem;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
::selection { background: var(--red); color:#fff; }

/* ---------- Layout ---------- */
.wrap { width:min(100% - var(--gutter)*2, var(--wrap)); margin-inline:auto; }
.section { padding-block: clamp(4rem, 8vw, 7.5rem); position:relative; }
.section--tight { padding-block: clamp(2.75rem, 5vw, 4.5rem); }
.bg-white{ background:var(--white); }
.bg-off{ background:var(--off); }
.bg-ink{ background:var(--ink); color:var(--white); }
.bg-red{ background:var(--red); color:#fff; }

/* ---------- Type ---------- */
h1,h2,h3,h4 { font-family:var(--head); font-weight:700; line-height:1.06; letter-spacing:-0.02em; }
.h-hero { font-size:clamp(2.05rem, 3.6vw, 3.3rem); line-height:1.08; }
.h-sec  { font-size:clamp(1.9rem, 3.8vw, 3rem); }
.head{ font-family:var(--head); }

.eyebrow {
  font-family:var(--sans); font-weight:600;
  font-size:0.74rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--red); display:inline-flex; align-items:center; gap:0.6rem;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--red); display:inline-block; }
.eyebrow--nolead::before{ display:none; }
.bg-ink .eyebrow, .bg-red .eyebrow{ color:#fff; }
.bg-ink .eyebrow::before, .bg-red .eyebrow::before{ background:#fff; }

.lede { font-size:clamp(1.05rem, 1.5vw, 1.28rem); line-height:1.55; color:var(--grey); max-width:52ch; }
.bg-ink .lede, .bg-red .lede{ color:var(--white-70); }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:0.55rem;
  font-family:var(--sans); font-weight:600; font-size:0.9rem; letter-spacing:0.01em;
  padding:0.95rem 1.6rem; border:1.5px solid transparent; border-radius:var(--radius);
  transition:background .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease), transform .22s var(--ease);
}
.btn:active{ transform:translateY(1px); }
.btn--red{ background:var(--red); color:#fff; }
.btn--red:hover{ background:var(--red-d); }
.btn--ink{ background:var(--ink); color:#fff; }
.btn--ink:hover{ background:#000; }
.btn--outline{ background:transparent; color:var(--ink); border-color:var(--line-2); }
.btn--outline:hover{ border-color:var(--ink); background:var(--ink); color:#fff; }
.bg-ink .btn--outline, .bg-red .btn--outline{ color:#fff; border-color:var(--line-dk2); }
.bg-ink .btn--outline:hover, .bg-red .btn--outline:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.btn__arrow{ transition:transform .22s var(--ease); }
.btn:hover .btn__arrow{ transform:translateX(3px); }
:focus-visible{ outline:2px solid var(--red); outline-offset:3px; border-radius:2px; }

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,0.9);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
}
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; height:74px; gap:1.5rem; }
.brandmark{ display:inline-flex; align-items:center; gap:0.6rem; }
.brandmark__tick{ width:22px; height:22px; flex:none; }
.brandmark__name{ font-family:var(--head); font-weight:700; font-size:1.2rem; letter-spacing:-0.02em; line-height:1; color:var(--ink); }
.brandmark__name span{ display:block; font-family:var(--sans); font-weight:600; font-size:0.58rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--red); margin-top:4px; }
.footer-brand .brandmark__name{ color:#fff; }

.nav{ display:flex; align-items:center; gap:2rem; }
.nav__links{ display:flex; align-items:center; gap:1.9rem; list-style:none; padding:0; }
.nav__links a{ font-size:0.92rem; font-weight:500; color:var(--grey); position:relative; padding-block:4px; transition:color .2s var(--ease); }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--red); transition:width .26s var(--ease); }
.nav__links a:hover, .nav__links a[aria-current="page"]{ color:var(--ink); }
.nav__links a:hover::after, .nav__links a[aria-current="page"]::after{ width:100%; }

.nav-toggle{ display:none; background:none; border:1px solid var(--line-2); border-radius:var(--radius); width:44px; height:44px; padding:0; align-items:center; justify-content:center; }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{ content:""; display:block; width:18px; height:2px; background:var(--ink); transition:transform .3s var(--ease), opacity .2s var(--ease); }
.nav-toggle span::before{ position:absolute; transform:translateY(-6px); }
.nav-toggle span::after{ position:absolute; transform:translateY(6px); }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after{ transform:rotate(-45deg); }

@media (max-width:920px){
  .nav-toggle{ display:inline-flex; }
  .nav{ position:fixed; inset:74px 0 auto 0; background:#fff; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; padding:0.5rem var(--gutter) 1.5rem; transform:translateY(-130%); transition:transform .34s var(--ease); box-shadow:0 30px 40px -30px rgba(0,0,0,.25); }
  .nav[data-open="true"]{ transform:translateY(0); }
  .nav__links{ flex-direction:column; align-items:stretch; gap:0; width:100%; }
  .nav__links li{ border-bottom:1px solid var(--line); }
  .nav__links a{ display:block; padding:1rem 0; font-size:1.05rem; }
  .nav .btn{ margin-top:1.25rem; justify-content:center; }
}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{ position:relative; overflow:hidden; background:var(--white); }
.hero__inner{ padding-block: clamp(3.5rem,7vw,6rem) clamp(3rem,6vw,5rem); }
.hero__grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.hero h1{ margin-top:1.5rem; max-width:16ch; color:var(--ink); }
.hero h1 .u{ color:var(--red); position:relative; white-space:nowrap; }
.hero h1 .u::after{ content:""; position:absolute; left:0; right:0; bottom:0.06em; height:0.11em; background:var(--red); opacity:.28; }
.hero__lede{ margin-top:1.75rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:0.85rem; margin-top:2.25rem; }
.hero__trust{ margin-top:2.5rem; font-size:0.82rem; color:var(--grey-2); display:flex; align-items:center; gap:0.6rem; }
.hero__trust b{ color:var(--ink); font-weight:600; }

/* hero visual card */
.hero__card{ position:relative; background:var(--ink); border-radius:8px; padding:clamp(1.5rem,2.5vw,2rem); overflow:hidden; }
.hero__card::before{ content:""; position:absolute; inset:0; background-image:linear-gradient(var(--line-dk) 1px,transparent 1px),linear-gradient(90deg,var(--line-dk) 1px,transparent 1px); background-size:40px 40px; -webkit-mask-image:radial-gradient(120% 90% at 80% 0,#000 30%,transparent 80%); mask-image:radial-gradient(120% 90% at 80% 0,#000 30%,transparent 80%); }
.hero__card-top{ position:relative; display:flex; align-items:center; justify-content:space-between; }
.hero__card-tag{ font-family:var(--mono); font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--white-45); }
.hero__card-dot{ width:8px; height:8px; border-radius:50%; background:var(--red); box-shadow:0 0 0 4px rgba(109,40,217,.2); }
.parcel-svg{ width:100%; height:auto; overflow:visible; margin:0.5rem 0; position:relative; }
.parcel-svg .plot-line{ fill:none; stroke:#fff; stroke-width:1.4; opacity:.85; }
.parcel-svg .plot-fill{ fill:rgba(109,40,217,0.14); stroke:none; }
.parcel-svg .plot-node{ fill:var(--red); }
.parcel-svg text{ font-family:var(--mono); fill:var(--white-45); font-size:11px; letter-spacing:.04em; }
.parcel-svg .plot-label{ fill:#fff; font-size:11px; }
.hero__card-foot{ position:relative; display:flex; gap:1.5rem; margin-top:1rem; padding-top:1.25rem; border-top:1px solid var(--line-dk); }
.hero__card-foot .kv b{ display:block; font-family:var(--head); font-weight:700; font-size:1.5rem; color:#fff; line-height:1; }
.hero__card-foot .kv span{ display:block; margin-top:0.4rem; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--white-45); }
@media (prefers-reduced-motion:no-preference){
  .parcel-svg .plot-line{ stroke-dasharray:1200; stroke-dashoffset:1200; animation:draw 2.2s var(--ease) forwards .3s; }
  .parcel-svg .plot-node{ opacity:0; animation:fadein .5s ease forwards 1.5s; }
  .parcel-svg text{ opacity:0; animation:fadein .6s ease forwards 1.7s; }
}
@keyframes draw{ to{stroke-dashoffset:0} }
@keyframes fadein{ to{opacity:1} }
@media (max-width:840px){ .hero__grid{ grid-template-columns:1fr; } .hero__card{ max-width:460px; } }

/* =========================================================================
   STATS BAND
   ========================================================================= */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-dk); border:1px solid var(--line-dk); border-radius:8px; overflow:hidden; }
.stat{ background:var(--ink); padding:clamp(1.5rem,3vw,2.25rem); }
.stat b{ display:block; font-family:var(--head); font-weight:700; font-size:clamp(1.9rem,3.4vw,2.9rem); line-height:1; color:#fff; }
.stat b i{ color:var(--red); font-style:normal; }
.stat span{ display:block; margin-top:0.7rem; font-size:0.78rem; letter-spacing:0.04em; color:var(--white-70); line-height:1.4; }
@media (max-width:760px){ .stats{ grid-template-columns:1fr 1fr; } }

/* =========================================================================
   SECTION HEAD
   ========================================================================= */
.sec-head{ max-width:60ch; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.sec-head h2{ margin-top:1.1rem; }
.sec-head p{ margin-top:1.1rem; }
.sec-head--split{ max-width:none; display:grid; grid-template-columns:1.05fr 0.95fr; gap:1.5rem 3rem; align-items:end; }
.sec-head--split .lede{ margin-top:0; }
@media (max-width:760px){ .sec-head--split{ grid-template-columns:1fr; } }

/* =========================================================================
   PILLARS (services)
   ========================================================================= */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.pillar{ background:#fff; border:1px solid var(--line); border-radius:8px; padding:clamp(1.75rem,2.6vw,2.4rem); display:flex; flex-direction:column; gap:1rem; transition:border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease); }
.pillar:hover{ transform:translateY(-4px); border-color:var(--line-2); box-shadow:0 24px 40px -30px rgba(0,0,0,.28); }
.pillar__no{ font-family:var(--mono); font-size:0.72rem; letter-spacing:0.12em; color:var(--red); }
.pillar h3{ font-size:1.5rem; }
.pillar p{ color:var(--grey); font-size:0.98rem; }
.pillar__list{ list-style:none; padding:0; margin-top:auto; display:flex; flex-direction:column; gap:0.55rem; }
.pillar__list li{ font-size:0.9rem; color:var(--ink); padding-left:1.4rem; position:relative; }
.pillar__list li::before{ content:""; position:absolute; left:0; top:0.62em; width:8px; height:2px; background:var(--red); }
@media (max-width:880px){ .pillars{ grid-template-columns:1fr; } }

/* =========================================================================
   VERTICALS
   ========================================================================= */
.verticals{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.vcard{ border:1px solid var(--line); border-radius:8px; padding:1.6rem 1.5rem; background:#fff; transition:transform .25s var(--ease), border-color .25s var(--ease); position:relative; }
.vcard:hover{ transform:translateY(-4px); border-color:var(--red); }
.vcard__no{ font-family:var(--mono); font-size:0.7rem; color:var(--red); letter-spacing:0.12em; }
.vcard h3{ font-size:1.24rem; margin-top:0.7rem; }
.vcard p{ color:var(--grey); font-size:0.92rem; margin-top:0.5rem; }
@media (max-width:880px){ .verticals{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .verticals{ grid-template-columns:1fr; } }

/* =========================================================================
   GEOGRAPHY
   ========================================================================= */
.geo{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.geo__col{ background:#fff; border:1px solid var(--line); border-left:3px solid var(--red); border-radius:8px; padding:clamp(1.75rem,3vw,2.5rem); }
.geo__col .k{ font-family:var(--mono); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--red); }
.geo__col h3{ font-size:1.35rem; margin-top:0.8rem; }
.geo__places{ display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:1.25rem; }
.geo__place{ font-size:0.85rem; font-weight:500; border:1px solid var(--line-2); border-radius:40px; padding:0.4rem 0.95rem; color:var(--ink); }
@media (max-width:640px){ .geo{ grid-template-columns:1fr; } }

/* =========================================================================
   APPROACH (why us)
   ========================================================================= */
.approach{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dk); border:1px solid var(--line-dk); border-radius:8px; overflow:hidden; }
.appr{ background:var(--ink); padding:clamp(1.75rem,2.6vw,2.4rem); }
.appr__no{ font-family:var(--mono); font-size:0.72rem; color:var(--red); letter-spacing:0.12em; }
.appr h3{ font-size:1.3rem; color:#fff; margin-top:0.8rem; }
.appr p{ color:var(--white-70); font-size:0.94rem; margin-top:0.6rem; }
@media (max-width:820px){ .approach{ grid-template-columns:1fr; } }

/* =========================================================================
   FOUNDER / LEADER
   ========================================================================= */
.founder{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.founder__photo{ position:relative; }
.founder__frame{ position:relative; border-radius:10px; overflow:hidden; border:1px solid var(--line); }
.founder__img{ width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--off-2); display:block; }
.founder__badge{ position:absolute; left:0; bottom:0; background:var(--red); color:#fff; padding:0.7rem 1.1rem; font-family:var(--head); font-weight:700; font-size:0.95rem; letter-spacing:0.02em; border-top-right-radius:8px; }
.founder__body h2{ margin-top:1.1rem; }
.founder__role{ font-family:var(--mono); font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--red); margin-top:0.75rem; }
.founder__body p{ color:var(--grey); margin-top:1.1rem; }
.founder__creds{ list-style:none; padding:0; margin-top:1.6rem; display:grid; gap:0.9rem; }
.founder__creds li{ display:flex; gap:0.9rem; align-items:baseline; }
.founder__creds .k{ font-family:var(--mono); font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--red); flex:none; width:82px; padding-top:3px; }
.founder__creds .v{ color:var(--ink); font-size:0.96rem; }
.founder__actions{ margin-top:1.9rem; display:flex; flex-wrap:wrap; gap:0.85rem; align-items:center; }
@media (max-width:820px){ .founder{ grid-template-columns:1fr; } .founder__photo{ max-width:340px; } }

/* socials */
.socials{ display:flex; flex-wrap:wrap; gap:0.6rem; }
.social{ display:inline-flex; align-items:center; gap:0.5rem; font-size:0.82rem; font-weight:500; border:1px solid var(--line-2); border-radius:40px; padding:0.5rem 0.95rem; color:var(--ink); transition:all .22s var(--ease); }
.social:hover{ background:var(--red); color:#fff; border-color:var(--red); }
.social svg{ width:15px; height:15px; fill:currentColor; }
.bg-ink .social{ color:var(--white-70); border-color:var(--line-dk2); }
.bg-ink .social:hover{ background:#fff; color:var(--ink); border-color:#fff; }

/* =========================================================================
   FAQ
   ========================================================================= */
.faq{ max-width:820px; margin-inline:auto; }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__item summary{ list-style:none; cursor:pointer; padding:1.35rem 0; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; font-family:var(--head); font-weight:600; font-size:1.1rem; color:var(--ink); }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary .ic{ flex:none; width:24px; height:24px; border:1.5px solid var(--line-2); border-radius:50%; position:relative; transition:all .2s var(--ease); }
.faq__item summary .ic::before, .faq__item summary .ic::after{ content:""; position:absolute; background:var(--ink); left:50%; top:50%; transition:transform .2s var(--ease); }
.faq__item summary .ic::before{ width:10px; height:1.5px; transform:translate(-50%,-50%); }
.faq__item summary .ic::after{ width:1.5px; height:10px; transform:translate(-50%,-50%); }
.faq__item[open] summary .ic{ background:var(--red); border-color:var(--red); }
.faq__item[open] summary .ic::before, .faq__item[open] summary .ic::after{ background:#fff; }
.faq__item[open] summary .ic::after{ transform:translate(-50%,-50%) scaleY(0); }
.faq__item p{ color:var(--grey); padding:0 0 1.4rem; max-width:70ch; font-size:0.98rem; }

/* =========================================================================
   CTA BAND
   ========================================================================= */
.cta-band{ text-align:center; }
.cta-band h2{ max-width:22ch; margin:1.1rem auto 0; }
.cta-band p{ margin:1.1rem auto 0; }
.cta-band .hero__cta{ justify-content:center; margin-top:2rem; }

/* =========================================================================
   PAGE HEAD (interior)
   ========================================================================= */
.page-head{ background:var(--ink); position:relative; overflow:hidden; }
.page-head::before{ content:""; position:absolute; inset:0; background-image:linear-gradient(var(--line-dk) 1px,transparent 1px),linear-gradient(90deg,var(--line-dk) 1px,transparent 1px); background-size:48px 48px; -webkit-mask-image:radial-gradient(100% 100% at 100% 0,#000 20%,transparent 75%); mask-image:radial-gradient(100% 100% at 100% 0,#000 20%,transparent 75%); }
.page-head__inner{ position:relative; z-index:2; padding-block:clamp(3.5rem,7vw,5.5rem) clamp(2.5rem,5vw,3.5rem); }
.page-head h1{ color:#fff; font-size:clamp(2.2rem,5vw,3.8rem); margin-top:1.25rem; max-width:20ch; }
.page-head p{ margin-top:1.4rem; }
.breadcrumb{ font-family:var(--mono); font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--white-45); }
.breadcrumb a:hover{ color:#fff; }

/* =========================================================================
   SERVICE ROWS (interior)
   ========================================================================= */
.survey-rule{ display:flex; align-items:center; gap:1rem; font-family:var(--mono); font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--red); }
.survey-rule::after{ content:""; height:1px; background:var(--line); flex:1; }
.srow{ display:grid; grid-template-columns:0.4fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); padding-block:clamp(2.5rem,5vw,3.75rem); border-top:1px solid var(--line); }
.srow:first-of-type{ border-top:none; }
.srow__label .num{ font-family:var(--mono); font-size:0.8rem; color:var(--red); }
.srow__label h3{ font-size:clamp(1.5rem,2.6vw,2rem); margin-top:0.75rem; }
.srow__body p{ color:var(--grey); }
.srow__body p+p{ margin-top:1rem; }
.srow__tags{ display:flex; flex-wrap:wrap; gap:0.55rem; margin-top:1.4rem; }
.tag{ font-size:0.8rem; font-weight:500; border:1px solid var(--line-2); border-radius:40px; padding:0.35rem 0.9rem; color:var(--grey); }
@media (max-width:720px){ .srow{ grid-template-columns:1fr; gap:1rem; } }

/* =========================================================================
   DEALS
   ========================================================================= */
.deals-note{ display:flex; gap:0.85rem; align-items:flex-start; border:1px solid var(--line); border-left:3px solid var(--red); border-radius:6px; padding:1rem 1.25rem; margin-bottom:2.25rem; background:var(--off); }
.deals-note svg{ flex:none; width:18px; height:18px; stroke:var(--red); margin-top:2px; }
.deals-note p{ font-size:0.9rem; color:var(--grey); }
.filters{ display:flex; flex-wrap:wrap; gap:0.55rem; margin-bottom:2rem; }
.filter{ font-size:0.85rem; font-weight:500; border:1px solid var(--line-2); border-radius:40px; padding:0.55rem 1.15rem; color:var(--grey); background:transparent; transition:all .2s var(--ease); }
.filter:hover{ border-color:var(--ink); color:var(--ink); }
.filter[aria-pressed="true"]{ background:var(--ink); color:#fff; border-color:var(--ink); }
.deal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
@media (max-width:900px){ .deal-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .deal-grid{ grid-template-columns:1fr; } }
.deal{ border:1px solid var(--line); border-radius:8px; background:#fff; padding:1.5rem; display:flex; flex-direction:column; gap:1.05rem; transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
.deal:hover{ transform:translateY(-5px); box-shadow:0 26px 40px -30px rgba(0,0,0,.3); border-color:var(--line-2); }
.deal__top{ display:flex; align-items:center; justify-content:space-between; gap:0.75rem; }
.deal__ref{ font-family:var(--mono); font-size:0.68rem; letter-spacing:0.08em; color:var(--grey-2); }
.deal__status{ font-family:var(--sans); font-weight:600; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; padding:0.3rem 0.65rem; border-radius:40px; border:1px solid; }
.deal__status[data-s="available"]{ color:#1a7a44; border-color:rgba(26,122,68,.35); background:rgba(26,122,68,.08); }
.deal__status[data-s="advanced"]{ color:var(--red); border-color:rgba(109,40,217,.35); background:var(--red-tint); }
.deal__status[data-s="closed"]{ color:var(--grey-2); border-color:var(--line-2); background:var(--off); }
.deal__cat{ font-family:var(--mono); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--red); }
.deal h3{ font-size:1.3rem; line-height:1.15; margin-top:0.2rem; }
.deal__loc{ font-size:0.9rem; color:var(--grey); margin-top:-0.35rem; }
.deal__loc svg{ width:13px; height:13px; display:inline; vertical-align:-1px; stroke:var(--red); }
.deal__specs{ list-style:none; padding:0; margin-top:auto; border-top:1px solid var(--line); }
.deal__specs li{ display:flex; justify-content:space-between; gap:1rem; padding:0.55rem 0; border-bottom:1px solid var(--line); }
.deal__specs .k{ font-size:0.78rem; color:var(--grey); }
.deal__specs .v{ font-family:var(--mono); font-size:0.8rem; color:var(--ink); text-align:right; font-weight:500; }
.deal__cta{ font-weight:600; font-size:0.86rem; color:var(--red); display:inline-flex; gap:0.5rem; align-items:center; }
.deal__cta:hover{ color:var(--ink); }
.deal__empty{ grid-column:1/-1; text-align:center; padding:3rem 1rem; color:var(--grey); font-size:0.95rem; }

/* =========================================================================
   FORMS
   ========================================================================= */
.form-layout{ display:grid; grid-template-columns:1.3fr 0.7fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
@media (max-width:860px){ .form-layout{ grid-template-columns:1fr; } }
.form{ display:grid; gap:1.35rem; }
.field{ display:flex; flex-direction:column; gap:0.5rem; }
.field.two{ display:grid; grid-template-columns:1fr 1fr; gap:1.35rem; }
@media (max-width:520px){ .field.two{ grid-template-columns:1fr; } }
.field label, .field>.lbl{ font-family:var(--sans); font-weight:600; font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink); }
.field label .req{ color:var(--red); }
.input,.select,.textarea{ font-family:var(--sans); font-size:1rem; color:var(--ink); background:#fff; border:1px solid var(--line-2); border-radius:var(--radius); padding:0.85rem 1rem; width:100%; transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
.input:focus,.select:focus,.textarea:focus{ outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(109,40,217,.12); }
.textarea{ resize:vertical; min-height:130px; line-height:1.55; }
.select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236d28d9' stroke-width='1.6' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
.intent{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line-2); border-radius:var(--radius); overflow:hidden; }
.intent input{ position:absolute; opacity:0; pointer-events:none; }
.intent label{ text-align:center; padding:0.95rem 1rem; cursor:pointer; font-weight:600; font-size:0.85rem; color:var(--grey); background:#fff; transition:all .2s var(--ease); }
.intent label:first-of-type{ border-right:1px solid var(--line-2); }
.intent input:checked + label{ background:var(--ink); color:#fff; }
.intent input:focus-visible + label{ outline:2px solid var(--red); outline-offset:-2px; }
.form__submit{ display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; margin-top:0.5rem; }
.form__hint{ font-size:0.82rem; color:var(--grey-2); }
.form__status{ font-size:0.9rem; display:none; padding:0.9rem 1.1rem; border-radius:var(--radius); }
.form__status[data-state="success"]{ display:block; color:#1a7a44; background:rgba(26,122,68,.08); border:1px solid rgba(26,122,68,.3); }
.form__status[data-state="error"]{ display:block; color:var(--red-d); background:var(--red-tint); border:1px solid rgba(109,40,217,.3); }
.form__status[data-state="loading"]{ display:block; color:var(--grey); background:var(--off); border:1px solid var(--line-2); }
.aside-card{ border:1px solid var(--line); border-radius:8px; background:var(--off); padding:clamp(1.5rem,3vw,2rem); }
.aside-card + .aside-card{ margin-top:1.25rem; }
.aside-card h3{ font-size:1.2rem; }
.aside-card p{ font-size:0.92rem; color:var(--grey); margin-top:0.6rem; }
.qr-box{ margin-top:1.4rem; background:#fff; border:1px solid var(--line-2); border-radius:8px; padding:1rem; display:flex; flex-direction:column; align-items:center; gap:0.9rem; }
.qr-box canvas, .qr-box img{ width:180px; height:180px; image-rendering:pixelated; }
.qr-box .cap{ font-family:var(--mono); font-size:0.68rem; letter-spacing:0.06em; color:var(--grey-2); text-align:center; }
.qr-actions{ display:flex; gap:0.6rem; flex-wrap:wrap; justify-content:center; }
.contact-list{ list-style:none; padding:0; display:grid; gap:1.35rem; }
.contact-list li{ display:grid; gap:0.3rem; }
.contact-list .k{ font-family:var(--mono); font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--red); }
.contact-list .v{ font-size:1.02rem; }
.contact-list .v a:hover{ color:var(--red); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{ background:var(--ink); color:#fff; position:relative; overflow:hidden; }
.site-footer::before{ content:""; position:absolute; inset:0; background-image:linear-gradient(var(--line-dk) 1px,transparent 1px),linear-gradient(90deg,var(--line-dk) 1px,transparent 1px); background-size:48px 48px; -webkit-mask-image:radial-gradient(100% 90% at 0 0,#000 20%,transparent 70%); mask-image:radial-gradient(100% 90% at 0 0,#000 20%,transparent 70%); }
.site-footer__inner{ position:relative; z-index:2; padding-block:clamp(3rem,6vw,4.5rem) 2rem; }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:2.5rem; }
.footer-brand p{ color:var(--white-70); font-size:0.92rem; margin-top:1.1rem; max-width:34ch; }
.footer-brand .socials{ margin-top:1.5rem; }
.footer-col h4{ font-family:var(--sans); font-weight:600; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:#fff; }
.footer-col ul{ list-style:none; padding:0; margin-top:1.1rem; display:grid; gap:0.7rem; }
.footer-col a, .footer-col .txt{ color:var(--white-70); font-size:0.92rem; transition:color .2s var(--ease); }
.footer-col a:hover{ color:#fff; }
.footer-col a.redish{ color:#fff; font-weight:600; }
.footer-col a.redish:hover{ color:var(--red); }
.footer-bottom{ margin-top:clamp(2.5rem,5vw,3.5rem); padding-top:1.5rem; border-top:1px solid var(--line-dk); display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; }
.footer-bottom p, .footer-bottom .cap{ font-family:var(--mono); font-size:0.68rem; letter-spacing:0.05em; color:var(--white-45); }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; gap:2rem; } .footer-brand{ grid-column:1/-1; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }

/* ---------- Reveal ---------- */
.js [data-reveal]{ opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.js [data-reveal].is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ [data-reveal]{ opacity:1; transform:none; } }

.mt-s{ margin-top:1rem; } .center{ text-align:center; }


/* =========================================================================
   v4 — PHOTOGRAPHIC HERO & BANDS
   ========================================================================= */
.hero--photo{ background:var(--ink); position:relative; overflow:hidden; }
.hero--photo::before{ content:""; position:absolute; inset:0; z-index:0;
  background-image:var(--img-hero); background-size:cover; background-position:center; }
.hero--photo::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(17,18,20,.8) 0%, rgba(17,18,20,.58) 42%, rgba(17,18,20,.2) 74%, rgba(17,18,20,.04) 100%); }
.hero--photo .hero__inner{ position:relative; z-index:2; display:flex; align-items:center;
  min-height:min(86vh,760px); padding-block:clamp(4rem,10vw,7rem); }
.hero--photo .hero__content{ max-width:62ch; }
.hero--photo h1{ color:#fff; margin-top:1.5rem; max-width:18ch; }
.hero--photo .hero__lede{ color:var(--white-70); max-width:52ch; }
.hero--photo .u{ color:var(--purple-lt); }
.hero--photo .u::after{ background:var(--purple-lt); opacity:.4; }
.eyebrow--light{ color:#fff; }
.eyebrow--light::before{ background:var(--red); }

.cta-photo{ position:relative; overflow:hidden; background:var(--ink); text-align:center; }
.cta-photo::before{ content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(17,18,20,.78),rgba(17,18,20,.82)), var(--img-band);
  background-size:cover; background-position:center; }
.cta-photo .wrap{ position:relative; z-index:2; }
.cta-photo h2{ color:#fff; max-width:24ch; margin:1.1rem auto 0; }
.cta-photo p{ color:var(--white-70); margin:1.1rem auto 0; max-width:50ch; }
.cta-photo .hero__cta{ justify-content:center; margin-top:2rem; }

.page-head::before{
  background-image:linear-gradient(90deg, rgba(17,18,20,.84) 0%, rgba(17,18,20,.58) 48%, rgba(17,18,20,.26) 100%), var(--img-band) !important;
  background-size:cover !important; background-position:center !important;
  -webkit-mask-image:none !important; mask-image:none !important; }

/* footer social pills — theme colour (were dark-on-dark / invisible) */
.site-footer .social{ color:var(--purple-lt); border-color:rgba(167,139,250,.5); }
.site-footer .social:hover{ background:var(--red); color:#fff; border-color:var(--red); }
