/* ================================================
   FOUNDRY PRINT AND PROMO — styles.css  FINAL v5
   Full CRO + photo-driven upgrade.

   TABLE OF CONTENTS
   1.  CSS Variables
   2.  Reset & Base
   3.  Skip Link + Accessibility
   4.  Typography
   5.  Buttons
   6.  Layout
   7.  Header & Navigation
   8.  Mobile Navigation
   9.  Hero — with image layout
   10. Trust Strip
   11. Proof / Social Proof Section
   12. Pain Point Section
   13. Who We Serve
   14. Services — with image cards
   15. Why Foundry
   16. Process — 5-step
   17. Agency Partnership — with image
   18. Featured Work — enhanced cards
   19. Faith & Values — polished
   20. Final CTA
   21. Footer
   22. Mobile Sticky CTA Bar
   23. Scroll Animations
   24. Reduced-Motion Override
   25. Media Queries
================================================ */


/* ================================================
   1. CSS VARIABLES
================================================ */
:root {
  /* Palette */
  --ink:     #141412;
  --forge:   #1C1B19;
  --iron:    #242320;
  --ash:     #2C2B28;
  --steel:   #38362F;
  --wire:    #4A4740;
  --graph:   #6B6760;
  --muted:   #9A9590;
  --linen:   #D4CEBC;
  --parch:   #EDE8DC;
  --chalk:   #F5F1E8;

  --ember:   #C4541A;
  --ember-h: #D96020;
  --ember-c: #A34416;

  --grove:   #253B2C;
  --grove-l: #2E4D38;
  --grove-b: #3A5E44;

  /* Grid overlay */
  --grid-o:  rgba(255,255,255,0.028);

  /* Fonts */
  --f-display: 'Bebas Neue','Arial Narrow',sans-serif;
  --f-label:   'Barlow Condensed','Arial Narrow',sans-serif;
  --f-body:    'Barlow','Helvetica Neue',sans-serif;

  /* Type scale */
  --t2xs: 0.6875rem;
  --txs:  0.75rem;
  --tsm:  0.875rem;
  --tb:   1rem;
  --tmd:  1.125rem;
  --tlg:  1.375rem;
  --txl:  1.75rem;
  --t2xl: 2.25rem;
  --t3xl: 3rem;
  --t4xl: 4.5rem;
  --thero:clamp(4rem, 10vw, 8.5rem);

  /* Spacing */
  --s1:  0.25rem;
  --s2:  0.5rem;
  --s3:  0.75rem;
  --s4:  1rem;
  --s5:  1.25rem;
  --s6:  1.5rem;
  --s7:  1.75rem;
  --s8:  2rem;
  --s10: 2.5rem;
  --s12: 3rem;
  --s16: 4rem;
  --s20: 5rem;
  --s24: 6rem;

  /* Layout */
  --max-w:   1200px;
  --gut:     clamp(1.25rem, 4vw, 2.75rem);
  --sec-v:   clamp(4.5rem, 8vw, 7rem);
  --hdr-h:   76px;

  /* Easing */
  --ease: cubic-bezier(0.16,1,0.3,1);
  --fast: 180ms;
  --base: 260ms;
  --slow: 420ms;

  /* Mobile sticky bar height — used for body padding */
  --sticky-h: 64px;
}


/* ================================================
   2. RESET & BASE
================================================ */
*,*::before,*::after { box-sizing: border-box; margin:0; padding:0; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--hdr-h) + 12px);
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  background: var(--forge);
  color: var(--linen);
  font-family: var(--f-body);
  font-weight: 400;
  line-height: 1.65;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { display:block; max-width:100%; height:auto; }
a   { color:inherit; text-decoration:none; }
ul,ol { list-style:none; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }

::selection { background:var(--ember); color:var(--chalk); }
:focus-visible { outline:2px solid var(--ember); outline-offset:3px; }


/* ================================================
   3. SKIP LINK + ACCESSIBILITY
================================================ */
.skip-link {
  position:absolute; top:-100%; left:var(--s4);
  z-index:9999;
  background:var(--ember); color:var(--chalk);
  font-family:var(--f-label); font-size:var(--tsm); font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  padding:var(--s3) var(--s5);
  transition:top var(--fast);
}
.skip-link:focus { top:var(--s4); outline:2px solid var(--chalk); outline-offset:2px; }

.visually-hidden {
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border-width:0;
}


/* ================================================
   4. TYPOGRAPHY
================================================ */
.t-heading {
  font-family:var(--f-display);
  font-size:clamp(var(--t3xl),5.5vw,5rem);
  color:var(--parch);
  line-height:0.92;
  letter-spacing:.03em;
}

.eyebrow {
  display:inline-flex; align-items:center; gap:var(--s3);
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:700;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--ember); margin-bottom:var(--s5);
}
.eyebrow::before {
  content:''; display:block;
  width:28px; height:1px; background:var(--ember); flex-shrink:0;
}

.section-intro {
  font-family:var(--f-body); font-size:var(--tb); font-weight:300;
  color:var(--muted); max-width:580px; line-height:1.8;
  margin-top:var(--s6); margin-bottom:var(--s12);
}


