
/* ════════════════════════════════════════════════════════════
   Contact page — split layout
   ════════════════════════════════════════════════════════════ */
.contact-split {
  background: var(--bone);
  padding: clamp(3rem, 7vw, 6rem) 0;
}
.contact-split__inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--pad);
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: clamp(3rem, 6vw, 6rem);
  align-items: start;
}

/* Left col */
.contact-split__eyebrow {
  font-family: var(--sans);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--accent-text);
  margin: 0 0 1.75rem;
}
.contact-steps { display: flex; flex-direction: column; gap: 0; }
.contact-step {
  display: flex;
  gap: 1.25rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--rule);
}
.contact-step:first-child { border-top: 1px solid var(--rule); }
.contact-step__num {
  font-family: var(--serif);
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--accent);
  letter-spacing: -.025em;
  line-height: 1;
  min-width: 2rem;
  padding-top: .1rem;
}
.contact-step__title {
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -.015em;
  margin: 0 0 .35rem;
}
.contact-step__body {
  font-family: var(--sans);
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}
.contact-direct {
  margin-top: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.contact-direct__label {
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 .25rem;
}
.contact-direct__link {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--sans);
  font-size: .95rem;
  color: var(--ink);
  text-decoration: none;
  font-weight: 500;
  transition: color .2s;
}
.contact-direct__link:hover { color: var(--accent); }
.contact-direct__link svg { color: var(--accent); flex-shrink: 0; }

/* Right col — form */
.contact-split__right {
  background: var(--paper);
  border: 1px solid var(--rule);
  border-top: 3px solid var(--accent);
  padding: clamp(1.75rem, 3vw, 2.5rem);
}
.contact-form { display: flex; flex-direction: column; gap: 1.25rem; }
.contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.contact-form__label {
  font-family: var(--sans);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  font-family: var(--sans);
  font-size: .95rem;
  color: var(--ink);
  background: var(--bone);
  border: 1px solid var(--rule-mid);
  padding: .7rem .9rem;
  width: 100%;
  transition: border-color .2s;
  -webkit-appearance: none;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--accent);
}
.contact-form textarea { resize: vertical; min-height: 110px; }
.contact-form__note {
  font-family: var(--sans);
  font-size: .78rem;
  color: var(--muted);
  margin: 0;
}
.contact-form__submit { width: 100%; justify-content: center; }

@media (max-width: 800px) {
  .contact-split__inner { grid-template-columns: 1fr; }
  .contact-form__row { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════════
   Bundle section — industry pages recommended mix
   ════════════════════════════════════════════════════════════ */
.bundle-section {
  background: var(--ink);
  padding: clamp(3rem, 7vw, 6rem) 0;
}
.bundle-section__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: center;
}
.bundle-section__eyebrow {
  font-family: var(--sans);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--accent-on-dark);
  margin: 0 0 1rem;
}
.bundle-section__heading {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 500;
  color: var(--paper);
  letter-spacing: -.025em;
  line-height: 1.05;
  margin: 0 0 1.5rem;
}
.bundle-section__heading em {
  color: var(--accent-on-dark);
  font-style: normal;
  font-weight: 300;
}
.bundle-section__blurb {
  font-family: var(--sans);
  font-size: .95rem;
  color: var(--muted-l);
  line-height: 1.75;
  margin: 0 0 2rem;
  max-width: 46ch;
}
.bundle-section__cta { align-self: flex-start; }

/* Cards stack */
.bundle-section__cards {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.bundle-card {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.25rem 1.5rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(244,235,221,0.1);
  border-left: 3px solid var(--accent);
  text-decoration: none;
  transition: background .25s, border-color .25s, transform .2s var(--ease-out);
}
.bundle-card:hover {
  background: rgba(255,255,255,0.09);
  border-left-color: var(--accent-warm);
  transform: translateX(4px);
}
.bundle-card__icon {
  color: var(--accent-on-dark);
  flex-shrink: 0;
  opacity: 0.9;
}
.bundle-card__body {
  flex: 1;
  min-width: 0;
}
.bundle-card__name {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--paper);
  letter-spacing: -.015em;
  margin: 0 0 0.2rem;
}
.bundle-card__meta {
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--accent-on-dark);
  margin: 0;
  opacity: 0.8;
}
.bundle-card__arrow {
  color: var(--paper);
  opacity: 0.3;
  font-size: 1rem;
  transition: opacity .2s, transform .2s;
  flex-shrink: 0;
}
.bundle-card:hover .bundle-card__arrow {
  opacity: 0.8;
  transform: translateX(3px);
}

@media (max-width: 800px) {
  .bundle-section__inner { grid-template-columns: 1fr; }
  .bundle-section__blurb { max-width: none; }
}


/* ════════════════════════════════════════════════════════════
   Month steps — 3 cards in a row
   ════════════════════════════════════════════════════════════ */
.month-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
}
.month-step {
  background: var(--bone);
  border: 1px solid var(--rule);
  border-top: 3px solid var(--accent);
  padding: clamp(1.5rem, 2.5vw, 2rem);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.month-step__num {
  font-family: var(--serif);
  font-size: 1.75rem;
  font-weight: 300;
  color: var(--accent-deep);
  line-height: 1;
  letter-spacing: -.025em;
}
.month-step__label {
  font-family: var(--sans);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
}
.month-step__title {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -.02em;
  line-height: 1.2;
  margin: 0;
}
.month-step__body {
  font-family: var(--sans);
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 720px) {
  .month-steps { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════
   Section divider
   ════════════════════════════════════════════════════════════ */
.section-divider {
  display: flex;
  align-items: center;
  padding: 0;
  background: var(--ink, #1a1a2e);
}
.section-divider__line {
  display: block;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--accent, #D57A35) 20%, var(--accent, #D57A35) 80%, transparent 100%);
  opacity: 0.6;
}

/* ════════════════════════════════════════════════════════════
   NEIGHBOR DIGITAL — Refined Minimal Edition
   Inter (single typeface, weights 200–600)
   Neighbor Cream / Soft Linen canvas · Neighbor Blue brand anchors
   Charcoal Ink typography · Door Orange action accent · Garden Sage organic accent
   Self-hosted fonts — no external font CDN dependency
   ════════════════════════════════════════════════════════════ */

/* ── @font-face: Inter (single typeface — display, body, UI) ── */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 200; font-display: swap; src: url('fonts/inter-v20-latin-200.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 300; font-display: swap; src: url('fonts/inter-v20-latin-300.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/inter-v20-latin-regular.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/inter-v20-latin-500.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/inter-v20-latin-600.woff2') format('woff2'); }

/* ── DESIGN TOKENS ──
   Approved palette (Color_Palette — Neighbor Digital):
     Neighbor Blue   #3F73A8  — brand anchors, core section bgs, headers, hero modules
     Door Orange     #D57A35  — action accent: CTAs, buttons, link highlights, conversions
     Charcoal Ink    #202124  — typography: body copy, headings, structural iconography
     Neighbor Cream  #F4EBDD  — warm backdrop: section separations, cards, container fills
     Soft Linen      #FFFAF2  — primary canvas: crisp page background, white-text conversions
     Garden Sage     #7B846A  — organic accent: secondary banners, button borders, footers, callouts
*/
:root {
  /* Brand anchor — Neighbor Blue (dark/feature surfaces, hero, footer) */
  --brand:         #3F73A8;     /* core Neighbor Blue — headers, accents, large brand elements */
  --brand-2:       #355F8A;     /* deeper blue — tonal cards/hover on blue surfaces */
  --brand-3:       #2F5980;     /* deepest blue — large section backgrounds w/ body text (AA-safe) */
  --brand-soft:    #4E81B5;     /* lighter blue */
  --brand-surface: #2F5980;     /* background for blue anchor sections (AA contrast for light text) */

  /* Typography ink — Charcoal Ink (text, primary buttons, icon outlines) */
  --ink:           #202124;
  --ink-2:         #313338;
  --ink-3:         #45474D;
  --ink-soft:      #565961;

  /* Warm canvas — Neighbor Cream / Soft Linen */
  --bone:          #F4EBDD;     /* warm backdrop: section separations, cards */
  --bone-2:        #EDE0CC;     /* slightly deeper */
  --bone-3:        #E2D2B8;
  --paper:         #FFFAF2;     /* primary crisp canvas */
  --paper-2:       #FBF5EA;

  /* Action accent — Door Orange */
  --accent:        #D57A35;
  --accent-warm:   #E08F4F;
  --accent-deep:   #B0601F;
  --accent-text:   #9A5016;     /* AA-contrast orange for links/small text on light surfaces */
  --accent-on-dark: #F2B98A;    /* lighter peach for small links/labels on dark surfaces (AA) */

  /* Organic accent — Garden Sage */
  --sage:          #7B846A;
  --sage-2:        #69715A;
  --sage-soft:     #939B82;

  /* Functional — ink-tinted (on light), light-tinted (on dark brand) */
  --muted:         rgba(32,33,36,.72);
  --muted-soft:    rgba(32,33,36,.60);
  --muted-faint:   rgba(32,33,36,.40);
  --muted-l:       rgba(244,235,221,.86);
  --muted-l-soft:  rgba(244,235,221,.66);
  --rule:          rgba(32,33,36,.10);
  --rule-mid:      rgba(32,33,36,.18);
  --rule-strong:   rgba(32,33,36,.28);
  --rule-l:        rgba(244,235,221,.14);
  --rule-l-mid:    rgba(244,235,221,.24);


  /* Typography — single typeface (Inter) used across the whole site.
     Three variable names are retained for compatibility with existing rules.
     Hierarchy is created through weight, size, and color — not font swap. */
  --serif:       'Inter', -apple-system, system-ui, 'Segoe UI', Roboto, sans-serif;
  --sans:        'Inter', -apple-system, system-ui, 'Segoe UI', Roboto, sans-serif;
  --heading-alt: 'Inter', -apple-system, system-ui, 'Segoe UI', Roboto, sans-serif;

  /* Layout */
  --maxw:      1200px;
  --maxw-text: 860px;
  --pad:       clamp(1.5rem, 4vw, 3rem);
  --section-y: clamp(3.5rem, 7vw, 6rem);
  --nav-h:     90px;

  /* Easing */
  --ease:      cubic-bezier(.2, .65, .25, 1);
  --ease-out:  cubic-bezier(.16, 1, .3, 1);
  --ease-deep: cubic-bezier(.65, 0, .075, 1);
}

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; font-size: 16px; overflow-x: hidden; }
body {
  background: var(--bone);
  color: var(--ink);
  font-family: var(--sans);
  font-size: clamp(.95rem, .9rem + .2vw, 1.05rem);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: -.005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
/* ── Grain texture overlay — fixed, covers everything ── */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 200px 200px;
  opacity: .028;
  mix-blend-mode: multiply;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: none; padding: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
::selection { background: var(--accent); color: var(--bone); }

/* Cursor overlays disabled */
#nd-cursor, #nd-cursor-ring { display: none !important; }

/* Skip link */
.skip {
  position: absolute; top: -100px; left: 1.5rem;
  background: var(--ink); color: var(--bone);
  font-family: var(--sans); font-size: .8rem; font-weight: 500;
  padding: .75rem 1.1rem; border-radius: 1px; z-index: 300;
  transition: top .2s var(--ease);
}
.skip:focus { top: 1.5rem; }

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


/* ════════════════════════════════════════════════════════════
   TYPOGRAPHY
   ════════════════════════════════════════════════════════════ */
.display, .hero__headline, .intro__quote, .cta__head,
.sub-hero__heading, .s-head__title, .foot__head {
  font-family: var(--serif);
  font-weight: 500;
  font-style: normal;
  line-height: 1;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: 0;
}
.display em, .hero__headline em, .intro__quote em, .cta__head em,
.sub-hero__heading em, .s-head__title em, .foot__head em {
  font-style: normal;
  font-weight: 300;
  color: var(--accent-deep);
}
/* On Neighbor Blue anchor surfaces, orange em would clash and fail contrast —
   keep the emphasis word legible in warm linen; orange is carried by dots/underlines */
.foot__head em,
.pricing-blurb--dark .s-head__title em,
.page-section--ink .s-head__title em, .page-section--ink .display em {
  color: var(--paper);
}
/* Work section is now a light band — emphasis uses the deep accent */
.work .s-head__title em, .work .display em {
  color: var(--accent-deep);
}
.display { font-size: clamp(1.75rem, 4.5vw, 3.5rem); }
.display--light { color: var(--bone); }
.display--light em { color: var(--accent-on-dark); }

.eyebrow {
  display: inline-flex; align-items: center; gap: .85rem;
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--muted); margin: 0 0 1.4rem;
}
.eyebrow--light { color: var(--muted-l); }
.eyebrow .num {
  font-family: var(--serif); font-weight: 500; font-size: .9rem;
  letter-spacing: 0; text-transform: none; color: var(--accent-text);
}
.eyebrow--light .num { color: var(--accent-on-dark); }

.dot { width: .35rem; height: .35rem; border-radius: 50%; background: var(--accent); flex-shrink: 0; display: inline-block; }
.dot--accent { background: var(--accent); }
.dot--cream  { background: rgba(244,239,230,.7); }


/* ════════════════════════════════════════════════════════════
   BUTTONS
   ════════════════════════════════════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; gap: .65rem;
  font-family: var(--sans); font-weight: 500; font-size: .76rem;
  letter-spacing: .14em; text-transform: uppercase;
  padding: .85rem 1.5rem;
  border: 1px solid transparent; border-radius: 1px;
  transition: background .35s var(--ease), color .35s var(--ease),
              border-color .35s, transform .3s var(--ease-out);
  position: relative; overflow: hidden;
  white-space: nowrap; cursor: pointer;
}
.btn--accent {
  background: var(--accent); color: var(--ink);
  border-color: var(--accent);
}
.btn--accent:hover {
  background: var(--accent-deep); color: var(--paper); border-color: var(--accent-deep);
  transform: translateY(-2px);
}
.btn--ghost {
  background: transparent; color: var(--ink);
  border-color: var(--rule-mid);
}
.btn--ghost:hover { background: var(--ink); color: var(--bone); border-color: var(--ink); }
.btn--outline-light, .btn--ghost-light {
  background: transparent; color: var(--ink);
  border-color: var(--rule-mid);
}
.btn--outline-light:hover, .btn--ghost-light:hover {
  background: var(--ink); color: var(--bone); border-color: var(--ink);
}
.btn--primary { background: var(--ink); color: var(--bone); border-color: var(--ink); }
.btn--primary:hover { background: var(--accent); color: var(--ink); border-color: var(--accent); transform: translateY(-2px); }
.btn--big { padding: 1rem 2rem; font-size: .82rem; }


/* ════════════════════════════════════════════════════════════
   NAV — Cream, refined, anchored
   ════════════════════════════════════════════════════════════ */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 9997;
  height: var(--nav-h);
  background: var(--brand);
  border-bottom: 1px solid transparent;
  transition: border-color .4s var(--ease), background .4s;
}
.nav.is-stuck {
  border-color: var(--brand-2);
  background: rgba(53, 95, 138, 0.92);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
}
.nav__inner {
  max-width: var(--maxw); margin: 0 auto; height: 100%;
  padding: 0 var(--pad);
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}

.nav__brand { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; overflow: visible; }
.nav__brand-mark { background: none; display: flex; align-items: center; flex-shrink: 0; overflow: visible; }
.nav__brand-img { height: 72px; width: auto; max-width: 360px; object-fit: contain; object-position: left center; display: block; }
.nav__brand-text, .nav__brand-name, .nav__brand-amp, .nav__brand-co { display: none; }

.nav__links { display: flex; align-items: center; gap: 0; list-style: none; flex-shrink: 0; }
.nav__links > * { display: flex; align-items: center; }

.nav__link, .nav__link--has-menu {
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.94);
  padding: .55rem .75rem; background: none; border: none;
  position: relative;
  transition: color .25s var(--ease);
  cursor: pointer;
}
.nav__link::before, .nav__link--has-menu::before {
  content: ''; position: absolute; left: 50%; bottom: .2rem;
  width: 0; height: 1px; background: var(--accent-warm);
  transform: translateX(-50%);
  transition: width .35s var(--ease-out);
}
.nav__link:hover, .nav__link--has-menu:hover { color: var(--paper); }
.nav__link:hover::before, .nav__link--has-menu:hover::before { width: 1.5rem; }
.nav__link.is-active::before, .nav__link--has-menu.is-active::before { width: 1.5rem; }
.nav__caret { font-size: .65em; opacity: .5; margin-left: .25rem; transition: transform .25s var(--ease); }
.nav__item.is-open .nav__caret { transform: rotate(180deg); }

.nav__cta {
  font-family: var(--sans); font-size: .72rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: #000; background: var(--accent);
  padding: .75rem 1.35rem; margin-left: 1rem;
  transition: background .3s, transform .3s var(--ease-out);
}
.nav__cta:hover { background: var(--accent-warm); transform: translateY(-1px); }
.nav__cta--text {
  font-family: var(--sans); font-size: .72rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: #000; background: #F2B98A;
  padding: .75rem 1.35rem; margin-left: .5rem;
  transition: background .3s, transform .3s var(--ease-out);
}
.nav__cta--text:hover { background: #e8a870; transform: translateY(-1px); }
.nav__toggle { display: none; }
.nav__item { position: relative; }

/* Dropdown */
.nav__menu {
  display: none; position: absolute; top: calc(100% + 14px); left: 0;
  background: var(--paper); border: 1px solid var(--rule-mid);
  padding: .5rem; min-width: 290px;
  box-shadow: 0 30px 60px rgba(32,33,36,.12); z-index: 200;
}
.nav__item.is-open .nav__menu, .nav__item.is-open .nav__mega { display: block; animation: dropIn .25s var(--ease-out); }
@keyframes dropIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

.nav__menu-item { display: flex; flex-direction: column; gap: .15rem; padding: .85rem 1rem; transition: background .15s; }
.nav__menu-item:hover { background: var(--bone-2); }
.nav__menu-name { font-family: var(--serif); font-weight: 500; font-size: .9rem; color: var(--ink); letter-spacing: -.01em; }
.nav__menu-desc { font-size: .76rem; color: var(--muted-soft); line-height: 1.4; font-family: var(--sans); }
.nav__menu-sep { border: 0; border-top: 1px solid var(--rule); margin: .35rem 0; }
.nav__menu-all { display: flex; align-items: center; gap: .5rem; padding: .75rem 1rem; font-size: .68rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); transition: background .15s; }
.nav__menu-all:hover { background: var(--bone-2); }
.nav__menu--wide { min-width: 540px; }
.nav__menu-cols { display: grid; grid-template-columns: 1fr 1fr; }
.nav__menu-cols > div { padding: .5rem .65rem; }
.nav__menu-cols a { display: block; padding: .4rem .6rem; font-size: .82rem; color: var(--muted); transition: color .15s; }
.nav__menu-cols a:hover { color: var(--accent); }
.nav__menu-label { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-faint); padding: .4rem .6rem .2rem; font-family: var(--sans); font-weight: 500; }

/* Mega nav */
.nav__mega {
  display: none; position: absolute; top: calc(100% + 14px); left: -180px;
  background: var(--paper); border: 1px solid var(--rule-mid);
  padding: 1.5rem; box-shadow: 0 30px 60px rgba(32,33,36,.12); z-index: 200; width: 720px;
}
.nav__mega-inner { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; }
.nav__mega-region { padding: .65rem; }
.nav__mega-state-btn {
  font-family: var(--serif); font-weight: 500; font-size: .85rem;
  color: var(--muted); display: flex; justify-content: space-between; align-items: center;
  width: 100%; padding: .5rem .6rem; transition: color .15s;
  letter-spacing: -.01em;
}
.nav__mega-state-btn:hover, .nav__mega-state-btn[aria-expanded="true"] { color: var(--accent); }
.nav__mega-cities { margin: .25rem 0 0 .6rem; border-left: 1px solid var(--rule); padding-left: .85rem; }
.nav__mega-cities a { display: block; font-size: .78rem; color: var(--muted-faint); padding: .2rem .25rem; transition: color .15s; }
.nav__mega-cities a:hover { color: var(--accent); }


/* ════════════════════════════════════════════════════════════
   CONTAINER
   ════════════════════════════════════════════════════════════ */
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }
.container--narrow { max-width: var(--maxw-text); }


