/* ============================================================
   D.P. C.G. Properties - modern, warm, editorial.
   Soft warm white · forest-green headings · charcoal body ·
   terracotta CTAs · white cards. Photographic + parallax.
   Self-contained.
   ============================================================ */
:root{
  --bg:#f8f6f1;          /* soft warm white - page            */
  --surface:#ffffff;     /* pure white - cards / forms        */
  --alt:#f1ebe0;         /* subtle warm tone for one band     */
  --ink:#303634;         /* charcoal - body text              */
  --muted:#61665f;       /* secondary text                    */
  --faint:#9a988e;
  --green:#245746;       /* deep forest green - headings/nav  */
  --green-deep:#1a4234; --green-darkest:#12352a;
  --on-dark:#f4efe4; --on-dark-mut:#c6cdc2;
  --cta:#b96342; --cta-deep:#9e4f32; --on-cta:#fff;
  --sand:#d8c6a5; --sand-soft:#e7dcc4; --line:#e8e1d3;
  --sh-1:0 2px 10px -4px rgba(26,66,52,.12);
  --sh-2:0 26px 60px -30px rgba(26,66,52,.32);
  --ease:cubic-bezier(.22,1,.36,1); --t:.6s var(--ease); --tf:.35s var(--ease);
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Courier New",monospace;
  --container:1280px; color-scheme:light;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans);
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden; width:100%; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.15rem,5vw,3.5rem); }
.section{ padding-block:clamp(4.5rem,11vw,9.5rem); }

/* type - bold modern sans, green headings */
.kicker{ font-family:var(--mono); font-size:.7rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--cta); }
.kicker.g{ color:var(--green); } .kicker.s{ color:var(--sand); }
.h1{ font-weight:800; font-size:clamp(2.3rem,6vw,4.6rem); line-height:1.02; letter-spacing:-.03em; margin:0; color:var(--green); overflow-wrap:break-word; }
.h2{ font-weight:800; font-size:clamp(1.9rem,4.4vw,3.25rem); line-height:1.06; letter-spacing:-.025em; margin:0; color:var(--green); overflow-wrap:break-word; }
.lede{ font-size:clamp(1.05rem,1.6vw,1.28rem); color:var(--muted); line-height:1.6; }
.head{ max-width:60ch; margin-bottom:clamp(2.4rem,5vw,4rem); }
.head .h2{ margin-top:1.1rem; }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--mono); font-size:.75rem; font-weight:600;
  letter-spacing:.13em; text-transform:uppercase; padding:1.05rem 1.9rem; border:1px solid transparent;
  border-radius:100px; cursor:pointer; transition:var(--tf); max-width:100%; }
.btn .arw{ transition:transform var(--tf); }
.btn:hover .arw{ transform:translateX(4px); }
.btn-cta{ background:var(--cta); color:var(--on-cta); }
.btn-cta:hover{ background:var(--cta-deep); box-shadow:var(--sh-2); transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--green); border-color:var(--line); }
.btn-ghost:hover{ border-color:var(--green); }
.btn-ghost.on-dark{ color:var(--on-dark); border-color:rgba(244,239,228,.4); }
.btn-ghost.on-dark:hover{ border-color:var(--on-dark); background:rgba(244,239,228,.08); }
.textlink{ font-family:var(--mono); font-size:.74rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--cta); display:inline-flex; align-items:center; gap:.5rem; }
.textlink .arw{ transition:transform var(--tf); }
.textlink:hover .arw{ transform:translateX(4px); }

/* nav */
.nav{ position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:1rem clamp(1.15rem,5vw,3.5rem); transition:background var(--tf),border-color var(--tf),box-shadow var(--tf);
  background:transparent; border-bottom:1px solid transparent; }
.nav.scrolled{ background:rgba(248,246,241,.88); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom-color:var(--line); box-shadow:var(--sh-1); }
.brand{ font-weight:800; font-size:1.02rem; letter-spacing:-.01em; white-space:nowrap; color:var(--on-dark); transition:color var(--tf); }
.brand b{ color:var(--sand); }
.nav.scrolled .brand{ color:var(--green); } .nav.scrolled .brand b{ color:var(--cta); }
.nav-links{ display:flex; gap:2.1rem; }
.nav-links a{ font-family:var(--mono); font-size:.7rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:rgba(244,239,228,.9); transition:color var(--tf); }
.nav.scrolled .nav-links a{ color:var(--green); }
.nav-links a:hover{ color:var(--cta)!important; }
.nav-cta{ font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--sand); font-weight:700; white-space:nowrap; }
.nav.scrolled .nav-cta{ color:var(--cta); }
/* mobile nav (hamburger) + multi-page chrome */
.nav-toggle{ display:none; flex-direction:column; gap:5px; width:40px; height:40px; align-items:center;
  justify-content:center; background:none; border:0; cursor:pointer; padding:0; }
