:root {
  --cm-ink: #123b35;
  --cm-ink-soft: #3f5e58;
  --cm-muted: #5a716c;
  --cm-brand: #08786d;
  --cm-brand-hover: #056158;
  --cm-brand-soft: #d9f5e8;
  --cm-accent: #c94a34;
  --cm-accent-text: #a53a29;
  --cm-paper: #fff9ef;
  --cm-surface: #fffefb;
  --cm-surface-sage: #e8f6ef;
  --cm-line: #d7e2dc;
  --cm-success: #2e7458;
  --cm-danger: #a33d34;
  --cm-font-sans: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cm-font-display: "Bricolage Grotesque", var(--cm-font-sans);
  --cm-text-xs: .75rem;
  --cm-text-sm: .875rem;
  --cm-text-base: 1rem;
  --cm-text-lead: clamp(1.08rem, 1.02rem + .3vw, 1.25rem);
  --cm-h3: clamp(1.38rem, 1.27rem + .5vw, 1.75rem);
  --cm-h2: clamp(2rem, 1.7rem + 1.35vw, 2.75rem);
  --cm-h1: clamp(2.48rem, 2.05rem + 2.1vw, 4rem);
  --cm-space-1: .25rem;
  --cm-space-2: .5rem;
  --cm-space-3: .75rem;
  --cm-space-4: 1rem;
  --cm-space-5: 1.25rem;
  --cm-space-6: 1.5rem;
  --cm-space-8: 2rem;
  --cm-space-10: 2.5rem;
  --cm-space-12: 3rem;
  --cm-space-16: 4rem;
  --cm-space-20: 5rem;
  --cm-space-24: 6rem;
  --cm-radius-sm: 8px;
  --cm-radius-md: 14px;
  --cm-radius-lg: 22px;
  --cm-shadow-popover: 0 20px 48px rgb(18 59 53 / 16%);
  --cm-button-shadow: 0 5px 0 #056158, 0 11px 22px rgb(18 59 53 / 16%);
  --cm-button-shadow-soft: 0 3px 0 rgb(18 59 53 / 13%), 0 8px 18px rgb(18 59 53 / 8%);
  --cm-gutter: clamp(20px, 5vw, 72px);
  --cm-container: 1200px;
  --cm-reading: 680px;
  --cm-ease-out: cubic-bezier(.22, 1, .36, 1);
  --cm-duration-fast: 160ms;
  --cm-duration-ui: 240ms;
  --navy: var(--cm-brand);
  --deep: var(--cm-surface);
  --teal: var(--cm-brand);
  --teal-soft: var(--cm-brand-hover);
  --amber: var(--cm-accent);
  --amber-soft: var(--cm-accent-text);
  --cream: var(--cm-ink);
  --gray: var(--cm-muted);
  --light-gray: var(--cm-ink-soft);
  --red: var(--cm-danger);
  --green: var(--cm-success);
  --page-bg: var(--cm-paper);
  --surface: var(--cm-surface);
  --surface-soft: var(--cm-surface-sage);
  --border: var(--cm-line);
  --shadow: 0 14px 34px rgb(18 59 53 / 9%);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
}

body.site-public,
body.home-refresh {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  background: var(--cm-paper);
  color: var(--cm-ink);
  font-family: var(--cm-font-sans);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.menu-open { overflow: hidden; }

body.site-public img,
body.home-refresh img {
  display: block;
  max-width: 100%;
}

body.site-public button,
body.site-public input,
body.site-public select,
body.site-public textarea,
body.home-refresh button,
body.home-refresh input,
body.home-refresh select,
body.home-refresh textarea { font: inherit; }

body.site-public h1,
body.site-public h2,
body.site-public h3,
body.home-refresh h1,
body.home-refresh h2,
body.home-refresh h3 {
  margin: 0;
  color: var(--cm-ink);
  font-family: var(--cm-font-display);
  font-weight: 600;
  letter-spacing: -.025em;
}

body.site-public h1,
body.home-refresh h1 { font-size: var(--cm-h1); line-height: 1.01; }
body.site-public h2,
body.home-refresh h2 { font-size: var(--cm-h2); line-height: 1.08; }
body.site-public h3,
body.home-refresh h3 { font-size: var(--cm-h3); line-height: 1.16; }

body.site-public p,
body.site-public ul,
body.site-public ol,
body.site-public dl,
body.home-refresh p,
body.home-refresh ul,
body.home-refresh ol,
body.home-refresh dl { margin-top: 0; }

body.site-public a,
body.home-refresh a { color: var(--cm-brand); }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--cm-brand);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 1000;
  transform: translateY(-160%);
  padding: .7rem 1rem;
  border-radius: var(--cm-radius-sm);
  background: var(--cm-ink);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: transform var(--cm-duration-fast) var(--cm-ease-out);
}

.skip-link:focus { transform: translateY(0); }

.section-inner,
.hero-inner,
.footer-inner {
  width: min(calc(100% - (2 * var(--cm-gutter))), var(--cm-container));
  margin-inline: auto;
}

.section-kicker,
.hero-kicker,
.request-kicker,
.hero-badge,
.pro-mode-label {
  display: block;
  margin: 0 0 var(--cm-space-4);
  color: var(--cm-accent-text);
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .075em;
  line-height: 1.3;
  text-transform: uppercase;
}

.section-heading {
  max-width: 720px;
  margin-bottom: var(--cm-space-10);
}

.section-heading p {
  max-width: 620px;
  margin: var(--cm-space-4) 0 0;
  color: var(--cm-muted);
  font-size: var(--cm-text-lead);
}

/* Shared header and navigation */
.site-header,
body.site-public > nav,
.home-nav {
  position: sticky;
  top: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  padding: 0 var(--cm-gutter);
  border: 0;
  border-bottom: 1px solid rgb(23 49 45 / 10%);
  background: rgb(255 249 239 / 94%);
  box-shadow: none;
  backdrop-filter: blur(12px);
}
.site-header > nav {
  position: static;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, var(--cm-container));
  min-height: 64px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}

.logo {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--cm-ink);
  font-family: var(--cm-font-sans);
  font-size: 1.18rem;
  font-weight: 750;
  letter-spacing: -.035em;
  text-decoration: none;
  white-space: nowrap;
}

.logo-dot { color: var(--cm-accent); }
.logo-accent-e { color: inherit; }

.nav-links,
.nav-desktop-only { display: none; }

.nav-actions,
.public-nav-actions { display: flex; align-items: center; gap: .25rem; }
.nav-login { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .45rem .6rem; color: var(--cm-ink); font-size: .82rem; font-weight: 750; white-space: nowrap; text-decoration: underline; text-underline-offset: .22em; }

.hamburger,
.nav-hamburger,
.mobile-menu-close {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--cm-radius-md);
  background: transparent;
  color: var(--cm-ink);
  cursor: pointer;
}

.hamburger span,
.nav-hamburger span {
  display: block;
  width: 20px;
  height: 1.5px;
  margin: 2px auto;
  background: currentColor;
}

.mobile-menu-close { width: auto; min-width: 44px; padding: 0 .35rem; font-size: .86rem; font-weight: 700; }

.nav-share-trigger { display: none; }

.mobile-menu,
.nav-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 600;
  display: none;
  padding: 0;
  background: rgb(23 49 45 / 42%);
}

.mobile-menu.open,
.nav-mobile-menu.open { display: block; }

.mobile-menu-panel {
  margin-left: auto;
  width: min(100%, 390px);
  height: 100%;
  max-height: 100dvh;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 12px var(--cm-gutter) calc(28px + env(safe-area-inset-bottom));
  background: var(--cm-surface);
  box-shadow: var(--cm-shadow-popover);
}

.mobile-menu-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  margin-bottom: 1rem;
}

.mobile-menu-link,
.nav-mobile-link {
  display: flex;
  align-items: center;
  min-height: 54px;
  border-bottom: 1px solid var(--cm-line);
  color: var(--cm-ink);
  font-size: 1.04rem;
  font-weight: 650;
  text-decoration: none;
}

.mobile-menu-cta,
.nav-mobile-cta {
  justify-content: center;
  margin-top: 1.25rem;
  border: 1px solid var(--cm-ink);
  border-radius: 16px;
  background: var(--cm-ink);
  box-shadow: var(--cm-button-shadow);
  color: #fff;
  font-weight: 800;
}

body.site-public a.nav-mobile-cta,
body.home-refresh a.mobile-menu-cta { color: #fff; }

.mobile-menu-login,
.nav-mobile-login { justify-content: center; border: 0; font-size: .94rem; }
.mobile-menu-share { width: 100%; border: 0; background: transparent; cursor: pointer; }
.share-status { min-height: 1.4em; margin: .5rem 0 0; color: var(--cm-muted); font-size: .82rem; }
.share-status:empty { display: none; }

/* Buttons and fields */
.btn,
.cta-btn,
.nav-cta,
.btn-cta-amber,
.hero-search-submit,
.cookie-btn,
.local-demand-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: .78rem 1.15rem;
  border: 1px solid transparent;
  border-radius: var(--cm-radius-md);
  background: var(--cm-brand);
  box-shadow: var(--cm-button-shadow);
  color: #fff;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--cm-duration-fast), border-color var(--cm-duration-fast), color var(--cm-duration-fast);
}