/* ================================================
   5. BUTTONS
================================================ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--s2);
  font-family:var(--f-label); font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; white-space:nowrap; line-height:1;
  border:1px solid transparent; cursor:pointer; min-height:44px;
  transition:
    background-color var(--fast) var(--ease),
    border-color     var(--fast) var(--ease),
    color            var(--fast) var(--ease),
    transform        var(--fast) var(--ease);
}
.btn:hover  { transform:translateY(-2px); }
.btn:active { transform:translateY(0); }

.btn-primary {
  background:var(--ember); color:var(--chalk); border-color:var(--ember);
  font-size:var(--txs); padding:.875rem 2rem;
}
.btn-primary:hover  { background:var(--ember-h); border-color:var(--ember-h); }
.btn-primary:active { background:var(--ember-c); border-color:var(--ember-c); }

.btn-secondary {
  background:transparent; color:var(--linen); border-color:var(--wire);
  font-size:var(--txs); padding:.875rem 2rem;
}
.btn-secondary:hover { border-color:var(--linen); color:var(--chalk); }

.btn-lg  { font-size:var(--tsm); padding:1.1rem 2.375rem; }
.btn-sm  { font-size:var(--t2xs); padding:.7rem 1.375rem; letter-spacing:.16em; }

.btn-group { display:flex; align-items:center; gap:var(--s4); flex-wrap:wrap; }

.footer-cta-btn { margin-top:var(--s6); }


/* ================================================
   6. LAYOUT
================================================ */
.container {
  width:100%; max-width:var(--max-w);
  margin-inline:auto; padding-inline:var(--gut);
}


/* ================================================
   7. HEADER & NAVIGATION
================================================ */
.site-header {
  position:fixed; inset-block-start:0; inset-inline:0;
  z-index:200; height:var(--hdr-h);
  background:rgba(26,25,22,.94);
  border-bottom:1px solid var(--wire);
  backdrop-filter:blur(14px) saturate(.7);
  -webkit-backdrop-filter:blur(14px) saturate(.7);
  transition:border-color var(--base) var(--ease), background-color var(--base) var(--ease);
}
.site-header.scrolled { background:rgba(20,20,18,.98); border-bottom-color:var(--graph); }

.header-inner {
  display:flex; align-items:center; justify-content:space-between;
  height:100%; gap:var(--s4);
}

.logo-link { display:flex; align-items:center; flex-shrink:0; min-height:44px; }
.logo-img          { height:46px; width:auto; display:block; }
.logo-img--footer  { height:52px; width:auto; display:block; }

.logo-fallback { display:none; flex-direction:column; line-height:1; }
.logo-fallback-name {
  font-family:var(--f-display); font-size:var(--txl);
  color:var(--chalk); letter-spacing:.07em;
}
.logo-fallback-sub {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.2em; color:var(--ember); text-transform:uppercase;
}

.main-nav { flex:1; display:flex; justify-content:center; }
.nav-list { display:flex; align-items:center; gap:var(--s8); }
.nav-link {
  font-family:var(--f-label); font-size:var(--txs); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--graph);
  padding-block:var(--s3); position:relative;
  transition:color var(--fast) var(--ease);
}
.nav-link::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:1px; background:var(--ember);
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--base) var(--ease);
}
.nav-link:hover,.nav-link.active    { color:var(--parch); }
.nav-link:hover::after,.nav-link.active::after { transform:scaleX(1); }

.header-right { display:flex; align-items:center; gap:var(--s3); flex-shrink:0; }
.header-cta   { display:inline-flex; }

.mobile-btn {
  display:none; flex-direction:column; justify-content:center;
  align-items:center; gap:5px; width:48px; height:48px; flex-shrink:0; padding:0;
}
.ham-line {
  display:block; height:1.5px; background:var(--linen);
  transition:transform var(--base) var(--ease), opacity var(--base) var(--ease), width var(--base) var(--ease);
}
.ham-line:nth-child(1) { width:24px; }
.ham-line:nth-child(2) { width:16px; }
.ham-line:nth-child(3) { width:24px; }
.mobile-btn.open .ham-line:nth-child(1) { width:24px; transform:translateY(6.5px) rotate(45deg); }
.mobile-btn.open .ham-line:nth-child(2) { opacity:0; transform:scaleX(0); }
.mobile-btn.open .ham-line:nth-child(3) { width:24px; transform:translateY(-6.5px) rotate(-45deg); }


/* ================================================
   8. MOBILE NAVIGATION
================================================ */
.mobile-nav {
  display:none; background:var(--ink); border-top:1px solid var(--wire);
  overflow:hidden; max-height:0; transition:max-height 360ms var(--ease);
}
.mobile-nav.open { max-height:580px; }
.mobile-nav-list { display:flex; flex-direction:column; padding:var(--s3) 0 var(--s8); }
.mobile-nav-link {
  font-family:var(--f-label); font-size:var(--tlg); font-weight:600;
  letter-spacing:.07em; text-transform:uppercase; color:var(--linen);
  display:flex; align-items:center; min-height:52px;
  padding-inline:var(--gut); border-bottom:1px solid transparent;
  transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease);
}
.mobile-nav-link:hover { color:var(--chalk); background:var(--ash); }
.mobile-nav-cta { margin:var(--s5) var(--gut) 0; }


/* ================================================
   9. HERO — with image layout
================================================ */
.hero {
  position:relative; min-height:100vh; min-height:100svh;
  padding-top:var(--hdr-h); background:var(--ink); overflow:hidden;
  display:flex; align-items:center;
}

.hero-noise {
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  background-size:256px 256px; pointer-events:none; z-index:1;
}
.hero-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--grid-o) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-o) 1px,transparent 1px);
  background-size:72px 72px; pointer-events:none; z-index:1;
}
.hero-vignette {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 50% at 30% 110%,rgba(196,84,26,.09) 0%,transparent 65%);
  pointer-events:none; z-index:1;
}
.hero-sidebar {
  position:absolute; left:var(--gut); top:0; bottom:0;
  width:1px; background:var(--wire); z-index:2;
}
.hero-sidebar::before {
  content:''; position:absolute; top:calc(var(--hdr-h) + 1.5rem);
  left:0; width:100%; height:28%; background:var(--ember);
}