.nav-toggle span{ width:22px; height:2px; background:var(--on-dark); border-radius:2px;
  transition:transform var(--tf),opacity var(--tf),background var(--tf); }
.nav.scrolled .nav-toggle span, .nav.nav-open .nav-toggle span{ background:var(--green); }
.nav.nav-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
.nav.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.nav-links a.active{ color:var(--cta)!important; }
@media (max-width:920px){
  .nav-toggle{ display:flex; }
  .nav-links{ position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0;
    background:rgba(248,246,241,.98); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line); box-shadow:var(--sh-1);
    padding:.25rem clamp(1.15rem,5vw,3.5rem) 1rem;
    transform:translateY(-10px); opacity:0; visibility:hidden; pointer-events:none;
    transition:transform var(--tf),opacity var(--tf),visibility var(--tf); }
  .nav.nav-open .nav-links{ transform:none; opacity:1; visibility:visible; pointer-events:auto; }
  .nav-links a{ color:var(--green)!important; padding:1rem 0; border-top:1px solid var(--line); font-size:.78rem; }
  .nav-links a:first-child{ border-top:0; }
}
@media (max-width:520px){ .nav-cta{ display:none; } }

/* page header on inner pages - dark so the transparent nav stays readable */
.pagehead{ background:linear-gradient(160deg,var(--green),var(--green-deep)); color:var(--on-dark);
  position:relative; overflow:hidden; padding:clamp(8rem,15vw,11rem) 0 clamp(3.5rem,7vw,5.5rem); }
.pagehead::before{ content:""; position:absolute; inset:0; opacity:.07;
  background-image:linear-gradient(rgba(244,239,228,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(244,239,228,.7) 1px,transparent 1px);
  background-size:70px 70px; mask-image:radial-gradient(80% 90% at 90% 10%,#000,transparent 70%);
  -webkit-mask-image:radial-gradient(80% 90% at 90% 10%,#000,transparent 70%); }
.pagehead .container{ position:relative; }
.pagehead .h1{ color:var(--on-dark); max-width:20ch; margin:1.1rem 0 0; }
.pagehead .lede{ color:var(--on-dark-mut); max-width:56ch; margin:1.4rem 0 0; }
section[id]{ scroll-margin-top:90px; }

/* hero */
.hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:flex-end;
  color:var(--on-dark); overflow:hidden; isolation:isolate; }
.parallax{ position:absolute; inset:-12% 0; z-index:-2; overflow:hidden; }
.parallax img{ width:100%; height:100%; object-fit:cover; will-change:transform; }
.hero .parallax::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,53,42,.44) 0%, rgba(18,53,42,.56) 38%, rgba(18,53,42,.82) 70%, rgba(18,53,42,.95) 100%); }
.hero-inner{ position:relative; width:100%; padding:0 0 clamp(4rem,9vw,7rem); }
.hero .kicker{ margin-bottom:1.2rem; display:block; font-weight:700; text-shadow:0 1px 3px rgba(18,53,42,.9), 0 2px 16px rgba(18,53,42,.7); }
.hero-title{ font-weight:800; font-size:clamp(2.6rem,8.4vw,6.6rem); line-height:.98; letter-spacing:-.035em; margin:0; max-width:15ch; color:var(--on-dark); overflow-wrap:break-word; text-shadow:0 2px 24px rgba(18,53,42,.55), 0 1px 3px rgba(18,53,42,.45); }
.hero-title em{ font-style:normal; color:var(--sand-soft); }
.hero-sub{ margin:clamp(1.3rem,3vw,1.9rem) 0 0; max-width:52ch; font-size:clamp(1.05rem,1.7vw,1.28rem); line-height:1.6; color:var(--on-dark-mut); text-shadow:0 1px 14px rgba(18,53,42,.6); }
.hero-actions{ margin-top:clamp(1.7rem,3.5vw,2.3rem); display:flex; gap:.9rem; flex-wrap:wrap; }
.scroll-cue{ position:absolute; bottom:1.6rem; right:clamp(1.15rem,5vw,3.5rem); font-family:var(--mono); font-size:.6rem;
  letter-spacing:.3em; text-transform:uppercase; color:var(--on-dark-mut); writing-mode:vertical-rl; display:flex; align-items:center; gap:.7rem; }
