/* =====================================================================
   30-bands.css — patterns 30-47 (trade-off, FAQ, blog, map, CTA, risk,
   text cards, pull quotes, breadcrumb, topic grid, search, About, Contact,
   blog grid, legal, 404). Tokens only; every value below is a var() or a
   unitless number. Source of truth: ae701e0 _build_emit.py / _build_pages.py
   / _build_parts.py inline styles, reproduced one class per style set.
   ===================================================================== */

/* ---- TOKEN CANDIDATES (values the target sets with no token; merge into style.css §1) ---- */
:root {
  /* inner gaps used by every band: flex column / row gaps and small paddings */
  --cr-sp-1:6px;  /* CANDIDATE: used by trade-off CTA margin, badge margin, cover-tile label, 404/CTA button rows */
  --cr-sp-2:8px;  /* CANDIDATE: used by FAQ card row gap, form label gap, legal item gap, bio placeholder, search box margin */
  --cr-sp-3:10px; /* CANDIDATE: used by button icon gap, breadcrumb gap, chips gap, contact box gap, legal notice gap */
  --cr-sp-4:12px; /* CANDIDATE: used by checklist gap, text/cover/topic card gap, map column gap, credentials gap */
  --cr-sp-5:14px; /* CANDIDATE: used by sechead gap, risk box gap, post body gap, pull-quote cite gap */
  --cr-sp-6:16px; /* CANDIDATE: used by trade-off/risk/area copy gap, trade-off row gap, footnote padding, topic head gap */
  --cr-sp-7:18px; /* CANDIDATE: used by bio copy gap, form card gap, CTA/404 column gap */
  --cr-sp-8:20px; /* CANDIDATE: used by FAQ card column gap, contact side gap */
  --cr-sp-9:22px; /* CANDIDATE: used by trade-off panel gap */
  --cr-sp-10:24px; /* CANDIDATE: used by 4-up text card padding, bio placeholder padding */
  --cr-track-h1:-0.03em;  /* CANDIDATE: h1 tracking (parts.h) */
  --cr-track-h3:-0.01em;  /* CANDIDATE: h3 tracking (parts.h) */
  --cr-track-badge:0.08em; /* CANDIDATE: badge / chip / READ MORE tracking */
  --cr-badge-pad:7px 16px;   /* CANDIDATE: service-area pill badge */
  --cr-chip-pad:9px 16px;    /* CANDIDATE: Answer Engine chips */
  --cr-input-pad:14px 16px;  /* CANDIDATE: contact form inputs */
  --cr-btn-pad-form:16px 28px; /* CANDIDATE: contact "Send Request" button */
  --cr-lh-num:1.05;   /* CANDIDATE: trade-off count-up figures */
  --cr-lh-quote:1.55; /* CANDIDATE: pull-quote text */
  --cr-lh-mark:0.78;  /* CANDIDATE: pull-quote decorative mark */
  --cr-mark-rise:0.34; /* CANDIDATE: pull-quote padding-top = --fs-quote-mark * this */
  --cr-icon-arrow:16px; /* CANDIDATE: arrow() size */
  --cr-icon-check:20px; /* CANDIDATE: check() size */
  --cr-check-top:5px;   /* CANDIDATE: check() margin-top */
  --cr-topic-icon:56px; /* CANDIDATE: Answer Engine topic icon box */
  --cr-glass-blur:10px; /* CANDIDATE: FAQ card backdrop blur */
  --cr-faq-grad:linear-gradient(180deg, rgba(var(--ink-rgb),0.86) 0%, rgba(var(--ink-rgb),0.74) 100%); /* CANDIDATE: FAQ photo shade */
  --cr-map-ratio:952 / 666; /* CANDIDATE: map box aspect ratio */
  /* the arrow() and check() SVGs from _build_parts.py as masks, so a core/button and a core/list can carry them */
  --cr-arrow-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 8h9'/><path d='M8.5 4.5 12 8l-3.5 3.5'/></svg>"); /* CANDIDATE */
  --cr-check-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 10.5 8 14.5 16 6'/></svg>"); /* CANDIDATE */
}