/* Two-column hero: copy left, image right */
.hero-content {
  position:relative; z-index:3;
  padding-top:var(--s16); padding-bottom:var(--s16);
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:var(--s12);
  width:100%; max-width:var(--max-w);
  margin-inline:auto; padding-inline:var(--gut);
}

.hero-eyebrow {
  display:flex; align-items:center; flex-wrap:wrap;
  gap:var(--s3); margin-bottom:var(--s8);
}
.hero-eyebrow-pill {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
  padding:var(--s2) var(--s3); border:1px solid var(--wire); white-space:nowrap;
}
.hero-eyebrow-dot { width:3px; height:3px; background:var(--wire); display:inline-block; flex-shrink:0; }

.hero-headline {
  font-family:var(--f-display); font-size:var(--thero);
  color:var(--chalk); line-height:.88; letter-spacing:.02em;
  margin-bottom:var(--s8);
}

.hero-body {
  font-family:var(--f-body);
  font-size:clamp(var(--tb),1.5vw,var(--tmd));
  font-weight:300; color:var(--linen);
  max-width:440px; line-height:1.8; margin-bottom:var(--s10);
}

.hero-qualifier {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  margin-top:var(--s8); display:flex; align-items:center; gap:var(--s3);
}
.hero-qualifier::before {
  content:''; display:block; flex-shrink:0;
  width:16px; height:1px; background:var(--wire);
}

/* Hero visual column */
.hero-visual {
  position:relative; display:flex; flex-direction:column;
}

/* Hero image frame */
.hero-img-frame {
  position:relative; overflow:hidden;
  border:1px solid var(--wire);
  aspect-ratio:4/5;
  background:var(--ash);
}
.hero-img {
  width:100%; height:100%; object-fit:cover;
  display:block; transition:transform 600ms var(--ease);
}
.hero-img-frame:hover .hero-img { transform:scale(1.03); }

/* Placeholder when hero-shop.jpg is missing */
.hero-img-frame.hero-img-placeholder {
  display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(
    -45deg,var(--ash) 0,var(--ash) 24px,var(--steel) 24px,var(--steel) 25px
  );
}
.hero-img-frame.hero-img-placeholder::after {
  content:'Add assets/hero-shop.jpg';
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--graph);
  text-align:center; padding:var(--s4);
}

/* Proof card overlapping image */
.hero-proof-card {
  position:absolute; bottom:-var(--s8); left:-var(--s8);
  background:var(--ash); border:1px solid var(--wire);
  border-left:3px solid var(--ember);
  padding:var(--s5) var(--s6);
  display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:center; gap:var(--s4);
  min-width:0;
}
.hero-proof-item {
  display:flex; flex-direction:column; align-items:center; gap:2px;
}
.hero-proof-value {
  font-family:var(--f-display); font-size:var(--t2xl);
  color:var(--parch); line-height:1; letter-spacing:.03em;
}
.hero-proof-label {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  text-align:center; line-height:1.3;
}
.hero-proof-divider { width:1px; height:36px; background:var(--wire); }

.hero-bottom-bar { position:absolute; bottom:0; left:0; right:0; height:1px; background:var(--wire); z-index:3; }


/* ================================================
   10. TRUST STRIP
================================================ */
.trust-strip { background:var(--ash); border-bottom:1px solid var(--wire); }
.trust-inner {
  padding-block:var(--s5); display:flex; align-items:center;
  justify-content:space-between; flex-wrap:wrap; gap:var(--s4);
}
.trust-item {
  display:flex; align-items:center; gap:var(--s3);
  font-family:var(--f-label); font-size:var(--txs); font-weight:600;
  letter-spacing:.13em; text-transform:uppercase; color:var(--linen);
}
.trust-dot { width:4px; height:4px; background:var(--ember); flex-shrink:0; }
.trust-divider { width:1px; height:20px; background:var(--wire); }


/* ================================================
   11. PROOF / SOCIAL PROOF SECTION
================================================ */
.proof-section {
  background:var(--forge);
  padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}

.proof-header {
  display:grid; grid-template-columns:1fr 1fr;
  gap:var(--s12); align-items:end;
  margin-bottom:var(--s10); padding-bottom:var(--s10);
  border-bottom:1px solid var(--wire);
}

/* Client type strip */
.client-type-strip {
  display:flex; align-items:center; flex-wrap:wrap;
  gap:var(--s3) var(--s4);
  padding:var(--s5) 0; margin-bottom:var(--s12);
  border-top:1px solid var(--wire); border-bottom:1px solid var(--wire);
}
.client-type-item {
  font-family:var(--f-label); font-size:var(--tsm); font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
  white-space:nowrap;
}
.client-type-sep {
  color:var(--wire); font-family:var(--f-label); font-size:var(--tsm);
}

/* Testimonial grid */
.testimonial-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:var(--wire); border:1px solid var(--wire);
  margin-bottom:var(--s8);
}
.testimonial-card {
  background:var(--ash); padding:var(--s8) var(--s7);
  display:flex; flex-direction:column; gap:var(--s5);
  position:relative;
}
.testimonial-placeholder-note {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--ember); opacity:.7;
  padding:var(--s2) var(--s3); border:1px dashed var(--ember);
  display:inline-block; align-self:flex-start;
}
.testimonial-quote {
  font-family:var(--f-body); font-size:var(--tsm); font-weight:300;
  color:var(--muted); line-height:1.8; font-style:italic; flex:1;
}
.testimonial-source { margin-top:auto; padding-top:var(--s5); border-top:1px solid var(--wire); }
.testimonial-type {
  font-family:var(--f-label); font-size:var(--tsm); font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--parch);
}
.testimonial-context {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; color:var(--graph);
  margin-top:var(--s1);
}
.testimonial-disclaimer {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; color:var(--graph);
  text-align:center;
}