.scroll-cue::after{ content:""; width:1px; height:44px; background:linear-gradient(var(--on-dark-mut),transparent); }

/* intro */
.intro{ text-align:center; }
.intro .h1{ max-width:22ch; margin:1.2rem auto 0; }
.intro .lede{ max-width:56ch; margin:1.7rem auto 0; }

/* feature - two column editorial */
.feature .row{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,4rem); align-items:center; }
@media (max-width:860px){ .feature .row{ grid-template-columns:1fr; } }
.feature .media{ border-radius:18px; overflow:hidden; box-shadow:var(--sh-2); aspect-ratio:5/4; }
.feature .media img{ width:100%; height:100%; object-fit:cover; }
.feature .h2{ margin:1rem 0 0; }
.feature p{ color:var(--muted); margin:1.3rem 0 1.8rem; max-width:44ch; }

/* who we help - white cards */
.grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,2vw,1.6rem); }
@media (max-width:1080px){ .grid{ grid-template-columns:repeat(2,1fr); max-width:720px; margin-inline:auto; } }
@media (max-width:560px){ .grid{ grid-template-columns:1fr; max-width:420px; } }
.card{ display:block; background:var(--surface); border-radius:18px; overflow:hidden; box-shadow:var(--sh-1);
  transition:transform var(--t),box-shadow var(--t); }
.card:hover{ transform:translateY(-8px); box-shadow:var(--sh-2); }
.card-media{ position:relative; aspect-ratio:4/5; overflow:hidden; }
.card-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.card:hover .card-media img{ transform:scale(1.07); }
.card-media .num{ position:absolute; top:1rem; left:1rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.16em;
  color:var(--on-dark); background:rgba(18,53,42,.42); padding:.35rem .6rem; border-radius:100px; backdrop-filter:blur(4px); }
.card-body{ padding:1.5rem 1.6rem 1.8rem; }
.card-body h3{ font-weight:800; font-size:1.32rem; letter-spacing:-.02em; margin:0 0 .55rem; color:var(--green); }
.card-body p{ color:var(--muted); font-size:.98rem; line-height:1.55; margin:0 0 1rem; }
.card-body .tag{ font-family:var(--mono); font-size:.66rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--cta); }

/* green statement band */
.band{ background:var(--green); color:var(--on-dark); position:relative; overflow:hidden; }
.band::before{ content:""; position:absolute; inset:0; opacity:.07;
  background-image:linear-gradient(rgba(244,239,228,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(244,239,228,.7) 1px,transparent 1px);
  background-size:70px 70px; mask-image:radial-gradient(80% 90% at 90% 10%,#000,transparent 70%); -webkit-mask-image:radial-gradient(80% 90% at 90% 10%,#000,transparent 70%); }
.band .container{ position:relative; }
.band .h2{ color:var(--on-dark); max-width:20ch; margin-top:1.1rem; }
.band .h2 em{ font-style:normal; color:var(--sand); }
.band .lede{ color:var(--on-dark-mut); max-width:52ch; margin-top:1.5rem; }

/* inclusions - white section */
.incl{ background:var(--surface); border-block:1px solid var(--line); }
.incl-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(2rem,6vw,5rem); }
@media (max-width:720px){ .incl-list{ grid-template-columns:1fr; } }
.incl-row{ display:flex; align-items:baseline; gap:1.3rem; padding:1.5rem 0; border-top:1px solid var(--line); }
.incl-row .n{ font-family:var(--mono); font-size:.72rem; letter-spacing:.13em; color:var(--cta); flex-shrink:0; }
.incl-row .t{ font-weight:700; font-size:1.2rem; letter-spacing:-.01em; color:var(--ink); }

/* testimonials */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2rem); }
@media (max-width:920px){ .testi-grid{ grid-template-columns:1fr; } }
.quote{ background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:clamp(1.6rem,3vw,2.3rem); box-shadow:var(--sh-1); }
.quote .mark{ font-family:var(--mono); color:var(--cta); font-size:.68rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.quote p{ font-size:1.2rem; line-height:1.5; margin:1.1rem 0 1.6rem; color:var(--ink); font-weight:500; letter-spacing:-.01em; }
.quote .who{ font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }

/* faq */
.qa{ border-top:1px solid var(--line); }
.qa:last-of-type{ border-bottom:1px solid var(--line); }
.qa .q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; display:flex; align-items:center;
  justify-content:space-between; gap:1.2rem; padding:1.55rem 0; font-family:var(--sans); font-weight:700;
  font-size:clamp(1.08rem,1.9vw,1.4rem); color:var(--green); letter-spacing:-.01em; }