/* ════════════════════════════════════════════════════════════
   HERO — Cream with bold dark display
   ════════════════════════════════════════════════════════════ */
.hero {
  min-height: 78svh;
  background: var(--brand-surface);
  position: relative; overflow: hidden;
  display: flex; flex-direction: column;
  padding-top: var(--nav-h);
}
.hero::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 90% 60% at 25% 75%, rgba(213,122,53,.08) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 80% 25%, rgba(213,122,53,.04) 0%, transparent 50%);
}
.hero__grain {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 240px 240px;
  opacity: .04;
  mix-blend-mode: multiply;
}

.hero__inner {
  position: relative; z-index: 1;
  max-width: var(--maxw); margin: 0 auto; width: 100%;
  padding: clamp(1rem, 2vw, 1.75rem) var(--pad) 0;
  flex: 1;
  display: flex; flex-direction: column; justify-content: space-between;
}

.hero__meta {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--muted); margin: 0;
  padding-bottom: 1.1rem; border-bottom: 1px solid var(--rule);
}
.hero__meta-sep { color: var(--accent); opacity: .6; }
.hero__meta .dot { background: var(--accent); animation: pulse 2.5s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.3)} }

.hero__top { padding: 0; margin: 0; }
.hero__logo { display: none; }

.hero__headline {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(2rem, 5.5vw, 4.5rem);
  line-height: 1;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: clamp(.9rem, 2vw, 1.5rem) 0 0;
}
.hero__line { display: block; overflow: hidden; padding: .04em 0; }
.hero__line-inner { display: block; transform: translateY(105%); transition: transform 1.1s var(--ease-out); }
.hero--in .hero__line-inner { transform: translateY(0); }
.hero__line:nth-child(1) .hero__line-inner { transition-delay: .08s; }
.hero__line:nth-child(2) .hero__line-inner { transition-delay: .22s; }
.hero__line:nth-child(3) .hero__line-inner { transition-delay: .36s; }

.hero__line--accent { position: relative; }
.hero__line--accent em {
  font-style: normal; font-weight: 300;
  color: var(--accent);
}
.hero__underline {
  position: absolute; left: 0; bottom: -.04em;
  width: 70%; height: auto; color: var(--accent); opacity: .35;
}

.hero__support {
  display: grid; gap: 1.4rem;
  padding: clamp(1.25rem, 2.5vw, 2rem) 0;
  border-bottom: 1px solid var(--rule);
  margin-top: auto;
}
@media (min-width: 880px) { .hero__support { grid-template-columns: 1fr auto; align-items: end; gap: 4rem; } }
.hero__sub {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(.88rem, 1vw, 1rem);
  color: var(--muted); line-height: 1.55; max-width: 50ch;
  margin: 0; letter-spacing: -.005em;
}
.hero__ctas { display: flex; flex-wrap: wrap; gap: .85rem; flex-shrink: 0; }
.hero__trust { list-style: none; padding: 0; margin: .5rem 0 0; display: flex; flex-wrap: wrap; gap: .85rem; }
.hero__trust li { display: inline-flex; align-items: center; gap: .55rem; font-size: .72rem; color: var(--muted-soft); font-family: var(--sans); letter-spacing: .04em; }
.hero__edge { display: none; }

/* Stats — refined cream version */
.hero__stats {
  display: grid; grid-template-columns: repeat(2, 1fr);
  position: relative; z-index: 1;
  margin: 0 calc(-1 * var(--pad));
}
@media (min-width: 720px) { .hero__stats { grid-template-columns: repeat(4, 1fr); } }
.hero__stat {
  padding: 1.35rem var(--pad);
  border-right: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: .4rem;
  background: transparent;
  position: relative;
}
.hero__stat:last-child { border-right: 0; }
@media (max-width: 719px) { .hero__stat:nth-child(2n) { border-right: 0; } }
.hero__stat-num {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.25rem, 2.2vw, 1.75rem);
  letter-spacing: -.025em; line-height: 1.02;
  color: var(--ink);
}
.hero__stat-num em { color: var(--accent); font-style: normal; font-weight: 500; }
.hero__stat-label {
  font-family: var(--sans); font-size: .76rem;
  color: var(--muted); line-height: 1.55;
  letter-spacing: .01em; font-weight: 400;
}

.hero--dark .hero__inner { display: flex; flex-direction: column; }
.hero--dark .hero__top { display: block; }

/* Dark hero — light text */
.hero__meta { color: var(--muted-l); border-bottom-color: var(--rule-l); }
.hero__headline { color: var(--paper); }
.hero__line--accent em { color: var(--accent-on-dark); }
.hero__underline { color: var(--accent-warm); opacity: .5; }
.hero__support { border-bottom-color: var(--rule-l); }
.hero__sub { color: var(--muted-l); }
.hero__stat { border-right-color: var(--rule-l); }
.hero__stat:last-child { border-right: 0; }
.hero__stat-num { color: var(--paper); }
.hero__stat-num em { color: var(--accent-on-dark); }
.hero__stat-label { color: var(--muted-l); }
.hero__trust li { color: var(--muted-l-soft); }
/* Outline-light button reads on dark hero */
.hero .btn--outline-light { color: var(--paper); border-color: var(--rule-l-mid); }
.hero .btn--outline-light:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }


/* ════════════════════════════════════════════════════════════
   INDUSTRIES STRIP — Subtle paper marquee
   ════════════════════════════════════════════════════════════ */
.industries-strip {
  background: var(--paper);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.industries-strip__inner { display: flex; overflow: hidden; }
.industries-strip__label { display: none; }
.industries-strip__list {
  display: flex; flex-wrap: nowrap; list-style: none;
  animation: nd-marquee 40s linear infinite;
  white-space: nowrap;
}
.industries-strip__list:hover { animation-play-state: paused; }
.industries-strip__list li {
  display: flex; align-items: center; gap: 1.5rem;
  padding: 1.35rem 3rem;
  font-family: var(--serif); font-weight: 400; font-size: .92rem;
  color: var(--muted); flex-shrink: 0;
  letter-spacing: -.005em;
}
.industries-strip__list li::before {
  content: ''; width: 4px; height: 4px; border-radius: 50%;
  background: var(--accent); opacity: .8;
}
.industries-strip__list li em { color: var(--accent); font-style: normal; font-weight: 500; }
@keyframes nd-marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }


/* ════════════════════════════════════════════════════════════
   INTRO — Editorial quote on cream
   ════════════════════════════════════════════════════════════ */
.intro {
  padding: var(--section-y) 0;
  background: var(--bone);
  position: relative; overflow: hidden;
}
.intro__grain {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  opacity: .025;
  mix-blend-mode: multiply;
}
.intro .container { position: relative; z-index: 1; }
.intro .eyebrow--light { color: var(--muted); }
.intro .eyebrow--light .dot { background: var(--accent); }

.intro__quote {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.75rem, 4.5vw, 3.75rem);
  letter-spacing: -.025em; line-height: 1.02;
  color: var(--ink); margin: 0 0 2.75rem;
  max-width: 18ch;
}
.intro__quote em { color: var(--accent-deep); font-style: normal; font-weight: 300; }

.intro__grid { display: flex; flex-direction: column; gap: 1.5rem; max-width: 60ch; }
.intro__lead {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  color: var(--ink); line-height: 1.5;
  margin: 0; letter-spacing: -.012em;
}
.intro__body {
  font-family: var(--sans); font-size: 1rem;
  color: var(--muted); line-height: 1.75;
  margin: 0; max-width: none;
}
.intro__body em { font-style: normal; font-weight: 500; color: var(--accent-deep); }


/* ════════════════════════════════════════════════════════════
   CAPABILITY BAND — Paper, with strong dark display
   ════════════════════════════════════════════════════════════ */
.capability-band {
  padding: var(--section-y) 0;
  background: var(--paper);
  border-top: 1px solid var(--rule);
}
.capability-band__inner { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }

.capability-band__head {
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  display: flex; flex-direction: column; gap: .75rem;
}

/* ════════════════════════════════════════════════════════════
   DARK BAND SYSTEM — alternating dark/light section rhythm
   Add .band-dark to any homepage section to flip it to deep blue
   with correct light text. Light sections stay as authored.
   ════════════════════════════════════════════════════════════ */
.band-dark { background: var(--brand-surface) !important; }
.band-dark .eyebrow,
.band-dark .capability-band__lead,
.band-dark .capability-band__desc,
.band-dark .who__card p,
.band-dark .section-head__aside,
.band-dark .intro__body { color: var(--muted-l); }
.band-dark .display,
.band-dark .capability-band__title,
.band-dark .capability-band__name,
.band-dark .who__card h3,
.band-dark .intro__quote,
.band-dark .intro__lead,
.band-dark .about-block__lead { color: var(--paper); }
.band-dark .capability-band__title { color: #fff; }
.band-dark .display em,
.band-dark .capability-band__title em,
.band-dark .intro__quote em,
.band-dark .about-block__lead em { color: var(--accent-on-dark); }
.band-dark .eyebrow .num,
.band-dark .capability-band__num,
.band-dark .who__num { color: var(--accent-on-dark); }
.band-dark .eyebrow .dot { color: var(--accent-warm); }
.band-dark .eyebrow .dot { background: var(--accent-warm); }
/* borders/rules on dark */
.band-dark .capability-band__grid,
.band-dark .capability-band__cell,
.band-dark .who__grid,
.band-dark .who__card,
.band-dark .cmp,
.band-dark .process-close,
.band-dark .section-head { border-color: var(--rule-l) !important; }
.band-dark .capability-band__cell:hover,
.band-dark .who__card:hover { background: rgba(255,255,255,.04); }
/* comparison chart on dark */
.band-dark .cmp { background: rgba(255,255,255,.03); }
.band-dark .cmp__table caption,
.band-dark .cmp__rowlabel { color: var(--muted-l); }
.band-dark .cmp__table th, .band-dark .cmp__table td { border-color: var(--rule-l); }
.band-dark .cmp__table thead th { color: var(--paper); background: rgba(255,255,255,.05); }
.band-dark .cmp__table thead th:first-child { background: transparent; }
.band-dark .cmp__table thead th.cmp--feature { color: var(--accent-on-dark); }
.band-dark .cmp__price,
.band-dark .cmp__table td { color: var(--paper); }
.band-dark .services__note { color: var(--muted-l); background: rgba(255,255,255,.04); border-color: var(--rule-l); }
.band-dark .cmp__hint { color: var(--muted-l); }
.band-dark .process-close__lead { color: var(--paper); }
.band-dark .process-close__lead em { color: var(--accent-warm); }
.band-dark .process-close__sub { color: var(--muted-l); }
/* outline-light buttons inside dark bands */
.band-dark .btn--outline-light { color: var(--paper); border-color: var(--rule-l-mid); }
.band-dark .btn--outline-light:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }

.capability-band__title {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.75rem, 4.5vw, 3.5rem);
  letter-spacing: -.025em; line-height: 1.02;
  color: var(--ink); margin: 0;
}
.capability-band__title em { color: var(--accent); font-style: normal; font-weight: 300; }
.capability-band__lead {
  font-family: var(--sans); font-size: .98rem;
  color: var(--muted); line-height: 1.85;
  margin: 0; max-width: 42ch;
}
.capability-band__sub {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1.35rem, 2.6vw, 2rem);
  letter-spacing: -.02em; line-height: 1.25;
  color: #F2B98A;
  margin: 0;
  font-style: normal;
}

.capability-band__grid {
  display: grid; grid-template-columns: 1fr;
  border-top: 1px solid var(--rule-mid);
}
@media (min-width: 720px)  { .capability-band__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .capability-band__grid { grid-template-columns: repeat(3, 1fr); } }

.capability-band__cell {
  padding: 2.25rem 2rem 2.5rem;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  position: relative;
  transition: background .4s var(--ease);
  display: flex; flex-direction: column;
}
.capability-band__cell::before {
  content: ''; position: absolute; left: 0; right: 0; bottom: -1px;
  height: 1px; background: var(--accent);
  transform: scaleX(0); transform-origin: left;
  transition: transform .65s var(--ease-out);
}
.capability-band__cell:hover { background: var(--bone); }
.capability-band__cell:hover::before { transform: scaleX(1); }
@media (min-width: 1000px) { .capability-band__cell:nth-child(4n) { border-right: 0; } }
@media (min-width: 720px) and (max-width: 999px) { .capability-band__cell:nth-child(2n) { border-right: 0; } }
@media (max-width: 719px) { .capability-band__cell { border-right: 0; } }

