:root{--contact-iframe-height:2300px}

/* --- hero: audience label + CTA (subcopy/label text set in review_refinements.py) --- */
.hero-audience{font:500 12px/1.5 var(--sans);letter-spacing:.14em;color:var(--blue);margin:14px 0 0}
.hero.is-flipped .hero-audience{color:#9fd0e6}
.hero-cta{display:flex;align-items:center;flex-wrap:wrap;gap:20px 32px;margin-top:40px}
.hero-link{min-height:44px;font-size:14px}
.review-phrase{display:inline-block}
.hero-link-primary{gap:14px;padding:13px 26px;border:1px solid var(--navy);border-radius:2px;background:var(--navy);color:var(--ivory);margin-top:0;transition:background .25s,color .25s,opacity .25s}
.hero-link-primary:hover,.hero-link-primary:focus-visible{opacity:.86}
.hero.is-flipped .hero-link-primary{border-color:var(--ivory);background:var(--ivory);color:var(--navy)}
.hero-link-secondary{margin-top:0;border-bottom:1px solid currentColor;padding:13px 2px}
.hero-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}

@media(max-width:760px){
  .hero-cta{flex-direction:column;align-items:stretch;gap:12px;margin-top:24px}
  .hero-link-primary,.hero-link-secondary{justify-content:center;width:100%}
  .hero-audience{font-size:12px}
  .hero-message{letter-spacing:0;text-wrap:balance}
}

/* --- mobile: move hero-controls off the photo's face area, clear of the caption --- */
@media(max-width:760px){
  .photo-label{display:none}
  .hero-controls{top:calc(clamp(285px,52svh,520px) - 56px);bottom:auto;right:7vw;left:auto;background:#183e55b8}
  .hero-slide figcaption{bottom:84px}
}

/* --- small readable text: guidance copy, contact helper text, TOC links,
      case sub-headings, bottom CTA links. Decorative labels are untouched. --- */
.inner-page .anchors{font-size:14px}
.inner-page .anchors a{min-height:44px;align-items:center;padding:6px 0}
.legal-toc ol{font-size:13px}
.legal-toc a{display:flex;min-height:44px;align-items:center}
.formbox .alt{font-size:13px}
.formbox .service-selected{font-size:13px}
.form-purpose{font-size:13px}
.contact-inner .contact-note{font-size:13px}
.support-speaker{font-size:13px}
.proof-bubble small{font-size:13px}
.sample-category{font-size:12px}
.inner-page .camp{font-size:13px}
.text-link{font-size:14px}
.footer nav a{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.faq p{font-size:13px}
.footer-bottom a,.footer-bottom button{font-size:13px;min-height:44px;display:inline-flex;align-items:center;padding:4px 2px}

/* --- contact-link as a filled, recognizable button (text/condition unchanged) --- */
.contact-link{background:var(--ivory);color:var(--navy);border-bottom:0;border-radius:2px;padding:20px 28px;transition:background .25s,opacity .25s}
.contact-link:hover,.contact-link:focus-visible{opacity:.86}
.contact-link:focus-visible{outline:2px solid var(--ivory);outline-offset:3px}

@media(max-width:760px){
  .contact-link{padding:18px 22px}
}

/* --- contact form: mobile iframe height, tunable via --contact-iframe-height --- */
@media(max-width:760px){
  .formbox iframe{height:var(--contact-iframe-height)}
}
@media(max-width:359px){
  :root{--contact-iframe-height:2600px}
}