/* ---- SHARED ATOMS (band, type, eyebrow, sechead, buttons, arrow, checklist, badge).
   Scoped to .cr-band, which every section in this file carries. If another
   family ships the same atoms, these are the parts.py values and can be lifted
   into style.css unchanged. ---- */
.cr-band { padding:var(--pad-std) var(--pad-h); background:var(--page); color:var(--text); }
.cr-band h1, .cr-band h2, .cr-band h3 { color:var(--text); overflow-wrap:break-word; text-wrap:balance; }
.cr-band h1 { font-size:var(--fs-h1); font-weight:var(--w-black); line-height:var(--lh-h1); letter-spacing:var(--cr-track-h1); }
.cr-band h2 { font-size:var(--fs-h2); font-weight:var(--w-black); line-height:var(--lh-h2); letter-spacing:var(--track-tight); }
.cr-band h3 { font-size:var(--fs-h3); font-weight:var(--w-bold); line-height:var(--lh-h3); letter-spacing:var(--cr-track-h3); }
.cr-band p { font-size:var(--fs-body); line-height:var(--lh-body); color:var(--muted); max-width:62ch; text-wrap:pretty; }
.cr-band .cr-lede { font-size:var(--fs-lead); line-height:var(--lh-lead); }
.cr-band .cr-eyebrow { font-size:var(--fs-small); font-weight:var(--w-semi); line-height:var(--lh-small); letter-spacing:var(--track-eyebrow); text-transform:uppercase; color:var(--muted); max-width:none; }
.cr-band .cr-eyebrow-accent { color:var(--accent-ink); }
.cr-band .cr-eyebrow-hi { color:var(--accent-hi); }
.cr-band .cr-eyebrow-dark { color:var(--on-dark-muted); }
.cr-sechead { display:flex; flex-direction:column; gap:var(--cr-sp-5); margin-bottom:var(--sechead-mb); }
.cr-sechead-h2 { max-width:22ch; }
.cr-band .cr-sechead-lede { max-width:58ch; }
.cr-band .wp-block-image { margin:0; }
.cr-band .wp-block-buttons { display:flex; flex-wrap:wrap; }

/* buttons: the pill is the wrapper (so style.css's .btn-primary:hover / .btn-ghost:hover keep working), the link fills it */
.cr-band .wp-block-button.btn { display:inline-flex; border-radius:var(--r-btn); align-self:flex-start; box-sizing:border-box; }
.cr-band .wp-block-button.btn-primary { background:var(--accent); color:var(--on-dark); }
.cr-band .wp-block-button.btn-ghost { background:var(--page); color:var(--text); border:1px solid var(--border); }
.cr-band .wp-block-button.btn .wp-block-button__link { background:transparent; color:inherit; border-radius:inherit; padding:var(--btn-pad-sm);
  font-family:var(--sans); font-size:var(--fs-ui); font-weight:var(--w-semi); line-height:1; display:inline-flex; align-items:center; gap:var(--cr-sp-3);
  white-space:nowrap; box-sizing:border-box; text-decoration:none; }
.cr-band .wp-block-button.cr-btn-md .wp-block-button__link { padding:var(--btn-pad-md); }
.cr-band .wp-block-button.cr-btn-lg.btn-primary .wp-block-button__link { padding:var(--btn-pad); }
.cr-band .wp-block-button.cr-btn-lg.btn-ghost .wp-block-button__link { padding:var(--btn-pad-ghost); }

/* arrow(): after a button label or an inline link */
.cr-band .cr-btn-arrow .wp-block-button__link::after, .cr-band a.cr-link-arrow::after { content:""; flex:none; width:var(--cr-icon-arrow); height:var(--cr-icon-arrow);
  background-color:currentColor; -webkit-mask:var(--cr-arrow-mask) center / contain no-repeat; mask:var(--cr-arrow-mask) center / contain no-repeat; }