.qa .chev{ flex-shrink:0; width:20px; height:20px; position:relative; }
.qa .chev::before,.qa .chev::after{ content:""; position:absolute; top:50%; left:50%; width:12px; height:2px; background:var(--cta); transform:translate(-50%,-50%); transition:transform var(--tf); }
.qa .chev::after{ transform:translate(-50%,-50%) rotate(90deg); }
.qa[data-open] .chev::after{ transform:translate(-50%,-50%) rotate(0); }
.qa .a{ overflow:hidden; max-height:0; transition:max-height var(--t); }
.qa[data-open] .a{ max-height:340px; }
.qa .a p{ margin:0 0 1.6rem; color:var(--muted); max-width:66ch; line-height:1.65; }

/* contact - full-bleed parallax */
.contact{ position:relative; min-height:76vh; display:flex; align-items:center; color:var(--on-dark); overflow:hidden; isolation:isolate; }
.contact .parallax::after{ content:""; position:absolute; inset:0; background:linear-gradient(120deg, rgba(18,53,42,.88) 0%, rgba(18,53,42,.66) 55%, rgba(18,53,42,.5) 100%); }
.contact-inner{ position:relative; padding-block:clamp(4rem,9vw,7rem); }
.contact .kicker{ color:var(--sand); }
.contact .h1{ color:var(--on-dark); max-width:15ch; margin:1.1rem 0 0; }
.contact .sub{ color:var(--on-dark-mut); max-width:46ch; margin:1.5rem 0 2.2rem; font-size:1.1rem; }
.contact .actions{ display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.contact .phone{ font-family:var(--mono); font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark); }

/* footer */
.footer{ background:var(--green-darkest); color:var(--on-dark-mut); padding-block:clamp(2.8rem,6vw,4rem); }
.footer .top{ display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; border-bottom:1px solid rgba(244,239,228,.14); padding-bottom:2rem; }
.footer .brand{ font-weight:800; font-size:1.25rem; color:var(--on-dark); }
.footer .brand b{ color:var(--sand); }
.footer .cols{ display:flex; gap:clamp(1.8rem,6vw,4.5rem); flex-wrap:wrap; }
.footer h4{ font-family:var(--mono); font-size:.62rem; letter-spacing:.17em; text-transform:uppercase; color:var(--sand); margin:0 0 .8rem; font-weight:600; }
.footer a,.footer p{ color:var(--on-dark-mut); font-size:.9rem; margin:.3rem 0; }
.footer a:hover{ color:var(--on-dark); }
.footer .legal{ margin-top:1.8rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.04em; color:rgba(198,205,194,.6); line-height:1.7; }

/* reveal */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity var(--t),transform var(--t); }
.reveal.in{ opacity:1; transform:none; }
.stagger>*{ opacity:0; transform:translateY(26px); transition:opacity var(--t),transform var(--t); }
.stagger.in>*{ opacity:1; transform:none; }
.stagger.in>*:nth-child(2){ transition-delay:.1s; } .stagger.in>*:nth-child(3){ transition-delay:.2s; }
.stagger.in>*:nth-child(4){ transition-delay:.3s; } .stagger.in>*:nth-child(5){ transition-delay:.4s; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal,.stagger>*{ opacity:1!important; transform:none!important; transition:none!important; }
  .parallax img{ transform:none!important; }
  *{ animation:none!important; }
}