.capability-band__num {
  font-family: var(--serif); font-weight: 300;
  font-size: 1.75rem; line-height: 1;
  color: var(--accent); opacity: .75;
  margin: 0 0 1.5rem; letter-spacing: -.02em;
  display: block;
}
.capability-band__name {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.15rem; color: var(--ink);
  margin: 0 0 1rem; letter-spacing: -.025em;
  line-height: 1.15;
}
.capability-band__desc {
  font-family: var(--sans); font-size: .87rem;
  color: var(--muted); line-height: 1.8;
  margin: 0;
}
.capability-band__cta {
  display: inline-flex; align-items: center; gap: .4rem;
  font-family: var(--sans); font-size: .75rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent-on-dark);
  margin-top: 1rem;
  transition: gap .2s var(--ease);
}
.capability-band__cta:hover { gap: .7rem; }
.band-dark .capability-band__cta { color: #F2B98A; }


/* ════════════════════════════════════════════════════════════
   WHO WE HELP
   ════════════════════════════════════════════════════════════ */
.who {
  padding: var(--section-y) 0;
  background: var(--bone);
  border-bottom: 1px solid var(--rule);
}
.process-close {
  margin-top: clamp(1rem, 2vw, 1.5rem);
  padding-top: clamp(1rem, 2vw, 1.5rem);
  max-width: 60ch;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.process-close__lead {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1.35rem, 2.6vw, 2rem); line-height: 1.25;
  letter-spacing: -.02em; color: var(--ink); margin: 0 0 1rem;
}
.process-close__lead em { font-style: normal; color: var(--accent-deep); }
.process-close__sub {
  font-family: var(--sans); font-size: 1rem; color: var(--muted);
  margin: 0 0 1.75rem;
}
.who__grid {
  display: grid; gap: 0;
  grid-template-columns: repeat(4, 1fr);
  margin-top: clamp(2rem, 4vw, 3.25rem);
}
@media (min-width: 880px) { .who__grid { grid-template-columns: repeat(4, 1fr); } }

.who__card {
  padding: 2.5rem 2.25rem 2.75rem;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  position: relative;
  transition: background .4s var(--ease);
}
.who__card:last-child { border-right: 0; }
.who__card:hover { background: rgba(255,255,255,.04); }
@media (max-width: 879px) { .who__card { border-right: 0; border-bottom: 1px solid var(--rule); } }
.who__card::after {
  content: ''; position: absolute; left: 2.75rem; bottom: -1px;
  width: 0; height: 2px; background: var(--accent);
  transition: width .55s var(--ease-out);
}
.who__card:hover::after { width: 3rem; }

.who__num {
  font-family: var(--serif); font-weight: 300;
  font-size: 2rem; color: var(--accent); opacity: .55;
  line-height: 1; margin: 0 0 1.5rem;
  letter-spacing: -.025em;
}
.who__card h3 {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.2rem; color: var(--ink);
  margin: 0 0 1.15rem; letter-spacing: -.02em;
  line-height: 1.15;
}
.who__card p {
  font-family: var(--sans); font-size: .92rem;
  color: var(--muted); line-height: 1.85; margin: 0;
}


/* ════════════════════════════════════════════════════════════
   SERVICES / TIERS — Paper with one dark featured tier
   ════════════════════════════════════════════════════════════ */
.services {
  padding: var(--section-y) 0;
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
}

.tier-grid {
  display: grid; grid-template-columns: 1fr; gap: 0;
  margin-top: clamp(2rem, 4vw, 3.25rem);
  border: 1px solid var(--rule-mid);
}
@media (min-width: 880px) { .tier-grid { grid-template-columns: repeat(3, 1fr); } }

/* ── Horizontal pricing comparison chart ── */
.cmp {
  margin-top: clamp(2rem, 4vw, 3.25rem);
  border: 1px solid var(--rule-mid);
  background: var(--paper);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.cmp__table { width: 100%; border-collapse: collapse; min-width: 720px; }
.cmp__table caption {
  text-align: left; padding: 1.1rem 1.5rem;
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .2em; text-transform: uppercase; color: var(--muted);
  border-bottom: 1px solid var(--rule);
}
.cmp__table th, .cmp__table td {
  padding: 1rem 1.25rem; text-align: left;
  border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule);
  vertical-align: top; font-family: var(--sans);
}
.cmp__table th:last-child, .cmp__table td:last-child { border-right: 0; }
.cmp__table tr:last-child th, .cmp__table tr:last-child td { border-bottom: 0; }
.cmp__table thead th {
  font-family: var(--serif); font-weight: 500; font-size: 1.05rem;
  letter-spacing: -.01em; color: var(--ink); background: var(--bone);
}
.cmp__table thead th:first-child { background: transparent; }
.cmp__rowlabel {
  font-size: .64rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
  color: var(--muted); white-space: nowrap; width: 1%;
}
.cmp__price { font-family: var(--serif); font-weight: 500; font-size: 1.15rem; color: var(--ink); }
.cmp__table td { font-size: .9rem; color: var(--ink-soft); line-height: 1.4; }
.cmp--feature { position: relative; }
.cmp__table thead th.cmp--feature { color: var(--accent-deep); }
.cmp__hint {
  font-family: var(--sans); font-size: .78rem; color: var(--muted);
  margin: .85rem 0 0; display: none;
}
@media (max-width: 720px) { .cmp__hint { display: none; } }

/* ── Responsive pricing cards ── */
.prc-section { margin-top: clamp(2rem, 4vw, 3.25rem); }
.prc-section__caption {
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .2em; text-transform: uppercase; color: var(--muted);
  padding: .9rem 0 .75rem;
  border-bottom: 1px solid var(--rule);
  margin: 0 0 1rem;
}
.prc-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .75rem;
}
.prc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.prc-card {
  position: relative; background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15); border-radius: 10px;
  padding: 1.1rem 1rem 1rem;
  display: flex; flex-direction: column; gap: .5rem;
}
.prc-card--featured { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); background: rgba(255,255,255,.13); }
.prc-card__badge {
  display: inline-block;
  font-family: var(--sans); font-size: .6rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent-warm); background: rgba(213,122,53,.2);
  border-radius: 20px; padding: .2rem .6rem;
  margin-bottom: .15rem; align-self: flex-start;
}
.prc-card__name {
  font-family: var(--serif); font-size: .95rem; font-weight: 500;
  color: rgba(255,255,255,.9); letter-spacing: -.01em; line-height: 1.25;
}
.prc-card__price {
  font-family: var(--serif); font-size: 1.3rem; font-weight: 500;
  color: #fff; letter-spacing: -.02em;
}
.prc-card__price span { font-size: .8rem; font-weight: 400; color: rgba(255,255,255,.55); }
.prc-card__details {
  display: grid; grid-template-columns: auto 1fr;
  gap: .2rem .6rem; margin: 0; padding-top: .4rem;
  border-top: 1px solid rgba(255,255,255,.12);
}
.prc-card__details dt {
  font-family: var(--sans); font-size: .62rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.45);
  padding-top: .05rem;
}
.prc-card__details dd {
  font-family: var(--sans); font-size: .82rem; color: rgba(255,255,255,.75);
  margin: 0; line-height: 1.4;
}
@media (max-width: 900px) {
  .prc-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
  .prc-grid { grid-template-columns: repeat(2, 1fr); }
  .prc-grid--3 { grid-template-columns: repeat(1, 1fr); }
}
@media (max-width: 380px) {
  .prc-grid, .prc-grid--3 { grid-template-columns: 1fr; }
}


.tier-col {
  padding: 2.5rem 2.25rem;
  border-right: 1px solid var(--rule);
  display: flex; flex-direction: column;
  background: var(--paper);
  transition: background .4s var(--ease);
}
.tier-col:last-child { border-right: 0; }
@media (max-width: 879px) { .tier-col { border-right: 0; border-bottom: 1px solid var(--rule); } }

.tier-col--feature { background: var(--brand); position: relative; }
.tier-col--feature::before {
  content: ''; position: absolute; left: 0; top: 0; right: 0; height: 3px;
  background: var(--accent);
}
.tier-col--feature .tier-col__tag { color: var(--accent-warm); }
.tier-col--feature .tier-col__name,
.tier-col--feature .tier-col__price strong { color: var(--bone); }
.tier-col--feature .tier-col__price-from { color: var(--muted-l); }
.tier-col--feature .tier-col__desc,
.tier-col--feature .tier-col__list li { color: var(--muted-l); }
.tier-col--feature .tier-col__list li::before { background: var(--accent-warm); }
.tier-col--feature .tier-col__cta { color: var(--bone); border-color: var(--rule-l-mid); }

.tier-col__tag {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--muted); margin: 0 0 1.75rem; display: block;
}
.tier-col__name {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  letter-spacing: -.025em; color: var(--ink);
  margin: 0 0 1.5rem; line-height: 1.02;
}
.tier-col__price { margin: 0 0 2rem; }
.tier-col__price-from {
  display: block; font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--muted); margin: 0 0 .35rem;
}
.tier-col__price strong {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.55rem, 3vw, 2.3rem);
  letter-spacing: -.025em; color: var(--ink);
  line-height: 1;
}
.tier-col__price .per { font-family: var(--sans); font-size: .82rem; color: var(--muted); font-weight: 400; }
.tier-col__desc {
  font-family: var(--sans); font-size: .9rem;
  color: var(--muted); line-height: 1.85;
  margin: 0 0 2.25rem;
}
.tier-col__list {
  list-style: none; margin: 0 0 2rem; padding: 0;
  display: flex; flex-direction: column; gap: .8rem; flex: 1;
}
.tier-col__list li {
  font-family: var(--sans); font-size: .87rem;
  color: var(--muted); padding-left: 1.4rem;
  position: relative; line-height: 1.55;
}
.tier-col__list li::before {
  content: ''; position: absolute; left: 0; top: .5em;
  width: 6px; height: 1px; background: var(--accent);
}
.tier-col__cta {
  display: inline-flex; align-items: center; gap: .65rem;
  font-family: var(--sans); font-weight: 500; font-size: .72rem;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink); border: 1px solid var(--rule-mid);
  padding: .9rem 1.35rem; margin-top: auto;
  transition: background .35s, color .35s, border-color .35s;
  cursor: pointer;
}

.add-services {
  display: grid; grid-template-columns: 1fr;
  border: 1px solid var(--rule-mid); border-top: none;
}
@media (min-width: 880px) { .add-services { grid-template-columns: repeat(3, 1fr); } }

.add-service {
  padding: 2.25rem 2rem;
  border-right: 1px solid var(--rule);
  background: var(--paper);
  transition: background .35s;
}
.add-service:last-child { border-right: 0; }
.add-service:hover { background: var(--bone); }
@media (max-width: 879px) { .add-service { border-right: 0; border-bottom: 1px solid var(--rule); } }

.add-service__tag {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--accent); display: block; margin: 0 0 1rem;
}
.add-service__name {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.15rem; color: var(--ink);
  letter-spacing: -.025em; margin: 0 0 .4rem; line-height: 1.15;
}
.add-service__price { font-family: var(--sans); font-size: .82rem; color: var(--muted); margin: 0 0 1.25rem; }
.add-service__desc { font-family: var(--sans); font-size: .88rem; color: var(--muted); line-height: 1.85; margin: 0 0 1.5rem; }
.add-service__more {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--sans); font-size: .72rem; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); transition: gap .25s var(--ease-out);
}
.add-service__more:hover { gap: .85rem; }

.services__note {
  display: flex; align-items: center; gap: .85rem;
  font-family: var(--sans); font-size: .85rem;
  color: var(--muted); margin-top: 2.5rem;
  padding: 1.5rem 1.85rem;
  border: 1px solid var(--rule);
  background: var(--bone);
}


/* ════════════════════════════════════════════════════════════
   PRICING BLURB — light band in the alternating rhythm
   ════════════════════════════════════════════════════════════ */
.pricing-blurb { padding: var(--section-y) 0; background: var(--bone); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.pricing-blurb--dark {
  position: relative;
}
.pricing-blurb__inner { position: relative; z-index: 1; }
.pricing-blurb__inner {
  max-width: 100%;
}
@media (min-width: 880px) {
  .pricing-blurb__inner { display: grid; grid-template-columns: 4fr 6fr; gap: 3.5rem; align-items: start; }
}
.pricing-blurb__head { align-self: start; }
.pricing-blurb__label {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.05rem; letter-spacing: -.02em;
}
.pricing-blurb__label { line-height: 1; color: var(--ink); margin: 0 0 1.1rem; }
.pricing-blurb--dark .pricing-blurb__label { color: var(--ink); }
.pricing-blurb__body-group {
  display: flex; flex-direction: column; gap: 1.5rem;
}
.pricing-blurb__body {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  color: var(--ink); line-height: 1.65;
  margin: 0; letter-spacing: -.005em;
}
.pricing-blurb__body em { font-style: normal; font-weight: 500; color: var(--accent-deep); }


/* ════════════════════════════════════════════════════════════
   SELECTED WORK — light band; dark portfolio tiles pop like frames
   ════════════════════════════════════════════════════════════ */
.work {
  padding: var(--section-y) 0;
  background: var(--bone);
  position: relative; overflow: hidden;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
.work__grain {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 240px 240px;
  opacity: .025; mix-blend-mode: multiply;
}
.work .container { position: relative; z-index: 2; }

.work__grid {
  display: grid; grid-template-columns: 1fr; gap: 1.5rem;
  margin-top: clamp(3rem, 6vw, 5rem);
}
@media (min-width: 880px) { .work__grid { grid-template-columns: 1fr 1fr; } }

.work__item {
  background: var(--brand-3); display: block; position: relative; overflow: hidden;
  border: 1px solid var(--rule);
  transition: background .45s var(--ease), box-shadow .4s var(--ease-out), transform .4s var(--ease-out);
}
.work__item:hover { box-shadow: 0 24px 48px rgba(32,33,36,.12); transform: translateY(-3px); }
.work__item:hover .work__visual { transform: scale(1.05); opacity: .82; }
.work__item--wide { grid-column: 1 / -1; }
.work__visual {
  aspect-ratio: 4/3; overflow: hidden;
  transition: opacity .55s var(--ease), transform .8s var(--ease-out);
  transform: scale(1);
}
.work__item--wide .work__visual { aspect-ratio: 16/6; }
.work__visual svg { width: 100%; height: 100%; }
.work__meta {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: 1.65rem 2rem;
  border-top: 1px solid var(--rule-l);
  background: var(--brand-3);
}
.work__name {
  font-family: var(--serif); font-weight: 500;
  font-size: 1rem; color: var(--bone);
  flex: 1; letter-spacing: -.02em;
}
.work__cat { font-family: var(--sans); font-size: .72rem; color: var(--muted-l); letter-spacing: .04em; }
.work__year { font-family: var(--sans); font-size: .72rem; color: var(--muted-l-soft); margin-left: auto; letter-spacing: .04em; }


/* ════════════════════════════════════════════════════════════
   ABOUT BLOCK — dark band
   ════════════════════════════════════════════════════════════ */
.about-block {
  padding: var(--section-y) 0;
  border-top: 1px solid var(--rule-l);
}
.about-block__lead {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  color: var(--muted-l); line-height: 1.45;
  max-width: 38ch; margin: 0 0 1.5rem;
  letter-spacing: -.02em;
}
.about-block__lead em { font-style: normal; font-weight: 500; color: var(--paper); }
.about-block .eyebrow--light { color: var(--muted-l); }
.about-block .eyebrow--light .num { color: var(--accent-on-dark); }
.about-block .display--light { color: var(--paper); }
.about-block .display--light em { color: var(--accent-on-dark); }
.about-block .btn { margin-top: 1.5rem; }

/* Two-column: text left, studio visual right */
.about-block__grid { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 880px) {
  .about-block__grid { grid-template-columns: 1.1fr 0.9fr; }
}
.about-block__text { min-width: 0; }
.about-block__visual {
  display: flex; align-items: center; justify-content: center;
}
.about-block__visual svg { width: 100%; max-width: 520px; height: auto; }
@media (max-width: 879px) {
  .about-block__visual { order: -1; margin-bottom: 1.5rem; }
  .about-block__visual svg { max-width: 420px; margin: 0 auto; }
}



/* ════════════════════════════════════════════════════════════
   ABOUT — two-col intro row + t-card team grid
   ════════════════════════════════════════════════════════════ */

/* Intro row: heading left, tagline+CTA right */
.about-block__intro-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: end;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.about-block__heading { margin: 0; }
.about-block__intro-right { display: flex; flex-direction: column; align-items: flex-start; }
.about-block__tagline {
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  color: var(--paper);
  opacity: 0.82;
  line-height: 1.75;
  margin: 0;
}
.about-block__tagline em { font-style: normal; font-weight: 600; color: var(--accent-on-dark); opacity: 1; }
.about-block__cta { margin-top: 1.5rem; }

/* Team cards row */
.team-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2.5vw, 1.75rem);
}