.btn:hover,
.cta-btn:hover,
.nav-cta:hover,
.hero-search-submit:hover,
.cookie-btn:hover { background: var(--cm-brand-hover); color: #fff; }

body.site-public a.btn-primary,
body.site-public a.cta-btn,
body.site-public a.nav-cta,
body.site-public a.nav-btn,
body.site-public a.slot-action,
body.site-public a.btn-cta-amber,
body.home-refresh a.btn-cta-amber { color: #fff; }

.btn-secondary,
.home-pro-more,
.cookie-btn-decline {
  border-color: rgb(18 59 53 / 20%);
  background: var(--cm-surface);
  box-shadow: var(--cm-button-shadow-soft);
  color: var(--cm-ink);
}

.btn-secondary:hover,
.home-pro-more:hover,
.cookie-btn-decline:hover { background: var(--cm-brand-soft); color: var(--cm-brand-hover); }

.btn-cta-amber { background: var(--cm-accent); box-shadow: 0 5px 0 #943725, 0 11px 22px rgb(148 55 37 / 17%); }
.btn-cta-amber:hover { background: var(--cm-accent-text); }
.btn:disabled { box-shadow: none; opacity: .55; cursor: not-allowed; }

.form-group { margin-bottom: var(--cm-space-5); }
.form-group label,
.request-fieldset legend,
.local-demand-form label {
  display: block;
  margin-bottom: .42rem;
  color: var(--cm-ink);
  font-size: .9rem;
  font-weight: 700;
}

.form-group input,
.form-group select,
.form-group textarea,
.hero-search-input,
.local-demand-form input,
.availability-window-fields select {
  width: 100%;
  min-height: 56px;
  padding: .8rem .95rem;
  border: 1px solid #bfc8c1;
  border-radius: var(--cm-radius-md);
  background: #fff;
  color: var(--cm-ink);
  font-size: 1rem;
  transition: border-color var(--cm-duration-fast), box-shadow var(--cm-duration-fast);
}

.form-group textarea { min-height: 112px; resize: vertical; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.hero-search-input:focus,
.local-demand-form input:focus {
  border-color: var(--cm-brand);
  box-shadow: 0 0 0 3px rgb(8 120 109 / 16%);
  outline: 0;
}

.form-row { display: grid; gap: var(--cm-space-4); }
.choice-list { display: grid; gap: .6rem; }
.choice-option {
  display: flex;
  align-items: flex-start;
  gap: .72rem;
  min-height: 52px;
  padding: .82rem .9rem;
  border: 1px solid var(--cm-line);
  border-radius: var(--cm-radius-md);
  background: #fff;
  color: var(--cm-ink);
  font-weight: 650;
  cursor: pointer;
}
.choice-option:has(input:checked) { border-color: var(--cm-brand); background: var(--cm-brand-soft); }
.choice-option input { flex: 0 0 auto; width: auto; min-height: auto; margin-top: .18rem; padding: 0; border: 0; accent-color: var(--cm-brand); }
.choice-option small { display: block; margin-top: .18rem; color: var(--cm-muted); font-weight: 450; }

/* Generic public pages */
body.site-public .page {
  width: min(calc(100% - (2 * var(--cm-gutter))), 1000px);
  min-height: calc(100vh - 64px);
  margin: 0 auto;
  padding: var(--cm-space-8) 0 var(--cm-space-16);
}
body.site-public .page-sm { max-width: 620px; }
body.site-public .page-md { max-width: 760px; }
body.site-public .card {
  padding: clamp(1.15rem, 4vw, 2rem);
  border: 1px solid var(--cm-line);
  border-radius: var(--cm-radius-lg);
  background: var(--cm-surface);
  box-shadow: var(--shadow);
}
.card-header { margin-bottom: 1.5rem; }
.card-header p { margin-top: .45rem; color: var(--cm-muted); }
.text-link { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; }
.alert { margin-bottom: 1rem; padding: .85rem 1rem; border-radius: var(--cm-radius-md); }
.alert-success { background: #e4f2e9; color: #225f47; }
.alert-error { background: #f8e8e5; color: #8b352e; }
.btn-sm { min-height: 44px; padding: .55rem .8rem; font-size: .84rem; }
.btn-full { width: 100%; }
.badge-available,
.badge-completed { background: #e4f2e9; color: #225f47; }
.badge-booked,
.badge-pending { background: #fff0e6; color: #843f29; }
.badge-cancelled { background: #f8e8e5; color: #8b352e; }
.badge-expired,
.badge-rejected { background: #f8e8e5; color: #8b352e; }
.btn-danger { border-color: var(--cm-danger); background: var(--cm-danger); box-shadow: 0 4px 0 #7f2d27, 0 9px 18px rgb(163 61 52 / 14%); color: #fff; }
.success { color: var(--cm-success); }
.error { color: var(--cm-danger); }
.modal-overlay { position: fixed; inset: 0; z-index: 700; display: none; place-items: end center; padding: 1rem; background: rgb(23 49 45 / 42%); }
.modal-overlay.open,
.modal-overlay.show { display: grid; }
.modal { position: fixed; inset: 0; z-index: 700; display: none; place-items: end center; padding: 1rem; background: rgb(23 49 45 / 42%); }
.modal.open,
.modal.show { display: grid; }
.modal-content { width: min(100%, 620px); max-height: calc(100vh - 2rem); overflow: auto; padding: 1.2rem; border-radius: var(--cm-radius-lg); background: var(--cm-surface); box-shadow: var(--cm-shadow-popover); }
.booking-shell { max-width: 680px; }
.booking-context { color: var(--cm-accent-text); font-size: .85rem; font-weight: 750; }
.booking-card { margin-top: 1rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-lg); background: var(--cm-surface); overflow: hidden; }
.booking-summary,
.booking-primary-action,
.booking-details-disclosure { padding: 1.25rem; }
.booking-summary { border-bottom: 1px solid var(--cm-line); }
.booking-kicker { margin: 0 0 .35rem; color: var(--cm-accent-text); font-size: .8rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.booking-summary h1 { font-size: clamp(2rem, 9vw, 2.8rem); }
.booking-slot-time { margin: .75rem 0 0; color: var(--cm-ink-soft); font-size: 1rem; }
.booking-slot-time strong { color: var(--cm-ink); font-size: 1.18rem; }
.booking-professional { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: .8rem; align-items: center; margin-top: 1rem; }
.booking-professional-photo,
.booking-professional-initial { width: 56px; height: 56px; border-radius: 50%; }
.booking-professional-photo { object-fit: cover; }
.booking-professional-initial { display: grid; place-items: center; background: var(--cm-brand-soft); color: var(--cm-brand); font-weight: 750; }
.booking-professional strong,
.booking-professional span { display: block; }
.booking-professional span { color: var(--cm-muted); font-size: .85rem; }
.booking-professional span:last-child { color: var(--cm-accent-text); font-weight: 700; }
.booking-trust-line { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: .75rem; color: var(--cm-success); font-size: .82rem; font-weight: 700; }
.booking-quick-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; margin: 1rem 0 0; border-top: 1px solid var(--cm-line); }
.booking-quick-facts > div { min-width: 0; padding: .75rem 0; border-bottom: 1px solid var(--cm-line); }
.booking-quick-facts > div:last-child { grid-column: 1 / -1; }
.booking-quick-facts dt,
.booking-details-list dt { color: var(--cm-muted); font-size: .78rem; font-weight: 700; }
.booking-quick-facts dd,
.booking-details-list dd { margin: .15rem 0 0; color: var(--cm-ink); font-weight: 750; overflow-wrap: anywhere; }
.booking-primary-action { border-bottom: 1px solid var(--cm-line); }
.booking-primary-action h2 { font-size: 1.65rem; }
.booking-action-intro { margin: .35rem 0 1.25rem; color: var(--cm-muted); }
.booking-primary-action .form-group { margin-bottom: 1rem; }
.field-help,
.booking-privacy-note { margin: .35rem 0 0; color: var(--cm-muted); font-size: .82rem; }
.booking-privacy-note { margin: 0 0 .8rem; }
.booking-consent { display: flex; align-items: flex-start; gap: .65rem; margin-bottom: 1rem; padding: .8rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-md); background: var(--cm-surface-sage); color: var(--cm-ink-soft); font-size: .85rem; cursor: pointer; }
.booking-consent input { flex: 0 0 auto; width: 20px; height: 20px; min-height: 0; margin-top: .1rem; accent-color: var(--cm-brand); }
.booking-actions { display: grid; gap: .7rem; }
.booking-trust-callout { margin-bottom: 1rem; padding-left: .85rem; border-left: 3px solid var(--cm-success); }
.booking-trust-callout p { margin: .25rem 0 0; color: var(--cm-muted); }
.booking-details-disclosure { background: var(--cm-paper); }
.booking-details-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 52px; color: var(--cm-brand); font-weight: 750; cursor: pointer; }
.booking-details-disclosure > summary::after { content: '+'; color: var(--cm-accent); font-size: 1.35rem; }
.booking-details-disclosure[open] > summary::after { content: '−'; }
.booking-details-body { display: grid; gap: 1.25rem; padding-top: 1rem; }
.booking-details-body section { padding-top: 1rem; border-top: 1px solid var(--cm-line); }
.booking-details-body h3 { margin-bottom: .35rem; font-size: 1.25rem; }
.booking-details-body p { color: var(--cm-muted); }
.booking-identity-details { padding-left: .85rem; border-left: 3px solid var(--cm-brand); }
.booking-identity-details p { margin: .35rem 0 0; }
.booking-social-proof { padding-top: 1rem; border-top: 1px solid var(--cm-line); }
.booking-social-proof-empty p { margin: .25rem 0 0; }
.booking-proof-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem 1rem; align-items: end; }
.booking-proof-kicker { color: var(--cm-accent-text); font-size: .78rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.booking-rating { color: var(--cm-ink); font-size: 1.35rem; font-weight: 750; }
.booking-rating span,
.booking-review-meta span { color: var(--cm-accent-text); }
.booking-review-count,
.booking-proof-note,
.booking-review-meta { color: var(--cm-muted); font-size: .82rem; }
.booking-review-list { display: grid; gap: .75rem; margin-top: .85rem; }
.booking-review { padding-top: .75rem; border-top: 1px solid var(--cm-line); }
.booking-review p { margin: .35rem 0 0; }
.booking-proof-note { margin: .75rem 0 0; }
.booking-profile-signals { margin: 0; padding: 0 0 0 1.1rem; color: var(--cm-muted); font-size: .85rem; }
.booking-details-list { display: grid; gap: 0; margin: 0; }
.booking-details-list > div { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: .8rem; padding: .75rem 0; border-bottom: 1px solid var(--cm-line); }
.booking-details-list dd { margin: 0; text-align: right; }
.booking-details-list small { display: block; color: var(--cm-muted); font-weight: 450; }
.booking-verification-note { padding: .85rem; border-left: 3px solid var(--cm-accent); background: var(--cm-surface); color: var(--cm-muted); font-size: .85rem; }
.booking-footer-note { margin-top: 1rem; color: var(--cm-muted); font-size: .85rem; text-align: center; }
.booking-details-card { padding: 1.15rem; }
.booking-detail-row { display: grid; gap: .25rem; padding: .85rem 0; border-bottom: 1px solid var(--cm-line); }
.booking-detail-label { color: var(--cm-muted); font-size: .8rem; font-weight: 700; }
.booking-detail-value { min-width: 0; color: var(--cm-ink); overflow-wrap: anywhere; }
.request-card { padding: 1rem; }
.request-grid { display: grid; gap: .75rem; }
.request-status { display: inline-flex; align-items: center; min-height: 30px; padding: .25rem .55rem; border-radius: var(--cm-radius-sm); background: var(--cm-brand-soft); color: var(--cm-brand); font-size: .78rem; font-weight: 750; }
.request-page-heading { margin-bottom: 1.25rem; }
.request-list-summary { margin-bottom: 1rem; color: var(--cm-muted); }
.request-card-header { display: flex; justify-content: space-between; gap: .8rem; align-items: flex-start; }
.request-card-icon,
.request-summary-icon,
.request-detail-icon { display: none; }
.request-card-location { color: var(--cm-muted); font-size: .86rem; }
.request-detail { display: grid; gap: .2rem; padding: .7rem 0; border-bottom: 1px solid var(--cm-line); }
.request-detail-label { color: var(--cm-muted); font-size: .76rem; font-weight: 700; text-transform: uppercase; }
.request-detail-primary { color: var(--cm-ink); font-weight: 700; }
.request-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
.request-task-list { margin-top: .7rem; color: var(--cm-muted); }
.request-note { margin-top: .8rem; padding-left: .8rem; border-left: 3px solid var(--cm-accent); color: var(--cm-muted); }
.request-proposal-summary { margin-top: .8rem; color: var(--cm-muted); }
.request-card-action { margin-top: 1rem; }
.planning-preference-row { display: grid; gap: .5rem; }
.stats-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.stat-card { padding: 1rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-md); background: var(--cm-surface); }
.stat-value { color: var(--cm-ink); font-family: var(--cm-font-display); font-size: 1.7rem; }
.stat-label { color: var(--cm-muted); font-size: .78rem; }
.table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

.page-auth-route #main-content { padding-bottom: var(--cm-space-16); }
.page-auth-route .auth-experience { display: grid; width: min(calc(100% - (2 * var(--cm-gutter))), 1080px); max-width: 1080px; gap: 0; padding-top: var(--cm-space-8); }
.auth-story { position: relative; display: grid; align-content: center; min-height: 360px; padding: 1.5rem; overflow: hidden; border-radius: 26px 26px 0 0; background: linear-gradient(145deg, #123b35 0%, #08786d 100%); color: #fff; }
.auth-story::before { position: absolute; top: -4.5rem; right: -3rem; width: 13rem; height: 13rem; border: 2px solid rgb(255 213 104 / 42%); border-radius: 50%; content: ""; }
.auth-story::after { position: absolute; bottom: -4rem; left: -3rem; width: 10rem; height: 10rem; border-radius: 50%; background: rgb(168 237 207 / 16%); content: ""; }
.auth-story > * { position: relative; z-index: 1; }
.auth-story-kicker,
.auth-panel-kicker { display: block; margin-bottom: .7rem; color: #ffd568; font-size: .68rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
body.site-public .auth-story h1 { max-width: 12ch; margin: 0; color: #fff; font-size: clamp(2.55rem, 11vw, 4.5rem); line-height: .9; letter-spacing: -.06em; }
.auth-story p { max-width: 36rem; margin: 1rem 0 0; color: #d8ece5; line-height: 1.65; }
.auth-story ul { display: grid; gap: .45rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.auth-story li { display: flex; gap: .5rem; color: #effbf6; font-size: .82rem; }
.auth-story li::before { color: #a8edcf; content: "✓"; font-weight: 900; }
.page-auth-route .auth-panel { padding: 1.4rem; border-radius: 0 0 26px 26px; box-shadow: 0 22px 52px rgb(18 59 53 / 12%); }
.page-auth-route .auth-panel .card-header h2 { margin: 0; font-size: clamp(2rem, 8vw, 3rem); line-height: 1; }
.page-auth-route .auth-panel-kicker { color: var(--cm-accent-text); }
.page-system-route { background: radial-gradient(circle at 10% 8%, rgb(168 237 207 / 28%) 0 9rem, transparent 9.1rem), var(--cm-paper); }
.page-system-route .page { max-width: 760px; min-height: auto; padding-top: var(--cm-space-10); }
.page-system-route .page > .card,
.page-system-route .system-state > .card { position: relative; overflow: hidden; border-radius: 28px; box-shadow: 0 22px 55px rgb(18 59 53 / 12%); }
.page-system-route .page > .card::before,
.page-system-route .system-state > .card::before { position: absolute; top: 0; right: 0; left: 0; height: 7px; background: linear-gradient(90deg, var(--cm-brand) 0 62%, #ffd568 62% 82%, #ff7659 82%); content: ""; }
.system-celebration-page { display: grid; min-height: 72vh; place-items: center; }
.system-celebration-card { width: min(100%, 680px); max-width: none; margin: 0 auto; padding: clamp(1.5rem, 5vw, 2.8rem); text-align: center; }
body.site-public .page.page-sm > .card[style*="text-align:center"] { position: relative; overflow: hidden; border-radius: 26px; box-shadow: 0 20px 48px rgb(18 59 53 / 11%); }
body.site-public .page.page-sm > .card[style*="text-align:center"]::before { position: absolute; top: 0; right: 0; left: 0; height: 6px; background: linear-gradient(90deg, var(--cm-brand) 0 66%, #ffd568 66% 84%, #ff7659 84%); content: ""; }
.system-state { text-align: center; }
.system-state > p { color: var(--cm-muted); }
.system-code { margin: 0; color: var(--cm-accent-text); font-family: var(--cm-font-display); font-size: clamp(4rem, 20vw, 7rem); font-weight: 600; line-height: .9; }
.system-actions { display: grid; gap: .7rem; margin-top: 1.5rem; }
.system-state-field { margin-top: 1.25rem; text-align: left; }
.system-state-back { justify-content: center; margin-top: 1rem; }
.page-content-route .page { max-width: var(--cm-reading); }
.page-content-route .page > .card,
.page-content-route .page > div > .card { padding: 1.25rem 0; border: 0; border-top: 1px solid var(--cm-line); border-radius: 0; background: transparent; }
.page-content-route .page > p,
.page-content-route .page > div > p,
.page-content-route .page li { color: var(--cm-muted); }
.page-content-route .faq-list { border-top: 1px solid var(--cm-line); }
.page-content-route .faq-item { border-bottom: 1px solid var(--cm-line); }
.page-content-route .faq-question { width: 100%; min-height: 56px; padding: .9rem 0; border: 0; background: transparent; color: var(--cm-ink); font: 700 1rem var(--cm-font-sans); text-align: left; cursor: pointer; }
.page-content-route .faq-answer { color: var(--cm-muted); }

/* Trust and ranking pages */
.page-trust-route #main-content { padding-bottom: var(--cm-space-16); }
.page-trust-route .trust-page { width: min(calc(100% - (2 * var(--cm-gutter))), 1120px); max-width: 1120px; }
.trust-hero { position: relative; display: grid; gap: 1.5rem; padding: clamp(1.5rem, 6vw, 4rem); overflow: hidden; border-radius: 30px; background: linear-gradient(140deg, #123b35 0%, #08786d 100%); color: #fff; }
.trust-hero::after { position: absolute; right: -5rem; bottom: -6rem; width: 15rem; height: 15rem; border-radius: 50%; background: rgb(255 213 104 / 17%); content: ""; }
.trust-hero > * { position: relative; z-index: 1; }
.trust-kicker { display: block; color: var(--cm-accent-text); font-size: .68rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.trust-hero .trust-kicker { color: #ffd568; }
body.site-public .trust-hero h1 { max-width: 12ch; margin: .65rem 0 1rem; color: #fff; font-size: clamp(2.7rem, 12vw, 5.2rem); line-height: .9; letter-spacing: -.06em; }
.trust-hero p { max-width: 650px; color: #d8ece5; line-height: 1.7; }
.trust-hero-card,
.ranking-principle { display: grid; align-content: center; gap: .55rem; padding: 1.2rem; border: 1px solid rgb(255 255 255 / 18%); border-radius: 20px; background: rgb(255 255 255 / 9%); backdrop-filter: blur(8px); }
.trust-hero-card strong,
.ranking-principle strong { color: #fff; font-size: 1.2rem; }
.trust-hero-card span,
.ranking-principle span { display: flex; gap: .45rem; color: #d8ece5; font-size: .84rem; }
.trust-hero-card span::before,
.ranking-principle span::before { color: #a8edcf; content: "✓"; font-weight: 900; }
.trust-nav { display: flex; gap: .45rem; margin: 1rem 0 0; overflow-x: auto; padding: .2rem 0 .55rem; scrollbar-width: none; }
.trust-nav::-webkit-scrollbar { display: none; }
.trust-nav a { flex: 0 0 auto; padding: .55rem .75rem; border: 1px solid var(--cm-line); border-radius: 999px; background: var(--cm-surface); color: var(--cm-brand); font-size: .78rem; font-weight: 750; text-decoration: none; }
.trust-grid { display: grid; gap: .75rem; margin-top: 2.5rem; }
.trust-card { position: relative; min-height: 230px; padding: 1.35rem; overflow: hidden; border: 1px solid var(--cm-line); border-radius: 22px; background: var(--cm-surface); box-shadow: 0 14px 34px rgb(18 59 53 / 7%); }
.trust-card:nth-child(2) { background: var(--cm-surface-sage); }
.trust-card-number { color: var(--cm-accent-text); font-size: .72rem; font-weight: 850; letter-spacing: .08em; }
.trust-card h2 { max-width: 14ch; margin: 1rem 0 .65rem; font-size: 1.55rem; }
.trust-card p,
.trust-process > p,
.trust-limit p,
.ranking-request p,
.ranking-flow p { color: var(--cm-muted); line-height: 1.7; }
.trust-process,
.ranking-request { margin-top: 3.5rem; padding: clamp(1.4rem, 5vw, 3rem); border-radius: 26px; background: #fff1df; }
.trust-process h2,
.ranking-request h2 { max-width: 16ch; margin: .55rem 0 1rem; font-size: clamp(2.2rem, 9vw, 3.8rem); line-height: .95; }
.trust-steps { display: grid; gap: .75rem; margin: 1.4rem 0 0; padding: 0; list-style: none; counter-reset: trust-step; }
.trust-steps li { position: relative; padding: 1rem 1rem 1rem 3.6rem; border-radius: 16px; background: rgb(255 254 251 / 78%); color: var(--cm-ink-soft); counter-increment: trust-step; }
.trust-steps li::before { position: absolute; top: .85rem; left: .9rem; display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 10px; background: var(--cm-brand); color: #fff; content: counter(trust-step); font-weight: 850; }
.trust-privacy { margin-top: 1rem; padding-left: 1rem; border-left: 3px solid var(--cm-accent); }
.trust-limit,
.ranking-visibility { display: grid; gap: 1rem; margin-top: 1rem; padding: 1.4rem; border-radius: 22px; background: var(--cm-ink); color: #fff; }
.trust-limit h2,
.ranking-visibility h2 { margin: .4rem 0 0; color: #fff; }
.trust-limit p { color: #d8ece5; }
.trust-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.25rem; }
.ranking-flow { display: grid; gap: .75rem; margin-top: 2.5rem; }
.ranking-flow article { min-height: 200px; padding: 1.3rem; border: 1px solid var(--cm-line); border-radius: 22px; background: var(--cm-surface); box-shadow: 0 14px 34px rgb(18 59 53 / 7%); }
.ranking-flow article:nth-child(2) { background: var(--cm-surface-sage); }
.ranking-flow article > span { color: var(--cm-accent-text); font-weight: 850; }
.ranking-flow h2 { margin: 1rem 0 .65rem; font-size: 1.45rem; }
.ranking-visibility ul { display: grid; gap: .45rem; margin: 0; padding-left: 1.1rem; color: #d8ece5; }
.ranking-contact { margin: 1rem 0 0; color: var(--cm-muted); font-size: .86rem; }

.public-profile-page { max-width: 1120px; }
.public-profile-preview-notice { display: grid; gap: .25rem; margin-bottom: 1rem; padding: .9rem 1rem; border-left: 4px solid var(--cm-accent); border-radius: 0 var(--cm-radius-md) var(--cm-radius-md) 0; background: #fff0eb; }
.public-profile-preview-notice span { color: var(--cm-muted); font-size: .82rem; }
.public-profile-preview-notice a { justify-self: start; margin-top: .25rem; }
.public-profile-back { display: inline-flex; min-height: 44px; align-items: center; margin-bottom: .8rem; color: var(--cm-ink-soft); }
.public-profile-hero { position: relative; display: grid; gap: 1rem; overflow: hidden; border-radius: 30px; background: linear-gradient(140deg, #123b35 0%, #08786d 100%); box-shadow: 0 28px 68px rgb(18 59 53 / 21%); color: #fff; }
.public-profile-hero::before { position: absolute; top: -5rem; right: 24%; width: 13rem; height: 13rem; border: 2px solid rgb(255 118 89 / 38%); border-radius: 50%; content: ""; pointer-events: none; }
.public-profile-hero::after { position: absolute; bottom: -7rem; left: 28%; width: 14rem; height: 14rem; border-radius: 50%; background: rgb(255 213 104 / 16%); content: ""; pointer-events: none; }
.public-profile-hero-main { position: relative; z-index: 1; min-width: 0; padding: clamp(1.4rem, 5vw, 3.2rem); }
.public-profile-kicker { display: block; margin-bottom: 1.2rem; color: #ffd568; font-size: .68rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.public-profile-identity { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 1rem; align-items: center; }
.public-profile-photo,
.public-profile-initial { width: 84px; height: 84px; border-radius: 25px; transform: rotate(-2deg); }
.public-profile-photo { border: 4px solid rgb(255 255 255 / 88%); box-shadow: 0 12px 32px rgb(5 40 36 / 26%); object-fit: cover; }
.public-profile-initial { display: grid; place-items: center; border: 4px solid rgb(255 255 255 / 72%); background: #a8edcf; box-shadow: 0 12px 32px rgb(5 40 36 / 26%); color: var(--cm-ink); font-family: var(--cm-font-display); font-size: 2.1rem; font-weight: 800; }
.public-profile-framework { color: #bfe8da; font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
body.site-public .public-profile-heading h1 { margin-top: .15rem; color: #fff; font-size: clamp(2.6rem, 12vw, 5.5rem); line-height: .88; letter-spacing: -.065em; }
.public-profile-heading > p { margin: .4rem 0 0; color: #d7ebe4; font-size: .86rem; }
.public-profile-headline { max-width: 23ch; margin: 1.8rem 0 0; color: #fff; font: 720 clamp(1.45rem, 7vw, 2.5rem)/1.08 var(--cm-font-display); letter-spacing: -.035em; text-wrap: balance; }
.public-profile-trust { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.45rem; }
.public-profile-trust span { display: inline-flex; min-height: 32px; align-items: center; padding: .3rem .65rem; border: 1px solid rgb(255 255 255 / 20%); border-radius: 999px; background: rgb(255 255 255 / 9%); color: #effbf6; font-size: .7rem; font-weight: 750; backdrop-filter: blur(8px); }
.public-profile-trust span::before { margin-right: .35rem; color: #a8edcf; content: "✓"; font-weight: 900; }
.public-profile-strengths { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.public-profile-strengths span { padding: .34rem .62rem; border: 0; border-radius: 999px; background: #ffd568; color: var(--cm-ink); font-size: .7rem; font-weight: 800; }
.public-profile-hero-card { position: relative; z-index: 2; display: grid; align-content: center; padding: 1.35rem; border: 1px solid rgb(18 59 53 / 9%); border-radius: 24px 24px 30px 30px; background: linear-gradient(145deg, #fffefb 0%, #fff2d7 100%); color: var(--cm-ink); }
.public-profile-local-label { color: var(--cm-accent-text); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-profile-location { max-width: 15ch; margin-top: .3rem; font: 760 clamp(1.6rem, 8vw, 2.35rem)/1.02 var(--cm-font-display); letter-spacing: -.045em; }
.public-profile-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; margin: 1.3rem 0; }
.public-profile-facts > div { display: grid; min-width: 0; align-content: start; gap: .18rem; padding: .72rem .45rem; border: 1px solid rgb(18 59 53 / 10%); border-radius: 14px; background: rgb(255 254 251 / 72%); }
.public-profile-facts strong { font-size: .78rem; line-height: 1.2; overflow-wrap: anywhere; }
.public-profile-facts span { color: var(--cm-muted); font-size: .61rem; }
.public-profile-hero-action { width: 100%; justify-content: space-between; border-radius: 16px; box-shadow: 0 5px 0 #056158, 0 12px 22px rgb(18 59 53 / 15%); }
.public-profile-hero-card small { margin-top: .85rem; color: var(--cm-muted); font-size: .7rem; line-height: 1.45; }

.public-profile-section { margin-top: clamp(3.5rem, 9vw, 6rem); scroll-margin-top: 100px; }
.public-profile-section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: .7rem 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--cm-line); }
.public-profile-section-head > div > span { color: var(--cm-accent-text); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-profile-section-head h2 { max-width: 18ch; margin: .3rem 0 0; font-size: clamp(2.1rem, 10vw, 3.8rem); line-height: .95; }
.public-profile-section-head > span,
.public-profile-rating { color: var(--cm-accent-text); font-weight: 800; }
.public-profile-section-head > span { font-size: .78rem; }
.public-profile-story-grid { display: grid; gap: .75rem; margin-top: 1rem; }
.public-profile-story-grid article { position: relative; min-height: 190px; padding: 1.3rem; overflow: hidden; border: 1px solid rgb(18 59 53 / 11%); border-radius: 22px; background: var(--cm-surface); box-shadow: 0 15px 38px rgb(18 59 53 / 7%); }
.public-profile-story-grid article:nth-child(2n) { background: #e8f6ef; }
.public-profile-story-grid article::after { position: absolute; right: -2.5rem; bottom: -3rem; width: 8rem; height: 8rem; border-radius: 50%; background: rgb(255 213 104 / 28%); content: ""; }
.public-profile-story-grid h3 { position: relative; z-index: 1; margin: 0 0 .65rem; font: 760 1.2rem/1.2 var(--cm-font-sans); }
.public-profile-story-grid p { position: relative; z-index: 1; margin: 0; color: var(--cm-muted); line-height: 1.7; white-space: pre-line; }
.public-profile-services { display: grid; gap: .65rem; margin-top: 1rem; }
.public-profile-services > div { display: flex; min-height: 74px; align-items: center; gap: .7rem; padding: .9rem 1rem; border: 1px solid rgb(18 59 53 / 11%); border-radius: 18px; background: var(--cm-surface); box-shadow: 0 10px 28px rgb(18 59 53 / 6%); }
.public-profile-services > div::before { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 12px; background: var(--cm-brand-soft); color: var(--cm-brand); content: "✓"; font-weight: 900; }
.public-profile-slots .slot-grid { gap: .75rem; margin-top: 1rem; }
.public-profile-slots .slot-item { padding: 1.25rem; border: 1px solid rgb(18 59 53 / 11%); border-left: 0; border-radius: 22px; background: var(--cm-surface); box-shadow: 0 15px 38px rgb(18 59 53 / 8%); }
.public-profile-slots .slot-item:nth-child(2n) { background: #effaf5; }
.public-profile-slots .slot-date { font-family: var(--cm-font-display); font-size: 1.25rem; font-weight: 760; }
.public-profile-slot-action { width: 100%; margin-top: 1rem; border-radius: 14px; }
.public-profile-slot-note { display: block; margin-top: .85rem; color: var(--cm-muted); font-size: .76rem; }
.public-profile-empty-slots { display: grid; gap: .55rem; padding: 1.25rem; border: 1px solid var(--cm-line); border-radius: 20px; background: var(--cm-surface); }
.public-profile-empty-slots .btn { justify-self: start; margin-top: .25rem; }
.public-profile-review-list { display: grid; gap: .75rem; margin-top: 1rem; }
.public-profile-review { position: relative; min-height: 190px; padding: 1.3rem; border: 1px solid rgb(18 59 53 / 11%); border-radius: 22px; background: var(--cm-surface); box-shadow: 0 15px 38px rgb(18 59 53 / 7%); }
.public-profile-review:nth-child(3n + 2) { background: #effaf5; }
.public-profile-review:nth-child(3n) { background: #fff4e6; }
.public-profile-rating { color: #c94a34; letter-spacing: .08em; }
.public-profile-review p { margin: .75rem 0 0; color: var(--cm-ink-soft); font: 650 1rem/1.6 var(--cm-font-sans); }
.public-profile-review small { display: block; margin-top: 1rem; color: var(--cm-muted); }
.public-profile-review-response { margin-top: 1rem; padding: .85rem 1rem; border-left: 3px solid var(--cm-teal); border-radius: 0 12px 12px 0; background: rgb(255 255 255 / 70%); }
.public-profile-review-response p { margin: .25rem 0 0; font-size: .9rem; }
.public-profile-review-breakdown { margin: 1rem 0 0; color: var(--cm-muted); font-size: .82rem; text-align: center; }
.public-profile-empty { padding: 1.25rem; color: var(--cm-muted); border: 1px solid var(--cm-line); border-radius: 20px; background: var(--cm-surface); }

@media (min-width: 700px) {
  .public-profile-hero { grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); padding: .65rem; }
  .public-profile-hero-card { border-radius: 24px; }
  .public-profile-identity { grid-template-columns: 120px minmax(0, 1fr); }
  .public-profile-photo,
  .public-profile-initial { width: 120px; height: 120px; border-radius: 32px; }
  .public-profile-story-grid,
  .public-profile-services,
  .public-profile-review-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1000px) {
  .public-profile-hero { grid-template-columns: minmax(0, 1.4fr) minmax(330px, .6fr); }
  .public-profile-hero-main { padding: 3.35rem; }
  .public-profile-hero-card { padding: 2rem; }
  .public-profile-review-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Homepage */
.hero { padding: var(--cm-space-8) 0 var(--cm-space-12); }
.hero-inner { display: grid; gap: var(--cm-space-8); }
.hero-copy { align-self: center; }
.hero-copy h1 { max-width: 16ch; text-wrap: balance; }
.hero-sub {
  max-width: 570px;
  margin: var(--cm-space-5) 0 var(--cm-space-6);
  color: var(--cm-ink-soft);
  font-size: var(--cm-text-lead);
}
.hero-search-form,
.hero-search { display: grid; gap: .55rem; }
.hero-search-form label,
.hero-search label { color: var(--cm-ink); font-size: .9rem; font-weight: 700; }
.hero-search-row { display: grid; gap: .65rem; }
.hero-search-input,
.hero-search input {
  width: 100%;
  min-height: 56px;
  padding: .8rem .95rem;
  border: 1px solid #bfc8c1;
  border-radius: var(--cm-radius-md);
  background: var(--cm-surface);
  color: var(--cm-ink);
  font-size: 1rem;
}
.hero-search button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 52px;
  padding: .78rem 1.15rem;
  border: 1px solid var(--cm-ink);
  border-radius: var(--cm-radius-md);
  background: var(--cm-ink);
  box-shadow: var(--cm-button-shadow);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}
.hero-search input:focus { border-color: var(--cm-brand); box-shadow: 0 0 0 3px rgb(8 120 109 / 16%); outline: 0; }
.hero-quick-points { display: flex; flex-wrap: wrap; gap: .25rem .6rem; margin-top: .45rem; color: var(--cm-muted); font-size: .8rem; }
.hero-quick-points span + span::before { content: "·"; margin-right: .6rem; }
.hero-secondary-action { margin: .85rem 0 0; color: var(--cm-muted); font-size: .91rem; }
.hero-secondary-action a { font-weight: 700; text-underline-offset: .2em; }
.hero-proof-line { margin: .85rem 0 0; color: var(--cm-muted); font-size: .84rem; }
.hero-visual { margin: 0; }
.hero-visual img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--cm-radius-lg);
  object-fit: cover;
  object-position: 62% center;
}
.hero-visual figcaption { margin-top: .55rem; color: var(--cm-muted); font-size: .78rem; }
.live-proof-section,
.home-proof {
  width: min(calc(100% - (2 * var(--cm-gutter))), var(--cm-container));
  margin: 0 auto;
  padding: 1rem 0 var(--cm-space-10);
  border-bottom: 1px solid var(--cm-line);
}
.live-proof-section > *,
.home-proof-inner { max-width: 900px; }
.home-proof-inner { display: grid; gap: .5rem; }
.home-proof-inner strong { color: var(--cm-ink-soft); font-size: .88rem; font-weight: 650; }
.home-proof-inner a { min-height: 40px; display: inline-flex; align-items: center; font-size: .84rem; font-weight: 750; }

.home-paths,
.home-human-section,
.home-flow-section,
.home-payment,
.home-compact-faq { padding: var(--cm-space-16) 0; }

.home-path-list { border-top: 1px solid var(--cm-line); }
.home-path-item {
  display: grid;
  grid-template-columns: 2.2rem 1fr;
  gap: 1rem;
  padding: var(--cm-space-6) 0;
  border-bottom: 1px solid var(--cm-line);
}
.home-path-number { padding-top: .17rem; color: var(--cm-accent-text); font-weight: 750; }
.home-path-item h3 { font-size: 1.5rem; }
.home-path-item p { margin: .55rem 0 .65rem; color: var(--cm-muted); }
.home-path-item a { font-weight: 750; text-underline-offset: .25em; }

.home-human-section { background: var(--cm-surface-sage); }
.home-human-inner { display: grid; gap: var(--cm-space-8); }
.home-human-visual { margin: 0; }
.home-human-visual img { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--cm-radius-lg); object-fit: cover; }
.home-human-copy > p { margin: var(--cm-space-5) 0 var(--cm-space-8); color: var(--cm-muted); }
.home-human-points { margin: 0; }
.home-human-points div { padding: 1rem 0; border-top: 1px solid rgb(23 49 45 / 16%); }
.home-human-points dt { color: var(--cm-ink); font-weight: 750; }
.home-human-points dd { margin: .25rem 0 0; color: var(--cm-muted); }

.home-flow-grid { counter-reset: home-flow; margin: 0; padding: 0; border-top: 1px solid var(--cm-line); list-style: none; }
.home-flow-step { position: relative; padding: var(--cm-space-6) 0 var(--cm-space-6) 3rem; border-bottom: 1px solid var(--cm-line); }
.home-flow-step > span { display: none; }
.home-flow-step::before {
  counter-increment: home-flow;
  content: "0" counter(home-flow);
  position: absolute;
  left: 0;
  top: 1.55rem;
  color: var(--cm-accent-text);
  font-size: .82rem;
  font-weight: 750;
}
.home-flow-step h3 { font-size: 1.38rem; }
.home-flow-step p { margin: .5rem 0 0; color: var(--cm-muted); }

.home-payment { background: var(--cm-ink); color: #edf3ef; }
body.home-refresh .home-payment h2 { color: #fff; }
.home-payment .section-kicker { color: #e8a489; }
.home-payment .section-heading p { color: #cad5d0; }
.home-payment-list { margin: 0; }
.home-payment-list article { padding: 1.1rem 0; border-top: 1px solid rgb(255 255 255 / 18%); }
.home-refresh .home-payment-list h3 { color: #fff; font-size: 1.3rem; }
.home-payment-list p { margin: .35rem 0 0; color: #cad5d0; }
.home-payment a { color: #fff; }

.home-pro-strip { padding: var(--cm-space-16) 0; background: var(--cm-accent); color: #fff8f3; }
.home-pro-inner { display: grid; gap: var(--cm-space-8); }
body.home-refresh .home-pro-strip h2 { color: #fff; }
.home-pro-strip .section-kicker { color: #fff; }
.home-pro-copy > p { margin: var(--cm-space-5) 0 0; color: #fff0e8; }
.home-pro-offer { display: grid; gap: .75rem; }
.home-pro-offer small { color: #fff0e8; }
.home-pro-actions { display: grid; gap: .7rem; }
.home-pro-actions .btn-cta-amber { background: var(--cm-ink); }
.home-pro-actions .home-pro-more { border-color: #fff; color: #fff; }
.home-pro-actions .home-pro-more:hover { background: rgb(255 255 255 / 14%); }

.faq-list { border-top: 1px solid var(--cm-line); }
.faq-item { border-bottom: 1px solid var(--cm-line); }
.faq-question {
  display: flex;
  justify-content: space-between;
  width: 100%;
  min-height: 58px;
  padding: 1rem 0;
  border: 0;
  background: transparent;
  color: var(--cm-ink);
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}
.faq-question::after { content: "+"; margin-left: 1rem; color: var(--cm-accent); font-size: 1.25rem; }
.faq-question[aria-expanded="true"]::after { content: "−"; }
.faq-answer { display: none; padding: 0 0 1.25rem; color: var(--cm-muted); }
.faq-item.is-open .faq-answer,
.faq-item.active .faq-answer { display: block; }
.faq-question > span { display: none; }
.home-compact-faq-more { margin: 1.5rem 0 0; font-weight: 750; }

/* Request wizard */
.request-back-link { display: none; margin-bottom: .65rem; }
.page-request-route .page { padding-top: var(--cm-space-4); }
.page-request-route .request-page { width: min(calc(100% - (2 * var(--cm-gutter))), 1120px); max-width: 1120px; }
.request-entry-layout { display: grid; gap: 1rem; align-items: start; }
.request-entry-hero { position: relative; padding: 1.6rem 1.25rem; overflow: hidden; border-radius: 28px; background: var(--cm-ink); box-shadow: 0 22px 52px rgb(18 59 53 / 16%); color: #fff; }
.request-entry-hero::after { position: absolute; right: -4rem; bottom: -5.5rem; width: 12rem; height: 12rem; border-radius: 50%; background: rgb(255 213 104 / 20%); content: ""; pointer-events: none; }
.request-page-intro { position: relative; z-index: 1; margin-bottom: 1.5rem; }
.request-entry-hero .request-kicker { color: var(--cm-accent); }
body.site-public .request-entry-hero h1 { max-width: 12ch; margin-top: .55rem; color: #fff; font-size: clamp(2.55rem, 12vw, 4.25rem); line-height: .92; letter-spacing: -.055em; }
.request-page-intro p { max-width: 560px; margin: .85rem 0 0; color: #d9e6df; line-height: 1.55; }
.request-entry-benefits { position: relative; z-index: 1; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.request-entry-benefits li { display: grid; gap: .2rem; padding: .85rem 0; border-top: 1px solid rgb(255 255 255 / 14%); }
.request-entry-benefits strong { color: #fff; font-size: .9rem; }
.request-entry-benefits span { color: #bfd0c8; font-size: .8rem; line-height: 1.45; }
.request-wizard-card { padding: 1.15rem; }
.request-wizard-topline { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.request-wizard-topline h2 { font-size: 1.45rem; }
.request-form-kicker { display: block; margin-bottom: .3rem; color: var(--cm-accent-text); font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
#requestStepCounter { flex: 0 0 auto; color: var(--cm-accent-text); font-size: .78rem; font-weight: 750; }
.client-request-proof { display: none; }
.request-how { margin: .8rem 0; color: var(--cm-muted); font-size: .86rem; }
.request-how summary,
.request-details summary,
.request-specialized summary { min-height: 44px; display: flex; align-items: center; color: var(--cm-brand); font-weight: 700; cursor: pointer; }
.request-progress {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  height: 4px;
  margin: 1rem 0 1.6rem;
  padding: 0;
  overflow: hidden;
  border-radius: 999px;
  background: #dfe4df;
  list-style: none;
}
.request-progress li { min-width: 0; color: transparent; font-size: 0; }
.request-progress li span,
.request-progress li small { display: none; }
.request-progress li.is-done,
.request-progress li.is-active { background: var(--cm-brand); }
.request-wizard-step[hidden] { display: none; }
.request-step-heading { display: grid; grid-template-columns: 1.8rem 1fr; gap: .7rem; margin-bottom: 1.35rem; }
.request-step-heading > span { color: var(--cm-accent-text); font-weight: 750; }
.request-step-heading h3 { font-size: 1.48rem; }
.request-step-heading p { margin: .3rem 0 0; color: var(--cm-muted); font-size: .88rem; }
.request-wizard-step[data-request-step="1"] .request-step-heading { display: none; }
.request-fieldset { min-width: 0; margin: 0 0 1.25rem; padding: 0; border: 0; }
.request-choice-list,
.request-choice-grid { display: grid; gap: .58rem; }
.request-input-suffix { position: relative; }
.request-input-suffix input { padding-right: 3rem; }
.request-input-suffix span { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); color: var(--cm-muted); }
.request-field-help { margin: .4rem 0 0; color: var(--cm-muted); font-size: .82rem; }
.request-wizard-actions {
  position: sticky;
  bottom: 0;
  z-index: 120;
  display: grid;
  grid-template-columns: minmax(0, .55fr) minmax(0, 1fr);
  gap: .65rem;
  margin: 1.35rem -1.15rem -1.15rem;
  padding: .8rem 1.15rem calc(.8rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--cm-line);
  background: rgb(255 253 249 / 96%);
  backdrop-filter: blur(12px);
}
.request-wizard-actions-single { grid-template-columns: 1fr; }
.request-wizard-actions .btn { width: 100%; }
.availability-window-list { display: grid; gap: .85rem; }
.availability-window-row { padding: .9rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-md); }
.availability-window-head { display: flex; justify-content: space-between; margin-bottom: .7rem; }
.availability-window-fields { display: grid; gap: .65rem; }
.request-remove-availability { min-height: 40px; border: 0; background: transparent; color: var(--cm-danger); font-weight: 700; cursor: pointer; }

/* Search */
.page-search-route #main-content { padding-bottom: var(--cm-space-16); }
body.site-public.page-search-route .page {
  width: min(calc(100% - (2 * var(--cm-gutter))), 1200px);
  max-width: 1200px;
  padding-top: clamp(1.25rem, 3vw, 2.5rem);
}
.search-hero {
  position: relative;
  display: grid;
  overflow: hidden;
  border: 1px solid rgb(18 59 53 / 10%);
  border-radius: 30px;
  background: var(--cm-brand-soft);
  box-shadow: 0 24px 60px rgb(18 59 53 / 12%);
}
.search-hero::before {
  position: absolute;
  top: -5rem;
  left: -5rem;
  width: 12rem;
  height: 12rem;
  border-radius: 50%;
  background: rgb(255 213 104 / 58%);
  content: "";
  pointer-events: none;
}
.search-hero-copy { position: relative; z-index: 1; padding: 1.5rem 1.25rem 1.65rem; }
.search-page-intro { margin-bottom: 1.35rem; }
.page-search-route .search-page-intro h1 { max-width: 11ch; font-size: clamp(2.7rem, 12vw, 4.3rem); line-height: .9; letter-spacing: -.06em; }
.search-page-intro > p { max-width: 590px; margin: 1rem 0 0; color: var(--cm-ink-soft); font-size: .94rem; line-height: 1.58; }
.search-page-kicker,
.search-section-kicker { display: block; margin-bottom: .65rem; color: var(--cm-accent-text); font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.search-box { display: grid; gap: .55rem; margin: 0; padding: .7rem; border: 1px solid rgb(18 59 53 / 12%); border-radius: 20px; background: rgb(255 254 251 / 92%); box-shadow: 0 14px 34px rgb(18 59 53 / 10%); }
.search-box label { padding-inline: .35rem; color: var(--cm-ink); font-size: .78rem; font-weight: 800; }
.search-box-row { display: grid; gap: .55rem; }
.search-box input { width: 100%; min-height: 56px; padding: .8rem .95rem; border: 1px solid #bed3ca; border-radius: 14px; background: #fff; color: var(--cm-ink); }
.search-box input:focus { border-color: var(--cm-brand); box-shadow: 0 0 0 3px rgb(8 120 109 / 16%); outline: 0; }
.search-box .btn { width: 100%; min-height: 56px; white-space: nowrap; }
.search-hero-trust { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.search-hero-trust span { display: inline-flex; min-height: 28px; align-items: center; padding: .3rem .6rem; border: 1px solid rgb(8 120 109 / 13%); border-radius: 999px; background: rgb(255 254 251 / 65%); color: var(--cm-brand-hover); font-size: .66rem; font-weight: 780; }
.search-hero-trust span::before { margin-right: .35rem; color: var(--cm-brand); content: "✓"; font-weight: 900; }
.search-hero-visual { position: relative; min-height: 260px; margin: 0; overflow: hidden; }
.search-hero-visual::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgb(9 45 41 / 44%), transparent 58%); content: ""; }
.search-hero-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 50%; }
.search-hero-visual figcaption { position: absolute; z-index: 1; right: 1rem; bottom: 1rem; left: 1rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .45rem; padding: .7rem .8rem; border: 1px solid rgb(255 255 255 / 30%); border-radius: 14px; background: rgb(9 45 41 / 78%); color: #fff; backdrop-filter: blur(10px); }
.search-hero-visual figcaption strong { color: #ffd568; font-size: .8rem; }
.search-hero-visual figcaption span { font-size: .72rem; }
.search-content { display: grid; gap: 1.4rem; padding: 2rem 0 0; }
.search-city-section { position: relative; overflow: hidden; padding: 1.35rem; border: 1px solid rgb(18 59 53 / 10%); border-radius: 24px; background: #ffd568; }
.search-city-section::after { position: absolute; right: -2.5rem; bottom: -3.5rem; width: 9rem; height: 9rem; border: 2px solid rgb(18 59 53 / 13%); border-radius: 50%; content: ""; pointer-events: none; }
.search-city-section h2 { position: relative; z-index: 1; max-width: 16ch; font-size: clamp(1.9rem, 8vw, 2.8rem); }
.search-city-section > p { position: relative; z-index: 1; max-width: 560px; margin: .55rem 0 0; color: var(--cm-ink-soft); }
.search-city-links { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.15rem; }
.search-city-links .btn { min-height: 44px; border-color: rgb(18 59 53 / 16%); background: rgb(255 254 251 / 86%); }
.search-results-header { display: grid; gap: .45rem; padding: .25rem 0 .4rem; }
.search-results-header span { color: var(--cm-accent-text); font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.search-results-header h2 { max-width: 17ch; font-size: clamp(2rem, 8vw, 3.25rem); }
.search-results-header p { max-width: 560px; margin: 0; color: var(--cm-muted); }
.search-page-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; padding-top: .35rem; }
.search-page-meta a { min-height: 40px; display: inline-flex; align-items: center; font-size: .82rem; }
.search-page-header { margin-bottom: 1.4rem; }
.search-page-header p { max-width: 620px; margin: .7rem 0 0; color: var(--cm-muted); }
.search-form { display: grid; gap: .55rem; margin-bottom: 1.25rem; }
.search-form .form-group { margin: 0; }
.search-results,
.slots-list,
.slot-grid { display: grid; gap: .75rem; }
.slot-card,
.result-card,
.slot-item { padding: 1rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-md); background: var(--cm-surface); }
body.site-public a.slot-item { display: flex; flex-direction: column; color: var(--cm-ink); text-decoration: none; }
.page-search-route a.slot-item { position: relative; overflow: hidden; border-radius: 22px; box-shadow: 0 14px 34px rgb(18 59 53 / 8%); transition: transform var(--cm-duration-ui) var(--cm-ease-out), box-shadow var(--cm-duration-ui) var(--cm-ease-out); }
.page-search-route a.slot-item::before { position: absolute; top: 0; right: 0; left: 0; height: 5px; background: var(--cm-brand); content: ""; }
.page-search-route a.slot-item:hover { transform: translateY(-4px); box-shadow: 0 20px 42px rgb(18 59 53 / 13%); }
.slot-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.slot-date { color: var(--cm-accent-text); font-size: .8rem; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.slot-time { color: var(--cm-ink); font-family: var(--cm-font-display); font-size: 1.65rem; font-weight: 600; }
.slot-rate { flex: 0 0 auto; color: var(--cm-ink); font-family: var(--cm-font-display); font-size: 1.55rem; font-weight: 600; white-space: nowrap; }
.slot-rate small { color: var(--cm-muted); font: 500 .75rem var(--cm-font-sans); }
.slot-zone,
.slot-pro-name { color: var(--cm-muted); }
.slot-zone { margin-top: .55rem; font-size: .85rem; }
.slot-pro-name { margin-top: .2rem; color: var(--cm-ink-soft); font-size: .92rem; font-weight: 700; }
.slot-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .7rem; margin-top: .8rem; }
.slot-framework { display: inline-flex; align-items: center; min-height: 30px; padding: .25rem .55rem; border: 1px solid #b7d6d3; border-radius: var(--cm-radius-sm); background: var(--cm-brand-soft); color: var(--cm-brand); font-size: .76rem; font-weight: 750; }
.slot-recurrence { color: var(--cm-muted); font-size: .82rem; font-weight: 700; }
.slot-trust-line,
.slot-tax-note,
.slot-service-types { margin: .7rem 0 0; color: var(--cm-muted); font-size: .875rem; line-height: 1.45; }
.slot-trust-line { color: var(--cm-success); font-weight: 700; }
.slot-tax-note { padding-top: .65rem; border-top: 1px solid var(--cm-line); }
.slot-note { margin-top: .75rem; padding: .7rem .75rem; border-left: 3px solid var(--cm-brand); background: var(--cm-brand-soft); color: var(--cm-muted); font-size: .84rem; line-height: 1.5; }
.slot-note strong { display: block; margin-bottom: .2rem; color: var(--cm-ink); }
.slot-action { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 52px; margin-top: 1rem; padding: .7rem 1rem; border: 1px solid var(--cm-ink); border-radius: 15px; background: var(--cm-ink); box-shadow: var(--cm-button-shadow); color: #fff; font-size: .92rem; font-weight: 800; }
.slot-badge { display: inline-flex; align-items: center; padding: .24rem .5rem; border-radius: 999px; background: var(--cm-brand-soft); color: var(--cm-brand); font-size: .7rem; font-weight: 700; }
.search-empty,
.request-callout,
.empty-state { padding: 1.1rem; border-left: 3px solid var(--cm-accent); background: var(--cm-surface); }
.search-demand-callout { display: grid; gap: 1rem; padding: 1.35rem; border-radius: 24px; background: var(--cm-ink); color: #fff; box-shadow: 0 18px 40px rgb(18 59 53 / 15%); }
.search-demand-callout .search-section-kicker { margin-bottom: .45rem; color: #ffd568; }
.search-demand-callout strong { display: block; color: #fff; font-family: var(--cm-font-display); font-size: 1.45rem; line-height: 1.05; }
.search-demand-callout div > span:last-child { display: block; max-width: 600px; margin-top: .55rem; color: #d8e4df; font-size: .88rem; line-height: 1.55; }
.search-demand-callout .btn { width: 100%; border-color: #ffd568; background: #ffd568; color: var(--cm-ink); }
.search-local-signal { display: grid; gap: .8rem; padding: 1rem 1.1rem; border: 1px solid rgb(8 120 109 / 14%); border-radius: 18px; background: var(--cm-brand-soft); }
.search-local-signal strong { display: block; color: var(--cm-success); font-size: .9rem; }
.search-local-signal span { color: var(--cm-muted); font-size: .82rem; }
.empty-state { text-align: left; }
.empty-state h3 { margin-bottom: .5rem; }
.empty-state > p { color: var(--cm-muted); }
.search-empty-state { position: relative; overflow: hidden; padding: 1.5rem; border: 1px solid rgb(18 59 53 / 10%); border-left: 0; border-radius: 26px; background: var(--cm-brand-soft); box-shadow: 0 18px 42px rgb(18 59 53 / 9%); }
.search-empty-state::after { position: absolute; right: -4rem; top: -4rem; width: 11rem; height: 11rem; border-radius: 50%; background: rgb(255 213 104 / 52%); content: ""; pointer-events: none; }
.search-empty-icon { position: relative; z-index: 1; display: grid; width: 3rem; height: 3rem; place-items: center; margin-bottom: 1rem; border-radius: 14px; background: var(--cm-ink); color: #fff; font-family: var(--cm-font-display); font-size: 1.7rem; }
.search-empty-state h3,
.search-empty-state > p,
.search-empty-state > a,
.search-alert-details,
.search-nearby,
.empty-pro-callout { position: relative; z-index: 1; }
.search-empty-state h3 { max-width: 15ch; font-size: clamp(2rem, 9vw, 3.2rem); line-height: .95; }
.search-empty-state > p { max-width: 620px; margin: .8rem 0 1.1rem; }
.search-empty-primary { margin-bottom: 1.2rem; }
.search-alert-details { max-width: 680px; margin-bottom: 1.25rem; padding-top: .85rem; border-top: 1px solid rgb(18 59 53 / 14%); }
.search-alert-details summary { min-height: 44px; display: flex; align-items: center; color: var(--cm-brand-hover); font-weight: 800; cursor: pointer; }
.search-alert-form { margin-top: .6rem; }
.search-nearby { max-width: 680px; margin-bottom: 1.25rem; }
.search-nearby > strong { display: block; margin-bottom: .65rem; color: var(--cm-ink); font-size: .88rem; }
.search-nearby > div { display: flex; flex-wrap: wrap; gap: .5rem; }
.empty-pro-callout { display: grid; gap: .55rem; margin-top: 1.35rem; padding: 1rem; border: 1px solid rgb(201 74 52 / 16%); border-radius: 18px; background: rgb(255 254 251 / 68%); }
.search-followup-card { margin-top: .5rem; padding: 1.35rem; border: 1px solid rgb(18 59 53 / 10%); border-left: 0; border-radius: 22px; background: var(--cm-surface); box-shadow: 0 14px 34px rgb(18 59 53 / 7%); }
.search-followup-alternative { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--cm-line); }
.search-followup-alternative p { margin-bottom: .75rem; color: var(--cm-muted); font-size: .85rem; }
.empty-lead-form { display: grid; gap: .65rem; margin-top: 1rem; }
.empty-lead-grid { display: grid; gap: .55rem; }
.empty-lead-grid input { min-height: 52px; padding: .75rem .9rem; border: 1px solid #bfc8c1; border-radius: var(--cm-radius-md); background: #fff; }
.empty-lead-help { color: var(--cm-muted); font-size: .78rem; }
.zone-links,
.city-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: 1rem; }
.zone-links a,
.city-links a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; }

/* FAQ */
.page-faq-route #main-content { padding-bottom: var(--cm-space-16); }
body.site-public.page-faq-route .page {
  width: min(calc(100% - (2 * var(--cm-gutter))), 1200px);
  max-width: 1200px;
  padding-top: clamp(1.25rem, 3vw, 2.5rem);
}
.faq-hero {
  position: relative;
  display: grid;
  gap: 1.5rem;
  overflow: hidden;
  padding: 1.5rem;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 30px;
  background: var(--cm-ink);
  box-shadow: 0 24px 60px rgb(18 59 53 / 15%);
  color: #fff;
}
.faq-hero::before {
  position: absolute;
  top: -5rem;
  right: -4rem;
  width: 13rem;
  height: 13rem;
  border: 2px solid rgb(255 118 89 / 36%);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}
.faq-hero::after {
  position: absolute;
  bottom: -5rem;
  left: 38%;
  width: 11rem;
  height: 11rem;
  border-radius: 50%;
  background: rgb(255 213 104 / 12%);
  content: "";
  pointer-events: none;
}
.faq-hero-copy,
.faq-hero-summary { position: relative; z-index: 1; }
.faq-kicker { display: block; margin-bottom: .65rem; color: var(--cm-accent); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.faq-hero .faq-kicker { color: #ffd568; }
.page-faq-route .faq-hero h1 { max-width: 11ch; color: #fff; font-size: clamp(3rem, 13vw, 4.7rem); line-height: .9; letter-spacing: -.06em; }
.faq-hero-copy > p { max-width: 620px; margin: 1.15rem 0 0; color: #d8e4df; font-size: .96rem; line-height: 1.65; }
.faq-hero-actions { display: grid; gap: .65rem; margin-top: 1.5rem; }
.faq-hero-actions .btn { width: 100%; }
.faq-hero-actions .btn-primary { border-color: #ffd568; background: #ffd568; color: var(--cm-ink); }
.faq-hero-actions .btn-secondary { border-color: rgb(255 255 255 / 35%); background: rgb(255 255 255 / 8%); color: #fff; box-shadow: none; }
.faq-hero-summary { align-self: end; padding: 1.25rem; border: 1px solid rgb(18 59 53 / 12%); border-radius: 22px; background: var(--cm-brand-soft); color: var(--cm-ink); transform: rotate(1deg); }
.faq-hero-summary > span { display: block; margin-bottom: .9rem; color: var(--cm-accent-text); font-size: .7rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.faq-hero-summary ul { display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; }
.faq-hero-summary li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .45rem; padding-top: .85rem; border-top: 1px solid rgb(18 59 53 / 13%); color: var(--cm-ink-soft); font-size: .87rem; }
.faq-hero-summary li::before { content: "✓"; color: var(--cm-brand); font-weight: 900; }
.faq-hero-summary strong { color: var(--cm-ink); }
.faq-layout { display: grid; gap: 2rem; padding-top: clamp(2.75rem, 6vw, 5rem); }
.faq-category-nav { display: grid; gap: .4rem; align-self: start; padding: 1rem; border: 1px solid var(--cm-line); border-radius: 20px; background: var(--cm-surface); box-shadow: 0 12px 30px rgb(18 59 53 / 6%); }
.faq-category-nav > span { padding: .25rem .65rem .65rem; color: var(--cm-muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.faq-category-nav a { display: grid; grid-template-columns: 2rem minmax(0, 1fr); min-height: 46px; align-items: center; padding: .55rem .65rem; border-radius: 13px; color: var(--cm-ink); font-size: .86rem; font-weight: 750; text-decoration: none; }
.faq-category-nav a:hover { background: var(--cm-brand-soft); color: var(--cm-brand-hover); }
.faq-category-nav strong { color: var(--cm-accent-text); font-size: .72rem; }
.faq-groups { display: grid; gap: clamp(3rem, 7vw, 5.5rem); min-width: 0; }
.faq-group { scroll-margin-top: 6rem; }
.faq-group-header { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr); gap: 1rem; margin-bottom: 1.35rem; }
.faq-group-number { padding-top: .3rem; color: var(--cm-accent-text); font-family: var(--cm-font-display); font-size: 1rem; font-weight: 750; }
.faq-group-header .faq-kicker { margin-bottom: .45rem; }
.faq-group-header h2 { max-width: 15ch; font-size: clamp(2.25rem, 9vw, 3.7rem); line-height: .95; letter-spacing: -.045em; }
.faq-group-header p { max-width: 620px; margin: .7rem 0 0; color: var(--cm-muted); }
.page-faq-route .faq-list { display: grid; gap: .65rem; margin: 0; border: 0; }
.page-faq-route .faq-item { overflow: hidden; border: 1px solid var(--cm-line); border-radius: 18px; background: var(--cm-surface); box-shadow: 0 10px 28px rgb(18 59 53 / 5%); }
.page-faq-route .faq-question {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) 2.6rem;
  gap: .7rem;
  width: 100%;
  min-height: 68px;
  align-items: center;
  padding: .85rem .8rem .85rem 1rem;
  border: 0;
  background: transparent;
  color: var(--cm-ink);
  font: 780 .94rem/1.35 var(--cm-font-sans);
  text-align: left;
  cursor: pointer;
}
.page-faq-route .faq-question > span { display: block; color: var(--cm-accent-text); font-size: .7rem; letter-spacing: .06em; }
.page-faq-route .faq-question::after { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; margin: 0; border-radius: 12px; background: var(--cm-brand-soft); color: var(--cm-brand-hover); content: "+"; font-size: 1.25rem; line-height: 1; transition: transform var(--cm-duration-ui) var(--cm-ease-out), background var(--cm-duration-ui) var(--cm-ease-out); }
.page-faq-route .faq-item.active { border-color: rgb(8 120 109 / 24%); box-shadow: 0 16px 36px rgb(18 59 53 / 8%); }
.page-faq-route .faq-item.active .faq-question::after { background: var(--cm-ink); color: #fff; content: "−"; transform: none; }
.page-faq-route .faq-answer { display: none; padding: 0 1rem 1.2rem 3.7rem; color: var(--cm-muted); }
.page-faq-route .faq-item.active .faq-answer,
.page-faq-route .faq-item.is-open .faq-answer { display: block; }
.page-faq-route .faq-answer p { max-width: 720px; margin: 0; padding: 0; color: var(--cm-muted); font-size: .9rem; line-height: 1.7; }
.page-faq-route .faq-answer p + p { margin-top: .75rem; }
.page-faq-route .faq-answer ul { max-width: 720px; margin: .75rem 0 0 1.1rem; color: var(--cm-muted); line-height: 1.65; }
.faq-source-links { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin-top: .85rem; }
.faq-source-links a { min-height: 40px; display: inline-flex; align-items: center; font-size: .82rem; }
.faq-contact { scroll-margin-top: 6rem; display: grid; gap: 1.25rem; padding: 1.5rem; overflow: hidden; border-radius: 26px; background: var(--cm-accent); box-shadow: 0 20px 44px rgb(201 74 52 / 16%); color: #fff; }
.faq-contact .faq-kicker { color: #fff6ee; }
.faq-contact h2 { color: #fff; font-size: clamp(2.2rem, 9vw, 3.5rem); line-height: .95; }
.faq-contact p { max-width: 520px; margin: .7rem 0 0; color: #fff1e9; }
.faq-contact .btn { width: 100%; border-color: #fff; background: #fff; color: var(--cm-ink); }

/* Professional landing */
.page-pro-landing-route #main-content {
  width: min(calc(100% - (2 * var(--cm-gutter))), 900px);
  margin-inline: auto;
  padding: var(--cm-space-8) 0 var(--cm-space-16);
}
.page-pro-landing-route .page { max-width: 900px; }
.landing-pro { max-width: 900px; margin: 0 auto; }
.pro-simple-landing { max-width: 900px; }
.pro-simple-hero { position: relative; padding: clamp(3rem, 9vw, 5.5rem) 0 var(--cm-space-12); overflow: hidden; border-bottom: 1px solid var(--cm-line); }
.pro-simple-hero::after { position: absolute; top: 1rem; right: -4rem; width: 12rem; height: 12rem; border: 2px solid rgb(255 118 89 / 24%); border-radius: 50%; content: ""; pointer-events: none; }
.pro-simple-hero h1 { max-width: 14ch; margin: .75rem 0 1rem; }
.pro-simple-hero > p { max-width: 610px; margin: 0 0 1.5rem; color: var(--cm-muted); font-size: var(--cm-text-lead); line-height: 1.6; }
.pro-simple-hero > .cta-btn { width: 100%; max-width: 360px; }
.pro-simple-proof { display: grid; gap: .65rem; margin-top: 1.35rem; color: var(--cm-ink-soft); font-size: .88rem; }
.pro-simple-proof span { display: flex; align-items: center; gap: .55rem; }
.pro-simple-proof span::before { content: "✓"; color: var(--cm-brand); font-weight: 850; }
.pro-profile-value { display: grid; gap: 1.5rem; margin: var(--cm-space-12) 0 0; padding: 1.25rem; border-radius: var(--cm-radius-lg); background: var(--cm-brand-soft); }
.pro-profile-value-copy > span { display: block; margin-bottom: .5rem; color: var(--cm-accent-text); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pro-profile-value-copy h2 { max-width: 14ch; }
.pro-profile-value-copy > p { margin: .85rem 0 0; color: var(--cm-ink-soft); line-height: 1.65; }
.pro-profile-value-copy ul { display: grid; gap: .55rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.pro-profile-value-copy li { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr); gap: .55rem; align-items: start; color: var(--cm-ink); font-size: .86rem; font-weight: 700; line-height: 1.5; }
.pro-profile-value-copy li::before { display: grid; width: 1.4rem; height: 1.4rem; place-items: center; border-radius: 7px; background: #ffd568; color: var(--cm-ink); content: "✓"; font-size: .7rem; font-weight: 900; }
.pro-profile-value-visual { position: relative; min-height: 260px; margin: 0; overflow: hidden; border: 5px solid var(--cm-surface); border-radius: var(--cm-radius-lg); box-shadow: 0 18px 38px rgb(18 59 53 / 14%); }
.pro-profile-value-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 54% 50%; }
.pro-profile-value-visual figcaption { position: absolute; right: .8rem; bottom: .8rem; left: .8rem; display: grid; gap: .15rem; padding: .75rem .85rem; border: 1px solid rgb(255 255 255 / 72%); border-radius: var(--cm-radius-md); background: rgb(255 254 251 / 92%); color: var(--cm-ink); }
.pro-profile-value-visual figcaption strong { font-size: .82rem; }
.pro-profile-value-visual figcaption span { color: var(--cm-muted); font-size: .7rem; overflow-wrap: anywhere; }
.pro-simple-steps { margin: 0; padding: var(--cm-space-12) 0; }
.pro-simple-section-head { margin-bottom: var(--cm-space-6); }
.pro-simple-section-head > span { display: block; margin-bottom: .45rem; color: var(--cm-accent-text); font-size: .76rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.pro-simple-final { display: grid; gap: .85rem; margin-top: var(--cm-space-10); padding: 1.35rem; background: var(--cm-ink); color: #fff; }
.pro-simple-final p { margin: 0; color: #d5dfda; font-size: .9rem; line-height: 1.6; }
.pro-simple-final .cta-btn { width: 100%; }
.pro-simple-final .text-link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.hero-section { padding: 0 0 var(--cm-space-12); text-align: left; }
.hero-title { max-width: 15ch; }
.hero-section > .hero-sub { max-width: 600px; margin: 1rem 0 0; }
.pro-hero-proof { display: flex; flex-wrap: wrap; gap: .35rem .85rem; margin: 1rem 0 0; color: var(--cm-muted); font-size: .84rem; }
.pro-hero-actions { display: grid; gap: .65rem; margin: 1.25rem 0 0; }
.pro-mode-grid { display: grid; gap: .85rem; margin-top: var(--cm-space-8); }
.pro-mode-card { display: flex; flex-direction: column; min-width: 0; padding: 1.15rem; border-top: 1px solid var(--cm-line); background: transparent; }
.pro-mode-card h2 { margin: .35rem 0 .8rem; font-size: 1.6rem; }
.pro-mode-card ul { flex: 1; margin: 0 0 1rem; padding-left: 1.2rem; color: var(--cm-muted); }
.pro-mode-card .btn,
.pro-mode-card .cta-btn { width: 100%; }
.local-demand-proof { margin: 1.4rem 0 0; padding: 1rem; background: var(--cm-surface-sage); }
.local-demand-form > div { display: grid; gap: .55rem; }
.local-demand-result { margin: .65rem 0 0; color: var(--cm-muted); font-size: .86rem; }
.local-demand-result.is-positive { color: var(--cm-success); font-weight: 750; }
.steps-section { margin: 0 0 var(--cm-space-12); }
.steps-grid { counter-reset: pro-step; border-top: 1px solid var(--cm-line); }
.step-card { position: relative; display: block; padding: 1.2rem 0 1.2rem 3rem; border-bottom: 1px solid var(--cm-line); background: transparent; }
.step-card::before { counter-increment: pro-step; content: "0" counter(pro-step); position: absolute; left: 0; color: var(--cm-accent-text); font-weight: 750; }
.step-num,
.step-icon { display: none; }
.step-card h3 { font-size: 1.35rem; }
.step-card p { margin: .35rem 0 0; color: var(--cm-muted); }
.advantages-section { display: grid; gap: 0; border-top: 1px solid var(--cm-line); }
.advantage-card { display: grid; grid-template-columns: 1.75rem 1fr; gap: .8rem; padding: 1.1rem 0; border-bottom: 1px solid var(--cm-line); }
.adv-icon { color: var(--cm-brand); }
.advantage-card h4 { margin: 0; color: var(--cm-ink); font-size: 1rem; }
.advantage-card p { margin: .3rem 0 0; color: var(--cm-muted); }
.secondary-use-case { margin: 1.5rem 0; color: var(--cm-ink); font-weight: 750; }
.zones-section { padding: 1rem 0; }
.zones-list { display: flex; flex-wrap: wrap; gap: .45rem; }
.zone-tag { padding: .35rem .65rem; border-radius: 999px; background: var(--cm-brand-soft); color: var(--cm-brand); font-size: .8rem; font-weight: 700; }
.cta-section { margin-top: 2rem; padding: 1.3rem; background: var(--cm-ink); color: #fff; }
.cta-section .pro-hero-actions { margin: 0; }
.footer-link { padding: 1.25rem 0; text-align: center; }

/* Local SEO families */
.page-local-directory-route .page,
.page-local-basin-route .page { max-width: 940px; }
.page-local-directory-route .card,
.page-local-basin-route .card { margin-bottom: 1rem; border-radius: var(--cm-radius-md); }
.page-local-directory-route .card + .card,
.page-local-basin-route .card + .card { margin-top: .75rem; }
.page-local-directory-route #main-content { padding-bottom: var(--cm-space-16); }
.page-local-directory-route .local-directory-page { width: min(calc(100% - (2 * var(--cm-gutter))), 1080px); max-width: 1080px; }
.local-directory-back { margin-bottom: .8rem; }
.local-directory-hero { display: grid; gap: 1.2rem; padding: clamp(1.5rem, 6vw, 3.5rem); border-radius: 28px; background: var(--cm-surface-sage); }
.local-directory-kicker { color: var(--cm-accent-text); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.local-directory-hero h1 { max-width: 13ch; margin: .65rem 0 .8rem; font-size: clamp(2.7rem, 11vw, 4.8rem); line-height: .92; letter-spacing: -.055em; }
.local-directory-hero p { max-width: 650px; color: var(--cm-muted); line-height: 1.7; }
.local-directory-hero-note { display: grid; gap: .35rem; align-content: center; padding: 1.1rem; border-radius: 18px; background: var(--cm-surface); }
.local-directory-hero-note strong { color: var(--cm-ink); }
.local-directory-hero-note span { color: var(--cm-muted); font-size: .84rem; line-height: 1.55; }
.local-directory-intro { display: grid; gap: .2rem; margin: 2rem 0 .8rem; }
.local-directory-intro strong { font-size: 1.15rem; }
.local-directory-intro span { color: var(--cm-muted); font-size: .84rem; }
.local-directory-basin { margin-bottom: .7rem; border: 1px solid var(--cm-line); border-radius: 20px; background: var(--cm-surface); box-shadow: 0 12px 30px rgb(18 59 53 / 6%); }
.local-directory-basin summary { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; cursor: pointer; list-style: none; }
.local-directory-basin summary::-webkit-details-marker { display: none; }
.local-directory-basin summary h2 { margin: 0 0 .25rem; font-size: 1.15rem; }
.local-directory-basin summary p { margin: 0; color: var(--cm-muted); font-size: .8rem; }
.local-directory-toggle { flex: 0 0 auto; color: var(--cm-brand); font-size: .75rem; font-weight: 800; }
.local-directory-toggle::after { margin-left: .35rem; content: "+"; }
.local-directory-basin[open] .local-directory-toggle::after { content: "−"; }
.local-directory-cities { display: flex; flex-wrap: wrap; gap: .45rem; padding: 0 1rem 1rem; }
.local-directory-basin-link { margin: 0 1rem 1rem; }
.local-directory-action { display: flex; justify-content: center; margin-top: 1.5rem; }

.local-city-page { max-width: var(--cm-container); }
.local-city-hero { display: grid; gap: var(--cm-space-8); padding-bottom: var(--cm-space-12); }
.local-city-breadcrumb { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: .7rem; color: var(--cm-brand); font-size: .84rem; font-weight: 750; text-decoration: none; }
.local-city-eyebrow,
.local-city-section-label,
.local-city-opening-label { display: block; color: var(--cm-accent-text); font-size: .76rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.local-city-hero h1 { max-width: 15ch; margin: .7rem 0 1rem; }
.local-city-hero h1 span { color: var(--cm-brand); }
.local-city-lead { max-width: 620px; color: var(--cm-ink-soft); font-size: var(--cm-text-lead); line-height: 1.6; }
.local-city-actions { display: grid; gap: .65rem; margin-top: 1.3rem; }
.local-city-actions .btn { width: 100%; }
.local-city-trust { display: flex; flex-wrap: wrap; gap: .25rem .55rem; margin-top: .8rem; color: var(--cm-muted); font-size: .82rem; }
.local-city-trust span + span::before { content: "·"; margin-right: .55rem; color: var(--cm-accent-text); }
.local-city-visual { position: relative; min-height: 270px; overflow: hidden; border-radius: var(--cm-radius-lg); }
.local-city-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.local-city-visual-badge { position: absolute; right: .8rem; bottom: .8rem; left: .8rem; padding: .65rem .75rem; border: 1px solid rgb(255 255 255 / 70%); border-radius: var(--cm-radius-md); background: rgb(255 253 249 / 92%); color: var(--cm-ink); font-size: .78rem; font-weight: 750; }
.local-city-proof-grid { display: grid; margin: 0 0 var(--cm-space-12); padding: 0; border-top: 1px solid var(--cm-line); }
.local-city-proof-card { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--cm-line); }
.local-city-proof-card strong { color: var(--cm-brand); font-family: var(--cm-font-display); font-size: 1.8rem; }
.local-city-proof-card span { color: var(--cm-muted); font-size: .86rem; }
.local-city-opening { display: grid; grid-template-columns: auto 1fr; gap: .9rem; margin: 0 0 var(--cm-space-12); padding: 1.1rem; border-left: 3px solid var(--cm-accent); background: var(--cm-surface); }
.local-city-opening-icon { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--cm-accent); color: #fff; font-weight: 800; }
.local-city-opening h2 { margin: .25rem 0 .4rem; font-size: 1.45rem; }
.local-city-opening p { color: var(--cm-muted); line-height: 1.6; }
.local-city-human { display: grid; gap: var(--cm-space-6); margin: 0 calc(-1 * var(--cm-gutter)) var(--cm-space-12); padding: var(--cm-space-8) var(--cm-gutter); background: var(--cm-surface-sage); }
.local-city-human-visual { min-height: 230px; overflow: hidden; border-radius: var(--cm-radius-lg); }
.local-city-human-visual img { width: 100%; height: 230px; object-fit: cover; }
.local-city-human h2,
.local-city-section-heading h2,
.local-city-mode-section > h2,
.local-city-faq h2,
.local-city-area h2,
.local-city-pro h2 { margin-top: .65rem; }
.local-city-human p,
.local-city-mode-section > p,
.local-city-faq > p,
.local-city-area-card p,
.local-city-pro p { margin-top: .7rem; color: var(--cm-muted); line-height: 1.65; }
.local-city-service-note { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgb(23 49 45 / 16%); color: var(--cm-ink-soft); font-size: .88rem; line-height: 1.55; }
.local-city-section,
.local-city-mode-section,
.local-city-faq,
.local-city-area { margin: var(--cm-space-12) 0; }
.local-city-section-heading { max-width: 680px; margin-bottom: 1.4rem; }
.local-city-steps,
.local-city-mode-grid,
.local-city-area-grid { display: grid; gap: 0; border-top: 1px solid var(--cm-line); }
.local-city-step,
.local-city-mode,
.local-city-area-card { position: relative; padding: 1.15rem 0 1.15rem 3rem; border-bottom: 1px solid var(--cm-line); background: transparent; }
.local-city-step-number { position: absolute; left: 0; top: 1.25rem; color: var(--cm-accent-text); font-size: .82rem; font-weight: 750; }
.local-city-step h3,
.local-city-mode h3 { font-size: 1.25rem; }
.local-city-step p,
.local-city-mode p { margin: .35rem 0 0; color: var(--cm-muted); font-size: .92rem; line-height: 1.6; }
.local-city-mode-section { padding: 1.25rem; background: var(--cm-surface-sage); }
.local-city-mode-tag { display: block; margin-bottom: .45rem; color: var(--cm-brand); font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.local-city-faq { max-width: 830px; }
.local-city-faq details { padding: .9rem 0; border-top: 1px solid var(--cm-line); }
.local-city-faq summary { min-height: 44px; color: var(--cm-ink); font-weight: 750; cursor: pointer; }
.local-city-faq details p { margin-top: .6rem; color: var(--cm-muted); line-height: 1.65; }
.local-city-area-card { padding-left: 0; }
.local-city-nearby { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.local-city-area-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: .6rem; font-weight: 750; text-decoration: none; }
.local-city-pro { display: grid; gap: 1rem; margin-top: var(--cm-space-12); padding: 1.3rem; background: var(--cm-ink); color: #fff; }
body.site-public .local-city-pro h2 { color: #fff; }
.local-city-pro p { color: #cbd8d2; }
.local-city-pro .btn { width: 100%; background: #fff; color: var(--cm-brand); }

/* Registration */
.pro-register-page { padding-top: 1.5rem; }
.pro-register-login { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; margin-bottom: .8rem; text-align: right; }
.pro-register-back { margin-bottom: .5rem; }
.pro-register-creno-note { display: grid; gap: .25rem; margin: 0 0 1rem; padding: .9rem 1rem; border-left: 4px solid var(--cm-accent); border-radius: 0 var(--cm-radius-md) var(--cm-radius-md) 0; background: var(--cm-brand-soft); }
.pro-register-creno-note strong { color: var(--cm-ink); font-size: .86rem; }
.pro-register-creno-note span { color: var(--cm-muted); font-size: .8rem; line-height: 1.5; }
.pro-register-value { margin-bottom: 1.25rem; }
.pro-register-value h1 { max-width: 14ch; }
.pro-register-value > p { margin: .65rem 0 0; color: var(--cm-muted); }
.pro-value-proof,
.value-proof-grid { display: none; }
.register-progress { display: flex; gap: .35rem; margin: 1rem 0; color: var(--cm-muted); font-size: .82rem; }
.register-progress span { flex: 1; padding: .5rem 0; border-bottom: 4px solid var(--cm-line); }
.register-progress .is-active { border-color: var(--cm-brand); color: var(--cm-ink); font-weight: 750; }
.register-progress .is-done { border-color: var(--cm-brand-soft); }
.register-mode-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.register-mode-fieldset legend { margin-bottom: .9rem; color: var(--cm-ink); font-size: 1.18rem; font-weight: 800; }
.register-mode-choices { display: grid; gap: .65rem; }
.register-mode-card { display: flex; align-items: flex-start; gap: .8rem; min-height: 86px; padding: 1rem; border: 2px solid var(--cm-line); border-radius: var(--cm-radius-md); background: var(--cm-surface); cursor: pointer; }
.register-mode-card:has(input:checked) { border-color: var(--cm-brand); background: var(--cm-brand-soft); box-shadow: 0 0 0 3px rgb(8 120 109 / 10%); }
.register-mode-card input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--cm-brand); }
.register-mode-card span { display: grid; gap: .25rem; }
.register-mode-card strong { color: var(--cm-ink); font-size: 1rem; }
.register-mode-card small { color: var(--cm-muted); font-size: .82rem; line-height: 1.45; }
.register-mode-help { margin: .9rem 0 1.1rem; }
.register-mode-help summary { min-height: 44px; display: flex; align-items: center; color: var(--cm-brand); font-weight: 750; cursor: pointer; }
.register-mode-help p { margin: .35rem 0 0; color: var(--cm-muted); font-size: .82rem; line-height: 1.55; }
.register-panel { padding: 1.15rem; }
.register-panel h2 { font-size: 1.55rem; }
.register-submit-row { display: grid; grid-template-columns: minmax(0, .55fr) minmax(0, 1fr); gap: .65rem; }
.register-submit-row .btn { width: 100%; }
.register-privacy-note { margin: .75rem 0 0; color: var(--cm-muted); font-size: .76rem; text-align: center; }
.field-label-note { color: var(--cm-muted); font-weight: 400; }
.register-field-help { margin-top: .5rem; color: var(--cm-muted); font-size: .8rem; line-height: 1.5; }
.register-offer { margin-top: .75rem; padding: .75rem .85rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-md); font-size: .8rem; font-weight: 700; line-height: 1.5; }
.register-offer--cesu { border-color: #b9d8c1; background: #eef6f0; color: #215c36; }
.register-offer--provider { border-color: #b7d6d3; background: var(--cm-brand-soft); color: var(--cm-brand); }
.register-check-card { display: flex; align-items: flex-start; gap: .65rem; margin-top: .5rem; padding: .8rem .85rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-md); background: var(--cm-surface); color: var(--cm-muted); cursor: pointer; transition: opacity .16s ease, border-color .16s ease; }
.register-check-card--brand { border-color: #b7d6d3; background: var(--cm-brand-soft); }
.register-check-card--success { border-color: #b9d8c1; background: #eef6f0; }
.register-check-card.is-disabled { opacity: .58; cursor: not-allowed; }
.register-check-card input { flex: 0 0 auto; width: auto; min-height: auto; margin-top: .18rem; padding: 0; border: 0; accent-color: var(--cm-brand); }
.register-check-card span { font-size: .82rem; line-height: 1.5; }
.register-check-card strong { color: var(--cm-ink); }
.city-search-wrap { position: relative; }
.city-search-wrap > input[type="search"] { width: 100%; }
.city-dropdown { position: absolute; z-index: 50; top: calc(100% + 4px); right: 0; left: 0; display: none; max-height: 250px; overflow: auto; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-md); background: var(--cm-surface); box-shadow: var(--cm-shadow-popover); }
.city-dropdown .city-option { width: 100%; min-height: 46px; padding: .7rem .8rem; border: 0; border-bottom: 1px solid var(--cm-line); background: transparent; color: var(--cm-ink); text-align: left; cursor: pointer; }
.city-dropdown .city-option:last-child { border-bottom: 0; }
.city-dropdown .city-option:hover,
.city-dropdown .city-option:focus-visible { background: var(--cm-brand-soft); }
.radius-options { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .5rem; }
.radius-btn { min-width: 56px; min-height: 44px; padding: .4rem .72rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-sm); background: var(--cm-surface); color: var(--cm-ink-soft); font: 700 .8rem var(--cm-font-sans); cursor: pointer; }
.radius-btn.is-active { border-color: var(--cm-brand); background: var(--cm-brand); color: #fff; }
.commune-preview { min-height: 1.2rem; margin: -.5rem 0 1rem; color: var(--cm-brand); font-size: .85rem; }

/* Footer */
.site-footer,
body.site-public > footer {
  padding: var(--cm-space-12) 0 calc(var(--cm-space-8) + env(safe-area-inset-bottom));
  border-top: 1px solid rgb(255 255 255 / 12%);
  background: var(--cm-ink);
  color: #dbe5df;
}
.footer-inner { display: grid; gap: var(--cm-space-8); }
.footer-brand .logo { color: #fff; }
.footer-brand p { max-width: 36ch; margin: .7rem 0 0; color: #bfcfc7; }
.footer-links {
  position: static;
  inset: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem 1rem;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.footer-links > * { min-width: 0; }
.site-footer .footer-links h2 { margin: 0 0 .4rem; color: #fff; font-family: var(--cm-font-sans); font-size: .78rem; font-weight: 750; letter-spacing: .07em; overflow-wrap: anywhere; text-transform: uppercase; }
.footer-links a,
body.site-public > footer a,
.footer-links button { min-height: 44px; display: inline-flex; align-items: center; color: #e5eee9; text-decoration: none; }
.footer-links button { padding: 0; border: 0; background: transparent; font: inherit; cursor: pointer; }
.footer-links a:hover,
body.site-public > footer a:hover,
.footer-links button:hover { color: #fff; text-decoration: underline; text-underline-offset: .25em; }
.footer-bottom { padding-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / 16%); color: #aebfb6; font-size: .82rem; }

/* Consent */
.cookie-banner {
  position: fixed;
  right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  left: 12px;
  z-index: 500;
  display: none;
  max-width: 520px;
  margin-left: auto;
  padding: .72rem;
  border: 1px solid var(--cm-line);
  border-radius: var(--cm-radius-md);
  background: var(--cm-surface);
  box-shadow: var(--cm-shadow-popover);
}
.cookie-banner.visible,
.cookie-banner.show { display: block; }
.cookie-text { display: block; color: var(--cm-ink-soft); font-size: .82rem; line-height: 1.38; }
.cookie-text p { margin: 0; }
.cookie-text strong { margin-right: .2rem; color: var(--cm-ink); }
.cookie-text span::before { content: " · "; }
.cookie-text a { font-weight: 700; }
.cookie-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-top: .55rem; }
.cookie-btn { min-height: 44px; padding: .55rem .7rem; font-size: .78rem; }
.page-request-route .cookie-banner { bottom: calc(82px + env(safe-area-inset-bottom)); }

@media (min-width: 520px) {
  .hero-search-row,
  .search-form,
  .local-demand-form > div { grid-template-columns: minmax(0, 1fr) auto; }
  .hero-search-submit,
  .hero-search button,
  .search-form .btn,
  .local-demand-form button { min-width: 160px; }
  .form-row,
  .availability-window-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-box-row { grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
  .search-box .btn { width: auto; min-width: 175px; }
  .request-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pro-hero-actions,
  .home-pro-actions { display: flex; flex-wrap: wrap; }
  .system-actions { display: flex; justify-content: center; }
}

@media (min-width: 760px) {
  .page-auth-route .auth-experience { grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr); align-items: stretch; padding-top: var(--cm-space-12); }
  .auth-story { min-height: 610px; padding: clamp(2rem, 4vw, 3.4rem); border-radius: 34px 0 0 34px; }
  body.site-public .auth-story h1 { font-size: clamp(3.4rem, 4.8vw, 4.9rem); }
  .page-auth-route .auth-panel { display: grid; align-content: center; padding: clamp(2rem, 4vw, 3.2rem); border-radius: 0 34px 34px 0; }
  .trust-hero { grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); min-height: 470px; align-items: center; }
  .trust-grid,
  .ranking-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .trust-limit,
  .ranking-visibility { grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr); align-items: start; padding: 2rem; }
  .local-directory-hero { grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); align-items: center; }
  .local-directory-basin summary { min-height: 104px; padding: 1.2rem 1.35rem; }
  .local-directory-cities { padding: 0 1.35rem 1.2rem; }
  .local-directory-basin-link { margin: 0 1.35rem 1.35rem; }
  .search-hero { grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr); border-radius: 38px; }
  .search-hero-copy { display: flex; flex-direction: column; justify-content: center; min-height: 540px; padding: clamp(2.25rem, 5vw, 4.5rem); }
  .page-search-route .search-page-intro h1 { font-size: clamp(3.6rem, 5.5vw, 5.2rem); }
  .search-page-intro > p { font-size: 1rem; }
  .search-hero-visual { min-height: 540px; }
  .search-hero-visual figcaption { right: 1.5rem; bottom: 1.5rem; left: 1.5rem; padding: .9rem 1rem; }
  .search-content { gap: 1.75rem; padding-top: 3rem; }
  .search-city-section { padding: 2.25rem; border-radius: 30px; }
  .slot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .page-search-route a.slot-item { padding: 1.35rem; }
  .search-demand-callout { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 1.65rem 1.8rem; border-radius: 28px; }
  .search-demand-callout .btn { width: auto; }
  .search-local-signal { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .search-empty-state { padding: 2.25rem; border-radius: 32px; }
  .search-followup-card { padding: 1.75rem; }
  .empty-lead-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .faq-hero { grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: clamp(2rem, 6vw, 5rem); min-height: 540px; align-items: center; padding: clamp(2.5rem, 6vw, 5rem); border-radius: 38px; }
  .page-faq-route .faq-hero h1 { font-size: clamp(4.2rem, 6.2vw, 6rem); }
  .faq-hero-copy > p { font-size: 1.05rem; }
  .faq-hero-actions { display: flex; flex-wrap: wrap; }
  .faq-hero-actions .btn { width: auto; }
  .faq-hero-summary { padding: 1.5rem; border-radius: 26px; }
  .faq-layout { grid-template-columns: 240px minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); }
  .faq-category-nav { position: sticky; top: 96px; }
  .faq-group-header { grid-template-columns: 3rem minmax(0, 1fr); gap: 1.25rem; }
  .faq-group-header h2 { font-size: clamp(3rem, 4.6vw, 4.35rem); }
  .page-faq-route .faq-question { grid-template-columns: 2.5rem minmax(0, 1fr) 2.8rem; min-height: 78px; padding: 1rem 1rem 1rem 1.25rem; font-size: 1.02rem; }
  .page-faq-route .faq-answer { padding: 0 1.5rem 1.5rem 4.75rem; }
  .page-faq-route .faq-answer p { font-size: .95rem; }
  .faq-contact { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 2.2rem; border-radius: 32px; }
  .faq-contact .btn { width: auto; }
  .site-header,
  body.site-public > nav,
  .home-nav { min-height: 72px; }
  .site-header > nav { min-height: 72px; }
  .hero { padding: var(--cm-space-16) 0 var(--cm-space-20); }
  .hero-inner { grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
  .hero-visual img { aspect-ratio: 4 / 5; }
  .home-paths,
  .home-human-section,
  .home-flow-section,
  .home-payment,
  .home-compact-faq { padding: var(--cm-space-20) 0; }
  .home-human-inner { grid-template-columns: minmax(300px, 5fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
  .home-human-visual img { aspect-ratio: 4 / 5; }
  .home-flow-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-flow-step { padding: 4rem 1.5rem 0 0; border-bottom: 0; border-right: 1px solid var(--cm-line); }
  .home-flow-step + .home-flow-step { padding-left: 1.5rem; }
  .home-flow-step:last-child { border-right: 0; }
  .home-flow-step::before { left: var(--step-left, 0); top: 1rem; }
  .home-payment-inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 5rem; }
  .home-pro-inner { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: center; }
  .booking-summary,
  .booking-primary-action,
  .booking-details-disclosure { padding: 2rem; }
  .booking-quick-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .booking-quick-facts > div:last-child { grid-column: auto; }
  .local-city-hero { grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); gap: clamp(2.5rem, 6vw, 5rem); align-items: center; padding: var(--cm-space-12) 0 var(--cm-space-16); }
  .local-city-visual { min-height: 520px; }
  .local-city-actions { display: flex; flex-wrap: wrap; }
  .local-city-actions .btn { width: auto; }
  .local-city-proof-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .local-city-proof-card { display: block; padding: 1.2rem; border-right: 1px solid var(--cm-line); }
  .local-city-human { grid-template-columns: minmax(300px, 5fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 5rem); align-items: center; margin: 0 0 var(--cm-space-16); padding: var(--cm-space-12); }
  .local-city-human-visual,
  .local-city-human-visual img { height: 360px; }
  .local-city-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .local-city-step { padding: 3.5rem 1.3rem 1.3rem; border-right: 1px solid var(--cm-line); }
  .local-city-step-number { left: 1.3rem; top: 1.1rem; }
  .local-city-mode-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .local-city-mode { padding: 1.4rem; border-right: 1px solid rgb(23 49 45 / 14%); }
  .local-city-area-grid { grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 2rem; }
  .local-city-area-card { padding: 1.25rem 0; }
  .local-city-pro { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 2rem; }
  .local-city-pro .btn { width: auto; }
  .pro-profile-value { grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); gap: 2rem; align-items: center; padding: 2rem; }
  .pro-profile-value-visual { min-height: 430px; transform: rotate(1.2deg); }
  .pro-simple-proof { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pro-simple-final { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 1.65rem; }
  .pro-simple-final p { grid-column: 1 / -1; }
  .pro-simple-final .cta-btn { width: auto; }
  .pro-mode-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pro-mode-card { padding: 1.5rem; border: 1px solid var(--cm-line); border-radius: var(--cm-radius-lg); background: var(--cm-surface); }
  .steps-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .step-card { padding: 3.5rem 1.25rem 1.25rem; border-right: 1px solid var(--cm-line); border-bottom: 0; }
  .step-card::before { left: 1.25rem; top: 1.1rem; }
  .advantages-section { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .advantage-card { display: block; padding: 1.3rem; border-right: 1px solid var(--cm-line); border-bottom: 0; }
  .adv-icon { margin-bottom: .6rem; }
  .request-entry-layout { grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); gap: 1.5rem; }
  .request-entry-hero { position: sticky; top: 96px; min-height: 620px; padding: clamp(2rem, 4vw, 3.25rem); border-radius: 34px; }
  body.site-public .request-entry-hero h1 { font-size: clamp(3.25rem, 5vw, 4.8rem); }
  .request-entry-benefits { margin-top: 2rem; }
  .request-entry-benefits li { padding: 1rem 0; }
  .request-wizard-card { padding: 2rem; border-radius: 30px; }
  .request-back-link { display: inline-flex; }
  .request-wizard-step[data-request-step="1"] .request-step-heading { display: grid; }
  .request-wizard-actions { position: static; margin: 1.5rem 0 0; padding: 0; border: 0; background: transparent; backdrop-filter: none; }
  .page-request-route .cookie-banner { bottom: 12px; }
  .footer-inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .site-footer .footer-links:has(> div) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-bottom { grid-column: 1 / -1; }
  .cookie-banner { left: auto; min-width: 480px; }
}

@media (min-width: 1120px) {
  .hamburger,
  .nav-hamburger { display: none; }
  .nav-links,
  .public-nav-actions { display: flex; align-items: center; gap: .45rem; }
  .nav-desktop-only { display: inline-flex; }
  .nav-link,
  .nav-cta,
  .nav-share-trigger {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 .68rem;
    border: 0;
    background: transparent;
    color: var(--cm-ink-soft);
    font-size: .88rem;
    font-weight: 650;
    text-decoration: none;
  }
  .nav-link:hover,
  .nav-link.active { color: var(--cm-brand); }
  .nav-cta,
  .nav-btn { min-height: 46px; padding: 0 1.12rem; border: 1px solid var(--cm-ink); border-radius: 15px; background: var(--cm-ink); box-shadow: 0 4px 0 #056158, 0 8px 16px rgb(18 59 53 / 13%); color: #fff; font-weight: 800; }
  .nav-share-trigger { width: 44px; padding: 0; justify-content: center; cursor: pointer; }
}

@media (max-width: 379px) {
  :root { --cm-gutter: 16px; --cm-h1: 2.28rem; --cm-h2: 1.85rem; }
  .logo { font-size: 1.08rem; }
  .request-wizard-topline { display: block; }
  #requestStepCounter { display: block; margin-top: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after { scroll-behavior: auto; transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; }
}

@media print {
  .site-header,
  body.site-public > nav,
  .home-nav,
  .mobile-menu,
  .nav-mobile-menu,
  .cookie-banner,
  .request-wizard-actions { position: static; display: none; }
  body.site-public,
  body.home-refresh { background: #fff; color: #000; }
}