/* logo mark */
.brand{ display:inline-flex; align-items:center; gap:.5rem; }
.mk{ flex-shrink:0; }
/* gallery */
.gal{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.6rem,1.4vw,1rem); }
@media (max-width:820px){ .gal{ grid-template-columns:repeat(2,1fr); } }
.gal-item{ border-radius:14px; overflow:hidden; aspect-ratio:4/3; box-shadow:var(--sh-1); }
.gal-item img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.gal-item:hover img{ transform:scale(1.06); }
/* about / capability */
.ab-row{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(1.5rem,5vw,4.5rem); align-items:center; }
@media (max-width:860px){ .ab-row{ grid-template-columns:1fr; } }
.about p{ color:var(--muted); margin:1.2rem 0 0; max-width:52ch; }
.ab-list{ list-style:none; margin:1.4rem 0 2rem; padding:0; }
.ab-list li{ position:relative; padding:.55rem 0 .55rem 1.5rem; border-top:1px solid var(--line); color:var(--ink); }
.ab-list li::before{ content:""; position:absolute; left:0; top:1.05rem; width:8px; height:8px; border-radius:50%; background:var(--cta); }
.ab-media{ display:flex; justify-content:center; }
.ab-badge{ width:min(320px,82%); aspect-ratio:1; background:linear-gradient(160deg,var(--green),var(--green-deep)); border-radius:28px; display:flex; align-items:center; justify-content:center; box-shadow:var(--sh-2); }
/* enquiry form */
.eform{ background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:clamp(1.4rem,3vw,2.4rem); box-shadow:var(--sh-1); max-width:860px; }
.ef-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.2rem; }
@media (max-width:600px){ .ef-grid{ grid-template-columns:1fr; } }
.eform label{ display:flex; flex-direction:column; gap:.4rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.eform label.full{ grid-column:1 / -1; }
.eform input,.eform textarea{ font-family:var(--sans); font-size:1rem; color:var(--ink); background:var(--bg); border:1px solid var(--line); border-radius:9px; padding:.7rem .8rem; transition:border-color var(--tf); }
.eform input:focus,.eform textarea:focus{ outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(36,87,70,.12); }
.ef-note{ font-size:.78rem; color:var(--faint); margin:1rem 0 0; }

/* enquiry form: honeypot, consent, status */
.eform .ef-hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }
.eform .ef-consent{ display:flex; gap:.6rem; align-items:flex-start; grid-column:1/-1; margin-top:1.2rem;
  font-family:var(--sans); font-size:.86rem; letter-spacing:0; text-transform:none; color:var(--muted); font-weight:400; }