/* ================================================
   12. PAIN POINT SECTION
================================================ */
.pain-section {
  background:var(--iron);
  padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.pain-header {
  max-width:740px; margin-bottom:var(--s12);
}
.pain-lead {
  font-family:var(--f-body); font-size:var(--tmd); font-weight:300;
  color:var(--muted); line-height:1.8; margin-top:var(--s6);
}
.pain-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  border:1px solid var(--wire);
}
.pain-card {
  padding:var(--s8) var(--s7);
  border-right:1px solid var(--wire);
  background:var(--iron);
  transition:background var(--base) var(--ease);
}
.pain-card:last-child { border-right:none; }
.pain-card:hover { background:var(--ash); }
.pain-card:hover .pain-card-num { color:var(--ember); }

.pain-card-num {
  font-family:var(--f-display); font-size:var(--t4xl);
  color:var(--steel); line-height:1; margin-bottom:var(--s5);
  transition:color var(--base) var(--ease);
}
.pain-card-title {
  font-family:var(--f-label); font-size:var(--tb); font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--parch); margin-bottom:var(--s4); line-height:1.3;
}
.pain-card-desc {
  font-family:var(--f-body); font-size:var(--tsm); font-weight:300;
  color:var(--muted); line-height:1.75;
}


/* ================================================
   13. WHO WE SERVE
================================================ */
.who-we-serve {
  background:var(--forge); padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.serve-header {
  display:grid; grid-template-columns:1fr 1fr;
  gap:var(--s12); align-items:end;
  margin-bottom:var(--s16); padding-bottom:var(--s12);
  border-bottom:1px solid var(--wire);
}
.serve-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  border:1px solid var(--wire);
}
.serve-card {
  padding:var(--s8) var(--s6);
  border-right:1px solid var(--wire); border-bottom:1px solid var(--wire);
  position:relative; background:var(--forge);
  transition:background var(--base) var(--ease);
}
.serve-card:nth-child(4n)  { border-right:none; }
.serve-card:nth-child(n+5) { border-bottom:none; }
.serve-card::after {
  content:''; position:absolute; bottom:0; left:0;
  width:0; height:2px; background:var(--ember);
  transition:width var(--slow) var(--ease);
}
.serve-card:hover                  { background:var(--ash); }
.serve-card:hover::after           { width:100%; }
.serve-card:hover .serve-num       { color:var(--ember); }

.serve-num {
  font-family:var(--f-display); font-size:var(--t3xl);
  color:var(--wire); line-height:1; margin-bottom:var(--s5);
  transition:color var(--base) var(--ease);
}
.serve-title {
  font-family:var(--f-label); font-size:var(--tb); font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--parch); margin-bottom:var(--s3); line-height:1.3;
}
.serve-desc {
  font-family:var(--f-body); font-size:var(--tsm);
  font-weight:300; color:var(--muted); line-height:1.7;
}


/* ================================================
   14. SERVICES — with image cards
================================================ */
.services {
  background:var(--iron); padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.services-header {
  display:grid; grid-template-columns:1fr 1fr;
  gap:var(--s12); align-items:end;
  margin-bottom:var(--s16); padding-bottom:var(--s12);
  border-bottom:1px solid var(--wire);
}
.service-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  border:1px solid var(--wire);
}
.service-card {
  border-right:1px solid var(--wire); border-bottom:1px solid var(--wire);
  position:relative; background:var(--iron);
  transition:background var(--base) var(--ease);
  overflow:hidden;
  display:flex; flex-direction:column;
}
.service-card:nth-child(3n)  { border-right:none; }
.service-card:nth-child(n+4) { border-bottom:none; }
.service-card::before {
  content:''; position:absolute; top:0; left:0;
  width:2px; height:0; background:var(--ember);
  transition:height var(--slow) var(--ease); z-index:2;
}
.service-card:hover              { background:var(--ash); }
.service-card:hover::before      { height:100%; }
.service-card:hover .svc-num     { color:rgba(196,84,26,.18); }
.service-card:hover .svc-list li { color:var(--linen); }

/* Service image */
.svc-img-wrap {
  width:100%; aspect-ratio:16/9; overflow:hidden;
  background:var(--steel); flex-shrink:0;
}
.svc-img {
  width:100%; height:100%; object-fit:cover;
  display:block; transition:transform 500ms var(--ease);
}
.service-card:hover .svc-img { transform:scale(1.04); }
.svc-img-wrap.svc-img-placeholder {
  display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(
    -45deg,var(--ash) 0,var(--ash) 20px,var(--steel) 20px,var(--steel) 21px
  );
}
.svc-img-wrap.svc-img-placeholder::after {
  content:'Photo Coming Soon';
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--graph);
}

/* Service body (below image) */
.svc-body { padding:var(--s8) var(--s7); flex:1; display:flex; flex-direction:column; }

.svc-num {
  font-family:var(--f-display); font-size:4.5rem;
  line-height:1; color:var(--steel); margin-bottom:var(--s3);
  transition:color var(--base) var(--ease);
}
.svc-title {
  font-family:var(--f-label); font-size:var(--tlg); font-weight:700;
  letter-spacing:.05em; text-transform:uppercase;
  color:var(--parch); margin-bottom:var(--s2); line-height:1.2;
}
.svc-best-for {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ember);
  margin-bottom:var(--s5);
}
.svc-desc {
  font-family:var(--f-body); font-size:var(--tsm); font-weight:300;
  color:var(--muted); line-height:1.75; margin-bottom:var(--s7);
}
.svc-list { display:flex; flex-direction:column; gap:var(--s2); margin-top:auto; }
.svc-list li {
  font-family:var(--f-label); font-size:var(--tsm); font-weight:500;
  letter-spacing:.04em; color:var(--graph);
  padding-left:var(--s5); position:relative;
  transition:color var(--fast) var(--ease);
}
.svc-list li::before {
  content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:10px; height:1px; background:var(--wire);
}

