/* Locked faces for the shared header, footer, and sticky bar.
   A page's own Fraunces or DM Sans file must not change these metrics. */
@font-face {
  font-family: "TL Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/tl-dm-sans-latin-v17.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: "TL Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/tl-dm-sans-latin-v17.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: "TL Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/tl-dm-sans-latin-v17.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: "TL Fraunces";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/tl-fraunces-latin-v38.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;
}
/* Page text. Same latin files for every browser, so the hero preloads are the files that paint. */
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/assets/fonts/tl-dm-sans-latin-v17.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: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url("/assets/fonts/fraunces-latin-v38.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: 600 700;
  font-display: swap;
  src: url("/assets/fonts/fraunces-italic-latin-v38.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;
}
/* Additive safeguards only. Existing page styles own component appearance. */
:root {
  --tl-color-navy: #1a2744;
  --tl-color-navy-light: #243354;
  --tl-color-orange: #f97316;
  --tl-color-blue: #2563eb;
  --tl-color-blue-light: #3b82f6;
  --tl-color-sky: #e8f2ff;
  --tl-color-border: #dde6f5;
  --tl-color-page: #fafaf8;
  --tl-color-white: #ffffff;
  --tl-color-black: #0f1420;
  --tl-surface-page: var(--tl-color-page);
  --tl-surface-card: var(--tl-color-white);
  --tl-surface-tint: var(--tl-color-sky);
  --tl-surface-dark: var(--tl-color-navy);
  --tl-text-primary: var(--tl-color-navy);
  --tl-text-secondary: #42506e;
  --tl-text-muted: #5a6a8a;
  --tl-text-on-dark: var(--tl-color-white);
  --tl-text-on-action: var(--tl-color-white);
  --tl-action-primary: #c2410c;
  --tl-action-primary-hover: #9a3412;
  --tl-action-primary-active: #7c2d12;
  --tl-action-secondary: var(--tl-color-blue);
  --tl-link: var(--tl-color-blue);
  --tl-success: #15803d;
  --tl-warning: #b45309;
  --tl-error: #dc2626;
  --tl-border-subtle: var(--tl-color-border);
  --tl-btn-primary-bg: var(--tl-action-primary);
  --tl-btn-primary-text: var(--tl-text-on-action);
  --tl-btn-primary-radius: 10px;
  --tl-btn-primary-padding-y: 16px;
  --tl-btn-primary-padding-x: 32px;
  --tl-btn-primary-font-size: 18px;
  --tl-btn-primary-font-weight: 700;
  --tl-btn-primary-min-height: 56px;
  --tl-input-bg: var(--tl-color-white);
  --tl-input-border: var(--tl-color-border);
  --tl-input-border-focus: var(--tl-color-blue);
  --tl-input-radius: 10px;
  --tl-input-padding-y: 14px;
  --tl-input-padding-x: 16px;
  --tl-input-font-size: 16px;
  --tl-input-error: var(--tl-error);
  --tl-card-bg: var(--tl-surface-card);
  --tl-card-border: var(--tl-color-border);
  --tl-card-radius: 12px;
  --tl-card-shadow: 0 1px 3px rgba(26,39,68,.08), 0 4px 12px rgba(26,39,68,.06);
  --tl-card-padding: 32px;
  --tl-space-1: 4px;
  --tl-space-2: 8px;
  --tl-space-3: 12px;
  --tl-space-4: 16px;
  --tl-space-6: 24px;
  --tl-space-8: 32px;
  --tl-space-12: 48px;
  --tl-space-16: 64px;
  --tl-space-24: 96px;
  --tl-text-xs: 12px;
  --tl-text-sm: 14px;
  --tl-text-base: 16px;
  --tl-text-lg: 18px;
  --tl-text-xl: 20px;
  --tl-text-2xl: 24px;
  --tl-text-3xl: 30px;
  --tl-text-4xl: 36px;
  --tl-text-5xl: 48px;
  --tl-text-hero: clamp(2.5rem, 5vw, 4rem);
  --tl-font-display: 'Fraunces', serif;
  --tl-font-body: 'DM Sans', sans-serif;
  --tl-content-max: 1200px;
  --tl-radius-sm: 4px;
  --tl-radius-md: 8px;
  --tl-radius-lg: 12px;
  --tl-radius-xl: 16px;
  --tl-radius-full: 9999px;
  --tl-shadow-1: 0 1px 2px rgba(26,39,68,.10);
  --tl-shadow-2: 0 1px 3px rgba(26,39,68,.08), 0 4px 12px rgba(26,39,68,.06);
  --tl-shadow-3: 0 8px 30px rgba(26,39,68,.14);
  --tl-motion-fast: 200ms ease-out;
  --tl-motion-base: 300ms ease-out;
  --tl-bp-sm: 640px;
  --tl-bp-md: 768px;
  --tl-bp-lg: 1024px;
  --tl-bp-xl: 1280px;
  /* Accessibility dimensions are deliberate exceptions to the spacing scale. */
  --tl-focus-width: 3px;
  --tl-focus-offset: 3px;
  --tl-anchor-offset: var(--tl-space-24);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--tl-focus-width) solid var(--tl-action-secondary);
  outline-offset: var(--tl-focus-offset);
}

:where([id]) { scroll-margin-top: var(--tl-anchor-offset); }

::selection {
  background-color: var(--tl-surface-tint);
  color: var(--tl-text-primary);
}

/* Keep animation completion: existing heroes start at opacity: 0. */
@media (prefers-reduced-motion: reduce) {
  :where(html) { scroll-behavior: auto !important; }
  :where(*, *::before, *::after) {
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
}

/* Two-tone focus ring on dark surfaces (navy nav, heroes, dark bands): white inner ring + blue outer ring.
   Light surfaces keep the single #2563eb ring above. */
:is(nav, header, footer, .hero, .bottom-cta, .proof-section, .step-number, .calc-outputs, [class*="dark"], [class*="navy"]) :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--tl-focus-width) solid var(--tl-color-white);
  outline-offset: 0;
  box-shadow: 0 0 0 6px var(--tl-color-blue);
}

