
  :root {
    --cream: #F2EBDD; --cream-2: #E9DFCA; --paper: #FAF6EC;
    --ink: #1C1810; --ink-soft: #3A3326; --muted: #6F6552;
    --cedar: #8A5A37; --cedar-deep: #6B4326; --sage: #4A5D4F; --sage-deep: #344037;
    --terracotta: #BB5E3C; --ochre: #D6A45D; --leaf: #738B5F;
    --line: rgba(28,24,16,0.14); --line-strong: rgba(28,24,16,0.32);
    --display: "Fraunces", serif; --sans: "Manrope", -apple-system, sans-serif;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  body { font-family: var(--sans); background: var(--cream); color: var(--ink); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
  img { display: block; max-width: 100%; }
  a { color: inherit; text-decoration: none; }
  button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
  .wrap { width: min(1280px, 92vw); margin-inline: auto; }
  .narrow { width: min(740px, 92vw); margin-inline: auto; }

  /* header */
  header { position: sticky; top: 0; z-index: 50; background: rgba(242,235,221,0.94); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
  .nav { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; }
  .logo { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 22px; font-weight: 500; letter-spacing: -0.01em; }
  .logo img { width: 30px; height: 30px; border-radius: 50%; }
  .nav-links { display: flex; gap: 22px; font-size: 13.5px; font-weight: 500; }
  .nav-links a { padding: 6px 0; color: var(--ink-soft); }
  .nav-links a:hover { color: var(--ink); }
  .nav-cta { display: flex; gap: 10px; align-items: center; }
  /* ===== mobile / tablet nav dropdown ===== */
  @media (max-width:1024px){header .nav-cta .btn-cedar{display:none !important;}}
  .nav-toggle { display: none; width: 42px; height: 42px; border: none; background: transparent; cursor: pointer; padding: 0; align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
  .nav-toggle-bar { display: block; width: 22px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform 0.3s ease, opacity 0.2s ease; }
  .nav-toggle.open .nav-toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle.open .nav-toggle-bar:nth-child(2) { opacity: 0; }
  .nav-toggle.open .nav-toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .mobile-nav {
    position: fixed; left: 0; right: 0; top: var(--header-h, 72px);
    background: var(--paper); border-top: 1px solid var(--line);
    box-shadow: 0 24px 40px -16px rgba(28,24,16,0.28);
    max-height: 0; overflow: hidden; z-index: 80;
    transition: max-height 0.35s ease, opacity 0.25s ease, visibility 0.35s;
    opacity: 0; visibility: hidden;
  }
  .mobile-nav.open { max-height: calc(100vh - var(--header-h, 72px)); opacity: 1; visibility: visible; overflow-y: auto; }
  .mobile-nav-inner { padding: 22px 24px 30px; display: flex; flex-direction: column; gap: 22px; }
  .mnav-group { display: flex; flex-direction: column; gap: 2px; }
  .mnav-label { font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700; color: var(--cedar); margin-bottom: 8px; }
  .mobile-nav a { color: var(--ink-soft); font-family: var(--display); font-size: 20px; font-weight: 400; padding: 9px 0; border-bottom: 1px solid var(--line); transition: color 0.2s ease; }
  .mnav-group a:last-child { border-bottom: none; }
  .mobile-nav a:hover { color: var(--cedar); }
  .mnav-cta { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
  .mnav-cta .btn { width: 100%; text-align: center; justify-content: center; }
  .mnav-cta .btn-ghost { border: 1px solid var(--line-strong); }
  .mnav-cta .btn-ghost:hover { border-color: var(--ink); background: rgba(28,24,16,0.06); }
  @media (max-width: 1024px) {
    .nav-toggle { display: inline-flex; }
    /* Sign in hidden on tablet/mobile — it lives in the dropdown menu */
    .nav-cta .sg-auth-slot { display: none; }
  }
  @media (max-width: 640px) {
    .nav-cta .btn-cedar { padding: 9px 16px; font-size: 13px; }
    .nav-cta { gap: 10px; }
  }

  .sg-auth-slot { display: inline-flex; align-items: center; gap: 10px; }
  .sg-auth-name { font-size: 13.5px; font-weight: 600; color: var(--ink); padding: 6px 0; }
  .sg-auth-name:hover { color: var(--cedar); }
  .sg-auth-signout { background: none; border: none; cursor: pointer; font-size: 13px; color: var(--muted); font-family: var(--sans); padding: 6px 4px; }
  .sg-auth-signout:hover { color: var(--ink); text-decoration: underline; }
  .sg-auth-link { font-size: 13.5px; color: var(--ink-soft); padding: 6px 4px; }
  .sg-auth-cta { font-size: 13.5px; font-weight: 600; color: var(--cedar); padding: 6px 4px; }
  .btn { padding: 10px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; transition: all 0.2s; display: inline-flex; align-items: center; gap: 6px; }
  .btn-ghost:hover { background: rgba(28,24,16,0.06); }  .btn-cedar { background: var(--cedar); color: var(--cream); }
  .btn-cedar:hover { background: var(--cedar-deep); }
  @media (max-width: 860px) { .nav-links { display: none; } }

  /* page hero */
  .page-hero { padding: 80px 0 50px; }
  body[data-page="list"] .page-hero { padding-bottom: 18px; }
  body[data-page="about"] .page-hero { padding-bottom: 14px; }
  body[data-page="cities"] .page-hero { padding-bottom: 14px; }
  body[data-page="pricing"] .page-hero { padding-bottom: 14px; }
  .page-hero .eyebrow { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; color: var(--cedar-deep); }
  .page-hero h1 { font-family: var(--display); font-weight: 400; font-size: clamp(40px, 6vw, 76px); line-height: 0.98; letter-spacing: -0.025em; margin-top: 16px; }
  .page-hero h1 em { font-style: italic; color: var(--cedar); }
  .page-hero .lead { margin-top: 22px; font-size: 18px; color: var(--ink-soft); max-width: 600px; }

  /* content */
  .content { padding: 60px 0 90px; }
  body[data-page="about"] .content { padding-top: 8px; }
  body[data-page="cities"] .content { padding-top: 8px; }
  body[data-page="pricing"] .content { padding-top: 8px; }
  .content h2 {
    font-family: var(--display);
    font-weight: 400;
    font-size: 30px;
    letter-spacing: -0.02em;
    margin: 56px 0 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
    display: inline-block;
  }
  .content h2:first-child { margin-top: 0; }
  .content p { margin-bottom: 18px; color: var(--ink-soft); font-size: 16.5px; }
  .content ul { margin: 0 0 18px 22px; color: var(--ink-soft); }
  .content li { margin-bottom: 8px; }
  .content a.inline { color: var(--cedar-deep); border-bottom: 1px solid var(--cedar-deep); }

  /* contact form */
  .form-card { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 36px; margin-top: 30px; }
  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .field { margin-bottom: 16px; }
  .field label { display: block; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--muted); margin-bottom: 7px; }
  .field input, .field textarea, .field select { width: 100%; padding: 12px 16px; border: 1px solid var(--line); border-radius: 9px; background: var(--cream); font-family: var(--sans); font-size: 15px; color: var(--ink); }
  .field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--ink); }
  .field textarea { min-height: 120px; resize: vertical; }
  .form-card .btn-submit { background: var(--ink); color: var(--cream); padding: 14px 28px; border-radius: 999px; font-size: 14px; font-weight: 600; }
  .form-card .btn-submit:hover { background: var(--cedar-deep); }
  /* contact: heading lives inside the card, centered (no divider) */
  .contact-head { text-align: center; margin-bottom: 30px; }
  .contact-head .eyebrow { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; color: var(--cedar-deep); }
  .contact-head h2 { font-family: var(--display); font-weight: 400; font-size: clamp(34px, 5vw, 54px); line-height: 1; letter-spacing: -0.025em; margin: 12px 0 0; padding-bottom: 0; border-bottom: none; display: block; }
  .contact-head h2 em { font-style: italic; color: var(--cedar); }
  .contact-head .lead { margin: 16px auto 0; font-size: 17px; color: var(--ink-soft); max-width: 460px; }
  .contact-card .btn-submit { display: block; margin: 4px auto 0; }
  .privacy-field { margin-top: 8px; }
  .privacy-toggle { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; padding: 14px 16px; background: var(--cream-2); border: 1px solid var(--line); border-radius: 10px; transition: border-color 0.2s; }
  .privacy-toggle:hover { border-color: var(--line-strong); }
  .privacy-toggle input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
  .privacy-toggle-circle { width: 20px; height: 20px; border-radius: 50%; border: 1.8px solid var(--line-strong); background: var(--paper); flex-shrink: 0; margin-top: 1px; display: flex; align-items: center; justify-content: center; transition: all 0.2s; }
  .privacy-toggle input:checked ~ .privacy-toggle-circle { background: var(--sage); border-color: var(--sage); }
  .privacy-toggle input:checked ~ .privacy-toggle-circle::after { content: ""; width: 10px; height: 6px; border-left: 2px solid var(--cream); border-bottom: 2px solid var(--cream); transform: rotate(-45deg) translate(1px, -1px); }
  .privacy-toggle-text { display: flex; flex-direction: column; gap: 4px; flex: 1; }
  .privacy-toggle-text b { font-size: 14px; color: var(--ink); font-weight: 600; }
  .privacy-toggle-text small { font-size: 12.5px; color: var(--muted); line-height: 1.5; }

  /* ===== AUTH PAGES — sign-in / sign-up two-column layout ===== */
  .auth-solo { max-width: 460px; margin-inline: auto; }
  /* forgot / reset password */
  .pw-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 14px; border-radius: 50%; background: rgba(138,90,55,.12); color: var(--cedar, #8A5A37); }
  .pw-icon svg { width: 24px; height: 24px; }
  #forgotForm .contact-head .lead, #resetForm .contact-head .lead { margin: 10px auto 0; max-width: 340px; font-size: 15px; color: var(--muted); text-align: center; }
  .pw-wrap { position: relative; }
  .field .pw-wrap input { padding-right: 70px; }
  .pw-eye { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--cedar-deep, #6B4326); font: 600 12.5px var(--sans); padding: 8px 10px; border-radius: 8px; cursor: pointer; }
  .pw-eye:hover { background: rgba(138,90,55,.1); }
  .pw-meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; margin-top: 8px; }
  .pw-meter i { height: 4px; border-radius: 99px; background: var(--line, rgba(28,24,16,.14)); transition: background .2s ease; }
  .pw-meter[data-s="1"] i:nth-child(-n+1) { background: #B5533C; }
  .pw-meter[data-s="2"] i:nth-child(-n+2) { background: #D6A45D; }
  .pw-meter[data-s="3"] i:nth-child(-n+3) { background: #7C9A6A; }
  .pw-meter[data-s="4"] i { background: #4A5D4F; }
  .field-hint.ok { color: #2F5D3A; font-weight: 600; } .field-hint.err { color: #8F3F22; font-weight: 600; }
  .auth-confirm .tips { text-align: left; margin: 16px 0 6px; padding: 14px 16px; border-radius: 12px; background: rgba(138,90,55,.07); font-size: 14px; color: var(--ink-soft); }
  .auth-confirm .tips li { margin: 4px 0 4px 16px; }
  .auth-confirm .row-btns { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
  .auth-confirm .row-btns .btn-submit, .auth-confirm .row-btns .btn-back { width: 100%; text-align: center; text-decoration: none; }
  .auth-confirm .linkish { background: none; border: 0; color: var(--cedar-deep, #6B4326); font: 600 14px var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: 6px; }
  .auth-confirm .linkish:disabled { color: var(--muted); text-decoration: none; cursor: default; }
  .auth-solo .auth-aside { margin-top: 22px; }
  /* Desktop: show the form and the "what you get" panel side by side, both visible without scrolling */
  @media (min-width: 880px) {
    .auth-split { max-width: 960px; display: flex; align-items: flex-start; gap: 32px; }
    .auth-split .form-card { flex: 1 1 540px; margin-top: 0; }
    .auth-split .auth-aside { flex: 1 1 360px; margin-top: 0; }
  }
  /* inline form messages (errors + success) */
  .form-msg {
    padding: 12px 14px;
    border-radius: 9px;
    font-size: 13.5px;
    line-height: 1.5;
    margin-bottom: 16px;
  }
  .form-msg-error { background: rgba(187, 94, 60, 0.1); color: #8F3F22; border: 1px solid rgba(187, 94, 60, 0.25); }
  .form-msg-ok { background: rgba(74, 93, 79, 0.1); color: var(--sage-deep); border: 1px solid rgba(74, 93, 79, 0.25); }
  /* the "check your email" / "password updated" confirmation state */
  .auth-confirm { text-align: center; padding: 12px 8px; }
  .auth-confirm .success-mark {
    width: 52px; height: 52px; margin: 0 auto 16px;
    border-radius: 50%; background: var(--sage); color: var(--cream);
    display: inline-flex; align-items: center; justify-content: center;
  }
  .auth-confirm .success-mark svg { width: 26px; height: 26px; }
  .auth-confirm h3 { font-family: var(--display); font-size: 24px; font-weight: 400; color: var(--ink); margin-bottom: 10px; }
  .auth-confirm p { font-size: 14.5px; color: var(--muted); line-height: 1.6; margin-bottom: 16px; }
  .field-hint { display: block; font-size: 12px; color: var(--muted); margin-top: 6px; line-height: 1.5; letter-spacing: normal; text-transform: none; font-weight: 400; }
  .field-optional { font-size: 11px; color: var(--muted); font-weight: 400; text-transform: none; letter-spacing: normal; }
  .field-row-label {
    display: flex; align-items: baseline; justify-content: space-between;
  }
  .forgot-link {
    font-size: 12px;
    color: var(--cedar);
    text-decoration: none;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 500;
  }
  .forgot-link:hover { text-decoration: underline; }
  .check-row {
    display: flex; align-items: flex-start; gap: 10px;
    margin: 12px 0 18px;
    cursor: pointer;
    font-size: 13.5px;
    color: var(--ink-soft);
    line-height: 1.55;
  }
  .check-row input[type="checkbox"] {
    width: 17px; height: 17px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--cedar);
    cursor: pointer;
  }
  .form-foot {
    margin-top: 16px;
    font-size: 13px;
    color: var(--muted);
    line-height: 1.6;
  }
  

  /* aside column — value propositions */
  .auth-aside {
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 32px;
  }
  .auth-aside-title {
    font-family: var(--display);
    font-size: 19px;
    font-weight: 400;
    color: var(--ink);
    margin: 0 0 18px;
    letter-spacing: -0.005em;
  }
  .auth-aside-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
  .auth-aside-list li {
    display: flex; gap: 14px; align-items: flex-start;
  }
  .auth-aside-list svg { width: 20px; height: 20px; color: var(--cedar); flex-shrink: 0; margin-top: 2px; }
  .auth-aside-list b { display: block; font-size: 14px; color: var(--ink); font-weight: 600; margin-bottom: 2px; }
  .auth-aside-list small { font-size: 13px; color: var(--muted); line-height: 1.55; }
  .auth-aside-note {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    color: var(--muted);
    line-height: 1.55;
  }
  /* ===== LISTING WIZARD — multi-step form for practitioners ===== */
  .wizard { margin-top: 14px; }
  .wizard-progress {
    list-style: none; padding: 0; margin: 0 0 28px;
    display: flex; align-items: stretch;
    gap: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 6px;
  }
  .wp-step {
    flex: 1;
    display: flex; align-items: center; gap: 10px;
    padding: 12px 14px;
    border-radius: 10px;
    transition: background 0.25s ease, color 0.25s ease;
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
  }
  .wp-step.wp-active { background: var(--ink); color: var(--cream); }
  .wp-step.wp-complete { color: var(--cedar); }
  .wp-num {
    width: 24px; height: 24px;
    border-radius: 50%;
    background: var(--cream-2);
    color: var(--ink);
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--display);
    font-size: 13px;
    font-weight: 500;
    flex-shrink: 0;
  }
  .wp-step.wp-active .wp-num { background: var(--cream); color: var(--ink); }
  .wp-step.wp-complete .wp-num { background: var(--cedar); color: var(--cream); }
  .wp-label { line-height: 1.2; }
  .wizard-form { padding: 36px; }
  .wizard-panel { border: none; padding: 0; margin: 0; }
  .wizard-legend {
    font-family: var(--display);
    font-size: 24px;
    font-weight: 400;
    color: var(--ink);
    margin: 0 0 6px;
    letter-spacing: -0.01em;
    padding: 0;
  }
  .wizard-intro {
    font-size: 14.5px;
    color: var(--muted);
    line-height: 1.6;
    margin: 0 0 22px;
  }
  .wizard-nav {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px;
  }
  .btn-back {
    background: transparent;
    color: var(--muted);
    border: none;
    padding: 12px 18px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: color 0.2s ease;
  }
  .btn-back:hover { color: var(--ink); }
  .upload-zone {
    background: var(--cream-2);
    border: 1.5px dashed var(--line-strong);
    border-radius: 12px;
    padding: 32px 24px;
    display: flex; flex-direction: column; align-items: center; gap: 14px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease;
  }
  .upload-zone:hover { border-color: var(--cedar); background: var(--cream); }
  .upload-zone:focus-visible { outline: 2px solid var(--cedar); outline-offset: 2px; }
  .upload-zone svg { width: 36px; height: 36px; color: var(--muted); }
  .upload-zone:hover svg { color: var(--cedar); }
  /* mobile-optimized upload affordances */
  .upload-text-mobile { display: none; }
  .upload-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; justify-content: center; }
  .upload-btn {
    font-family: var(--sans); font-size: 13.5px; font-weight: 600; cursor: pointer;
    padding: 10px 18px; border-radius: 999px; border: 1px solid var(--line-strong);
    background: var(--paper); color: var(--ink); -webkit-tap-highlight-color: transparent;
  }
  .upload-btn:hover { border-color: var(--ink); }
  .upload-btn-camera { display: none; }  /* shown only on touch devices via JS */
  @media (max-width: 640px) {
    .upload-text-desktop { display: none; }
    .upload-text-mobile { display: block; }
    .upload-zone { padding: 22px 16px; }
    .upload-btn { padding: 13px 20px; font-size: 15px; flex: 1 1 auto; min-width: 130px; }  /* larger touch targets */
    .upload-thumb { width: 46%; }  /* roomier thumbs on small screens */
  }
  /* honeypot — positioned off-screen so humans never see or tab to it,
     but it's still in the DOM and not display:none (bots skip display:none) */
  .hp-field { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; }
  /* dashboard edit / event modals */
  .sg-modal-backdrop { position: fixed; inset: 0; background: rgba(28,24,16,0.5); z-index: 1000; display: flex; align-items: flex-start; justify-content: center; padding: 40px 20px; overflow-y: auto; }
  .sg-modal { background: var(--paper); border-radius: 16px; max-width: 520px; width: 100%; padding: 30px; box-shadow: 0 30px 80px -20px rgba(28,24,16,0.5); }
  .sg-modal h3 { font-family: var(--display); font-size: 23px; font-weight: 400; color: var(--ink); margin-bottom: 4px; }
  .sg-modal .sg-modal-sub { font-size: 13.5px; color: var(--muted); margin-bottom: 18px; line-height: 1.5; }
  .sg-modal .field { margin-bottom: 14px; }
  .sg-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 8px; }
  .sg-modal-actions .btn-cancel { background: transparent; border: none; color: var(--muted); font-family: var(--sans); font-size: 13.5px; font-weight: 600; cursor: pointer; padding: 11px 18px; }
  .sg-modal-actions .btn-cancel:hover { color: var(--ink); }
  .upload-preview { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
  .upload-thumb { position: relative; width: 84px; height: 84px; border-radius: 9px; overflow: hidden; border: 1px solid var(--line); }
  .upload-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .upload-thumb-rm {
    position: absolute; top: 3px; right: 3px;
    width: 20px; height: 20px; border-radius: 50%;
    background: rgba(28,24,16,0.7); color: #fff; border: none; cursor: pointer;
    font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center;
  }
  .upload-thumb-rm:hover { background: var(--terracotta); }
  .upload-text b { display: block; font-size: 14px; color: var(--ink); margin-bottom: 4px; }
  .upload-text small { font-size: 12.5px; color: var(--muted); }
  /* success state */
  .wizard-success {
    text-align: center;
    padding: 56px 32px;
  }
  .success-mark {
    width: 56px; height: 56px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: var(--sage);
    color: var(--cream);
    display: inline-flex; align-items: center; justify-content: center;
  }
  .success-mark svg { width: 28px; height: 28px; }
  .wizard-success h3 {
    font-family: var(--display);
    font-size: 28px;
    font-weight: 400;
    color: var(--ink);
    margin: 0 0 12px;
    letter-spacing: -0.01em;
  }
  .wizard-success p {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.6;
    max-width: 460px;
    margin: 0 auto;
  }

  @media (max-width: 600px) { .dash-acts { padding-left: 0 !important; } .form-row { grid-template-columns: 1fr; } .form-card { padding: 24px; } }  @media (max-width: 860px) { }
  /* listing wizard — main category + sub-categories */
  .maincat-q { font-weight: 600; }
  .maincat-req { color: var(--ochre); }
  .maincat-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .maincat-opt { position: relative; display: block; cursor: pointer; }
  .maincat-opt input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; }
  .maincat-card { display: block; height: 100%; border: 1.5px solid var(--line); border-radius: 14px; padding: 15px 16px; background: var(--paper, #fff); transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
  .maincat-card b { display: block; font-family: var(--display); font-size: 16px; color: var(--ink); }
  .maincat-card small { display: block; margin-top: 3px; font-size: 12.5px; color: var(--muted); line-height: 1.4; }
  .maincat-opt:hover .maincat-card { border-color: rgba(138,90,55,.5); }
  .maincat-opt input:checked + .maincat-card { border-color: var(--ochre); background: rgba(214,164,93,.08); box-shadow: 0 2px 10px rgba(138,90,55,.10); }
  .maincat-opt input:focus-visible + .maincat-card { outline: 2px solid var(--ochre); outline-offset: 2px; }
  .subcat-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .subcat-select { width: 100%; }
  @media (max-width: 560px) { .maincat-seg, .subcat-row { grid-template-columns: 1fr; } }
  /* responsive — auth + wizard */
  @media (max-width: 880px) {
    .wizard-progress { padding: 4px; }
    .wp-step { padding: 9px 8px; font-size: 11.5px; gap: 6px; }
    .wp-num { width: 20px; height: 20px; font-size: 11.5px; }
    .wp-label { display: none; }
    .wp-step.wp-active .wp-label { display: inline; }
    .wizard-form { padding: 24px; }
    .wizard-legend { font-size: 20px; }
  }


  .back-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 40px; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 2px; }

  /* journeys page */
  .journey-band { background: var(--ink); color: var(--cream); border-radius: 18px; padding: 40px 34px; margin-top: 30px; }
  .journey-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .journey { background: rgba(242,235,221,0.04); border: 1px solid rgba(242,235,221,0.14); border-radius: 12px; padding: 28px 24px; transition: all 0.3s; position: relative; overflow: hidden; }
  .journey:hover { background: rgba(242,235,221,0.08); border-color: var(--ochre); transform: translateY(-4px); }
  .journey-num { font-family: var(--display); font-style: italic; font-size: 76px; line-height: 1; color: var(--ochre); opacity: 0.4; margin-bottom: -16px; }
  .journey h3 { font-family: var(--display); font-weight: 400; font-size: 28px; line-height: 1.05; letter-spacing: -0.02em; margin-bottom: 10px; color: var(--cream); }
  .journey h3 em { font-style: italic; color: var(--ochre); }
  .journey-duration { font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ochre); font-weight: 600; margin-bottom: 16px; }
  .journey p { font-size: 14px; color: rgba(242,235,221,0.75); line-height: 1.6; margin: 0; }
  .journey-steps { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(242,235,221,0.14); display: flex; flex-direction: column; gap: 11px; }
  .journey-step { display: flex; gap: 12px; align-items: center; font-size: 13px; }
  .journey-step .step-num { width: 22px; height: 22px; border-radius: 50%; border: 1px solid rgba(242,235,221,0.3); display: flex; align-items: center; justify-content: center; font-size: 11px; color: var(--ochre); flex-shrink: 0; font-family: var(--display); }
  .journey-step .step-text b { color: var(--cream); font-weight: 600; }
  .journey-step .step-text small { color: rgba(242,235,221,0.55); display: block; font-size: 11px; margin-top: 1px; }
  .journey-foot { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(242,235,221,0.14); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .journey-foot .price { font-family: var(--display); font-size: 21px; font-weight: 500; }
  .journey-foot .price small { font-family: var(--sans); font-size: 12px; color: rgba(242,235,221,0.6); font-weight: 400; }
  .journey-foot .jbtn { background: var(--ochre); color: var(--ink); padding: 9px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; flex-shrink: 0; transition: background 0.2s; }
  .journey-foot .jbtn:hover { background: var(--cream); }
  @media (max-width: 860px) { .journey-grid { grid-template-columns: 1fr; } .journey-band { padding: 28px 20px; } }

  /* cities page */
  .content:has(.cities-list) { padding-top: 6px; }
  .cities-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 8px; }
  .city-card {
    position: relative; display: block;
    aspect-ratio: 5 / 4;
    border-radius: 14px; overflow: hidden;
    background: linear-gradient(135deg, #8A5A37, #3A3326);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
  }
  .city-card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -18px rgba(28,24,16,0.45); }
  .city-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
  .city-card:hover img { transform: scale(1.06); }
  .city-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(28,24,16,0.82) 0%, rgba(28,24,16,0.5) 30%, rgba(28,24,16,0.16) 60%, transparent 86%); }
  .city-card .cc-body { position: absolute; left: 22px; right: 60px; bottom: 18px; z-index: 2; }
  .city-card .cc-name { font-family: var(--display); font-size: 22px; font-weight: 500; color: var(--cream); letter-spacing: -0.015em; line-height: 1.05; }
  .city-card .cc-count { font-size: 12.5px; color: rgba(242,235,221,0.88); margin-top: 5px; }
  .city-card .cc-arrow { position: absolute; bottom: 16px; right: 16px; width: 34px; height: 34px; border-radius: 50%; background: var(--paper); color: var(--ink); display: flex; align-items: center; justify-content: center; z-index: 2; transition: transform 0.2s ease; }
  .city-card:hover .cc-arrow { transform: translateX(3px); }
  .city-card .cc-arrow svg { width: 16px; height: 16px; }
  .cities-note { margin-top: 30px; font-size: 14px; color: var(--muted); }
  @media (max-width: 860px) { .cities-list { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 540px) { .cities-list { grid-template-columns: 1fr; } }

  /* reviews page */
  .reviews-grid { columns: 3; column-gap: 16px; margin-top: 30px; }
  .review-card {
    break-inside: avoid; margin-bottom: 16px;
    padding: 24px;
    border: 1px solid var(--line); border-radius: 14px;
    background: var(--paper);
  }
  .review-card .rv-stars { display: flex; gap: 2px; color: var(--ochre); margin-bottom: 12px; }
  .review-card .rv-stars svg { width: 14px; height: 14px; }
  .review-card .rv-quote { font-family: var(--display); font-size: 17px; line-height: 1.4; color: var(--ink); }
  .review-card .rv-foot { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 11px; }
  .review-card .rv-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--cedar); color: var(--paper); display: flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 500; font-size: 15px; flex-shrink: 0; }
  .review-card .rv-avatar.a2 { background: var(--sage); }
  .review-card .rv-avatar.a3 { background: var(--terracotta); }
  .review-card .rv-avatar.a4 { background: var(--ochre); color: var(--ink); }
  .review-card .rv-avatar.a5 { background: var(--leaf); }
  .review-card .rv-name { font-size: 13.5px; font-weight: 600; color: var(--ink); }
  .review-card .rv-meta { font-size: 11px; color: var(--muted); margin-top: 1px; }
  @media (max-width: 860px) { .reviews-grid { columns: 2; } }
  @media (max-width: 540px) { .reviews-grid { columns: 1; } }

    /* ====== footer ====== */
  
    /* ===== footer breath row — quiet box-breath invitation ===== */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  @media (max-width: 640px) {
    
    
    
    
  }
  @media (prefers-reduced-motion: reduce) {
    
    
  }
  
  /* full-width newsletter band — "breath aura" treatment, ties to the breath-circle motif */
  
  
  /* soft rainbow aura glowing behind the headline (same conic palette as the breath circle) */
  
  
  @keyframes news-aura-breathe {
    0%, 100% { transform: translateX(-50%) scale(0.92); opacity: 0.2; }
    50%      { transform: translateX(-50%) scale(1.06); opacity: 0.32; }
  }
  /* little breath dot above the headline */
  
  
  @keyframes news-dot-pulse { 0%,100% { transform: scale(0.8); opacity: 0.65; } 50% { transform: scale(1); opacity: 1; } }
  
  
  
  
  /* pill field with the Send arrow tucked inside as a circle */
  
  
  
  
  
  
  
  
  
  
  @media (prefers-reduced-motion: reduce) {
    
  }
  
  
  
  
  
  
  
  
  
  
  
  
  /* Desktop only: tighten the newsletter band height and shrink its content */
  @media (min-width: 1025px) {
    
    
    
    
    
    
    
    
  }
  /* Desktop only: smaller footer link columns */
  @media (min-width: 1025px) {
    
    
    
  }
  
  
  
  @media (max-width: 1024px) {
    
    
    
    
    
    
    /* center the link columns on tablet to match the brand block */
    
    
    
  }

  @media (max-width: 640px) {
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  }

  @media (max-width: 420px) {
    
    
    
  }

  /* footer (responsive overrides above; no mini variant in use) */
  /* logo monogram — SS coin on light circular backdrop so it pops on any bg */
  .logo-mark {
    width: 40px; height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .logo-mark img {
    width: 100%; height: 100%;
    object-fit: contain;
    display: block;
    /* logo file is already the banner's espresso brown */
  }
  /* breath circle enhancements: idle pulse, rainbow aura, rainbow play hint */
  
  
  @keyframes breath-pulse {
    0%   { transform: scale(0.62); opacity: 0; }
    22%  { opacity: 0.7; }
    100% { transform: scale(1.3); opacity: 0; }
  }
  
  
  
  
  @keyframes breath-hue {
    from { filter: blur(8px) hue-rotate(0deg); }
    to   { filter: blur(8px) hue-rotate(360deg); }
  }
  
  
  
  @media (prefers-reduced-motion: reduce) {
    
    
  }

  /* ====== About page redesign ====== */
  .content:has(.ab-root) { padding-top: 6px; padding-bottom: 0; }
  .ab-root { width: 100vw; margin-left: calc(50% - 50vw); }
  .ab-wrap { max-width: 920px; margin: 0 auto; padding: 0 28px; }
  .ab-eyebrow { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cedar-deep); font-weight: 700; }
  .ab-center { text-align: center; }
  .ab-manifesto { padding: 8px 28px 52px; text-align: center; }
  .ab-manifesto p { font-family: var(--display); font-weight: 400; font-style: italic; font-size: clamp(24px, 3.4vw, 36px); line-height: 1.32; letter-spacing: -0.01em; color: var(--ink); max-width: 760px; margin: 0 auto; }
  .ab-manifesto .mk { color: var(--cedar); font-style: normal; }
  .ab-stats { display: flex; justify-content: center; flex-wrap: wrap; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .ab-stat { flex: 1; min-width: 130px; text-align: center; padding: 26px 14px; border-left: 1px solid var(--line); }
  .ab-stat:first-child { border-left: none; }
  .ab-stat .n { font-family: var(--display); font-size: 32px; font-weight: 500; line-height: 1; }
  .ab-stat .l { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-top: 6px; }
  .ab-sec { padding: 62px 0 8px; }
  .ab-sec h2 { font-family: var(--display); font-weight: 500; font-size: 30px; letter-spacing: -0.01em; text-align: center; margin: 8px 0 6px; }
  .ab-vals { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 34px; }
  .ab-val { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
  .ab-val .ic { width: 42px; height: 42px; border-radius: 12px; background: rgba(138,90,55,0.12); display: flex; align-items: center; justify-content: center; color: var(--cedar); margin-bottom: 14px; }
  .ab-val .ic svg { width: 20px; height: 20px; }
  .ab-val h3 { font-family: var(--display); font-weight: 500; font-size: 18px; margin: 0 0 6px; }
  .ab-val p { font-size: 14px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
  .ab-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 34px; position: relative; }
  .ab-step { text-align: center; padding: 8px; }
  .ab-step .num { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--cedar); color: var(--cedar); font-family: var(--display); font-size: 20px; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; background: var(--cream); position: relative; z-index: 1; }
  .ab-step h3 { font-family: var(--display); font-weight: 500; font-size: 17px; margin: 0 0 6px; }
  .ab-step p { font-size: 13.5px; line-height: 1.55; color: var(--muted); margin: 0; }
  .ab-step-line { position: absolute; top: 31px; left: 16%; right: 16%; height: 1.5px; background: linear-gradient(90deg, transparent, rgba(138,90,55,0.4), transparent); z-index: 0; }
  .ab-founder { margin-top: 56px; background: var(--cream-2); border-radius: 20px; padding: 34px; display: flex; gap: 22px; align-items: flex-start; }
  .ab-founder img { width: 64px; height: 64px; border-radius: 50%; object-fit: contain; background: var(--paper); border: 1px solid var(--line); padding: 10px; flex-shrink: 0; }
  .ab-founder .q { font-family: var(--display); font-style: italic; font-size: 18px; line-height: 1.5; color: var(--ink); }
  .ab-founder .who { font-size: 13px; color: var(--muted); margin-top: 12px; font-weight: 600; }
  .ab-cta { margin-top: 64px; background: linear-gradient(135deg, var(--cedar-deep) 0%, var(--sage-deep) 100%); color: var(--cream); text-align: center; padding: 64px 28px; position: relative; isolation: isolate; overflow: hidden; }
  .ab-cta .aura { position: absolute; top: -40px; left: 50%; transform: translateX(-50%); width: 560px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(214,164,93,0.34), rgba(115,139,95,0.2) 45%, transparent 70%); filter: blur(40px); z-index: -1; pointer-events: none; }
  .ab-cta h2 { font-family: var(--display); font-weight: 500; font-size: clamp(30px, 4.4vw, 46px); letter-spacing: -0.02em; margin: 0; }
  .ab-cta h2 em { font-style: italic; color: var(--ochre); }
  .ab-cta .btns { display: flex; gap: 12px; justify-content: center; margin-top: 26px; flex-wrap: wrap; }
  .ab-cta .btn { padding: 13px 26px; border-radius: 999px; font-weight: 600; font-size: 14px; }
  .ab-cta .b1 { background: var(--ochre); color: var(--ink); }
  .ab-cta .b2 { background: transparent; color: var(--cream); border: 1px solid rgba(242,235,221,0.4); }
  @media (max-width: 640px) {
    .ab-vals, .ab-steps { grid-template-columns: 1fr; }
    .ab-step-line { display: none; }
    .ab-founder { flex-direction: column; }
  }

  /* ====== Contact page redesign ====== */
  /* The contact block is wider (980px) than the default .narrow wrapper (740px),
     so we let its wrapper go full-width — then .ct-grid's own margin:auto can
     center the two columns in the middle of the screen. */
  .content:has(.ct-grid) > .narrow { width: 100%; max-width: none; }
  .ct-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 48px; align-items: start; width: min(1080px, 92vw); margin-left: auto; margin-right: auto; }
  .ct-lead { font-size: 16px; color: var(--ink-soft); line-height: 1.6; margin: 16px 0 28px; max-width: 38ch; }
  .ct-tile { display: flex; gap: 13px; align-items: flex-start; padding: 15px 0; border-top: 1px solid var(--line); }
  .ct-tile:last-of-type { border-bottom: 1px solid var(--line); }
  .ct-ic { width: 38px; height: 38px; border-radius: 10px; background: rgba(138,90,55,0.12); display: flex; align-items: center; justify-content: center; color: var(--cedar); flex-shrink: 0; }
  .ct-ic svg { width: 18px; height: 18px; }
  .ct-tile .t { font-weight: 600; font-size: 14px; color: var(--ink); }
  .ct-tile .d { font-size: 13px; color: var(--muted); margin-top: 2px; }
  .ct-tile .d a { color: var(--cedar); }
  .ct-social { display: flex; gap: 10px; margin-top: 24px; }
  .ct-social a { width: 34px; height: 34px; border-radius: 50%; background: var(--paper); border: 1px solid var(--line-strong); color: var(--ink); display: flex; align-items: center; justify-content: center; transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; }
  .ct-social a:hover { transform: translateY(-2px); box-shadow: 0 10px 20px -10px rgba(28,24,16,0.4); }
  .ct-social a svg { width: 15px; height: 15px; }
  .ct-social a.g { background: #fff; }
  .ct-social a.g:hover { background: #fff; transform: translateY(-2px); box-shadow: 0 10px 20px -10px rgba(28,24,16,0.4); border-color: var(--line-strong); }
  .ct-formwrap { position: relative; isolation: isolate; }
  .ct-aura { position: absolute; inset: -30px -10px auto -10px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(214,164,93,0.26), rgba(115,139,95,0.14) 45%, transparent 70%); filter: blur(38px); z-index: -1; pointer-events: none; }
  .ct-card { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 30px; box-shadow: 0 30px 60px -40px rgba(28,24,16,0.4); }
  .ct-left .eyebrow { display: block; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; color: var(--cedar-deep); }
  .ct-left h2 { font-family: var(--display); font-weight: 400; font-size: clamp(34px, 4.6vw, 52px); line-height: 1.02; letter-spacing: -0.02em; margin: 10px 0 0; padding-bottom: 0; border-bottom: none; }
  .ct-left h2 em { font-style: italic; color: var(--cedar); }
  .ct-card .btn-submit { background: var(--ink); color: var(--cream); padding: 14px 28px; border-radius: 999px; font-size: 14px; font-weight: 600; width: 100%; }
  .ct-card .btn-submit:hover { background: var(--cedar-deep); }
  @media (max-width: 720px) {
    .ct-grid { grid-template-columns: 1fr; gap: 30px; }
  }

  /* ====== Join chooser ====== */
  .join-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; max-width: 720px; margin: 4px auto 0; }
  .join-card { display: block; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 30px 28px; text-decoration: none; color: var(--ink); transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease; }
  .join-card:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -26px rgba(28,24,16,.55); border-color: var(--ink); }
  .join-card.feat { border-color: var(--cedar); }
  .join-ic { width: 46px; height: 46px; border-radius: 13px; background: rgba(214,164,93,.18); color: var(--cedar); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
  .join-ic svg { width: 23px; height: 23px; }
  .join-card h3 { font-family: var(--display); font-weight: 500; font-size: 22px; line-height: 1.15; margin: 0 0 9px; border: none; padding: 0; }
  .join-card p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.55; margin: 0 0 20px; }
  .join-cta { font-weight: 600; font-size: 14px; color: var(--cedar); }
  .join-foot { text-align: center; font-size: 14px; color: var(--muted); margin: 26px 0 0; }
  .join-foot a { color: var(--cedar); font-weight: 600; }
  @media (max-width: 640px) { .join-grid { grid-template-columns: 1fr; } }
  /* ====== Passport page redesign ====== */
  .pp-proof { font-size: 13px; color: var(--muted); font-weight: 600; margin-top: 14px; text-align: center; }
  .pp-toggle { display: inline-flex; background: var(--cream-2); border-radius: 999px; padding: 4px; margin: 22px auto 0; gap: 2px; }
  .pp-toggle-wrap { text-align: center; }
  .pp-toggle button { border: none; background: none; font: inherit; font-weight: 600; font-size: 13px; padding: 8px 18px; border-radius: 999px; cursor: pointer; color: var(--muted); }
  .pp-toggle button.on { background: var(--paper); color: var(--ink); box-shadow: 0 1px 4px rgba(28,24,16,0.12); }
  .pp-toggle .save { color: var(--sage); font-size: 11px; }
  .pp-sec-label { text-align: center; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin: 46px 0 18px; }
  .pp-pair { display: grid; grid-template-columns: 1fr 1.1fr; gap: 18px; align-items: stretch; }
  .pp-card { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 26px; display: flex; flex-direction: column; }
  .pp-card.feat { border: 1.5px solid var(--cedar); box-shadow: 0 30px 60px -42px rgba(138,90,55,0.6); }
  .pp-tag { font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--cedar); }
  .pp-card h3 { font-family: var(--display); font-weight: 500; font-size: 24px; margin: 8px 0 4px; border: none; padding: 0; }
  .pp-sub { font-size: 13.5px; color: var(--muted); line-height: 1.5; min-height: 38px; }
  .pp-price { font-family: var(--display); font-size: 40px; font-weight: 500; margin: 14px 0 0; line-height: 1; }
  .pp-price small { font-family: var(--sans); font-size: 15px; font-weight: 500; color: var(--muted); }
  .pp-billing { font-size: 12px; color: var(--muted); margin-top: 6px; min-height: 16px; }
  .pp-list { list-style: none; padding: 0; margin: 18px 0 0; display: flex; flex-direction: column; gap: 10px; flex: 1; }
  .pp-list li { display: flex; gap: 9px; font-size: 13.5px; line-height: 1.45; color: var(--ink-soft); }
  .pp-list svg { width: 16px; height: 16px; color: var(--sage); flex-shrink: 0; margin-top: 2px; }
  .pp-list b { color: var(--ink); }
  .pp-plus { font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cedar); font-weight: 700; margin: 4px 0 -4px; }
  .pp-cta { margin-top: 20px; text-align: center; padding: 13px; border-radius: 999px; font-weight: 600; font-size: 14px; display: block; }
  .pp-cta.solid { background: var(--cedar); color: var(--paper); }
  .pp-cta.solid:hover { background: var(--cedar-deep); }
  .pp-cta.ghost { background: transparent; color: var(--cedar); border: 1px solid rgba(138,90,55,0.5); }
  .pp-cta.ghost:hover { background: rgba(138,90,55,0.08); }
  .pp-prov { background: var(--cream-2); border-radius: 18px; padding: 28px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; align-items: center; }
  .pp-prov h3 { font-family: var(--display); font-weight: 500; font-size: 22px; margin: 6px 0 6px; border: none; padding: 0; }
  .pp-prov p { font-size: 14px; color: var(--ink-soft); line-height: 1.6; margin: 0; }
  .pp-prov .right { text-align: center; }
  .pp-faq { max-width: 680px; margin: 48px auto 0; }
  .pp-faq h2 { font-family: var(--display); font-weight: 500; font-size: 26px; text-align: center; margin: 0 0 20px; border: none; padding: 0; }
  .pp-q { border-top: 1px solid var(--line); }
  .pp-q:last-child { border-bottom: 1px solid var(--line); }
  .pp-q > button { width: 100%; background: none; border: none; font: inherit; font-weight: 600; font-size: 15px; color: var(--ink); text-align: left; padding: 16px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .pp-q .a { font-size: 14px; color: var(--muted); line-height: 1.6; padding: 0 0 16px; display: none; }
  .pp-q.open .a { display: block; }
  .pp-q .chev { transition: transform 0.2s ease; color: var(--cedar); display: inline-flex; }
  .pp-q.open .chev { transform: rotate(180deg); }
  .pp-guar { text-align: center; margin-top: 40px; font-size: 13px; color: var(--muted); display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }

  /* ====== Get Verified (for businesses) page ====== */
  .vb-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 10px 0 38px; }
  .vb-item { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
  .vb-ic { width: 40px; height: 40px; border-radius: 11px; background: color-mix(in srgb, var(--sage) 13%, transparent); color: var(--sage); display: flex; align-items: center; justify-content: center; margin-bottom: 13px; }
  .vb-ic svg { width: 20px; height: 20px; }
  .vb-item h4 { font-family: var(--display); font-weight: 500; font-size: 17px; margin: 0 0 5px; border: none; padding: 0; }
  .vb-item p { font-size: 13px; color: var(--muted); line-height: 1.55; margin: 0; }
  .vb-price { max-width: 460px; margin: 0 auto; }
  .vb-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 4px; }
  .vb-steps.vb-steps4 { grid-template-columns: repeat(4, 1fr); }
  @media (max-width: 1060px) and (min-width: 861px) { .vb-steps.vb-steps4 { grid-template-columns: 1fr 1fr; } }
.vb-steps.vb-steps4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .vb-steps.vb-steps4 { grid-template-columns: 1fr 1fr; } }
  .vb-step { display: flex; gap: 12px; align-items: flex-start; }
  .vb-num { flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--cedar); color: var(--paper); font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; }
  .vb-step h4 { font-family: var(--display); font-weight: 500; font-size: 16px; margin: 2px 0 4px; border: none; padding: 0; }
  .vb-step p { font-size: 13px; color: var(--muted); line-height: 1.5; margin: 0; }
  @media (max-width: 860px) { .vb-grid, .vb-steps { grid-template-columns: 1fr; } }

  /* ====== Owner verify flow (?p=verify) ====== */
  .vfy-wrap { max-width: 720px; margin: 0 auto; }
  .vfy-card { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 22px; margin-bottom: 16px; }
  .vfy-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .vfy-name { font-family: var(--display); font-weight: 500; font-size: 19px; }
  .vfy-badge { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border-radius: 999px; padding: 3px 10px; border: 1px solid; white-space: nowrap; }
  .vfy-b-verified { color: var(--cedar); border-color: var(--cedar); }
  .vfy-b-pending  { color: var(--ochre); border-color: var(--ochre); }
  .vfy-b-rejected { color: var(--terracotta); border-color: var(--terracotta); }
  .vfy-b-none     { color: var(--muted); border-color: var(--line-strong); }
  .vfy-docs { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-direction: column; gap: 5px; }
  .vfy-docs li { font-size: 13px; color: var(--ink-soft); }
  .vfy-form { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 14px; display: grid; gap: 10px; }
  .vfy-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .vfy-form label { font-size: 12px; font-weight: 600; color: var(--muted); display: block; margin-bottom: 4px; }
  .vfy-form input[type=text], .vfy-form select, .vfy-form input[type=file] { width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--cream); font: inherit; font-size: 13.5px; color: var(--ink); }
  .vfy-msg { font-size: 13px; margin: 2px 0 0; min-height: 1px; }
  .vfy-msg.ok { color: var(--sage-deep); }
  .vfy-msg.err { color: var(--terracotta); }
  .vfy-empty { text-align: center; color: var(--muted); padding: 30px; }
  @media (max-width: 560px) { .vfy-form .row { grid-template-columns: 1fr; } }
  .vfy-claim-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 0; border-top: 1px solid var(--line); }
  .vfy-claim-row:first-child { border-top: none; }
  .vfy-claim-row.is-target { background: rgba(187,94,60,.07); border-radius: 10px; padding: 12px 14px; }
  .vfy-claim-row > div:first-child { flex: 1; min-width: 160px; }
  .vfy-claim-msg { font-size: 12.5px; width: 100%; }
  .vfy-embed { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 14px; }
  .vfy-embed-head { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
  .vfy-embed-code { width: 100%; margin: 4px 0 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--cream); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12px; color: var(--ink-soft); resize: vertical; }
  .vfy-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 14px 0 4px; background: var(--line); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
  .vfy-stat { background: var(--paper); padding: 14px 8px; text-align: center; }
  .vfy-stat-num { display: block; font-family: var(--display); font-size: 26px; font-weight: 500; color: var(--cedar-deep, #3a463c); line-height: 1; }
  .vfy-stat-lbl { display: block; margin-top: 4px; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
  .vfy-stat-foot { grid-column: 1 / -1; background: var(--paper); text-align: center; font-size: 11.5px; color: var(--muted); padding: 0 0 9px; }
  .pp-guar span { display: inline-flex; align-items: center; gap: 6px; }
  @media (max-width: 720px) {
    .pp-pair, .pp-prov { grid-template-columns: 1fr; }
  }

  
  
  
  
  @media (max-width: 760px) {   }

  /* ===== accessibility helpers (skip link, main focus, legible fine print, map credits) ===== */
  .sg-skip { position: absolute; left: 12px; top: -80px; z-index: 10000; padding: 12px 18px; border-radius: 10px;
    background: #1C1810; color: #FBF7EE !important; font: 600 14px/1.2 var(--sans, 'Manrope', sans-serif); text-decoration: none; transition: top .15s ease; }
  .sg-skip:focus, .sg-skip:focus-visible { top: 12px; outline: 3px solid #EAC894; outline-offset: 2px; }
  main#main:focus { outline: none; }
  
  .leaflet-control-attribution a { color: #005f85 !important; }

  /* legal pages */
  .content .legal-meta { font-size: 13px !important; letter-spacing: .06em; text-transform: uppercase; color: var(--muted) !important; margin-bottom: 22px; }
  /* sign up / sign in / password forms: the main button fills the form width on every screen */
  #signupForm .btn-submit, #signinForm .btn-submit, #forgotForm .btn-submit, #resetForm .btn-submit {
    display: flex; width: 100%; justify-content: center; align-items: center; text-align: center; margin-top: 6px;
  }

  /* ===================== Sign in / sign up: focused screen ===================== */
  
  html:has(body.auth-mode) { background: var(--cream); }
  body.auth-mode { min-height: 100vh; display: flex; flex-direction: column; background: var(--cream) !important; }
  body.auth-mode .auth-foot { background: transparent; }
  body.auth-mode #main { flex: 1 0 auto; }
  body.auth-mode .content { padding-top: 8px; }
  .auth-top { position: relative; display: flex; justify-content: center; padding: 34px 20px 6px; }
  .auth-back { position: absolute; left: max(16px, calc(50% - 560px)); top: 50%; transform: translateY(-30%); display: inline-flex; align-items: center; gap: 8px;
    height: 44px; padding: 0 16px 0 12px; border-radius: 999px; border: 1px solid var(--line, rgba(28,24,16,.14)); background: transparent; color: var(--ink);
    font: 600 14px/1 var(--sans); text-decoration: none; cursor: pointer; transition: background .2s ease, border-color .2s ease; }
  .auth-back svg { width: 18px; height: 18px; transition: transform .2s ease; }
  .auth-back:hover { background: rgba(28,24,16,.05); border-color: rgba(28,24,16,.28); }
  .auth-back:hover svg { transform: translateX(-2px); }
  .auth-back:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
  @media (max-width: 600px) {
    .auth-top { padding-top: 26px; }
    .auth-back { width: 44px; padding: 0; justify-content: center; }
    .auth-back span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .auth-mark { height: 48px; }
  }
  @media (prefers-reduced-motion: reduce) { .auth-back, .auth-back svg { transition: none; } }
  .auth-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); }
  /* the symbol only, in ink on the cream page */
  .auth-mark { display: block; height: 64px; width: auto; aspect-ratio: 185 / 227; background-color: var(--ink);
    -webkit-mask: url("/images/sg-logo.png") no-repeat center / contain; mask: url("/images/sg-logo.png") no-repeat center / contain; }
  @media (max-width: 1024px) and (min-width: 601px) { .auth-mark { height: 56px; } }
  .auth-foot { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 28px 20px 30px; }
  .auth-foot nav { display: flex; align-items: center; gap: 12px; }
  .auth-foot nav a + a::before { content: "·"; margin-right: 12px; color: var(--muted); text-decoration: none; display: inline-block; }
  .auth-foot a { font-size: 13.5px; color: var(--muted); text-decoration: none; }
  .auth-foot a:hover { color: var(--ink); text-decoration: underline; }
  .auth-foot small { font-size: 12px; color: var(--muted); }

  /* ===================== Account dashboard (app layout) ===================== */
  body[data-page="dashboard"] #pageBody.narrow { width: min(1180px, 100% - 32px); max-width: none; }
  body[data-page="dashboard"] .content { padding-top: 28px; }
  .dbx { --db-side: #EFE6D6; --db-card: #FCFAF5; --db-line: rgba(28,24,16,.10); display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 28px; align-items: start; padding-bottom: 40px; }
  .dbx-loading { color: var(--muted); padding: 40px 0; }
  /* reset the article styles of content pages inside the dashboard */
  .content .dbx h1, .content .dbx h2, .content .dbx h3, .content .dbx h4 { border: 0; padding: 0; text-transform: none; display: block; }
  .content .dbx h2::before, .content .dbx h2::after { content: none !important; display: none !important; }
  .content .dbx h2 { font-family: var(--sans); font-size: 17px; font-weight: 700; letter-spacing: -.01em; margin: 0; line-height: 1.3; color: var(--ink); }
  .content .dbx p { margin: 0; font-size: inherit; }
  .content .dbx .dbx-sum { margin-top: 8px; font-size: 15.5px; }
  .content .dbx .dbx-hint { font-size: 14px; color: var(--muted); }
  .content .dbx .dbx-more { margin-top: 14px; font-size: 14px; color: var(--muted); }
  .content .dbx .dbx-empty p { margin: 0 0 14px; color: var(--muted); font-size: 15px; }
  .content .dbx-card > div > div[style*="border-top"] p, .content .dbx-card div[style*="border-top"] div { font-size: inherit; }
  .dbx-past-toggle { margin-top: 12px; background: none; border: 1px solid var(--db-line); border-radius: 999px; padding: 7px 14px; font: inherit; font-size: 13px; font-weight: 600; color: var(--ink-soft); cursor: pointer; }
  .dbx-card.hide-past [data-past="1"] { display: none !important; }
  .dbx-side { position: sticky; top: 92px; background: var(--db-side); border-radius: 22px; padding: 18px 12px 14px; display: flex; flex-direction: column; gap: 2px; }
  .dbx-me { display: flex; align-items: center; gap: 11px; padding: 4px 8px 16px; border-bottom: 1px solid var(--db-line); margin-bottom: 10px; }
  .dbx-av { width: 42px; height: 42px; border-radius: 50%; flex: 0 0 42px; display: grid; place-items: center; background: var(--sage); color: #F4EFE4; font-weight: 700; font-size: 15px; letter-spacing: .02em; }
  .dbx-me b { display: block; font-size: 15px; line-height: 1.25; }
  .dbx-plan { display: inline-block; margin-top: 3px; font-size: 12px; color: var(--muted); }
  .dbx-plan a { color: var(--cedar-deep); font-weight: 600; }
  .dbx-nav { display: flex; flex-direction: column; gap: 2px; }
  .dbx-nav a, .dbx-nav button { display: flex; align-items: center; gap: 11px; width: 100%; padding: 9px 10px; border-radius: 11px; border: 0; background: none; font: inherit; font-size: 14.5px; font-weight: 500; color: var(--ink-soft); text-decoration: none; cursor: pointer; text-align: left; }
  .dbx-nav svg { width: 18px; height: 18px; flex: 0 0 18px; color: var(--muted); }
  .dbx-nav a:hover, .dbx-nav button:hover { background: rgba(255,255,255,.55); color: var(--ink); }
  .dbx-nav a[aria-current="true"] { background: var(--db-card); color: var(--ink); font-weight: 600; box-shadow: 0 1px 0 var(--db-line); }
  .dbx-nav a[aria-current="true"] svg { color: var(--sage); }
  .dbx-nav .n { margin-left: auto; min-width: 22px; padding: 1px 7px; border-radius: 99px; background: rgba(28,24,16,.07); font-size: 12px; font-weight: 600; text-align: center; color: var(--ink-soft); }
  .dbx-nav .n.hot { background: var(--cedar); color: #FBF7EE; }
  .dbx-nav hr { border: 0; border-top: 1px solid var(--db-line); margin: 10px 4px; }
  .dbx-main { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
  .dbx-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 6px 2px 4px; }
  .dbx-head h1 { font-family: var(--display); font-weight: 400; font-size: clamp(30px, 3.4vw, 42px); line-height: 1.08; letter-spacing: -.02em; margin: 0; }
  .dbx-sum { margin: 8px 0 0; font-size: 15.5px; color: var(--ink-soft); max-width: 60ch; }
  .dbx-sum a { color: var(--cedar-deep); font-weight: 600; }
  .dbx-acts { display: flex; gap: 8px; flex-wrap: wrap; }
  .dbx-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; border: 1px solid var(--line-strong); background: var(--db-card); color: var(--ink); }
  .dbx-btn svg { width: 16px; height: 16px; }
  .dbx-btn.primary { background: var(--ink); color: #FBF7EE; border-color: var(--ink); }
  .dbx-btn:hover { border-color: var(--ink); }
  .dbx-btn:focus-visible, .dbx-nav a:focus-visible, .dbx-nav button:focus-visible, .dbx-card a:focus-visible, .dbx-chip:focus-visible { outline: 2px solid var(--cedar); outline-offset: 2px; }
  .dbx-note { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 14px; background: #F6E7DC; color: #6B3A22; font-size: 14px; }
  .dbx-note button { margin-left: auto; background: none; border: 1px solid rgba(107,58,34,.35); border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 13px; font-weight: 600; color: inherit; cursor: pointer; }
  .dbx-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .dbx-stat { display: block; text-decoration: none; color: inherit; background: var(--db-card); border: 1px solid var(--db-line); border-radius: 16px; padding: 14px 16px; }
  .dbx-stat:hover { border-color: var(--line-strong); }
  .dbx-stat span { display: block; font-size: 13px; color: var(--muted); }
  .dbx-stat b { display: block; font-size: 26px; font-weight: 600; letter-spacing: -.02em; line-height: 1.2; margin-top: 2px; font-variant-numeric: tabular-nums; }
  .dbx-stat small { font-size: 12.5px; color: var(--muted); }
  .dbx-stat.hot b { color: var(--cedar-deep); }
  .dbx-card { background: var(--db-card); border: 1px solid var(--db-line); border-radius: 20px; padding: 20px 22px; scroll-margin-top: 96px; }
  .dbx-card:empty { display: none; }
  .dbx-card > h2, .dbx-card h3:first-child { font-family: var(--sans) !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: -.01em; margin: 0 0 12px !important; }
  .dbx-card h4 { font-family: var(--sans) !important; font-size: 15px !important; font-weight: 700 !important; }
  .dbx-ch { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
  .dbx-ch h2 { font-size: 17px; font-weight: 700; letter-spacing: -.01em; margin: 0; }
  .dbx-ch small { color: var(--muted); font-size: 13px; }
  .dbx-ch a { font-size: 13.5px; color: var(--cedar-deep); font-weight: 600; text-decoration: none; }
  /* listing cards */
  .dbx-lst { display: grid; gap: 12px; }
  .dbx-li { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 12px; border: 1px solid var(--db-line); border-radius: 16px; background: #fff; }
  .dbx-li img, .dbx-li .ph { width: 96px; height: 96px; border-radius: 12px; object-fit: cover; background: var(--cream-2); display: block; }
  .dbx-li h3 { font-family: var(--sans); font-size: 16.5px; font-weight: 700; margin: 0; line-height: 1.25; }
  .dbx-li .sub { font-size: 13.5px; color: var(--muted); margin-top: 2px; }
  .dbx-st { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
  .dbx-st::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
  .dbx-st.live { color: #2F5D3A; background: #E3ECDD; } .dbx-st.wait { color: #8a5a12; background: #F6EAD3; } .dbx-st.off { color: var(--muted); background: rgba(28,24,16,.06); } .dbx-st.bad { color: #8F3F22; background: #F4DCCF; }
  .dbx-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
  .dbx-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; border: 1px solid var(--db-line); background: var(--db-card); font: inherit; font-size: 13px; font-weight: 600; color: var(--ink-soft); text-decoration: none; cursor: pointer; }
  .dbx-chip:hover { border-color: var(--line-strong); color: var(--ink); }
  .dbx-li .plink { grid-column: 1 / -1; margin: 2px 0 0 !important; }
  .dbx-empty { text-align: center; padding: 26px 16px; border: 1px dashed var(--line-strong); border-radius: 16px; }
  .dbx-empty p { color: var(--muted); margin: 0 0 14px; }
  .dbx-more { margin-top: 14px; font-size: 14px; color: var(--muted); }
  .dbx-more a { color: var(--cedar-deep); font-weight: 600; }
  /* saved grid */
  .dbx-sv { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
  .dbx-svi { position: relative; display: block; border: 1px solid var(--db-line); border-radius: 16px; overflow: hidden; background: #fff; text-decoration: none; color: inherit; }
  .dbx-svi .im { aspect-ratio: 4 / 3; background: var(--cream-2) center / cover no-repeat; }
  .dbx-svi .tx { padding: 10px 12px 12px; }
  .dbx-svi b { display: block; font-size: 14.5px; line-height: 1.3; }
  .dbx-svi small { color: var(--muted); font-size: 12.5px; }
  .dbx-svi .rm { position: absolute; top: 8px; right: 8px; width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(252,250,245,.92); cursor: pointer; display: grid; place-items: center; color: var(--cedar-deep); }
  .dbx-alerts { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--db-line); }
  .dbx-alert { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 14.5px; }
  .dbx-alert button { margin-left: auto; background: none; border: 0; color: var(--muted); font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
  .dbx-hint { color: var(--muted); font-size: 14px; margin: 0; }
  @media (max-width: 980px) {
    .dbx { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .dbx-side { position: static; flex-direction: column; padding: 14px; }
    .dbx-me { border-bottom: 0; padding-bottom: 8px; margin-bottom: 4px; }
    .dbx-nav { flex-direction: row; overflow-x: auto; gap: 6px; scrollbar-width: none; margin: 0 -4px; padding: 0 4px 2px; }
    .dbx-nav::-webkit-scrollbar { display: none; }
    .dbx-nav a, .dbx-nav button { width: auto; flex: 0 0 auto; padding: 8px 12px; background: rgba(255,255,255,.5); }
    .dbx-nav hr, .dbx-nav .signout { display: none; }
    .dbx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 560px) {
    .dbx-head { align-items: flex-start; }
    .dbx-acts { width: 100%; }
    .dbx-acts .dbx-btn { flex: 1 1 auto; justify-content: center; }
    .dbx-li { grid-template-columns: 72px minmax(0, 1fr); }
    .dbx-li img, .dbx-li .ph { width: 72px; height: 72px; }
    .dbx-li .dbx-st { grid-column: 2; justify-self: start; }
    .dbx-card { padding: 16px; border-radius: 18px; }
    .dbx-sv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  /* dashboard: personal link row under each live listing */
  .plink { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 6px 0 0 68px; padding: 10px 12px; background: var(--cream); border: 1px solid var(--line); border-radius: 12px; }
  .plink-k { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--cedar-deep, #6B4326); }
  .plink-url { font: 600 13.5px/1.3 var(--sans); color: var(--ink); background: none; padding: 0; word-break: break-all; }
  .plink-copy { border: 1px solid var(--ink); background: var(--ink); color: var(--cream); border-radius: 999px; padding: 5px 14px; font: 600 12.5px var(--sans); cursor: pointer; }
  .plink-open { font-size: 13px; }
  .plink-custom { border: 1px solid var(--cedar); color: var(--cedar-deep); border-radius: 999px; padding: 4px 13px; font: 600 12.5px var(--sans); text-decoration: none; }
  .plink-custom:hover { background: var(--cedar); color: #FBF7EE; }
  .plink-hint { flex-basis: 100%; font-size: 12px; color: var(--muted); }
  @media (max-width: 560px) { .plink { margin-left: 0; } }
  .content .legal-glance { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 18px 22px 8px; margin: 0 0 28px; }
  .content .legal-glance ul { margin-top: 6px; }
  .content .legal-toc { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 30px; }
  .content .legal-toc a { font-size: 13px; padding: 7px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); background: var(--paper); }
  .content .legal-toc a:hover, .content .legal-toc a:focus-visible { border-color: var(--ink); color: var(--ink); }
  .content h2[id] { scroll-margin-top: calc(var(--header-h, 80px) + 16px); }
  .content .legal-table-wrap { overflow-x: auto; margin: 0 0 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
  .content .legal-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 520px; }
  .content .legal-table th, .content .legal-table td { text-align: left; vertical-align: top; padding: 13px 16px; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
  .content .legal-table th { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); font-weight: 700; background: var(--cream); }
  .content .legal-table tr:last-child td { border-bottom: 0; }
  .content .legal-table code { font-size: 13px; background: var(--cream); padding: 2px 6px; border-radius: 6px; color: var(--ink); white-space: nowrap; }
  .content .legal-btn { background: var(--ink); color: var(--cream); padding: 12px 22px; border-radius: 999px; font: 600 14px var(--sans); border: 0; cursor: pointer; }
  .content .legal-btn:hover, .content .legal-btn:focus-visible { background: var(--cedar-deep); }

  /* motion safety net: honour "reduce motion" everywhere, pause drifting rows on hover/focus */
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  }
  .marquee:hover .marquee-track, .test-marquee:hover .test-row, .test-marquee:focus-within .test-row { animation-play-state: paused; }

  .abx-val .n::before { content: attr(data-n); }

  
  

  /* listing wizard — proof of license for licensed categories */
  .proof-field { border: 1px solid rgba(138,90,55,.35) !important; background: linear-gradient(180deg, rgba(234,200,148,.14), rgba(250,246,236,.6)); border-radius: 16px; padding: 18px 18px 14px !important; margin: 4px 0 18px; }
  .proof-field legend { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: var(--ink); padding: 0 6px; }
  .proof-badge { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #EAC894; }
  #w-proof-cats { color: var(--cedar-deep); }
  .proof-intro { font-size: 14px; color: var(--ink-soft); margin: 4px 0 14px; }
  .proof-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
  .proof-list li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
  .proof-list li b { font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .proof-list li small { color: var(--muted); }
  .proof-list li button { border: 0; background: none; font-size: 18px; line-height: 1; cursor: pointer; color: var(--muted); padding: 2px 6px; }
  .proof-list li.err { border-color: rgba(187,94,60,.45); color: var(--terracotta, #BB5E3C); }
  .proof-attest { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--ink-soft); margin-top: 6px; cursor: pointer; }
  .proof-field .proof-attest { text-transform: none; letter-spacing: 0; font-size: 13.5px; font-weight: 500; color: var(--ink-soft); }
  .proof-attest input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--cedar-deep); }
  .proof-error { margin-top: 10px; }
  /* shared lists */
  .col-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 22px; }
  .col-actions .btn-ghost { border: 1px solid var(--line-strong, rgba(28,24,16,.22)); }
  .col-msg { font-size: 14px; color: var(--sage-deep, #344037); }
  .col-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
  .col-card { display: flex; flex-direction: column; border: 1px solid var(--line, rgba(28,24,16,.12)); border-radius: 18px; overflow: hidden; background: var(--paper, #FAF6EC); color: var(--ink); text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
  .col-card:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -20px rgba(28,24,16,.5); }
  .col-card .im { position: relative; aspect-ratio: 16 / 10; background: #E7DCC8 center / cover no-repeat; }
  .col-card .im i { position: absolute; inset: 0; background: url('/images/listing-placeholder.svg') center / cover no-repeat; }
  .col-card .tx { display: grid; gap: 4px; padding: 14px 16px 16px; }
  .col-card small { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--cedar-deep, #6B4326); }
  .col-card b { font-family: var(--display); font-weight: 400; font-size: 20px; line-height: 1.2; }
  .col-card em { font-style: normal; font-size: 14px; color: var(--ink-soft, #3A3326); }
  .dbx-ch-acts { display: inline-flex; align-items: center; gap: 14px; }
  .dbx-share-btn { border: 1px solid var(--line-strong, rgba(28,24,16,.2)); background: transparent; border-radius: 999px; padding: 6px 12px; font: 600 13px/1 var(--sans); color: var(--ink); cursor: pointer; }
  .dbx-share-btn:hover { border-color: var(--ink); }
  .dbx-share { margin: 0 0 14px; padding: 14px; border-radius: 14px; background: rgba(138,90,55,.07); }
  .dbx-share-row { display: flex; gap: 8px; }
  .dbx-share-row input { flex: 1; min-width: 0; height: 42px; padding: 0 12px; border: 1px solid var(--line-strong, rgba(28,24,16,.2)); border-radius: 10px; font: 14px var(--sans); background: #fff; }
  .dbx-share-stop { margin-top: 10px; border: 0; background: none; padding: 0; font: 600 13px var(--sans); color: var(--muted); text-decoration: underline; cursor: pointer; }
  /* profile progress */
  .dbx-li-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; align-self: start; }
  .sg-ring { position: relative; width: 52px; height: 52px; display: inline-grid; place-items: center; }
  .sg-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
  .sg-ring .tr { fill: none; stroke: rgba(28,24,16,.09); stroke-width: 4.5; }
  .sg-ring .fg { fill: none; stroke: currentColor; stroke-width: 4.5; stroke-linecap: round; transition: stroke-dashoffset .8s cubic-bezier(.2,.7,.2,1); }
  .sg-ring b { position: relative; font: 800 13.5px/1 var(--sans); color: var(--ink); letter-spacing: -.02em; }
  .sg-ring b small { font-size: 9.5px; font-weight: 700; margin-left: 1px; }
  .sg-ring .ok { position: relative; inset: auto; width: 22px; height: 22px; transform: none; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
  .sg-ring.low { color: #B4532A; } .sg-ring.mid { color: #C08A2E; } .sg-ring.good { color: #5E7B4F; } .sg-ring.done { color: #2F5D3A; }
  .sg-prog { grid-column: 1 / -1; margin-top: 4px; padding: 16px; border-radius: 14px; background: var(--db-card, #FCFAF5); border: 1px solid var(--db-line, rgba(28,24,16,.1)); }
  .sg-prog-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
  .sg-prog-h b { font: 700 15px/1.3 var(--sans); color: var(--ink); }
  .sg-prog-h span { font-size: 13px; color: var(--muted); }
  .dbx .sg-prog-h b, .dbx .sg-sug b { font-family: var(--sans); }
  .sg-bar { height: 6px; border-radius: 99px; background: rgba(28,24,16,.08); margin: 12px 0 14px; overflow: hidden; }
  .sg-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #C08A2E, #5E7B4F); }
  .sg-sugs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .sg-sugs + .sg-sugs { margin-top: 10px; }
  .sg-sug { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; padding: 12px; border-radius: 12px; background: #fff; border: 1px solid var(--db-line, rgba(28,24,16,.1)); }
  .sg-sug .ic { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: rgba(138,90,55,.1); color: var(--cedar-deep, #6B4326); }
  .sg-sug .ic svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .sg-sug b { display: block; font: 700 14px/1.3 var(--sans); color: var(--ink); }
  .sg-sug .pts { font-size: 11.5px; font-weight: 700; color: #5E7B4F; margin-left: 2px; white-space: nowrap; }
  .content .dbx .sg-sug p, .sg-sug p { margin: 4px 0 10px; font-size: 13px; line-height: 1.45; color: var(--ink-soft); max-width: none; }
  .sg-sugs[hidden] { display: none; }
  .sg-sug-btn { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper, #FAF6EC); font: 600 12.5px/1 var(--sans); text-decoration: none; cursor: pointer; }
  .sg-sug-btn:hover { background: var(--cedar-deep, #6B4326); border-color: var(--cedar-deep, #6B4326); color: #fff; }
  .sg-more { margin-top: 12px; border: 0; background: none; padding: 0; font: 600 13px var(--sans); color: var(--cedar-deep, #6B4326); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
  .field.sg-hl input, .field.sg-hl textarea { box-shadow: 0 0 0 3px rgba(192,138,46,.35); }
  @media (max-width: 900px) { .sg-sugs { grid-template-columns: 1fr; } }
  @media (max-width: 600px) { .dbx-li-side { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; min-width: 0; } .sg-ring { width: 44px; height: 44px; } }
  @media (prefers-reduced-motion: reduce) { .sg-ring .fg { transition: none; } }

  /* email confirmation page */
  .av-card .contact-head { text-align: center; }
  .av-card .pw-icon.ok { background: rgba(74,93,79,.14); color: #34483B; }
  .av-card .av-btn { display: block; width: 100%; text-align: center; text-decoration: none; }
  .av-card .form-msg { margin: 0 0 12px; }
  .av-card .form-foot { text-align: center; }
  .av-card .av-loading { text-align: center; color: var(--muted); margin: 30px 0; }
  .av-card .av-again { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 4px 8px; margin: 14px 0 0; font-size: 14px; }
  .av-card .av-again span { color: var(--muted); }
  @media (max-width: 480px) { .av-card .av-again { flex-direction: column; gap: 6px; } .av-card .av-again span { display: none; } }

  .acct-qr { margin: 12px 0; }
  .acct-qr svg { border-radius: 12px; border: 1px solid var(--line); }
  .acct-codes { font-family: Menlo, Consolas, monospace; font-size: 15px; line-height: 1.8; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin: 10px 0 14px; columns: 2; }
  .acct-steps { margin: 6px 0 0 18px; }
.notme-note{margin:0 0 14px;padding:12px 14px;border-radius:12px;background:rgba(74,93,79,.1);border:1px solid rgba(74,93,79,.35);font-size:14px;line-height:1.5;color:var(--ink,#1C1810)}html.sg-dark .notme-note{background:rgba(124,155,131,.14);color:#F2EBDD}
  /* Free vs Verified comparison (Get verified page) */
  .cmp-wrap { margin: 0 0 48px; border: 1px solid var(--line, rgba(28,24,16,.14)); border-radius: 22px; overflow: hidden; background: var(--paper, #FAF6EC); }
  .cmp { width: 100%; border-collapse: collapse; font-size: 15px; }
  .cmp thead th { padding: 18px 16px 14px; text-align: center; font-family: var(--display, Georgia, serif); font-weight: 500; font-size: 20px; background: var(--paper, #FAF6EC); border-bottom: 1px solid var(--line, rgba(28,24,16,.14)); }
  .cmp thead th:last-child { background: #2E3A2F; color: #F3EEE2; }
  .cmp thead th small { display: block; margin-top: 3px; font-family: var(--sans, inherit); font-size: 12.5px; font-weight: 600; opacity: .8; }
  .cmp tbody th, .cmp tbody td { padding: 12px 16px; border-bottom: 1px solid var(--line, rgba(28,24,16,.08)); vertical-align: middle; }
  .cmp tbody th { text-align: left; font-weight: 500; width: 50%; }
  .cmp tbody td { text-align: center; width: 25%; color: var(--ink-soft, #3A3326); }
  .cmp tbody td:last-child { background: rgba(46,58,47,.06); }
  .cmp tr.cmp-g th { padding: 20px 16px 8px; font-family: var(--display, Georgia, serif); font-size: 18px; font-weight: 500; color: #8A5A37; border-bottom: 0; background: transparent; }
  .cmp .cmp-y svg { width: 20px; height: 20px; color: #3F6B4A; vertical-align: middle; }
  .cmp .cmp-n { color: var(--muted, #8A8070); }
  .cmp tbody:last-child tr:last-child th, .cmp tbody:last-child tr:last-child td { border-bottom: 0; }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  @media (max-width: 640px) {
    .cmp { font-size: 13.5px; }
    .cmp thead th { font-size: 16px; padding: 14px 8px 10px; }
    .cmp tbody th, .cmp tbody td { padding: 10px 8px; }
    .cmp tbody th { width: 46%; }
  }
  html.sg-dark .cmp-wrap, html.sg-dark .cmp thead th:first-child, html.sg-dark .cmp thead th:nth-child(2) { background: #1E1913; }
  /* "Continue with Google" on the sign-in and join forms */
  .g-wrap { margin: 16px 0 4px; }
  .g-btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; box-sizing: border-box; padding: 13px 18px; border-radius: 999px;
    border: 1px solid var(--line-strong, rgba(28,24,16,.28)); background: #fff; color: #1C1810; font: 600 15px/1 var(--sans, inherit); text-decoration: none; }
  .g-btn:hover { background: #F7F3EA; }
  .g-btn:focus-visible { outline: 2px solid var(--ink, #1C1810); outline-offset: 2px; }
  .g-or { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font-size: 13px; color: var(--muted, #6F6552); }
  .g-or::before, .g-or::after { content: ""; flex: 1; height: 1px; background: var(--line, rgba(28,24,16,.14)); }