/* t-card dark variant — name + role in light colours */
.t-card--dark .t-card__role { color: var(--accent-on-dark, #F2B98A); }
.t-card__name--light { color: #ffffff !important; }
.t-card__bio--light {
  color: #ffffff !important;
  opacity: 1;
  font-size: 0.88rem;
  line-height: 1.7;
  margin-top: 0.6rem;
}
.t-card--dark .t-card__index {
  background: var(--accent, #D57A35);
  border-color: var(--accent, #D57A35);
  color: #fff;
}
.t-card--dark .t-card__corner::before,
.t-card--dark .t-card__corner::after { background: var(--accent-on-dark, #F2B98A); }

/* Portrait-ratio frame for homepage team cards */
.team-cards .t-card__frame {
  height: clamp(180px, 22vw, 260px);
}
.team-cards .t-card__img {
  object-position: center 15%;
}

@media (max-width: 720px) {
  .about-block__intro-row { grid-template-columns: 1fr; }
  .team-cards { grid-template-columns: 1fr; max-width: 380px; margin: 0 auto; }
}

/* ════════════════════════════════════════════════════════════
   CTA — Cream with bold display, dark form fields
   ════════════════════════════════════════════════════════════ */
.cta {
  padding: var(--section-y) 0;
  background: var(--bone);
  position: relative; overflow: hidden;
  border-top: 1px solid var(--rule);
}
.cta__grain {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 240px 240px;
  opacity: .03;
  mix-blend-mode: multiply;
}
.cta::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 70% 50% at 80% 30%, rgba(213,122,53,.06) 0%, transparent 55%);
}
.cta .container { position: relative; z-index: 1; }
.cta .eyebrow--light { color: var(--muted); }
.cta__head {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(2.25rem, 6vw, 5rem);
  letter-spacing: -.025em; line-height: 1;
  color: var(--ink); margin: 0 0 1.5rem;
  max-width: 14ch;
}
.cta__head em { color: var(--accent-deep); font-style: normal; font-weight: 300; }
.cta__sub {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(.95rem, 1.2vw, 1.1rem);
  color: var(--muted); max-width: 52ch;
  margin: 0 0 2.25rem; line-height: 1.55;
  letter-spacing: -.005em;
}


/* ════════════════════════════════════════════════════════════
   FORM FIELDS — Light theme defaults
   ════════════════════════════════════════════════════════════ */
.cta__form, .form-block {
  display: flex; flex-direction: column; gap: 1.5rem;
  max-width: 760px;
}
.cta__row { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 720px) { .cta__row { grid-template-columns: 1fr 1fr; } }

.field { display: flex; flex-direction: column; gap: .55rem; }
.field__label {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--muted);
}
.field input, .field select, .field textarea {
  padding: .85rem 1rem;
  border: 1px solid var(--rule-mid);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans); font-size: .95rem;
  border-radius: 1px;
  transition: border-color .3s, background .3s;
  width: 100%;
}
.field input::placeholder, .field textarea::placeholder { color: var(--muted-faint); }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--accent); background: #fff;
}
.field select option { background: var(--paper); color: var(--ink); }
.field--full { grid-column: 1 / -1; }
.field textarea { resize: vertical; min-height: 120px; }

.cta__submit-row { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; padding-top: .5rem; }
.cta__or {
  font-family: var(--sans); font-size: .82rem;
  color: var(--muted); margin: 0;
}
.cta__or a { color: var(--accent-text); border-bottom: 1px solid rgba(154,80,22,.45); transition: border-color .25s; }
.cta__or a:hover { border-color: var(--accent); }
.cta__success {
  display: flex; align-items: center; gap: .85rem;
  font-family: var(--sans); font-size: .85rem;
  color: var(--accent-deep); padding: 1.1rem 1.4rem;
  border: 1px solid rgba(213,122,53,.3); background: rgba(213,122,53,.05);
  margin-top: 1rem;
}
.cta__fine {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--sans); font-size: .82rem;
  color: var(--muted); margin: 1rem 0;
}


/* ════════════════════════════════════════════════════════════
   FORM NOTE — Editor's aside, light variant default
   ════════════════════════════════════════════════════════════ */
.form-note {
  display: block;
  position: relative;
  padding: 1.25rem 1.5rem 1.25rem 1.75rem;
  margin: 0 0 1.75rem;
  border-left: 2px solid var(--accent);
  background: rgba(213,122,53, 0.05);
  max-width: 720px;
}
.form-note__label {
  display: block;
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--accent-text); margin: 0 0 .65rem;
}
.form-note__body {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(.92rem, 1.1vw, 1.05rem);
  color: var(--ink); line-height: 1.55;
  letter-spacing: -.01em; margin: 0;
}
.form-note__body em {
  font-style: normal; font-weight: 500; color: var(--accent-deep);
}
.form-note--light {
  background: rgba(213,122,53, 0.05);
  border-left-color: var(--accent);
}


/* ════════════════════════════════════════════════════════════
   FOOTER — Stays DARK as anchor
   ════════════════════════════════════════════════════════════ */
.foot {
  background: var(--brand-surface);
  padding: clamp(3rem, 6vw, 4.5rem) 0 2.25rem;
  border-top: 3px solid var(--sage);
}

.foot__top {
  padding-bottom: clamp(2.25rem, 4.5vw, 3.5rem);
  margin-bottom: clamp(2.25rem, 4.5vw, 3.5rem);
  border-bottom: 1px solid var(--rule-l);
  display: flex; flex-direction: column; gap: 2.5rem;
}
@media (min-width: 880px) { .foot__top { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 4rem; } }

.foot__brand { display: flex; align-items: center; }
.foot__brand-mark { background: none; display: flex; align-items: center; flex-shrink: 0; }
.foot__brand-img { height: 72px; width: auto; max-width: 240px; object-fit: contain; }
.foot__brand-text, .foot__brand-amp { display: none; }

.foot__head {
  font-family: var(--sans);
  font-weight: 400;
  font-size: clamp(0.95rem, 1.4vw, 1.1rem);
  letter-spacing: 0.01em;
  line-height: 1.65;
  color: var(--accent-warm);
  opacity: 1;
  margin: 0;
  max-width: 40ch;
  white-space: nowrap;
}
@media (max-width: 719px) { .foot__head { white-space: normal; padding-right: 1rem; } }
.foot__head em { color: var(--paper); font-style: normal; font-weight: 600; opacity: 1; display: block; white-space: normal; }

.foot__grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 3.5rem 2rem;
}
@media (min-width: 720px)  { .foot__grid { grid-template-columns: repeat(4,1fr); } }
@media (min-width: 1024px) { .foot__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; } }
.foot__col p { margin: 0 0 .55rem; line-height: 1.75; font-family: var(--sans); font-size: .85rem; color: var(--muted-l); }
.foot__col a { color: var(--muted-l); transition: color .25s; font-family: var(--sans); font-size: .85rem; }
.foot__col a:hover { color: var(--accent-warm); }
.foot__label {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--accent-warm); margin: 0 0 1.25rem; display: block;
}
.foot__locations { display: flex; flex-direction: column; gap: .25rem; }
.foot__locations a { font-size: .82rem; }
.foot__bottom {
  border-top: 1px solid var(--rule-l);
  padding-top: 1.75rem; margin-top: clamp(2rem, 4vw, 3rem);
  display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between;
}
.foot__bottom p { margin: 0; font-family: var(--sans); font-size: .78rem; color: var(--muted-l-soft); }
.foot__tag em { font-style: normal; color: var(--muted-l); font-weight: 500; }
.foot__bottom a { color: var(--muted-l-soft); transition: color .2s; }
.foot__bottom a:hover { color: var(--accent-warm); }
.foot__verse {
  flex-basis: 100%;
  margin-top: 1.25rem !important;
  font-size: .68rem !important;
  font-style: italic;
  letter-spacing: .01em;
  opacity: .35;
  transition: opacity .4s ease;
}
.foot__verse:hover { opacity: .6; }


/* ════════════════════════════════════════════════════════════
   SUB-HERO — Inner pages, cream
   ════════════════════════════════════════════════════════════ */
.sub-hero {
  padding: calc(var(--nav-h) + clamp(3rem, 6vw, 5rem)) 0 clamp(3rem, 6vw, 5rem);
  background: var(--brand-surface);
  position: relative; overflow: visible;
  border-bottom: 1px solid var(--rule-l);
}
.sub-hero::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 70% 50% at 20% 70%, rgba(213,122,53,.07) 0%, transparent 55%);
  overflow: hidden;
}
.sub-hero__inner {
  position: relative; z-index: 1;
  max-width: var(--maxw); margin: 0 auto;
  padding: 0 var(--pad);
  display: flex; flex-direction: column; gap: 1.75rem;
}
@media (min-width: 880px) { .sub-hero__inner { display: grid; grid-template-columns: 1.6fr 1fr; gap: 3.5rem; align-items: center; } }

/* Single-column hero — no wasted right space */
.sub-hero--single .sub-hero__inner { display: block !important; }
.sub-hero--single .sub-hero__main { max-width: 680px; }
.sub-hero--single .sub-hero__body {
  font-family: var(--sans);
  font-size: clamp(.95rem, 1.2vw, 1.05rem);
  color: var(--muted-l);
  line-height: 1.7;
  margin: 1rem 0 1.25rem;
  max-width: 54ch;
}
.sub-hero__heading {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(2rem, 5vw, 4rem);
  letter-spacing: -.025em; line-height: 1;
  color: var(--paper); margin: 0;
  text-align: left;
}
.sub-hero .crumbs { text-align: left; }
.sub-hero__left { text-align: left; }
.sub-hero__heading em { color: var(--accent-on-dark); font-style: normal; font-weight: 300; }
.sub-hero__body, .sub-hero__sub {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(.9rem, 1.1vw, 1rem);
  color: var(--muted-l); line-height: 1.65;
  margin: 0 0 1.1rem; max-width: 50ch;
}
.sub-hero__aside {
  font-family: var(--sans); font-size: .82rem;
  color: var(--muted-l); line-height: 1.7;
  padding: 1.25rem 1.5rem;
  background: rgba(255,255,255,.05); border: 1px solid var(--rule-l);
}
.sub-hero .eyebrow { color: var(--muted-l); }
.sub-hero .eyebrow .num { color: var(--accent-on-dark); }
.sub-hero .eyebrow .dot { background: var(--accent-warm); }
.sub-hero__facts li { color: var(--muted-l); }
.sub-hero__facts li strong { color: var(--paper); }
.sub-hero .btn--outline-light { color: var(--paper); border-color: var(--rule-l-mid); }
.sub-hero .btn--outline-light:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
/* Breadcrumbs on dark sub-hero */
.sub-hero .crumbs { color: var(--muted-l); }
.sub-hero .crumbs a { color: var(--muted-l); }
.sub-hero .crumbs a:hover { color: var(--paper); }
.sub-hero .crumbs [aria-current="page"] { color: var(--accent-on-dark); }
.sub-hero .crumbs li:not(:last-child)::after { color: var(--accent-warm); }

/* Section heads */
.section-head { margin: 0 0 clamp(2rem, 4vw, 3.25rem); }
.section-head--split {
  display: flex; flex-direction: column; gap: 1.5rem;
  justify-content: space-between; align-items: flex-start; flex-wrap: wrap;
}
@media (min-width: 880px) { .section-head--split { flex-direction: row; align-items: flex-end; gap: 2rem; } }
.section-head__aside {
  font-family: var(--sans); color: var(--muted);
  max-width: 38ch; font-size: .92rem; line-height: 1.85;
  margin: 0;
}
.section-head__aside--light { color: var(--muted-l); }

.s-head { margin-bottom: clamp(2rem, 3.5vw, 2.75rem); }
.s-head__overline,
.s-head__eyebrow {
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--muted); display: inline-flex; align-items: center; gap: .85rem;
  margin: 0 0 1.1rem;
}
.s-head__eyebrow .num,
.s-head__overline .num {
  font-family: var(--serif); font-weight: 500; font-size: .9rem;
  letter-spacing: 0; text-transform: none; color: var(--accent-text);
}
.s-head__title {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.75rem, 4.5vw, 3.25rem); letter-spacing: -.02em;
  color: var(--ink); margin: 0; line-height: 1.02;
}
.s-head__title em { color: var(--accent-deep); font-style: normal; font-weight: 300; }
.s-head__lead {
  font-family: var(--sans); font-size: .92rem;
  color: var(--muted); line-height: 1.85;
  max-width: 60ch; margin: 1.1rem 0 0;
}


/* ════════════════════════════════════════════════════════════
   INNER PAGE COMPONENTS
   ════════════════════════════════════════════════════════════ */
.page-section { padding: var(--section-y) 0; border-bottom: 1px solid var(--rule); }
.page-section--alt,
.page-section--soft { background: var(--paper); }

/* Two-column layout (used on contact page) */
.two-col {
  display: grid; gap: 2rem;
}
@media (min-width: 880px) { .two-col { grid-template-columns: 280px 1fr; gap: 4rem; } }
.two-col__label {
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--muted); margin: 0; padding-top: .75rem;
}

/* Crumbs/breadcrumbs */
.crumbs {
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--muted-soft); margin: 0 0 1.25rem;
  list-style: none; padding: 0;
  display: flex; align-items: center; gap: .85rem; flex-wrap: wrap;
}
.crumbs li { display: inline-flex; align-items: center; gap: .85rem; }
.crumbs li:not(:last-child)::after {
  content: '·'; color: var(--accent); opacity: .6; margin-left: .25rem;
}
.crumbs a { color: var(--muted); transition: color .2s; }
.crumbs a:hover { color: var(--accent); }
.crumbs [aria-current="page"] { color: var(--accent-text); }
.crumbs .sep { margin: 0 .5rem; opacity: .5; }

/* Process compact (contact page "what happens next") */
.process-compact {
  display: grid; grid-template-columns: 1fr; gap: 0;
  border-top: 1px solid var(--rule);
}
.process-compact__step {
  display: grid; gap: .85rem;
  padding: 1.85rem 0;
  border-bottom: 1px solid var(--rule);
  grid-template-areas:
    "num"
    "title"
    "body"
    "when";
}
@media (min-width: 720px) {
  .process-compact__step {
    grid-template-columns: 80px 1fr 140px;
    grid-template-areas:
      "num title when"
      "num body when";
    align-items: start;
    gap: .25rem 2.25rem;
    padding: 2.25rem 0;
  }
}
.process-compact__num {
  grid-area: num;
  font-family: var(--serif); font-weight: 300;
  font-size: 1.75rem; line-height: 1;
  color: var(--accent-deep); opacity: 1;
  letter-spacing: -.025em;
}
.process-compact__title {
  grid-area: title;
  font-family: var(--serif); font-weight: 500;
  font-size: 1.15rem; color: var(--ink);
  letter-spacing: -.025em; line-height: 1.15;
  margin: 0;
}
.process-compact__body {
  grid-area: body;
  font-family: var(--sans); font-size: .92rem;
  color: var(--muted); line-height: 1.85;
  margin: .5rem 0 0; max-width: 60ch;
}
@media (min-width: 720px) { .process-compact__body { margin-top: .5rem; } }
.process-compact__when {
  grid-area: when;
  font-family: var(--sans); font-size: .72rem; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--muted); padding-top: .5rem;
}
@media (min-width: 720px) { .process-compact__when { text-align: right; } }

/* Process steps (longer pages) */
.process__step {
  display: grid; gap: 1.5rem;
  padding: 2.25rem 0; border-bottom: 1px solid var(--rule);
}
@media (min-width: 720px) { .process__step { grid-template-columns: 100px 1fr; align-items: start; gap: 2.75rem; } }
.process__num {
  font-family: var(--serif); font-weight: 300;
  font-size: 2.5rem; color: var(--accent); opacity: .6;
  line-height: 1; letter-spacing: -.025em;
}
.process__body h3 {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.2rem; color: var(--ink);
  margin: 0 0 .85rem; letter-spacing: -.02em;
}
.process__body p { color: var(--muted); line-height: 1.85; margin: 0; font-size: .92rem; }

.values__row {
  padding: 1.85rem 0; border-bottom: 1px solid var(--rule);
  display: grid; gap: 1rem;
}
@media (min-width: 720px) { .values__row { grid-template-columns: 280px 1fr; gap: 3rem; } }
.values__label {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.05rem; color: var(--ink); letter-spacing: -.02em;
}
.values__body { color: var(--muted); line-height: 1.85; font-size: .92rem; }

.team__card {
  border: 1px solid var(--rule); padding: 2rem 1.85rem;
  transition: border-color .35s, background .35s;
  background: var(--paper);
}
.team__card:hover { border-color: var(--accent); background: var(--bone); }
.team__card h3 {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.1rem; color: var(--ink);
  margin: 0 0 .35rem; letter-spacing: -.025em;
}
.team__card .role {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--accent); margin: 0 0 1.25rem;
}
.team__card p { color: var(--muted); font-size: .88rem; line-height: 1.85; margin: 0; }

/* ════════════════════════════════════════════════════════════
   TEAM — refined editorial card grid
   ════════════════════════════════════════════════════════════ */
.page-section--team { background: var(--paper-2); }

.team-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2rem, 4vw, 3rem);
  margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
}
@media (max-width: 719px) {
  .team-grid { gap: 2.5rem; }
  .team-grid .t-card { border-right: 0; padding-right: 0 !important; padding-left: 0 !important; }
  .t-card__frame { height: clamp(280px, 75vw, 380px); }
}
@media (min-width: 720px)  { .team-grid { grid-template-columns: repeat(2, 1fr); gap: 3rem 2.5rem; } }
@media (min-width: 720px) and (max-width: 1079px) {
  .team-grid .t-card { border-right: 0; padding-right: 0 !important; padding-left: 0 !important; }
  .t-card__frame { height: clamp(280px, 38vw, 380px); }
}
@media (min-width: 1080px) {
  .team-grid { grid-template-columns: repeat(3, 1fr); gap: 0; align-items: start; }
  .team-grid .t-card { border-right: 1px solid var(--rule); padding-right: 2.5rem; }
  .team-grid .t-card + .t-card { padding-left: 2.5rem; }
  .team-grid .t-card:last-child { border-right: 0; padding-right: 0; }
}

.t-card {
  display: flex; flex-direction: column;
  gap: 1.35rem;
}

/* — Image frame — */
.t-card__frame {
  position: relative;
  width: 100%;
  height: clamp(260px, 55vw, 420px);
  overflow: hidden;
  background: var(--bone-2);
  border: 1px solid var(--rule);
  isolation: isolate;
  flex-shrink: 0;
}
.t-card__img {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 20%;
  transition: transform 1.2s var(--ease-out), filter .6s var(--ease);
  display: block;
}
.t-card:hover .t-card__img { transform: scale(1.03); }

.t-card__index {
  position: absolute; top: 1.1rem; left: 1.25rem;
  font-family: var(--sans);
  font-size: .68rem; font-weight: 500;
  letter-spacing: .28em;
  color: var(--ink);
  background: var(--bone);
  padding: .35rem .6rem;
  border: 1px solid var(--rule-mid);
  z-index: 2;
}

