/* ==========================================================================
   AtlasCraft Painting — site styles
   Tokens sourced from the AtlasCraft Painting Design System (navy + gold on
   warm cream). Self-contained: no external CSS dependency so it deploys clean.
   ========================================================================== */

/* ---- Design tokens ---- */
:root {
  /* Navy */
  --navy-900:#0f1b2d; --navy-800:#16273f; --navy-700:#21354f; --navy-600:#324862; --navy-300:#8c99a8;
  /* Gold */
  --gold-700:#8f6a30; --gold-600:#a8793a; --gold-500:#bf954f; --gold-300:#ddc290; --gold-100:#f3e9d3;
  /* Cream surfaces */
  --cream-50:#fdfaf3; --cream-100:#fbf7ef; --cream-200:#f5efe2; --cream-300:#f0e9d8; --cream-400:#e8dfc9;
  --hairline:#e6ddcb; --hairline-strong:#d8cdb4;
  /* Service accents */
  --terracotta:#c0604a; --terracotta-soft:#f0d6cd;
  --sage:#6f8a66; --sage-soft:#dde5d6;
  --slate:#3c5c75; --slate-soft:#d4dee6;
  --ochre:#cf9b46; --ochre-soft:#f3e6c8;
  --plum:#7a5a6e; --plum-soft:#e6d9e1;
  /* Ink */
  --ink:#16273f; --body-strong:#283749; --body:#475467; --muted:#6b7585; --muted-soft:#9aa1ad; --on-dark:#fdfaf3;
  --success:#4f8a5b; --warning:#cf9b46; --error:#c0473d;
  /* Aliases */
  --color-canvas:var(--cream-100); --color-surface-soft:var(--cream-200); --color-surface-card:var(--cream-300);
  --color-surface-strong:var(--cream-400); --color-surface-dark:var(--navy-900);
  --color-primary:var(--navy-800); --color-primary-hover:var(--navy-700);
  --color-accent:var(--gold-500); --color-accent-strong:var(--gold-600);
  --text-ink:var(--ink); --text-strong:var(--body-strong); --text-body:var(--body);
  --text-muted:var(--muted); --text-faint:var(--muted-soft); --text-on-primary:var(--on-dark);
  --border-hairline:var(--hairline); --border-strong:var(--hairline-strong);
  /* Fonts */
  --font-display:'Spectral',Georgia,'Times New Roman',serif;
  --font-body:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  /* Spacing */
  --space-xs:8px; --space-sm:12px; --space-md:16px; --space-lg:24px; --space-xl:32px;
  --space-xxl:48px; --space-3xl:64px; --space-section:96px;
  /* Radius */
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-xl:24px; --radius-pill:9999px;
  /* Elevation */
  --shadow-soft:0 1px 2px rgba(22,39,63,.04),0 2px 8px rgba(22,39,63,.05);
  --shadow-card:0 4px 16px rgba(22,39,63,.07);
  --shadow-lift:0 12px 32px rgba(22,39,63,.12);
  /* Layout + motion */
  --container:1200px; --container-wide:1280px;
  --ease:cubic-bezier(.2,.6,.2,1); --dur-fast:140ms; --dur-base:220ms;
}

/* ---- Reset ---- */
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  font-family:var(--font-body); font-size:16px; line-height:1.6; color:var(--text-body);
  background:var(--color-canvas); -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; }
ul { list-style:none; padding:0; }
:focus-visible { outline:3px solid var(--gold-500); outline-offset:2px; border-radius:4px; }
.skip-link { position:absolute; left:8px; top:-200px; z-index:100; transition:top var(--dur-fast); }
.skip-link:focus { top:8px; }
h1,h2,h3,h4 { font-family:var(--font-display); color:var(--text-ink); font-weight:600; text-wrap:balance; }
p { text-wrap:pretty; }