.cr-band a.cr-link-arrow { display:inline-flex; align-items:center; gap:var(--cr-sp-2); }

/* checklist(): rows with check() in --accent */
.cr-checklist { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--cr-sp-4); }
.cr-checklist li { display:flex; align-items:flex-start; gap:var(--cr-sp-4); font-size:var(--fs-body); line-height:var(--lh-body); color:var(--text); }
.cr-checklist li::before { content:""; flex:none; width:var(--cr-icon-check); height:var(--cr-icon-check); margin-top:var(--cr-check-top);
  background-color:var(--accent); -webkit-mask:var(--cr-check-mask) center / contain no-repeat; mask:var(--cr-check-mask) center / contain no-repeat; }

/* pill badge (service-area band) */
.cr-band .cr-badge { background:var(--tint); color:var(--accent-ink); border-radius:var(--r-btn); padding:var(--cr-badge-pad); font-size:var(--fs-small);
  font-weight:var(--w-semi); letter-spacing:var(--cr-track-badge); text-transform:uppercase; align-self:flex-start; margin-top:var(--cr-sp-1); max-width:none; }

/* stretched link: the inner anchor covers its .card (position:relative from style.css) */
.cr-post-more a::before, .cr-cover-link a::before, .cr-topic-title a::after { content:""; position:absolute; inset:0; }

/* ---- 30 trade-off band ---- */
.cr-tradeoff-band { background:var(--ink); color:var(--on-dark); padding:var(--pad-big) var(--pad-h); }
.cr-trade-grid { --cols:minmax(0,1.1fr) minmax(0,1fr); --ai:center; }
.cr-trade-copy { display:flex; flex-direction:column; gap:var(--cr-sp-6); }
.cr-tradeoff-band h2 { color:var(--on-dark); }
.cr-trade-h2 { max-width:20ch; }
.cr-tradeoff-band .cr-lede { color:var(--on-dark-muted); }
.cr-trade-cta { margin-top:var(--cr-sp-1); }
.cr-trade-panel { background:var(--glass-06); border:1px solid var(--glass-16); border-radius:var(--r-card); padding:var(--pad-card-lg); display:flex; flex-direction:column; gap:var(--cr-sp-9); }
.cr-trade-row { display:flex; align-items:center; gap:var(--cr-sp-6); }
.cr-trade-row + .cr-trade-row { border-top:1px solid var(--glass-16); padding-top:var(--cr-sp-9); }
.cr-trade-icon { display:block; flex:none; line-height:0; }
.cr-trade-fig { display:flex; flex-direction:column; }
.cr-tradeoff-band .cr-trade-num { font-family:var(--display); font-size:var(--fs-num-lg); font-weight:var(--w-black); color:var(--on-dark); line-height:var(--cr-lh-num); font-variant-numeric:tabular-nums; max-width:none; }
.cr-tradeoff-band .cr-trade-note { font-size:var(--fs-small); line-height:var(--lh-small); color:var(--on-dark-muted); border-top:1px solid var(--glass-16); padding-top:var(--cr-sp-6); max-width:none; }

/* ---- 31 / 32 FAQ ---- */
.cr-faq-photo { position:relative; overflow:hidden; background:var(--ink); color:var(--on-dark); }
.cr-faq-photo .cr-faq-bg { position:absolute; inset:0; z-index:0; }
.cr-faq-photo .cr-faq-bg img { display:block; width:100%; height:100%; object-fit:cover; }
.cr-faq-shade { position:absolute; inset:0; background:var(--cr-faq-grad); z-index:1; }
.cr-faq-photo > .wrap { position:relative; z-index:2; }
.cr-faq-head { --mw:80ch; margin-left:auto; display:flex; flex-direction:column; gap:var(--cr-sp-5); margin-bottom:var(--sechead-mb); }
.cr-faq-photo h2 { color:var(--on-dark); }
.cr-faq-items { --mw:80ch; display:flex; flex-direction:column; gap:var(--gap-faq); }
.cr-faq-photo .cr-faq-items { margin-left:auto; }
.cr-faq-item { background:var(--page); border-radius:var(--r-card); padding:var(--pad-faq); display:grid; grid-template-columns:minmax(0,1fr) auto;
  column-gap:var(--cr-sp-8); row-gap:var(--cr-sp-2); align-items:baseline; }