.t-card__corner {
  position: absolute; bottom: 0; right: 0;
  width: 56px; height: 56px;
  pointer-events: none;
  z-index: 2;
}
.t-card__corner::before,
.t-card__corner::after {
  content: ""; position: absolute; background: var(--accent);
}
.t-card__corner::before { right: 0; bottom: 0; width: 24px; height: 2px; }
.t-card__corner::after  { right: 0; bottom: 0; width: 2px; height: 24px; }

/* — Body — */
.t-card__body { display: flex; flex-direction: column; }

.t-card__role {
  font-family: var(--sans);
  font-size: .68rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--accent-text);
  margin: 0 0 .65rem;
}

.t-card__name {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.3rem, 2.2vw, 1.75rem);
  color: var(--ink);
  letter-spacing: -.02em;
  line-height: 1.05;
  margin: 0 0 1rem;
}

.t-card__bio {
  color: var(--ink-soft);
  font-size: .95rem;
  line-height: 1.75;
  margin: 0 0 1.5rem;
}
.t-card__bio em {
  font-style: italic;
  color: var(--ink);
  font-weight: 500;
}

.t-card__aside {
  position: relative;
  padding-top: 1.25rem;
  border-top: 1px solid var(--rule);
  font-family: var(--sans);
  font-size: .82rem;
  line-height: 1.7;
  color: var(--muted);
}
.t-card__aside-label {
  display: block;
  font-size: .62rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--accent-deep);
  margin-bottom: .5rem;
  font-weight: 500;
}

.faq__item { border-bottom: 1px solid var(--rule); }
.faq__q {
  font-family: var(--serif); font-weight: 500;
  font-size: 1rem; color: var(--ink); padding: 1.4rem 0;
  display: flex; justify-content: space-between; align-items: center; gap: 2rem;
  cursor: pointer; letter-spacing: -.02em; line-height: 1.3;
}
.faq__q::after {
  content: '+'; font-family: var(--sans); font-style: normal; font-size: 1.1rem;
  color: var(--accent); flex-shrink: 0;
  transition: transform .35s var(--ease-out);
}
.faq__item.is-open .faq__q::after { transform: rotate(45deg); }
.faq__a { color: var(--muted); line-height: 1.85; font-size: .92rem; padding: 0 0 1.85rem; display: none; max-width: 70ch; }
.faq__item.is-open .faq__a { display: block; animation: fadeSlide .4s var(--ease-out); }
@keyframes fadeSlide { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

.locations__list {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  border: 1px solid var(--rule-mid);
}
.locations__item {
  border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  padding: 1.4rem 1.65rem;
  font-family: var(--serif); font-weight: 500; font-size: .9rem;
  color: var(--ink-soft); transition: background .25s, color .25s;
  letter-spacing: -.015em;
}
.locations__item:hover { background: var(--bone-2); color: var(--accent); }

.industries__grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  border: 1px solid var(--rule-mid); margin-top: 2rem;
}
.industries__card {
  padding: 1.75rem 1.65rem;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  transition: background .3s;
}
.industries__card:hover { background: var(--bone-2); }
.industries__card h3 {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.05rem; color: var(--ink);
  margin: 0 0 .65rem; letter-spacing: -.025em;
}
.industries__card p {
  font-family: var(--sans); font-size: .87rem;
  color: var(--muted); line-height: 1.75; margin: 0;
}

/* See-also (related links) */
.see-also {
  display: block; padding: 1.5rem 1.75rem;
  border: 1px solid var(--rule); background: var(--paper);
  transition: border-color .25s, background .25s;
  margin-bottom: 1rem;
}
.see-also:hover { border-color: var(--accent); background: var(--bone); }
.see-also__name {
  display: block; font-family: var(--serif); font-weight: 500;
  font-size: 1rem; color: var(--ink); letter-spacing: -.02em; margin: 0 0 .25rem;
}
.see-also__meta {
  display: block; font-family: var(--sans); font-size: .78rem;
  color: var(--muted); letter-spacing: .03em;
}

/* Prose */
.prose, .prose--lead { max-width: 68ch; }
.prose--lead {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(.95rem, 1.2vw, 1.1rem);
  color: var(--ink-soft); line-height: 1.55;
  margin: 0 0 1.75rem; letter-spacing: -.012em;
}
.prose h2 { font-family: var(--serif); font-weight: 500; font-size: 1.4rem; color: var(--ink); margin: 2.5rem 0 .85rem; letter-spacing: -.02em; }
.prose h3 { font-family: var(--serif); font-weight: 500; font-size: 1.1rem; color: var(--ink); margin: 1.85rem 0 .55rem; letter-spacing: -.02em; }
.prose p { color: var(--muted); line-height: 1.75; margin: 0 0 1rem; font-size: .96rem; }
.prose a { color: var(--accent-text); border-bottom: 1px solid rgba(154,80,22,.35); transition: border-color .25s; }
.prose a:hover { border-color: var(--accent); }
.prose ul, .prose ol { color: var(--muted); line-height: 1.85; padding-left: 1.5rem; margin: 0 0 1.4rem; font-size: .96rem; }
.prose li { margin-bottom: .4rem; }

/* 404 */
.error-page { min-height: 60vh; display: flex; align-items: center; padding: var(--section-y) 0; }
.error-page__num {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(4rem, 13vw, 8rem); letter-spacing: -.03em;
  color: var(--accent); opacity: .35; line-height: 1;
}
.error-page h1 {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.75rem, 4.5vw, 3rem); color: var(--ink);
  letter-spacing: -.02em; margin: 0 0 1rem;
}
.error-page p { color: var(--muted); font-size: .95rem; max-width: 48ch; line-height: 1.75; margin: 0 0 1.75rem; }


/* ════════════════════════════════════════════════════════════
   MOBILE NAV
   ════════════════════════════════════════════════════════════ */
@media (max-width: 880px) {
  :root { --nav-h: 64px; }
  .nav__brand-img { height: 40px; max-width: 200px; }
  .nav__toggle {
    display: flex; flex-direction: column; justify-content: center;
    gap: 5px; width: 36px; height: 36px;
  }
  .nav__toggle-bar { display: block; width: 22px; height: 1.5px; background: var(--paper); transition: all .3s var(--ease); }
  .nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(1) { transform: rotate(45deg) translate(4.5px, 4.5px); }
  .nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(2) { opacity: 0; }
  .nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(3) { transform: rotate(-45deg) translate(4.5px, -4.5px); }
  .nav__links {
    position: fixed;
    top: var(--nav-h); right: 0; bottom: 0; left: 0;
    height: calc(100vh - var(--nav-h));
    height: calc(100dvh - var(--nav-h));
    background: var(--brand); z-index: 98;
    flex-direction: column; align-items: stretch; justify-content: flex-start;
    padding: 2rem var(--pad) 3rem; gap: .15rem;
    transform: translateX(100%); transition: transform .45s var(--ease-deep);
    overflow-y: auto; -webkit-overflow-scrolling: touch; display: flex !important;
  }
  .nav__links.is-open { transform: translateX(0); }
  .nav__item { width: 100%; display: flex; flex-direction: column; align-items: stretch; }
  .nav__link, .nav__link--has-menu {
    font-family: var(--serif); font-weight: 500;
    font-size: 1.5rem; letter-spacing: -.015em; text-transform: none;
    color: var(--paper); padding: .65rem 0;
  }
  /* Full-width tappable trigger row with caret pushed to the right */
  .nav__link--has-menu {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; gap: .5rem; background: none; border: 0; text-align: left; cursor: pointer;
  }
  .nav__link--has-menu::before { display: none; }
  .nav__caret { font-size: .8em; opacity: .55; margin-left: auto; }
  .nav__cta {
    font-size: .9rem; margin-top: 1.75rem; align-self: flex-start;
  }
  .nav__cta--text {
    font-size: .9rem; margin-top: .75rem; margin-left: 0; align-self: flex-start;
  }
  .nav__menu {
    position: static; box-shadow: none; border: none; background: transparent;
    padding: .25rem 0 .75rem .25rem; min-width: 0;
  }
  .nav__item.is-open .nav__menu, .nav__item.is-open .nav__mega {
    display: flex; flex-direction: column; animation: none;
  }
  .nav__menu-item, .nav__menu-all { padding: .7rem .25rem; }
  .nav__menu-name { font-size: 1.02rem; font-weight: 500; color: var(--paper); }
  .nav__menu-desc { color: var(--muted-l); font-size: .82rem; }
  .nav__menu-item:hover { background: rgba(244,235,221,.08); }
  .nav__menu-all { font-size: .7rem; }
  .nav__menu-all:hover { background: rgba(244,235,221,.08); }
  .nav__menu-sep { border-top-color: var(--rule-l); }
}


/* ════════════════════════════════════════════════════════════
   SMALL-SCREEN TYPOGRAPHY POLISH (≤ 480px)
   Caps clamp() minimums and loosens tight tracking for phones.
   Pure typographic refinement — no layout changes.
   ════════════════════════════════════════════════════════════ */
@media (max-width: 480px) {
  /* Display tier — pull the biggest headings down one notch */
  .display, .hero__headline, .intro__quote, .cta__head,
  .sub-hero__heading, .s-head__title, .foot__head,
  .capability-band__title, .end-cta__head, .ty-hero__heading {
    font-size: 1.65rem;
    letter-spacing: -.015em;
    line-height: 1.05;
  }
  .hero__headline { font-size: 1.85rem; }
  .cta__head      { font-size: 1.95rem; }
  .sub-hero__heading,
  .ty-hero__heading { font-size: 1.8rem; }

  /* Lead / lede / sub paragraphs — keep them comfortably small */
  .intro__lead, .pricing-blurb__body, .cta__sub, .sub-hero__body,
  .sub-hero__sub, .end-cta__sub, .prose--lead, .form-note__body,
  .ty-hero__lede, .about-block__lead {
    font-size: .92rem;
    line-height: 1.6;
  }

  /* Tier / pricing — keep large prices presentable, not punchy */
  .tier-col__name, .tier__name { font-size: 1.25rem; }
  .tier-col__price strong, .tier__price { font-size: 1.4rem; }
  .pricing-blurb__label { font-size: 1.15rem; }

  /* Mobile nav menu link — one more notch smaller on small phones */
  .nav__link, .nav__link--has-menu { font-size: 1.35rem; }

  /* 404 watermark — way too big on phones */
  .error-page__num { font-size: 4rem; }

  /* Section eyebrow / overline — slightly tighter spacing */
  .eyebrow, .s-head__eyebrow, .s-head__overline { font-size: .62rem; letter-spacing: .22em; }

  /* Tighter section rhythm on phones */
  :root { --section-y: clamp(2.75rem, 11vw, 4rem); }

  /* Hero — less greedy on short phone viewports */
  .hero { min-height: auto; padding-bottom: 1rem; }
  .hero__support { padding: 1.25rem 0; gap: 1.1rem; }
  .hero__headline { margin-top: 1rem; }
  .hero__stat { padding: 1.1rem var(--pad); }

  /* Cards / cells — trim 20-25% of internal padding */
  .who__card { padding: 1.85rem 1.5rem 2rem; }
  .capability-band__cell { padding: 1.85rem 1.5rem 2rem; }
  .tier-col, .tier { padding: 1.85rem 1.5rem; }
  .add-service { padding: 1.65rem 1.5rem; }
  .team__card { padding: 1.65rem 1.5rem; }
  .industries__card { padding: 1.4rem 1.35rem; }
  .card__body { padding: 1.25rem; }
  .honesty { padding: 1.85rem 1.5rem; }
  .form-note { padding: 1rem 1.25rem 1rem 1.5rem; }

  /* Sub-hero — pull top in close to the nav */
  .sub-hero { padding-top: calc(var(--nav-h) + 1.5rem); }

  /* Section heads — less prelude */
  .section-head { margin: 0 0 1.5rem; }
  .s-head { margin-bottom: 1.5rem; }

  /* Display margins — closer to their leads */
  .cta__head { margin: 0 0 1rem; }
  .cta__sub { margin: 0 0 1.5rem; }
  .intro__quote { margin: 0 0 1.75rem; }
  .about-block__lead { margin: 0 0 1.1rem; }

  /* Footer — much calmer */
  .foot { padding: 2.5rem 0 1.75rem; }
  .foot__top { padding-bottom: 2rem; margin-bottom: 2rem; }
  .foot__bottom { padding-top: 1.25rem; margin-top: 1.75rem; }

  /* Thank-you hero — was massively padded */
  .ty-hero { padding: 3rem 0 2.5rem; }
  .ty-hero__heading { margin: 0 0 1.5rem; }

  /* Process steps — phone-tight */
  .process__step { padding: 1.5rem 0; gap: 1rem; }
  .process-compact__step { padding: 1.4rem 0; }
  .values__row { padding: 1.4rem 0; }
  .deliverables > li { padding: 1.1rem 0; }

  /* FAQ — pull rows in */
  .faq__item > summary { padding: 1rem 0; }
  .faq__answer { padding: 0 0 1.25rem; }

  /* Buttons — slightly smaller hit area, still 44px tall */
  .btn { padding: .75rem 1.25rem; font-size: .72rem; }
  .btn--big { padding: .9rem 1.65rem; }
}


/* ════════════════════════════════════════════════════════════
   SCROLL REVEAL
   ════════════════════════════════════════════════════════════ */
.reveal {
  opacity: 0; transform: translateY(36px);
  transition: opacity 1s var(--ease-out), transform 1s var(--ease-out);
}
.reveal.is-in { opacity: 1; transform: none; }
/* If the user prefers reduced motion, never hide content via reveal */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
[data-stagger="1"] { transition-delay: .12s !important; }
[data-stagger="2"] { transition-delay: .24s !important; }
[data-stagger="3"] { transition-delay: .36s !important; }
[data-stagger="4"] { transition-delay: .48s !important; }
[data-stagger="5"] { transition-delay: .60s !important; }

@keyframes pageFadeIn { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
main { animation: pageFadeIn .8s var(--ease-out) both; overflow-x: clip; }


/* ════════════════════════════════════════════════════════════
   END-CTA — "Want to talk through" closing block on sub-pages
   Centered, generous, with both buttons clearly visible
   ════════════════════════════════════════════════════════════ */
.end-cta {
  display: block;
  padding: var(--section-y) 0;
  background: var(--paper);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  position: relative; overflow: hidden;
  text-align: center;
}
.end-cta::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, rgba(213,122,53,.06) 0%, transparent 60%);
}
.end-cta__inner {
  position: relative; z-index: 1;
  max-width: 760px; margin: 0 auto;
  padding: 0 var(--pad);
  display: flex; flex-direction: column; align-items: center; gap: 1.75rem;
}
.end-cta__head {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.6rem, 4vw, 3rem);
  letter-spacing: -.025em; line-height: 1.02;
  color: var(--ink); margin: 0;
}
.end-cta__head em {
  font-style: normal; font-weight: 300; color: var(--accent);
}
.end-cta__sub {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(.92rem, 1.1vw, 1.05rem);
  color: var(--muted); line-height: 1.6;
  letter-spacing: -.005em;
  margin: 0 0 1.75rem; max-width: 50ch;
}
.end-cta__actions {
  display: flex; flex-wrap: wrap; gap: 1rem;
  justify-content: center; align-items: center;
}


/* ════════════════════════════════════════════════════════════
   CARD GRID — Industries / services / generic content cards
   Designed to accept <img> in .card__media later
   ════════════════════════════════════════════════════════════ */
.card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
}
@media (min-width: 640px) {
  .card-grid--2,
  .card-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1000px) {
  .card-grid--3 { grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
  .card-grid--4 { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
}

.card {
  background: var(--bone);
  border: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  transition: border-color .35s var(--ease),
              transform .4s var(--ease-out),
              box-shadow .4s var(--ease-out);
}
.card:hover {
  border-color: var(--accent);
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(32,33,36,0.08);
}

/* Image slot — placeholder gradient, accepts <img> when added */
.card__media {
  aspect-ratio: 4 / 3;
  background:
    radial-gradient(ellipse 80% 60% at 30% 70%, rgba(213,122,53,0.10) 0%, transparent 60%),
    linear-gradient(135deg, var(--bone-2) 0%, var(--bone-3) 100%);
  position: relative;
  overflow: hidden;
}
.card__media img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .9s var(--ease-out);
}
.card:hover .card__media img { transform: scale(1.04); }

/* Subtle texture in placeholder */
.card__media::after {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  opacity: .04;
  mix-blend-mode: multiply;
  pointer-events: none;
}

/* Body */
.card__body {
  padding: 1.5rem;
  flex: 1;
  display: flex; flex-direction: column;
  position: relative;
}

/* Roman numeral / symbol — top corner accent on the body */
.card__sym {
  position: absolute;
  top: 1.85rem; right: 1.85rem;
  font-family: var(--serif); font-weight: 300;
  font-size: 1rem; color: var(--accent);
  line-height: 1; letter-spacing: -.02em;
  opacity: .8;
}

.card__title {
  font-family: var(--serif); font-weight: 500;
  font-size: 1.1rem;
  color: var(--ink);
  letter-spacing: -.015em; line-height: 1.2;
  margin: 0 0 .6rem;
  padding-right: 2.5rem;
}

.card__desc {
  font-family: var(--sans); font-size: .9rem;
  color: var(--muted); line-height: 1.7;
  margin: 0 0 1.25rem;
  flex: 1;
}

.card__link {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--sans); font-size: .72rem; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent);
  margin-top: auto;
  transition: gap .25s var(--ease-out);
}
.card__link::after {
  content: '→';
  transition: transform .3s var(--ease-out);
}
.card:hover .card__link { gap: .8rem; }
.card:hover .card__link::after { transform: translateX(3px); }