.sticky-mobile-cta :is(a,button):focus-visible { outline:3px solid #1a2744; box-shadow:none; }

/* Real-specificity input focus so page-level outline:none cannot hide it. */
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: var(--tl-focus-width) solid var(--tl-action-secondary);
  outline-offset: 2px;
}

/* Minimum 44px tap target on logo links. */
.nav-logo, .footer-logo { display: inline-flex; align-items: center; min-height: 44px; }

/* Single-row header is 56px on small screens. */
@media (max-width: 980px) { :root { --tl-anchor-offset: 72px; } }

/* Shared header. Page styles must not restyle this bar. */
nav.tl-nav {
  position: sticky;
  top: 0;
  z-index: 200;
  height: auto;
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  flex-wrap: wrap;
  row-gap: 8px;
  padding: 8px 5%;
  background: #1a2744;
  color: #fff;
  box-shadow: 0 2px 20px rgba(0,0,0,0.18);
  font-size: 16px;
  width: 100%;
  box-sizing: border-box;
  font-family: "TL Sans", "DM Sans Fallback", sans-serif;
}
nav.tl-nav *,
footer.site-footer,
footer.site-footer *,
.sticky-mobile-cta,
.sticky-mobile-cta * { box-sizing: border-box; }
nav.tl-nav .nav-logo,
nav.tl-nav .nav-logo:hover {
  color: #fff;
  text-decoration: none;
  font-size: 1.35rem !important;
  font-weight: 700;
  letter-spacing: -0.01em;
  font-family: "TL Fraunces", Georgia, serif !important;
}
nav.tl-nav .nav-logo span { color: #f97316; }
nav.tl-nav .nav-links {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
nav.tl-nav .nav-links > a,
nav.tl-nav .nav-services > summary {
  color: #fff !important;
  text-decoration: none;
  font-size: 0.86rem !important;
  font-weight: 600 !important;
  white-space: nowrap;
  cursor: pointer;
  list-style: none;
}
nav.tl-nav .nav-links > a:hover,
nav.tl-nav .nav-services > summary:hover { color: #fff; }
nav.tl-nav.tl-nav-light .nav-links > a,
nav.tl-nav.tl-nav-light .nav-services > summary,
nav.tl-nav.tl-nav-light .nav-links > a:hover,
nav.tl-nav.tl-nav-light .nav-services > summary:hover { color: #1a2744; }
nav.tl-nav .nav-services {
  position: relative;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0;
}
nav.tl-nav .nav-services > summary::-webkit-details-marker { display: none; }
nav.tl-nav .nav-links > a,
nav.tl-nav .nav-phone,
nav.tl-nav .nav-services > summary {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  box-sizing: border-box;
}
nav.tl-nav .nav-services:not([open]) > .nav-services-menu { display: none; }
nav.tl-nav .nav-services > summary {
  justify-content: flex-start;
  background: transparent;
  border: 0;
  width: auto;
  gap: 0 !important;
  flex: 0 0 auto;
}
nav.tl-nav .nav-services > summary::after {
  content: "" !important;
  margin-left: 6px;
  border: 4px solid transparent;
  border-top-color: currentColor;
  transform: translateY(2px);
  font-size: 0;
}
nav.tl-nav .nav-services-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 300;
  width: min(440px, calc(100vw - 24px));
  min-width: min(440px, calc(100vw - 24px));
  max-height: min(70vh, 520px);
  overflow-y: auto;
  background: #fff;
  color: #1a2744;
  border-radius: 10px;
  padding: 8px;
  box-shadow: 0 8px 30px rgba(26,39,68,.18);
  display: flex;
  flex-direction: column;
}
nav.tl-nav .nav-services-label {
  margin: 12px 10px 2px;
  padding: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #5a6a8a;
  line-height: 1.3;
}
nav.tl-nav .nav-services-group + .nav-services-group {
  margin-top: 8px;
  padding-top: 4px;
  border-top: 1px solid #dde6f5;
}
nav.tl-nav .nav-services-minor a.nav-services-sub {
  font-size: .9rem;
  opacity: .85;
}
nav.tl-nav .nav-services-menu a {
  color: #1a2744;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 8px 10px;
  border-radius: 6px;
  white-space: normal;
  display: flex;
  align-items: center;
  min-height: 44px;
  box-sizing: border-box;
  letter-spacing: 0;
  text-transform: none;
}
nav.tl-nav .nav-services-menu a:hover { background: #e8f2ff; color: #1a2744; }
nav.tl-nav .nav-services-menu a.nav-services-hub {
  margin-top: 0;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: #1a2744;
}
nav.tl-nav .nav-services-menu a.nav-services-sub {
  padding-left: 22px;
  font-weight: 500;
}
nav.tl-nav .nav-cta {
  background: #f97316;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  border-radius: 8px;
  padding: 10px 16px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  box-sizing: border-box;
  white-space: nowrap;
}
nav.tl-nav .nav-cta:hover { background: #ea6c0a; color: #fff; }
nav.tl-nav .nav-phone { color: #fff; text-decoration: none; font-weight: 700; white-space: nowrap; }
nav.tl-nav.tl-nav-light .nav-phone { color: #1a2744; }
/* Through tablet, keep the bar one row. Page rules that set .nav-links{width:100%}
   otherwise drop Home/Services, the phone line, and the call button onto separate rows. */
@media (max-width: 980px) {
  nav.tl-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    padding: 0 12px !important;
    gap: 8px !important;
    row-gap: 0 !important;
  }
  nav.tl-nav .nav-logo { flex: 0 0 auto; min-width: max-content; }
  nav.tl-nav .nav-links {
    width: auto !important;
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: nowrap !important;
    gap: 8px !important;
  }
  nav.tl-nav .nav-links > a,
  nav.tl-nav .nav-services > summary { white-space: nowrap !important; }
  nav.tl-nav .nav-services-menu {
    position: fixed !important;
    top: 56px;
    left: 12px;
    width: min(440px, calc(100vw - 24px));
    min-width: 0;
    max-height: min(70vh, 480px);
  }
}

/* Business-type hub cross-links. Light text for navy heroes. */
.hub-kicker { margin: 0 0 12px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: none; }
.hub-kicker a { color: #f97316; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.not-you { margin: 0 0 18px; font-size: 0.95rem; line-height: 1.5; }
.not-you a {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-right: 16px;
}

/* Under 640px the header stays one row: logo, short nav, compact call icon. */
@media (max-width: 640px) {
  nav.tl-nav {
    flex-wrap: nowrap !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    padding: 0 12px !important;
    gap: 8px !important;
    row-gap: 0 !important;
  }
  nav.tl-nav .nav-logo { font-size: 1.05rem !important; flex: 0 0 auto; min-width: max-content; }
  nav.tl-nav .nav-links {
    width: auto !important;
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: nowrap !important;
    gap: 8px !important;
  }
  nav.tl-nav .nav-links > a,
  nav.tl-nav .nav-services > summary {
    font-size: 0.8rem !important;
    white-space: nowrap !important;
  }
  nav.tl-nav .nav-phone { display: none !important; }
  nav.tl-nav a.nav-cta[href^="tel:"] {
    display: inline-flex !important;
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px !important;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 0;
    overflow: hidden;
    border-radius: 8px;
    gap: 0;
  }
  nav.tl-nav a.nav-cta[href^="tel:"]::before {
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
  }
  nav.tl-nav .nav-services-menu {
    position: fixed !important;
    top: 56px;
    left: 12px;
    width: min(440px, calc(100vw - 24px));
    min-width: 0;
    max-height: min(70vh, 480px);
  }
}

/* Shared footer. One muted colour, generous space, one column on small screens. */
footer.site-footer {
  display: block !important;
  background: #111827 !important;
  color: rgba(255,255,255,.72);
  padding: 64px 6% 40px;
  font-size: 16px;
  width: 100%;
  font-family: "TL Sans", "DM Sans Fallback", sans-serif;
}
footer.site-footer .footer-logo,
footer.site-footer .footer-logo:hover {
  color: #fff;
  text-decoration: none;
  font-family: "TL Fraunces", Georgia, serif !important;
  font-size: 1.35rem !important;
  font-weight: 700;
}
footer.site-footer .footer-logo span { color: #f97316; }
footer.site-footer .footer-tagline {
  margin: 8px 0 0;
  max-width: 36rem;
  color: rgba(255,255,255,.62);
  font-size: 1rem;
  line-height: 1.5;
}
footer.site-footer .footer-groups {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 36px;
  margin-top: 36px;
}
footer.site-footer .footer-heading {
  margin: 0 0 8px;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
footer.site-footer .footer-col { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
footer.site-footer .footer-col a {
  color: rgba(255,255,255,.78);
  text-decoration: none;
  font-size: 1rem;
  line-height: 1.35;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  box-sizing: border-box;
}
footer.site-footer .footer-col a:hover { color: #fff; }
footer.site-footer .footer-contact,
footer.site-footer .footer-copy {
  margin: 28px 0 0;
  color: rgba(255,255,255,.62);
  font-size: 1rem;
  line-height: 1.5;
}
footer.site-footer .footer-contact a {
  color: rgba(255,255,255,.86);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
footer.site-footer .footer-contact a:hover { color: #fff; }
footer.site-footer .footer-address {
  margin: 8px 0 0;
  color: rgba(255,255,255,.55);
  font-size: 1rem;
  line-height: 1.5;
}
@media (max-width: 800px) {
  footer.site-footer .footer-groups { grid-template-columns: 1fr; gap: 28px; }
}

/* Sticky call bar, visible at every width. */
.sticky-mobile-cta {
  display: block !important;
  position: fixed !important;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: #f97316;
  padding: 8px 16px 10px;
  text-align: center;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
  font-size: 16px;
  color: #fff;
  width: 100%;
  font-family: "TL Sans", "DM Sans Fallback", sans-serif;
}
.sticky-mobile-cta a {
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  letter-spacing: 0.01em;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 8px 20px;
  box-sizing: border-box;
  width: 100%;
}
.sticky-mobile-cta span {
  display: block;
  color: rgba(255,255,255,0.92);
  font-weight: 500;
  margin-top: 0;
  line-height: 1.3;
}
/* Form-only pages. Same bar, assessment link instead of the phone call. */
.sticky-mobile-cta.sticky-assessment {
  padding: 8px 12px 10px;
}
.sticky-mobile-cta.sticky-assessment a {
  line-height: 1.25;
  text-wrap: balance;
  padding: 10px 12px;
  min-height: 48px;
  white-space: normal;
}
body:has(.sticky-mobile-cta) {
  padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px)) !important;
}
/* Narrow phones: keep the first audience card's link above the call bar. */
@media (max-width: 430px) {
  .audiences { padding: 12px 6% 48px; }
  .audience-card {
    display: flex;
    flex-direction: column;
    padding: 14px 16px 20px;
  }
  .audience-card > .section-label { order: 1; }
  .audience-card > h2 { order: 2; margin-bottom: 6px; font-size: 1.35rem; line-height: 1.2; }
  .audience-card > .audience-hub { order: 3; margin: 0 0 14px; }
  .audience-card > .audience-types { order: 4; }
  .audience-card > p { order: 5; }
  .audience-card > ul { order: 6; margin-bottom: 0; }
  .audience-card > .audience-note { order: 7; margin-top: 14px; }
}

/* Homepage audience cards. */
.audiences { background: #fafaf8; padding: 72px 6%; }
.audiences-inner { max-width: 1100px; margin: 0 auto; display: grid; gap: 24px; }
.audience-card {
  background: #fff;
  border: 1px solid #dde6f5;
  border-radius: 16px;
  padding: 32px 28px;
}
.audience-card h2 {
  font-family: Fraunces, "Fraunces Fallback", Georgia, serif;
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 700;
  color: #1a2744;
  line-height: 1.25;
  margin: 0 0 12px;
  letter-spacing: -0.02em;
}
.audience-card .audience-types { font-weight: 700; color: #1a2744; margin: 0 0 10px; }
.audience-card p { color: #42506e; font-size: 1rem; line-height: 1.6; margin: 0 0 14px; }
.audience-card ul { margin: 0 0 18px; padding-left: 1.15rem; color: #1a2744; }
.audience-card li { margin: 0 0 10px; line-height: 1.45; font-size: 1rem; }
.audience-card a { color: #2563eb; font-weight: 700; }
.audience-hub { display: inline-flex; align-items: center; min-height: 44px; }

/* Comparison tables scroll inside the article instead of widening the page. */
.table-scroll {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}

/* Reading text is at least 16px. Headings, hero leads, and prices keep their own sizes. */
html { font-size: 16px !important; }
body :is(p, li, td, th, dd, dt, label, figcaption, caption):not(
  [style*="font-size:1"],
  [style*="font-size: 1"],
  [style*="font-size:2"],
  [style*="font-size: 2"],
  [style*="font-size:3"],
  [style*="font-size: 3"],
  .hero-sub,
  .section-sub,
  .lede,
  .subhead,
  .hub-support,
  .hero-rotation
) {
  font-size: 1rem !important;
}
body :is(span, div)[style*="font-size:0."],
body :is(span, div)[style*="font-size: 0."] {
  font-size: 1rem !important;
}
.range-labels,
.range-labels span,
.output-label,
.output-sub,
.section-eyebrow,
.hero-eyebrow,
.section-label,
.blog-meta,
.trust-item,
.form-card-label,
.hero-pre,
.offer-price-note,
.sticky-mobile-cta span,
.handle-list span,
.calls-yours .fine,
.hero-price .amt span {
  font-size: 1rem !important;
}
/* Keep lead paragraphs that were already above 16px. */
.contact-sub { font-size: 1.05rem !important; }
.calls-yours p { font-size: 1.05rem !important; }
.guarantee { font-size: 1.02rem !important; }
.flat p { font-size: 1.15rem !important; }
input, select, textarea { font-size: 1rem !important; }

/* Quiz choices and any leftover option chips. */
.hs-option {
  min-height: 44px !important;
  box-sizing: border-box;
}

/* Metric-matched fallbacks so a webfont swap does not reflow the page.
   size-adjust is the width ratio of the webfont to the local face at 100px. */
@font-face {
  font-family: "DM Sans Fallback";
  src: local("Arial"), local("Liberation Sans"), local("Nimbus Sans");
  size-adjust: 103.7%;
  ascent-override: 70%;
  descent-override: 23%;
  line-gap-override: 0%;
  font-display: swap;
}
@font-face {
  font-family: "Fraunces Fallback";
  src: local("Georgia"), local("Liberation Serif"), local("Times New Roman");
  size-adjust: 96.9%;
  ascent-override: 71%;
  descent-override: 26%;
  line-gap-override: 0%;
  font-display: swap;
}
/* Form-only header CTA. Full label on wide screens; short label once the bar is tight. */
nav.tl-nav a.nav-cta.gov-form-cta .cta-short { display: none; }
@media (max-width: 860px) {
  nav.tl-nav a.nav-cta.gov-form-cta .cta-full { display: none; }
  nav.tl-nav a.nav-cta.gov-form-cta .cta-short { display: inline; }
  nav.tl-nav a.nav-cta.gov-form-cta {
    padding: 6px 8px;
    min-height: 44px;
    max-width: 9.6rem;
    font-size: 0.72rem;
    line-height: 1.15;
    white-space: normal;
    text-align: center;
  }
}

/* In-content text links: prose, footer, and legal. Buttons keep their own colour. */
:is(p, li, td, dd, figcaption):not(.not-you, .footer-contact, .hub-kicker, .hub-eyebrow, .after-hours, .hero-sub, .hub-support) a:not(.btn-primary, .hub-cta, .nav-cta, .calc-cta, .hero-call, .hs-cta, .footer-logo, .menu-card) {
  color: var(--tl-link);
}

body {
  margin: 0;
  font-family: "DM Sans", "DM Sans Fallback", sans-serif !important;
}
body :is(h1, h2, h3, h4, h5, h6, .nav-logo, .footer-logo) {
  font-family: Fraunces, "Fraunces Fallback", Georgia, serif !important;
}

/* Orange button contrast fix (Ben, 2026-10-16): darker orange keeps white text at WCAG AA.
   #c2410c on #fff = 5.18:1; hover #9a3412 = 7.31:1. Color only; layout, wording, links unchanged. */
.btn-primary, .btn-submit, .hero-call, .hub-cta, .hero .btn, .hs-btn, .hs-cta, .calc-cta,
.offer-card-popular .btn-offer, nav.tl-nav .nav-cta, .sticky-mobile-cta {
  background: var(--tl-action-primary) !important;
  border-color: var(--tl-action-primary) !important;
  color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus-visible, .btn-submit:hover, .btn-submit:focus-visible,
.hero-call:hover, .hero-call:focus-visible, .hub-cta:hover, .hub-cta:focus-visible,
.hero .btn:hover, .hero .btn:focus-visible, .hs-btn:hover, .hs-btn:focus-visible,
.hs-cta:hover, .hs-cta:focus-visible, .calc-cta:hover, .calc-cta:focus-visible,
.offer-card-popular .btn-offer:hover, .offer-card-popular .btn-offer:focus-visible,
nav.tl-nav .nav-cta:hover, nav.tl-nav .nav-cta:focus-visible {
  background: var(--tl-action-primary-hover) !important;
  border-color: var(--tl-action-primary-hover) !important;
  color: #fff !important;
}
.btn-primary:active, .btn-submit:active, .hero-call:active, .hub-cta:active, .hero .btn:active,
.hs-btn:active, .hs-cta:active, .calc-cta:active, .offer-card-popular .btn-offer:active,
nav.tl-nav .nav-cta:active {
  background: var(--tl-action-primary-active) !important;
}
/* Sticky call/consult bar: hover, pressed and visible focus ring (Sentinel heads-up, 2026-10-16). */
.sticky-mobile-cta:hover, .sticky-mobile-cta:focus-within {
  background: var(--tl-action-primary-hover) !important;
}
.sticky-mobile-cta:active, .sticky-mobile-cta:has(a:active, button:active) {
  background: var(--tl-action-primary-active) !important;
}
.sticky-mobile-cta :is(a, button):focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px #1a2744 !important;
  border-radius: 6px;
}
/* Orange badges/labels with white text (Ben, 2026-10-16 3:30 PM ET): #c2410c on #fff = 5.18:1. Background only. */
.pricing-badge, .bubble-us:not(.mock-phone[style*="max-width:520px"] .bubble-us), .compare-table th.hl {
  background: var(--tl-action-primary) !important;
}
/* Orange text on light backgrounds (Ben, 2026-10-16 3:31 PM ET): #c2410c on #fff = 5.18:1, hover #9a3412 = 7.31:1.
   Orange on navy (#f97316 on #1a2744 = 5.29:1) already passes and is restored below. Logo untouched. */
.section-eyebrow, .form-card-label, .offer-price, .offer-card.offer-card-popular h3, .card-label,
.trade-name, .hub-eyebrow, .hub-eyebrow a, .hub-kicker a, .trust-item svg, .proof-item svg,
.pricing-features li::before, .audience-card.bad li::before, .included-card.yes li::before,
.faq-list summary::after, .offer-card-list li::before, .scenarios li::before,
.compare-table td.hl::before, .hero-price .amt,
:is(a, span, td, th, strong, em, p, li)[style*="color: var(--orange)"]:not([style*="background"]),
:is(a, span, td, th, strong, em, p, li)[style*="color:var(--orange)"]:not([style*="background"]),
:is(a, span, td, th, strong, em, p, li)[style*="color: #f97316"]:not([style*="background"]),
:is(a, span, td, th, strong, em, p, li)[style*="color:#f97316"]:not([style*="background"]) {
  color: #c2410c !important;
}
a[style*="color: var(--orange)"]:not([style*="background"]), a[style*="color:var(--orange)"]:not([style*="background"]),
a[style*="color: #f97316"]:not([style*="background"]), a[style*="color:#f97316"]:not([style*="background"]),
.hub-eyebrow a, .hub-kicker a { text-decoration: underline; text-underline-offset: 2px; }
a[style*="color: var(--orange)"]:not([style*="background"]):hover, a[style*="color:var(--orange)"]:not([style*="background"]):hover,
a[style*="color: #f97316"]:not([style*="background"]):hover, a[style*="color:#f97316"]:not([style*="background"]):hover,
.hub-eyebrow a:hover, .hub-kicker a:hover { color: #9a3412 !important; }
/* Dark/navy contexts keep brand orange (passes on navy). */
:is(.hero, .info-hero, .hub-hero, .bottom-cta, nav, footer, [class*="dark"], [class*="navy"]) :is(.section-eyebrow, .trust-item svg, .proof-item svg, .card-label, .trade-name, .hub-eyebrow, .hub-eyebrow a, .hub-kicker a, .hero-price .amt, .offer-price, [style*="color: var(--orange)"], [style*="color:var(--orange)"], [style*="color: #f97316"], [style*="color:#f97316"]),
:is(.hero, .info-hero, .hub-hero, .bottom-cta, nav, footer, [class*="dark"], [class*="navy"]) :is(.hub-eyebrow a, .hub-kicker a):hover {
  color: #f97316 !important;
}
/* Blog comparison cells: orange text on #fff7ed (#c2410c = 4.88:1). Sentinel 0de4fb0 fix. */
td[style*="color: #f97316"][style*="background-color: #fff7ed"] { color: #c2410c !important; }

/* Batch B: skip link */
.skip-link{position:absolute;left:8px;top:-100px;z-index:10000;padding:12px 16px;background:#1a2744;color:#fff;font-weight:600;border-radius:6px;text-decoration:none}
.skip-link:focus{top:8px;outline:3px solid #f97316;outline-offset:2px}
main:focus{outline:none}

/* Minor audience strip (law/accounting de-emphasis). */
.minor-audience { max-width: 1100px; margin: 0 auto; padding: 20px 6%; text-align: center; color: #42506e; font-size: .95rem; }
.minor-audience a { color: #1a2744; font-weight: 600; text-decoration: underline; }

/* Salon section anchors on shared service pages. */
#salons, #salon-examples { scroll-margin-top: 88px; }

/* Shared phone conversation. Brand orange bubble with navy text: #1a2744 on #f97316 = 5.28:1. Sky bubble: #1a2744 on #e8f2ff = 13.1:1. */
.tl-convo{max-width:340px;margin:24px auto 0;background:#1a2744;border-radius:36px;padding:12px 10px 16px;box-shadow:0 24px 48px rgba(26,39,68,.28);text-align:left}
.tl-convo-wide{max-width:520px}
.tl-convo-ear{width:58px;height:5px;border-radius:99px;background:#31456f;margin:2px auto 10px}
.tl-convo-screen{background:#f4f7fb;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.tl-convo-header{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid #dde6f5}
.tl-convo-avatar{width:36px;height:36px;border-radius:50%;background:#1a2744;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Fraunces,serif;font-weight:700;flex:0 0 auto}
.tl-convo-name{font-size:.88rem;font-weight:600;color:#1a2744;line-height:1.2}
.tl-convo-sub{font-size:.75rem;color:#5a6a8a;line-height:1.3}
.tl-convo-thread{display:flex;flex-direction:column;gap:8px;padding:14px 12px 16px}
.tl-convo-bubble{max-width:86%;padding:10px 14px;border-radius:18px;font-size:.9rem;line-height:1.45;word-wrap:break-word}
.tl-convo-them{align-self:flex-start;background:#e8f2ff;color:#1a2744;border-bottom-left-radius:5px}
.tl-convo-us{align-self:flex-end;background:#f97316;color:#1a2744;border-bottom-right-radius:5px;font-weight:600}
.tl-convo-bubble strong{font-weight:700}
@media (max-width:430px){
  .tl-convo{max-width:100%}
  .tl-convo-wide{max-width:calc(100% - 32px)}
  .tl-convo-bubble{font-size:.95rem}
}

/* About, Terms, and Privacy. */
.info-page{background:#fff}
.info-hero{background:#1a2744;padding:72px 5% 64px;position:relative;overflow:hidden}
.info-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 70% 50%, rgba(37,99,235,.18) 0%, transparent 70%);pointer-events:none}
.info-wrap{max-width:760px;margin:0 auto;position:relative;z-index:1}
.info-kicker,.info-label{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px}
.info-hero .info-kicker{display:inline-block;background:rgba(255,255,255,.1);color:rgba(255,255,255,.75);font-size:.82rem;font-weight:600;letter-spacing:.1em;padding:5px 14px;border-radius:4px;margin:0 0 22px}
.info-kicker:empty,.info-lede:empty{display:none}
.info-hero h1{font-family:Fraunces,serif;font-size:clamp(2rem,4.4vw,2.75rem);font-weight:700;color:#fff;line-height:1.15;letter-spacing:-.02em;margin:0 0 16px}
.info-lede{color:rgba(255,255,255,.78);font-size:1.05rem;line-height:1.65;margin:0 0 28px;max-width:640px}
.info-hero .hero-actions{margin:0}
.info-hero .hero-promise{color:#fff;font-size:.95rem;line-height:1.5;margin:14px 0 0}
.info-hero .hero-trust{margin-top:36px;display:flex;align-items:center;gap:22px 28px;flex-wrap:wrap}
.info-hero .trust-item{display:flex;align-items:center;gap:9px;color:rgba(255,255,255,.72);font-size:.85rem;line-height:1.35}
.info-body{background:#fff;padding:40px 5% 16px}
.info-body .info-block{margin:0 0 8px}
.info-body .info-block + .info-block{margin-top:36px;padding-top:8px}
.info-label{color:#c2410c;margin-top:0}
.info-body h2{font-family:Fraunces,serif;font-size:1.6rem;font-weight:700;color:#1a2744;line-height:1.25;margin:40px 0 16px}
.info-body h2:first-of-type{margin-top:0}
.info-body .info-block > h2:first-child,.info-body .info-block > .info-label + h2{margin-top:0}
.info-body h3{font-family:Fraunces,serif;font-size:1.2rem;font-weight:600;color:#1a2744;line-height:1.3;margin:28px 0 12px}
.info-body p,.info-body li{color:#5a6a8a;font-size:.95rem;line-height:1.7}
.info-body p{margin:0 0 16px}
.info-body ul,.info-body ol{margin:0 0 16px 1.25rem;padding:0}
.info-body li{margin:0 0 8px}
.info-body a{color:#2563eb}
.info-body strong{color:#1a2744}
.info-body table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:.93rem}
.info-body th,.info-body td{padding:10px 12px;border-bottom:1px solid #dde6f5;text-align:left;color:#5a6a8a;vertical-align:top}
.info-body th{color:#1a2744;border-bottom:2px solid #dde6f5;font-weight:600}
.info-band{background:#1a2744;padding:72px 5%;text-align:center;position:relative;overflow:hidden}
.info-band::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 50%, rgba(37,99,235,.2) 0%, transparent 70%);pointer-events:none}
.info-band .info-label{position:relative;z-index:1;color:#93c5fd}
.info-band h2{position:relative;z-index:1;font-family:Fraunces,serif;font-size:clamp(1.7rem,4vw,2.6rem);font-weight:700;color:#fff;line-height:1.2;letter-spacing:-.02em;margin:0 0 14px}
.info-band .contact-sub,.info-band p{position:relative;z-index:1;color:rgba(255,255,255,.72);font-size:1.05rem;line-height:1.65;max-width:540px;margin:0 auto 28px}
.info-band :is(p, li) a:not(.btn-primary){color:#93c5fd;text-decoration:underline}
.info-card{background:#fff;border-radius:20px;padding:36px 40px;max-width:580px;margin:8px auto 0;position:relative;z-index:1;text-align:center}
.info-card p{max-width:none;margin:0}
.info-card .btn-primary{display:inline-block}
.info-card-note{margin-top:12px !important;color:#5a6a8a !important;font-size:.95rem !important}
.info-faq{background:#1a2744;padding:72px 5%}
.info-faq .info-label{color:#93c5fd;text-align:center}
.info-faq h2{font-family:Fraunces,serif;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:700;color:#fff;text-align:center;margin:0 0 28px}
.info-faq .faq-list{display:flex;flex-direction:column;gap:14px}
.info-faq details{background:#fff;border:1px solid #dde6f5;border-radius:10px;padding:20px 24px}
.info-faq details[open]{border-color:#2563eb}
.info-faq summary{font-weight:600;font-size:1rem;color:#1a2744;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.info-faq summary::-webkit-details-marker{display:none}
.info-faq summary::after{content:'+';font-size:1.3rem;color:#2563eb;flex-shrink:0}
.info-faq details[open] summary::after{content:'−'}
.info-faq details p{margin:14px 0 0;color:#5a6a8a;font-size:.95rem;line-height:1.7}
.info-cta{background:#fafaf8;padding:48px 5% 80px;text-align:center}
.info-cta .info-label{text-align:center}
.info-cta h2{font-family:Fraunces,serif;font-size:clamp(1.6rem,3vw,2.05rem);font-weight:700;color:#1a2744;line-height:1.25;margin:0 0 12px}
.info-cta p{color:#5a6a8a;font-size:.98rem;line-height:1.6;max-width:520px;margin:0 auto 16px}
.info-cta .btn-primary{display:inline-block}
.info-cta-note{margin-top:4px}
.info-cta-note:empty{display:none}
#contact-cta{scroll-margin-top:88px}
@media (max-width:430px){
  .info-hero{padding:48px 5% 40px}
  .info-lede{margin-bottom:22px}
  .info-hero .hero-trust{margin-top:28px;gap:14px 18px}
  .info-body{padding:32px 5% 8px}
  .info-band,.info-faq{padding:48px 5%}
  .info-card{padding:28px 20px}
  .info-cta{padding:36px 5% 72px}
}

/* Hero phone frames. Outgoing #1a2744 on #f97316 = 5.28:1. Incoming #1a2744 on #e8f2ff = 13.1:1. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tl-frame,.tl-frame *{box-sizing:border-box}
.tl-frame{width:340px;max-width:100%;margin:0}
.tl-phone{width:100%;min-height:420px;background:#1a2744;border-radius:36px;padding:12px 10px 16px;box-shadow:0 24px 48px rgba(26,39,68,.28)}
.tl-ear{width:58px;height:5px;border-radius:99px;background:#31456f;margin:2px auto 10px}
.tl-screen{background:#f4f7fb;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.08);min-height:360px}
.tl-phone-head,.tl-site-top{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid #dde6f5}
.tl-avatar{width:36px;height:36px;border-radius:50%;background:#1a2744;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Fraunces,serif;font-weight:700;flex:0 0 auto}
.tl-phone-name{font-size:.88rem;font-weight:700;color:#1a2744;line-height:1.25}
.tl-phone-sub{font-size:.75rem;color:#5a6a8a;line-height:1.3}
.tl-thread{display:flex;flex-direction:column;gap:8px;padding:12px}
.tl-chip{align-self:center;margin:0;background:#e7edf6;color:#1a2744;font-size:.75rem;font-weight:700;line-height:1.35;text-align:center;border-radius:999px;padding:5px 10px}
.tl-bubble{max-width:92%;padding:8px 12px;border-radius:16px;font-size:.82rem;line-height:1.4;color:#1a2744;overflow-wrap:anywhere}
.tl-out{align-self:flex-end;background:#f97316;border-bottom-right-radius:5px;font-weight:600}
.tl-in{align-self:flex-start;background:#e8f2ff;border-bottom-left-radius:5px}
.tl-time{display:block;margin-top:4px;font-size:.68rem;font-weight:700;letter-spacing:.01em;color:#1a2744}
.tl-pill{display:inline-block;margin:2px 0;padding:1px 8px;border:1px solid #1a2744;border-radius:999px;background:#fff;color:#1a2744;font-size:.75rem;font-weight:700;line-height:1.45;cursor:default}
.tl-frame figcaption{margin:10px 0 0;font-size:.78rem;line-height:1.45;text-align:center;color:#5a6a8a}
.hero .tl-frame figcaption,.hub-hero .tl-frame figcaption{color:rgba(255,255,255,.78)}
.tl-line{background:#fff;border-radius:10px;padding:8px 10px}
.tl-who{display:block;margin:0 0 2px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5a6a8a}
.tl-line p,.tl-sms p{margin:0;color:#1a2744;font-size:.8rem;line-height:1.4}
.tl-sms{background:#f97316;color:#1a2744;border-radius:14px;padding:10px 12px}
.tl-sms-kicker{font-weight:700}
.tl-site-screen{display:flex;flex-direction:column;min-height:360px;background:#fff}
.tl-site-hero{padding:22px 16px 16px;background:#1a2744;color:#fff}
.tl-site-kicker{margin:0 0 8px;font-family:Fraunces,serif;font-size:1.35rem;font-weight:700;line-height:1.2;color:#fff}
.tl-site-hero p{margin:0 0 14px;color:rgba(255,255,255,.86);font-size:.9rem;line-height:1.4}
.tl-site-call{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border-radius:10px;background:#c2410c;color:#fff;font-weight:700}
.tl-site-gbp{margin:0;padding:14px 16px;color:#1a2744;font-size:.85rem;font-weight:700;background:#fff}
@keyframes tlRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tl-thread > *{animation:tlRise .45s ease both}
.tl-thread > *:nth-child(1){animation-delay:.08s}
.tl-thread > *:nth-child(2){animation-delay:.28s}
.tl-thread > *:nth-child(3){animation-delay:.48s}
.tl-thread > *:nth-child(4){animation-delay:.68s}
.tl-thread > *:nth-child(5){animation-delay:.88s}
.tl-thread > *:nth-child(6){animation-delay:1.08s}
.tl-thread > *:nth-child(7){animation-delay:1.28s}
@media (prefers-reduced-motion: reduce){
  .tl-thread > *{animation:none;opacity:1;transform:none}
}
@media (max-width:899px){
  .tl-phone{height:380px;min-height:380px;max-height:380px;overflow:hidden;border-radius:28px;padding:8px}
  .tl-ear{display:none}
  .tl-screen{min-height:0;height:100%}
  .tl-phone-head,.tl-site-top{padding:8px 10px}
  .tl-avatar{width:28px;height:28px;font-size:.8rem}
  .tl-thread{padding:8px;gap:6px}
  .tl-bubble{font-size:.78rem;padding:7px 10px;line-height:1.35}
  .tl-chip{font-size:.7rem;padding:3px 8px}
  .hero-with-frame > .tl-frame{margin-top:18px}
  .hero-grid.hero-with-frame > .hero-side{margin-top:18px;display:flex;flex-direction:column;gap:40px}
  .tl-bubble:nth-of-type(n+4){display:none}
  .tl-call .tl-line:nth-of-type(n+3){display:none}
  .tl-call .tl-phone{padding:6px}
  .tl-call .tl-thread{gap:4px;padding:6px}
  .tl-call .tl-line{padding:5px 8px}
  .tl-call .tl-sms{padding:7px 10px}
  .tl-site-screen{height:100%;min-height:0}
  .tl-site-hero{padding:12px 12px 10px}
  .tl-site-kicker{font-size:1.15rem}
}
.hero-grid.hero-with-frame{grid-template-columns:1fr}
@media (max-width:430px){
  .hero-grid.hero-with-frame > .hero-side{gap:20px}
}
@media (min-width:900px){
  .hero-grid.hero-with-frame{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;column-gap:60px}
  .hero-grid.hero-with-frame > .hero-copy{grid-column:1;grid-row:1}
  .hero-grid.hero-with-frame > .hero-side{grid-column:2;grid-row:1;align-self:start;justify-self:end;width:100%;margin-top:0;gap:8px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame{align-self:flex-end;width:340px;max-width:100%}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-phone{min-height:0;padding:6px 8px 8px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-ear{height:4px;margin:1px auto 6px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-screen{min-height:0}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-phone-head,
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-site-top{padding:8px 10px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-avatar{width:28px;height:28px;font-size:.75rem}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-thread{gap:4px;padding:8px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-bubble{padding:5px 9px;line-height:1.3;font-size:.78rem}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-chip{padding:3px 8px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-site-screen{min-height:260px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame .tl-site-hero{padding:14px 12px 12px}
  .hero-grid.hero-with-frame > .hero-side > .tl-frame figcaption{margin-top:4px;font-size:.72rem;line-height:1.3}
  .hero-grid.hero-with-frame > .hero-side > .form-card{padding:10px 16px 8px}
  .hero-grid.hero-with-frame > .hero-side > .form-card .form-card-label{margin-bottom:4px}
  .hero-grid.hero-with-frame > .hero-side > .form-card h2{margin-bottom:4px;font-size:1.25rem;line-height:1.2}
  .hero-grid.hero-with-frame > .hero-side > .form-card .form-card-sub{margin-bottom:6px}
  .hero-grid.hero-with-frame > .hero-side > .form-card .call-cta,
  .hero-grid.hero-with-frame > .hero-side > .form-card > div{padding-top:0;padding-bottom:0}
  .hero-inner.hero-with-frame,.hub-hero-inner.hero-with-frame{position:relative;max-width:1100px;padding-right:380px;box-sizing:border-box}
  .hero-inner.hero-with-frame > .tl-frame,.hub-hero-inner.hero-with-frame > .tl-frame{position:absolute;top:0;right:0;width:340px;margin:0}
  .hub-hero:has(.tl-call) .hub-hero-inner.hero-with-frame{min-height:900px}
}

/* Hub pages use the product-page FAQ, price cards, and without/with comparison. */
.hub-section .audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}
.hub-section .audience-card{background:#fff;border:1.5px solid #dde6f5;border-radius:12px;padding:22px 20px}
.hub-section .audience-card.good{border-top:4px solid #2563eb}
.hub-section .audience-card.bad{border-top:4px solid #c2410c}
.hub-section .audience-card h3{font-family:Fraunces,serif;font-size:1.1rem;margin:0 0 12px;color:#1a2744}
.hub-section .audience-card ul{list-style:none;margin:0;padding:0}
.hub-section .audience-card li{display:flex;gap:8px;align-items:flex-start;padding:6px 0;color:#5a6a8a;font-size:.95rem;line-height:1.45}
.hub-section .audience-card li::before{content:'✓';color:#2563eb;font-weight:700;flex:0 0 auto}
.hub-section .audience-card.bad li::before{content:'✕'}
.hub-price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:0 0 18px}
.hub-section .pricing-card{background:#fff;border:2px solid #c2410c;border-radius:16px;padding:22px 18px;margin:0}
.hub-section .pricing-card p{margin:0;color:#1a2744;line-height:1.45}
.hub-section .pricing-card a{color:#1a2744;font-weight:700}
.hub-section .faq-list{display:flex;flex-direction:column;gap:12px}
.hub-section .faq-list details{background:#fff;border:1.5px solid #dde6f5;border-radius:10px;padding:0;overflow:hidden}
.hub-section .faq-list summary{cursor:pointer;padding:18px 22px;font-weight:600;font-size:.95rem;color:#1a2744;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.hub-section .faq-list summary::-webkit-details-marker{display:none}
.hub-section .faq-list summary::after{content:'+';font-size:1.3rem;font-weight:700;color:#c2410c;flex:0 0 auto}
.hub-section .faq-list details[open] summary::after{content:'−'}
.hub-section .faq-list details p{margin:0;padding:0 22px 18px;color:#5a6a8a;font-size:.95rem;line-height:1.6}
.hub-section .section-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px}
@media (max-width:700px){
  .hub-section .audience-grid{grid-template-columns:1fr}
}

/* Sample-call player. Outgoing #1a2744 on #f97316. Incoming #1a2744 on #e8f2ff. */
.tl-demo-band{padding:8px 5% 40px;background:#fafaf8}
.tl-demo-band .section-inner{max-width:1100px;margin:0 auto}
.tl-demo{width:min(100%,520px);max-width:100%;margin:16px auto 0;text-align:left}
.tl-demo .tl-phone{height:auto;min-height:0;max-height:none;overflow:visible}
.tl-demo .tl-screen{height:auto;min-height:0;overflow:hidden}
.tl-demo .tl-phone-head{align-items:center}
.tl-demo .tl-phone-name{min-width:0}
.tl-demo audio{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tl-demo-bar{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fff;border-bottom:1px solid #dde6f5}
.tl-demo-play{flex:0 0 auto;width:64px;height:64px;border:0;border-radius:50%;background:#f97316;color:#1a2744;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.tl-demo-play:hover{background:#ea6c0a}
.tl-demo-icon-pause{display:none}
.tl-demo-play.is-playing .tl-demo-icon-play{display:none}
.tl-demo-play.is-playing .tl-demo-icon-pause{display:block}
.tl-demo-scrub{flex:1 1 auto;min-width:0;display:flex;align-items:center}
.tl-demo-scrub input[type="range"]{width:100%;height:44px;margin:0;accent-color:#f97316;background:transparent}
.tl-demo-time{flex:0 0 auto;min-width:11ch;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700;color:#1a2744}
.tl-demo-lines{list-style:none;margin:0;padding:12px;display:flex;flex-direction:column;gap:8px}
.tl-demo .tl-bubble{display:block}
.tl-demo .tl-bubble.is-current{box-shadow:inset 0 0 0 3px #1a2744}
.tl-demo .tl-sms{margin:0 12px 12px;background:#e7edf6;border:1px solid #c5d0e4;color:#1a2744}
.tl-demo .tl-sms-kicker{display:block;margin:0 0 4px}
.tl-demo .tl-sms.is-revealed{background:#f97316;border-color:#f97316}
.hub-section .tl-demo{margin-top:8px}
@media (max-width:899px){
  .tl-demo{width:100%;max-width:100%}
  .tl-demo .tl-phone{height:auto;min-height:0;max-height:none;overflow:visible}
  .tl-demo .tl-screen{height:auto;min-height:0}
  .tl-demo .tl-bubble:nth-of-type(n+4){display:block}
  .tl-demo .tl-ear{display:block}
}
@media (prefers-reduced-motion: reduce){
  .tl-demo .tl-bubble{animation:none}
}
