/* Shared fixes loaded after legacy page-specific overrides. */
html { scroll-padding-top: 96px; }
[id] { scroll-margin-top: 16px; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #405ea9; outline-offset:4px; }
.skip-link { position:fixed; left:16px; top:-120px; z-index:200; padding:12px 18px; background:#fff; color:#243249; border:2px solid #405ea9; border-radius:8px; }
.skip-link:focus { top:12px; }
.site-header__nav { margin-left:auto; }
.site-footer__nav { display:flex; flex-wrap:wrap; gap:14px 22px; justify-content:center; }
.site-footer__nav a { color:#364153; font-size:14px; }
.site-footer__inner { gap:28px; }
.source-note,.verified-note { font-size:14px; line-height:1.8; color:#536176; }
.source-note a { text-decoration:underline; text-underline-offset:3px; color:#934058; }
.verified-note { margin-top:20px; }
.verified-fees .service-info-card p { color:#27374b; }
.verified-fees h2 { margin-bottom:22px; }
.service-fact dd { overflow-wrap:anywhere; }
.compare-table-card { overflow-x:auto; }
.compare-table { min-width:900px; }
.compare-table th,.compare-table td { vertical-align:top; }
.compare-table th a { color:inherit; text-decoration:underline; }
.compare-stack-card dd { line-height:1.65; }
.editorial-note { margin-block:28px 48px; padding:20px 24px; border:1px solid #e5dce1; border-radius:14px; background:#fff9fb; color:#536176; font-size:14px; line-height:1.8; }
.editorial-note p { margin:0 0 8px; }
.editorial-note a { color:#934058; text-decoration:underline; }
.info-content { max-width:900px; padding-block:44px 64px; color:#243249; }
.info-content h1 { margin:28px 0; font-size:clamp(28px,4vw,40px); }
.info-content section { margin-block:32px; padding:28px; border:1px solid #e8e0e4; border-radius:16px; background:#fff; }
.info-content h2 { font-size:23px; margin:0 0 18px; }
.info-content p { line-height:1.9; }
.info-content a { color:#934058; text-decoration:underline; }
.info-facts { display:grid; gap:16px; margin:0 0 24px; }
.info-facts div { display:grid; grid-template-columns:120px 1fr; gap:16px; }
.info-facts dt { font-weight:700; }
.info-facts dd { margin:0; }
.hero__inner { min-height:0; }
.hero__body { padding-block:32px; }
.hero h1 { font-size:clamp(40px,3.8vw,56px); }
.hero__visual { min-height:0; height:580px; }
.hero__visual img { height:100%; }
.quick-modal__grid p span { line-height:1.6; }
.quick-modal__actions { flex-wrap:wrap; }
.quick-modal__actions .btn { min-width:0; }
.verified-price-routes { display:flex; flex-direction:column; gap:12px; margin-top:24px; }
.verified-price-routes p { font-size:14px; line-height:1.8; margin:0; }
@media (min-width:1024px) and (max-width:1279px) {
  .hero__inner { grid-template-columns:48% 52%; }
  .hero__visual { order:0; height:580px; }
  .hero h1 { font-size:48px; }
  .hero__body { padding:24px; }
}
@media (max-width:1023px) {
  html { scroll-padding-top:72px; }
  .hero__inner { display:flex; flex-direction:column; }
  .hero__body { order:0; padding:28px 24px; }
  .hero__visual { order:1; height:320px; min-height:0; }
  .hero__visual img { object-position:center 42%; }
  .site-header__menu { margin-left:auto; }
}
@media (max-width:767px) {
  .hero__body { padding:28px 16px 24px; }
  .hero h1 { font-size:36px; margin-bottom:16px; }
  .hero p { line-height:1.75; }
  .hero__eyebrow { margin-bottom:12px; }
  .hero__actions { margin-top:18px; gap:10px; }
  .hero__actions .btn { min-height:48px; padding:13px 16px; }
  .hero__quicklinks { margin-top:18px; }
  .hero__visual { height:230px; }
  .info-content { padding-top:28px; }
  .info-content section { padding:20px; }
  .info-facts div { grid-template-columns:1fr; gap:4px; }
  .site-footer__nav { justify-content:flex-start; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

.comparison-card-facts { margin:18px 0; display:grid; gap:12px; }
.comparison-card-facts dt { font-size:13px; font-weight:700; color:#934058; }
.comparison-card-facts dd { margin:4px 0 0; font-size:14px; line-height:1.75; color:#27374b; }

/* QA: readable labels, notes and action buttons on pale backgrounds. */
body .guide-tab--current, body .recommend-card__rank { color:#96334e !important; }
body .guide-chip--pink, body .compare-chip--pink { color:#8e3650 !important; }
body .guide-chip--purple, body .compare-chip--purple { color:#634098 !important; }
body .guide-chip--blue, body .compare-chip--blue { color:#31559b !important; }
body .guide-chip--teal, body .compare-chip--teal { color:#216e6c !important; }
body .guide-chip--gold, body .compare-chip--gold { color:#785612 !important; }
body .service-breadcrumb, body .service-breadcrumb a, body .service-breadcrumb span,
body .compare-breadcrumb, body .compare-breadcrumb a, body .compare-breadcrumb span,
body .compare-hero-panel__note, body .compare-table-note, body .compare-quick-item dt { color:#596174 !important; }
body .compare-service-card__titlelink { color:#733a56 !important; }
body .compare-service-card__cta { background:#a73b56 !important; color:#fff !important; }
body.compare-page .breadcrumb, body.compare-page .breadcrumb a, body.compare-page .breadcrumb span,
body.compare-page .compare-stack-card dt { color:#596174 !important; }
body.service-detail-page main .faq-section .detail-section__eyebrow { color:#96334e !important; }
body.compare-page.compare-age-page .compare-age-band-card { min-width:0 !important; }
body.compare-page.compare-age-page .compare-age-band-card .compare-route-card__cta { max-width:100% !important; white-space:normal !important; text-align:center; overflow-wrap:anywhere; }

.compare-page .compare-table-card { overflow-x:auto; }
.compare-page .compare-table { table-layout:fixed; width:100%; min-width:900px; }
.compare-page .compare-table th,.compare-page .compare-table td { word-break:normal; overflow-wrap:anywhere; padding:16px; }

/* Concise service pages and consistent section navigation. */
.service-section-nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.service-section-nav a { display:inline-flex; align-items:center; min-height:44px; padding:9px 14px; border:1px solid #e7dce0; border-radius:12px; background:#fff; color:#75354a; font-size:14px; font-weight:700; text-decoration:none; }
.service-section-nav a:hover { background:#fff4f7; border-color:#b96379; }
body.service-detail-page .service-hero__lead { font-size:17px !important; line-height:1.85 !important; max-width:38em !important; }
body.service-detail-page .service-facts { display:block !important; margin-top:18px !important; }
body.service-detail-page .service-fact, body.service-detail-page .service-fact:first-child { min-height:0 !important; height:auto !important; display:grid !important; grid-template-columns:76px 1fr !important; gap:12px !important; padding:12px 0 !important; border:0 !important; border-bottom:1px solid #ece5e0 !important; border-radius:0 !important; background:transparent !important; }
body.service-detail-page .service-fact dt { margin:0 !important; font-size:13px !important; line-height:1.75 !important; color:#636779 !important; }
body.service-detail-page .service-fact dd { font-size:14px !important; font-weight:600 !important; line-height:1.75 !important; }
body.service-detail-page .service-hero__panel-sub { color:#566074 !important; font-size:14px !important; }
body.service-detail-page .detail-section__eyebrow { margin:0 0 12px !important; font-size:13px !important; color:#a3445d !important; font-weight:700 !important; letter-spacing:.08em !important; }
body.service-detail-page .service-side .service-section-nav { flex-direction:column; margin-top:16px; }
body.service-detail-page .polish-fit-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
body.service-detail-page .polish-fit-grid > * { margin:0 !important; }
.related-service-title { display:inline-block; margin-bottom:12px; color:#934158; font-weight:800; font-size:18px; text-decoration:underline; text-underline-offset:4px; }

/* Two choices lead to three concrete comparison candidates. */
.finder-controls { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding:24px; border:1px solid #e8dfdf; border-radius:20px; background:#fff; }
.finder-controls fieldset { min-width:0; padding:0; margin:0; border:0; }
.finder-controls legend { padding:0; margin-bottom:14px; color:#293044; font-size:16px; font-weight:700; }
.finder-options { display:flex; flex-wrap:wrap; gap:8px; }
.finder-options label { position:relative; cursor:pointer; }
.finder-options input { position:absolute; width:1px; height:1px; padding:0; margin:0; overflow:hidden; clip-path:inset(50%); }
.finder-options span { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 18px; border:1px solid #ddd9db; border-radius:999px; background:#fff; color:#404456; font-size:14px; font-weight:700; }
.finder-options input:checked + span { background:#ad4058; border-color:#ad4058; color:#fff; }
.finder-options input:focus-visible + span { outline:3px solid #405ea9; outline-offset:3px; }
.finder-status { margin:24px 0 18px; font-size:15px; line-height:1.8; color:#536176; }
.finder-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.finder-card { display:flex; flex-direction:column; gap:16px; padding:24px; border:1px solid #e8dfdf; border-radius:20px; background:#fff; box-shadow:0 8px 24px rgba(43,34,42,.035); }
.finder-card__head { display:flex; align-items:center; gap:12px; }
.finder-card__head img { flex:0 0 44px; object-fit:contain; border-radius:10px; }
.finder-card h3 { margin:0; color:#293044; font-size:23px; }
.finder-card__feature { margin:0; color:#414c60; font-size:15px; line-height:1.8; }
.finder-card dl { display:grid; gap:14px; margin:0; padding-top:16px; border-top:1px solid #eee5e7; }
.finder-card dt { color:#8f3e55; font-size:13px; font-weight:700; }
.finder-card dd { margin:5px 0 0; color:#293044; font-size:14px; line-height:1.8; }
.finder-card__actions { display:flex; flex-direction:column; align-items:stretch; gap:10px; margin-top:auto; padding-top:4px; }
.finder-card__official { padding:6px; color:#95435a; font-size:14px; text-align:center; text-decoration:underline; text-underline-offset:4px; }
.finder-directory { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:24px; }
.finder-directory a { color:#934058; font-size:15px; line-height:1.8; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:767px) {
  body.service-detail-page .service-hero { padding:22px !important; }
  body.service-detail-page .service-hero__lead { font-size:15px !important; }
  body.service-detail-page .service-hero__panel { padding:20px !important; }
  body.service-detail-page .service-hero__panel h2 { font-size:21px !important; line-height:1.4 !important; }
  body.service-detail-page .polish-fit-grid { grid-template-columns:1fr; }
  .finder-controls { grid-template-columns:1fr; padding:20px; gap:22px; }
  .finder-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .finder-options span { padding:10px 6px; font-size:13px; }
  .finder-results { grid-template-columns:1fr; gap:16px; }
  .finder-card { padding:22px; }
  .finder-status { font-size:14px; }
}