/* ════════════════════════════════════════════════════════════
   SERVICES PAGES — STRUCTURAL COMPONENTS
   Cards, separators, padding system for service detail pages.
   Matches the cream/ink/copper "Light Luxury" aesthetic.
   ════════════════════════════════════════════════════════════ */

/* ── Page-section variants ─────────────────────────────────── */
/* ═══════════ LIGHT SECTION — explicit dark-text enforcement ═══════════ */
/* Ensures components that live in .page-section (light) render with dark ink,
   in case they were previously only seen on dark (--ink) sections.         */
.page-section .s-head__title       { color: var(--ink); }
.page-section .s-head__title em    { color: var(--accent-text); }
.page-section .s-head__eyebrow     { color: var(--muted); }
.page-section .s-head__eyebrow .num { color: var(--accent-text); }
.page-section .s-head__lead        { color: var(--muted); }

.page-section .deliverables        { border-top-color: var(--rule); }
.page-section .deliverables > li   { border-bottom-color: var(--rule); }
.page-section .deliverables__num   { color: var(--accent-text); }
.page-section .deliverables__title { color: var(--ink); }
.page-section .deliverables__body  { color: var(--muted); }

.page-section .prose,
.page-section .prose--lead         { color: var(--ink); }
.page-section .prose h2,
.page-section .prose h3            { color: var(--ink); }
.page-section .prose p,
.page-section .prose ul,
.page-section .prose ol            { color: var(--muted); }
.page-section .prose strong        { color: var(--ink); }
.page-section .prose a             { color: var(--accent-text); }

.page-section .faq__item           { border-bottom-color: var(--rule); }
.page-section .faq__q              { color: var(--ink); }
.page-section .faq__a              { color: var(--muted); }
.page-section .faq__item > summary { color: var(--ink); }
.page-section .faq__answer p       { color: var(--muted); }
.page-section .faq__answer strong  { color: var(--ink); }

.page-section .process-compact     { border-color: var(--rule); }
.page-section .process-compact__item { border-color: var(--rule); }
.page-section .process-compact__num   { color: var(--accent-text); }
.page-section .process-compact__title { color: var(--ink); }
.page-section .process-compact__body  { color: var(--muted); }

.page-section:not(.page-section--ink) .tier { border-color: var(--rule); background: var(--paper); }
.page-section:not(.page-section--ink) .tier--feature { background: var(--paper); border-color: var(--rule-mid); }

.page-section .tier--feature::before { background: var(--accent); }
.page-section .tier--feature .tier__eyebrow,
.page-section .tier--feature .tier__label  { color: var(--accent-text); }
.page-section .tier--feature .tier__name   { color: var(--ink); }
.page-section .tier--feature .tier__price,
.page-section .tier--feature .tier__price strong { color: var(--ink); }
.page-section .tier--feature .tier__from,
.page-section .tier--feature .tier__per    { color: var(--muted); }
.page-section .tier--feature .tier__desc,
.page-section .tier--feature .tier__sub    { color: var(--muted); }
.page-section .tier--feature .tier__list   { border-top-color: var(--rule); }
.page-section .tier--feature .tier__list li { color: var(--ink-soft); }
.page-section .tier--feature .tier__list li::before { background: var(--accent); }
.page-section .tier--feature .tier__cta   { color: var(--ink); border-color: var(--rule-mid); }
.page-section .tier__name          { color: var(--ink); }
.page-section .tier__price,
.page-section .tier__price strong  { color: var(--ink); }
.page-section .tier__label,
.page-section .tier__from,
.page-section .tier__per,
.page-section .tier__sub,
.page-section .tier__eyebrow       { color: var(--muted); }
.page-section .tier__list li       { color: var(--muted); }
.page-section .tier__list li::before { color: var(--accent); }

.page-section .tier-col            { border-color: var(--rule); background: var(--paper); }
.page-section .tier-col__name      { color: var(--ink); }
.page-section .tier-col__price,
.page-section .tier-col__price strong { color: var(--ink); }
.page-section .tier-col__tag,
.page-section .tier-col__price-from,
.page-section .tier-col__desc,
.page-section .tier-col__list li   { color: var(--muted); }
.page-section .tier-col__list li::before { background: var(--accent); }
.page-section .tier-col__cta       { color: var(--ink); border-color: var(--rule-mid); }

.page-section .card                { background: var(--paper); border-color: var(--rule); }
.page-section .card__title         { color: var(--ink); }
.page-section .card__desc          { color: var(--muted); }
.page-section .card__num,
.page-section .card__sym,
.page-section .card__link,
.page-section .card__eyebrow       { color: var(--accent-text); }

.page-section .honesty             { background: var(--paper-2); border-color: var(--rule-mid); }
.page-section .honesty__title      { color: var(--ink); }
.page-section .honesty__body       { color: var(--muted); }
.page-section .honesty__lead       { color: var(--accent-text); }
.page-section .honesty__mark       { color: var(--accent); }

.page-section .see-also            { background: var(--paper-2); border-color: var(--rule); }
.page-section .see-also a,
.page-section .see-also li         { color: var(--muted); }
.page-section .see-also strong,
.page-section .see-also__title,
.page-section .see-also__name      { color: var(--ink); }
.page-section .see-also__meta      { color: var(--muted); }
.page-section .see-also__sym       { color: var(--accent-text); }

.page-section .two-col__label      { color: var(--muted); }

/* ═══════════ PRC-CARD on light sections ═══════════ */
.page-section .prc-card {
  background: var(--paper);
  border-color: var(--rule-mid);
}
.page-section .prc-card--featured {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
  background: var(--paper);
}
.page-section .prc-card__badge {
  color: var(--accent-deep);
  background: rgba(213,122,53,.15);
}
.page-section .prc-card__name {
  color: var(--ink);
}
.page-section .prc-card__price {
  color: var(--ink);
}
.page-section .prc-card__price span {
  color: var(--muted);
}
.page-section .prc-card__details {
  border-top-color: var(--rule-mid);
}
.page-section .prc-card__details dt {
  color: var(--muted-soft);
}
.page-section .prc-card__details dd {
  color: var(--ink);
}

/* ═══════════ BTN--OUTLINE-LIGHT on light sections ═══════════ */
.page-section .btn--outline-light {
  color: var(--ink);
  border-color: var(--rule-strong);
}
.page-section .btn--outline-light:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

/* Services note dot on light sections */
.page-section .services__note {
  color: var(--muted);
}

/* ═══════════ DARK SECTION (--ink) — missing component overrides ═══════════ */
/* Components that were defaulting to dark/ink text on the blue brand-surface */

/* fact strip */
.page-section--ink .fact__label { color: var(--accent-on-dark); }
.page-section--ink .fact__title  { color: var(--bone); }
.page-section--ink .fact__body   { color: var(--muted-l); }

/* month-step cards (website-care-plan page) */
.page-section--ink .month-step {
  background: rgba(255,255,255,.05);
  border-color: var(--rule-l);
  border-top-color: var(--accent-warm);
}
.page-section--ink .month-step__num   { color: var(--accent-on-dark); }
.page-section--ink .month-step__label { color: var(--muted-l-soft); }
.page-section--ink .month-step__title { color: var(--bone); }
.page-section--ink .month-step__body  { color: var(--muted-l); }

/* tier__desc and tier__cta on dark sections (non-feature tiers) */
.page-section--ink .tier__desc,
.page-section--ink .tier__sub         { color: var(--muted-l); }
.page-section--ink .tier__cta         { color: var(--bone); border-color: var(--rule-l-mid); }

/* pricing-page promise + stat cards */
.page-section--ink .pricing-page__promise-copy      { color: var(--muted-l); }
.page-section--ink .pricing-page__promise-copy h2,
.page-section--ink .pricing-page__promise-copy h3   { color: var(--bone); }
.page-section--ink .pricing-page__stat              { background: rgba(255,255,255,.07); border-left-color: var(--accent-warm); }
.page-section--ink .pricing-page__stat-num          { color: var(--bone); }
.page-section--ink .pricing-page__stat-label        { color: var(--muted-l); }

/* team cards (t-card) on dark sections (about page) */
.page-section--ink .t-card              { border-color: var(--rule-l); }
.page-section--ink .t-card__role        { color: var(--accent-on-dark); }
.page-section--ink .t-card__name        { color: var(--bone); }
.page-section--ink .t-card__bio         { color: var(--muted-l); }
.page-section--ink .t-card__bio em      { color: var(--bone); }
.page-section--ink .t-card__aside       { color: var(--muted-l); border-top-color: var(--rule-l); }
.page-section--ink .t-card__aside-label { color: var(--muted-l-soft); }
.page-section--ink .t-card__index       { background: var(--accent, #D57A35); border-color: var(--accent, #D57A35); color: #fff; }
.page-section--ink .t-card__corner::before,
.page-section--ink .t-card__corner::after { background: var(--accent-on-dark); }

.page-section--ink {
  background: var(--brand-surface);
  color: var(--bone);
  border-bottom-color: var(--rule-l);
}
.page-section--ink .s-head__title,
.page-section--ink .s-head__title em { color: var(--bone); }
.page-section--ink .s-head__title em { color: var(--accent-on-dark); }
.page-section--ink .s-head__eyebrow { color: var(--muted-l); }
.page-section--ink .s-head__eyebrow .num { color: var(--accent-on-dark); }
.page-section--ink .s-head__lead { color: var(--muted-l); }
.page-section--ink .two-col__label { color: var(--muted-l-soft); }

/* Deliverables list: keep contrast on dark sections (e.g. About → Values) */
.page-section--ink .deliverables { border-top-color: var(--rule-l); }
.page-section--ink .deliverables > li { border-bottom-color: var(--rule-l); }
.page-section--ink .deliverables__num   { color: var(--accent-on-dark); }
.page-section--ink .deliverables__title { color: var(--bone); }
.page-section--ink .deliverables__body  { color: var(--muted-l); }

/* Prose: keep contrast on dark sections */
.page-section--ink .prose,
.page-section--ink .prose--lead         { color: var(--bone); }
.page-section--ink .prose h2,
.page-section--ink .prose h3            { color: var(--bone); }
.page-section--ink .prose p,
.page-section--ink .prose ul,
.page-section--ink .prose ol            { color: var(--muted-l); }
.page-section--ink .prose strong        { color: var(--bone); }
.page-section--ink .prose a             { color: var(--accent-on-dark); border-bottom-color: rgba(192,122,82,.35); }
.page-section--ink .prose a:hover       { border-bottom-color: var(--accent-warm); }
/* FAQ on dark sections */
.page-section--ink .faq__item { border-bottom-color: var(--rule-l); }
.page-section--ink .faq__q { color: var(--bone); }
.page-section--ink .faq__q::after { color: var(--accent-warm); }
.page-section--ink .faq__a { color: var(--muted-l); }
/* details-based FAQ on dark */
.page-section--ink .faq__item > summary { color: var(--bone); }
.page-section--ink .faq__item > summary:hover,
.page-section--ink .faq__item[open] > summary { color: var(--accent-on-dark); }
.page-section--ink .faq__answer p { color: var(--muted-l); }
.page-section--ink .faq__answer strong { color: var(--bone); }
/* process-compact on dark */
.page-section--ink .process-compact__num { color: var(--accent-on-dark); }
.page-section--ink .process-compact__title { color: var(--bone); }
.page-section--ink .process-compact__body { color: var(--muted-l); }
.page-section--ink .process-compact__when { color: var(--muted-l-soft); }
.page-section--ink .process-compact__item,
.page-section--ink .process-compact { border-color: var(--rule-l); }
/* pricing tiers on dark */
.page-section--ink .tier { border-color: var(--rule-l); }
.page-section--ink .tier__label,
.page-section--ink .tier__eyebrow { color: var(--muted-l); }
.page-section--ink .tier__name { color: var(--bone); }
.page-section--ink .tier__price,
.page-section--ink .tier__price strong { color: var(--bone); }
.page-section--ink .tier__from,
.page-section--ink .tier__per,
.page-section--ink .tier__sub { color: var(--muted-l); }
.page-section--ink .tier__list li { color: var(--muted-l); }
.page-section--ink .tier__list li::before { color: var(--accent-warm); }
.page-section--ink .tier--feature { background: rgba(255,255,255,.06); border-color: var(--rule-l); }
.page-section--ink .tier--feature .tier__eyebrow,
.page-section--ink .tier--feature .tier__label  { color: var(--accent-on-dark); }
.page-section--ink .tier--feature .tier__name   { color: var(--bone); }
.page-section--ink .tier--feature .tier__price,
.page-section--ink .tier--feature .tier__price strong { color: var(--bone); }
.page-section--ink .tier--feature .tier__from,
.page-section--ink .tier--feature .tier__per    { color: var(--muted-l); }
.page-section--ink .tier--feature .tier__desc,
.page-section--ink .tier--feature .tier__sub    { color: var(--muted-l); }
.page-section--ink .tier--feature .tier__list   { border-top-color: var(--rule-l); }
.page-section--ink .tier--feature .tier__list li { color: var(--muted-l); }
.page-section--ink .tier--feature .tier__list li::before { background: var(--accent-warm); }
.page-section--ink .tier--feature .tier__cta    { color: var(--bone); border-color: var(--rule-l-mid); }
/* Light-surfaced cards need dark surfaces on dark sections */
.page-section--ink .card { background: rgba(255,255,255,.04); border-color: var(--rule-l); }
.page-section--ink .card__title { color: var(--bone); }
.page-section--ink .card__desc { color: var(--muted-l); }
.page-section--ink .card__num,
.page-section--ink .card__sym,
.page-section--ink .card__link { color: var(--accent-on-dark); }
.page-section--ink .card__eyebrow { color: var(--accent-on-dark); }
.page-section--ink .tier { background: rgba(255,255,255,.04); border-color: var(--rule-l); }
.page-section--ink .tier-col { background: rgba(255,255,255,.04); border-color: var(--rule-l); }
.page-section--ink .tier-col__tag { color: var(--muted-l); }
.page-section--ink .tier-col__name { color: var(--bone); }
.page-section--ink .tier-col__price,
.page-section--ink .tier-col__price strong { color: var(--bone); }
.page-section--ink .tier-col__price-from { color: var(--muted-l); }
.page-section--ink .tier-col__desc,
.page-section--ink .tier-col__list li { color: var(--muted-l); }
.page-section--ink .tier-col__list li::before { background: var(--accent-warm); }
.page-section--ink .tier-col__cta { color: var(--bone); border-color: var(--rule-l-mid); }
.page-section--ink .honesty { background: rgba(255,255,255,.04); border-color: var(--rule-l); margin-top: 0; }
.page-section--ink .honesty__lead  { color: var(--accent-on-dark); }
.page-section--ink .honesty__title { color: var(--bone); }
.page-section--ink .honesty__body { color: var(--muted-l); }
.page-section--ink .honesty__mark { color: var(--accent-on-dark); }
.page-section--ink .honesty__close          { color: var(--muted-l); border-top-color: var(--rule-l); }
.page-section--ink .honesty__list           { border-top-color: var(--rule-l); }
.page-section--ink .honesty__list > li      { color: var(--muted-l); border-bottom-color: var(--rule-l); }
.page-section--ink .honesty__list > li > strong { color: var(--bone); }
.page-section--ink .rw-item { background: rgba(255,255,255,.04); border-color: var(--rule-l); }
.page-section--ink .rw-item__shot { background: var(--brand-3); }
.page-section--ink .rw-item__title { color: var(--bone); }
.page-section--ink .rw-item__meta,
.page-section--ink .rw-item__desc { color: var(--muted-l); }
.page-section--ink .rw-item__name  { color: var(--bone); }
.page-section--ink .rw-item__cat   { color: var(--muted-l); }
.page-section--ink .rw-item__year  { color: var(--muted-l-soft); }
.page-section--ink .rw-foot        { color: var(--muted-l); }
.page-section--ink .rw-foot a      { color: var(--accent-on-dark); border-bottom-color: rgba(242,185,138,.35); }
.page-section--ink .rw-foot a:hover { color: var(--accent-warm); }
.page-section--ink .see-also { background: rgba(255,255,255,.04); border-color: var(--rule-l); }
.page-section--ink .see-also a,
.page-section--ink .see-also li { color: var(--muted-l); }
.page-section--ink .see-also strong,
.page-section--ink .see-also__title { color: var(--bone); }
.page-section--ink .see-also__name { color: var(--bone); }
.page-section--ink .see-also__meta { color: var(--muted-l); }
.page-section--ink .see-also__sym { color: var(--accent-on-dark); }
/* Ghost buttons on dark sections */
.page-section--ink .btn--ghost,
.band-dark .btn--ghost,
.sub-hero .btn--ghost {
  color: var(--paper); border-color: var(--rule-l-mid);
}
.page-section--ink .btn--ghost:hover,
.band-dark .btn--ghost:hover,
.sub-hero .btn--ghost:hover {
  background: var(--paper); color: var(--ink); border-color: var(--paper);
}
.page-section--ink .services__note { color: var(--muted-l); background: rgba(255,255,255,.04); border-color: var(--rule-l); }
/* generic prose/headose safety on dark */
.page-section--ink h2, .page-section--ink h3, .page-section--ink h4 { color: var(--bone); }
.page-section--ink p, .page-section--ink li { color: var(--muted-l); }
.page-section--ink .fact-strip { border-color: var(--rule-l); }
.page-section--ink .fact { border-color: var(--rule-l); }
.page-section--ink .fact__body { color: var(--muted-l); }
.page-section--ink .btn--outline-light { color: var(--paper); border-color: var(--rule-l-mid); }
.page-section--ink .btn--outline-light:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }

/* Section-head variants */
.s-head--center { text-align: center; max-width: 920px; margin-left: auto; margin-right: auto; }
/* s-head--ink only produces light text when actually on a dark section/band */
.page-section--ink .s-head--ink .s-head__title,
.band-dark .s-head--ink .s-head__title { color: var(--bone); }
.page-section--ink .s-head--ink .s-head__title em,
.band-dark .s-head--ink .s-head__title em { color: var(--accent-on-dark); }
.page-section--ink .s-head--ink .s-head__eyebrow,
.band-dark .s-head--ink .s-head__eyebrow { color: var(--muted-l); }
.page-section--ink .s-head--ink .s-head__eyebrow .num,
.band-dark .s-head--ink .s-head__eyebrow .num { color: var(--accent-on-dark); }


/* ── Pricing tiers — services pages (boxed card grid) ─────── */
/* Two HTML conventions supported:
   • website-design page : .pricing__grid > .tier (with tier__label, tier__name, tier__from, tier__desc, tier__cta)
   • other service pages : .tiers / .tiers--single > .tier (with tier__eyebrow, tier__per, tier__sub)
*/

.pricing__grid,
.tiers {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}
@media (min-width: 880px) {
  .pricing__grid { grid-template-columns: repeat(2, 1fr); gap: 1.75rem; }
  .tiers         { grid-template-columns: repeat(2, 1fr); gap: 1.75rem; }
  .tiers--single { grid-template-columns: minmax(0, 620px); justify-content: center; }
}
@media (min-width: 1040px) {
  .tiers--3 { grid-template-columns: repeat(3, 1fr); }
}

.tier {
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: clamp(1.5rem, 2.5vw, 2.25rem) clamp(1.25rem, 2.5vw, 2.25rem);
  display: flex; flex-direction: column;
  position: relative;
  transition: border-color .35s var(--ease), background .4s var(--ease), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}

.tier--feature {
  background: var(--brand);
  border-color: var(--brand-2);
}
.tier--feature::before {
  content: ''; position: absolute; left: 0; top: 0; right: 0; height: 3px;
  background: var(--accent);
}


/* Eyebrow / label */
.tier__label,
.tier__eyebrow {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 1.5rem;
  display: block;
}
.tier__label--feature { color: var(--accent-on-dark); }
.tier--feature .tier__label,
.tier--feature .tier__eyebrow { color: var(--accent-on-dark); }

/* Tier name (website-design uses .tier__name) */
.tier__name {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.85rem, 3vw, 2.4rem);
  letter-spacing: -.025em; color: var(--ink);
  margin: 0 0 1.25rem; line-height: 1.05;
}
.tier--feature .tier__name { color: var(--bone); }