/* CTA card */
.service-card--cta {
  background:var(--grove); border-color:var(--grove-b);
  justify-content:center; padding:var(--s10) var(--s8);
}
.service-card--cta::before { background:var(--chalk); }
.service-card--cta:hover   { background:var(--grove-l); }
.service-card--cta .svc-img-wrap { display:none; }
.cta-card-label {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:rgba(240,235,220,.5);
  margin-bottom:var(--s4);
}
.cta-card-heading {
  font-family:var(--f-display); font-size:var(--t3xl);
  color:var(--chalk); line-height:.95; letter-spacing:.03em; margin-bottom:var(--s5);
}
.cta-card-sub {
  font-family:var(--f-body); font-size:var(--txs); font-weight:300;
  color:rgba(240,235,220,.45); line-height:1.6; margin-bottom:var(--s7);
}


/* ================================================
   15. WHY FOUNDRY
================================================ */
.why-foundry {
  background:var(--forge); padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.why-header {
  display:grid; grid-template-columns:1fr 1fr;
  gap:var(--s12); align-items:end;
  margin-bottom:var(--s16); padding-bottom:var(--s12);
  border-bottom:1px solid var(--wire);
}
.why-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  border:1px solid var(--wire);
}
.why-card {
  padding:var(--s10) var(--s8);
  border-right:1px solid var(--wire); border-bottom:1px solid var(--wire);
  background:var(--forge); transition:background var(--base) var(--ease);
}
.why-card:nth-child(3n)  { border-right:none; }
.why-card:nth-child(n+4) { border-bottom:none; }
.why-card:hover          { background:var(--ash); }
.why-card:hover .why-num { color:var(--graph); }

.why-num {
  font-family:var(--f-display); font-size:var(--t4xl);
  color:var(--steel); line-height:1; margin-bottom:var(--s5);
  transition:color var(--base) var(--ease);
}
.why-title {
  font-family:var(--f-label); font-size:var(--tb); font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--parch); margin-bottom:var(--s4); line-height:1.3;
}
.why-desc {
  font-family:var(--f-body); font-size:var(--tsm);
  font-weight:300; color:var(--muted); line-height:1.8;
}


/* ================================================
   16. PROCESS — 5 steps
================================================ */
.process {
  background:var(--ash); padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.process-header {
  display:grid; grid-template-columns:1fr 1fr;
  gap:var(--s12); align-items:end;
  margin-bottom:var(--s16); padding-bottom:var(--s12);
  border-bottom:1px solid var(--wire);
}
.process-steps {
  display:grid; grid-template-columns:repeat(5,1fr);
  border:1px solid var(--wire); margin-bottom:var(--s8);
}
.process-step {
  padding:var(--s10) var(--s6);
  border-right:1px solid var(--wire);
  background:var(--ash); transition:background var(--base) var(--ease);
}
.process-step:last-child { border-right:none; }
.process-step:hover      { background:var(--steel); }

.step-number-wrap {
  display:flex; align-items:center; margin-bottom:var(--s7); min-height:52px;
}
.step-num-box {
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; background:var(--ember); color:var(--chalk);
  font-family:var(--f-display); font-size:var(--txl); letter-spacing:.05em;
  flex-shrink:0;
}
.step-connector { flex:1; height:1px; background:var(--wire); }

.step-title {
  font-family:var(--f-label); font-size:var(--tlg); font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--parch); margin-bottom:var(--s4);
}
.step-desc {
  font-family:var(--f-body); font-size:var(--tsm);
  font-weight:300; color:var(--muted); line-height:1.8;
}

/* Process buyer confidence microcopy */
.process-microcopy {
  font-family:var(--f-label); font-size:var(--tsm); font-weight:600;
  letter-spacing:.08em; color:var(--ember);
  padding:var(--s5) var(--s7); border:1px solid var(--wire);
  border-left:3px solid var(--ember); background:var(--iron);
  margin-bottom:var(--s12); display:block;
}

.process-footer {
  display:flex; align-items:center; gap:var(--s5); flex-wrap:wrap;
}


/* ================================================
   17. AGENCY PARTNERSHIP — with image
================================================ */
.agency {
  background:var(--ink); padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.agency-inner {
  display:grid; grid-template-columns:1fr 420px;
  gap:var(--s16); align-items:start;
}
.agency-desc {
  font-family:var(--f-body); font-size:var(--tmd); font-weight:300;
  color:var(--muted); line-height:1.8; margin-bottom:var(--s7);
}
.agency-list {
  display:flex; flex-direction:column; gap:var(--s4); margin-bottom:var(--s10);
}
.agency-list li {
  font-family:var(--f-body); font-size:var(--tsm);
  color:var(--linen); padding-left:var(--s7); position:relative; line-height:1.6;
}
.agency-list li::before {
  content:''; position:absolute; left:0; top:.6em;
  width:20px; height:1px; background:var(--ember);
}

/* Agency visual column */
.agency-visual {
  display:flex; flex-direction:column; gap:var(--s4);
}
.agency-img-frame {
  width:100%; aspect-ratio:4/5; overflow:hidden;
  border:1px solid var(--wire); background:var(--ash);
}
.agency-img {
  width:100%; height:100%; object-fit:cover;
  display:block; transition:transform 500ms var(--ease);
}
.agency-img-frame:hover .agency-img { transform:scale(1.03); }
.agency-img-frame.agency-img-placeholder {
  display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(
    -45deg,var(--ash) 0,var(--ash) 24px,var(--steel) 24px,var(--steel) 25px
  );
}
.agency-img-frame.agency-img-placeholder::after {
  content:'Add assets/agency-partner.jpg';
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--graph);
  text-align:center; padding:var(--s4);
}