.eform .ef-consent input{ margin-top:.25rem; flex-shrink:0; }
.eform .ef-consent a{ color:var(--cta); }
.eform .ef-captcha{ margin-top:1.1rem; min-height:65px; }
.ef-status{ margin:1rem 0 0; font-size:.92rem; min-height:1.2em; }
.ef-status.ok{ color:var(--green); font-weight:600; } .ef-status.err{ color:#b3261e; }
.ef-status.err a{ color:#b3261e; }

/* === IMMERSIVE (glass + parallax revamp) === */
:root{ --cta-lt:#d98a68; --glass:rgba(244,239,228,.09); --glass-bd:rgba(244,239,228,.18); }
.page{ display:flex; flex-direction:column; min-height:100vh; min-height:100svh; }

/* nav: transparent glass over the dark scenes on every page */
.nav{ background:transparent; border-bottom-color:transparent; gap:1rem; }
.nav .brand{ color:var(--on-dark); } .nav .brand b{ color:var(--sand); }
.nav .nav-links{ gap:clamp(1.1rem,2vw,1.8rem); }
.nav .nav-links a{ color:rgba(244,239,228,.9); }
.nav .nav-links a:hover{ color:var(--sand)!important; }
.nav .nav-links a.active{ color:var(--sand)!important; }
.nav .nav-cta{ color:var(--sand); }
.nav .nav-toggle span{ background:var(--on-dark); }
.nav.scrolled{ background:rgba(16,44,35,.6); backdrop-filter:blur(16px) saturate(1.1); -webkit-backdrop-filter:blur(16px) saturate(1.1); border-bottom-color:rgba(244,239,228,.14); box-shadow:0 10px 30px -20px rgba(0,0,0,.7); }
.nav.scrolled .brand{ color:var(--on-dark); } .nav.scrolled .brand b{ color:var(--sand); }
.nav.scrolled .nav-links a{ color:rgba(244,239,228,.92); }
.nav.scrolled .nav-cta{ color:var(--sand); }
.nav.scrolled .nav-toggle span{ background:var(--on-dark); }

/* scene = one full screen: photo bg + tint + glass content */
.scene{ min-height:100vh; min-height:100svh; position:relative; display:flex; flex-direction:column; justify-content:center;
  overflow:hidden; isolation:isolate; color:var(--on-dark);
  padding:clamp(6rem,10vh,7.5rem) 0 clamp(1.6rem,3vh,2.6rem); }
.scene.plain{ background:radial-gradient(120% 120% at 80% 0%, #1f5142 0%, var(--green-deep) 45%, var(--green-darkest) 100%); }
.scene-bg{ position:absolute; inset:-12%; z-index:-3; will-change:transform; }
.scene-bg img{ width:100%; height:100%; object-fit:cover; }
.scene::after{ content:""; position:absolute; inset:0; z-index:-2;
  background:linear-gradient(180deg, rgba(16,44,35,.56) 0%, rgba(16,44,35,.66) 45%, rgba(10,32,26,.86) 100%); }
.scene::before{ content:""; position:absolute; inset:0; z-index:-1; opacity:.05; pointer-events:none;
  background-image:linear-gradient(rgba(244,239,228,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(244,239,228,.7) 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(95% 90% at 82% 8%,#000,transparent 78%); -webkit-mask-image:radial-gradient(95% 90% at 82% 8%,#000,transparent 78%); }
.scene .container{ position:relative; z-index:1; width:100%; }
.orb{ position:absolute; z-index:-1; border-radius:50%; filter:blur(60px); pointer-events:none; will-change:transform; }
.orb-a{ top:-14%; right:-8%; width:44vmax; height:44vmax; background:radial-gradient(circle, rgba(185,99,66,.42), transparent 62%); }
.orb-b{ bottom:-20%; left:-10%; width:40vmax; height:40vmax; background:radial-gradient(circle, rgba(216,198,165,.30), transparent 60%); }

/* glass surface */
.glass{ position:relative; background:var(--glass); border:1px solid var(--glass-bd);
  backdrop-filter:blur(22px) saturate(1.15); -webkit-backdrop-filter:blur(22px) saturate(1.15);
  border-radius:26px; box-shadow:0 40px 90px -50px rgba(0,0,0,.8), inset 0 1px 0 rgba(244,239,228,.12);
  padding:clamp(1.5rem,3.2vw,2.7rem); }
.glass.narrow{ max-width:940px; }
.scene .kicker{ color:var(--sand); }
.scene .kicker.g{ color:var(--sand); }
.scene .h1, .scene .h2{ color:var(--on-dark); }
.scene .lede{ color:var(--on-dark-mut); }
.scene .textlink{ color:var(--sand); }
.s-head{ margin-bottom:clamp(1.2rem,3vh,2.1rem); }
.s-head .h2{ margin-top:.7rem; }

/* home hero scene */
.scene.home{ justify-content:flex-end; }
.scene.home .hero-inner{ padding-bottom:clamp(1rem,3vh,2.4rem); }
.scene.home .hero-title, .scene.home .hero-sub, .scene.home .kicker{ text-shadow:0 2px 24px rgba(10,32,26,.5); }
.scene.home .kicker{ font-size:clamp(.92rem,1.7vw,1.25rem); font-weight:700; letter-spacing:.3em;
  color:var(--sand); line-height:1.75; margin-bottom:1.1rem; display:block; }

/* sectors: glass text cards */
.sector-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(.7rem,1.4vw,1.05rem); }
@media (max-width:900px){ .sector-cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .sector-cards{ grid-template-columns:1fr; } }
.scard{ display:block; background:rgba(244,239,228,.06); border:1px solid rgba(244,239,228,.14); border-radius:18px;
  padding:1.15rem 1.1rem 1.25rem; transition:transform var(--t), background var(--tf), border-color var(--tf); }
.scard:hover{ transform:translateY(-6px); background:rgba(244,239,228,.12); border-color:rgba(244,239,228,.32); }
.scard .num{ font-family:var(--mono); font-size:.64rem; letter-spacing:.18em; color:var(--sand); }
.scard h3{ color:var(--on-dark); font-size:1.05rem; font-weight:800; letter-spacing:-.01em; margin:.5rem 0 .4rem; }
.scard p{ color:var(--on-dark-mut); font-size:.84rem; line-height:1.48; margin:0 0 .8rem; }
.scard .tag{ font-family:var(--mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cta-lt); }

/* properties: floating parallax wall */
.wall{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.7rem,1.5vw,1.1rem); }
@media (max-width:820px){ .wall{ grid-template-columns:repeat(2,1fr); } }
.wall .tile{ border-radius:16px; overflow:hidden; height:clamp(120px,24vh,250px);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.75); border:1px solid rgba(244,239,228,.12); will-change:transform; }
.wall .tile img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.wall .tile:hover img{ transform:scale(1.06); }

/* why us: pillars + quote */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.6vw,2.1rem); }
@media (max-width:760px){ .pillars{ grid-template-columns:1fr; gap:1.1rem; } }
.pillar .pnum{ font-family:var(--mono); font-size:.64rem; letter-spacing:.18em; color:var(--sand); }
.pillar h3{ color:var(--on-dark); font-weight:800; font-size:1.12rem; letter-spacing:-.01em; margin:.5rem 0 .4rem; }
.pillar p{ color:var(--on-dark-mut); font-size:.88rem; line-height:1.55; margin:0; }
.whyquote{ margin-top:clamp(1.3rem,3vh,2rem); border-top:1px solid rgba(244,239,228,.16); padding-top:clamp(1.1rem,2.4vh,1.7rem); }
.whyquote p{ font-size:clamp(1.05rem,1.7vw,1.4rem); color:var(--on-dark); font-weight:500; letter-spacing:-.01em; margin:0 0 .6rem; max-width:64ch; }
.whyquote .who{ font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sand); }
.why-cta{ margin-top:clamp(1.2rem,2.6vh,1.8rem); }

/* about on dark */
.scene .ab-row{ align-items:center; }
.scene .about p, .scene .ab-row p{ color:var(--on-dark-mut); }
.scene .ab-list li{ color:var(--on-dark); border-top-color:rgba(244,239,228,.16); }
.scene .ab-badge{ background:rgba(244,239,228,.06); border:1px solid rgba(244,239,228,.16); box-shadow:inset 0 1px 0 rgba(244,239,228,.12); }

/* faq on dark */
.scene .qa{ border-top-color:rgba(244,239,228,.16); }
.scene .qa:last-of-type{ border-bottom-color:rgba(244,239,228,.16); }
.scene .qa .q{ color:var(--on-dark); }
.scene .qa .chev::before, .scene .qa .chev::after{ background:var(--sand); }
.scene .qa .a p{ color:var(--on-dark-mut); }

/* contact glass form */
.contact-split{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(1.4rem,4vw,3rem); align-items:center; }
@media (max-width:860px){ .contact-split{ grid-template-columns:1fr; } }
.contact-split .lead .h2{ margin-top:.7rem; }
.contact-split .lead p{ color:var(--on-dark-mut); margin:1rem 0 1.3rem; max-width:36ch; }
.contact-split .lead .c-line{ font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--on-dark); display:block; margin:.3rem 0; }
.contact-split .lead .c-line a{ color:var(--sand); }
.contact-split .lead .c-line.email{ text-transform:none; letter-spacing:.02em; font-size:.78rem; }
.scene .eform{ background:var(--glass); border:1px solid var(--glass-bd); max-width:none;
  backdrop-filter:blur(22px) saturate(1.15); -webkit-backdrop-filter:blur(22px) saturate(1.15);
  box-shadow:0 40px 90px -50px rgba(0,0,0,.8), inset 0 1px 0 rgba(244,239,228,.12);
  padding:clamp(1.1rem,2vw,1.5rem); }
.scene .eform label{ color:var(--on-dark-mut); gap:.28rem; }
.scene .ef-grid{ gap:.5rem .8rem; }
.scene .eform input, .scene .eform textarea{ background:rgba(248,246,241,.92); border:1px solid rgba(244,239,228,.22); color:var(--ink); padding:.5rem .72rem; }
.scene .eform input:focus, .scene .eform textarea:focus{ border-color:var(--sand); box-shadow:0 0 0 3px rgba(216,198,165,.35); }
.scene .ef-consent{ color:var(--on-dark-mut); margin-top:.55rem; line-height:1.4; }
.scene .ef-consent a{ color:var(--sand); }
.scene .ef-captcha{ margin-top:.55rem; min-height:60px; }
.scene .eform .btn{ padding:.9rem 1.7rem; margin-top:.2rem; }
.scene .ef-status{ margin-top:.55rem; }
.scene .ef-status.ok{ color:var(--sand); }
.scene .ef-status.err{ color:#ff9d8a; }
.scene .ef-status.err a{ color:#ff9d8a; }

/* slim footer as dark glass, inside each screen */
.mini{ background:rgba(10,32,26,.5); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-top-color:rgba(244,239,228,.12); }
.mini .row{ color:rgba(244,239,228,.55); }
.mini a{ color:rgba(244,239,228,.82); } .mini a:hover{ color:var(--sand); }
.mini .sep{ color:rgba(244,239,228,.3); }

/* short-screen compression: only kicks in on short laptops so tall screens stay roomy */
@media (max-height:830px){
  .scene{ padding-top:clamp(4.6rem,7vh,6rem); padding-bottom:clamp(1rem,2vh,1.5rem); }
  .glass{ padding:clamp(1.15rem,2.4vw,1.9rem); }
  .scene .ab-badge{ width:min(190px,55%); }
  .s-head{ margin-bottom:clamp(1rem,2.4vh,1.6rem); }
  .whyquote{ margin-top:1rem; padding-top:1rem; }
  .scene .eform{ padding:clamp(1rem,1.8vw,1.35rem); }
}
/* long-scroll: section dots (anchors) + scroll cue; no page-turn animations */
.pager{ position:fixed; right:clamp(.7rem,1.6vw,1.3rem); top:50%; transform:translateY(-50%);
  z-index:60; display:flex; flex-direction:column; gap:.65rem; }
.pager a{ width:9px; height:9px; border-radius:50%; background:rgba(244,239,228,.3);
  border:1px solid rgba(244,239,228,.35); transition:background var(--tf),transform var(--tf); }
.pager a:hover{ background:rgba(244,239,228,.7); transform:scale(1.25); }
.pager a.on{ background:var(--sand); border-color:var(--sand); transform:scale(1.3); }
@media (max-width:720px){ .pager{ display:none; } }
.scene[id]{ scroll-margin-top:0; }
.scroll-cue{ position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%); z-index:2;
  font-family:var(--mono); font-size:.6rem; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(244,239,228,.75); display:flex; flex-direction:column; align-items:center; gap:.45rem; }
.scroll-cue::after{ content:""; width:1px; height:34px; background:linear-gradient(rgba(244,239,228,.75),transparent); }

/* cookie consent banner */
.cookiebar{ position:fixed; left:clamp(.8rem,2vw,1.6rem); right:clamp(.8rem,2vw,1.6rem); bottom:clamp(.8rem,2vw,1.4rem);
  z-index:90; max-width:520px; background:rgba(10,32,26,.94); border:1px solid rgba(244,239,228,.2);
  border-radius:20px; padding:clamp(1.1rem,2.4vw,1.5rem); color:var(--on-dark);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  box-shadow:0 30px 80px -30px rgba(0,0,0,.85); }
.cookiebar[hidden]{ display:none!important; }
.cookiebar h3{ margin:0 0 .5rem; font-size:1.06rem; font-weight:800; letter-spacing:-.01em; color:var(--on-dark); }
.cookiebar p{ margin:0 0 1rem; font-size:.84rem; line-height:1.5; color:var(--on-dark-mut); }
.cookiebar p a{ color:var(--sand); text-decoration:underline; }
.cb-opts{ margin:0 0 1rem; border-top:1px solid rgba(244,239,228,.16); }
.cb-opts[hidden]{ display:none; }
.cb-row{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.6rem 0;
  border-bottom:1px solid rgba(244,239,228,.16); font-size:.84rem; color:var(--on-dark); cursor:pointer; }
.cb-row small{ display:block; font-size:.7rem; color:var(--on-dark-mut); }
.cb-row input{ width:2.4rem; height:1.25rem; accent-color:var(--cta); flex-shrink:0; cursor:pointer; }
.cb-actions{ display:flex; gap:.55rem; flex-wrap:wrap; }
.cb-actions .btn{ padding:.72rem 1.15rem; font-size:.66rem; }
@media (max-width:560px){ .cookiebar{ max-width:none; } .cb-actions .btn{ flex:1 1 auto; justify-content:center; } }
@media (prefers-reduced-motion:reduce){ .scene-bg,[data-depth]{ transform:none!important; } }