.cr-faq-photo .cr-faq-item { background:var(--glass-82); -webkit-backdrop-filter:blur(var(--cr-glass-blur)); backdrop-filter:blur(var(--cr-glass-blur)); border:1px solid var(--glass-28); }
.cr-faq-item .cr-faq-q { grid-column:1; grid-row:1; }
.cr-faq-plus { grid-column:2; grid-row:1; display:inline-block; }
.cr-faq-plus svg { display:inline-block; vertical-align:baseline; }
.cr-band .cr-faq-a { grid-column:1 / -1; max-width:76ch; }

/* ---- 33 / 44 blog cards ---- */
.cr-blog-head { display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--cr-sp-5); margin-bottom:var(--sechead-mb); }
.cr-blog-3up { --cols:repeat(3,minmax(0,1fr)); --g:var(--gap-grid); }
.cr-blog-2up { --cols:repeat(2,minmax(0,1fr)); --g:var(--gap-col); }
.cr-blog-grid { background:var(--surface); }
.cr-post { display:flex; flex-direction:column; background:var(--page); border:1px solid var(--border); border-radius:var(--r-card); overflow:hidden; box-shadow:var(--shadow); color:var(--text); }
.cr-post-img img { display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; }
.cr-post-body { display:flex; flex-direction:column; gap:var(--cr-sp-5); padding:var(--pad-card-lg); }
.cr-band .cr-post-excerpt { max-width:none; }
.cr-band .cr-post-more { font-size:var(--fs-small); font-weight:var(--w-semi); letter-spacing:var(--cr-track-badge); text-transform:uppercase; color:var(--accent-ink); max-width:none; line-height:var(--lh-body); }
.cr-post-more a { color:var(--accent-ink); }
.cr-blog-all { display:flex; justify-content:center; padding-top:var(--proc-pt); }
.cr-band .cr-blog-all-link { font-size:var(--fs-ui); font-weight:var(--w-semi); white-space:nowrap; max-width:none; }
.cr-blog-all-link a { color:var(--accent-ink); }

