/* ---------- Self-hosted fonts (latin subset; variable files cover every weight used) ---------- */
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(assets/fonts/fraunces-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 400 700; font-display: swap; src: url(assets/fonts/fraunces-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter Tight'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(assets/fonts/inter-tight-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ==========================================================================
   Digital Doorway Marketing — "The Open Door"
   Cream paper, ink, terracotta, a hand-drawn line or two.
   ========================================================================== */

:root {
  --bg: #F6EFE3; --bg-2: #EFE4D2; --surface: #FDFAF3; --surface-2: #FFFDF8;
  --ink: #1F1A14; --muted: #6B5D4D; --rule: #D9CBB3; --rule-strong: #9C8870;
  --accent: #1553A8; --accent-deep: #0E3F86; --forest: #0D2F6E;
  --mustard: #14B4C4; --butter: #D3F1F6; --walnut: #10213F;
  --error: #B23A2B;

  --radius-sm: 8px; --radius: 16px; --radius-lg: 24px; --arch: 999px 999px 16px 16px;
  --shadow-sm: 0 1px 2px rgba(31,26,20,.06), 0 2px 8px rgba(31,26,20,.05);
  --shadow: 0 8px 24px rgba(31,26,20,.10), 0 2px 6px rgba(31,26,20,.06);
  --shadow-lift: 0 18px 40px rgba(31,26,20,.14), 0 4px 10px rgba(31,26,20,.06);

  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --ease-pop: cubic-bezier(.34,1.56,.64,1);

  --grad-paper: radial-gradient(120% 80% at 50% 0%, #FBF6EC 0%, #F6EFE3 60%, #F6EFE3 100%);
  --grad-door-light: radial-gradient(60% 55% at 50% 45%, rgba(20,180,196,.55) 0%, rgba(20,180,196,.18) 45%, rgba(20,180,196,0) 100%);
  --grad-terracotta: linear-gradient(135deg, #1B5CB5 0%, #0E3F86 55%, #0B3574 100%);
  --grad-walnut: linear-gradient(180deg, #172B4F 0%, #10213F 100%);

  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans: 'Inter Tight', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --container: 1200px;
  --pad: clamp(1.25rem, 5vw, 4rem);
  --section: clamp(5rem, 10vw, 9rem);
  --nav-h: 94px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font: 400 1.0625rem/1.6 var(--sans);
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
@media (min-width: 768px) { body { font-size: 1.125rem; } }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: var(--accent-deep); text-decoration: none; }
button { font: inherit; color: inherit; }
::selection { background: var(--butter); color: var(--ink); }

/* Paper grain */
body::before {
  content: "";
  position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Type ---------- */
h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 600;
  color: var(--ink);
  text-wrap: balance;
}
h1 { font-size: clamp(2.6rem, 5.6vw, 4.75rem); line-height: 1.02; letter-spacing: -.025em; font-variation-settings: "opsz" 144, "SOFT" 60; }
h2 { font-size: clamp(2rem, 3.8vw, 3.25rem); line-height: 1.08; letter-spacing: -.02em; font-variation-settings: "opsz" 96, "SOFT" 40; }
h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); line-height: 1.2; letter-spacing: -.01em; font-variation-settings: "opsz" 48, "SOFT" 30; }
h4 { font-size: 1.25rem; font-weight: 600; line-height: 1.25; }
p { max-width: 62ch; }
p, .lead, .section-intro, .hero-trust, .cta-helper, .stat-claim, .faq-body p { text-wrap: pretty; }

.eyebrow {
  font: 600 .8125rem/1.5 var(--sans);
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--forest);
  margin-bottom: .9rem;
}
.lead { font-size: clamp(1.125rem, 1.5vw, 1.375rem); line-height: 1.5; color: var(--muted); }
.small, .caption { font-size: .9375rem; font-weight: 500; line-height: 1.45; color: var(--muted); }

.link-hand {
  color: var(--accent-deep);
  font-weight: 500;
  background: linear-gradient(var(--mustard), var(--mustard)) no-repeat left 100% / 0% 2px;
  transition: background-size .25s var(--ease-out), color .2s;
  padding-bottom: 2px;
}
.link-hand:hover, .link-hand:focus-visible { background-size: 100% 2px; color: var(--ink); }

:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; border-radius: 4px; }
.price-panel :focus-visible, .footer :focus-visible, .skip-link:focus-visible, .sd-btn.is-on:focus-visible { outline-color: var(--mustard); }
[tabindex="-1"]:focus, [tabindex="-1"]:focus-visible { outline: none; }

.skip-link {
  position: absolute; top: -100px; left: 1rem; z-index: 100;
  background: var(--ink); color: var(--bg); padding: .75rem 1rem; border-radius: 8px;
  font-weight: 600;
}
.skip-link:focus { top: 1rem; }

/* ---------- Layout ---------- */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--pad); }
.section { padding-block: var(--section); position: relative; }
.section-linen { background: var(--bg-2); }
section[id], .band[id] { scroll-margin-top: 80px; }

