/* ==========================================================================
   pages.css — shared styles for the routes added during the archive recovery
   (legal, blog, posts, team, careers, jobs, demo/completion, 404) plus the design
   tokens expected by dq-ai-chat.css. Palette values come from the archived theme
   stylesheet (wp-content/themes/direqt/public/css/app.09971a.css).
   ========================================================================== */
:root {
    --dq-ink: #111;
    --dq-paper: #f6f4f0;
    --dq-violet: #4d1aa6;     /* .bg-purple */
    --dq-teal: #50c4ca;       /* .bg-teal   */
    --dq-sky: #50c4ca;
    --dq-coral: #ff8360;      /* .bg-orange */
    --dq-sun: #e8e288;        /* .bg-yellow */
    --dq-lilac: #7c62b9;
    --dq-head: Sora, Helvetica, Arial, sans-serif;
    --dq-body: Sora, Helvetica, Arial, sans-serif;
    --dq-wrap: 1180px;
}

/* ---- staging + a11y helpers ------------------------------------------- */
.dq-staging-bar { background: #111; color: #fff; font: 600 12px/1.4 var(--dq-body); text-align: center; padding: 6px 16px; }
.dq-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; color: #111; padding: 8px 14px; border: 2px solid #111; }
.dq-skip:focus { left: 12px; top: 12px; }
.dq-pending { cursor: not-allowed; opacity: .55; }
a.btn:focus-visible, .dq-form button:focus-visible, .dq-card a:focus-visible, .dq-job-card:focus-visible,
.header-nav a:focus-visible, .ft a:focus-visible, .menu-btn:focus-visible { outline: 3px solid var(--dq-violet); outline-offset: 3px; }

/* The archived hero artwork /wp-content/uploads/2023/07/hero-bg-purple-dots.png was never captured.
   This dot pattern is a CSS stand-in (documented gap — needs approval or the original file). */
.dq-dots, .dq-legal-hero {
    background-color: var(--dq-violet);
    background-image: radial-gradient(rgba(255,255,255,.16) 1.6px, transparent 2px);
    background-size: 22px 22px;
}

/* legal-pages.css defines --legal-purple only inside .dq-legal-page; give every hero the token. */
.dq-legal-hero { --legal-purple: var(--dq-violet); }

/* ---- layout ------------------------------------------------------------ */
.dq-wrap { width: min(var(--dq-wrap), calc(100% - 32px)); margin-inline: auto; }
main.dq-legal-page, main.dq-post, main.dq-blog, main.dq-careers, main.dq-demo, main.dq-complete { font-family: var(--dq-body); color: var(--dq-ink); }
.dq-legal-hero h1 { color: #fff; }
.dq-hero { color: #fff; padding: 90px 0 80px; }
.dq-hero__in { max-width: 900px; }
.dq-hero h1 { font: 700 clamp(30px, 4vw, 48px)/1.15 var(--dq-head); margin-bottom: 18px; }
.dq-hero__lead p { font-size: 18px; line-height: 1.6; max-width: 46em; }
.dq-panel { background: #fff; border: 2px solid #111; border-radius: 16px; box-shadow: 4px 4px 0 #111; padding: clamp(24px, 4vw, 48px); }
.dq-eyebrow { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 8px; }
.dq-eyebrow a { text-decoration: underline; }
.dq-note { margin-top: 28px; padding: 12px 16px; border-left: 4px solid var(--dq-coral); background: #fff; font-size: 14px; }

/* ---- prose (sanitised archive HTML) ------------------------------------ */
.dq-prose { font-size: 17px; line-height: 1.7; overflow-wrap: anywhere; }
.dq-prose > * + * { margin-top: 14px; }
.dq-prose h2 { font: 600 26px/1.3 var(--dq-head); margin-top: 32px; }
.dq-prose h3 { font: 600 20px/1.35 var(--dq-head); margin-top: 26px; }
.dq-prose h4, .dq-prose h5, .dq-prose h6 { font: 600 17px/1.4 var(--dq-head); margin-top: 20px; }
.dq-prose ul, .dq-prose ol { padding-left: 24px; }
.dq-prose li + li { margin-top: 6px; }
.dq-prose li::marker { color: var(--dq-coral); }
.dq-prose a { text-decoration: underline; text-underline-offset: 2px; color: var(--dq-violet); }
.dq-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.dq-prose blockquote { border-left: 4px solid var(--dq-teal); padding: 6px 0 6px 18px; font-style: italic; }
.dq-prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.dq-prose th, .dq-prose td { border: 1px solid #c9c4ba; padding: 8px 10px; vertical-align: top; text-align: left; }
.dq-legal-content.dq-prose p, .dq-legal-content.dq-prose li { font-size: 16px; }

/* ---- posts / team / jobs ---------------------------------------------- */
.dq-post__header { background: #000; color: #fff; padding: 70px 0; }
.dq-post__header-in { display: grid; grid-template-columns: 7fr 5fr; gap: 48px; align-items: center; }
.dq-post__header h1 { font: 700 clamp(28px, 3.4vw, 44px)/1.2 var(--dq-head); }
.dq-post__date { margin-top: 14px; color: #d6d2ca; }
.dq-post__image img { width: 100%; height: auto; border-radius: 16px; border: 2px solid #fff; }
.dq-team__photo img { max-width: 360px; aspect-ratio: 1; object-fit: cover; }
.dq-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 18px 0; margin: 0; font-size: 14px; }
.dq-crumbs li + li::before { content: "/"; margin-right: 6px; color: #888; }
.dq-crumbs a { text-decoration: underline; }
.dq-post__body { padding-top: 30px; padding-bottom: 60px; }
.dq-post__cats { display: flex; gap: 12px; align-items: center; margin-top: 36px; }
.dq-post__cats p { font-weight: 600; }
.dq-post__cats ul { list-style: none; display: flex; gap: 8px; padding: 0; }
.dq-post__cats a, .tag { display: inline-block; border: 1.5px solid #111; border-radius: 999px; padding: 2px 12px; font-size: 13px; background: #fff; }
.dq-share { text-align: center; margin-top: 40px; }
.dq-share ul { list-style: none; display: flex; justify-content: center; gap: 18px; padding: 0; margin-top: 10px; }
.dq-share a { text-decoration: underline; }
.dq-related h2 { font: 600 30px/1.2 var(--dq-head); margin-bottom: 24px; }
.dq-gated { margin-top: 30px; }

/* ---- cards ------------------------------------------------------------- */
.dq-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
.dq-grid > * { min-width: 0; max-width: 100%; }
.dq-grid > [hidden] { display: none; }
.dq-card { height: 100%; max-width: 100%; background: #fff; border: 2px solid #111; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.dq-card:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 #111; }
/* Absolute img fill: Safari ignores aspect-ratio for % height children and blows images up. */
.dq-card__img {
  display: block;
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--dq-paper);
  border-bottom: 2px solid #111;
}
.dq-card__img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  display: block;
}
.dq-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 0; }
.dq-card__title { font: 600 18px/1.35 var(--dq-head); overflow-wrap: anywhere; }
.dq-card .date { font-size: 13px; color: #555; }
.dq-card p { font-size: 15px; line-height: 1.55; flex: 1; overflow-wrap: anywhere; }
.dq-more { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ---- blog -------------------------------------------------------------- */
.dq-featured { padding-top: 50px; }
.dq-featured .big .l img { width: 100%; height: 100%; object-fit: cover; }
.dq-blog__list { padding-top: 40px; padding-bottom: 70px; }
.dq-filter { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-bottom: 28px; }
.dq-filter label { font-weight: 600; font-size: 14px; }
.dq-filter select, .dq-filter input { border: 2px solid #111; border-radius: 8px; padding: 8px 12px; background: #fff; font: inherit; min-width: 180px; }
.dq-empty { padding: 30px 0; }

/* ---- careers ----------------------------------------------------------- */
.dq-careers__why { margin-top: -40px; position: relative; }
.dq-careers__list { padding-top: 60px; padding-bottom: 60px; }
.dq-careers__list h2 { font: 600 32px/1.2 var(--dq-head); margin-bottom: 20px; }
.dq-jobs { list-style: none; padding: 0; display: grid; gap: 14px; }
.dq-job-card { display: grid; grid-template-columns: 1fr auto auto; gap: 20px; align-items: center; background: #fff; border: 2px solid #111; border-radius: 12px; padding: 18px 22px; }
.dq-job-card:hover { box-shadow: 4px 4px 0 #111; }
.dq-job-card__title { font: 600 19px/1.3 var(--dq-head); }
.dq-job-card__cat { font-size: 14px; color: #555; }

/* ---- CTA band (archived "Book a 1:1 to get started") ------------------- */
.dq-cta { display: flex; justify-content: space-between; align-items: center; gap: 30px; flex-wrap: wrap; background: var(--dq-violet); color: #fff; border-radius: 16px; padding: 44px clamp(24px, 6vw, 70px); margin: 30px 0 70px; }
.dq-cta h2 { font: 700 clamp(24px, 2.6vw, 32px)/1.2 var(--dq-head); margin-bottom: 10px; }
.dq-cta h2 span { color: var(--dq-teal); }
.dq-cta p { max-width: 34em; }

/* ---- forms ------------------------------------------------------------- */
.dq-demo__in { display: grid; grid-template-columns: 5fr 6fr; gap: 48px; padding-top: 60px; padding-bottom: 80px; align-items: start; }
.dq-demo__copy h2 { font: 600 clamp(22px, 2.2vw, 28px)/1.3 var(--dq-head); margin-bottom: 16px; }
.dq-demo__copy p + p { margin-top: 12px; }
.dq-form { display: flex; flex-wrap: wrap; gap: 16px; }
.dq-form__req { width: 100%; font-size: 13px; color: #555; }
.dq-form__req span, .dq-req { color: #c0392b; }
.dq-field { width: 100%; display: flex; flex-direction: column; gap: 6px; }
.dq-field--half { width: calc(50% - 8px); }
.dq-field label { font-weight: 600; font-size: 14px; }
.dq-field input, .dq-field textarea { border: 2px solid #111; border-radius: 8px; padding: 10px 12px; font: inherit; background: #fff; }
.dq-field [aria-invalid="true"] { border-color: #c0392b; }
.dq-field__err { color: #c0392b; font-size: 13px; }
.dq-form__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.dq-form__status { width: 100%; padding: 12px 14px; border-radius: 8px; border: 2px solid #111; background: #fff7e0; font-size: 15px; }
.dq-form__status.is-error { background: #fdecea; }
.dq-form button[disabled] { opacity: .6; cursor: progress; }
.dq-complete__in { padding-top: 50px; padding-bottom: 80px; text-align: center; }
.dq-complete__in p + p { margin-top: 16px; }

/* ---- AI Chat logo strip (replaces the Owl carousel the original used) --- */
.dq-marquee { overflow: hidden; }
.dq-marquee__track { display: flex; align-items: center; width: max-content; gap: 56px; animation: dq-marquee 28s linear infinite; }
.dq-marquee:hover .dq-marquee__track { animation-play-state: paused; }
.dq-marquee .dqp-press__item { width: auto; flex: none; }
@keyframes dq-marquee { to { transform: translateX(calc(-50% - 28px)); } }
@media (prefers-reduced-motion: reduce) { .dq-marquee__track { animation: none; flex-wrap: wrap; width: auto; } .dq-marquee .dqp-press__item[aria-hidden] { display: none !important; } }

/* ---- responsive -------------------------------------------------------- */
@media (max-width: 900px) {
    .dq-post__header-in, .dq-demo__in { grid-template-columns: 1fr; }
    .dq-grid,
    .dq-blog .dq-grid,
    .dq-related .dq-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
    .dq-filter { flex-direction: column; align-items: stretch; }
    .dq-filter select,
    .dq-filter input { min-width: 0; width: 100%; }
    .dq-featured .big { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .dq-grid,
    .dq-blog .dq-grid,
    .dq-related .dq-grid { grid-template-columns: 1fr; gap: 16px; }
    .dq-card__body { padding: 16px 16px 18px; }
    .dq-card__title { font-size: 17px; }
    .dq-field--half { width: 100%; }
    .dq-job-card { grid-template-columns: 1fr auto; }
    .dq-job-card__cat { grid-column: 1; grid-row: 2; }
    .dq-hero { padding: 60px 0 70px; }
    .dq-post__header { padding: 44px 0; }
    .dq-cta { padding: 32px 22px; }
}

/* ---- footer link colour --------------------------------------------------
   style.css ends with a global `a { color: #141414 }` (login block) that turned the
   footer links dark-on-black; restore the white the footer was designed with. */
.ft a:not(.btn) { color: #fff; }
.ft a:not(.btn):hover { color: var(--dq-teal); }

/* ---- privacy links strip (.dqc on AI Chat) ------------------------------ */
.dqc { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 28px; padding: 28px 16px 0; background: #000; font-size: 13px; position: relative; z-index: 1; }
.dqc a { color: #bbb; text-decoration: underline; text-underline-offset: 3px; }
.dqc a:hover { color: #fff; }
.dqc__tick { color: var(--dq-teal); }

/* ---- sticky header + footer ---------------------------------------------- */
/* Only the site chrome header — not .dq-post__header / team / job heroes. */
.wrapper {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
/* Grow main so short pages still push the footer down. */
.wrapper > main {
  flex: 1 0 auto;
}
.wrapper > header { position: sticky; top: 0; z-index: 50; }
.wrapper > header.is-stuck { box-shadow: 0 2px 0 rgba(0,0,0,.08); }
html { scroll-padding-top: 96px; }

/* Keep the Book-a-1:1 band above the footer with a clear gap (blog-style),
   not overlapping into the black footer via negative margins. */
.ft {
  margin-top: 0;
}
.cta {
  margin: 80px auto 70px;
}
.about-cta,
.faq-page .about-cta {
  margin: 0 auto 70px;
}
.dqp .dqp-book,
.dqp-book {
  margin-bottom: 70px;
  padding-bottom: 0;
  background: transparent !important;
}
.dq-cta {
  margin: 30px 0 70px;
}

/* ---- form fields ---------------------------------------------------------- */
textarea { resize: none !important; }

/* ---- "Book a 1:1 to get started" card (shared + AI Chat) ------------------- */
.dq-cta, .dqp-book__card { position: relative; overflow: visible; }
.dq-cta { background: var(--dq-violet); border-radius: 18px; padding: clamp(40px, 6vw, 80px) clamp(24px, 9vw, 130px); gap: 40px; }
.dq-cta h2, .dqp-book h2 { font-size: clamp(28px, 3.4vw, 46px); font-weight: 600; letter-spacing: -0.01em; margin-bottom: 18px; }
.dq-cta p, .dqp-book p { font-size: clamp(16px, 1.45vw, 20px); line-height: 1.6; max-width: 31em; }
.dq-cta .btn.o, .dqp-book .dq-btn {
    background: transparent !important; color: #fff; border: 2px solid #fff; border-radius: 6px;
    box-shadow: 6px 6px 0 #fff; padding: 16px 30px; font-weight: 600; transform: none;
}
.dq-cta .btn.o:hover, .dqp-book .dq-btn:hover { box-shadow: 2px 2px 0 #fff; transform: translate(2px, 2px); }
.dq-cta__arrow, .dqp-book__arrow {
    position: absolute; right: 7%; top: -6px; width: clamp(84px, 9.5vw, 136px); height: auto; pointer-events: none;
}
.dqp .dqp-book .dqp-book__card { width: min(1450px, 90%); border-radius: 18px; padding: clamp(40px, 6vw, 80px) clamp(24px, 9vw, 130px); }
@media (max-width: 600px) { .dqp .dqp-book .dqp-book__card { width: calc(100% - 32px); } }
@media (max-width: 900px) {
    .dq-cta { flex-direction: column; align-items: flex-start; }
    .dq-cta__arrow, .dqp-book__arrow { right: 18px; top: -18px; width: 84px; }
    .dq-cta h2, .dqp-book h2 { padding-right: 70px; }
}

/* ---- shared page width: every recovered template uses .w-container (style.css) ----
   Combined classes below would otherwise cap the container; keep the shared width and
   limit only the reading measure of long text. */
.w-container.dq-post__body, .w-container.dq-hero__in,
.w-container.dq-legal-hero__inner { max-width: 1680px; width: auto; }
.dq-post__body > * { max-width: 860px; }
.dq-post__body > .dq-gated { max-width: 640px; }
.dq-hero__in h1, .dq-hero__lead { max-width: 900px; }
/* Legal reading column stays centered at 960px — do not stretch with .w-container. */
.dq-legal-page .dq-legal-content,
.container.dq-legal-content,
.w-container.dq-legal-content {
  width: min(960px, calc(100% - 40px));
  max-width: 960px;
  margin-inline: auto;
}
.dq-legal-page .dq-legal-content > * { max-width: none; }
.dq-legal-content { padding-top: 48px; padding-bottom: 62px; }

.dq-legal-hero .w-container.dq-legal-hero__inner { width: 100%; max-width: 1680px; }

/* arrow on the hand-built "Book a 1:1" sections (home .cta, About/FAQ .about-cta) */
.cta, .about-cta { position: relative; overflow: visible; }
.cta .dq-cta__arrow, .about-cta .dq-cta__arrow { position: absolute; right: 7%; top: -6px; width: clamp(84px, 9.5vw, 136px); height: auto; pointer-events: none; }
@media (max-width: 900px) { .cta .dq-cta__arrow, .about-cta .dq-cta__arrow { right: 18px; top: -18px; width: 84px; } }

/* About: Leadership section restored for SC-473 (an earlier "hidden on request" rule was removed). */

/* ---- SC-473: shared lead forms (disabled state on unconnected staging) ---- */
.dq-form__fields { display: flex; flex-wrap: wrap; gap: 16px; width: 100%; min-width: 0; margin: 0; padding: 0; border: 0; }
.dq-form__fields[disabled] input, .dq-form__fields[disabled] textarea { background: #f2f2f2; cursor: not-allowed; }
.dq-form__fields[disabled] .btn { opacity: .5; cursor: not-allowed; box-shadow: none; }
.dq-form__disabled { width: 100%; margin: 0 0 4px; padding: 12px 14px; border: 2px solid #111; border-radius: 8px; background: #fff7e0; font-size: 15px; line-height: 1.5; }

/* ---- SC-473: "Direqt AI Search, Powered by Search.com" branding ---------- */
.dq-searchcom-brand { margin: 0 0 18px; }
.dq-searchcom-brand__logo { display: block; width: 183px; height: auto; margin: 0 0 8px; }
.dq-searchcom-brand__tag { margin: 0; font-size: 15px; font-weight: 600; letter-spacing: .2px; }
.dq-searchcom-brand__link { font-weight: 700; }
a.dq-searchcom-brand__link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.dq-searchcom-brand .dq-pending { opacity: 1; cursor: default; }

/* Screen-reader-only text that does not depend on Bootstrap being present. */
.visually-hidden:not(:focus):not(:active) { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
/* SC-473: demo page matches the archive (no banner; the lead is the page heading); footer phone + social as in the archive (inert until verified). */
.dq-demo .dq-demo__title { font: 600 clamp(26px, 2.6vw, 34px)/1.3 var(--dq-head); margin: 0 0 18px; }
.dq-demo .dq-demo__in { padding-top: 60px; }

/* Bio and job pages: eyebrow link readable on the dark header. */
.dq-post__header .dq-eyebrow a { color: var(--dq-teal, #50c4ca); }

/* SC-473: footer contact column as in the archive — teal social icons, then phone and email with line icons. */
.ft .footer-row > div.footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; max-width: 260px; }
.ft .footer-contact p { margin: 0; }
.ft .footer-social { display: flex; gap: 18px; align-items: center; }
.ft a.footer-social__link,
.ft .footer-social__link { display: inline-flex; color: #50c4ca; line-height: 0; text-decoration: none; }
.ft a.footer-social__link:hover { color: #fff; }
.ft .footer-social__icon { width: 20px; height: 20px; fill: currentColor; }
.ft .footer-contact .footer-mail { display: flex; align-items: center; gap: 10px; font-size: 15px; color: #fff; }
.ft .footer-contact .dq-pending { opacity: 1; cursor: default; color: #fff; }
.ft .footer-contact .footer-social__link.dq-pending { color: #50c4ca; }
.ft .footer-contact a:not(.footer-social__link) { color: #fff; text-decoration: none; }
@media (max-width: 767.98px) { .ft .footer-row > div.footer-contact { margin: 22px 0 30px; } }

/* =====================================================================
   SC-473 F09: typography and Home spacing matched to the archive
   (www.direqt.ai, captures 2026-06-07 / 2026-09-17; values measured at 1440px).
   Archive fonts: body, navigation and buttons "Source Sans Pro" (self-hosted here as its
   successor Source Sans 3); headings "degular" (Adobe Fonts, licensed, not recoverable),
   for which Sora stands in.
   ===================================================================== */
:root { --dq-body: "Source Sans 3", "Source Sans Pro", Arial, sans-serif; }
body { font-family: var(--dq-body); }
h1, h2, h3, h4, h5, h6, .stats strong { font-family: var(--dq-head); }
.header-nav .l a { font-family: var(--dq-body); font-size: 16px; font-weight: 600; }
.btn, .header-nav .btn, .about-cta-button { font-family: var(--dq-body); font-size: 16px; font-weight: 700; }
/* DQ-002: primary teal CTA uses dark text for WCAG contrast (shared header + forms). */
.btn:not(.o):not(.btn-outline),
.header-nav .btn:not(.btn-outline),
.feat .btn {
  color: #111 !important;
}
.dq-legal-content h2 {
  font: 600 22px/1.3 var(--dq-head);
  margin: 28px 0 12px;
}
.dq-legal-content h3 {
  font: 600 18px/1.35 var(--dq-head);
  margin: 20px 0 10px;
}
.ft .nv a { font-family: var(--dq-body); font-size: 16px; font-weight: 600; }

/* Home hero: text column (7/12) and visual column (5/12) side by side, so the headline never runs into the illustration */
.hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 30px; align-items: center; padding: 100px 0; min-height: 0; }
.hero > h1, .hero > p, .hero > .btn { grid-column: 1; justify-self: start; }
.hero > .phone { grid-column: 2; grid-row: 1 / span 3; position: relative; top: auto; right: auto; width: 100%; max-width: 380px; justify-self: center; }
.hero h1 { font-size: clamp(38px, 4.2vw, 60px); line-height: 1.13; letter-spacing: 0; max-width: none; }
.hero p { font-size: clamp(18px, 1.7vw, 24px); line-height: 1.5; max-width: none; margin: 24px 0 30px; }
.intro { padding: 100px 0 50px; }
.intro h2 { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.25; }
.feat { padding-top: 100px; padding-bottom: 50px; }
.how { margin-top: 100px; }
.cd h5 { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.3; }
/* Featured Post hero (home + blog): photo fills the left panel (override logo-sized .big .l img). */
.fp + .big .l {
  position: relative;
  padding: 0;
  min-height: 280px;
  background: var(--dq-paper, #e8e4dc);
  overflow: hidden;
  align-items: stretch;
  justify-content: stretch;
}
.fp + .big .l img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  display: block;
}
@media (max-width: 1000px) {
    .hero { grid-template-columns: minmax(0, 1fr); padding: 60px 0; }
    .hero > .phone { grid-column: 1; grid-row: auto; margin-top: 40px; }
    .intro, .feat { padding-top: 60px; }
    .how { margin-top: 60px; }
}
/* Home sections: heading sizes and vertical rhythm from the archive (1440px measurements) */
@media (min-width: 1001px) {
    .feat { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 80px; padding: 50px 7.5% 80px; margin-bottom: 0; }
    .feat:nth-of-type(even) { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
    .how { margin: 100px 0 100px; }
    .quote { padding: 60px 0 90px; }
    .big { margin-top: 30px; }
}
.feat h2, .how h2 { font-size: clamp(28px, 2.8vw, 40px); line-height: 1.25; }
.stats strong { font-size: clamp(44px, 4.2vw, 60px); font-weight: 600; }
.quote q { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.5; max-width: 1116px; }
h2.fp { font-size: clamp(34px, 3.5vw, 50px); margin: 90px 0 30px; }