/* ---- 34 service-area map ---- */
.cr-service-area-map { background:var(--surface); }
.cr-area-grid { --cols:minmax(0,1fr) minmax(0,1fr); --ai:center; }
.cr-area-copy { display:flex; flex-direction:column; gap:var(--cr-sp-6); }
.cr-area-h2 { max-width:18ch; }
.cr-area-map { display:flex; flex-direction:column; gap:var(--cr-sp-4); text-align:center; }
.cr-map-box { border:1px solid var(--border); border-radius:var(--r-card); overflow:hidden; aspect-ratio:var(--cr-map-ratio); display:grid; background:var(--page); }
.cr-map-box > * { grid-area:1 / 1; min-width:0; min-height:0; }
.cr-map-static { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--cr-sp-3); padding:var(--pad-box); text-align:center; box-sizing:border-box; }
.cr-map-pin { display:block; line-height:0; }
.cr-band .cr-map-addr { font-size:var(--fs-body); line-height:var(--lh-ui); font-weight:var(--w-semi); color:var(--text); max-width:none; }
.cr-map-load { background:var(--accent); color:var(--on-dark); border:0; border-radius:var(--r-btn); padding:var(--btn-pad-sm); font-family:var(--sans); font-size:var(--fs-ui);
  font-weight:var(--w-semi); line-height:1; cursor:pointer; transition:background-color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.cr-map-load:active { transform:scale(0.97); }
.cr-map-open { font-size:var(--fs-ui); font-weight:var(--w-semi); color:var(--accent-ink); }
.cr-band .cr-map-note { font-size:var(--fs-small); line-height:var(--lh-small); color:var(--muted); max-width:none; }
.cr-map-facade.is-loaded .cr-map-static { display:none; }
.cr-map-frame { display:block; width:100%; height:100%; border:0; }

/* ---- 35 CTA band ---- */
.cr-cta-band { background:var(--tint); padding:var(--pad-big) var(--pad-h); }
.cr-cta-col { display:flex; flex-direction:column; gap:var(--cr-sp-7); align-items:center; text-align:center; max-width:60ch; margin:0 auto; }
.cr-band .cr-cta-lede { max-width:none; }
.cr-band .cr-cta-btns { justify-content:center; padding-top:var(--cr-sp-1); }

/* ---- 36 risk band ---- */
.cr-risk-band { background:var(--tint); }
.cr-risk-grid { --cols:minmax(0,1.3fr) minmax(0,1fr); --ai:start; }
.cr-risk-copy { display:flex; flex-direction:column; gap:var(--cr-sp-6); }
.cr-risk-box { background:var(--page); border:1px solid var(--border); border-radius:var(--r-card); padding:var(--pad-box); display:flex; flex-direction:column; gap:var(--cr-sp-5); }

/* ---- 37 / 42b text card grid ---- */
.cr-text-card { background:var(--page); border:1px solid var(--border); border-radius:var(--r-card); padding:var(--cr-sp-10); box-shadow:var(--shadow); display:flex; flex-direction:column; gap:var(--cr-sp-4); }
.cr-band .cr-text-card-body { max-width:none; }
.cr-text-cards-3 .cr-text-card { padding:var(--pad-step); }
.cr-band .cr-text-cards-3 .cr-text-card-body { max-width:40ch; }

/* ---- 38 pull-quote pair ---- */
.cr-pull-quote-pair { background:var(--surface); }
.cr-pq-grid { --cols:repeat(2,minmax(0,1fr)); --g:var(--gap-col); }
.cr-band .cr-pq { margin:0; padding:0; border:0; position:relative; display:flex; flex-direction:column; gap:var(--gap-fig); padding-top:calc(var(--fs-quote-mark) * var(--cr-mark-rise)); }
.cr-pq::before { content:"\201C"; position:absolute; top:0; left:var(--mark-x); z-index:0; font-family:var(--display); font-weight:var(--w-black); font-size:var(--fs-quote-mark);
  line-height:var(--cr-lh-mark); color:var(--tint2); opacity:0.5; user-select:none; pointer-events:none; }
.cr-band .cr-pq-text { position:relative; z-index:1; margin:0; font-size:var(--fs-quote); line-height:var(--cr-lh-quote); font-weight:var(--w-body); font-style:normal; color:var(--text); max-width:none; }
.cr-band .cr-pq cite { position:relative; z-index:1; display:flex; align-items:center; gap:var(--cr-sp-5); font-size:var(--fs-small); line-height:var(--lh-small); font-style:normal; color:var(--muted); }
.cr-pq cite::before { content:""; width:var(--rule-w); height:2px; background:var(--accent); flex:none; }
.cr-pq cite strong { color:var(--text); font-weight:var(--w-semi); }

/* ---- 39 breadcrumb strip ---- */
.cr-breadcrumb-strip { padding:var(--pad-card-sm) var(--pad-h); border-bottom:1px solid var(--border); font-size:var(--fs-ui); color:var(--muted); }
.cr-breadcrumb-strip > .wrap { display:flex; gap:var(--cr-sp-3); flex-wrap:wrap; align-items:center; justify-content:space-between; }
.cr-band .cr-crumbs-path, .cr-band .cr-crumbs-also { display:flex; gap:var(--cr-sp-3); flex-wrap:wrap; align-items:center; font-size:var(--fs-ui); line-height:var(--lh-body); color:var(--muted); max-width:none; }
.cr-crumbs-path a { color:var(--muted); }
.cr-crumbs-path strong { color:var(--text); font-weight:var(--w-semi); }
.cr-crumbs-also a { color:var(--accent-ink); font-weight:var(--w-semi); white-space:nowrap; }

/* ---- 40 topic grid ---- */
.cr-topic-head { display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--cr-sp-6); margin-bottom:var(--sechead-mb); }
.cr-topic-h2 { max-width:22ch; }
.cr-band .cr-topic-lede { max-width:58ch; }
.cr-topic { display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--cr-sp-4); background:var(--page); border:1px solid var(--border);
  border-radius:var(--r-card); padding:var(--pad-card-lg); box-shadow:var(--shadow); color:var(--text); }