/* Price block */
.tier__price {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.4rem, 2.6vw, 1.95rem);
  letter-spacing: -.03em; color: var(--ink);
  line-height: 1; margin: 0 0 1.5rem;
  display: flex; align-items: baseline; flex-wrap: wrap; gap: .55rem;
}
.tier__price strong { font-weight: 500; }
.tier__from {
  font-family: var(--sans); font-size: .68rem; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--muted);
  margin-right: .25rem;
}
.tier__per {
  font-family: var(--sans); font-size: .82rem; font-weight: 400;
  color: var(--muted); letter-spacing: 0;
}
.tier--feature .tier__price,
.tier--feature .tier__price strong { color: var(--bone); }
.tier--feature .tier__from,
.tier--feature .tier__per { color: var(--muted-l); }

/* Description blurb (two synonyms) */
.tier__desc,
.tier__sub {
  font-family: var(--sans); font-size: .95rem;
  color: var(--muted); line-height: 1.75;
  margin: 0 0 2rem;
}
.tier--feature .tier__desc,
.tier--feature .tier__sub { color: var(--muted-l); }

/* Bullet list */
.tier__list {
  list-style: none; margin: 0 0 2.25rem; padding: 0;
  display: flex; flex-direction: column; gap: .85rem;
  flex: 1;
  border-top: 1px solid var(--rule);
  padding-top: 1.75rem;
}
.tier--feature .tier__list { border-top-color: var(--rule-l); }

.tier__list li {
  font-family: var(--sans); font-size: .92rem;
  color: var(--ink-soft); line-height: 1.55;
  padding-left: 1.4rem; position: relative;
}
.tier__list li::before {
  content: ''; position: absolute; left: 0; top: .65em;
  width: 8px; height: 1px; background: var(--accent);
}
.tier--feature .tier__list li { color: var(--muted-l); }
.tier--feature .tier__list li::before { background: var(--accent-warm); }

/* CTA button */
.tier__cta {
  display: inline-flex; align-items: center; justify-content: space-between;
  gap: .85rem;
  font-family: var(--sans); font-weight: 500; font-size: .72rem;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--ink); background: transparent;
  border: 1px solid var(--rule-mid);
  padding: .9rem 1.35rem;
  margin-top: auto;
  transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), gap .25s var(--ease-out);
}
.tier__cta span { transition: transform .3s var(--ease-out); }

.tier__cta--feature,
.tier--feature .tier__cta {
  color: var(--bone); border-color: var(--rule-l-mid);
}


/* ── Fact-strip (3-column outcomes block) ─────────────────── */
/* Used for "What changes" — For you / For visitors / For tomorrow */

.fact-strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: clamp(3rem, 5vw, 4rem);
  border-top: 1px solid var(--rule-l);
  border-bottom: 1px solid var(--rule-l);
}
@media (min-width: 880px) {
  .fact-strip { grid-template-columns: repeat(3, 1fr); }
}

.fact {
  padding: clamp(2rem, 3vw, 2.75rem) clamp(1.5rem, 2.5vw, 2.25rem);
  border-bottom: 1px solid var(--rule-l);
  position: relative;
}
.fact:last-child { border-bottom: 0; }
@media (min-width: 880px) {
  .fact { border-bottom: 0; border-right: 1px solid var(--rule-l); }
  .fact:last-child { border-right: 0; }
}

.fact__label {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--accent-on-dark);
  margin: 0 0 1.25rem;
}
.fact__title {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  letter-spacing: -.015em; line-height: 1.25;
  color: inherit;
  margin: 0 0 .85rem;
}
.fact__body {
  font-family: var(--sans); font-size: .9rem;
  color: var(--muted-l); line-height: 1.7;
  margin: 0;
}
/* When fact-strip lives on a light section, swap the muted color */
.page-section:not(.page-section--ink) .fact__body { color: var(--muted); }
.page-section:not(.page-section--ink) .fact-strip { border-color: var(--rule); }
.page-section:not(.page-section--ink) .fact { border-color: var(--rule); }


/* ════════════════════════════════════════════════════════════
   RECENT WORK GRID — services/website-design
   ════════════════════════════════════════════════════════════ */
.rw-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
}
@media (min-width: 720px)  { .rw-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .rw-grid { grid-template-columns: repeat(3, 1fr); } }

.rw-item {
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit;
  background: var(--bone);
  border: 1px solid var(--rule);
  transition: border-color .35s var(--ease), transform .5s var(--ease-out), box-shadow .45s var(--ease);
  position: relative; overflow: hidden;
}
.rw-item:hover {
  border-color: var(--accent);
  transform: translateY(-3px);
  box-shadow: 0 24px 48px -28px rgba(32,33,36,.35);
}
.rw-item:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

/* Featured first item — banner style on its own full-width row */
@media (min-width: 1080px) {
  .rw-item--feature { grid-column: 1 / -1; }
  .rw-item--feature .rw-item__shot { aspect-ratio: 24 / 9; }
  .rw-item--feature .rw-item__meta { padding: 1.85rem 2rem; }
  .rw-item--feature .rw-item__name { font-size: 1.1rem; }
}

.rw-item__shot {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--bone-2);
  border-bottom: 1px solid var(--rule);
}
.rw-item__shot img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: top center;
  transition: transform 1.4s var(--ease-out), filter .5s var(--ease);
  display: block;
}
.rw-item:hover .rw-item__shot img { transform: scale(1.04); }

.rw-item__visit {
  position: absolute;
  top: 1rem; right: 1rem;
  display: inline-flex; align-items: center; gap: .35rem;
  font-family: var(--sans);
  font-size: .68rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--bone);
  background: var(--ink);
  padding: .55rem .8rem;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .4s var(--ease), transform .4s var(--ease-out);
  pointer-events: none;
}
.rw-item__visit span { font-size: .9rem; letter-spacing: 0; }
.rw-item:hover .rw-item__visit,
.rw-item:focus-visible .rw-item__visit {
  opacity: 1;
  transform: translateY(0);
}

.rw-item__meta {
  display: flex; align-items: baseline; flex-wrap: wrap;
  gap: .35rem 1rem;
  padding: 1.5rem 1.65rem;
}
.rw-item__name {
  font-family: var(--serif); font-weight: 500;
  font-size: 1rem;
  color: var(--ink);
  letter-spacing: -.02em;
  flex: 1 0 100%;
}
.rw-item__cat {
  font-family: var(--sans);
  font-size: .72rem;
  color: var(--muted);
  letter-spacing: .04em;
}
.rw-item__year {
  font-family: var(--sans);
  font-size: .72rem;
  color: var(--muted-soft);
  letter-spacing: .08em;
  margin-left: auto;
}

.rw-foot {
  margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
  display: flex; align-items: center; gap: .75rem;
  font-family: var(--sans);
  font-size: .92rem;
  color: var(--muted);
  line-height: 1.65;
  padding-top: 1.5rem;
  border-top: 1px solid var(--rule);
}
.rw-foot a {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: var(--accent);
  text-underline-offset: 4px;
  text-decoration-thickness: 1.5px;
  transition: color .25s var(--ease);
}
.rw-foot a:hover { color: var(--accent); }


/* ════════════════════════════════════════════════════════════
   THANK-YOU PAGE — quiet, personal, editorial
   ════════════════════════════════════════════════════════════ */

/* Hero — slow, intimate, generous whitespace */
.ty-hero {
  position: relative;
  padding: clamp(4.5rem, 9vw, 7rem) 0 clamp(3.25rem, 7vw, 5.5rem);
  background: var(--bone);
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
  isolation: isolate;
}
.ty-hero__grain {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 220px 220px;
  opacity: .035;
}
/* Soft accent halo behind heading */
.ty-hero::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  top: -10%; left: 50%; transform: translateX(-50%);
  width: clamp(420px, 60vw, 820px);
  aspect-ratio: 1;
  background: radial-gradient(circle at 50% 35%, rgba(213,122,53,.08), rgba(213,122,53,0) 60%);
}

.ty-hero__eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--sans);
  font-size: .68rem; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: clamp(1.4rem, 3vw, 2.25rem);
  padding: .45rem .85rem;
  border: 1px solid var(--rule-mid);
  background: var(--paper);
}

.ty-hero__heading {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1.02;
  letter-spacing: -.025em;
  color: var(--ink);
  max-width: 16ch;
  margin: 0 0 clamp(1.75rem, 3.5vw, 2.75rem);
}
.ty-hero__heading em {
  font-style: italic;
  font-weight: 300;
  color: var(--accent-deep);
}
.ty-hero__period {
  color: var(--accent-deep);
  font-style: normal;
}

/* The "letter" body — feels like a personal note */
.ty-hero__letter {
  max-width: 56ch;
  border-left: 2px solid var(--accent);
  padding-left: clamp(1.5rem, 3vw, 2.25rem);
}
.ty-hero__lede {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.45;
  color: var(--ink);
  letter-spacing: -.015em;
  margin: 0 0 1.5rem;
}
.ty-hero__lede em { font-style: italic; color: var(--accent-deep); }

.ty-hero__body {
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 1.75;
  color: var(--ink-soft);
  margin: 0 0 1.75rem;
}

/* Sign-off block */
.ty-hero__sign {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 1rem;
  row-gap: .15rem;
  align-items: baseline;
  padding-top: 1.5rem;
  margin-top: .5rem;
  border-top: 1px solid var(--rule);
}
.ty-hero__sign-mark {
  grid-row: 1 / 3;
  font-family: var(--serif);
  font-weight: 300;
  font-size: 1.75rem;
  line-height: 1;
  color: var(--accent-deep);
  align-self: center;
}
.ty-hero__sign-names {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.1rem;
  letter-spacing: -.015em;
  color: var(--ink);
}
.ty-hero__sign-names em { font-style: italic; }
.ty-hero__sign-tag {
  font-family: var(--sans);
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Direct contact pair on the dark section */
.ty-direct {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--rule-l);
  margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
  border: 1px solid var(--rule-l);
}
@media (min-width: 720px) { .ty-direct { grid-template-columns: 1fr 1fr; } }

.ty-direct__item {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 1.25rem;
  row-gap: .35rem;
  align-items: center;
  padding: 1.4rem 1.65rem;
  background: var(--ink-2);
  text-decoration: none;
  color: var(--bone);
  transition: background .35s var(--ease), padding-left .35s var(--ease);
}
.ty-direct__item:hover { background: var(--ink-3); padding-left: 2.4rem; }
.ty-direct__item:focus-visible { outline: 2px solid var(--accent-warm); outline-offset: -4px; }

.ty-direct__label {
  grid-row: 1 / 3; align-self: center;
  font-family: var(--sans);
  font-size: .65rem; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--accent-on-dark);
}
.ty-direct__value {
  font-family: var(--serif); font-weight: 500;
  font-size: 1rem; letter-spacing: -.015em;
  color: var(--bone);
  min-width: 0;
  overflow-wrap: anywhere;
}
.ty-direct__meta {
  grid-column: 2 / 3;
  font-family: var(--sans);
  font-size: .82rem;
  color: var(--muted-l);
  line-height: 1.5;
  min-width: 0;
}
.ty-direct__arrow {
  grid-row: 1 / 3; align-self: center;
  font-family: var(--sans);
  font-size: 1.1rem;
  color: var(--accent-on-dark);
  transition: transform .35s var(--ease);
}
.ty-direct__item:hover .ty-direct__arrow { transform: translateX(4px); }

/* Stack the label above value on very narrow screens for better readability */
@media (max-width: 480px) {
  .ty-direct__item {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto;
    padding: 1.5rem 1.5rem;
  }
  .ty-direct__item:hover { padding-left: 1.85rem; }
  .ty-direct__label { grid-column: 1; grid-row: 1; align-self: start; }
  .ty-direct__value { grid-column: 1; grid-row: 2; }
  .ty-direct__meta  { grid-column: 1 / -1; grid-row: 3; }
  .ty-direct__arrow { grid-column: 2; grid-row: 1 / 3; }
}

/* Outro — quote + back link */
.ty-outro {
  padding: clamp(3rem, 6vw, 5rem) 0;
  background: var(--paper);
  border-top: 1px solid var(--rule);
  text-align: center;
}
.ty-outro__quote {
  font-family: var(--serif);
  font-weight: 300;
  font-style: italic;
  font-size: clamp(1.2rem, 2.5vw, 1.75rem);
  line-height: 1.35;
  color: var(--ink);
  letter-spacing: -.015em;
  max-width: 22ch;
  margin: 0 auto 1.5rem;
}
.ty-outro__attrib {
  font-family: var(--sans);
  font-size: .76rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 clamp(1.75rem, 3.5vw, 2.5rem);
}
.ty-outro__back .btn {
  display: inline-flex; align-items: center; gap: .55rem;
}


/* ── Deliverables (numbered roman-numeral list) ───────────── */
/* Kills default <ol> numbering — uses the .deliverables__num span instead */

.deliverables {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--rule);
}
@media (min-width: 880px) {
  .deliverables--2 { grid-template-columns: repeat(2, 1fr); column-gap: 3rem; }
}

.deliverables > li {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--rule);
  align-items: start;
}
@media (min-width: 880px) {
  .deliverables--2 > li:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
  .deliverables--2 > li:last-child { border-bottom: 0; }
}

.deliverables__num {
  font-family: var(--serif); font-weight: 300;
  font-size: 1rem;
  color: var(--accent-text);
  letter-spacing: .02em;
  line-height: 1.5;
  padding-top: .15rem;
}

.deliverables__title {
  font-family: var(--serif); font-weight: 500;
  font-size: 1rem;
  color: var(--ink);
  letter-spacing: -.01em; line-height: 1.3;
  margin: 0 0 .5rem;
}