.agency-panel {
  background:var(--ash); border:1px solid var(--wire); border-left:2px solid var(--ember);
}
.agency-panel-inner {
  padding:var(--s8); display:flex; flex-direction:row; gap:0;
}
.agency-stat {
  flex:1; padding:var(--s4) var(--s5);
  border-right:1px solid var(--wire); text-align:center;
}
.agency-stat:last-child { border-right:none; }
.agency-stat-num {
  font-family:var(--f-display); font-size:3.5rem;
  color:var(--parch); line-height:.9; letter-spacing:.02em;
}
.agency-stat-label {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--graph); margin-top:var(--s2);
}


/* ================================================
   18. FEATURED WORK — enhanced cards
================================================ */
.featured-work {
  background:var(--iron); padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.work-header {
  display:flex; align-items:flex-end; justify-content:space-between;
  flex-wrap:wrap; gap:var(--s6);
  margin-bottom:var(--s12); padding-bottom:var(--s12);
  border-bottom:1px solid var(--wire);
}
.work-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--wire); border:1px solid var(--wire);
}

/* Work card: image on top, body below */
.work-card {
  position:relative; overflow:hidden; background:var(--ash);
  display:flex; flex-direction:column;
}

.work-img-wrap {
  width:100%; aspect-ratio:3/4; overflow:hidden; flex-shrink:0;
}
.work-img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 560ms var(--ease);
}
.work-card:hover .work-img { transform:scale(1.04); }

.work-img-wrap.placeholder {
  display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(
    -45deg,var(--ash) 0,var(--ash) 24px,var(--steel) 24px,var(--steel) 25px
  );
}
.work-img-wrap.placeholder::after {
  content:'Photo Coming Soon';
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--graph);
  text-align:center; padding:var(--s4);
}

/* Card body below image */
.work-card-body {
  padding:var(--s5) var(--s5) var(--s6); flex:1; display:flex; flex-direction:column; gap:var(--s3);
  border-top:1px solid var(--wire); background:var(--ash);
  transition:background var(--base) var(--ease);
}
.work-card:hover .work-card-body { background:var(--steel); }

.work-label {
  font-family:var(--f-label); font-size:var(--tsm); font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--parch);
}
.work-card-desc {
  font-family:var(--f-body); font-size:var(--tsm); font-weight:300;
  color:var(--muted); line-height:1.6; flex:1;
}
.work-card-best {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--graph);
}
.work-card-cta {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ember);
  display:inline-flex; align-items:center;
  transition:color var(--fast) var(--ease);
  margin-top:auto; padding-top:var(--s3);
  border-top:1px solid var(--wire);
}
.work-card-cta:hover { color:var(--ember-h); }


/* ================================================
   19. FAITH & VALUES — polished
================================================ */
.faith-values {
  background:var(--forge); padding-block:var(--sec-v);
  border-bottom:1px solid var(--wire);
}
.faith-inner {
  max-width:860px; margin-inline:auto;
  display:flex; flex-direction:column; gap:var(--s10);
}

.faith-eyebrow-row {
  display:flex; align-items:center; gap:var(--s5);
}
.faith-rule-line { flex:1; height:1px; background:var(--wire); }

.faith-heading {
  font-family:var(--f-display);
  font-size:clamp(var(--t2xl),4vw,var(--t4xl));
  color:var(--parch); line-height:.95; letter-spacing:.03em;
  text-align:center;
}

.faith-columns {
  display:grid; grid-template-columns:1fr 280px;
  gap:var(--s12); align-items:start;
}
.faith-quote {
  font-style:normal; display:flex; flex-direction:column; gap:var(--s6);
}
.faith-quote p {
  font-family:var(--f-body);
  font-size:clamp(var(--tb),1.6vw,var(--tmd));
  font-weight:300; color:var(--muted); line-height:1.9;
}

.faith-values-list {
  display:flex; flex-direction:column; gap:var(--s4);
  border:1px solid var(--wire); border-left:2px solid var(--ember);
  padding:var(--s7) var(--s6);
}
.faith-value-item {
  display:flex; align-items:flex-start; gap:var(--s4);
  font-family:var(--f-body); font-size:var(--tsm); font-weight:400;
  color:var(--linen); line-height:1.5;
}
.faith-value-mark {
  width:8px; height:8px; background:var(--ember); flex-shrink:0; margin-top:.35em;
}

.faith-attribution {
  font-family:var(--f-label); font-size:var(--txs); font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--graph);
  font-style:normal; text-align:center;
}

/* Founder photo block */
.faith-founder {
  display:flex; flex-direction:column; align-items:center; gap:var(--s5);
  padding-top:var(--s8); border-top:1px solid var(--wire); width:100%;
}
.faith-founder-img-wrap {
  width:96px; height:96px; overflow:hidden;
  border:2px solid var(--wire); border-radius:50%;
  flex-shrink:0;
}
.faith-founder-img {
  width:100%; height:100%; object-fit:cover; object-position:center top;
  display:block;
}
.faith-founder-name {
  font-family:var(--f-label); font-size:var(--tsm); font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--parch);
  display:block; margin-bottom:var(--s1);
}
.faith-founder-location {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--graph);
  display:block; margin-top:var(--s1);
}