.cr-topic-icon { display:block; width:var(--cr-topic-icon); line-height:0; }
.cr-topic-icon svg { width:100%; height:auto; }
.cr-topic-title a { color:inherit; }
.cr-band .cr-topic-body { max-width:34ch; }

/* ---- 41 search block ---- */
.cr-search-block { background:var(--surface); }
.cr-search-col { display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--cr-sp-6); }
.cr-search-h2 { max-width:22ch; }
.cr-band .cr-search-lede { max-width:56ch; }
.cr-search-box { --mw:70ch; width:100%; box-sizing:border-box; position:relative; background:var(--page); border:1px solid var(--border); border-radius:var(--r-card);
  padding:var(--pad-card-sm); box-shadow:var(--shadow); display:flex; gap:var(--cr-sp-4); align-items:center; margin-top:var(--cr-sp-2); }
.cr-search-box svg { flex:none; }
.cr-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.cr-search-input { flex:1; border:0; outline:none; font-family:var(--sans); font-size:var(--fs-ui); color:var(--text); background:transparent; min-width:0; padding:0; }
.cr-search-pop { display:flex; flex-wrap:wrap; gap:var(--cr-sp-3); justify-content:center; align-items:center; margin-top:var(--cr-sp-1); }
.cr-band .cr-search-pop-label { font-size:var(--fs-ui); font-weight:var(--w-semi); color:var(--text); max-width:none; }
.cr-chips { list-style:none; margin:0; padding:0; display:contents; }
.cr-chips li { background:var(--page); border:1px solid var(--border); border-radius:var(--r-btn); padding:var(--cr-chip-pad); font-size:var(--fs-ui); line-height:var(--lh-body); color:var(--muted); white-space:nowrap; }

/* ---- 42 About ---- */
.cr-about-bio { background:var(--surface); }
.cr-bio-grid { --cols:minmax(0,1.4fr) minmax(0,1fr); --ai:start; }
.cr-bio-copy { display:flex; flex-direction:column; gap:var(--cr-sp-7); }
.cr-bio-creds { padding-top:var(--cr-sp-1); display:flex; flex-direction:column; gap:var(--cr-sp-4); }
.cr-bio-ph { background:var(--surface2); border:1px dashed var(--border); border-radius:var(--r-card); display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:var(--cr-sp-2); padding:var(--cr-sp-10); text-align:center; box-sizing:border-box; }
.cr-bio-ph svg { display:block; }
.cr-band .cr-bio-ph-title { font-size:var(--fs-small); font-weight:var(--w-semi); color:var(--text); max-width:none; }
.cr-band .cr-bio-ph-note { font-size:var(--fs-small); color:var(--muted); max-width:none; }
.cr-about-cover-tiles { background:var(--tint); }
.cr-cover { background:var(--page); border:1px solid var(--border); border-radius:var(--r-card); padding:var(--pad-card); box-shadow:var(--shadow); display:flex; flex-direction:column; gap:var(--cr-sp-4); color:var(--text); }
.cr-cover-icon { display:block; width:var(--icon-w); line-height:0; }
.cr-cover-icon svg { width:100%; height:auto; }
.cr-band .cr-cover-title { font-size:var(--fs-card-h); }
.cr-band .cr-cover-body { max-width:36ch; }
.cr-band .cr-cover-link { margin-top:auto; padding-top:var(--cr-sp-1); font-size:var(--fs-ui); font-weight:var(--w-semi); max-width:none; line-height:var(--lh-body); }
.cr-cover-link a { color:var(--accent-ink); }