/* ---- Utilities ---- */
.wrap { max-width:var(--container-wide); margin:0 auto; padding:0 32px; }
.section { padding-block:var(--space-section); }
.section--soft { background:var(--color-surface-soft); }
.section--dark { background:var(--navy-900); color:var(--on-dark); }
.eyebrow {
  font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:1.8px;
  text-transform:uppercase; color:var(--color-accent-strong);
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before { content:""; width:22px; height:2px; background:var(--color-accent); border-radius:2px; }
.eyebrow--center { justify-content:center; }
.eyebrow--ondark { color:var(--gold-300); }
.eyebrow--ondark::before { background:var(--gold-500); }
.lead { font-size:18px; line-height:1.6; color:var(--text-body); max-width:60ch; }
.muted { color:var(--text-muted); }
.brushstroke { height:8px; border-radius:4px;
  background:linear-gradient(90deg,var(--gold-600),var(--gold-500),var(--terracotta),var(--ochre),var(--sage),var(--slate),var(--navy-800)); }

.display-xl { font-size:clamp(40px,6vw,76px); line-height:1.02; letter-spacing:-2px; }
.display-lg { font-size:clamp(34px,4.5vw,56px); line-height:1.05; letter-spacing:-1.5px; }
.display-md { font-size:clamp(28px,3.4vw,40px); line-height:1.12; letter-spacing:-1px; }
.display-sm { font-size:clamp(24px,2.6vw,30px); line-height:1.18; letter-spacing:-.5px; }
.title-lg { font-size:24px; line-height:1.3; letter-spacing:-.2px; }

.section-head { display:flex; flex-direction:column; gap:14px; max-width:62ch; }
.section-head--center { align-items:center; text-align:center; margin-inline:auto; }
.section-head h2 { margin-top:4px; }

/* ---- Buttons ---- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:44px; padding:0 20px; font-family:var(--font-body); font-size:14px; font-weight:600;
  line-height:1; border-radius:var(--radius-md); border:1px solid transparent; cursor:pointer;
  white-space:nowrap; transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),color var(--dur-fast);
}
.btn:active { transform:scale(.98); }
.btn svg { width:1.15em; height:1.15em; }
.btn--lg { height:52px; padding:0 28px; font-size:15px; }
.btn--sm { height:38px; padding:0 14px; font-size:13px; }
.btn--block { display:flex; width:100%; }
.btn--primary { background:var(--color-primary); color:var(--text-on-primary); border-color:var(--color-primary); }
.btn--primary:hover { background:var(--color-primary-hover); }
.btn--secondary { background:var(--color-canvas); color:var(--text-ink); border-color:var(--border-strong); }
.btn--secondary:hover { background:var(--color-surface-soft); }
.btn--gold { background:var(--color-accent); color:var(--navy-900); border-color:var(--color-accent); }
.btn--gold:hover { background:var(--gold-600); }
.btn--oncolor { background:var(--cream-50); color:var(--text-ink); }
.btn--oncolor:hover { background:#fff; }
.btn--ghost-dark { background:transparent; color:var(--on-dark); border-color:rgba(255,255,255,.35); }
.btn--ghost-dark:hover { background:rgba(255,255,255,.1); }
.btn[disabled] { opacity:.5; cursor:not-allowed; }

/* ---- Header / nav ---- */
.site-header { position:sticky; top:0; z-index:60; background:var(--color-canvas); transition:background var(--dur-base),border-color var(--dur-base),box-shadow var(--dur-base); border-bottom:1px solid transparent; }
.site-header.is-scrolled { background:rgba(251,247,239,.92); backdrop-filter:saturate(180%) blur(10px); -webkit-backdrop-filter:saturate(180%) blur(10px); border-bottom-color:var(--border-hairline); }
.nav { display:flex; align-items:center; gap:24px; height:74px; }
.nav__logo { display:flex; align-items:center; flex-shrink:0; }
.nav__logo img { height:46px; width:auto; }
.nav__links { display:flex; align-items:center; gap:2px; margin-left:8px; }
.nav__links a { padding:8px 13px; border-radius:var(--radius-sm); font-size:15px; font-weight:500; color:var(--text-muted); transition:color var(--dur-fast),background var(--dur-fast); }
.nav__links a:hover { color:var(--text-ink); background:var(--color-surface-soft); }
.nav__links a.is-active { color:var(--text-ink); font-weight:600; }
.nav__actions { margin-left:auto; display:flex; align-items:center; gap:14px; }
.nav__phone { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:600; color:var(--text-strong); }
.nav__phone svg { color:var(--color-accent-strong); width:16px; height:16px; }
.nav__toggle { display:none; width:44px; height:44px; align-items:center; justify-content:center; background:transparent; border:1px solid var(--border-strong); border-radius:var(--radius-md); cursor:pointer; color:var(--text-ink); }
.nav__toggle svg { width:22px; height:22px; }

/* Mobile drawer */
.mobile-menu { display:none; position:fixed; inset:74px 0 0; z-index:55; background:var(--color-canvas); padding:24px 32px 40px; overflow-y:auto; }
.mobile-menu.is-open { display:block; }
.mobile-menu a { display:block; padding:14px 4px; font-family:var(--font-display); font-size:22px; font-weight:600; color:var(--text-ink); border-bottom:1px solid var(--border-hairline); }
.mobile-menu .btn { margin-top:24px; }
.mobile-menu__call { margin-top:14px; }
body.menu-open { overflow:hidden; }

/* ---- Hero ---- */
.hero { background:var(--color-canvas); padding-top:48px; padding-bottom:64px; }
.hero__grid { display:grid; grid-template-columns:1.02fr .98fr; gap:48px; align-items:center; }
.hero__copy { display:flex; flex-direction:column; gap:22px; }
.hero__copy h1 { margin:0; }
.hero__ctas { display:flex; gap:12px; flex-wrap:wrap; }
.hero__trust { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:4px; }
.hero__trust span { display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:500; color:var(--text-muted); }
.hero__trust svg { color:var(--color-accent-strong); width:17px; height:17px; }
.hero__media { position:relative; }
.hero__media img { width:100%; height:540px; object-fit:cover; border-radius:var(--radius-xl); }
.hero__media-tag { position:absolute; left:18px; bottom:18px; display:inline-flex; align-items:center; gap:8px; padding:9px 14px; background:rgba(15,27,45,.78); color:#fff; font-size:13px; font-weight:600; border-radius:var(--radius-pill); backdrop-filter:blur(4px); }
.hero__media-tag svg { color:var(--gold-300); width:15px; height:15px; }

/* ---- Estimate form card ---- */
.estimate-card { background:var(--color-canvas); border:1px solid var(--border-hairline); border-radius:var(--radius-xl); padding:28px; box-shadow:var(--shadow-card); }
.estimate-card__head { margin-bottom:18px; }
.estimate-card__head h2 { font-size:24px; line-height:1.25; letter-spacing:-.4px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:flex; flex-direction:column; gap:6px; }
.field--full { grid-column:1 / -1; }
.field label { font-size:14px; font-weight:600; color:var(--text-strong); }
.field label .req { color:var(--error); }
.field input,.field select,.field textarea {
  width:100%; height:46px; padding:0 14px; font-family:var(--font-body); font-size:16px; color:var(--text-ink);
  background:var(--color-canvas); border:1px solid var(--border-strong); border-radius:var(--radius-md);
  outline:none; transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
}
.field textarea { height:auto; padding:12px 14px; line-height:1.5; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--color-primary); border-width:1.5px; box-shadow:0 0 0 4px rgba(22,39,63,.06); }
.field input::placeholder,.field textarea::placeholder { color:var(--muted-soft); }
.field .field-error { font-size:13px; color:var(--error); display:none; }
.field.has-error input,.field.has-error select,.field.has-error textarea { border-color:var(--error); }
.field.has-error .field-error { display:block; }
.field-note { font-size:13px; color:var(--text-muted); }
/* honeypot — visually + programmatically hidden from users */
.hp-field { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.form-status { border-radius:var(--radius-md); padding:14px 16px; font-size:15px; font-weight:500; margin-top:4px; }
.form-status[hidden] { display:none; }
.form-status--ok { background:var(--sage-soft); color:#2f4a2c; border:1px solid var(--sage); }
.form-status--err { background:var(--terracotta-soft); color:#7a2f22; border:1px solid var(--terracotta); }

/* ---- Trust bar ---- */
.trustbar { background:var(--color-canvas); }
.trustbar__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:28px 32px; background:var(--color-surface-card); border-radius:var(--radius-lg); }
.trustbar__item { display:flex; align-items:center; gap:14px; }
.trustbar__icon { width:46px; height:46px; flex-shrink:0; border-radius:var(--radius-md); background:var(--gold-100); color:var(--color-accent-strong); display:inline-flex; align-items:center; justify-content:center; }
.trustbar__icon svg { width:24px; height:24px; }
.trustbar__item b { display:block; font-family:var(--font-display); font-size:17px; color:var(--text-ink); }
.trustbar__item span { font-size:13.5px; color:var(--text-muted); }

/* ---- Cards / grids ---- */
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }

/* Feature (service-coded saturated) cards */
.feature {
  border-radius:var(--radius-xl); padding:32px; display:flex; flex-direction:column; gap:14px;
  color:#fff; transition:transform var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease);
}
.feature:hover { transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.feature__icon { width:52px; height:52px; border-radius:var(--radius-md); background:rgba(255,255,255,.16); display:inline-flex; align-items:center; justify-content:center; }
.feature__icon svg { width:26px; height:26px; }
.feature .eyebrow { color:rgba(255,255,255,.82); }
.feature .eyebrow::before { background:rgba(255,255,255,.5); }
.feature h3 { color:#fff; font-size:26px; line-height:1.18; letter-spacing:-.4px; margin:0; }
.feature p { color:rgba(255,255,255,.85); font-size:15.5px; margin:0; }
.feature__link { margin-top:auto; padding-top:6px; display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:#fff; }
.feature__link svg { width:16px; height:16px; }
.feature--exterior { background:var(--terracotta); }
.feature--interior { background:var(--sage); }
.feature--commercial { background:var(--slate); }
.feature--consult { background:var(--plum); }
.feature--featured { background:var(--navy-800); }
.feature--specialty { background:var(--ochre); color:var(--navy-900); }
.feature--specialty .eyebrow { color:rgba(15,27,45,.7); }
.feature--specialty .eyebrow::before { background:rgba(15,27,45,.4); }
.feature--specialty h3 { color:var(--navy-900); }
.feature--specialty p { color:rgba(15,27,45,.78); }
.feature--specialty .feature__icon { background:rgba(15,27,45,.1); color:var(--navy-900); }
.feature--specialty .feature__link { color:var(--navy-900); }

/* Plain service card on cream */
.scard { background:var(--color-canvas); border:1px solid var(--border-hairline); border-radius:var(--radius-lg); padding:28px; display:flex; flex-direction:column; gap:12px; transition:transform var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease); }
.scard:hover { transform:translateY(-3px); box-shadow:var(--shadow-card); }
.scard__icon { width:48px; height:48px; border-radius:var(--radius-md); background:var(--gold-100); color:var(--color-accent-strong); display:inline-flex; align-items:center; justify-content:center; }
.scard__icon svg { width:24px; height:24px; }
.scard h3 { font-size:21px; line-height:1.3; letter-spacing:-.2px; margin:0; }
.scard p { font-size:15.5px; color:var(--text-body); margin:0; }
.scard__foot { margin-top:auto; padding-top:10px; display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--text-ink); }
.scard__foot svg { width:16px; height:16px; color:var(--color-accent-strong); }

/* List / why-choose cards */
.checklist { display:grid; grid-template-columns:repeat(2,1fr); gap:16px 32px; }
.checklist li { display:flex; gap:12px; align-items:flex-start; }
.checklist svg { flex-shrink:0; width:22px; height:22px; color:var(--success); margin-top:2px; }
.checklist b { font-family:var(--font-display); font-size:17px; color:var(--text-ink); font-weight:600; }
.checklist p { font-size:14.5px; color:var(--text-body); margin-top:2px; }

/* Process steps */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.step { display:flex; flex-direction:column; gap:12px; }
.step__top { display:flex; align-items:center; gap:12px; }
.step__icon { width:48px; height:48px; border-radius:var(--radius-md); background:var(--color-canvas); border:1px solid var(--border-hairline); color:var(--color-accent-strong); display:inline-flex; align-items:center; justify-content:center; }
.step__icon svg { width:22px; height:22px; }
.step__num { font-family:var(--font-display); font-size:30px; font-weight:600; color:var(--gold-300); }
.step h3 { font-size:20px; letter-spacing:-.2px; margin:0; }
.step p { font-size:15px; color:var(--text-body); margin:0; }

/* Audience chips */
.audience { display:flex; flex-wrap:wrap; gap:12px; }
.audience li { display:inline-flex; align-items:center; gap:9px; padding:11px 18px; background:var(--color-canvas); border:1px solid var(--border-hairline); border-radius:var(--radius-pill); font-size:15px; font-weight:500; color:var(--text-strong); }
.audience svg { width:18px; height:18px; color:var(--color-accent-strong); }

/* Add-ons */
.addons { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.addon { display:flex; align-items:center; gap:12px; padding:18px 20px; background:var(--color-surface-soft); border:1px solid var(--border-hairline); border-radius:var(--radius-md); }
.addon svg { width:22px; height:22px; color:var(--color-accent-strong); flex-shrink:0; }
.addon b { font-size:15.5px; color:var(--text-ink); font-weight:600; }
.addons-note { margin-top:18px; font-size:14.5px; color:var(--text-muted); }

/* Gallery placeholders */
.gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.gtile { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border-hairline); }
.gtile__swatch { height:200px; position:relative; display:flex; align-items:flex-end; padding:16px; }
.gtile__badge { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; background:rgba(15,27,45,.82); color:#fff; font-size:12px; font-weight:600; letter-spacing:.4px; border-radius:var(--radius-pill); }
.gtile__body { padding:16px 18px; background:var(--color-canvas); }
.gtile__body b { font-family:var(--font-display); font-size:17px; color:var(--text-ink); }
.gtile__body span { display:block; font-size:13.5px; color:var(--text-muted); margin-top:2px; }
.placeholder-note { display:flex; gap:12px; align-items:flex-start; padding:18px 20px; background:var(--gold-100); border:1px solid var(--gold-300); border-radius:var(--radius-md); margin-bottom:32px; }
.placeholder-note svg { width:22px; height:22px; color:var(--gold-700); flex-shrink:0; margin-top:1px; }
.placeholder-note p { font-size:14.5px; color:var(--gold-700); }

/* Reviews placeholder */
.review-ph { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.review-card { background:var(--color-canvas); border:1px dashed var(--border-strong); border-radius:var(--radius-lg); padding:28px; display:flex; flex-direction:column; gap:14px; align-items:flex-start; min-height:200px; }
.review-card__icon { width:46px; height:46px; border-radius:var(--radius-md); background:var(--color-surface-card); color:var(--color-accent-strong); display:inline-flex; align-items:center; justify-content:center; }
.review-card__icon svg { width:24px; height:24px; }
.review-card b { font-family:var(--font-display); font-size:19px; color:var(--text-ink); font-weight:600; }
.review-card p { font-size:14.5px; color:var(--text-muted); }

/* FAQ accordion */
.faq { max-width:820px; margin-inline:auto; border-top:1px solid var(--border-hairline); }
.faq__item { border-bottom:1px solid var(--border-hairline); }
.faq__q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 4px; background:transparent; border:0; cursor:pointer; text-align:left; font-family:var(--font-display); font-size:19px; font-weight:600; color:var(--text-ink); }
.faq__q svg { width:22px; height:22px; flex-shrink:0; color:var(--color-accent-strong); transition:transform var(--dur-base); }
.faq__item.is-open .faq__q svg { transform:rotate(45deg); }
.faq__a { max-height:0; overflow:hidden; transition:max-height var(--dur-base) var(--ease); }
.faq__a p { padding:0 4px 22px; font-size:16px; color:var(--text-body); max-width:70ch; }

/* Service areas */
.areas { display:flex; flex-wrap:wrap; gap:10px; }
.areas li { padding:10px 16px; background:var(--color-canvas); border:1px solid var(--border-hairline); border-radius:var(--radius-pill); font-size:14.5px; font-weight:500; color:var(--text-strong); }
.areas li.is-primary { background:var(--navy-800); color:#fff; border-color:var(--navy-800); }

/* Big CTA band */
.cta-band { position:relative; overflow:hidden; background:var(--color-surface-strong); border-radius:var(--radius-xl); padding:64px 48px; text-align:center; }
.cta-band__stroke { position:absolute; left:-5%; top:46px; width:110%; height:22px; transform:rotate(-4deg); background:linear-gradient(90deg,transparent,var(--gold-500) 20%,var(--gold-600) 80%,transparent); opacity:.65; }
.cta-band__inner { position:relative; }
.cta-band h2 { font-size:clamp(28px,3.4vw,40px); line-height:1.1; letter-spacing:-1px; max-width:18ch; margin:0 auto; }
.cta-band p { font-size:18px; color:var(--text-body); max-width:52ch; margin:16px auto 28px; }
.cta-band__ctas { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* Page hero (interior pages) */
.page-hero { background:var(--color-surface-soft); padding-top:56px; padding-bottom:56px; }
.page-hero__grid { display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
.page-hero__copy { display:flex; flex-direction:column; gap:18px; }
.page-hero__copy h1 { margin:0; }
.page-hero__media img { width:100%; height:420px; object-fit:cover; border-radius:var(--radius-xl); }
.breadcrumb { font-size:13.5px; color:var(--text-muted); display:flex; gap:8px; align-items:center; }
.breadcrumb a:hover { color:var(--text-ink); }
.breadcrumb svg { width:14px; height:14px; }

/* Prose blocks for service/legal pages */
.prose { max-width:72ch; }
.prose h2 { font-size:30px; letter-spacing:-.5px; margin-top:0; }
.prose h3 { font-size:21px; margin-top:32px; }
.prose p { margin-top:14px; font-size:16.5px; color:var(--text-body); }
.prose ul { margin-top:14px; display:flex; flex-direction:column; gap:10px; }
.prose ul li { display:flex; gap:11px; align-items:flex-start; font-size:16px; color:var(--text-body); }
.prose ul li svg { width:20px; height:20px; color:var(--color-accent-strong); flex-shrink:0; margin-top:3px; }
.prose a { color:var(--gold-700); font-weight:600; text-decoration:underline; text-underline-offset:2px; }

.split { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.split img { width:100%; height:100%; max-height:480px; object-fit:cover; border-radius:var(--radius-xl); }

/* ---- Footer ---- */
.site-footer { background:var(--color-surface-soft); border-top:1px solid var(--border-hairline); }
.site-footer__inner { padding:72px 32px 40px; max-width:var(--container-wide); margin:0 auto; }
.site-footer__grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
.site-footer__brand img { height:60px; width:auto; margin-left:-4px; }
.site-footer__brand p { font-size:14px; line-height:1.6; color:var(--text-muted); max-width:300px; margin-top:14px; }
.site-footer__contact { margin-top:16px; display:flex; flex-direction:column; gap:8px; }
.site-footer__contact a,.site-footer__contact span { display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--text-strong); }
.site-footer__contact svg { width:16px; height:16px; color:var(--color-accent-strong); }
.site-footer h4 { font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-strong); margin-bottom:16px; }
.site-footer ul { display:flex; flex-direction:column; gap:11px; }
.site-footer ul a { font-size:14px; color:var(--text-muted); }
.site-footer ul a:hover { color:var(--text-ink); }
.site-footer__legal { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 24px; margin-top:48px; padding-top:24px; border-top:1px solid var(--border-hairline); }
.site-footer__legal p { font-size:13px; color:var(--text-faint); }
.site-footer__legal .lic { font-size:13px; color:var(--text-muted); }
.site-footer__legal a { font-size:13px; color:var(--text-faint); }
.site-footer__legal a:hover { color:var(--text-ink); }

/* Sticky mobile CTA */
.sticky-cta { display:none; position:fixed; left:0; right:0; bottom:0; z-index:50; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(251,247,239,.95); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-top:1px solid var(--border-hairline); gap:10px; }
.sticky-cta .btn { flex:1; }

/* ---- Responsive ---- */
@media (max-width:1024px) {
  .hero__grid { gap:32px; }
  .hero__media img { height:460px; }
  .grid-3,.gallery,.review-ph,.addons { grid-template-columns:repeat(2,1fr); }
  .steps { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:860px) {
  .nav__links,.nav__phone { display:none; }
  .nav__toggle { display:inline-flex; }
  .nav__actions .btn { display:none; }
  .hero__grid,.page-hero__grid,.split { grid-template-columns:1fr; }
  .hero__media { order:-1; }
  .hero__media img { height:340px; }
  .page-hero__media img { height:300px; }
  .trustbar__grid { grid-template-columns:repeat(2,1fr); gap:24px 20px; }
  .checklist { grid-template-columns:1fr; }
  .site-footer__grid { grid-template-columns:1fr 1fr; gap:32px; }
  .sticky-cta { display:flex; }
  body { padding-bottom:72px; }
}
@media (max-width:560px) {
  .wrap { padding:0 20px; }
  .section { padding-block:56px; }
  .form-grid { grid-template-columns:1fr; }
  .grid-3,.grid-2,.grid-4,.gallery,.review-ph,.addons,.steps { grid-template-columns:1fr; }
  .hero__ctas .btn,.cta-band__ctas .btn { width:100%; }
  .site-footer__grid { grid-template-columns:1fr; }
  .cta-band { padding:48px 24px; }
  .feature,.scard { padding:24px; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* Reveal-on-scroll (progressive enhancement; visible by default if JS off) */
.reveal { opacity:0; transform:translateY(16px); transition:opacity .5s var(--ease),transform .5s var(--ease); }
.reveal.is-in { opacity:1; transform:none; }
.no-js .reveal { opacity:1; transform:none; }