/* ================================================
   20. FINAL CTA
================================================ */
.final-cta {
  background:var(--ash); border-top:2px solid var(--ember);
  padding-block:var(--sec-v);
}
.final-cta-inner {
  display:grid; grid-template-columns:1fr 1fr;
  gap:var(--s16); align-items:center;
}
.final-cta-heading {
  font-family:var(--f-display);
  font-size:clamp(var(--t3xl),6vw,5.5rem);
  color:var(--chalk); line-height:.92; letter-spacing:.03em;
  margin-top:var(--s5); margin-bottom:0;
}
.final-cta-body {
  font-family:var(--f-body); font-size:var(--tmd); font-weight:300;
  color:var(--muted); line-height:1.85; margin-bottom:var(--s10);
}
.final-cta-contact-row {
  margin-top:var(--s5); margin-bottom:var(--s2);
}
.final-cta-email-link {
  font-family:var(--f-label); font-size:var(--tsm); font-weight:500;
  letter-spacing:.04em; color:var(--linen);
  transition:color var(--fast) var(--ease);
}
.final-cta-email-link:hover { color:var(--chalk); }

.final-cta-qualifier {
  margin-top:var(--s7);
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--graph); line-height:1.7;
}


/* ================================================
   21. FOOTER
================================================ */
.site-footer {
  background:var(--ink); border-top:1px solid var(--wire);
  padding-top:var(--s16); padding-bottom:var(--s10);
}
.footer-top {
  display:grid; grid-template-columns:1.5fr 1fr 1fr;
  gap:var(--s12); padding-bottom:var(--s12);
  border-bottom:1px solid var(--wire); margin-bottom:var(--s8);
}
.footer-tagline {
  font-family:var(--f-display); font-size:var(--t2xl); letter-spacing:.04em;
  color:var(--parch); margin-top:var(--s5); margin-bottom:var(--s2);
}
.footer-location {
  font-family:var(--f-label); font-size:var(--txs); font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--graph);
}
.footer-col-heading {
  font-family:var(--f-label); font-size:var(--t2xs); font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--graph);
  margin-bottom:var(--s5); padding-bottom:var(--s3); border-bottom:1px solid var(--wire);
}
.footer-nav-list { display:flex; flex-direction:column; gap:0; }
.footer-link {
  font-family:var(--f-body); font-size:var(--tsm); color:var(--muted);
  display:block; padding-block:var(--s2); transition:color var(--fast) var(--ease);
}
.footer-link:hover { color:var(--linen); }
.footer-contact-list { display:flex; flex-direction:column; gap:0; margin-bottom:var(--s6); }
.footer-contact-link {
  font-family:var(--f-label); font-size:var(--tb); font-weight:500;
  letter-spacing:.04em; color:var(--linen);
  display:block; padding-block:var(--s2); transition:color var(--fast) var(--ease);
}
.footer-contact-link:hover { color:var(--chalk); }
.footer-address { font-family:var(--f-body); font-size:var(--tsm); color:var(--graph); padding-block:var(--s2); }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:var(--s3);
}
.footer-legal {
  font-family:var(--f-label); font-size:var(--txs); font-weight:500;
  letter-spacing:.1em; color:var(--graph);
}
.footer-faith {
  font-family:var(--f-label); font-size:var(--txs); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--steel);
}


/* ================================================
   22. MOBILE STICKY CTA BAR
   Desktop: hidden. Mobile (<=768px): fixed bottom.
   Respects iOS safe area via env().
   Body gets padding-bottom on mobile so content
   is not hidden behind the bar.
================================================ */
.mobile-sticky-bar {
  display:none; /* Hidden by default; shown only on mobile via media query */
}

@media (max-width: 768px) {
  .mobile-sticky-bar {
    display:flex;
    position:fixed; bottom:0; left:0; right:0;
    z-index:300;
    height:var(--sticky-h);
    padding-bottom:env(safe-area-inset-bottom, 0px);
    background:var(--ink);
    border-top:1px solid var(--wire);
    box-shadow:0 -4px 24px rgba(0,0,0,.35);
  }

  .mobile-sticky-btn {
    flex:1; display:flex; align-items:center; justify-content:center;
    font-family:var(--f-label); font-size:var(--tsm); font-weight:700;
    letter-spacing:.12em; text-transform:uppercase;
    min-height:44px; padding-inline:var(--s4);
    transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease);
  }

  .mobile-sticky-primary {
    background:var(--ember); color:var(--chalk); flex:1.5;
  }
  .mobile-sticky-primary:hover { background:var(--ember-h); }

  .mobile-sticky-secondary {
    background:var(--ash); color:var(--linen);
    border-left:1px solid var(--wire);
  }
  .mobile-sticky-secondary:hover { background:var(--steel); }

  /* Push all body content up so sticky bar does not cover it */
  body { padding-bottom:calc(var(--sticky-h) + env(safe-area-inset-bottom, 0px)); }
}


/* ================================================
   23. SCROLL ANIMATIONS
================================================ */
.reveal {
  opacity:0; transform:translateY(18px);
  transition:opacity 550ms var(--ease), transform 550ms var(--ease);
}
.reveal.in-view { opacity:1; transform:none; }