/* ---- 43 Contact ---- */
.cr-contact-sections { background:var(--surface); }
.cr-form-grid { --cols:minmax(0,1.1fr) minmax(0,1fr); --ai:start; }
.cr-form-card { background:var(--page); border:1px solid var(--border); border-radius:var(--r-card); padding:var(--pad-card-lg); box-shadow:var(--shadow); display:flex; flex-direction:column; gap:var(--cr-sp-7); }
.cr-form-fields { display:flex; flex-direction:column; gap:var(--cr-sp-7); }
.cr-field { display:flex; flex-direction:column; gap:var(--cr-sp-2); }
.cr-field-label { font-size:var(--fs-ui); font-weight:var(--w-semi); color:var(--text); }
.cr-form-fields .cr-input { font-family:var(--sans); font-size:var(--fs-ui); padding:var(--cr-input-pad); border:1px solid var(--border); border-radius:var(--r-sm); background:var(--page); color:var(--text); width:100%; box-sizing:border-box; }
.cr-form-submit { background:var(--accent); color:var(--on-dark); border:0; border-radius:var(--r-btn); padding:var(--cr-btn-pad-form); font-family:var(--sans); font-size:var(--fs-ui); font-weight:var(--w-semi); cursor:pointer; align-self:flex-start; }
.cr-band .cr-form-note { font-size:var(--fs-small); color:var(--muted); max-width:none; }
.cr-contact-side { display:flex; flex-direction:column; gap:var(--cr-sp-8); }
.cr-contact-box { background:var(--page); border:1px solid var(--border); border-radius:var(--r-card); padding:var(--pad-box); display:flex; flex-direction:column; gap:var(--cr-sp-3); }
.cr-contact-after { gap:var(--cr-sp-4); }
.cr-band .cr-contact-phone { font-family:var(--display); font-size:var(--fs-phone); font-weight:var(--w-black); color:var(--text); max-width:none; }
.cr-band .cr-contact-email { overflow-wrap:anywhere; max-width:none; }
.cr-band .cr-contact-addr { max-width:none; }

/* ---- 45 / 46 legal ---- */
.cr-legal-heading { padding-bottom:var(--pad-tight); }
.cr-legal-head { display:flex; flex-direction:column; gap:var(--cr-sp-5); }
.cr-band .cr-legal-h1 { font-size:var(--fs-h2); max-width:24ch; }
.cr-band .cr-legal-lede { max-width:52ch; }
.cr-band .cr-legal-updated { font-size:var(--fs-small); line-height:var(--lh-small); max-width:none; }
.cr-legal-notice { background:var(--tint); }
.cr-legal-notice-col { display:flex; flex-direction:column; gap:var(--cr-sp-3); max-width:70ch; }
.cr-band .cr-legal-notice-p { color:var(--text); max-width:70ch; }
.cr-legal-col { display:flex; flex-direction:column; gap:var(--gap-legal); }
.cr-legal-item { display:flex; flex-direction:column; gap:var(--cr-sp-2); }
.cr-band .cr-legal-h2 { font-size:var(--fs-body); max-width:52ch; }
.cr-band .cr-legal-p { max-width:70ch; }

/* ---- 47 not found ---- */
.cr-404-col { display:flex; flex-direction:column; gap:var(--cr-sp-7); align-items:flex-start; max-width:60ch; }
.cr-band .cr-404-btns { padding-top:var(--cr-sp-1); }

/* ---- hover ---- */
@media (hover:hover) and (pointer:fine) {
  .cr-map-load:hover { background:var(--accent-hover); transform:translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  .cr-map-load:hover { transform:none; }
}

/* ---- mobile ---- */
@media (max-width:767px) {
  .cr-faq-head, .cr-faq-photo .cr-faq-items { margin-left:0; }
}