.section-head { max-width: 760px; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.section-head h2 { margin-bottom: 1.1rem; }
.section-intro { color: var(--muted); font-size: clamp(1.0625rem, 1.3vw, 1.25rem); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; gap: .6rem; align-items: center; justify-content: center;
  padding: .95rem 1.5rem; min-height: 44px;
  border-radius: 999px; border: 2px solid transparent;
  font: 600 1rem/1 var(--sans); letter-spacing: .01em;
  cursor: pointer; white-space: nowrap;
  transition: transform .2s var(--ease-out), box-shadow .2s, background .2s, border-color .2s, color .2s;
}
.btn-lg { padding: 1.15rem 1.9rem; font-size: 1.0625rem; }
.btn-primary { background: var(--grad-terracotta); color: #F6EFE3; box-shadow: var(--shadow-sm); }
.btn-primary:hover { box-shadow: 4px 4px 0 var(--mustard), var(--shadow-sm); transform: translate(-1px, -1px); color: #FFFDF8; }
.btn-primary:active { transform: translate(2px, 2px); box-shadow: none; }
.btn-ghost { background: transparent; border-color: var(--forest); color: var(--forest); }
.btn-ghost:hover { background: rgba(46,91,62,.08); }
.btn-ghost:active { transform: translate(1px, 1px); }
.btn-dark { background: var(--bg); color: var(--ink); }
.btn-dark:hover { background: var(--butter); }
.btn-arrow { flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s var(--ease-out); }
.btn:hover .btn-arrow { transform: translateX(4px); }
.btn:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.price-panel .btn:focus-visible { outline-color: var(--mustard); }

/* ---------- Cards ---------- */
.card {
  background: var(--surface);
  border: 1.5px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  box-shadow: var(--shadow-sm);
  transition: border-color .25s, background .25s, box-shadow .25s, transform .25s var(--ease-out);
}
@media (hover: hover) {
  .card:hover { border-color: var(--accent); background: var(--surface-2); box-shadow: var(--shadow); transform: translateY(-3px); }
}

/* ---------- Nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: transparent;
  transition: background .3s var(--ease-out), border-color .3s, box-shadow .3s, transform .35s var(--ease-out);
  border-bottom: 1px solid transparent;
}
@media (max-width: 1023px) { .nav.is-hidden { transform: translateY(-100%); } }
.nav-inner {
  max-width: var(--container); margin-inline: auto; padding-inline: var(--pad);
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding-block: 24px; position: relative; z-index: 45;
  transition: padding .3s var(--ease-out);
}
.nav.is-scrolled { background: rgba(253,250,243,.88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom-color: var(--rule); }
.nav.is-scrolled .nav-inner { padding-block: 12px; }

.logo { display: inline-flex; align-items: center; gap: .6rem; color: var(--ink); min-height: 44px; }
.logo-mark { width: auto; height: 40px; flex: none; display: block; }
.logo-word { font: 600 1.375rem/1 var(--serif); letter-spacing: -.01em; font-variation-settings: "opsz" 48, "SOFT" 40; white-space: nowrap; }
.logo-leaf { transform-origin: 8px 18px; transition: transform .35s var(--ease-out); }
.nav.is-scrolled .logo-leaf { transform: scaleX(.82) skewY(-7deg); }

.nav-links { display: none; gap: .1rem; }
.nav-links a {
  position: relative; display: inline-flex; align-items: center; min-height: 44px;
  padding: 0 .7rem; color: var(--ink); font: 500 .9375rem/1 var(--sans); white-space: nowrap;
  border-radius: 8px; transition: color .2s;
}
.nav-links a:hover { color: var(--accent); }
.nav-links a::after {
  content: ""; position: absolute; left: 50%; bottom: 6px; width: 5px; height: 5px; border-radius: 50%;
  background: var(--mustard); transform: translateX(-50%) scale(0); transition: transform .25s var(--ease-pop);
}
.nav-links a.is-active { color: var(--forest); }
.nav-links a.is-active::after { transform: translateX(-50%) scale(1); }

.nav-actions { display: flex; align-items: center; gap: 1rem; }
.nav-phone { display: none; color: var(--muted); font-weight: 500; font-size: .9375rem; min-height: 44px; align-items: center; white-space: nowrap; }
.btn-nav { display: none; padding: .8rem 1.25rem; }

.hamburger {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 12px; border: 1.5px solid var(--rule); background: var(--surface);
  cursor: pointer; padding: 0;
}
.hamburger-box { position: relative; width: 20px; height: 14px; display: block; }
.hamburger-box span {
  position: absolute; left: 0; width: 100%; height: 2px; background: var(--ink); border-radius: 2px;
  transition: transform .3s var(--ease-out), opacity .2s;
}
.hamburger-box span:nth-child(1) { top: 0; }
.hamburger-box span:nth-child(2) { top: 6px; }
.hamburger-box span:nth-child(3) { top: 12px; }
.hamburger[aria-expanded="true"] .hamburger-box span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.hamburger[aria-expanded="true"] .hamburger-box span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger[aria-expanded="true"] .hamburger-box span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.mobile-menu {
  position: fixed; inset: 0; top: 0; z-index: 40;
  background: var(--bg);
  padding: calc(var(--nav-h) + 1rem) var(--pad) 2rem;
  display: flex; flex-direction: column; justify-content: space-between;
  overflow-y: auto;
}
.mobile-menu[hidden] { display: none; }
.mobile-links { display: flex; flex-direction: column; }
.mobile-links a, .mobile-menu-foot {
  opacity: 0; transform: translateY(12px);
  transition: opacity .4s var(--ease-out), transform .4s var(--ease-out);
  transition-delay: calc(var(--i) * 60ms);
}
.mobile-menu.is-open .mobile-links a, .mobile-menu.is-open .mobile-menu-foot { opacity: 1; transform: none; }
.mobile-links a {
  display: block; padding: .9rem 0; border-bottom: 1px solid var(--rule);
  font: 600 1.75rem/1.2 var(--serif); color: var(--ink); letter-spacing: -.01em;
  font-variation-settings: "opsz" 48, "SOFT" 40;
}
.mobile-links a:hover { color: var(--accent); }
.mobile-menu-foot { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; padding-top: 2rem; }
.mobile-phone { color: var(--muted); font-weight: 500; padding: .5rem 0; }
/* Staff sign-in for the team workspace: quiet, never competing with "Get your site". */
.nav-team { display: none; color: var(--muted); font-weight: 500; font-size: .9375rem; min-height: 44px; align-items: center; white-space: nowrap; }
@media (min-width: 1200px) { .nav-team { display: inline-flex; } }
.footer-team { margin-left: auto; color: rgba(246,239,227,.75); text-decoration: underline; text-underline-offset: 3px; min-height: 44px; display: inline-flex; align-items: center; }
.footer-team:hover, .footer-team:focus-visible { color: #F6EFE3; }
body.menu-open { overflow: hidden; }
@media (max-height: 720px) {
  .mobile-menu { padding-top: calc(var(--nav-h) + .25rem); }
  .mobile-links a { padding: .6rem 0; font-size: 1.5rem; }
  .mobile-menu-foot { padding-top: 1.25rem; }
}

@media (min-width: 1024px) {
  .nav-links { display: flex; }
  .btn-nav { display: inline-flex; }
  .hamburger { display: none; }
}
@media (min-width: 1024px) and (max-width: 1439px) {
  .nav-links a { padding: 0 .4rem; font-size: .85rem; }
  .nav-inner { gap: .75rem; }
  .logo-word { font-size: 1.2rem; }
}
@media (min-width: 1024px) {
  .nav-links a[href="#showcase"] { display: none; }
  .logo-word { font-size: 1.25rem; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .btn-nav { display: inline-flex; }
}

/* ---------- Hero ---------- */
.hero {
  background: var(--grad-paper);
  padding-bottom: clamp(4rem, 8vw, 7rem);
  margin-top: calc(-1 * var(--nav-h));
  padding-top: calc(var(--nav-h) + clamp(3rem, 8vw, 6rem));
  overflow: hidden;
}
.hero-grid { display: grid; gap: clamp(2.5rem, 6vw, 4rem); align-items: center; }
.hero-grid { justify-items: center; text-align: center; }
.hero-copy { max-width: 880px; }
.hero-eyebrow, .hero-trust, .hero-ctas { justify-content: center; }
.hero-title, .hero-lead { margin-inline: auto; }
.hero-eyebrow span:first-child::before, .hero-trust span:first-child::before { display: none; }
@media (max-width: 639px) { .hero-eyebrow, .hero-trust { flex-direction: column; row-gap: .3em; } .hero-eyebrow span::before, .hero-trust span::before { display: none; } }

.hero-eyebrow { animation: fadeUp .5s var(--ease-out) both; max-width: none; margin-inline: auto; }
/* items never break internally; the middot lives in the gap and is clipped away when an item starts a line */
.hero-eyebrow, .hero-trust { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 1.2em; row-gap: .15em; overflow-x: clip; }
.hero-eyebrow span, .hero-trust span { white-space: nowrap; position: relative; }
.hero-eyebrow span::before, .hero-trust span::before { content: "\00B7"; position: absolute; left: -.6em; transform: translateX(-50%); opacity: .6; }
.hero-title { margin-bottom: 1.5rem; }
.hero-title .line { max-width: 14ch; margin-inline: auto; }
.hero-title .line { display: block; animation: riseIn .7s var(--ease-out) both; }
.hero-title .line:nth-child(2) { animation-delay: 120ms; }
.hero-title .line:nth-child(3) { animation-delay: 200ms; }
.hero-title .line:nth-child(4) { animation-delay: 280ms; }

.hl-word { position: relative; display: inline-block; font-style: italic; font-weight: 400; z-index: 0; padding-inline: .04em; }
.hl-text { position: relative; z-index: 1; }
.hl-word::before {
  content: ""; position: absolute; inset: .12em -.12em .06em; z-index: 0;
  background: var(--butter); border-radius: 6px;
  transform: skew(-4deg) rotate(-1deg) scaleX(0); transform-origin: left center;
  animation: hlIn .45s var(--ease-out) 400ms both;
}
.hl-underline {
  position: absolute; left: -.05em; right: -.05em; bottom: -.16em; height: .22em; width: auto; z-index: 1;
  overflow: visible;
}
.hl-underline path { fill: none; stroke: var(--mustard); stroke-width: 5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw .6s var(--ease-out) 450ms both; }

.hero-lead { margin-bottom: 2rem; max-width: 52ch; animation: fadeUp .5s var(--ease-out) 600ms both; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: .85rem; animation: fadeUp .5s var(--ease-out) 650ms both; }
.hero-trust { margin-top: 1.4rem; font-size: .9375rem; font-weight: 500; color: var(--muted); animation: fadeUp .5s var(--ease-out) 720ms both; }

.hand path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw .9s var(--ease-out) 900ms both; }
.hand.sign path { animation-delay: 1000ms; }
.hand.sparkles path { animation-delay: 1250ms; }
.hand.pot path { animation-delay: 950ms; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes riseIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes hlIn { to { transform: skew(-4deg) rotate(-1deg) scaleX(1); } }
@keyframes draw { to { stroke-dashoffset: 0; } }

/* ---------- Threshold divider ---------- */
.threshold { height: 24px; overflow: hidden; }
.threshold svg { width: 100%; height: 24px; overflow: visible; }
.th-line { stroke-dasharray: 1; transition: stroke-dashoffset .9s var(--ease-out); }
.js .th-line { stroke-dashoffset: 1; }
.th-bump { transition: opacity .2s var(--ease-out) .9s; }
.js .th-bump { opacity: 0; }
.threshold.is-drawn .th-line { stroke-dashoffset: 0; }
.threshold.is-drawn .th-bump { opacity: 1; }

/* ---------- Scroll reveal ---------- */
.js [data-reveal]:not(.showcase) { opacity: 0; transform: translateY(18px); transition: opacity .65s var(--ease-out), transform .65s var(--ease-out); transition-delay: calc(var(--i, 0) * 70ms); }
.js [data-reveal].is-in { opacity: 1; transform: none; }

/* ---------- Why ---------- */
.why-grid { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: start; }
@media (min-width: 900px) { .why-grid { grid-template-columns: 1.1fr 1fr; } .stats, .pull-quote { grid-column: 1 / -1; } }
.why-copy h2 { margin-bottom: 1.25rem; }
.why-copy p { margin-bottom: 1.75rem; color: var(--muted); }
.stats { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(.9rem, 2vw, 1.25rem); }
@media (min-width: 900px) { .stats { grid-template-columns: repeat(4, 1fr); margin-top: clamp(.5rem, 2vw, 1.5rem); } .stats .stat-figure { font-size: clamp(2rem, 2.9vw, 3rem); } }
.stat { padding: clamp(1.25rem, 2.5vw, 1.9rem); }
.stat-figure {
  position: relative; display: inline-block;
  font: 600 clamp(2.25rem, 4.2vw, 3.6rem)/1 var(--serif); letter-spacing: -.02em; color: var(--ink);
  font-variation-settings: "opsz" 144, "SOFT" 60;
  padding-bottom: .55rem; margin-bottom: .6rem;
}
.stat-underline { position: absolute; left: 0; bottom: 0; width: 100%; height: 10px; fill: none; stroke: var(--mustard); stroke-width: 4; stroke-linecap: round; }
.stat-claim { font-size: 1rem; line-height: 1.45; color: var(--muted); }
.pull-quote {
  grid-column: 1 / -1; margin-top: clamp(1rem, 3vw, 2rem); width: fit-content; max-width: 100%;
  padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 4vw, 3rem);
  border-left: 4px solid var(--mustard); background: var(--surface); border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
}
.pull-quote p { font: italic 400 clamp(1.375rem, 2.4vw, 1.9rem)/1.3 var(--serif); font-variation-settings: "opsz" 96, "SOFT" 40; max-width: 30ch; color: var(--ink); letter-spacing: -.01em; }
.pull-quote-by { margin-top: .9rem; font: 600 .8125rem/1.5 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.pull-quote-by::before { content: "\2014\00a0"; color: var(--mustard); }

/* ---------- Search demo (with / without a site) ---------- */
.search-demo { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.sd-title { font: 600 .8125rem/1.5 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); text-align: center; }
.sd-toggle { display: inline-flex; padding: 4px; border: 1.5px solid var(--ink); border-radius: 999px; background: var(--surface); gap: 2px; }
.sd-btn {
  border: 0; background: transparent; color: var(--ink); cursor: pointer;
  padding: .55rem 1rem; min-height: 40px; border-radius: 999px;
  font: 600 .9375rem/1 var(--sans); white-space: nowrap;
  transition: background .25s var(--ease-out), color .2s;
}
.sd-btn:hover { background: var(--butter); }
.sd-btn.is-on { background: var(--ink); color: var(--bg); }
.sd-phone {
  width: min(100%, 320px); border: 3px solid var(--ink); border-radius: 34px; background: var(--ink);
  padding: 10px; box-shadow: 8px 8px 0 var(--rule), var(--shadow);
  transform: rotate(-1.2deg); transition: transform .35s var(--ease-out);
}
.search-demo:hover .sd-phone { transform: rotate(0deg); }
.sd-screen { background: #fff; border-radius: 24px; padding: 14px 14px 16px; color: #1F1A14; font-family: var(--sans); overflow: hidden; }
.sd-search { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px; border-radius: 999px; background: #F1F3F4; font-size: 14px; font-weight: 500; color: #202124; margin-bottom: 12px; }
.sd-search svg { width: 16px; height: 16px; fill: none; stroke: #5F6368; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.sd-results { display: grid; }
.sd-result { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 10px; transition: opacity .35s var(--ease-out), transform .35s var(--ease-out); }
.js .search-demo:not(.is-with) .sd-with, .js .search-demo.is-with .sd-without { opacity: 0; visibility: hidden; transform: translateY(6px); pointer-events: none; }
html:not(.js) .sd-toggle, html:not(.js) .sd-without { display: none; }
.sd-card { border: 1px solid #E3E6E8; border-radius: 12px; padding: 10px 12px 12px; background: #fff; transition: border-color .3s, box-shadow .3s; }
.sd-card.is-win { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(46,91,62,.12); }
.sd-card.sd-dim { opacity: .55; }
.sd-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 3px; }
.sd-name { font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.sd-tag { font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 999px; background: #F1F3F4; color: #5F6368; white-space: nowrap; }
.sd-tag.sd-open { background: #E6F4EA; color: #1E7B34; }
.sd-meta { font-size: 12.5px; line-height: 1.35; color: #5F6368; max-width: none; }
.sd-meta.sd-dim { color: #9AA0A6; }
.sd-meta.sd-url { color: #1E7B34; }
.sd-actions { display: flex; gap: 6px; margin-top: 9px; }
.sd-actions span { font-size: 12px; font-weight: 600; padding: 6px 10px; border-radius: 999px; border: 1px solid #DADCE0; color: #1A73E8; }
.sd-actions span.on { background: #1A73E8; color: #fff; border-color: #1A73E8; }
.sd-verdict { margin-top: 2px; font: italic 400 1.0625rem/1.3 var(--serif); color: var(--muted); text-align: right; max-width: none; }
.sd-verdict.is-win { color: var(--forest); }
.sd-caption { font-size: .9375rem; line-height: 1.5; color: var(--muted); text-align: center; max-width: 34ch; }
.sd-cap-with { display: none; }
.search-demo.is-with .sd-cap-with { display: inline; }
.search-demo.is-with .sd-cap-without { display: none; }
html:not(.js) .sd-cap-without { display: none; }
html:not(.js) .sd-cap-with { display: inline; }

/* ---------- Included ---------- */
.services { display: grid; gap: clamp(.9rem, 2vw, 1.5rem); }
@media (min-width: 640px) { .services { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .services { grid-template-columns: repeat(3, 1fr); } }
.service { display: flex; flex-direction: column; gap: .75rem; }
.service-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--butter); display: grid; place-items: center; margin-bottom: .5rem; }
.service-icon svg { width: 30px; height: 30px; fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.service h3 { font-size: clamp(1.25rem, 1.6vw, 1.5rem); }
.service p { color: var(--muted); font-size: 1rem; line-height: 1.55; }
.addons {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem 1.5rem;
  padding: 1.1rem 1.5rem; border: 1.5px dashed var(--rule); border-radius: var(--radius);
  color: var(--muted); font-size: 1rem;
}
.addons strong { color: var(--ink); font-weight: 600; }
@media (max-width: 639px) {
  .service { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .35rem .9rem; padding: 1.15rem 1.25rem; }
  .service-icon { width: 44px; height: 44px; margin: 0; }
  .service-icon svg { width: 24px; height: 24px; }
  .service h3 { flex: 1; font-size: 1.2rem; }
  .service p { flex-basis: 100%; margin-top: .15rem; }
}

/* ---------- Showcase ---------- */
.showcase { display: grid; gap: clamp(1.5rem, 3vw, 2.25rem); }
@media (min-width: 640px) { .showcase { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .showcase { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 639px) {
  .showcase {
    grid-auto-flow: column; grid-auto-columns: 82%;
    overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pad);
    margin-inline: calc(-1 * var(--pad)); padding-inline: var(--pad); padding-bottom: 1rem;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .showcase::-webkit-scrollbar { display: none; }
  .show { scroll-snap-align: start; }
  .show[data-reveal] { transition-delay: 0ms; }
  .showcase.is-in .show { opacity: 1; transform: none; }
}
.show { display: flex; flex-direction: column; gap: 1rem; }
.arch-frame {
  border-radius: var(--arch); border: 2px solid var(--ink); background: var(--surface);
  padding: 0 14px 18px; box-shadow: 6px 6px 0 var(--rule);
  overflow: hidden;
  transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}
.transom { padding: 22% 14% 5%; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.transom span { font: 600 .9375rem/1.2 var(--serif); font-variation-settings: "opsz" 48, "SOFT" 60; letter-spacing: .01em; color: var(--ink); white-space: nowrap; }
.transom svg { width: 64px; height: 8px; fill: none; stroke: var(--mustard); stroke-width: 3; stroke-linecap: round; }
.chrome {
  height: 28px; display: flex; align-items: center; gap: 10px; padding: 0 6px;
  border-bottom: 1px solid var(--rule); border-top: 1px solid var(--rule);
}
.dots { display: flex; gap: 5px; }
.dots i { width: 8px; height: 8px; border-radius: 50%; display: block; }
.dots i:nth-child(1) { background: var(--accent); }
.dots i:nth-child(2) { background: var(--mustard); }
.dots i:nth-child(3) { background: var(--forest); }
.url { flex: 1; height: 18px; border-radius: 9px; background: var(--bg-2); font: 500 12px/18px var(--sans); color: var(--muted); padding: 0 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.screen { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 0 0 8px 8px; container-type: inline-size; background: #fff; }
.show figcaption { display: flex; flex-direction: column; gap: .25rem; padding-inline: .25rem; color: var(--muted); font-size: .9375rem; line-height: 1.45; }
.show figcaption .eyebrow { margin-bottom: .15rem; transition: color .25s; display: flex; align-items: center; gap: .6rem; }
.swatches { display: inline-flex; gap: 4px; }
.swatches i { width: 12px; height: 12px; border-radius: 50%; background: var(--c); border: 1px solid rgba(31,26,20,.18); display: block; }
.rail-hint { display: none; }
@media (max-width: 639px) {
  .rail-hint { display: flex; justify-content: space-between; align-items: center; margin-top: .25rem; font: 500 .8125rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
  .rail-count { font-variant-numeric: tabular-nums; }
  .rail-swipe::after { content: " \2192"; }
}
@media (hover: hover) {
  .show:hover .arch-frame { transform: translateY(-6px) rotate(-.6deg); box-shadow: 10px 12px 0 var(--rule), var(--shadow-lift); }
  .show:hover figcaption .eyebrow { color: var(--accent); }
  .show:hover .m-btn, .show:hover .m-phone, .show:hover .m-round, .show:hover .m-chip { transform: translateX(2px); }
}
.showcase-cta { margin-top: clamp(2rem, 4vw, 3rem); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 1.5rem; max-width: none; }
.showcase-cta-line { font: italic 400 clamp(1.5rem, 2.6vw, 2.1rem)/1.2 var(--serif); font-variation-settings: "opsz" 96, "SOFT" 40; color: var(--ink); letter-spacing: -.01em; }

/* --- Mini sites (cqw-scaled) --- */
.site { width: 100%; height: 100%; display: flex; flex-direction: column; font-family: var(--sans); position: relative; overflow: hidden; }
.site > * { flex-shrink: 0; }
.site .m-h { font-weight: 600; letter-spacing: -.02em; line-height: 1.05; margin: 0; max-width: none; }
.site .m-p { font-size: 3.4cqw; line-height: 1.4; margin: 2.5cqw 0 0; max-width: none; }
.site .m-nav, .site .m-band { display: flex; align-items: center; justify-content: space-between; padding: 4cqw 5cqw; }
.site .m-brand { font-weight: 600; font-size: 4.6cqw; display: inline-flex; align-items: center; gap: 1.8cqw; }
.site .m-links { display: flex; gap: 3.6cqw; font-size: 3cqw; font-weight: 500; opacity: .85; }
.site .m-links i { font-style: normal; }
.site .m-btn, .site .m-chip, .site .m-phone, .site .m-round { display: inline-flex; align-items: center; justify-content: center; font-weight: 600; transition: transform .35s var(--ease-out); }
.site .m-btn { padding: 2.8cqw 5cqw; border-radius: 999px; font-size: 3.4cqw; margin-top: 4.5cqw; }
.site .m-chip { padding: 1.8cqw 3.6cqw; border-radius: 999px; font-size: 2.9cqw; }
.site .m-lead { flex: 1; border-bottom: 1px dotted currentColor; opacity: .5; margin: 0 2cqw; transform: translateY(-.9cqw); }

.site .m-stars { display: inline-flex; align-items: center; gap: .3cqw; color: #14B4C4; font-size: 2.9cqw; line-height: 1; letter-spacing: .02em; }
@keyframes twinkle { 0%, 100% { opacity: .35; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.15); } }
@keyframes steam { 0%, 100% { transform: translateX(-50%) rotate(10deg) translateY(0); opacity: .9; } 50% { transform: translateX(-50%) rotate(-8deg) translateY(-1.4cqw); opacity: .45; } }

/* Marigold Bakery */
.m-bakery { background: #FBE7A1; color: #4A2C17; }
.m-bakery .m-awning { flex: none; height: 3.4cqw; background: repeating-linear-gradient(90deg, #C4552D 0 7cqw, #FDFAF3 7cqw 14cqw); border-bottom: .5cqw solid #4A2C17; }
.m-bakery .m-nav { padding-block: 3cqw; }
.m-bakery .m-brand { font-family: var(--serif); font-size: 5.6cqw; font-variation-settings: "opsz" 48, "SOFT" 60; }
.m-bakery .m-hero { padding: 1cqw 5cqw 0; position: relative; z-index: 1; }
.m-bakery .m-h { font-family: var(--serif); font-size: 12cqw; font-variation-settings: "opsz" 144, "SOFT" 60; }
.m-bakery .m-p { max-width: 84%; }
.m-bakery .m-btn { background: #4A2C17; color: #FBE7A1; margin-top: 3.2cqw; }
.m-bakery .m-scene { position: relative; height: 25cqw; margin-top: 1.5cqw; overflow: hidden; background: linear-gradient(180deg, #FBE7A1 0%, #F8D27E 100%); }
.m-bakery .m-sun { position: absolute; left: 50%; bottom: 4cqw; width: 36cqw; height: 36cqw; border-radius: 50%; background: radial-gradient(circle, #FFDD73 0 55%, #F6BE45 56% 100%); transform: translateX(-50%); box-shadow: 0 0 0 7cqw rgba(255,221,115,.35), 0 0 0 15cqw rgba(255,221,115,.16); transition: transform .9s var(--ease-out); }
.m-bakery .m-counter { position: absolute; left: 0; right: 0; bottom: 0; height: 4.6cqw; background: #4A2C17; }
.m-bakery .m-counter::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1cqw; background: #6B4326; }
.m-bakery .m-pastries { position: absolute; left: 0; right: 0; bottom: 3.6cqw; display: flex; justify-content: center; align-items: flex-end; gap: 2cqw; padding: 0 4cqw; }
.m-bakery .m-pastries svg { width: 24cqw; height: 15cqw; overflow: visible; filter: drop-shadow(0 1.4cqw 0 rgba(74,44,23,.18)); }
.m-bakery .m-pastries svg:nth-child(1) { transform: rotate(-8deg) translateY(1cqw); }
.m-bakery .m-pastries svg:nth-child(2) { width: 30cqw; height: 18cqw; }
.m-bakery .m-pastries svg:nth-child(3) { width: 17cqw; height: 17cqw; transform: rotate(8deg) translateY(1cqw); }
.m-bakery .m-bake { padding: 2.6cqw 5cqw 0; }
.m-bakery .m-bake-head { display: flex; justify-content: space-between; align-items: center; font-size: 3cqw; font-weight: 600; margin-bottom: 2cqw; }
.m-bakery .m-bake-head b { color: #4A2C17; margin-left: 1.2cqw; font-size: 2.9cqw; }
.m-bakery .m-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.2cqw; }
.m-bakery .m-cards div { background: #FDFAF3; border-radius: 2.4cqw; padding: 2.2cqw 1.6cqw 2cqw; display: flex; flex-direction: column; align-items: center; gap: 1.2cqw; font-size: 2.6cqw; font-weight: 600; text-align: center; line-height: 1.15; box-shadow: 0 .6cqw 0 rgba(74,44,23,.12); }
.m-bakery .m-cards svg { width: 12cqw; height: 7.5cqw; overflow: visible; }
.m-bakery .m-cards small { font-weight: 500; font-size: 2.3cqw; opacity: .65; }
.m-bakery .m-strip { display: flex; justify-content: space-between; padding: 3cqw 5cqw; background: #4A2C17; color: #FBE7A1; font-size: 2.9cqw; font-weight: 500; margin-top: auto; }

/* Hartline Plumbing */
.m-plumb { background: #fff; color: #12304B; }
.m-plumb .m-nav { background: #12304B; color: #fff; padding-block: 3.2cqw; }
.m-plumb .m-brand { font-size: 4.8cqw; letter-spacing: -.02em; gap: 1.2cqw; }
.m-plumb .m-brand small { font-weight: 400; font-size: 3cqw; opacity: .8; }
.m-plumb .m-chip { background: #D7412F; color: #fff; }
.m-plumb .m-hero { background: #12304B; color: #fff; padding: 1.5cqw 5cqw 2.6cqw; }
.m-plumb .m-h { font-size: 8.4cqw; letter-spacing: -.03em; }
.m-plumb .m-p { color: #C3D2DF; }
.m-plumb .m-phone { background: #D7412F; color: #fff; border-radius: 2cqw; padding: 2.6cqw 4cqw; font-size: 4.6cqw; gap: 2cqw; margin-top: 3cqw; letter-spacing: -.01em; box-shadow: 0 1cqw 0 #A82E1F; }
.m-plumb .m-phone svg { width: 4.4cqw; height: 4.4cqw; }
.m-plumb .m-trust { display: flex; align-items: center; gap: 1.6cqw; margin-top: 2.6cqw; font-size: 2.9cqw; color: #C3D2DF; }
.m-plumb .m-trust b { color: #fff; }
.m-plumb .m-road { position: relative; height: 20cqw; background: linear-gradient(180deg, #12304B 0 38%, #EEF3F7 38% 100%); overflow: hidden; }
.m-plumb .m-road::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2.2cqw; border-top: .6cqw dashed #B8C4CE; }
.m-plumb .m-van { position: absolute; right: 3cqw; bottom: 2.2cqw; width: 42cqw; height: auto; z-index: 1; transition: transform .8s var(--ease-out); }
.m-plumb .m-badges { position: absolute; left: 5cqw; bottom: 4cqw; display: flex; flex-wrap: wrap; max-width: 44cqw; gap: 1.3cqw; z-index: 1; }
.m-plumb .m-badges span { border: 1.5px solid #12304B; border-radius: 999px; padding: 1.1cqw 2.6cqw; font-size: 2.5cqw; font-weight: 600; background: #fff; width: max-content; }
.m-plumb .m-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5cqw; padding: 3.4cqw 5cqw; background: #EEF3F7; font-size: 2.9cqw; font-weight: 600; }
.m-plumb .m-services div { display: flex; flex-direction: column; gap: 1.8cqw; }
.m-plumb .m-services b { width: 8cqw; height: 8cqw; border-radius: 2cqw; background: #12304B; display: grid; place-items: center; }
.m-plumb .m-services b svg { width: 4.6cqw; height: 4.6cqw; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.m-plumb .m-review { margin-top: auto; display: flex; gap: 3cqw; align-items: center; padding: 2.4cqw 5cqw; border-top: 1px solid #DCE5EC; font-size: 2.8cqw; line-height: 1.35; }
.m-plumb .m-review i { flex: none; width: 9cqw; height: 9cqw; border-radius: 50%; background: linear-gradient(145deg, #D7412F, #F08A6C); display: grid; place-items: center; color: #fff; font-style: normal; font-weight: 700; font-size: 3cqw; }
.m-plumb .m-review .m-stars { display: flex; font-size: 2.5cqw; margin-bottom: .8cqw; }
.m-plumb .m-review b { font-weight: 600; opacity: .7; }

/* Bright Row Dental */
.m-dental { background: #DDF2EC; color: #1E6B5E; }
.m-dental .m-nav { padding-block: 3.2cqw; }
.m-dental .m-tooth-sm { width: 3.6cqw; height: 4cqw; background: #fff; border-radius: 45% 45% 50% 50% / 45% 45% 55% 55%; display: inline-block; }
.m-dental .m-hero { padding: 1.5cqw 5cqw 0; display: flex; align-items: center; gap: 3cqw; }
.m-dental .m-tooth-wrap { position: relative; flex: none; width: 34cqw; height: 36cqw; display: grid; place-items: center; }
.m-dental .m-tooth-wrap::before { content: ""; position: absolute; inset: 1cqw 0 0; border-radius: 50%; background: radial-gradient(circle, #BFE7DA 0 58%, transparent 60%); }
.m-dental .m-tooth-wrap::after { content: "\2726"; position: absolute; top: 0; right: 1cqw; color: #E0A526; font-size: 5cqw; line-height: 1; animation: twinkle 2.4s ease-in-out infinite; }
.m-dental .m-tooth { position: relative; z-index: 0; width: 22cqw; height: 24cqw; background: #fff; border-radius: 48% 48% 40% 40% / 50% 50% 46% 46%; box-shadow: 0 1.4cqw 0 rgba(30,107,94,.18); }
.m-dental .m-tooth::before, .m-dental .m-tooth::after { content: ""; position: absolute; bottom: -4cqw; width: 8cqw; height: 10cqw; background: #fff; border-radius: 30% 30% 50% 50% / 30% 30% 70% 70%; z-index: -1; }
.m-dental .m-tooth::before { left: 2cqw; }
.m-dental .m-tooth::after { right: 2cqw; }
.m-dental .m-tooth i { position: absolute; display: block; }
.m-dental .m-eye { top: 9cqw; width: 2.2cqw; height: 2.8cqw; border-radius: 50%; background: #1E6B5E; }
.m-dental .m-eye:first-child { left: 6.5cqw; }
.m-dental .m-eye:nth-child(2) { right: 6.5cqw; }
.m-dental .m-smile { left: 50%; top: 12.6cqw; width: 7.5cqw; height: 3.8cqw; border: .8cqw solid #1E6B5E; border-top: 0; border-radius: 0 0 8cqw 8cqw; transform: translateX(-50%); }
.m-dental .m-cheek { top: 12.2cqw; width: 2.8cqw; height: 1.5cqw; border-radius: 50%; background: #F5BFB0; }
.m-dental .m-cheek:nth-child(4) { left: 3.6cqw; }
.m-dental .m-cheek:nth-child(5) { right: 3.6cqw; }
.m-dental .m-h { font-size: 7.6cqw; letter-spacing: -.03em; }
.m-dental .m-p { color: #2E7E70; font-size: 3.1cqw; }
.m-dental .m-team { display: flex; gap: 2.4cqw; padding: 3.6cqw 5cqw 0; font-size: 2.6cqw; font-weight: 600; }
.m-dental .m-team span { display: flex; align-items: center; gap: 1.4cqw; }
.m-dental .m-team i { width: 7cqw; height: 7cqw; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 2.3cqw; color: #fff; background: linear-gradient(145deg, #1E6B5E, #3FA08E); }
.m-dental .m-team span:nth-child(2) i { background: linear-gradient(145deg, #E0A526, #F0C75E); color: #1F1A14; }
.m-dental .m-team span:nth-child(3) i { background: linear-gradient(145deg, #C4552D, #E27A57); }
.m-dental .m-ins { display: flex; gap: 1.6cqw; padding: 2.6cqw 5cqw 0; }
.m-dental .m-ins span { font-size: 2.4cqw; font-weight: 600; padding: 1cqw 2.4cqw; border-radius: 999px; background: #fff; color: #1E6B5E; }
.m-dental .m-appt { margin: 3cqw 5cqw 0; margin-top: auto; background: #fff; border-radius: 3cqw 3cqw 0 0; padding: 3.4cqw 4cqw 3.6cqw; box-shadow: 0 -1cqw 0 rgba(30,107,94,.08); }
.m-dental .m-appt-head { display: flex; justify-content: space-between; font-size: 3cqw; font-weight: 600; margin-bottom: 2.2cqw; }
.m-dental .m-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1cqw; font-size: 2.6cqw; text-align: center; }
.m-dental .m-grid i { font-style: normal; padding: 1cqw 0; border-radius: 1.4cqw; font-weight: 500; }
.m-dental .m-grid i:nth-child(-n+7) { opacity: .55; font-weight: 600; }
.m-dental .m-grid i.on { background: #1E6B5E; color: #fff; }
.m-dental .m-grid i.off { opacity: .3; }
.m-dental .m-btn { background: #1E6B5E; color: #fff; margin-top: 2.6cqw; padding: 2.4cqw 4.4cqw; font-size: 3.1cqw; }

/* Studio Ash Salon */
.m-salon { background: #151313; color: #E9C9C1; }
.m-salon .m-nav { padding-block: 3.4cqw; }
.m-salon .m-brand { font-family: var(--serif); font-weight: 400; letter-spacing: .08em; text-transform: uppercase; font-size: 3.6cqw; }
.m-salon .m-hero { position: relative; padding: 4cqw 5cqw 0; display: flex; justify-content: space-between; align-items: flex-end; min-height: 42cqw; overflow: hidden; }
.m-salon .m-strands { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: #E9C9C1; stroke-linecap: round; transition: transform 1.2s var(--ease-out); }
.m-salon .m-h { position: relative; font-family: var(--serif); font-weight: 400; font-size: 13.5cqw; line-height: .98; letter-spacing: -.02em; display: flex; flex-direction: column; font-variation-settings: "opsz" 144, "SOFT" 20; }
.m-salon .m-h span:nth-child(2) { font-style: italic; padding-left: 4cqw; color: #F3DED8; }
.m-salon .m-round { position: relative; width: 15cqw; height: 15cqw; border-radius: 50%; background: #E9C9C1; color: #151313; font-size: 3.2cqw; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 2cqw; }
.m-salon .m-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6cqw; padding: 4.5cqw 5cqw 0; }
.m-salon .m-gallery i { position: relative; aspect-ratio: 1; border-radius: 1.6cqw; overflow: hidden; display: flex; align-items: flex-end; padding: 1.8cqw; font-style: normal; font-size: 2.3cqw; letter-spacing: .08em; text-transform: uppercase; color: #F3DED8; }
.m-salon .m-gallery i::before { content: ""; position: absolute; inset: 0; background: linear-gradient(125deg, transparent 35%, rgba(255,255,255,.14) 50%, transparent 65%), linear-gradient(180deg, transparent 55%, rgba(0,0,0,.45)); }
.m-salon .m-gallery i::after { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 45% at 50% 40%, rgba(255,255,255,.12), transparent 70%); }
.m-salon .g1 { background: radial-gradient(90% 70% at 30% 20%, #8C6A60 0%, #4A3634 50%, #241C1C 100%); }
.m-salon .g2 { background: radial-gradient(90% 70% at 70% 25%, #F0D7CF 0%, #C99A8E 45%, #6E4E46 100%); }
.m-salon .g3 { background: radial-gradient(90% 70% at 40% 30%, #6B4A52 0%, #3B2A30 55%, #1A1416 100%); }
.m-salon .m-list { margin-top: auto; padding: 4cqw 5cqw 4.5cqw; border-top: 1px solid rgba(233,201,193,.25); font-size: 3.1cqw; display: flex; flex-direction: column; gap: 2.2cqw; }
.m-salon .m-list li { display: flex; align-items: baseline; }
.m-salon .m-list li span:last-child { opacity: .75; font-variant-numeric: tabular-nums; }

/* Corner Cup Cafe */
.m-cafe { background: #FBF5EA; color: #3A2B1E; }
.m-cafe .m-band { background: #C9A77C; color: #2C1E12; padding-block: 4cqw; }
.m-cafe .m-brand { font-family: var(--serif); font-style: italic; font-weight: 600; font-size: 5.4cqw; font-variation-settings: "opsz" 48, "SOFT" 80; }
.m-cafe .m-hero { display: flex; gap: 4cqw; align-items: center; margin: 0 3cqw; padding: 5cqw 5cqw 5cqw; background: #2C1E12 repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 3px); color: #F3E9D8; border: .9cqw solid #A67C52; border-top: 0; border-radius: 0 0 2.4cqw 2.4cqw; box-shadow: 0 1.2cqw 0 rgba(58,43,30,.12); }
.m-cafe .m-h { font-family: var(--serif); font-size: 8cqw; font-weight: 600; font-style: italic; font-variation-settings: "opsz" 96, "SOFT" 80; letter-spacing: -.02em; color: #F8F0E1; }
.m-cafe .m-hero .m-p { color: #D9C6A8; font-size: 3.1cqw; }
.m-cafe .m-cup { position: relative; flex: none; width: 20cqw; height: 16cqw; margin-top: 4cqw; border: .6cqw solid #F3E9D8; border-radius: 2cqw 2cqw 8cqw 8cqw; }
.m-cafe .m-cup::before { content: ""; position: absolute; left: -.6cqw; right: -.6cqw; top: -2.4cqw; height: 4.4cqw; background: #C9A77C; border: .6cqw solid #F3E9D8; border-radius: 50%; }
.m-cafe .m-cup::after { content: ""; position: absolute; right: -6cqw; top: 2cqw; width: 6cqw; height: 8cqw; border: .6cqw solid #F3E9D8; border-left: 0; border-radius: 0 4cqw 4cqw 0; }
.m-cafe .m-steam { position: absolute; left: 50%; top: -9.5cqw; width: 2cqw; height: 6cqw; border-left: .5cqw solid #F3E9D8; border-radius: 50%; transform: translateX(-50%) rotate(10deg); opacity: .9; animation: steam 2.8s ease-in-out infinite; }
.m-cafe .m-steam::before { content: ""; position: absolute; left: -4cqw; top: 1cqw; width: 2cqw; height: 5cqw; border-left: .5cqw solid #F3E9D8; border-radius: 50%; }
.m-cafe .m-pours { display: flex; align-items: center; gap: 2.4cqw; padding: 4cqw 5cqw 0; font-size: 2.7cqw; font-weight: 600; color: #6E5843; }
.m-cafe .m-pours i { flex: none; width: 11cqw; height: 11cqw; border-radius: 50%; border: .5cqw solid #E8DCC6; box-shadow: 0 .8cqw 0 rgba(58,43,30,.12); background: radial-gradient(circle at 50% 50%, #F5E6D3 0 11%, #6B4423 12% 21%, #F5E6D3 22% 29%, #6B4423 30% 38%, #F5E6D3 39% 45%, #5A3A1E 46% 100%); }
.m-cafe .m-pours i:nth-child(2) { background: radial-gradient(circle at 50% 62%, #F5E6D3 0 9%, transparent 10%), radial-gradient(circle at 50% 42%, #F5E6D3 0 16%, #5A3A1E 17% 100%); }
.m-cafe .m-pours i:nth-child(3) { background: radial-gradient(circle at 50% 55%, #F5E6D3 0 18%, #6B4423 19% 28%, #F5E6D3 29% 36%, #5A3A1E 37% 100%); }
.m-cafe .m-pours span { margin-left: auto; text-align: right; line-height: 1.3; display: flex; flex-direction: column; }
.m-cafe .m-pours b { font-weight: 500; font-size: 2.4cqw; opacity: .8; }
.m-cafe .m-hours { display: flex; gap: 4cqw; align-items: center; padding: 3.6cqw 5cqw 0; font-size: 2.8cqw; color: #6E5843; }
.m-cafe .m-hours span { display: flex; flex-direction: column; gap: .6cqw; }
.m-cafe .m-hours b { color: #3A2B1E; font-weight: 600; }
.m-cafe .m-pin { margin-left: auto; flex-direction: row !important; align-items: center; gap: 1.4cqw !important; font-weight: 600; color: #3A2B1E; }
.m-cafe .m-pin i { width: 2.6cqw; height: 2.6cqw; border-radius: 50% 50% 50% 0; background: #C9A77C; transform: rotate(-45deg); display: block; }
.m-cafe .m-menu { margin-top: 2.4cqw; padding: 3cqw 5cqw 2cqw; font-size: 3.1cqw; display: flex; flex-direction: column; gap: 2.2cqw; font-weight: 500; }
.m-cafe .m-menu li { display: flex; align-items: baseline; }
.m-cafe .m-menu li span:last-child { opacity: .7; }
.m-cafe .m-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding: 3.4cqw 5cqw; background: #3A2B1E; color: #FBF5EA; font-size: 3cqw; }
.m-cafe .m-foot .m-btn { margin: 0; padding: 2cqw 4cqw; background: #C9A77C; color: #2C1E12; font-size: 2.9cqw; }

/* Greenway Landscaping */
.m-lawn { background: #F4F1E6; color: #1F2A20; }
.m-lawn .m-nav { background: #1F3D2B; color: #F6EFE3; padding-block: 3.2cqw; }
.m-lawn .m-brand { font-size: 4.8cqw; }
.m-lawn .m-brand svg { width: 5cqw; height: 5cqw; fill: none; stroke: #E0A526; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.m-lawn .m-chip { background: #E0A526; color: #1F1A14; }
.m-lawn .m-hero { position: relative; overflow: hidden; padding: 5cqw 5cqw 5cqw; background: linear-gradient(160deg, #1F3D2B 0%, #2E5B3E 65%, #3C7A46 100%); color: #F6EFE3; }
.m-lawn .m-leaves { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform 1.2s var(--ease-out); }
.m-lawn .m-hero > :not(.m-leaves) { position: relative; }
.m-lawn .m-kicker { font-size: 2.6cqw; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: #F0C75E; margin: 0 0 2cqw; }
.m-lawn .m-h { font-family: var(--serif); font-size: 8.4cqw; font-variation-settings: "opsz" 96, "SOFT" 50; letter-spacing: -.015em; line-height: 1.05; max-width: 92%; }
.m-lawn .m-btn { background: #E0A526; color: #1F1A14; margin-top: 4cqw; }
.m-lawn .m-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2cqw; padding: 3cqw 5cqw 0; font-size: 2.7cqw; font-weight: 600; }
.m-lawn .m-services div { display: flex; align-items: center; gap: 1.6cqw; }
.m-lawn .m-services svg { width: 7cqw; height: 7cqw; flex: none; fill: none; stroke: #2E5B3E; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; background: #E3EDDC; border-radius: 50%; padding: 1.5cqw; }
.m-lawn .m-quote { margin: 3cqw 5cqw 0; padding: 2.8cqw 4cqw 2.8cqw; background: #fff; border-radius: 2.4cqw; border-left: .9cqw solid #E0A526; }
.m-lawn .m-quote p { margin: 1cqw 0 1.2cqw; font-family: var(--serif); font-style: italic; font-size: 3.5cqw; line-height: 1.3; font-variation-settings: "opsz" 48, "SOFT" 60; }
.m-lawn .m-quote small { font-size: 2.5cqw; color: #4B5A4E; font-weight: 500; }
.m-lawn .m-stats { margin-top: auto; display: grid; grid-template-columns: repeat(3, 1fr); padding: 2.6cqw 5cqw; background: #1F3D2B; color: #F6EFE3; font-size: 2.6cqw; text-align: center; }
.m-lawn .m-stats b { display: block; font-family: var(--serif); font-size: 5.4cqw; line-height: 1.1; color: #F0C75E; }

@media (hover: hover) {
  .show:hover .m-bakery .m-sun { transform: translate(-50%, -3cqw); }
  .show:hover .m-plumb .m-van { transform: translateX(-3cqw); }
  .show:hover .m-salon .m-strands { transform: translateX(-3cqw) translateY(-1cqw); }
  .show:hover .m-lawn .m-leaves { transform: translateY(-1.5cqw) rotate(-2deg); }
}
@media (prefers-reduced-motion: reduce) {
  .m-cafe .m-steam, .m-dental .m-tooth-wrap::after { animation: none; }
  .m-lawn .m-leaves, .m-bakery .m-sun, .m-plumb .m-van, .m-salon .m-strands { transition: none; }
}

/* ---------- How it works ---------- */
.steps { position: relative; display: grid; gap: 2.5rem 1.5rem; counter-reset: step; }
@media (min-width: 860px) { .steps { grid-template-columns: repeat(4, 1fr); gap: 2rem; } }
.steps-path { display: none; position: absolute; left: 0; right: 0; top: -12px; height: 120px; width: 100%; pointer-events: none; }
.steps-path path { stroke-dasharray: 1; transition: stroke-dashoffset 1.6s var(--ease-out); }
.js .steps-path path { stroke-dashoffset: 1; }
.steps.is-drawn .steps-path path { stroke-dashoffset: 0; }
@media (min-width: 860px) { .steps-path { display: block; } }
.step { position: relative; padding-left: 4.25rem; }
@media (min-width: 860px) { .step { padding-left: 0; padding-top: 5.5rem; } }
.step-num {
  position: absolute; left: 0; top: 0; width: 56px; height: 56px; border-radius: 50%;
  background: var(--accent); color: #F6EFE3; display: grid; place-items: center;
  font: italic 400 1.75rem/1 var(--serif); font-variation-settings: "opsz" 48, "SOFT" 40;
  box-shadow: 0 0 0 6px var(--bg), 0 0 0 7.5px var(--rule);
  transition: transform .4s var(--ease-pop), opacity .3s;
  transition-delay: calc(var(--i) * 350ms + 200ms);
}
.js .step-num { transform: scale(.6); opacity: 0; }
.steps.is-drawn .step-num { transform: scale(1); opacity: 1; }
@media (max-width: 859px) {
  .step-num, .js .step-num { transform: none; opacity: 1; transition: none; }
  .step:not(:last-child)::before { content: ""; position: absolute; left: 27px; top: 60px; bottom: -2.5rem; border-left: 2px dashed var(--rule); }
}
.step h3 { font-size: clamp(1.25rem, 1.6vw, 1.5rem); margin-bottom: .6rem; }
.step p { color: var(--muted); font-size: 1rem; line-height: 1.55; }

/* ---------- Bands (torn paper) ---------- */
.band { position: relative; padding-block: calc(var(--section) + 40px); }
.band-linen { background: var(--bg-2); }
.band-cta { background: var(--grad-paper); }
.band {
  clip-path: polygon(0.0% 15px, 2.78% 6px, 5.56% 18px, 8.33% 34px, 11.11% 0px, 13.89% 3px, 16.67% 26px, 19.44% 3px, 22.22% 15px, 25.0% 30px, 27.78% 0px, 30.56% 26px, 33.33% 9px, 36.11% 0px, 38.89% 3px, 41.67% 18px, 44.44% 18px, 47.22% 3px, 50.0% 9px, 52.78% 3px, 55.56% 26px, 58.33% 18px, 61.11% 0px, 63.89% 30px, 66.67% 3px, 69.44% 9px, 72.22% 34px, 75.0% 34px, 77.78% 30px, 80.56% 0px, 83.33% 30px, 86.11% 30px, 88.89% 18px, 91.67% 0px, 94.44% 9px, 97.22% 0px, 100.0% 26px, 100.0% calc(100% - 6px), 97.22% calc(100% - 12px), 94.44% calc(100% - 18px), 91.67% calc(100% - 6px), 88.89% calc(100% - 26px), 86.11% calc(100% - 3px), 83.33% calc(100% - 30px), 80.56% calc(100% - 12px), 77.78% calc(100% - 26px), 75.0% calc(100% - 34px), 72.22% calc(100% - 6px), 69.44% calc(100% - 3px), 66.67% calc(100% - 30px), 63.89% calc(100% - 30px), 61.11% calc(100% - 34px), 58.33% calc(100% - 9px), 55.56% calc(100% - 15px), 52.78% calc(100% - 3px), 50.0% calc(100% - 26px), 47.22% calc(100% - 38px), 44.44% calc(100% - 3px), 41.67% calc(100% - 30px), 38.89% calc(100% - 0px), 36.11% calc(100% - 30px), 33.33% calc(100% - 9px), 30.56% calc(100% - 22px), 27.78% calc(100% - 34px), 25.0% calc(100% - 26px), 22.22% calc(100% - 18px), 19.44% calc(100% - 15px), 16.67% calc(100% - 22px), 13.89% calc(100% - 30px), 11.11% calc(100% - 22px), 8.33% calc(100% - 15px), 5.56% calc(100% - 12px), 2.78% calc(100% - 9px), 0.0% calc(100% - 6px));
}

@media (max-width: 640px) {
  .band { clip-path: polygon(0.0% 10px, 5.56% 4px, 11.12% 12px, 16.68% 1px, 22.24% 2px, 27.8% 3px, 33.36% 11px, 38.92% 1px, 44.48% 16px, 50.04% 6px, 55.6% 1px, 61.16% 2px, 66.72% 13px, 72.28% 13px, 77.84% 2px, 83.4% 7px, 88.96% 2px, 94.52% 13px, 100.08% 1px, 100.08% calc(100% - 2px), 94.52% calc(100% - 3px), 88.96% calc(100% - 11px), 83.4% calc(100% - 6px), 77.84% calc(100% - 3px), 72.28% calc(100% - 5px), 66.72% calc(100% - 9px), 61.16% calc(100% - 3px), 55.6% calc(100% - 4px), 50.04% calc(100% - 13px), 44.48% calc(100% - 9px), 38.92% calc(100% - 4px), 33.36% calc(100% - 1px), 27.8% calc(100% - 7px), 22.24% calc(100% - 1px), 16.68% calc(100% - 12px), 11.12% calc(100% - 1px), 5.56% calc(100% - 7px), 0.0% calc(100% - 3px)); }
}

/* ---------- Pricing ---------- */
.pricing { text-align: center; display: flex; flex-direction: column; align-items: center; }
.pricing > h2 { margin-bottom: clamp(2rem, 4vw, 3rem); max-width: 18ch; }
.price-card { position: relative; width: 100%; max-width: 760px; }
.price-card::before {
  content: ""; position: absolute; inset: -12% -18%; z-index: 0; pointer-events: none;
  background: radial-gradient(55% 55% at 50% 50%, rgba(20,180,196,.38) 0%, rgba(20,180,196,.12) 45%, rgba(20,180,196,0) 72%);
}
.price-panel {
  background: var(--grad-walnut); color: var(--bg);
  border-radius: var(--radius-lg); padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 5vw, 3.5rem);
  box-shadow: var(--shadow-lift); position: relative; overflow: hidden; z-index: 1;
  transform: rotate(-.4deg);
}
.price-panel::before {
  content: ""; position: absolute; inset: 10px; border: 1.5px dashed rgba(246,239,227,.18); border-radius: 18px; pointer-events: none;
}
.price-tape {
  position: absolute; top: -14px; left: 50%; width: 120px; height: 30px;
  background: rgba(211,241,246,.85); transform: translateX(-50%) rotate(-3deg);
  box-shadow: 0 1px 2px rgba(31,26,20,.15); z-index: 2;
  clip-path: polygon(2% 0, 98% 4%, 100% 96%, 1% 100%);
}
.price-figure-wrap { display: flex; flex-direction: column; align-items: center; gap: .25rem; margin-bottom: 1.25rem; }
.price-figure {
  font: 600 clamp(4rem, 8vw, 6.5rem)/1 var(--serif); letter-spacing: -.03em; color: var(--bg);
  font-variation-settings: "opsz" 144, "SOFT" 60;
}
.price-figure::first-letter { color: var(--mustard); }
.price-term { font: 600 .9375rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--mustard); }
.price-line { font: italic 400 clamp(1.125rem, 1.6vw, 1.375rem)/1.4 var(--serif); font-variation-settings: "opsz" 48; color: var(--bg); max-width: none; margin-bottom: 2rem; opacity: .95; }
.price-list {
  display: grid; gap: .7rem .5rem; text-align: left; margin: 0 auto 2.25rem; max-width: 600px;
  font-size: 1.0625rem; font-weight: 500;
}
@media (min-width: 600px) { .price-list { grid-template-columns: 1fr 1fr; gap: .8rem 1.5rem; } }
.price-list li { display: flex; align-items: flex-start; gap: .6rem; line-height: 1.35; }
.price-list svg { flex: none; width: 22px; height: 22px; margin-top: 1px; fill: none; stroke: var(--mustard); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.price-btn { font-size: 1.125rem; }
@media (max-width: 360px) { .price-panel { padding-inline: 1.25rem; } .price-btn { font-size: 1rem; padding-inline: 1.25rem; } }
.price-caption { margin-top: 1.75rem; color: var(--muted); font-size: .9375rem; font-weight: 500; }

/* ---------- Who's behind the door ---------- */
.who-grid { display: grid; gap: clamp(1.25rem, 3vw, 2.5rem); align-items: stretch; }
@media (min-width: 860px) { .who-grid { grid-template-columns: 1.5fr 1fr; } }
.founder { display: flex; flex-direction: column; gap: 1.75rem; }
.founder blockquote p { font: italic 400 clamp(1.25rem, 1.8vw, 1.6rem)/1.35 var(--serif); font-variation-settings: "opsz" 72, "SOFT" 40; letter-spacing: -.01em; max-width: 34ch; }
.founder figcaption { display: flex; align-items: center; gap: .9rem; margin-top: auto; }
.medallion { width: 46px; height: 46px; border-radius: 50%; background: var(--forest); color: var(--bg); display: grid; place-items: center; font: 600 .875rem/1 var(--sans); letter-spacing: .04em; flex: none; }
.who { display: flex; flex-direction: column; gap: .15rem; }
.name { position: relative; display: inline-block; font-weight: 600; padding-bottom: 5px; }
.name-swash { position: absolute; left: 0; bottom: 0; width: 100%; height: 8px; fill: none; stroke: var(--mustard); stroke-width: 3; stroke-linecap: round; }
.role { font-size: .9375rem; color: var(--muted); font-weight: 500; }
.house-rules { display: flex; flex-direction: column; justify-content: center; gap: 1.1rem; padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.25rem, 2.5vw, 1.9rem); border: 1.5px dashed var(--rule); border-radius: var(--radius-lg); color: var(--muted); font-size: 1rem; line-height: 1.5; }
.house-rules li { display: flex; gap: .7rem; align-items: flex-start; }
.house-rules svg { flex: none; width: 22px; height: 22px; margin-top: 2px; fill: none; stroke: var(--accent); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.house-rules strong { color: var(--ink); font-weight: 600; }

/* ---------- FAQ ---------- */
.faq-grid { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: start; }
@media (min-width: 900px) { .faq-grid { grid-template-columns: 1fr 1.4fr; grid-template-rows: auto 1fr; } .faq { grid-column: 2; grid-row: 1 / 3; } .faq-closing { grid-column: 1; grid-row: 2; align-self: start; } }
.faq-copy h2 { margin-bottom: 1.1rem; }
.faq-copy p { color: var(--muted); margin-bottom: 1rem; }
.faq-closing { padding-top: 1.5rem; border-top: 1.5px solid var(--rule); color: var(--ink); font-size: 1.0625rem; }
@media (max-width: 899px) { .faq-closing { margin-top: 1.5rem; border-top: 0; padding-top: 0; } }
.faq { border-top: 1.5px solid var(--rule); }
.faq-item { border-bottom: 1.5px solid var(--rule); }
.faq-item summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 1.25rem 0; min-height: 44px;
  font: 600 clamp(1.125rem, 1.4vw, 1.3rem)/1.3 var(--serif); font-variation-settings: "opsz" 48, "SOFT" 40; letter-spacing: -.01em;
  transition: color .2s;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--accent); }
.faq-item summary:focus-visible { outline-offset: -3px; }
.faq-plus { flex: none; width: 28px; height: 28px; padding: 5px; border-radius: 50%; border: 1.5px solid var(--rule); fill: none; stroke: var(--accent); stroke-width: 2.2; stroke-linecap: round; transition: transform .35s var(--ease-out), background .25s, border-color .25s; }
.faq-item[open] .faq-plus { transform: rotate(45deg); background: var(--butter); border-color: var(--mustard); }
.faq-body { padding: 0 0 1.5rem; color: var(--muted); max-width: 60ch; animation: fadeUp .35s var(--ease-out); }
.faq-body p { max-width: 60ch; }

/* ---------- Contact ---------- */
.cta-grid { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center; }
@media (min-width: 960px) { .cta-grid { grid-template-columns: 1fr 1.25fr; } }
.cta-copy { position: relative; }
.cta-copy h2 { margin-bottom: 1rem; }
.cta-copy > p { color: var(--muted); }
.cta-helper { margin-top: 1rem; font-size: .9375rem; font-weight: 500; }
.cta-door { width: min(300px, 70%); margin-bottom: .5rem; margin-left: -1.75rem; }
.cta-leaf { transform-origin: 70px 200px; transform: none; transition: transform 1s var(--ease-in-out) .2s; }
html:not(.js) .cta-leaf { transform: scaleX(.45) skewY(-18deg); }
.cta-copy.is-in .cta-leaf { transform: scaleX(.45) skewY(-18deg); }

.cta-form-wrap { position: relative; container-type: inline-size; }
.contact-form {
  background: var(--surface); border: 1.5px solid var(--rule); border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: var(--shadow);
  display: flex; flex-direction: column; gap: 1.1rem;
  transition: opacity .4s var(--ease-out), transform .4s var(--ease-out);
}
.contact-form.is-sent { opacity: 0; transform: translateY(-8px); pointer-events: none; position: absolute; inset: 0; }
.contact-form[hidden] { display: none; }
.form-row { display: grid; gap: 1.1rem; }
@container (min-width: 480px) { .form-row { grid-template-columns: 1fr 1fr; } }
.field { display: flex; flex-direction: column; gap: .4rem; }
.field label { font: 600 .875rem/1.2 var(--sans); color: var(--muted); }
.field .opt { font-weight: 500; }
.field input, .field select, .field textarea {
  width: 100%; background: var(--surface); border: 1.5px solid var(--rule-strong); border-radius: 12px;
  padding: .95rem 1.1rem; font: 400 1.0625rem/1.3 var(--sans); color: var(--ink);
  transition: border-color .2s, box-shadow .2s; min-height: 48px;
}
.field input::placeholder, .field textarea::placeholder { color: rgba(107,93,77,.7); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(21,83,168,.15); }
.field textarea { min-height: 140px; resize: vertical; }
.field select {
  appearance: none; -webkit-appearance: none; padding-right: 3rem; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B5D4D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 9.2c2.3 2.2 4.4 4.4 6.4 6.8 2.3-2.4 4.6-4.5 6.8-6.6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center; background-size: 20px;
}
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--error); }
.field-error { font-size: .875rem; color: var(--error); font-weight: 500; min-height: 0; margin: 0; }
.field-error:empty { height: 0; margin-top: -.4rem; overflow: hidden; }
.form-actions { padding-top: .25rem; }
.form-actions .btn { width: 100%; }
@media (min-width: 560px) { .form-actions .btn { width: auto; } }
.form-alt { font-size: .9375rem; color: var(--muted); font-weight: 500; }
.form-status { font-size: .9375rem; color: var(--error); font-weight: 500; }
.form-status:empty { height: 0; margin-top: -1.1rem; overflow: hidden; }

.form-success {
  background: var(--surface); border: 1.5px solid var(--rule); border-radius: var(--radius-lg);
  padding: clamp(2rem, 4vw, 3rem); box-shadow: var(--shadow); text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 1rem;
  animation: fadeUp .5s var(--ease-out);
}
.form-success[hidden] { display: none; }
.form-success h3 { max-width: 20ch; }
.form-success p { color: var(--muted); }
.success-door { width: 120px; height: 130px; }
.success-leaf { transform-origin: 34px 90px; animation: leafSwing 1s var(--ease-in-out) .3s both; }
@keyframes leafSwing { to { transform: scaleX(.4) skewY(-16deg); } }

/* ---------- Footer ---------- */
.footer { background: var(--grad-walnut); color: var(--bg); padding: clamp(3.5rem, 7vw, 5.5rem) 0 2rem; }
.footer-grid { display: grid; gap: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(246,239,227,.15); }
@media (min-width: 800px) { .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; gap: 3rem; } }
.logo-light { color: var(--bg); }
.footer-reassure { margin-top: .6rem; font-size: .9375rem; font-weight: 500; color: rgba(246,239,227,.6); }
.footer-tagline { margin-top: .9rem; font: italic 400 1.25rem/1.3 var(--serif); font-variation-settings: "opsz" 48, "SOFT" 40; color: rgba(246,239,227,.85); }
.footer-nav { display: flex; flex-direction: column; gap: .2rem; }
@media (min-width: 800px) { .footer-nav { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; row-gap: .2rem; } }
.footer-nav a, .footer-contact a { color: rgba(246,239,227,.85); display: inline-flex; align-items: center; min-height: 40px; font-weight: 500; transition: color .2s; align-self: flex-start; }
.footer-nav a:hover, .footer-contact a:hover { color: var(--mustard); }
.footer-contact { display: flex; flex-direction: column; }
.footer-label { font: 600 .8125rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--mustard); margin-bottom: .5rem; }
.footer-hours { margin-top: .75rem; font-size: .9375rem; color: rgba(246,239,227,.6); }
.footer-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; padding-top: 2rem; font-size: .9375rem; color: rgba(246,239,227,.6); }
.footer-arch { width: 60px; height: 30px; }

/* ---------- Motion safety ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-delay: 0ms !important; transition-duration: 1ms !important; transition-delay: 0ms !important; animation-iteration-count: 1 !important; }
  html { scroll-behavior: auto; }
  .hand path, .hl-underline path, .th-line, .steps-path path { stroke-dashoffset: 0 !important; animation: none; }
  .th-bump { opacity: 1; }
  .js [data-reveal]:not(.showcase) { opacity: 1; transform: none; }
  .step-num, .js .step-num { transform: none; opacity: 1; }
  .cta-leaf { transform: scaleX(.45) skewY(-18deg); }
  .sd-result { transition: none; }
  .hl-word::before { transform: skew(-4deg) rotate(-1deg) scaleX(1); animation: none; }
  .hero-eyebrow, .hero-title .line, .hero-lead, .hero-ctas, .hero-trust { animation: none; opacity: 1; transform: none; }
  .show:hover .arch-frame, .card:hover, .btn-primary:hover { transform: none; }
  .success-leaf { animation: none; transform: scaleX(.4) skewY(-16deg); }
}

/* ---------- Small screens ---------- */
@media (max-width: 480px) {
  .stats { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .stat { padding: 1.1rem 1rem; }
  .stat-figure { font-size: 2rem; }
  .stat-claim { font-size: .9375rem; }
  .hero-ctas .btn { width: 100%; }
  .addons { flex-direction: column; align-items: flex-start; }
  .addons .link-hand { display: inline-block; padding-block: .5rem; background-position: left calc(100% - .5rem); }
}

/* ---------- Showpiece: scroll-driven 3D doorway ---------- */
.showpiece { position: relative; height: 300vh; background: #1E1712; color: var(--bg); }
.showpiece-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; background: #1E1712; }
.showpiece-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.showpiece-vignette { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(30,23,18,.92) 0%, rgba(30,23,18,.55) 22%, rgba(30,23,18,0) 48%), radial-gradient(130% 100% at 50% 40%, transparent 55%, rgba(20,14,10,.55) 100%); }
.showpiece-copy { position: absolute; inset: 0; pointer-events: none; }
.sp-step { position: absolute; left: var(--pad); right: var(--pad); bottom: clamp(2.5rem, 8vh, 5.5rem); max-width: 36rem; opacity: 0; transform: translateY(16px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.sp-step.is-on { opacity: 1; transform: none; pointer-events: auto; }
.sp-step .eyebrow { color: var(--mustard); margin-bottom: .9rem; }
.sp-step h2 { color: #FDFAF3; font-size: clamp(2rem, 4.8vw, 4.1rem); text-wrap: balance; }
.sp-step p:not(.eyebrow) { color: rgba(253,250,243,.78); font-size: clamp(1rem, 1.3vw, 1.2rem); margin-top: 1rem; max-width: 30rem; }
.sp-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
.sp-actions .btn-ghost { border-color: rgba(253,250,243,.55); color: #FDFAF3; }
.sp-actions .btn-ghost:hover { background: rgba(253,250,243,.1); color: #FDFAF3; }
.sp-progress { position: absolute; right: var(--pad); top: 50%; transform: translateY(-50%); width: 2px; height: 140px; background: rgba(253,250,243,.18); pointer-events: none; }
.sp-progress i { display: block; width: 100%; height: 0; background: var(--mustard); transition: height .15s linear; }
.sp-hint { position: absolute; left: 50%; bottom: 1.4rem; transform: translateX(-50%); font: 600 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(253,250,243,.7); pointer-events: none; transition: opacity .5s; padding-bottom: 1.2rem; }
.sp-hint::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 1px; height: .9rem; background: var(--mustard); animation: hintDrop 1.6s ease-in-out infinite; }
.sp-hint.is-gone { opacity: 0; }
@keyframes hintDrop { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
@media (max-width: 639px) {
  .sp-step { bottom: clamp(2rem, 6vh, 4rem); right: calc(var(--pad) + 1rem); }
  .sp-step h2 { font-size: clamp(1.75rem, 8.5vw, 2.4rem); }
  .sp-progress { height: 90px; right: calc(var(--pad) * .6); }
}
/* static fallback: reduced motion, or no WebGL */
.showpiece.is-static { height: auto; }
.showpiece.is-static .showpiece-stage { position: relative; height: auto; min-height: 78vh; display: flex; align-items: flex-end; padding: clamp(6rem, 14vh, 9rem) 0 clamp(3rem, 8vh, 5rem); }
.showpiece.is-static .showpiece-copy { position: relative; inset: auto; padding-inline: var(--pad); pointer-events: auto; }
.showpiece.is-static .sp-step { position: relative; left: auto; right: auto; bottom: auto; opacity: 1; transform: none; pointer-events: auto; }
.showpiece.is-static .sp-step:nth-child(2), .showpiece.is-static .sp-step:nth-child(3) { display: none; }
.showpiece.is-static .sp-step + .sp-step { margin-top: 2rem; }
.showpiece.is-static .sp-progress, .showpiece.is-static .sp-hint { display: none; }
.showpiece.is-static .showpiece-canvas { background: radial-gradient(70% 60% at 50% 45%, rgba(20,180,196,.35), transparent 70%), #1E1712; }
@media (prefers-reduced-motion: reduce) { .sp-hint::after { animation: none; } .sp-step { transition: none; } }

/* phones: keep the wordmark and menu button inside the screen */
@media (max-width: 479px) {
  .nav-inner { gap: .5rem; }
  .logo { gap: .4rem; }
  .logo-word { font-size: clamp(.95rem, 4.6vw, 1.2rem); }
  .logo-mark { height: 32px; }
}

/* ---------- Voice note from the founder ---------- */
.voice { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border: 1.5px solid var(--rule); border-radius: var(--radius); background: var(--surface-2); }
.voice-btn { flex: none; width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--grad-terracotta); color: #FFFDF8; display: grid; place-items: center; cursor: pointer; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease-out), box-shadow .25s; }
.voice-btn:hover { transform: translateY(-1px); box-shadow: 3px 3px 0 var(--mustard), var(--shadow-sm); }
.voice-btn:focus-visible { outline: 3px solid var(--mustard); outline-offset: 3px; }
.voice-btn svg { width: 22px; height: 22px; fill: currentColor; }
.voice-btn .voice-pause, .voice.is-playing .voice-btn .voice-play { display: none; }
.voice.is-playing .voice-btn .voice-pause { display: block; }
.voice-body { flex: 1; min-width: 0; }
.voice-label { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font: 600 .9375rem/1.2 var(--sans); color: var(--ink); margin-bottom: .55rem; }
.voice-time { font-weight: 500; font-size: .8125rem; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.voice-track { position: relative; height: 8px; border-radius: 4px; background: var(--bg-2); cursor: pointer; }
.voice-track:focus-visible { outline: 2px solid var(--mustard); outline-offset: 3px; }
.voice-track i { position: absolute; left: 0; top: 0; bottom: 0; width: var(--p, 0%); border-radius: 4px; background: var(--mustard); }
.voice-track::after { content: ""; position: absolute; top: 50%; left: var(--p, 0%); width: 14px; height: 14px; border-radius: 50%; background: var(--accent); border: 2px solid var(--surface-2); transform: translate(-50%, -50%); box-shadow: var(--shadow-sm); }
.voice.is-playing .voice-track i { background: linear-gradient(90deg, var(--mustard), var(--accent)); }
.hero-voice { max-width: 460px; margin: 1.6rem auto 0; text-align: left; animation: fadeUp .5s var(--ease-out) 720ms both; background: rgba(255,253,248,.85); backdrop-filter: blur(6px); }
@media (max-width: 479px) { .hero-voice { padding: .8rem .9rem; gap: .8rem; } .hero-voice .voice-btn { width: 46px; height: 46px; } }
/* keep decorative overflow from widening the page on phones */
#pricing { overflow-x: clip; }
@media (max-width: 639px) { .cta-door { margin-left: 0; } }

/* ---------- What's included: a numbered build sheet ---------- */
.included-grid { display: grid; gap: clamp(2rem, 4vw, 3.5rem) clamp(2.5rem, 6vw, 6rem); align-items: start; }
.included-head { margin-bottom: 0; }
@media (min-width: 900px) {
  .included-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); }
  .included-head { position: sticky; top: calc(var(--nav-h) + 1.5rem); }
  .included-grid .addons { grid-column: 2; }
}
.included-list { list-style: none; margin: 0; padding: 0; border-top: 1.5px solid var(--rule-strong); }
.included-list li { display: grid; grid-template-columns: 3.25rem 1fr; gap: 1rem; align-items: start; padding: clamp(1.1rem, 2.2vw, 1.6rem) 0; border-bottom: 1.5px solid var(--rule); }
.inc-num { font: 500 clamp(1.5rem, 2.2vw, 1.9rem)/1 var(--serif); font-variation-settings: "opsz" 72, "SOFT" 40; color: var(--accent); letter-spacing: -.02em; padding-top: .15rem; transition: transform .3s var(--ease-out); }
.included-list li:hover .inc-num { transform: translateX(4px); }
.inc-body h3 { font-size: clamp(1.25rem, 1.7vw, 1.55rem); margin-bottom: .35rem; }
.inc-body p { color: var(--muted); font-size: 1rem; line-height: 1.55; max-width: 44ch; }
.included-grid .addons { margin-top: clamp(1.25rem, 2.5vw, 2rem); }
@media (max-width: 479px) { .included-list li { grid-template-columns: 2.6rem 1fr; gap: .7rem; } }

/* ---------- Hero video ---------- */
.hero-video { max-width: 820px; margin: clamp(1.75rem, 3.5vw, 2.75rem) auto 0; animation: fadeUp .5s var(--ease-out) 840ms both; }
/* the frame owns the 16:9 box (padding hack works everywhere, Safari included); everything else is pinned inside it */
.hero-video-frame { position: relative; width: 100%; height: 0; padding-top: 56.25%; overflow: hidden; border-radius: var(--radius-lg); border: 2px solid var(--ink); background: var(--walnut); box-shadow: 8px 8px 0 var(--mustard), var(--shadow-lift); transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out); }
.hero-video-poster, .hero-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; display: block; border: 0; border-radius: 0; margin: 0; padding: 0; background: transparent; }
.hero-video-poster { cursor: pointer; overflow: hidden; font: inherit; color: inherit; -webkit-appearance: none; appearance: none; }
.hero-video-poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease-out); }
.hero-video-poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31,26,20,0) 45%, rgba(31,26,20,.55)); }
.hero-video-play { position: absolute; left: 50%; top: 50%; width: clamp(64px, 9vw, 88px); height: clamp(64px, 9vw, 88px); transform: translate(-50%, -50%); border-radius: 50%; background: var(--grad-terracotta); color: #FFFDF8; display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(21,83,168,.25), var(--shadow); z-index: 1; transition: transform .35s var(--ease-pop); }
.hero-video-play svg { width: 42%; height: 42%; fill: currentColor; margin-left: 4%; }
.hero-video-label { position: absolute; left: 1.25rem; bottom: 1.1rem; z-index: 1; font: 600 .9375rem/1 var(--sans); color: #FFFDF8; letter-spacing: .02em; }
.hero-video-frame:has(.hero-video-poster:hover) { transform: translateY(-3px); box-shadow: 10px 12px 0 var(--mustard), var(--shadow-lift); }
.hero-video-poster:hover img { transform: scale(1.03); }
.hero-video-poster:hover .hero-video-play { transform: translate(-50%, -50%) scale(1.08); }
.hero-video-poster:focus-visible { outline: 3px solid var(--mustard); outline-offset: -4px; }
@media (max-width: 639px) { .hero-video-frame { border-radius: var(--radius); box-shadow: 5px 5px 0 var(--mustard), var(--shadow); } .hero-video-label { display: none; } }
@media (prefers-reduced-motion: reduce) { .hero-video { animation: none; } .hero-video-frame, .hero-video-poster img, .hero-video-play { transition: none; } }
.logo-light .logo-mark { filter: drop-shadow(0 0 6px rgba(255,255,255,.35)); }

@media (min-width: 1024px) and (max-width: 1199px) { .logo-word { font-size: 1.05rem; } .logo { gap: .45rem; } .logo-mark { height: 34px; } }

/* wide screens: the header can use more width than the content, so the phone fits */
@media (min-width: 1400px) { .nav-inner { max-width: 1360px; } .nav-phone { display: inline-flex; } }

/* ---------- Square payment button in the pricing panel ---------- */
.price-pay { margin-top: 1.1rem; display: flex; flex-direction: column; align-items: center; gap: .7rem; }
.btn-ghost-light { background: transparent; color: var(--bg); border: 1.5px solid rgba(246,239,227,.55); }
.btn-ghost-light:hover { background: rgba(246,239,227,.1); border-color: var(--bg); transform: translateY(-1px); }
.price-pay-note { font-size: .875rem; line-height: 1.45; color: rgba(246,239,227,.75); max-width: 40ch; margin: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* ---------- Add-ons ---------- */
.addons-head { text-align: center; margin-inline: auto; }
.addons-head .section-intro { margin-inline: auto; }
.bundle {
  position: relative; display: grid; gap: clamp(1.5rem, 3vw, 3rem); align-items: center;
  background: var(--grad-walnut); color: var(--bg); border-radius: var(--radius-lg);
  padding: clamp(2rem, 4vw, 3rem); box-shadow: var(--shadow-lift);
}
@media (min-width: 900px) { .bundle { grid-template-columns: 1.6fr 1fr; } }
.bundle::before { content: ""; position: absolute; inset: 10px; border: 1.5px dashed rgba(246,239,227,.18); border-radius: 18px; pointer-events: none; }
.bundle-tag { position: absolute; top: -14px; left: clamp(2rem, 4vw, 3rem); background: var(--mustard); color: #0B2447; font: 700 .75rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; padding: .55rem .9rem; border-radius: 999px; box-shadow: var(--shadow-sm); }
.bundle h3 { font: 600 clamp(1.75rem, 3vw, 2.4rem)/1.1 var(--serif); letter-spacing: -.02em; color: var(--bg); margin-bottom: .6rem; }
.bundle-tagline { font: italic 400 clamp(1.1rem, 1.5vw, 1.3rem)/1.4 var(--serif); color: var(--bg); margin-bottom: .9rem; max-width: 44ch; }
.bundle-copy { color: rgba(246,239,227,.8); font-size: 1rem; line-height: 1.6; margin-bottom: 1.25rem; max-width: 56ch; }
.bundle-list { display: grid; gap: .55rem; font-weight: 500; }
.bundle-list li { display: flex; align-items: center; gap: .6rem; }
.bundle-list svg { flex: none; width: 20px; height: 20px; fill: none; stroke: var(--mustard); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.bundle-side { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; position: relative; }
@media (min-width: 900px) { .bundle-side { align-items: center; text-align: center; padding-left: clamp(1.5rem, 3vw, 2.5rem); border-left: 1.5px solid rgba(246,239,227,.18); } }
.bundle-price { font: 500 1rem/1 var(--sans); color: rgba(246,239,227,.8); }
.bundle-price span { font: 600 clamp(3rem, 6vw, 4.25rem)/1 var(--serif); letter-spacing: -.03em; color: var(--bg); margin-right: .15rem; }
.bundle-save { color: var(--mustard); font-weight: 600; font-size: .9375rem; max-width: 26ch; }
.bundle .btn { margin-top: .5rem; }
.addons-sub { margin: clamp(2.5rem, 5vw, 3.5rem) 0 1.25rem; font: 600 .8125rem/1.5 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); text-align: center; max-width: none; }
.addon-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
@media (min-width: 760px) { .addon-grid { grid-template-columns: 1fr 1fr; } }
.addon { display: flex; flex-direction: column; gap: .7rem; padding: clamp(1.4rem, 2.5vw, 2rem); background: var(--surface); border: 1.5px solid var(--rule); border-radius: var(--radius); }
.addon header { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; padding-bottom: .8rem; border-bottom: 1.5px solid var(--rule); }
.addon h3 { font-size: clamp(1.2rem, 1.6vw, 1.4rem); margin: 0; }
.addon-price { font: 600 1.5rem/1 var(--serif); color: var(--accent); white-space: nowrap; margin: 0; }
.addon-price span { font: 500 .875rem/1 var(--sans); color: var(--muted); margin-left: .1rem; }
.addon-price-ask { font: 600 1rem/1 var(--sans); color: var(--muted); }
.addon-tagline { font-weight: 600; color: var(--ink); line-height: 1.4; }
.addon p:not(.addon-tagline):not(.addon-price) { color: var(--muted); font-size: .9688rem; line-height: 1.6; }
.addon-tiers { display: grid; gap: .1rem; margin: .2rem 0; border-top: 1px dashed var(--rule); }
.addon-tiers li { display: flex; justify-content: space-between; padding: .5rem 0; border-bottom: 1px dashed var(--rule); font-size: .9688rem; }
.addon-tiers b { color: var(--ink); }
.addon-link { margin-top: auto; padding-top: .4rem; font-weight: 600; align-self: flex-start; }
.addon-link::after { content: " \2192"; }

/* add-on picks in the contact form */
.addon-picks { border: 0; margin: 0; padding: 0; min-width: 0; }
.addon-picks legend { font: 600 .875rem/1.2 var(--sans); color: var(--muted); margin-bottom: .55rem; padding: 0; }
.check-grid { display: grid; gap: .45rem .9rem; }
@media (min-width: 520px) { .check-grid { grid-template-columns: 1fr 1fr; } }
.check { display: flex; align-items: center; gap: .55rem; min-height: 36px; cursor: pointer; font-size: .9375rem; color: var(--ink); }
.check input { width: 18px; height: 18px; accent-color: var(--accent); flex: none; margin: 0; }
.field .check input { width: 18px; height: 18px; min-height: 0; padding: 0; border: 0; border-radius: 3px; box-shadow: none; background: none; }
.check-grid { gap: .15rem .9rem; }

/* ---------- Client work: A/B comparison slider ---------- */
.cw-head { text-align: center; margin-inline: auto; }
.cw-head .section-intro { margin-inline: auto; }
.cw-toolbar { display: flex; justify-content: center; margin-bottom: 1.25rem; }
.cw-seg { display: inline-flex; gap: .25rem; padding: .3rem; background: var(--surface); border: 1.5px solid var(--rule); border-radius: 999px; }
.cw-seg button { border: 0; background: transparent; font: 600 .9375rem/1 var(--sans); color: var(--muted); padding: .7rem 1.1rem; min-height: 44px; border-radius: 999px; cursor: pointer; transition: background .2s, color .2s; }
.cw-seg button[aria-pressed="true"] { background: var(--grad-terracotta); color: #FFFDF8; }
.cw-seg button:focus-visible { outline: 3px solid var(--mustard); outline-offset: 2px; }
.compare {
  position: relative; width: 100%; height: min(78vh, 820px); min-height: 460px;
  border-radius: var(--radius-lg); overflow: hidden; background: var(--walnut);
  border: 2px solid var(--ink); box-shadow: 8px 8px 0 var(--mustard), var(--shadow-lift);
  isolation: isolate; touch-action: pan-y;
}
.cmp-frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; background: #fff; }
.cmp-a { clip-path: inset(0 calc(100% - var(--x)) 0 0); z-index: 2; }
.cmp-b { z-index: 1; }
.compare.is-dragging .cmp-frame { pointer-events: none; }
.cmp-bar { position: absolute; top: 0; bottom: 0; left: var(--x); width: 3px; transform: translateX(-50%); background: #FFFDF8; box-shadow: 0 0 0 1px rgba(16,33,63,.35), 0 0 18px rgba(0,0,0,.35); z-index: 3; pointer-events: none; }
.cmp-handle {
  position: absolute; top: 50%; left: var(--x); z-index: 4; transform: translate(-50%, -50%);
  width: 56px; height: 56px; border-radius: 50%; border: 3px solid #FFFDF8; background: var(--grad-terracotta); color: #FFFDF8;
  display: grid; place-items: center; cursor: ew-resize; touch-action: none; box-shadow: 0 6px 20px rgba(0,0,0,.35);
}
.cmp-handle svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.cmp-handle:focus-visible { outline: 3px solid var(--mustard); outline-offset: 4px; }
.cmp-tag { position: absolute; bottom: 1rem; z-index: 3; pointer-events: none; font: 700 .8125rem/1 var(--sans); letter-spacing: .12em; color: #FFFDF8; background: rgba(16,33,63,.82); padding: .5rem .75rem; border-radius: 999px; transition: opacity .2s; }
.cmp-tag-a { left: 1rem; }
.cmp-tag-b { right: 1rem; }
.compare[data-side="a"] .cmp-tag-b, .compare[data-side="b"] .cmp-tag-a { opacity: 0; }
.cmp-loading { position: absolute; inset: 0; z-index: 5; display: grid; place-items: center; color: #FFFDF8; font: italic 500 1.25rem/1 var(--serif); background: var(--grad-walnut); transition: opacity .4s; pointer-events: none; }
.compare.is-ready .cmp-loading { opacity: 0; }
.cw-cards { display: grid; gap: clamp(1rem, 2vw, 1.5rem); margin-top: clamp(1.75rem, 3vw, 2.5rem); }
@media (min-width: 760px) { .cw-cards { grid-template-columns: 1fr 1fr; } }
.cw-card { display: flex; flex-direction: column; gap: .5rem; padding: clamp(1.3rem, 2.5vw, 1.8rem); background: var(--surface); border: 1.5px solid var(--rule); border-radius: var(--radius); }
.cw-label { font: 700 .75rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.cw-card h3 { font-size: clamp(1.2rem, 1.6vw, 1.4rem); }
.cw-card p:not(.cw-label) { color: var(--muted); font-size: .9688rem; line-height: 1.6; }
.cw-card .link-hand { margin-top: auto; padding-top: .3rem; font-weight: 600; align-self: flex-start; }
.cw-card .link-hand::after { content: " \2197"; }
.cw-note { text-align: center; color: var(--muted); margin: clamp(1.5rem, 3vw, 2rem) auto 0; max-width: 60ch; }
@media (max-width: 639px) {
  .compare { height: 72vh; min-height: 420px; border-radius: var(--radius); box-shadow: 5px 5px 0 var(--mustard), var(--shadow); }
  .cmp-handle { width: 52px; height: 52px; }
  .cw-seg button { padding: .65rem .8rem; font-size: .875rem; }
}
.cmp-back { position: absolute; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 6; box-shadow: 0 8px 24px rgba(0,0,0,.35); }

/* ---------- Checkout / order builder ---------- */
.co-head { text-align: center; margin-inline: auto; }
.co-head .section-intro { margin-inline: auto; }
.co-grid { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
@media (min-width: 960px) { .co-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } }
.co-options { display: grid; gap: 1.5rem; }
.co-group { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: .5rem; }
.co-group legend { font: 700 .75rem/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: .6rem; padding: 0; }
.co-group legend small { text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--accent); margin-left: .5rem; }
.co-opt {
  display: grid; grid-template-columns: auto 1fr auto; gap: .9rem; align-items: center;
  padding: 1rem 1.15rem; background: var(--surface); border: 1.5px solid var(--rule); border-radius: var(--radius);
  cursor: pointer; transition: border-color .2s, box-shadow .2s, background .2s;
}
.co-opt:hover { border-color: var(--rule-strong); }
.co-opt:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(21,83,168,.12); background: var(--surface-2); }
.co-opt:has(input:focus-visible) { outline: 3px solid var(--mustard); outline-offset: 2px; }
.co-opt input { width: 20px; height: 20px; margin: 0; accent-color: var(--accent); }
.co-opt.is-locked { cursor: default; background: var(--surface-2); border-color: var(--accent); }
.co-best { border-width: 2px; }
.co-name { font-weight: 600; color: var(--ink); line-height: 1.3; }
.co-name small { display: block; font-weight: 500; font-size: .875rem; color: var(--muted); margin-top: .2rem; }
.co-badge { font-style: normal; font: 700 .6875rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #0B2447; background: var(--mustard); padding: .3rem .5rem; border-radius: 999px; margin-left: .4rem; vertical-align: 2px; }
.co-price { font: 600 1.125rem/1 var(--serif); color: var(--ink); white-space: nowrap; text-align: right; }
.co-price small { font: 500 .8125rem/1 var(--sans); color: var(--muted); margin-left: .1rem; }
.co-price-ask { font: 600 .875rem/1 var(--sans); color: var(--muted); }
.co-when-bundled { display: none !important; }
.co-options.is-bundled [data-in-bundle] .co-when-bundled { display: inline !important; }
.co-options.is-bundled label[data-in-bundle] .co-when-bundled { display: block !important; }
.co-options.is-bundled label[data-in-bundle], .co-options.is-bundled fieldset[data-in-bundle] .co-opt { opacity: .55; cursor: not-allowed; }
.co-summary {
  position: relative; background: var(--grad-walnut); color: var(--bg); border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: var(--shadow-lift); display: grid; gap: 1rem;
}
@media (min-width: 960px) { .co-summary { position: sticky; top: calc(var(--nav-h) + 1rem); } }
.co-summary h3 { font: 600 1.5rem/1.1 var(--serif); color: var(--bg); }
.co-lines { display: grid; gap: .55rem; padding-bottom: 1rem; border-bottom: 1.5px dashed rgba(246,239,227,.25); }
.co-lines li { display: flex; justify-content: space-between; gap: 1rem; font-size: .9375rem; color: rgba(246,239,227,.88); }
.co-lines li b { color: var(--bg); font-weight: 600; white-space: nowrap; }
.co-total { display: flex; justify-content: space-between; align-items: baseline; }
.co-total span { font-weight: 600; }
.co-total b { font: 600 2.25rem/1 var(--serif); color: var(--bg); letter-spacing: -.02em; }
.co-renew { font-size: .875rem; line-height: 1.5; color: var(--mustard); margin: 0; }
.co-email label { color: rgba(246,239,227,.8); }
.co-email input { background: rgba(255,253,248,.96); }
.co-pay { width: 100%; justify-content: center; }
.co-pay[aria-busy="true"] { opacity: .7; pointer-events: none; }
.co-error { margin: 0; padding: .75rem .9rem; border-radius: 10px; background: rgba(178,58,43,.18); color: #FFD9D2; font-size: .875rem; line-height: 1.45; }
.co-error a { color: #fff; }
.co-fine { margin: 0; font-size: .8125rem; line-height: 1.5; color: rgba(246,239,227,.7); }
.co-fine .link-hand { color: var(--bg); }
@media (max-width: 479px) { .co-opt { grid-template-columns: auto 1fr; } .co-price { grid-column: 2; text-align: left; } }
.addon-included { font-size: .875rem !important; font-weight: 600; color: var(--accent) !important; margin: -.2rem 0 0; }
.co-fields { display: grid; gap: .8rem; }
.co-fields label { color: rgba(246,239,227,.8); }
.co-fields input { background: rgba(255,253,248,.96); }
.co-fields .field.has-error input { border-color: #FF9C8C; box-shadow: 0 0 0 3px rgba(255,156,140,.25); }
.co-done { padding: 1rem 1.1rem; border-radius: 12px; background: rgba(20,180,196,.14); border: 1.5px solid rgba(20,180,196,.45); }
.co-done p { margin: 0; color: var(--bg); font-size: .9375rem; line-height: 1.5; }
.co-done .co-done-title { font: 600 1.2rem/1.2 var(--serif); margin-bottom: .35rem; }

/* ---------- SEO pass: kickers inside headings, demoted 3D captions ---------- */
h2 > .eyebrow { display: block; }
.sp-step p.sp-heading {
  font-family: var(--serif); font-weight: 600; color: #FDFAF3; margin: 0; max-width: none;
  font-size: clamp(2rem, 4.8vw, 4.1rem); line-height: 1.08; letter-spacing: -.02em;
  font-variation-settings: "opsz" 96, "SOFT" 40; text-wrap: balance;
}

/* bundle: optional, after the first 24 months */
.bundle-when { color: rgba(246,239,227,.8); font-weight: 600; font-size: .9375rem; max-width: 26ch; margin: .25rem 0 0; }
.co-opt.is-locked .co-price { color: var(--accent); }

/* ---------- Free CRM: dark band with an industry switcher over a sample pipeline ---------- */
.crm-section { position: relative; overflow: hidden; background: var(--grad-walnut); color: var(--bg); }
.crm-section::before { content: ""; position: absolute; inset: -20% -10% auto auto; width: 60%; height: 80%; background: radial-gradient(closest-side, rgba(20,180,196,.22), rgba(20,180,196,0)); pointer-events: none; }
.crm-grid { position: relative; display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 1024px) { .crm-grid { grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr); } }
.crm-new { display: inline-block; margin-bottom: 1.1rem; padding: .45rem .8rem; border-radius: 999px; background: var(--mustard); color: #0B2447; font: 700 .75rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; max-width: none; }
.crm-section h2 { color: var(--bg); margin-bottom: 1.1rem; }
.crm-section h2 .eyebrow { color: var(--mustard); }
.crm-intro { color: rgba(246,239,227,.82); font-size: clamp(1.0625rem, 1.3vw, 1.2rem); margin-bottom: 1.6rem; }
.crm-points { display: grid; gap: .85rem; margin-bottom: 2rem; }
.crm-points li { display: flex; align-items: flex-start; gap: .7rem; color: rgba(246,239,227,.8); line-height: 1.45; }
.crm-points strong { color: var(--bg); font-weight: 600; }
.crm-points svg { flex: none; width: 22px; height: 22px; margin-top: 1px; fill: none; stroke: var(--mustard); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.crm-price { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.6rem; padding: 1.2rem 1.4rem; border: 1.5px dashed rgba(246,239,227,.28); border-radius: var(--radius); }
.crm-price-main { display: flex; align-items: center; gap: .75rem; margin: 0; }
.crm-zero { font: 600 clamp(3rem, 5.5vw, 3.75rem)/1 var(--serif); letter-spacing: -.03em; color: var(--bg); }
.crm-zero::first-letter { color: var(--mustard); }
.crm-term { font: 700 .8125rem/1.25 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--mustard); }
.crm-price-note { flex: 1 1 16rem; margin: 0; color: rgba(246,239,227,.78); font-size: .9688rem; line-height: 1.5; }
.crm-price-note b { color: var(--bg); font-weight: 600; }
.crm-demo { min-width: 0; }
.crm-demo-label { margin-bottom: .8rem; font: 600 .8125rem/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(246,239,227,.7); max-width: none; }
.crm-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.1rem; }
.crm-chips button { min-height: 40px; padding: .6rem .95rem; border-radius: 999px; border: 1.5px solid rgba(246,239,227,.3); background: transparent; color: var(--bg); font: 600 .875rem/1 var(--sans); cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.crm-chips button:hover { border-color: var(--bg); }
.crm-chips button[aria-pressed="true"] { background: var(--mustard); border-color: var(--mustard); color: #0B2447; }
.crm-chips button:focus-visible { outline: 3px solid var(--mustard); outline-offset: 3px; }
.crm-window { overflow: hidden; border-radius: 18px; background: #FDFAF3; color: var(--ink); box-shadow: 0 30px 70px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08); }
.crm-bar { display: flex; align-items: center; gap: .45rem; padding: .7rem 1rem; background: #EFE4D2; border-bottom: 1px solid var(--rule); }
.crm-bar span { width: 10px; height: 10px; border-radius: 50%; background: #E3A79B; }
.crm-bar span:nth-child(2) { background: #E8CB8E; }
.crm-bar span:nth-child(3) { background: #9FCFAF; }
.crm-bar p { margin: 0 0 0 .5rem; font: 600 .8125rem/1.2 var(--sans); color: var(--muted); max-width: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; min-height: 17rem; padding: .9rem; transition: opacity .18s var(--ease-out); }
.crm-board.is-swapping { opacity: 0; }
.crm-col { display: grid; gap: .45rem; align-content: start; min-width: 0; padding: .55rem; border-radius: 12px; background: #EFE4D2; }
.crm-col-title { display: flex; align-items: center; gap: .4rem; margin: .1rem .15rem .2rem; font: 600 .75rem/1.25 var(--sans); color: var(--ink); max-width: none; }
.crm-col-title::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--c); }
.crm-col-title span { margin-left: auto; color: var(--muted); }
.crm-card { min-width: 0; padding: .55rem .6rem; border-radius: 9px; background: #FFFDF8; border: 1px solid var(--rule); border-left: 3px solid var(--c); box-shadow: 0 1px 2px rgba(31,26,20,.06); animation: crm-in .45s var(--ease-out) both; animation-delay: calc(var(--d, 0) * 55ms); }
.crm-card b { display: block; font: 600 .8125rem/1.25 var(--sans); color: var(--ink); overflow-wrap: anywhere; }
.crm-card span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .1rem .4rem; margin-top: .25rem; font-size: .75rem; line-height: 1.3; color: var(--muted); }
.crm-card i, .crm-card em { font-style: normal; }
.crm-card em { font-weight: 600; color: var(--accent-deep); }
@keyframes crm-in { from { opacity: 0; transform: translateY(6px); } }
.crm-note { margin-top: 1rem; color: rgba(246,239,227,.72); font-size: .9375rem; }
@media (max-width: 559px) { .crm-board { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .crm-card { animation: none; } .crm-board { transition: none; } }
.addon-wide { grid-column: 1 / -1; }

/* ---------- Buy services individually ---------- */
.buy { margin-top: clamp(3.5rem, 7vw, 5.5rem); scroll-margin-top: 80px; }
.buy-title { font-size: clamp(1.75rem, 3vw, 2.4rem); margin-bottom: .9rem; }
.co-pay:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.co-opt input:disabled { cursor: not-allowed; }
.addons-sub .link-hand { text-transform: none; letter-spacing: 0; font-size: .9375rem; }

/* ---------- Domain search ---------- */
.domain-search { margin-top: clamp(3.5rem, 7vw, 5.5rem); scroll-margin-top: 80px; max-width: 820px; margin-inline: auto; }
.ds-form { display: flex; gap: .6rem; }
.ds-form input { flex: 1; min-width: 0; min-height: 56px; padding: 0 1.2rem; font: 500 1.0625rem/1 var(--sans); color: var(--ink); background: var(--surface-2); border: 1.5px solid var(--rule-strong); border-radius: 999px; }
.ds-form input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(21,83,168,.14); }
.ds-status { margin: .9rem 0 .4rem; min-height: 1.5em; color: var(--muted); font-weight: 500; text-align: center; max-width: none; }
.ds-results { display: grid; gap: .5rem; }
.ds-row { display: flex; align-items: center; gap: .9rem; padding: .7rem .8rem .7rem 1.1rem; background: var(--surface); border: 1.5px solid var(--rule); border-radius: var(--radius); }
.ds-name { flex: 1; min-width: 0; font-weight: 600; overflow-wrap: anywhere; }
.ds-tag { font: 700 .75rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; padding: .4rem .6rem; border-radius: 999px; background: var(--bg-2); color: var(--muted); }
.ds-row.is-available { border-color: rgba(18,128,90,.45); }
.ds-row.is-available .ds-tag { background: #DDF1E6; color: #0E6B4B; }
.ds-row.is-taken .ds-name { color: var(--muted); }
.ds-add { min-height: 40px; padding: .55rem 1rem; font-size: .9375rem; }
.ds-ask { font-size: .9375rem; }
.ds-note { margin: 1rem auto 0; text-align: center; color: var(--muted); font-size: .9375rem; }
@media (max-width: 559px) { .ds-form { flex-direction: column; } .ds-row { flex-wrap: wrap; } .ds-add { width: 100%; } }
[data-sv-domain-field][hidden] { display: none; }
.sv-hint { display: block; margin-top: .35rem; font-size: .8125rem; line-height: 1.45; color: rgba(246,239,227,.7); }
.sv-hint .link-hand { color: var(--bg); }

/* ---------- Real client sites ---------- */
.work-grid { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem); }
@media (min-width: 760px) { .work-grid { grid-template-columns: 1fr 1fr; } }
.work { margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.work-shot { position: relative; overflow: hidden; border-radius: var(--radius); border: 1.5px solid var(--rule); background: var(--surface); box-shadow: var(--shadow); transition: transform .3s var(--ease-out), box-shadow .3s; }
.work-chrome { display: flex; gap: 6px; padding: 10px 12px; background: var(--bg-2); border-bottom: 1px solid var(--rule); }
.work-chrome span { width: 9px; height: 9px; border-radius: 50%; background: var(--rule-strong); opacity: .55; }
.work-shot img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; }
@media (hover: hover) { .work:hover .work-shot { transform: translateY(-4px); box-shadow: var(--shadow-lift); } }
.work-badge { position: absolute; top: 44px; right: 12px; padding: .4rem .7rem; border-radius: 999px; background: var(--mustard); color: #0B2447; font: 700 .6875rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; box-shadow: var(--shadow-sm); }
.work figcaption { display: grid; gap: .3rem; }
.work-kind { font: 600 .75rem/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.work-name { font: 600 clamp(1.2rem, 1.7vw, 1.4rem)/1.2 var(--serif); color: var(--ink); }
.work-desc { color: var(--muted); font-size: .9688rem; line-height: 1.55; }
.work-link { justify-self: start; font-weight: 600; font-size: .9375rem; margin-top: .2rem; }
.work-link::after { content: " \2197"; }

/* ---------- Bigger builds ---------- */
.cb-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
@media (min-width: 900px) { .cb-grid { grid-template-columns: repeat(3, 1fr); } }
.cb-card { display: flex; flex-direction: column; gap: .7rem; padding: clamp(1.4rem, 2.5vw, 2rem); background: var(--surface); border: 1.5px solid var(--rule); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.cb-label { font: 700 .75rem/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); max-width: none; }
.cb-card h3 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); }
.cb-card p:not(.cb-label) { color: var(--muted); font-size: .9688rem; line-height: 1.6; }
.cb-quote { margin-top: clamp(1.75rem, 3vw, 2.5rem); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem; padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: var(--radius-lg); background: var(--grad-walnut); color: var(--bg); box-shadow: var(--shadow-lift); }
.cb-quote p { margin: 0; flex: 1 1 22rem; font-size: clamp(1.0625rem, 1.4vw, 1.2rem); line-height: 1.5; color: rgba(246,239,227,.85); }
.cb-quote strong { color: var(--bg); font-weight: 600; }

/* ---------- First-year value callout ---------- */
.inc-value { display: flex; align-items: center; gap: 1.25rem 1.75rem; flex-wrap: wrap; padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.25rem, 2.5vw, 2rem); border-radius: var(--radius-lg); background: var(--grad-walnut); color: var(--bg); box-shadow: var(--shadow-lift); }
@media (min-width: 900px) { .included-grid .inc-value { grid-column: 2; } }
.inc-value-num { margin: 0; font: 600 clamp(2.75rem, 5vw, 3.75rem)/1 var(--serif); letter-spacing: -.03em; color: var(--bg); }
.inc-value-num::first-letter { color: var(--mustard); }
.inc-value-text { flex: 1 1 18rem; margin: 0; font-size: .9688rem; line-height: 1.55; color: rgba(246,239,227,.8); }
.inc-value-text strong { display: block; margin-bottom: .2rem; font-size: 1.0625rem; color: var(--bg); font-weight: 600; }
.bundle-year { margin: 0; padding: .55rem .85rem; border-radius: 10px; background: rgba(20,180,196,.14); border: 1px solid rgba(20,180,196,.4); color: var(--bg); font-size: .9375rem; font-weight: 500; max-width: 26ch; }
.bundle-year b { color: var(--mustard); }

/* ---------- Scrollable client sites ---------- */
.work-scroll { position: relative; display: block; aspect-ratio: 16 / 10; overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: auto; scrollbar-width: thin; scrollbar-color: rgba(16,33,63,.35) transparent; background: var(--surface); }
.work-scroll:focus-visible { outline: 3px solid var(--mustard); outline-offset: -3px; }
.work-scroll img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: initial; }
.work-hint { position: sticky; bottom: 12px; float: right; margin: -2.4rem 12px 0 0; display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .75rem; border-radius: 999px; background: rgba(16,33,63,.82); color: #FFFDF8; font: 600 .75rem/1 var(--sans); letter-spacing: .06em; pointer-events: none; transition: opacity .3s; }
.work-hint::after { content: "\2193"; }
.work-scroll.is-scrolled .work-hint { opacity: 0; }
/* the longer hero line wraps on narrow screens */
@media (max-width: 899px) { .hero-eyebrow span { white-space: normal; text-align: center; } }
/* Laptop+: tagline sits closer to the nav, with more room before the headline */
@media (min-width: 900px) {
  .hero { padding-top: calc(var(--nav-h) + clamp(1.25rem, 2.5vw, 2.25rem)); }
  .hero-eyebrow { margin-bottom: clamp(2rem, 3.5vw, 3rem); }
}