.reveal-grid > * {
  opacity:0; transform:translateY(14px);
  transition:opacity 480ms var(--ease), transform 480ms var(--ease);
}
.reveal-grid.in-view > *:nth-child(1) { opacity:1;transform:none;transition-delay:  0ms; }
.reveal-grid.in-view > *:nth-child(2) { opacity:1;transform:none;transition-delay: 55ms; }
.reveal-grid.in-view > *:nth-child(3) { opacity:1;transform:none;transition-delay:110ms; }
.reveal-grid.in-view > *:nth-child(4) { opacity:1;transform:none;transition-delay:165ms; }
.reveal-grid.in-view > *:nth-child(5) { opacity:1;transform:none;transition-delay:220ms; }
.reveal-grid.in-view > *:nth-child(6) { opacity:1;transform:none;transition-delay:275ms; }
.reveal-grid.in-view > *:nth-child(7) { opacity:1;transform:none;transition-delay:330ms; }
.reveal-grid.in-view > *:nth-child(8) { opacity:1;transform:none;transition-delay:385ms; }


/* ================================================
   24. REDUCED-MOTION OVERRIDE
================================================ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal,.reveal-grid > * { opacity:1; transform:none; transition:none; }
  .btn:hover,.btn:active    { transform:none; }
  .svc-img,.work-img,.agency-img,
  .hero-img,.serve-card::after,
  .service-card::before,.work-img,.nav-link::after { transition:none; }
}


/* ================================================
   25. MEDIA QUERIES
================================================ */

/* 1024px: hamburger nav, single-col section headers */
@media (max-width:1024px) {
  .main-nav   { display:none; }
  .mobile-btn { display:flex; }
  .mobile-nav { display:block; }
  .header-cta { display:none; }

  /* Hero: stack vertically */
  .hero-content { grid-template-columns:1fr; gap:var(--s10); padding-bottom:var(--s16); }
  .hero-visual  { order:2; max-width:480px; }
  .hero-main    { order:1; }

  /* Proof card: below image on tablet */
  .hero-proof-card {
    position:static; margin-top:var(--s4);
    grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  }

  .serve-grid               { grid-template-columns:repeat(2,1fr); }
  .serve-card:nth-child(4n) { border-right:1px solid var(--wire); }
  .serve-card:nth-child(n+5){ border-bottom:1px solid var(--wire); }
  .serve-card:nth-child(2n) { border-right:none; }
  .serve-card:nth-child(n+7){ border-bottom:none; }

  .service-grid               { grid-template-columns:repeat(2,1fr); }
  .service-card:nth-child(3n) { border-right:1px solid var(--wire); }
  .service-card:nth-child(n+4){ border-bottom:1px solid var(--wire); }
  .service-card:nth-child(2n) { border-right:none; }
  .service-card:nth-child(n+5){ border-bottom:none; }

  .why-grid                   { grid-template-columns:repeat(2,1fr); }
  .why-card:nth-child(3n)     { border-right:1px solid var(--wire); }
  .why-card:nth-child(n+4)    { border-bottom:1px solid var(--wire); }
  .why-card:nth-child(2n)     { border-right:none; }
  .why-card:nth-child(n+5)    { border-bottom:none; }

  /* 5-step process: wrap to 2+3 */
  .process-steps              { grid-template-columns:repeat(3,1fr); }
  .process-step:nth-child(3)  { border-right:none; }
  .process-step:nth-child(1),
  .process-step:nth-child(2),
  .process-step:nth-child(3)  { border-bottom:1px solid var(--wire); }
  .step-connector             { display:none; }

  .agency-inner               { grid-template-columns:1fr; }
  .agency-visual              { max-width:480px; }

  .work-grid { grid-template-columns:repeat(2,1fr); }

  .proof-header,.serve-header,.services-header,
  .why-header,.process-header { grid-template-columns:1fr; gap:var(--s6); }

  .pain-grid { grid-template-columns:repeat(2,1fr); }
  .pain-card:nth-child(2) { border-right:none; }
  .pain-card:nth-child(n+3){ border-top:1px solid var(--wire); }

  .faith-columns { grid-template-columns:1fr; gap:var(--s8); }

  .final-cta-inner { grid-template-columns:1fr; gap:var(--s10); }

  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }

  .testimonial-grid { grid-template-columns:1fr; }
}

/* 768px: full mobile */
@media (max-width:768px) {
  :root { --hdr-h:68px; }

  .trust-inner   { justify-content:flex-start; }
  .trust-divider { display:none; }
  .hero-sidebar  { display:none; }

  .hero-content { grid-template-columns:1fr; }
  .hero-visual  { width:100%; }
  .hero-proof-card {
    grid-template-columns:1fr 1fr;
    gap:var(--s3);
  }
  .hero-proof-divider { display:none; }

  .serve-grid                { grid-template-columns:1fr; }
  .serve-card:nth-child(n)   { border-right:none; border-bottom:1px solid var(--wire); }
  .serve-card:last-child     { border-bottom:none; }

  .pain-grid { grid-template-columns:1fr; }
  .pain-card { border-right:none; border-bottom:1px solid var(--wire); }
  .pain-card:last-child { border-bottom:none; }

  .footer-top    { grid-template-columns:1fr; }
  .footer-brand  { grid-column:auto; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:var(--s2); }
}

/* 540px: smallest phones */
@media (max-width:540px) {
  .process-steps { grid-template-columns:1fr; }
  .process-step  { border-right:none; border-bottom:1px solid var(--wire); }
  .process-step:last-child { border-bottom:none; }

  .work-grid { grid-template-columns:1fr; }

  .service-grid              { grid-template-columns:1fr; }
  .service-card:nth-child(n) { border-right:none; border-bottom:1px solid var(--wire); }
  .service-card:last-child   { border-bottom:none; }

  .why-grid                  { grid-template-columns:1fr; }
  .why-card:nth-child(n)     { border-right:none; border-bottom:1px solid var(--wire); }
  .why-card:last-child       { border-bottom:none; }

  .btn-group { flex-direction:column; align-items:flex-start; }
  .btn-group .btn { width:100%; justify-content:center; }

  .hero-proof-card { grid-template-columns:1fr 1fr; }
}