.deliverables__body {
  font-family: var(--sans); font-size: .92rem;
  color: var(--muted); line-height: 1.7;
  margin: 0;
}


/* ── FAQ disclosure (native <details>/<summary> pattern) ──── */

.faq__list {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  border-top: 1px solid var(--rule);
}

.faq__item {
  border-bottom: 1px solid var(--rule);
}

/* Suppress default disclosure marker across browsers */
.faq__item > summary { list-style: none; cursor: pointer; }
.faq__item > summary::-webkit-details-marker { display: none; }
.faq__item > summary::marker { content: ''; }

.faq__item > summary {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 0;
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(.92rem, 1vw, 1.02rem);
  color: var(--ink);
  letter-spacing: -.01em; line-height: 1.4;
  transition: color .25s var(--ease);
}
.faq__item > summary > span:first-child { flex: 1; padding-right: 1rem; }
.faq__item > summary:hover { color: var(--accent); }

.faq__icon {
  flex-shrink: 0;
  width: 22px; height: 22px;
  position: relative;
  transition: transform .35s var(--ease-out);
}
.faq__icon::before,
.faq__icon::after {
  content: ''; position: absolute;
  background: currentColor;
  transition: transform .35s var(--ease-out), opacity .25s var(--ease);
}
.faq__icon::before { /* horizontal */
  left: 3px; right: 3px; top: 50%;
  height: 1px; transform: translateY(-50%);
}
.faq__icon::after { /* vertical */
  top: 3px; bottom: 3px; left: 50%;
  width: 1px; transform: translateX(-50%);
}
.faq__item[open] .faq__icon::after { transform: translateX(-50%) rotate(90deg); opacity: 0; }
.faq__item[open] > summary { color: var(--accent-deep); }

.faq__answer {
  padding: 0 0 1.5rem;
  max-width: 70ch;
  animation: faqFade .4s var(--ease-out);
}
.faq__answer p {
  font-family: var(--sans); font-size: .95rem;
  color: var(--muted); line-height: 1.85;
  margin: 0 0 .75rem;
}
.faq__answer p:last-child { margin-bottom: 0; }
.faq__answer strong { color: var(--ink); font-weight: 500; }

@keyframes faqFade {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}


/* ── Honesty / commitments section ────────────────────────── */

.honesty {
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: clamp(2rem, 4vw, 3rem) clamp(1.75rem, 3.5vw, 2.75rem);
  margin-top: clamp(2rem, 4vw, 3rem);
  position: relative;
}
.honesty__lead {
  font-family: var(--sans); font-size: .65rem; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 1.1rem;
}
.honesty__title {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  letter-spacing: -.02em; line-height: 1.2;
  color: var(--ink);
  margin: 0 0 1.25rem;
  max-width: 30ch;
}
.honesty__body {
  font-family: var(--sans); font-size: .92rem;
  color: var(--muted); line-height: 1.75;
  margin: 0 0 1.5rem;
  max-width: 60ch;
}
.honesty__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr; gap: 0;
  border-top: 1px solid var(--rule);
}
@media (min-width: 720px) {
  .honesty__list { grid-template-columns: repeat(2, 1fr); column-gap: 2.5rem; }
}
.honesty__list > li {
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--rule);
  font-family: var(--sans); font-size: .92rem;
  color: var(--ink-soft); line-height: 1.6;
}
.honesty__list > li > strong {
  color: var(--ink); font-weight: 500;
  margin-right: .35rem;
}
.honesty__mark {
  color: var(--accent); font-family: var(--serif); font-weight: 500;
  line-height: 1.6; padding-top: .05rem;
}
.honesty__close {
  font-family: var(--serif); font-weight: 500; font-style: italic;
  font-size: .95rem;
  color: var(--ink);
  margin: 1.5rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--rule);
}


/* ── Card num (top-corner letter on simple cards) ─────────── */
.card__num {
  font-family: var(--sans); font-size: .72rem; font-weight: 500;
  letter-spacing: .12em;
  color: var(--accent);
  display: block;
  margin: 0 0 1.25rem;
}

/* When .card has no .card__media inside (text-only services-page cards),
   give it internal padding so content isn't flush to the edge. */
.card:not(:has(.card__media)) {
  padding: clamp(1.75rem, 2.75vw, 2.25rem);
}


/* ── Sub-hero variants ────────────────────────────────────── */
.sub-hero__ctas {
  display: flex; flex-wrap: wrap; gap: .85rem;
  margin-top: 1.4rem;
}
.sub-hero__facts {
  list-style: none; margin: 1.25rem 0 0; padding: 0;
  display: flex; flex-direction: column; gap: .65rem;
}
.sub-hero__facts li {
  font-family: var(--sans); font-size: .88rem;
  color: var(--muted-l); line-height: 1.55;
  padding-left: 1.25rem; position: relative;
}
.sub-hero__facts li::before {
  content: ''; position: absolute; left: 0; top: .7em;
  width: 8px; height: 1px; background: var(--accent-warm);
}
.sub-hero__facts li strong {
  color: var(--paper); font-weight: 500; margin-right: .25rem;
}


/* ── Nav item with menu (caret affordance) ────────────────── */
.nav__item--has-menu { position: relative; }


/* ── Custom-scope footnote line under pricing ─────────────── */
.pricing__grid + p,
.tiers + p {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  padding-top: 1.5rem;
  border-top: 1px solid var(--rule);
}


/* ── Hide eyebrows site-wide ───────────────────────────────── */
.eyebrow, .eyebrow--light, .s-head__eyebrow, .s-head__overline, .tier__eyebrow { display: none !important; }

.prc-section__caption { display: none !important; }

/* ── Hide remaining eyebrow-style elements site-wide ────────── */
.ty-hero__eyebrow,
.tier-col__tag,
.add-service__tag,
.hero__meta,
.capability-band__num,
.two-col__label,
.pricing-blurb__label,
.process-compact__num { display: none !important; }

/* ── Hide ALL remaining eyebrow-style labels site-wide ──────── */
.two-col__label,
.process-compact__when,
.fact__label,
.card__num,
.capability-band__num,
.add-service__tag,
.tier-col__tag,
.hero__meta,
.ty-hero__eyebrow,
.pricing-blurb__label,
.see-also__meta,
.industries-strip__label { display: none !important; }

/* ── Hero layout ──────────────────────────────────────────── */
.hero__body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1;
  padding: clamp(0.75rem, 2vw, 1.5rem) 0 0;
}
.hero__left {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.hero__left .hero__logo { width: 48px; height: 48px; }

/* Door swings open */
.door-panel {
  transform-origin: 112px 218px;
  animation: doorOpen 2s cubic-bezier(0.4, 0, 0.2, 1) 0.5s both;
}
@keyframes doorOpen {
  0%   { transform: perspective(700px) rotateY(0deg); }
  100% { transform: perspective(700px) rotateY(-60deg); }
}

/* Sparkles */
.spark { opacity: 0; animation: twinkle 2.4s ease-in-out infinite; }
.spark-1 { animation-delay: 2.0s; }
.spark-2 { animation-delay: 2.5s; }
.spark-3 { animation-delay: 3.0s; }
.spark-4 { animation-delay: 3.5s; }
.spark-5 { animation-delay: 1.8s; }
.spark-6 { animation-delay: 4.0s; }
.spark-7 { animation-delay: 2.8s; }
.spark-8 { animation-delay: 3.3s; }
@keyframes twinkle {
  0%,100% { opacity: 0; transform: scale(0.4); }
  50%     { opacity: 1; transform: scale(1.3); }
}

/* ── Comprehensive mobile optimisation ──────────────────────── */
@media (max-width: 480px) {

  /* Hero */
  .hero__headline { font-size: 2.2rem !important; }
  .hero__line--accent em { font-size: 2.2rem; }
  .hero__sub { font-size: .9rem; line-height: 1.6; }
  .hero__body { gap: 1rem; }

  /* Capability band */
  .capability-band__title { font-size: 1.8rem !important; }
  .capability-band__sub { font-size: 1.4rem !important; }
  .capability-band__cell { padding: 1.25rem !important; }
  .capability-band__name { font-size: .95rem; }
  .capability-band__desc { font-size: .82rem; }

  /* Intro quote */
  .intro__quote { font-size: 1.6rem !important; }

  /* Pricing cards */
  .prc-grid { grid-template-columns: 1fr !important; gap: .6rem; }
  .prc-grid--3 { grid-template-columns: 1fr !important; }
  .prc-card { padding: .9rem !important; }
  .prc-card__price { font-size: 1.1rem; }
  .prc-card__name { font-size: .88rem; }

  /* Who grid (four steps) */
  .who__grid { grid-template-columns: 1fr !important; }
  .who__card { padding: 1.25rem !important; }

  /* Sections heading */
  .s-head__title { font-size: 1.55rem !important; }

  /* Pricing blurb */
  .pricing-blurb__inner { grid-template-columns: 1fr !important; }
  .pricing-blurb__head { margin-bottom: 1rem; }

  /* Section head aside */
  .section-head--split { flex-direction: column !important; gap: 1rem; }
  .section-head__aside { max-width: 100% !important; }

  /* Container padding */
  .container { padding: 0 1rem; }
  :root { --pad: 1rem; }

  /* Footer */
  .foot__head { font-size: 1.5rem !important; }
  .foot__grid { grid-template-columns: 1fr 1fr !important; gap: 1.5rem; }

  /* Process close */
  .process-close { text-align: left; }
  .process-close__lead { font-size: 1.3rem; }

  /* Work grid */
  .work__grid { grid-template-columns: 1fr !important; }

  /* Intro grid */
  .intro__grid { max-width: 100% !important; }

  /* CTA section */
  .cta__head { font-size: 1.75rem !important; }
  .hero__ctas { flex-direction: column; gap: .75rem; }
  .hero__ctas .btn { width: 100%; justify-content: center; }
}

/* Capability band sub-text color splits */
.cap-sub--white { color: #fff; }

/* ═══ AI Teaser Band ═══ */
.ai-teaser {
  background: var(--ink);
  border-top: 3px solid var(--accent-warm);
  padding: clamp(2rem, 4vw, 3rem) 0;
}
.ai-teaser__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.ai-teaser__eyebrow {
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent-warm);
  margin: 0 0 .5rem;
}
.ai-teaser__heading {
  font-family: var(--serif);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  font-weight: 400;
  color: var(--paper);
  margin: 0;
  line-height: 1.3;
  max-width: 52ch;
}
.ai-teaser__cta {
  flex-shrink: 0;
  color: var(--bone);
  border-color: var(--rule-l-mid);
}
.ai-teaser__cta:hover {
  background: var(--accent-warm);
  color: var(--ink);
  border-color: var(--accent-warm);
}
@media (max-width: 640px) {
  .ai-teaser__inner { flex-direction: column; align-items: flex-start; }
}

/* ═══ capability-band "services" em = orange ═══ */
.capability-band__title em {
  color: var(--accent-warm);
  font-style: normal;
}

/* ═══ Who We Serve transition band ═══ */
.who-serves-band {
  background: var(--bone, #F4EFDE);
  padding: clamp(1.5rem, 3vw, 2.25rem) 0;
  border-top: 3px solid var(--accent-warm);
}
.who-serves-band__text {
  font-family: var(--serif);
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  font-weight: 300;
  font-style: italic;
  color: var(--ink);
  margin: 0;
  text-align: center;
  max-width: 65ch;
  margin-inline: auto;
}

/* ═══ About page prose block ═══ */
.prose-block { max-width: 68ch; }
.prose-block .prose { font-family: var(--sans); font-size: 1rem; line-height: 1.75; color: var(--ink); margin: 0 0 1.25rem; }
.prose-block .prose--lead { font-size: 1.1rem; font-weight: 400; }
.prose-block .prose a { color: var(--accent-deep); text-decoration: underline; }

/* ═══ Pricing Page ═══ */
.pricing-page__card-cta {
  display: inline-flex; align-items: center; gap: .4em;
  margin-top: 1.25rem; font-size: .85rem;
}
.pricing-page__care-grid { align-items: start; }
.pricing-page__care-card .prc-card__details dt,
.pricing-page__care-card .prc-card__details dd { font-size: .8rem; }

/* Promise section */
.pricing-page__promise {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 6vw, 6rem);
  align-items: center;
}
@media (max-width: 800px) {
  .pricing-page__promise { grid-template-columns: 1fr; }
}
.pricing-page__promise-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem 1.5rem;
}
.pricing-page__stat {
  display: flex; flex-direction: column; gap: .35rem;
  padding: 1.25rem 1.5rem;
  background: var(--ink);
  border-left: 3px solid var(--accent-warm);
}
.pricing-page__stat-num {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 300;
  color: var(--paper);
  line-height: 1;
}
.pricing-page__stat-label {
  font-family: var(--sans);
  font-size: .78rem;
  color: var(--muted-l);
  line-height: 1.4;
}
.card__link-btn {
  display: inline-block;
  margin-top: 1rem;
  font-family: var(--sans);
  font-size: .82rem;
  color: var(--accent-warm);
  letter-spacing: .03em;
  text-decoration: none;
  transition: color .2s;
}
.card__link-btn:hover { color: var(--paper); }

/* ═══ Work grid — regular (non-wide) card visuals ═══ */
.work__item:not(.work__item--wide) .work__visual {
  aspect-ratio: 4/3;
  overflow: hidden;
}
.work__item:not(.work__item--wide) .work__visual svg {
  width: 100%; height: 100%; display: block;
}

/* ═══ Pricing page — care plan cards on light background ═══ */
.prc-card.pricing-page__care-card,
.page-section .prc-card.pricing-page__care-card {
  background: rgba(255,255,255,.04);
  border-color: var(--rule-l);
}
.prc-card--featured.pricing-page__care-card,
.page-section .prc-card--featured.pricing-page__care-card {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px var(--accent);
  background: rgba(255,255,255,.04);
}
.pricing-page__care-card .prc-card__name { color: #fff; }
.pricing-page__care-card .prc-card__price { color: var(--accent-warm); }
.pricing-page__care-card .prc-card__price span { color: var(--muted-l); }
.pricing-page__care-card .prc-card__details {
  border-top-color: rgba(255,255,255,.16);
}
.pricing-page__care-card .prc-card__details dt { color: var(--muted-l-soft); }
.pricing-page__care-card .prc-card__details dd { color: #fff; }
.pricing-page__care-card .prc-card__details dd em { color: var(--accent-on-dark) !important; }
.pricing-page__care-card .prc-card__badge {
  color: var(--accent-on-dark); background: rgba(213,122,53,.25);
}

/* ═══ Care plan cards — equal height ═══ */
.pricing-page__care-grid {
  align-items: stretch !important;
}
.pricing-page__care-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.pricing-page__care-details {
  flex: 1;
}
.pricing-page__care-card .pricing-page__card-cta {
  margin-top: auto;
  padding-top: 1.25rem;
}

/* ═══ Website build cards — equal height, CTA pinned to bottom ═══ */
#builds .prc-grid {
  align-items: stretch;
}
#builds .prc-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
#builds .prc-card__details {
  flex: 1;
}
#builds .pricing-page__card-cta {
  margin-top: auto;
  padding-top: 1.25rem;
}

/* ═══ Homepage work grid — 3 col, 1 row ═══ */
.hp-work-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}
@media (max-width: 700px) {
  .hp-work-grid { grid-template-columns: 1fr !important; }
}

/* ═══ prose-block on dark (--ink) sections — force light text ═══ */
.page-section--ink .prose-block .prose,
.page-section--ink .prose-block .prose--lead { color: var(--muted-l); }
.page-section--ink .prose-block .prose strong { color: var(--bone); }
.page-section--ink .prose-block .prose a { color: var(--accent-on-dark); }

/* ═══ Care plan card CTAs — no box, white bold text on blue cards ═══ */
.pricing-page__care-card .pricing-page__card-cta.btn--outline,
.pricing-page__care-card .pricing-page__card-cta.btn--outline-light {
  background: transparent;
  border-color: transparent;
  color: #fff;
  font-weight: 700;
  padding-left: 0;
  padding-right: 0;
}
.pricing-page__care-card .pricing-page__card-cta.btn--outline:hover,
.pricing-page__care-card .pricing-page__card-cta.btn--outline-light:hover {
  background: transparent;
  border-color: transparent;
  color: var(--accent-warm);
}

/* ═══ Tier cards: hover = shadow lift ONLY. No background or text color changes ═══ */
.tier, .tier--feature, .tier-col, .tier-col--feature {
  transition: box-shadow .3s ease, transform .3s ease;
}
.tier:hover, .tier--feature:hover, .tier-col:hover, .tier-col--feature:hover {
  box-shadow: 0 12px 32px rgba(0,0,0,.22);
  transform: translateY(-4px);
}
.tier__cta:hover,
.tier-col__cta:hover {
  text-decoration: underline;
}

/* ═══ H2 headings: dark ink on light backgrounds (dark sections keep light text) ═══ */
.page-section:not(.page-section--ink) .s-head__title { color: var(--ink); }
.end-cta__head { color: var(--ink); }
.faq-topic__title { color: var(--ink); }
.faq-topic__title em { color: var(--accent-deep); font-style: normal; font-weight: 300; }
.intro:not(.band-dark) .intro__quote { color: var(--ink); }
