/* AllImmigrationLawyers — mobile-first design system. Base: 320px. No build step. */
:root {
  --bg: #f7f8fa;
  --surface: #ffffff;
  --surface-2: #f0f3f6;
  --text: #13233a;
  --text-2: #4a5a70;
  --muted: #536173;
  --border: #dde3ea;
  --brand: #0f3d5e;
  --accent: #0b7a75;
  --accent-ink: #ffffff;
  --accent-soft: #e3f4f2;
  --link: #0b5f8a;
  --ok: #16794a;
  --ok-soft: #e6f5ec;
  --warn: #8a5a00;
  --warn-soft: #fff4dc;
  --err: #b42318;
  --err-soft: #fdecea;
  --info-soft: #e8f1fb;
  --sponsored: #6b4f00;
  --sponsored-soft: #fff7e0;
  --focus: #1d70b8;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow: 0 1px 2px rgba(16, 35, 58, .06), 0 2px 8px rgba(16, 35, 58, .05);
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --container: 1200px;
  --gutter: 16px;
  --topbar-h: 56px;
  --bottomnav-h: 64px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0d1520;
    --surface: #131e2b;
    --surface-2: #1a2736;
    --text: #e8eef5;
    --text-2: #b8c4d2;
    --muted: #93a2b4;
    --border: #2a394b;
    --brand: #9cc8ea;
    --accent: #3cc2b9;
    --accent-ink: #062523;
    --accent-soft: #123331;
    --link: #8cc8f0;
    --ok: #5fd39a;
    --ok-soft: #12301f;
    --warn: #f3c46a;
    --warn-soft: #33270c;
    --err: #ff8a80;
    --err-soft: #3a1714;
    --info-soft: #15283c;
    --sponsored: #f3c46a;
    --sponsored-soft: #2f250c;
    --focus: #8cc8f0;
    --shadow: none;
    color-scheme: dark;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--topbar-h) + 12px); scroll-padding-bottom: calc(var(--bottomnav-h) + 96px); }
@media (min-width: 1024px) { html { scroll-padding-bottom: 24px; } }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--text);
  background: var(--bg);
  min-height: 100dvh;
  padding-bottom: calc(var(--bottomnav-h) + env(safe-area-inset-bottom));
}
img, svg { display: block; max-width: 100%; }
a { color: var(--link); text-underline-offset: 2px; }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .5rem; color: var(--text); }
h1 { font-size: 1.6rem; letter-spacing: -.01em; }
h2 { font-size: 1.25rem; }
h3 { font-size: 1.05rem; }
p { margin: 0 0 .75rem; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
.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; }
.skip { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--surface); padding: 10px 14px; border-radius: var(--radius-sm); }
.skip:focus { top: 8px; }
.ic { width: 22px; height: 22px; flex: none; }
.ic-sm { width: 18px; height: 18px; flex: none; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Top bar ---------- */
.topbar {
  position: sticky; top: 0; z-index: 40;
  background: var(--surface); border-bottom: 1px solid var(--border);
  padding-top: env(safe-area-inset-top);
}
.topbar-inner { display: flex; align-items: center; gap: 8px; height: var(--topbar-h); }
.logo { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--brand); text-decoration: none; font-size: 1.02rem; min-height: 44px; }
.logo-mark { width: 30px; height: 30px; border-radius: 8px; background: var(--brand); color: var(--surface); display: grid; place-items: center; font-size: .8rem; font-weight: 800; }
.logo-text { display: none; }
.topbar-title { font-weight: 650; font-size: 1.02rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.icon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--text); background: transparent; border: 0; position: relative; text-decoration: none; cursor: pointer; }
.icon-btn:hover { background: var(--surface-2); }
.badge { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--err); color: #fff; font-size: .8rem; font-weight: 700; line-height: 18px; text-align: center; }
.desktop-nav { display: none; }
.topbar-spacer { flex: 1; }
.offline-bar { margin: 0; border-radius: 0; text-align: center; }
.select-auto { width: auto; }
.inline { display: inline; }
.mt-0 { margin-top: 0; }
.mt-2 { margin-top: 16px; }

/* ---------- Bottom navigation (mobile) ---------- */
.bottomnav {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  background: var(--surface); border-top: 1px solid var(--border);
  padding-bottom: env(safe-area-inset-bottom);
}
.bottomnav ul { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); max-width: 640px; }
.bottomnav a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-height: var(--bottomnav-h); padding: 6px 2px; color: var(--muted); text-decoration: none; font-size: .82rem; font-weight: 600; position: relative;
}
.bottomnav a[aria-current="page"] { color: var(--accent); }
.bottomnav a[aria-current="page"]::before { content: ""; position: absolute; top: 0; left: 30%; right: 30%; height: 3px; border-radius: 0 0 3px 3px; background: var(--accent); }
.bottomnav .badge { top: 6px; right: calc(50% - 22px); }

/* ---------- Layout blocks ---------- */
main { padding: 16px 0 32px; }
.page-head { margin: 4px 0 16px; }
.page-head .lead, .lead { color: var(--text-2); font-size: 1.05rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .06em; font-size: .82rem; font-weight: 700; color: var(--accent); margin-bottom: 4px; }
.stack > * + * { margin-top: 12px; }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); }
.card + .card { margin-top: 12px; }
.card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.section { margin-top: 24px; }
.grid { display: grid; gap: 12px; }
.row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.between { justify-content: space-between; }
.muted { color: var(--muted); }
.small { font-size: .9rem; }
.hr { border: 0; border-top: 1px solid var(--border); margin: 16px 0; }
.list { list-style: none; margin: 0; padding: 0; }
.list > li { padding: 12px 0; border-bottom: 1px solid var(--border); }
.list > li:last-child { border-bottom: 0; }
.menu-list { list-style: none; margin: 0; padding: 0; }
.menu-list a { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 4px; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--border); font-weight: 550; }
.menu-list li:last-child a { border-bottom: 0; }
.menu-list a::after { content: "›"; margin-left: auto; color: var(--muted); font-size: 1.3rem; }

/* ---------- Hero (full container width — no max-width by design rule) ---------- */
.hero { background: linear-gradient(160deg, #0f3d5e, #0b5f6e); color: #fff; border-radius: var(--radius); padding: 22px 16px; margin-bottom: 20px; }
.hero h1 { color: #fff; font-size: 1.65rem; }
.hero .lead { color: rgba(255, 255, 255, .92); }
.hero .eyebrow { color: #9fe3dc; }
.hero input[type=search] { background: #fff; color: #13233a; border-color: transparent; }
.hero input[type=search]::placeholder { color: #5b6b80; }
.hero .search-box { margin-top: 14px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 10px 18px; border-radius: 10px; border: 1px solid transparent;
  font: inherit; font-weight: 650; text-decoration: none; cursor: pointer; line-height: 1.2;
  background: var(--accent); color: var(--accent-ink);
}
.btn:hover { filter: brightness(1.05); }
.btn-secondary { background: var(--surface); color: var(--text); border-color: var(--border); }
.btn-ghost { background: transparent; color: var(--link); border-color: transparent; padding-left: 8px; padding-right: 8px; }
.btn-danger { background: var(--err); color: #fff; }
.btn-sm { min-height: 44px; padding: 8px 14px; font-size: .95rem; }
.btn-block { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
/* Primary form actions sit at the end of the form (no sticky overlay: it obscured fields, WCAG 2.4.11/2.5.8). */
.sticky-cta { margin-top: 8px; }

/* ---------- Forms ---------- */
.field { margin-bottom: 14px; }
.field label, .label { display: block; font-weight: 600; margin-bottom: 6px; }
.optional { font-weight: 400; color: var(--muted); }
input[type=text], input[type=email], input[type=password], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=time], input[type=datetime-local], select, textarea {
  width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; font-size: 16px; /* 16px prevents iOS zoom */
  color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 10px;
}
textarea { min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--focus); outline: 2px solid color-mix(in srgb, var(--focus) 35%, transparent); outline-offset: 0; }
.hint { color: var(--muted); font-size: .9rem; margin: 6px 0 0; }
.field-error { color: var(--err); font-size: .92rem; font-weight: 600; margin: 6px 0 0; }
.has-error input, .has-error select, .has-error textarea { border-color: var(--err); }
.check { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; flex-wrap: wrap; }
.check input { width: 22px; height: 22px; margin: 2px 0 0; flex: none; accent-color: var(--accent); }
.check label { flex: 1; min-width: 0; }
.check .hint, .check .field-error { flex-basis: 100%; margin-left: 32px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip-check span { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid var(--border); border-radius: 22px; background: var(--surface); cursor: pointer; font-size: .95rem; }
.chip-check input:checked + span { background: var(--accent-soft); border-color: var(--accent); color: var(--text); font-weight: 650; }
.chip-check input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 2px; }
.search-box { display: flex; gap: 8px; }
.search-box input { flex: 1; min-width: 0; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
fieldset { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
legend { font-weight: 650; margin-bottom: 8px; padding: 0; }

/* ---------- Alerts / status ---------- */
.alert { border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 14px; border: 1px solid transparent; }
.alert ul { margin: 6px 0 0; padding-left: 20px; }
.alert-success { background: var(--ok-soft); border-color: color-mix(in srgb, var(--ok) 30%, transparent); }
.alert-error { background: var(--err-soft); border-color: color-mix(in srgb, var(--err) 30%, transparent); }
.alert-info { background: var(--info-soft); }
.alert-warn { background: var(--warn-soft); }
.pill { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-size: .82rem; font-weight: 650; background: var(--surface-2); color: var(--text-2); white-space: nowrap; }
.pill-ok { background: var(--ok-soft); color: var(--ok); }
.pill-warn { background: var(--warn-soft); color: var(--warn); }
.pill-err { background: var(--err-soft); color: var(--err); }
.pill-sponsored { background: var(--sponsored-soft); color: var(--sponsored); border: 1px solid color-mix(in srgb, var(--sponsored) 40%, transparent); }
.pill-demo { background: var(--info-soft); color: var(--link); }
a.pill { min-height: 44px; padding: 8px 14px; font-size: .92rem; text-decoration: none; color: var(--text); border: 1px solid var(--border); background: var(--surface); }
a.pill:hover { border-color: var(--accent); }
summary { min-height: 44px; padding: 10px 0; cursor: pointer; }
.card-title a, .row.between > a { display: inline-flex; align-items: center; min-height: 44px; }
.empty { text-align: center; padding: 28px 16px; color: var(--text-2); }
.empty .ic { width: 40px; height: 40px; margin: 0 auto 8px; color: var(--muted); }

/* ---------- Lawyer cards ---------- */
.lawyer-card { display: grid; grid-template-columns: 56px 1fr; gap: 12px; }
.avatar { width: 56px; height: 56px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-weight: 800; font-size: 1.1rem; }
.avatar-lg { width: 84px; height: 84px; font-size: 1.6rem; }
img.avatar { object-fit: cover; background: var(--surface-2); }
/* ---------- Feed & Q&A ---------- */
.btn.is-on { background: var(--accent-soft); color: var(--text); }
.post-body p:last-child { margin-bottom: 0; }
.list > li.reply { padding-left: 20px; border-left: 3px solid var(--border); }
.comment { border-left: 3px solid var(--border); padding-left: 10px; }
.vote { gap: 4px; }

/* ---------- Messenger ---------- */
.chat { display: flex; flex-direction: column; gap: 10px; max-height: calc(100dvh - var(--topbar-h) - var(--bottomnav-h) - 260px); min-height: 240px; overflow-y: auto; overscroll-behavior: contain; }
.msg { max-width: 85%; padding: 8px 12px; border-radius: 14px; background: var(--surface-2); }
.msg-mine { align-self: flex-end; background: var(--accent-soft); border-bottom-right-radius: 4px; }
.msg-theirs { align-self: flex-start; border-bottom-left-radius: 4px; }
.msg-body { margin: 0; white-space: normal; overflow-wrap: anywhere; }
.msg-meta, .msg-sender { margin: 2px 0 0; }
.msg-img { max-width: 100%; height: auto; border-radius: 10px; margin-top: 6px; }
.msg-actions summary { min-height: 32px; padding: 4px 0; }
.composer textarea { min-height: 64px; }
.file-label { cursor: pointer; }
.conv-row { color: var(--text); text-decoration: none; min-height: 56px; flex-wrap: nowrap; }
@media (min-width: 1024px) { .chat { max-height: calc(100dvh - var(--topbar-h) - 300px); } }
.member-row { flex-wrap: nowrap; align-items: flex-start; gap: 12px; min-width: 0; }
.member-main { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.member-main > a { display: inline-flex; align-items: center; min-height: 44px; }
.stat strong .ic { margin: 4px 0; }
input[type=file] { width: 100%; min-height: 48px; padding: 10px 0; font: inherit; font-size: 16px; }
.lawyer-card h3 { margin: 0; font-size: 1.08rem; }
.lawyer-card h3 a { color: var(--text); text-decoration: none; }
.lawyer-card h3 a::after { content: ""; position: absolute; inset: 0; }
.lawyer-card { position: relative; }
.lawyer-card .actions, .lawyer-card form { position: relative; z-index: 1; }
.meta-line { display: flex; flex-wrap: wrap; gap: 6px 12px; color: var(--text-2); font-size: .92rem; margin-top: 4px; }
.meta-line span { display: inline-flex; align-items: center; gap: 4px; }
.sponsored-block { border: 1px dashed color-mix(in srgb, var(--sponsored) 50%, transparent); background: var(--sponsored-soft); border-radius: var(--radius); padding: 12px; margin-bottom: 16px; }
.ranking-note { font-size: .88rem; color: var(--muted); }

/* ---------- Filters (details drawer, works without JS) ---------- */
.filters summary { list-style: none; cursor: pointer; }
.filters summary::-webkit-details-marker { display: none; }
.filters[open] .filters-body { margin-top: 12px; }
.applied { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.applied a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 4px 12px; border-radius: 18px; background: var(--accent-soft); color: var(--text); text-decoration: none; font-size: .9rem; }

/* ---------- Tabs / segmented ---------- */
.tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
.tabs a { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; color: var(--text-2); text-decoration: none; font-weight: 600; border-bottom: 3px solid transparent; }
.tabs a[aria-current="page"] { color: var(--accent); border-bottom-color: var(--accent); }

/* ---------- Tables → cards on mobile ---------- */
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.table td > a:first-child { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 767px) {
  .table thead { display: none; }
  .table, .table tbody, .table tr, .table td { display: block; width: 100%; }
  .table tr { border: 1px solid var(--border); border-radius: var(--radius-sm); margin-bottom: 10px; padding: 6px 10px; background: var(--surface); }
  .table td { border: 0; padding: 6px 0; }
  .table td[data-label]::before { content: attr(data-label); display: block; font-size: .82rem; color: var(--muted); font-weight: 600; }
}

.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; padding: 0; margin: 0 0 10px; font-size: .9rem; color: var(--muted); }
.breadcrumbs li + li::before { content: "/"; margin-right: 4px; }
.pagination { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 16px; }
.kv { display: grid; grid-template-columns: 1fr; gap: 2px 12px; margin: 0; }
.kv dt { font-weight: 650; color: var(--text-2); font-size: .9rem; }
.kv dd { margin: 0 0 8px; }
.bar-chart { display: flex; align-items: flex-end; gap: 2px; height: 120px; border-bottom: 1px solid var(--border); }
.bar-chart span { flex: 1; background: var(--accent); border-radius: 2px 2px 0 0; min-height: 1px; }
.stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.stat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; }
.stat strong { display: block; font-size: 1.5rem; }
.code-box { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: var(--surface-2); padding: 10px 12px; border-radius: var(--radius-sm); word-break: break-all; font-size: .95rem; }
.recovery { columns: 2; font-family: ui-monospace, Menlo, Consolas, monospace; padding-left: 18px; }
.disclaimer { font-size: .9rem; color: var(--text-2); background: var(--surface-2); border-radius: var(--radius-sm); padding: 12px 14px; }
footer.site { border-top: 1px solid var(--border); padding: 20px 0 28px; color: var(--muted); font-size: .9rem; }
footer.site a { color: var(--text-2); }
footer.site ul { list-style: none; padding: 0; margin: 8px 0; display: flex; flex-wrap: wrap; gap: 4px 16px; }
footer.site li a { display: inline-block; padding: 8px 0; }

/* ---------- Tablet / desktop adaptation ---------- */
@media (min-width: 600px) {
  .logo-text { display: inline; }
  .stat-grid { grid-template-columns: repeat(4, 1fr); }
  .kv { grid-template-columns: 180px 1fr; }
  .grid-2 { grid-template-columns: 1fr 1fr; }
  h1 { font-size: 1.85rem; }
  .hero { padding: 32px 28px; }
  .hero h1 { font-size: 2.1rem; }
}
@media (min-width: 1024px) {
  body { padding-bottom: 0; }
  .bottomnav { display: none; }
  .desktop-nav { display: flex; gap: 4px; margin-left: 16px; }
  .desktop-nav a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 12px; border-radius: 8px; color: var(--text-2); text-decoration: none; font-weight: 600; position: relative; }
  .desktop-nav a[aria-current="page"] { color: var(--accent); background: var(--accent-soft); }
  .desktop-nav .badge { top: 2px; right: -2px; }
  .topbar-title { display: none; }
  .topbar-spacer { flex: 1; }
  .layout-2 { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: start; }
  .layout-main-side { display: grid; grid-template-columns: 1fr 360px; gap: 24px; align-items: start; }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .sticky-side { position: sticky; top: calc(var(--topbar-h) + 16px); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .topbar, .bottomnav, .actions, footer.site { display: none; }
}
/* Referral progress (M08) */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: step; }
.steps li { counter-increment: step; display: flex; align-items: center; gap: 8px; color: var(--muted); }
.steps li::before { content: counter(step); display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--border); font-size: .8rem; font-weight: 700; flex: none; }
.steps li.done { color: var(--text-2); }
.steps li.done::before { content: '\2713'; background: var(--ok-soft); border-color: var(--ok); color: var(--ok); }
.steps li[aria-current='step'] { color: var(--text); font-weight: 650; }
.steps li[aria-current='step']::before { border-color: var(--accent); color: var(--accent); }
progress { width: 100%; height: 8px; accent-color: var(--accent); }

/* ===== Public site redesign (header, home, footer). Desktop sizes: [N] = N px of the 1024-wide approved mockup, scaled with the viewport. ===== */
@font-face { font-family: "Source Sans 3"; src: url("/assets/fonts/sourcesans.woff2") format("woff2"); font-weight: 200 900; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("/assets/fonts/sourceserif.woff2") format("woff2"); font-weight: 200 900; font-display: swap; }
:root { --d-ink: #08183a; --d-navy: #14243c; --d-teal: #087c78; --d-btn: #004c4d; --d-gold: #a9792f; --d-cream: #fcfcfc; --d-slate: #475569; --d-line: #e4e8ee; --d-panel: #f4f8f8; --d-serif: "Source Serif 4", Georgia, "Times New Roman", serif; --d-sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.ic-xs { width: 12px; height: 12px; flex: none; }
.ic-lg { width: 32px; height: 32px; flex: none; }
.site-util, .site-head, .mainnav, .head-cta { display: none; }
body.guest, body.bare, footer.site, .site-util, .site-head { font-family: var(--d-sans); }

/* --- mobile / tablet (below 1024px): stacked home --- */
body.bare { background: var(--d-cream); color: var(--d-ink); }
body.bare main { padding: 0; }
.hx { position: relative; background: var(--d-cream); overflow: hidden; }
.hx-bg { display: block; width: 100%; height: 200px; object-fit: cover; object-position: 80% 50%; }
.hx-in { padding-top: 16px; padding-bottom: 20px; }
.hx-eyebrow { color: var(--d-gold); font-weight: 700; font-size: .78rem; letter-spacing: .08em; margin: 0 0 6px; }
.hx h1 { font-family: var(--d-serif); font-weight: 700; color: var(--d-ink); font-size: 1.85rem; line-height: 1.12; letter-spacing: -.01em; margin: 0 0 10px; }
.hx-lead { color: var(--d-ink); font-size: 1rem; margin: 0 0 14px; }
.hx-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.hx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 8px; font-weight: 600; font-size: .95rem; text-decoration: none; border: 1.5px solid var(--d-btn); font-family: var(--d-sans); }
.hx-btn-fill { background: var(--d-btn); color: #fff; }
.hx-btn-out { background: #e8ecf0; color: var(--d-ink); border-color: #e8ecf0; }
.hx-search { display: grid; gap: 8px; background: #fff; border-radius: 12px; padding: 12px; box-shadow: 0 6px 24px rgba(20, 36, 58, .14); }
.hx-field { display: flex; align-items: center; gap: 10px; border: 1px solid var(--d-line); border-radius: 8px; padding: 6px 10px; min-height: 52px; color: var(--d-ink); }
.hx-field > div { flex: 1; min-width: 0; }
.hx-field label { display: block; font-weight: 700; font-size: .8rem; color: var(--d-ink); }
.hx-field select { width: 100%; border: 0; background: transparent; padding: 2px 0; font: inherit; font-size: .9rem; color: #5b6b80; min-height: 28px; }
.hx-go { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border: 0; border-radius: 8px; background: var(--d-btn); color: #fff; font-weight: 600; font-size: 1rem; cursor: pointer; font-family: var(--d-sans); }
.hx-pop { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; margin-top: 12px; font-size: .85rem; font-weight: 700; color: var(--d-ink); }
.hx-pop a { border: 1px solid #dfe4ea; border-radius: 99px; padding: 8px 12px; color: var(--d-ink); background: #fff; font-weight: 500; text-decoration: none; min-height: 36px; display: inline-flex; align-items: center; }
.hx-badge { display: none; }
.hx-stats { background: #fff; border-bottom: 1px solid var(--d-line); box-shadow: 0 2px 10px rgba(20, 36, 58, .04); }
.hx-stats ul { list-style: none; margin: 0 auto; padding-top: 10px; padding-bottom: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 8px; }
.hx-stats li { display: flex; align-items: center; gap: 10px; color: var(--d-ink); }
.hx-stats li .ic { width: 28px; height: 28px; }
.hx-stats strong { display: block; color: var(--d-ink); font-size: .95rem; line-height: 1.2; }
.hx-stats span { display: block; color: var(--d-slate); font-size: .82rem; }
.hx-sec { padding-top: 24px; padding-bottom: 4px; }
.wrap { width: 100%; max-width: var(--container); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.hx-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.hx-sec h2 { font-family: var(--d-serif); font-weight: 700; color: var(--d-ink); font-size: 1.45rem; margin: 0 0 4px; display: flex; align-items: center; gap: 8px; }
.hx-sec h2 .ic { color: var(--d-ink); }
.hx-sec p { color: var(--d-ink); }
.hx-more { color: var(--d-ink); font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: .9rem; }
.pa-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pa-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--d-line); border-radius: 10px; overflow: hidden; text-decoration: none; color: var(--d-ink); box-shadow: 0 2px 8px rgba(20, 36, 58, .07); }
.pa-card img { width: 100%; height: 96px; object-fit: cover; }
.pa-body { display: flex; gap: 8px; padding: 10px 10px 12px; flex: 1; position: relative; }
.pa-ic { color: var(--d-navy); flex: none; }
.pa-ic .ic { width: 22px; height: 22px; }
.pa-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pa-txt strong { font-size: .9rem; line-height: 1.2; font-weight: 700; }
.pa-desc { color: var(--d-slate); font-size: .8rem; line-height: 1.3; }
.pa-arrow { position: absolute; right: 8px; bottom: 6px; color: var(--d-ink); }
.pa-help { grid-column: 1 / -1; background: #ecf8f4; border-radius: 10px; padding: 14px; display: flex; flex-direction: column; gap: 6px; color: var(--d-ink); }
.pa-help .ic-lg { color: var(--d-ink); }
.pa-help p { margin: 0; font-size: .9rem; }
.hx-two { display: grid; gap: 14px; }
.hx-panel { background: #fff; border: 1px solid var(--d-line); border-radius: 14px; padding: 14px; box-shadow: 0 2px 10px rgba(20, 36, 58, .06); }
.hx-states-in { display: grid; gap: 10px; margin: 8px 0; }
.hx-states-in img { width: 100%; max-width: 360px; height: auto; margin: 0 auto; }
.hx-states-in ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.hx-states-in li { display: flex; align-items: center; gap: 6px; color: var(--d-teal); }
.hx-states-in li a { color: var(--d-ink); font-weight: 600; text-decoration: none; padding: 8px 0; display: inline-block; }
.hx-consult { display: grid; gap: 12px; overflow: hidden; padding: 0; }
.hx-consult img { width: 100%; height: 170px; object-fit: cover; }
.hx-consult > div { padding: 0 14px 14px; }
.hx-checks { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 4px; }
.hx-checks li { display: flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 500; }
.hx-checks .ic-sm { color: #1c8a3c; }
.gd-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.gd { display: grid; gap: 0; text-decoration: none; color: var(--d-ink); background: #fff; border: 1px solid var(--d-line); border-radius: 8px; overflow: hidden; }
.gd-img { position: relative; display: block; }
.gd-img img { width: 100%; height: 130px; object-fit: cover; }
.gd-img em { position: absolute; left: 8px; bottom: -9px; background: #fff; color: var(--d-teal); font-style: normal; font-weight: 700; font-size: .78rem; padding: 2px 10px; border-radius: 6px; box-shadow: 0 1px 4px rgba(0, 0, 0, .15); }
.gd strong { font-size: .92rem; line-height: 1.25; padding: 14px 10px 10px; }
.hx-attys { display: grid; gap: 12px; background: linear-gradient(135deg, #f1f6fb, #f8fafc); }
.hx-attys img { width: 100%; height: auto; border-radius: 8px; }
.hx-how, .hx-faq { background: var(--d-panel); }
.hx-how ol { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 12px; }
.hx-how li { display: flex; gap: 12px; align-items: flex-start; }
.hx-how li strong { display: flex; align-items: center; gap: 6px; color: var(--d-ink); }
.hx-how li div span { display: block; color: var(--d-ink); font-size: .9rem; }
.step-n { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--d-navy); color: #fff; font-weight: 700; display: grid; place-items: center; font-size: .9rem; }
.hx-faq { background: #fff; }
.hx-faq details { border-top: 1px solid var(--d-line); }
.hx-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; padding: 12px 0; font-weight: 600; font-size: .95rem; color: var(--d-ink); min-height: 44px; }
.hx-faq summary::-webkit-details-marker { display: none; }
.hx-faq summary .ic-sm { color: var(--d-ink); transition: transform .15s; }
.hx-faq details[open] summary .ic-sm { transform: rotate(180deg); }
.hx-faq p { margin: 0 0 12px; font-size: .9rem; }
.hx-sec:last-of-type { padding-bottom: 28px; }

/* footer (all pages) */
footer.site { background: #081c30; color: #fff; border-top: 0; padding: 28px 0 24px; }
footer.site a { color: #fff; text-decoration: none; }
footer.site a:hover { text-decoration: underline; }
.foot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.foot-brand { grid-column: 1 / -1; }
.foot-brand p { color: #fff; font-size: .9rem; margin-top: 10px; }
.foot-col h2 { color: #fff; font-size: 1rem; font-family: var(--d-sans); font-weight: 700; margin: 0 0 8px; }
footer.site .foot-col ul { display: block; margin: 0; padding: 0; list-style: none; }
footer.site .foot-col li a { display: inline-block; padding: 7px 0; font-size: .92rem; }
footer.site .brand { display: flex; align-items: center; gap: 10px; }
footer.site .brand-name { color: #fff; }
footer.site .brand-com { color: #fff; }
footer.site .brand-sub { color: #fff; }
.foot-bottom { border-top: 1px solid rgba(255, 255, 255, .14); margin-top: 18px; padding-top: 14px; font-size: .82rem; color: #fff; display: grid; gap: 4px; }
.foot-bottom p { margin: 0; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name { font-family: var(--d-serif); font-weight: 700; color: var(--d-ink); font-size: 1.3rem; letter-spacing: -.01em; }
.brand-com { color: var(--d-teal); }
.brand-sub { font-size: .62rem; letter-spacing: .1em; color: var(--d-ink); font-weight: 700; margin-top: 3px; }
.firm-list { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 8px; }
.firm-list li { display: flex; justify-content: space-between; gap: 12px; align-items: center; }


@media (prefers-color-scheme: dark) {
  body.guest { --bg: #fcfcfc; --surface: #ffffff; --surface-2: #f0f3f6; --text: #13233a; --text-2: #4a5a70; --muted: #536173; --border: #dde3ea; --brand: #0f3d5e; --accent: #0b7a75; --accent-ink: #ffffff; --accent-soft: #e3f4f2; --link: #0b5f8a; --ok: #16794a; --ok-soft: #e6f5ec; --warn: #8a5a00; --warn-soft: #fff4dc; --err: #b42318; --err-soft: #fdecea; --info-soft: #e8f1fb; --sponsored: #6b4f00; --sponsored-soft: #fff7e0; --focus: #1d70b8; --shadow: 0 1px 2px rgba(16, 35, 58, .06), 0 2px 8px rgba(16, 35, 58, .05); color-scheme: light; }
}

@media (min-width: 640px) {
  .pa-grid { grid-template-columns: repeat(3, 1fr); }
  .pa-help { grid-column: auto; }
  .hx-stats ul { grid-template-columns: repeat(5, 1fr); }
  .gd-grid { grid-template-columns: repeat(3, 1fr); }
  .hx-bg { height: 260px; }
  .foot-grid { grid-template-columns: repeat(3, 1fr); }
  .foot-brand { grid-column: 1 / -1; }
}

/* --- desktop (1024px and up): pixel-scaled to the approved mockup --- */
@media (min-width: 1024px) {
  :root { --u: clamp(.94px, calc((100vw - 16px) / 1024), 1.5px); }
  body.guest .topbar { display: none; }
  .site-util .container, .site-head .container, body.bare main .container, footer.site .container { max-width: calc(1024 * var(--u)); padding-left: calc(28 * var(--u)); padding-right: calc(24 * var(--u)); }
  .site-util { display: block; background: var(--d-navy); color: #fff; }
  .site-util-in { display: flex; justify-content: space-between; align-items: center; height: calc(30 * var(--u)); font-size: calc(10.4 * var(--u)); font-weight: 500; }
  .site-util-tag, .site-util-links a { display: inline-flex; align-items: center; gap: calc(7 * var(--u)); color: #fff; text-decoration: none; }
  .site-util-tag .ic-sm, .site-util-links .ic-sm { width: calc(14 * var(--u)); height: calc(14 * var(--u)); }
  .site-util-links { display: flex; gap: calc(30 * var(--u)); align-items: center; }
  .site-util-links a:first-child .ic-sm { color: #e2b04a; }
  .site-util .lang.on { font-weight: 600; }
  .flag-es { display: inline-block; width: calc(20 * var(--u)); height: calc(13 * var(--u)); margin-left: calc(2 * var(--u)); border-radius: 2px; background: linear-gradient(#c60b1e 0 25%, #ffc400 25% 75%, #c60b1e 75%); }
  .site-head { display: block; background: #fdfdfd; box-shadow: 0 1px 0 var(--d-line); position: sticky; top: 0; z-index: 40; }
  .site-head-in { display: flex; align-items: center; height: calc(55 * var(--u)); }
  .site-head .brand { gap: calc(10 * var(--u)); }
  .site-head .brand img { width: calc(46 * var(--u)); height: auto; }
  .site-head .brand-name { font-size: calc(19 * var(--u)); letter-spacing: -.005em; }
  .site-head .brand-sub { font-size: calc(7.9 * var(--u)); letter-spacing: .09em; margin-top: calc(3 * var(--u)); white-space: nowrap; }
  .mainnav { display: flex; align-items: center; gap: calc(18 * var(--u)); margin-left: calc(48 * var(--u)); flex: 1; }
  .mainnav a { color: var(--d-ink); font-weight: 600; font-size: calc(10.9 * var(--u)); text-decoration: none; display: inline-flex; align-items: center; gap: calc(3 * var(--u)); white-space: nowrap; padding: calc(6 * var(--u)) 0; }
  .mainnav a:hover { color: var(--d-teal); }
  .mainnav .ic-xs { width: calc(9 * var(--u)); height: calc(9 * var(--u)); stroke-width: 3; }
  .has-menu { position: relative; }
  .has-menu .menu { display: none; position: absolute; top: 100%; left: calc(-8 * var(--u)); min-width: calc(200 * var(--u)); background: #fff; border: 1px solid var(--d-line); border-radius: 8px; box-shadow: 0 10px 30px rgba(20, 36, 58, .14); padding: calc(6 * var(--u)); z-index: 50; }
  .has-menu:hover .menu, .has-menu:focus-within .menu { display: block; }
  .has-menu .menu a { display: block; padding: calc(8 * var(--u)) calc(10 * var(--u)); font-weight: 600; font-size: calc(10.9 * var(--u)); border-radius: 6px; }
  .has-menu .menu a:hover { background: #eef5f4; }
  .head-cta { display: flex; gap: calc(7 * var(--u)); align-items: center; }
  .btn-out, .btn-fill { display: inline-flex; align-items: center; justify-content: center; gap: calc(6 * var(--u)); height: calc(29 * var(--u)); padding: 0 calc(14 * var(--u)); border-radius: 6px; font-weight: 600; font-size: calc(12 * var(--u)); text-decoration: none; border: 1.5px solid var(--d-btn); white-space: nowrap; }
  .btn-out .ic-sm { width: calc(15 * var(--u)); height: calc(15 * var(--u)); }
  .btn-out { color: var(--d-btn); background: #fff; }
  .btn-fill { color: #fff; background: var(--d-btn); min-width: calc(78 * var(--u)); }

  body.bare main { line-height: 1.2; overflow-x: clip; }
  .hx { height: calc(343 * var(--u)); background: #fcfcfd; }
  .hx-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
  .hx-in { position: relative; z-index: 2; height: 100%; width: calc(1024 * var(--u)); max-width: 100%; margin: 0 auto; padding: 0; }
  .hx-copy { display: contents; }
  .hx-eyebrow { position: absolute; left: calc(26 * var(--u)); top: calc(22 * var(--u)); display: flex; align-items: center; gap: calc(8 * var(--u)); height: calc(18 * var(--u)); font-size: calc(13.7 * var(--u)); letter-spacing: .08em; margin: 0; font-weight: 600; white-space: nowrap; }
  .hx-eyebrow::after { content: ""; width: calc(58 * var(--u)); height: 1px; background: var(--d-gold); }
  .hx h1 { position: absolute; left: calc(26 * var(--u)); top: calc(50 * var(--u)); width: calc(470 * var(--u)); margin: 0; font-size: calc(40 * var(--u)); font-weight: 800; line-height: calc(38 * var(--u)); letter-spacing: -.005em; }
  html[lang="en-US"] .hx-lead, html[lang="en-US"] .hx-two .hx-panel p, html[lang="en-US"] .hx-how li div span { white-space: nowrap; }
  .hx-lead { position: absolute; left: calc(26 * var(--u)); top: calc(134 * var(--u)); width: calc(430 * var(--u)); margin: 0; font-size: calc(15.5 * var(--u)); line-height: calc(18.2 * var(--u)); font-weight: 400; }
  .hx-tabs { position: absolute; left: calc(26 * var(--u)); top: calc(203 * var(--u)); gap: calc(5 * var(--u)); margin: 0; }
  .hx-btn { white-space: nowrap; height: calc(31 * var(--u)); min-height: 0; padding: 0 calc(6 * var(--u)); font-size: calc(12.5 * var(--u)); border-radius: 8px 8px 0 0; gap: calc(8 * var(--u)); width: calc(135 * var(--u)); }
  .hx-btn .ic-sm { width: calc(16 * var(--u)); height: calc(16 * var(--u)); }
  .hx-btn-out { background: #e9edf1; border-color: #e9edf1; color: var(--d-ink); }
  .hx-search { position: absolute; left: calc(26 * var(--u)); top: calc(236 * var(--u)); display: flex; align-items: center; gap: calc(9 * var(--u)); width: calc(607 * var(--u)); height: calc(56 * var(--u)); padding: calc(9 * var(--u)) calc(10 * var(--u)); border-radius: 0 12px 12px 12px; box-shadow: 0 6px 22px rgba(20, 36, 58, .14); }
  .hx-field { flex: none; width: calc(192 * var(--u)); border: 1px solid var(--d-line); border-radius: 8px; padding: 0 calc(10 * var(--u)); height: calc(38 * var(--u)); min-height: 0; gap: calc(8 * var(--u)); background: #fff; }
  .hx-field + .hx-field { width: calc(230 * var(--u)); }
  .hx-field .ic { width: calc(20 * var(--u)); height: calc(20 * var(--u)); color: var(--d-ink); }
  .hx-field label { font-size: calc(12 * var(--u)); line-height: 1.1; }
  .hx-field select { font-size: calc(10.5 * var(--u)); min-height: 0; padding: 0; line-height: 1.1; height: calc(15 * var(--u)); }
  .hx-go { flex: none; margin-left: auto; width: calc(153 * var(--u)); height: calc(32 * var(--u)); min-height: 0; font-size: calc(12.5 * var(--u)); border-radius: 8px; }
  .hx-go .ic-sm { width: calc(16 * var(--u)); height: calc(16 * var(--u)); }
  .hx-pop { position: absolute; left: calc(26 * var(--u)); top: calc(301 * var(--u)); margin: 0; font-size: calc(11.5 * var(--u)); gap: calc(8 * var(--u)); flex-wrap: nowrap; }
  .hx-pop > span { margin-right: calc(4 * var(--u)); font-weight: 700; white-space: nowrap; }
  .hx-pop a { padding: 0 calc(10 * var(--u)); height: calc(21 * var(--u)); min-height: 0; border-radius: 99px; font-size: calc(9.8 * var(--u)); white-space: nowrap; font-weight: 500; }
  .hx-badge { display: flex; align-items: center; gap: calc(9 * var(--u)); position: absolute; left: calc(815 * var(--u)); top: calc(254 * var(--u)); width: calc(186 * var(--u)); height: calc(62 * var(--u)); background: #fff; border-radius: 12px; padding: 0 calc(6 * var(--u)) 0 calc(12 * var(--u)); box-shadow: 0 6px 20px rgba(20, 36, 58, .2); color: #b57c1a; z-index: 3; }
  .hx-badge .ic-lg { width: calc(34 * var(--u)); height: calc(34 * var(--u)); flex: none; }
  .hx-badge strong { display: block; color: var(--d-ink); font-family: var(--d-serif); font-size: calc(12.4 * var(--u)); line-height: 1.12; }
  .hx-badge span { font-size: calc(10.5 * var(--u)); color: var(--d-slate); white-space: nowrap; }
  .hx-stats { margin-top: calc(1 * var(--u)); }
  .hx-stats ul { gap: 0; width: calc(1024 * var(--u)); max-width: 100%; margin: 0 auto; padding: 0; height: calc(59 * var(--u)); display: grid; grid-template-columns: calc(205 * var(--u)) calc(205 * var(--u)) calc(207 * var(--u)) calc(205 * var(--u)) 1fr; align-items: center; }
  .hx-stats li { white-space: nowrap; gap: calc(9 * var(--u)); justify-content: flex-start; height: calc(36 * var(--u)); padding-left: calc(12 * var(--u)); }
  .hx-stats li:first-child { padding-left: calc(26 * var(--u)); }
  .hx-stats li + li { border-left: 1px solid var(--d-line); }
  .hx-stats li .ic { width: calc(30 * var(--u)); height: calc(30 * var(--u)); color: var(--d-navy); }
  .hx-stats strong { font-size: calc(12 * var(--u)); font-weight: 700; }
  .hx-stats span { font-size: calc(11.2 * var(--u)); line-height: 1.2; }
  .hx-sec { padding: 0; }
  .hx-sec.pa { height: calc(358 * var(--u)); position: relative; padding: calc(3 * var(--u)) 0 0 calc(28 * var(--u)); width: calc(1024 * var(--u)); max-width: 100%; margin: 0 auto; }
  .hx-sec.pa .hx-head { position: static; display: block; margin: 0; height: calc(45 * var(--u)); }
  .hx-sec h2 { font-size: calc(22.5 * var(--u)); line-height: 1.2; margin: 0; letter-spacing: -.005em; }
  .hx-sec p { font-size: calc(12.5 * var(--u)); margin: 0; line-height: 1.25; }
  .hx-more { font-size: calc(12.4 * var(--u)); min-height: 0; gap: calc(6 * var(--u)); }
  .hx-more .ic-sm { width: calc(16 * var(--u)); height: calc(16 * var(--u)); }
  .hx-sec.pa .hx-more { position: absolute; right: calc(26 * var(--u)); top: calc(20 * var(--u)); }
  .pa-grid { grid-template-columns: repeat(5, calc(185 * var(--u))); gap: calc(12 * var(--u)) calc(11.2 * var(--u)); margin-top: calc(13 * var(--u)); }
  .pa-card { height: calc(138 * var(--u)); border-radius: 8px; }
  .pa-card img { height: calc(59 * var(--u)); flex: none; object-fit: fill; }
  .pa-body { padding: calc(11 * var(--u)) calc(4 * var(--u)) 0 calc(12 * var(--u)); gap: calc(15 * var(--u)); }
  .pa-ic .ic { width: calc(26 * var(--u)); height: calc(26 * var(--u)); }
  .pa-txt { gap: calc(4 * var(--u)); padding-top: calc(1 * var(--u)); }
  .pa-txt strong { font-size: calc(12.7 * var(--u)); line-height: 1.07; }
  .pa-desc { font-size: calc(10.1 * var(--u)); line-height: 1.22; }
  .pa-arrow .ic-sm { width: calc(11 * var(--u)); height: calc(11 * var(--u)); }
  .pa-arrow { right: calc(8 * var(--u)); bottom: calc(8 * var(--u)); }
  .pa-card:nth-child(n+6) { height: calc(133 * var(--u)); }
  .pa-card:nth-child(n+6) img { height: calc(54 * var(--u)); }
  .pa-help { grid-column: auto; height: calc(133 * var(--u)); padding: calc(14 * var(--u)) calc(13 * var(--u)); display: grid; grid-template-columns: calc(34 * var(--u)) 1fr; align-content: start; gap: calc(4 * var(--u)) 0; background: #ecf8f4; }
  .pa-help strong { font-size: calc(13.5 * var(--u)); line-height: 1.12; align-self: center; }
  .pa-help p, .pa-help .hx-btn { grid-column: 1 / -1; }
  .pa-help p { font-size: calc(11.5 * var(--u)); line-height: 1.22; margin: calc(3 * var(--u)) 0 calc(6 * var(--u)); }
  .pa-help .ic-lg { width: calc(27 * var(--u)); height: calc(27 * var(--u)); }
  .pa-help .hx-btn { height: calc(29 * var(--u)); border-radius: 6px; width: calc(128 * var(--u)); padding: 0; min-width: 0; }
  .hx-two { width: calc(1024 * var(--u)); max-width: 100%; margin: 0 auto; padding: 0 0 0 calc(28 * var(--u)); display: grid; align-items: start; }
  .hx-two.s1 { grid-template-columns: calc(472 * var(--u)) calc(489 * var(--u)); gap: calc(13 * var(--u)); height: calc(205 * var(--u)); }
  .hx-two.s2 { grid-template-columns: calc(545 * var(--u)) calc(419 * var(--u)); gap: calc(10 * var(--u)); height: calc(178 * var(--u)); margin-top: calc(18 * var(--u)); }
  .hx-two.s3 { grid-template-columns: calc(543 * var(--u)) calc(417 * var(--u)); gap: calc(14 * var(--u)); height: calc(143 * var(--u)); margin-top: calc(14 * var(--u)); }
  .hx-panel { position: relative; border-radius: 14px; padding: 0; border: 0; box-shadow: 0 2px 14px rgba(20, 36, 58, .1); }
  .hx-panel h2, .hx-panel p, .hx-panel ul, .hx-panel .hx-more, .hx-panel ol { position: absolute; }
  .hx-states { height: calc(207 * var(--u)); }
  .hx-states h2 { left: calc(5 * var(--u)); top: calc(13 * var(--u)); font-size: calc(22.7 * var(--u)); white-space: nowrap; }
  .hx-states p { left: calc(5 * var(--u)); top: calc(44 * var(--u)); width: calc(340 * var(--u)); line-height: calc(14 * var(--u)); }
  .hx-states-in { display: block; margin: 0; }
  .hx-states-in img { position: absolute; left: calc(12 * var(--u)); top: calc(75 * var(--u)); width: calc(234 * var(--u)); height: calc(129 * var(--u)); max-width: none; object-fit: fill; margin: 0; }
  .hx-states-in ul { left: calc(284 * var(--u)); top: calc(82 * var(--u)); gap: 0; display: block; }
  .hx-states-in li { height: calc(19.2 * var(--u)); gap: calc(6 * var(--u)); color: var(--d-teal); }
  .hx-states-in li .ic-sm { width: calc(12 * var(--u)); height: calc(12 * var(--u)); }
  .hx-states-in li a { font-size: calc(10.5 * var(--u)); padding: 0; font-weight: 500; color: var(--d-ink); }
  .hx-states .hx-more { left: calc(282 * var(--u)); top: calc(175 * var(--u)); }
  .hx-consult { height: calc(203 * var(--u)); margin-top: calc(2 * var(--u)); overflow: hidden; }
  .hx-consult img { position: absolute; left: 0; top: 0; width: calc(227 * var(--u)); height: 100%; object-fit: fill; }
  .hx-consult > div { position: static; padding: 0; }
  .hx-consult h2 { left: calc(246 * var(--u)); top: calc(28 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(21 * var(--u)); width: calc(250 * var(--u)); }
  .hx-consult p { left: calc(246 * var(--u)); top: calc(76 * var(--u)); width: calc(205 * var(--u)); font-size: calc(11.6 * var(--u)); line-height: calc(12.6 * var(--u)); }
  .hx-consult .hx-btn { position: absolute; left: calc(246 * var(--u)); top: calc(112 * var(--u)); height: calc(28 * var(--u)); border-radius: 8px; width: calc(199 * var(--u)); padding: 0; font-size: calc(12 * var(--u)); }
  .hx-consult .hx-checks { left: calc(246 * var(--u)); top: calc(147 * var(--u)); margin: 0; gap: 0; }
  .hx-checks li { font-size: calc(11.1 * var(--u)); gap: calc(7 * var(--u)); height: calc(15.6 * var(--u)); }
  .hx-checks .ic-sm { width: calc(13 * var(--u)); height: calc(13 * var(--u)); }
  .hx-guides { background: transparent; box-shadow: none; height: calc(178 * var(--u)); border: 0; }
  .hx-guides .hx-head { display: block; margin: 0; }
  .hx-guides h2 { left: calc(49 * var(--u)); top: calc(16 * var(--u)); font-size: calc(18.3 * var(--u)); display: block; white-space: nowrap; }
  .hx-guides h2 .ic { position: absolute; left: calc(-40 * var(--u)); top: calc(-2 * var(--u)); width: calc(26 * var(--u)); height: calc(26 * var(--u)); color: var(--d-navy); }
  .hx-guides p { left: calc(49 * var(--u)); top: calc(44 * var(--u)); width: calc(330 * var(--u)); line-height: calc(14 * var(--u)); }
  .hx-guides .hx-more { left: calc(412 * var(--u)); top: calc(28 * var(--u)); }
  .gd-grid { position: absolute; left: calc(2 * var(--u)); top: calc(82 * var(--u)); grid-template-columns: repeat(3, calc(170 * var(--u))); gap: calc(11 * var(--u)); margin: 0; }
  .gd { height: calc(104 * var(--u)); border-radius: 8px; }
  .gd img { height: calc(70 * var(--u)); }
  .gd-img em { font-size: calc(10 * var(--u)); bottom: calc(4 * var(--u)); left: calc(6 * var(--u)); padding: calc(1.5 * var(--u)) calc(8 * var(--u)); }
  .gd strong { font-size: calc(11.5 * var(--u)); line-height: calc(14 * var(--u)); padding: calc(4 * var(--u)) calc(8 * var(--u)) 0; }
  .hx-attys { display: block; height: calc(176 * var(--u)); overflow: hidden; margin-top: calc(2 * var(--u)); background: linear-gradient(135deg, #f1f6fb, #f8fafc); }
  .hx-attys > div { position: static; }
  .hx-attys > div > * { z-index: 2; }
  .hx-attys h2 { left: calc(59 * var(--u)); top: calc(14 * var(--u)); font-size: calc(18.3 * var(--u)); display: block; white-space: nowrap; }
  .hx-attys h2 .ic { position: absolute; left: calc(-39 * var(--u)); top: calc(-1 * var(--u)); width: calc(28 * var(--u)); height: calc(28 * var(--u)); color: var(--d-navy); }
  .hx-attys p { left: calc(59 * var(--u)); top: calc(42 * var(--u)); width: calc(268 * var(--u)); line-height: calc(13 * var(--u)); }
  .hx-attys .hx-checks { left: calc(25 * var(--u)); top: calc(80 * var(--u)); margin: 0; gap: 0; }
  .hx-attys .hx-checks li { height: calc(16 * var(--u)); }
  .hx-attys .hx-btn { position: absolute; left: calc(22 * var(--u)); top: calc(145 * var(--u)); height: calc(28 * var(--u)); width: calc(215 * var(--u)); padding: 0; font-size: calc(12 * var(--u)); border-radius: 8px; }
  .hx-attys img { position: absolute; left: calc(262 * var(--u)); top: calc(58 * var(--u)); width: calc(155 * var(--u)); height: calc(117 * var(--u)); border-radius: 0; object-fit: fill; z-index: 1; }
  .hx-how, .hx-faq { height: calc(143 * var(--u)); padding: 0; }
  .hx-how { background: var(--d-panel); }
  .hx-how h2 { left: calc(60 * var(--u)); top: calc(20 * var(--u)); font-size: calc(17.4 * var(--u)); display: block; white-space: nowrap; }
  .hx-how h2 .ic { position: absolute; left: calc(-47 * var(--u)); top: calc(-3 * var(--u)); width: calc(31 * var(--u)); height: calc(31 * var(--u)); color: var(--d-navy); }
  .hx-how p { left: calc(60 * var(--u)); top: calc(44 * var(--u)); font-size: calc(12.2 * var(--u)); }
  .hx-how ol { left: calc(33 * var(--u)); top: calc(74 * var(--u)); display: grid; grid-template-columns: calc(164 * var(--u)) calc(170 * var(--u)) calc(170 * var(--u)); gap: 0; margin: 0; }
  .hx-how li { gap: calc(10 * var(--u)); padding: 0 0 0 calc(8 * var(--u)); }
  .hx-how li:first-child { padding-left: 0; }
  .hx-how li + li { border-left: 1px solid var(--d-line); }
  .hx-how li strong { font-size: calc(13.5 * var(--u)); }
  .hx-how li strong .ic-sm { display: none; }
  .hx-how li div span { font-size: calc(11.2 * var(--u)); line-height: calc(13 * var(--u)); width: calc(114 * var(--u)); margin-top: calc(2 * var(--u)); }
  .hx-how li:nth-child(2) div span { width: calc(130 * var(--u)); }
  .hx-how li:nth-child(3) div span { width: calc(122 * var(--u)); }
  .step-n { width: calc(30 * var(--u)); height: calc(30 * var(--u)); font-size: calc(14 * var(--u)); margin-top: calc(10 * var(--u)); }
  .hx-faq { height: calc(130 * var(--u)); margin-top: calc(8 * var(--u)); background: #fff; }
  .hx-faq h2 { left: calc(68 * var(--u)); top: calc(6 * var(--u)); font-size: calc(16.5 * var(--u)); display: block; white-space: nowrap; }
  .hx-faq h2 .ic { position: absolute; left: calc(-46 * var(--u)); top: calc(0 * var(--u)); width: calc(26 * var(--u)); height: calc(26 * var(--u)); color: var(--d-navy); }
  .hx-faq details { position: relative; left: calc(62 * var(--u)); width: calc(340 * var(--u)); top: calc(36 * var(--u)); border-top: 1px solid var(--d-line); height: calc(20.5 * var(--u)); }
  .hx-faq details:first-of-type { border-top: 0; }
  .hx-faq summary { font-size: calc(11 * var(--u)); height: calc(20.5 * var(--u)); min-height: 0; padding: 0; font-weight: 600; }
  .hx-faq summary .ic-sm { width: calc(12 * var(--u)); height: calc(12 * var(--u)); }
  .hx-faq p { position: static; font-size: calc(11 * var(--u)); margin: 0 0 calc(6 * var(--u)); }
  footer.site { height: calc(116 * var(--u)); padding: 0; margin-top: calc(15 * var(--u)); position: relative; overflow: hidden; }
  footer.site > .container { position: relative; height: 100%; width: calc(1024 * var(--u)); max-width: 100%; margin: 0 auto; padding: 0; }
  .foot-grid { display: block; }
  .foot-brand { position: absolute; left: calc(26 * var(--u)); top: calc(11 * var(--u)); width: calc(250 * var(--u)); }
  .foot-brand p { font-size: calc(9.5 * var(--u)); line-height: calc(11 * var(--u)); margin: calc(6 * var(--u)) 0 0; width: calc(190 * var(--u)); }
  footer.site .brand-name { font-size: calc(14 * var(--u)); }
  footer.site .brand-sub { font-size: calc(6.8 * var(--u)); letter-spacing: .08em; margin-top: calc(1 * var(--u)); }
  footer.site .brand img { width: calc(44 * var(--u)); }
  .foot-col { position: absolute; top: calc(10 * var(--u)); }
  .foot-col:nth-of-type(1) { left: calc(328 * var(--u)); }
  .foot-col:nth-of-type(2) { left: calc(503 * var(--u)); }
  .foot-col:nth-of-type(3) { left: calc(662 * var(--u)); }
  .foot-col:nth-of-type(4) { left: calc(821 * var(--u)); }
  .foot-col h2 { font-size: calc(10.7 * var(--u)); margin: 0 0 calc(3 * var(--u)); line-height: calc(12 * var(--u)); }
  footer.site .foot-col li a { font-size: calc(9.6 * var(--u)); padding: 0; display: block; line-height: calc(13.5 * var(--u)); }
  .foot-bottom { position: absolute; left: calc(32 * var(--u)); right: calc(26 * var(--u)); top: calc(92 * var(--u)); display: flex; justify-content: space-between; font-size: calc(9.1 * var(--u)); margin: 0; padding: calc(8 * var(--u)) 0 0; border-top: 1px solid rgba(255, 255, 255, .16); }
  html:not([lang="en-US"]) .mainnav { gap: calc(10 * var(--u)); margin-left: calc(18 * var(--u)); }
  html:not([lang="en-US"]) .mainnav a { font-size: calc(10 * var(--u)); }
  html:not([lang="en-US"]) .btn-out, html:not([lang="en-US"]) .btn-fill { font-size: calc(10.5 * var(--u)); padding: 0 calc(9 * var(--u)); }
  html:not([lang="en-US"]) .hx-badge strong { font-size: calc(10.8 * var(--u)); }
  html:not([lang="en-US"]) .hx-badge span { font-size: calc(9 * var(--u)); }
  html:not([lang="en-US"]) .hx-states h2 { font-size: calc(18 * var(--u)); }
  html:not([lang="en-US"]) .pa-txt strong { font-size: calc(11.5 * var(--u)); }
  html:not([lang="en-US"]) .hx-stats strong { font-size: calc(10.8 * var(--u)); }
  html:not([lang="en-US"]) .hx-stats span { font-size: calc(9.8 * var(--u)); }
}
/* ===== Directory + category pages. Desktop sizes: [N] = N px of the 1024-wide reference. ===== */
body.bare .dwrap { width: 100%; max-width: var(--container); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.crumbs ol { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; font-size: .82rem; color: var(--d-slate); }
.crumbs li + li::before { content: "›"; margin-right: 4px; color: var(--d-slate); }
.crumbs a { color: var(--d-ink); text-decoration: none; }
.crumbs [aria-current] { font-weight: 700; color: var(--d-ink); }
/* directory hero */
.dh { position: relative; background: #f1f5f8; overflow: visible; padding-bottom: 0; }
.dh-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; opacity: .55; }
.dh::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f6f8fa 0, #f6f8fa 35%, rgba(246, 248, 250, .5) 70%, rgba(246, 248, 250, 0) 100%); }
.dh-in { position: relative; z-index: 2; padding-top: 14px; padding-bottom: 12px; }
.dh-eyebrow { color: var(--d-gold); font-weight: 700; font-size: .78rem; letter-spacing: .08em; margin: 6px 0 4px; }
.dh h1, .ah h1 { font-family: var(--d-serif); font-weight: 800; color: var(--d-ink); font-size: 1.9rem; line-height: 1.1; margin: 0 0 8px; letter-spacing: -.005em; }
.dh-lead { color: var(--d-ink); font-size: .98rem; margin: 0; }
.dh-bar { position: relative; z-index: 3; display: grid; gap: 8px; background: #fff; border-radius: 12px; padding: 12px; box-shadow: 0 6px 24px rgba(20, 36, 58, .14); margin-bottom: -26px; }
.dh-field { display: flex; align-items: center; gap: 10px; border: 1px solid var(--d-line); border-radius: 8px; padding: 6px 10px; min-height: 52px; color: var(--d-ink); background: #fff; }
.dh-field > div { flex: 1; min-width: 0; }
.dh-field label { display: block; font-weight: 700; font-size: .78rem; }
.dh-field select { width: 100%; border: 0; background: transparent; font: inherit; font-size: .92rem; color: var(--d-ink); padding: 2px 0; min-height: 28px; }
.dh-go { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border: 0; border-radius: 8px; background: var(--d-btn); color: #fff; font-weight: 600; font-size: 1rem; cursor: pointer; font-family: var(--d-sans); padding: 0 18px; }
.dmain, .dland { padding-top: 46px; padding-bottom: 28px; }
.dmain { display: grid; gap: 16px; }
.dside .dfilters { background: #fff; border: 1px solid var(--d-line); border-radius: 12px; padding: 12px 14px; }
.dfilters > summary { list-style: none; display: flex; justify-content: space-between; align-items: center; font-weight: 700; color: var(--d-ink); cursor: pointer; min-height: 44px; }
.dfilters > summary::-webkit-details-marker { display: none; }
.dfilters > summary span { display: inline-flex; align-items: center; gap: 8px; }
.dfilters > summary a { color: var(--d-teal); font-size: .85rem; font-weight: 600; }
.fgroup { margin: 12px 0; border: 0; padding: 0; }
.fgroup label, .fgroup legend { display: block; font-weight: 700; font-size: .85rem; margin-bottom: 4px; color: var(--d-ink); }
.fgroup input[type=search], .fgroup select { width: 100%; min-height: 40px; border: 1px solid var(--d-line); border-radius: 8px; padding: 6px 10px; font: inherit; background: #fff; color: var(--d-ink); }
.fcheck { display: flex; align-items: center; gap: 8px; font-weight: 500 !important; padding: 6px 0; font-size: .9rem; }
.fcheck input { width: 18px; height: 18px; accent-color: var(--d-btn); }
.dside-go { width: 100%; margin-top: 6px; }
.dside-reset { display: flex; justify-content: center; align-items: center; gap: 6px; min-height: 44px; margin-top: 8px; border: 1px solid var(--d-line); border-radius: 8px; color: var(--d-ink); text-decoration: none; font-weight: 600; font-size: .9rem; }
.dres-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.dres-head h2 { font-family: var(--d-sans); font-size: 1.05rem; font-weight: 700; color: var(--d-ink); margin: 0; }
.lr-list { display: grid; gap: 12px; }
.lr { display: grid; grid-template-columns: 64px 1fr; gap: 10px 12px; background: #fff; border: 1px solid var(--d-line); border-radius: 10px; padding: 12px; box-shadow: 0 1px 4px rgba(20, 36, 58, .05); }
.lr-photo { width: 64px; height: 64px; border-radius: 8px; overflow: hidden; background: #e7eef3; display: grid; place-items: center; }
.lr-photo img { width: 100%; height: 100%; object-fit: cover; }
.lr-initials { font-weight: 700; color: var(--d-teal); font-size: 1.1rem; }
.lr-main h3 { font-family: var(--d-serif); font-weight: 800; font-size: 1.1rem; margin: 0 0 2px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.lr-main h3 a { color: var(--d-ink); text-decoration: none; }
.lr-sub { margin: 0 0 4px; color: var(--d-slate); font-size: .88rem; }
.lr-loc, .lr-lang { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: .85rem; color: var(--d-ink); }
.lr-loc .ic-sm, .lr-lang .ic-sm { color: var(--d-teal); }
.lr-tags { list-style: none; margin: 0 0 6px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.lr-tags li { background: #eef4f4; color: var(--d-ink); border: 1px solid #dbe6e6; border-radius: 99px; padding: 2px 10px; font-size: .78rem; font-weight: 600; }
.lr-side { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; align-items: center; }
.lr-ver { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 6px; color: var(--ok); font-weight: 700; font-size: .82rem; }
.lr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; border-radius: 8px; font-weight: 600; font-size: .9rem; text-decoration: none; border: 1.5px solid var(--d-btn); }
.lr-fill { background: var(--d-btn); color: #fff; }
.lr-out { background: #fff; color: var(--d-btn); }
.lr-save { grid-column: 1 / -1; }
.lr-save button { background: none; border: 0; color: var(--d-ink); display: inline-flex; align-items: center; gap: 6px; font: inherit; font-size: .85rem; cursor: pointer; min-height: 36px; }
.pager { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 18px 0; flex-wrap: wrap; }
.pg { display: inline-grid; place-items: center; min-width: 40px; height: 40px; border: 1px solid var(--d-line); border-radius: 8px; color: var(--d-ink); text-decoration: none; background: #fff; font-weight: 600; padding: 0 8px; }
.pg.on { background: var(--d-btn); color: #fff; border-color: var(--d-btn); }
.pg.gap { border: 0; background: none; }
.pg-prev { transform: rotate(180deg); }
.dnote { display: flex; gap: 10px; align-items: flex-start; background: #f1f5f8; border: 1px solid #e0e8ee; border-radius: 10px; padding: 12px 14px; margin: 16px 0; font-size: .85rem; color: var(--d-slate); }
.dnote .ic-sm { flex: none; margin-top: 2px; color: var(--d-teal); }
.dnote a { color: var(--d-teal); }
.dcities { margin: 26px 0 8px; }
.dcities h2 { font-family: var(--d-serif); font-weight: 800; font-size: 1.4rem; color: var(--d-ink); margin: 0 0 12px; }
.dcities-grid { display: grid; gap: 8px; }
.dcities-grid a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid #cfe0df; border-radius: 8px; color: var(--d-teal); text-decoration: none; font-weight: 600; background: #fff; }
.dcities-grid small { color: var(--d-slate); font-weight: 500; }
/* category page */
.ah { position: relative; background: #f1f5f8; overflow: hidden; }
.ah-in { position: relative; display: grid; padding-top: 14px; }
.ah-img { width: 100%; height: 220px; object-fit: cover; object-position: center 30%; margin-top: 14px; border-radius: 10px; }
.ah-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.afacts { background: #fff; border-bottom: 1px solid var(--d-line); }
.afacts ul { list-style: none; margin: 0 auto; padding-top: 12px; padding-bottom: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 8px; }
.afacts li { display: flex; gap: 10px; align-items: flex-start; color: var(--d-teal); }
.afacts li .ic { width: 26px; height: 26px; flex: none; }
.afacts strong { display: block; color: var(--d-ink); font-size: .9rem; line-height: 1.2; }
.afacts span { display: block; color: var(--d-slate); font-size: .8rem; }
.amain { display: grid; gap: 18px; padding-top: 18px; padding-bottom: 28px; }
.aside { display: none; }
.asec { margin: 0 0 22px; }
.asec h2 { font-family: var(--d-serif); font-weight: 800; font-size: 1.4rem; color: var(--d-ink); margin: 0 0 8px; }
.asec p { color: var(--d-ink); }
.acards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.acard { display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid var(--d-line); border-radius: 10px; padding: 12px; text-decoration: none; color: var(--d-ink); box-shadow: 0 1px 4px rgba(20, 36, 58, .05); }
.acard .ic { color: var(--d-teal); width: 26px; height: 26px; }
.acard strong { font-size: .95rem; }
.acard span { color: var(--d-slate); font-size: .8rem; }
.acard .ic-sm { align-self: flex-end; color: var(--d-ink); margin-top: auto; }
.acta { display: grid; gap: 12px; background: #fff; border: 1px solid var(--d-line); border-radius: 12px; overflow: hidden; }
.acta img { width: 100%; height: 160px; object-fit: cover; }
.acta > div { padding: 0 14px 14px; }
.arow { display: grid; gap: 18px; }
.agd { display: grid; gap: 12px; grid-template-columns: 1fr; }
.arel { background: #fff; border: 1px solid var(--d-line); border-radius: 12px; padding: 14px; align-self: start; }
.arel h2 { font-family: var(--d-serif); font-size: 1.1rem; font-weight: 800; margin: 0 0 8px; color: var(--d-ink); }
.arel ul { list-style: none; margin: 0; padding: 0; }
.arel li a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; border-top: 1px solid var(--d-line); color: var(--d-ink); text-decoration: none; font-weight: 600; font-size: .9rem; }
.arel li:first-child a { border-top: 0; }

@media (min-width: 640px) {
  .dcities-grid { grid-template-columns: repeat(2, 1fr); }
  .acards { grid-template-columns: repeat(4, 1fr); }
  .afacts ul { grid-template-columns: repeat(4, 1fr); }
  .agd { grid-template-columns: repeat(3, 1fr); }
  .lr { grid-template-columns: 76px 1fr; }
  .lr-photo { width: 76px; height: 76px; }
}

/* --- desktop --- */
@media (min-width: 1024px) {
  body.bare .dwrap { width: calc(1024 * var(--u)); max-width: 100%; padding-left: calc(28 * var(--u)); padding-right: calc(24 * var(--u)); }
  .crumbs ol { font-size: calc(10.5 * var(--u)); margin-bottom: calc(14 * var(--u)); gap: calc(5 * var(--u)); }
  .dh { height: calc(185 * var(--u)); }
  .dh-bg { opacity: 1; }
  .dh-in { padding-top: calc(16 * var(--u)); }
  .dh-eyebrow { font-size: calc(11 * var(--u)); margin: 0 0 calc(6 * var(--u)); }
  .dh h1 { font-size: calc(33 * var(--u)); margin: 0 0 calc(8 * var(--u)); }
  .dh-lead { font-size: calc(12.4 * var(--u)); width: calc(560 * var(--u)); line-height: 1.3; }
  .dh-bar { position: absolute; left: 50%; transform: translateX(-50%); bottom: calc(-34 * var(--u)); display: flex; align-items: center; gap: calc(10 * var(--u)); height: calc(64 * var(--u)); padding: calc(10 * var(--u)) calc(12 * var(--u)); margin: 0; width: calc(972 * var(--u)); max-width: 100%; box-sizing: border-box; }
  .dh-field { flex: 1; min-height: 0; height: calc(44 * var(--u)); padding: 0 calc(12 * var(--u)); gap: calc(10 * var(--u)); }
  .dh-field .ic { width: calc(22 * var(--u)); height: calc(22 * var(--u)); }
  .dh-field label { font-size: calc(10.5 * var(--u)); }
  .dh-field select { font-size: calc(11.5 * var(--u)); min-height: 0; }
  .dh-go { flex: none; width: calc(175 * var(--u)); height: calc(44 * var(--u)); min-height: 0; font-size: calc(12.5 * var(--u)); padding: 0; }
  .dmain { grid-template-columns: calc(214 * var(--u)) 1fr; gap: calc(22 * var(--u)); padding-top: calc(54 * var(--u)); padding-bottom: calc(30 * var(--u)); align-items: start; }
  .dland { padding-top: calc(54 * var(--u)); padding-bottom: calc(30 * var(--u)); }
  .dside .dfilters { padding: calc(14 * var(--u)) calc(16 * var(--u)); }
  .dfilters > summary { font-size: calc(13 * var(--u)); min-height: 0; margin-bottom: calc(4 * var(--u)); }
  .dfilters > summary a { font-size: calc(10.5 * var(--u)); }
  .fgroup { margin: calc(14 * var(--u)) 0; }
  .fgroup label, .fgroup legend { font-size: calc(11.5 * var(--u)); }
  .fgroup input[type=search], .fgroup select { min-height: calc(34 * var(--u)); font-size: calc(11.5 * var(--u)); }
  .fcheck { font-size: calc(11 * var(--u)); padding: calc(4 * var(--u)) 0; }
  .dside-go { height: calc(40 * var(--u)); min-height: 0; font-size: calc(12 * var(--u)); }
  .dside-reset { min-height: calc(36 * var(--u)); font-size: calc(11 * var(--u)); }
  .dres-head h2 { font-size: calc(14.5 * var(--u)); }
  .lr-list { gap: calc(12 * var(--u)); }
  .lr { grid-template-columns: calc(76 * var(--u)) 1fr calc(168 * var(--u)); gap: calc(14 * var(--u)); padding: calc(14 * var(--u)) calc(16 * var(--u)); border-radius: 10px; }
  .lr-photo { width: calc(76 * var(--u)); height: calc(76 * var(--u)); }
  .lr-main h3 { font-size: calc(16 * var(--u)); }
  .lr-sub { font-size: calc(11.5 * var(--u)); }
  .lr-loc, .lr-lang { font-size: calc(11 * var(--u)); }
  .lr-tags li { font-size: calc(10 * var(--u)); padding: calc(2 * var(--u)) calc(9 * var(--u)); }
  .lr-side { grid-column: auto; grid-template-columns: 1fr; gap: calc(7 * var(--u)); align-content: center; }
  .lr-ver { font-size: calc(10.5 * var(--u)); justify-content: flex-start; }
  .lr-btn { min-height: calc(32 * var(--u)); font-size: calc(11.5 * var(--u)); }
  .pg { min-width: calc(38 * var(--u)); height: calc(38 * var(--u)); font-size: calc(12 * var(--u)); }
  .dnote { font-size: calc(11 * var(--u)); padding: calc(12 * var(--u)) calc(16 * var(--u)); }
  .dcities h2 { font-size: calc(24 * var(--u)); }
  .dcities-grid { grid-template-columns: repeat(2, 1fr); gap: calc(10 * var(--u)) calc(14 * var(--u)); }
  .dcities-grid a { min-height: calc(42 * var(--u)); font-size: calc(12 * var(--u)); }
  .ah { height: calc(330 * var(--u)); }
  .ah-in { display: block; height: 100%; padding-top: calc(16 * var(--u)); }
  .ah-copy { width: calc(560 * var(--u)); position: relative; z-index: 2; }
  .ah h1 { font-size: calc(42 * var(--u)); margin: 0 0 calc(12 * var(--u)); }
  .ah .dh-lead { font-size: calc(13.5 * var(--u)); width: calc(470 * var(--u)); }
  .ah-btns { margin-top: calc(18 * var(--u)); gap: calc(10 * var(--u)); }
  .ah-btns .hx-btn { height: calc(34 * var(--u)); min-height: 0; padding: 0 calc(18 * var(--u)); font-size: calc(12 * var(--u)); border-radius: 8px; width: auto; }
  .ah-img { position: absolute; right: 0; top: 0; width: calc(470 * var(--u)); height: 100%; margin: 0; border-radius: 0; object-fit: cover; object-position: center 25%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 38%); mask-image: linear-gradient(90deg, transparent 0, #000 38%); }
  .afacts ul { height: calc(62 * var(--u)); padding: 0 calc(28 * var(--u)); align-items: center; gap: 0; }
  .afacts li { padding-left: calc(14 * var(--u)); }
  .afacts li + li { border-left: 1px solid var(--d-line); }
  .afacts li .ic { width: calc(26 * var(--u)); height: calc(26 * var(--u)); }
  .afacts strong { font-size: calc(12 * var(--u)); }
  .afacts span { font-size: calc(10.5 * var(--u)); }
  .amain { grid-template-columns: calc(200 * var(--u)) 1fr; gap: calc(24 * var(--u)); padding-top: calc(24 * var(--u)); align-items: start; }
  .aside { display: block; position: sticky; top: calc(70 * var(--u)); background: #fff; border: 1px solid var(--d-line); border-radius: 10px; padding: calc(12 * var(--u)) calc(10 * var(--u)); font-size: calc(12 * var(--u)); }
  .aside strong { display: block; padding: 0 calc(8 * var(--u)) calc(8 * var(--u)); color: var(--d-ink); font-size: calc(12.5 * var(--u)); }
  .aside ul { list-style: none; margin: 0; padding: 0; }
  .aside a { display: block; padding: calc(8 * var(--u)) calc(10 * var(--u)); color: var(--d-ink); text-decoration: none; border-radius: 6px; font-size: calc(11.5 * var(--u)); }
  .aside a.on, .aside a:hover { background: #e9f3f1; font-weight: 700; }
  .asec h2 { font-size: calc(22 * var(--u)); }
  .asec p { font-size: calc(12.5 * var(--u)); line-height: 1.5; }
  .acards { gap: calc(10 * var(--u)); }
  .acard { padding: calc(12 * var(--u)); min-height: calc(110 * var(--u)); border-radius: 10px; }
  .acard strong { font-size: calc(12.5 * var(--u)); }
  .acard span { font-size: calc(10.5 * var(--u)); }
  .acta { grid-template-columns: calc(230 * var(--u)) 1fr; gap: 0; align-items: center; }
  .acta img { height: calc(150 * var(--u)); }
  .acta > div { padding: calc(14 * var(--u)) calc(18 * var(--u)); }
  .acta .hx-btn { width: auto; padding: 0 calc(18 * var(--u)); height: calc(34 * var(--u)); min-height: 0; font-size: calc(12 * var(--u)); border-radius: 8px; }
  .acta h2 { font-size: calc(20 * var(--u)); }
  .arow { grid-template-columns: 1fr calc(220 * var(--u)); gap: calc(16 * var(--u)); }
  .arel { padding: calc(12 * var(--u)) calc(14 * var(--u)); }
  .gd { height: auto; }
  .agd .gd img { height: calc(74 * var(--u)); }
  .gd strong { font-size: calc(11.5 * var(--u)); }
}

/* ===== Lawyer profile page ===== */
.pf-hero { position: relative; background: #f1f5f8; overflow: hidden; }
.pf-hero .dh-bg { opacity: .5; }
.pf-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f6f8fa 0, #f6f8fa 40%, rgba(246, 248, 250, 0) 100%); }
.pf-hero-in { position: relative; z-index: 2; padding-top: 14px; padding-bottom: 14px; }
.pf-h1 { font-family: var(--d-serif); font-weight: 800; font-size: 1.9rem; line-height: 1.1; color: var(--d-ink); margin: 0 0 6px; }
.pf-grid { display: grid; gap: 14px; padding-top: 16px; padding-bottom: 28px; }
.pf-main, .pf-side { display: grid; gap: 12px; align-content: start; min-width: 0; }
.pf-card { background: #fff; border: 1px solid var(--d-line); border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(20, 36, 58, .05); }
.pf-card h2 { font-family: var(--d-serif); font-weight: 800; font-size: 1.15rem; color: var(--d-ink); margin: 0 0 8px; display: flex; align-items: center; gap: 8px; }
.pf-card h2 .ic, .pf-card h2 .ic-sm { color: var(--d-navy); }
.pf-card h3 { font-size: .95rem; margin: 0 0 6px; color: var(--d-ink); }
.pf-card p { color: var(--d-ink); }
.pf-top { display: grid; gap: 12px; grid-template-columns: 96px 1fr; }
.pf-photo { width: 96px; height: 96px; border-radius: 10px; overflow: hidden; background: #e7eef3; display: grid; place-items: center; font-weight: 800; font-size: 1.6rem; color: var(--d-teal); }
.pf-photo img { width: 100%; height: 100%; object-fit: cover; }
.pf-id h1 { font-family: var(--d-serif); font-weight: 800; font-size: 1.5rem; color: var(--d-ink); margin: 0 0 2px; }
.pf-role { margin: 0 0 8px; color: var(--d-ink); }
.pf-role a { color: var(--d-ink); }
.pf-role .sep { margin: 0 8px; color: var(--d-slate); }
.pf-meta { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .85rem; color: var(--d-ink); }
.pf-meta li { display: inline-flex; align-items: center; gap: 6px; }
.pf-meta .ic-sm { color: var(--d-navy); }
.pf-meta li.ok { background: #e2f4ec; color: #146c43; border-radius: 99px; padding: 2px 10px; font-weight: 600; }
.pf-meta li.ok .ic-sm { color: #146c43; }
.pf-meta li.warn { background: var(--warn-soft); color: var(--warn); border-radius: 99px; padding: 2px 10px; }
.pf-id .lr-tags li a { color: var(--d-ink); text-decoration: none; }
.pf-lead { margin: 8px 0 0; }
.pf-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.pf-actions form { display: contents; }
.pf-actions .lr-btn { padding: 0 14px; }
.pf-lic-head { display: flex; gap: 12px; align-items: flex-start; }
.pf-lic-head .ic { width: 30px; height: 30px; color: var(--d-navy); flex: none; }
.pf-lic-head h2 { margin: 0 0 2px; }
.pf-lic-head p { margin: 0; color: var(--d-slate); font-size: .85rem; }
.pf-lic-row { display: grid; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--d-line); }
.pf-lic-row > div { display: flex; gap: 10px; align-items: center; }
.pf-lic-row .ic { width: 24px; height: 24px; color: var(--d-navy); flex: none; }
.pf-lic-row small { display: block; color: var(--d-slate); font-size: .78rem; }
.pf-lic-row strong { display: block; color: var(--d-ink); }
.pf-lic-row em { display: block; font-style: normal; color: var(--d-slate); font-size: .78rem; }
.pf-note { display: flex; gap: 8px; align-items: flex-start; background: #f1f5f8; border-radius: 8px; padding: 10px 12px; font-size: .8rem; color: var(--d-slate); margin: 10px 0 0; }
.pf-note .ic-sm { flex: none; margin-top: 2px; }
.pf-note a { color: var(--d-teal); }
.pf-two { display: grid; gap: 12px; }
.pf-flat { gap: 14px; }
.pf-three { display: grid; gap: 14px; }
.pf-checks, .pf-bul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pf-checks li { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; }
.pf-checks .ic-sm { color: #1c8a3c; margin-top: 3px; flex: none; }
.pf-checks a { color: var(--d-ink); text-decoration: none; }
.pf-bul li { font-size: .88rem; padding-left: 12px; position: relative; }
.pf-bul li::before { content: "•"; position: absolute; left: 0; color: var(--d-slate); }
.pf-chip { display: inline-block; background: #e9f3f1; color: var(--d-ink); border-radius: 99px; padding: 6px 16px; font-weight: 600; font-size: .9rem; }
.pf-addr { margin: 0 0 8px; }
.pf-guides { display: grid; gap: 10px; }
.pf-guides a { display: flex; gap: 10px; align-items: center; background: #f4f8f8; border: 1px solid var(--d-line); border-radius: 10px; padding: 10px 12px; text-decoration: none; color: var(--d-ink); }
.pf-guides .ic { width: 26px; height: 26px; color: var(--d-navy); flex: none; }
.pf-guides small { display: block; color: var(--d-teal); font-weight: 700; font-size: .7rem; }
.pf-guides strong { font-size: .88rem; line-height: 1.25; }
.pf-sim h2 { font-family: var(--d-serif); font-weight: 800; font-size: 1.25rem; color: var(--d-ink); margin: 0; }
.pf-req p { margin: 0 0 10px; font-size: .9rem; }
.pf-req .lr-btn { width: 100%; }
.pf-contact { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.pf-contact li { display: flex; gap: 8px; align-items: center; font-size: .9rem; }
.pf-contact .ic-sm { color: var(--d-navy); }
.pf-contact a { color: var(--d-ink); }
.pf-facts { margin: 0; display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; font-size: .88rem; }
.pf-facts dt { font-weight: 700; color: var(--d-ink); }
.pf-facts dd { margin: 0; color: var(--d-slate); text-align: right; }
.pf-facts .yn { align-self: start; justify-self: end; padding: 0 12px; border-radius: 99px; font-weight: 700; }
.pf-facts .yn.y { background: #e2f4ec; color: #146c43; }
.pf-facts .yn.n { background: #f1f1f1; color: #555; }
.pf-form h2 { font-size: 1.1rem; }
@media (min-width: 640px) {
  .pf-lic-row { grid-template-columns: repeat(3, 1fr); }
  .pf-two { grid-template-columns: 1fr 1fr; }
  .pf-three { grid-template-columns: repeat(3, 1fr); }
  .pf-guides { grid-template-columns: repeat(2, 1fr); }
  .pf-top { grid-template-columns: 160px 1fr; }
  .pf-photo { width: 160px; height: 160px; }
}
@media (min-width: 1024px) {
  .pf-hero { height: calc(112 * var(--u)); }
  .pf-hero-in { padding-top: calc(14 * var(--u)); }
  .pf-hero .dh-lead { font-size: calc(14 * var(--u)); }
  .pf-h1 { font-size: calc(30 * var(--u)); margin-bottom: calc(4 * var(--u)); }
  .pf-grid { grid-template-columns: 1fr calc(300 * var(--u)); gap: calc(18 * var(--u)); padding-top: calc(14 * var(--u)); }
  .pf-card { padding: calc(14 * var(--u)) calc(16 * var(--u)); border-radius: 10px; }
  .pf-card h2 { font-size: calc(16 * var(--u)); }
  .pf-card p, .pf-checks li { font-size: calc(11.5 * var(--u)); }
  .pf-top { grid-template-columns: calc(165 * var(--u)) 1fr; gap: calc(14 * var(--u)) calc(16 * var(--u)); }
  .pf-photo { width: calc(165 * var(--u)); height: calc(165 * var(--u)); }
  .pf-id h1 { font-size: calc(24 * var(--u)); }
  .pf-role { font-size: calc(12.5 * var(--u)); }
  .pf-meta { font-size: calc(11 * var(--u)); }
  .pf-actions .lr-btn { min-height: calc(34 * var(--u)); font-size: calc(11.5 * var(--u)); }
  .pf-lic-row small { font-size: calc(10 * var(--u)); }
  .pf-lic-row strong { font-size: calc(12 * var(--u)); }
  .pf-three { gap: calc(18 * var(--u)); }
  .pf-guides { grid-template-columns: repeat(4, 1fr); }
  .pf-guides strong { font-size: calc(10.5 * var(--u)); }
  .pf-facts { font-size: calc(11 * var(--u)); }
  .pf-sim h2 { font-size: calc(20 * var(--u)); }
}

/* ===== Corporate pages ===== */
.corp-hero { padding-bottom: 6px; }
.corp-hero .dh-lead { max-width: 62ch; }
.corp-tabs { display: flex; gap: 6px; overflow-x: auto; padding-top: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--d-line); scrollbar-width: thin; }
.corp-tabs a { flex: none; padding: 8px 14px; border-radius: 99px; color: var(--d-ink); text-decoration: none; font-weight: 600; font-size: .88rem; border: 1px solid transparent; min-height: 40px; display: inline-flex; align-items: center; }
.corp-tabs a:hover { background: #eef5f4; }
.corp-tabs a[aria-current] { background: var(--d-btn); color: #fff; }
.corp-body { padding-top: 18px; padding-bottom: 32px; display: grid; gap: 24px; }
.corp-sec h2 { font-family: var(--d-serif); font-weight: 800; font-size: 1.4rem; color: var(--d-ink); margin: 0 0 10px; }
.corp-sec p { color: var(--d-ink); }
.corp-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.corp-facts li { background: #fff; border: 1px solid var(--d-line); border-radius: 12px; padding: 14px; display: grid; gap: 2px; }
.corp-facts strong { font-family: var(--d-serif); font-weight: 800; font-size: 1.7rem; color: var(--d-teal); line-height: 1.1; }
.corp-facts span { color: var(--d-slate); font-size: .88rem; }
.corp-cols { display: grid; gap: 12px; }
.corp-card { background: #fff; border: 1px solid var(--d-line); border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(20, 36, 58, .05); }
.corp-card h3 { font-size: 1.02rem; margin: 6px 0 6px; color: var(--d-ink); }
.corp-card p { margin: 0 0 8px; font-size: .92rem; color: var(--d-ink); }
.corp-card > .ic { width: 28px; height: 28px; color: var(--d-teal); }
.corp-card a { color: var(--d-teal); font-weight: 600; }
.corp-note { background: #f4f8f8; }
.corp-split { display: grid; gap: 16px; align-items: start; }
.corp-alert { display: flex; gap: 10px; align-items: flex-start; background: #fff7e0; border: 1px solid #ecd9a0; border-radius: 12px; padding: 12px 14px; color: #5b4300; font-size: .92rem; }
.corp-alert .ic-sm { flex: none; margin-top: 3px; }
.corp-channel { display: flex; flex-direction: column; gap: 2px; }
.corp-mail { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; word-break: break-all; text-decoration: none; background: #e9f3f1; border-radius: 8px; padding: 8px 12px; min-height: 44px; align-self: flex-start; margin: 2px 0 6px; }
.corp-more { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; margin-top: auto; min-height: 36px; }
.corp-quote { margin: 0; background: #fff; border-left: 4px solid var(--d-teal); border-radius: 0 12px 12px 0; padding: 14px 18px; color: var(--d-ink); font-size: 1.02rem; line-height: 1.6; box-shadow: 0 1px 4px rgba(20, 36, 58, .05); }
.corp-logo { background: #fff; border: 1px solid var(--d-line); border-radius: 8px; padding: 8px; margin: 6px 0 10px; height: auto; max-width: 120px; }
.corp-steps { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 6px; }
.corp-steps li { color: var(--d-ink); }
@media (min-width: 640px) {
  .corp-facts { grid-template-columns: repeat(4, 1fr); }
  .corp-cols-3, .corp-cols-4 { grid-template-columns: 1fr 1fr; }
  .corp-cols:not(.corp-cols-3):not(.corp-cols-4) { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .corp-hero { height: calc(180 * var(--u)); }
  .corp-hero .dh-lead { width: calc(620 * var(--u)); font-size: calc(13 * var(--u)); }
  .corp-tabs { gap: calc(6 * var(--u)); padding-top: calc(10 * var(--u)); padding-bottom: calc(10 * var(--u)); }
  .corp-tabs a { font-size: calc(11.5 * var(--u)); padding: calc(8 * var(--u)) calc(14 * var(--u)); min-height: 0; }
  .corp-body { padding-top: calc(22 * var(--u)); gap: calc(28 * var(--u)); }
  .corp-sec h2 { font-size: calc(22 * var(--u)); }
  .corp-sec p, .corp-card p { font-size: calc(12 * var(--u)); line-height: 1.5; }
  .corp-card h3 { font-size: calc(14 * var(--u)); }
  .corp-cols-3 { grid-template-columns: repeat(3, 1fr); gap: calc(14 * var(--u)); }
  .corp-cols-4 { grid-template-columns: repeat(4, 1fr); gap: calc(14 * var(--u)); }
  .corp-split { grid-template-columns: 1fr calc(320 * var(--u)); gap: calc(24 * var(--u)); }
  .corp-facts strong { font-size: calc(26 * var(--u)); }
  .corp-facts span { font-size: calc(11 * var(--u)); }
  .corp-alert { font-size: calc(12 * var(--u)); }
  .corp-mail { font-size: calc(12 * var(--u)); min-height: 0; padding: calc(7 * var(--u)) calc(12 * var(--u)); }
  .corp-more { font-size: calc(11 * var(--u)); }
  .corp-quote { font-size: calc(13.5 * var(--u)); }
}

/* ===== Lawyer profile (approved mockup: David K. Chen). [N] = px of the 1024-wide mockup ===== */
.pf2-wrap { width: 100%; max-width: var(--container); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.pf2-hero { position: relative; background: #f1f5f9; overflow: hidden; min-height: 96px; }
.pf2-hero-bg { position: absolute; right: 0; top: 0; height: 100%; width: auto; max-width: none; object-fit: cover; opacity: .55; }
.pf2-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f6f9fb 0, #f6f9fb 45%, rgba(246, 249, 251, 0) 100%); }
.pf2-hero-in { position: relative; z-index: 2; padding-top: 12px; padding-bottom: 36px; }
.pf2-grid { display: grid; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
.pf2-left, .pf2-right { display: grid; gap: 10px; align-content: start; min-width: 0; }
.pf2-card { background: #fff; border: 1px solid #e3e8ee; border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 6px rgba(20, 36, 58, .06); min-width: 0; }
.pf2-card h2 { font-family: var(--d-serif); font-weight: 800; font-size: 1.1rem; color: var(--d-ink); margin: 0 0 8px; display: flex; align-items: center; gap: 8px; line-height: 1.2; }
.pf2-card h2 .ic { width: 22px; height: 22px; color: var(--d-navy); flex: none; }
.pf2-card p { color: var(--d-ink); }
.pf2-top { display: grid; grid-template-columns: 96px 1fr; gap: 12px; }
.pf2-photo { width: 96px; height: 130px; border-radius: 8px; overflow: hidden; background: #e7eef3; display: grid; place-items: center; font-weight: 800; font-size: 1.6rem; color: var(--d-teal); }
.pf2-photo img { width: 100%; height: 100%; object-fit: cover; }
.pf2-id h1 { font-family: var(--d-serif); font-weight: 800; font-size: 1.7rem; line-height: 1.1; color: var(--d-ink); margin: 0 0 2px; }
.pf2-sub { margin: 0 0 6px; color: var(--d-slate); font-size: .95rem; }
.pf2-firm { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0 0 6px; font-weight: 700; font-family: var(--d-serif); font-size: .92rem; }
.pf2-firm span { display: inline-flex; align-items: center; gap: 6px; }
.pf2-firm a { color: var(--d-ink); text-decoration: none; }
.pf2-firm .ic-sm, .pf2-meta .ic-sm { color: var(--d-navy); }
.pf2-meta { list-style: none; margin: 0 0 6px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .84rem; }
.pf2-meta li { display: inline-flex; align-items: center; gap: 6px; }
.pf2-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.pf2-pill { display: inline-flex; align-items: center; gap: 6px; border-radius: 99px; padding: 3px 12px; font-weight: 600; font-size: .8rem; background: #eef1f4; }
.pf2-pill.ok { background: #e2f4ec; color: #146c43; }
.pf2-pill.warn { background: var(--warn-soft); color: var(--warn); }
.pf2-tags { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pf2-tags li { background: #eef1f4; border-radius: 99px; padding: 3px 11px; font-size: .75rem; font-weight: 500; }
.pf2-tags a { color: var(--d-ink); text-decoration: none; }
.pf2-bio { margin: 0; font-size: .86rem; line-height: 1.45; }
.pf2-btns { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pf2-form-inline { display: contents; }
.pf2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 1px solid #d9dfe6; border-radius: 6px; background: #fff; color: var(--d-ink); font: 700 .88rem var(--d-sans); text-decoration: none; cursor: pointer; box-shadow: 0 1px 3px rgba(20, 36, 58, .06); }
.pf2-btn[hidden] { display: none; }
.pf2-btn.fill { background: var(--d-btn); border-color: var(--d-btn); color: #fff; }
.pf2-btn.wide { width: 100%; }
.pf2-lic { display: grid; gap: 10px; }
.pf2-lic-h { display: flex; gap: 10px; align-items: flex-start; }
.pf2-lic-h .ic { width: 26px; height: 26px; color: var(--d-navy); flex: none; }
.pf2-lic-h h2 { margin: 0 0 2px; }
.pf2-lic-h p { margin: 0; color: var(--d-slate); font-size: .8rem; }
.pf2-lic-cell { display: flex; gap: 10px; align-items: center; }
.pf2-lic-cell .ic { width: 22px; height: 22px; color: var(--d-navy); flex: none; }
.pf2-lic-cell small { display: block; color: var(--d-slate); font-size: .72rem; }
.pf2-lic-cell strong { display: block; color: var(--d-ink); font-size: .92rem; }
.pf2-lic-cell em { display: block; font-style: normal; font-size: .68rem; color: var(--d-slate); }
.pf2-lic-none { margin: 0; color: var(--d-slate); }
.pf2-lic-note { display: flex; gap: 8px; margin: 0; background: #eef2f5; border-radius: 8px; padding: 8px 10px; font-size: .72rem; color: var(--d-slate); }
.pf2-lic-note a { color: var(--d-teal); }
.pf2-lic-note .ic-sm { flex: none; margin-top: 1px; }
.pf2-about { display: grid; gap: 12px; }
.pf2-about p { margin: 0 0 6px; font-size: .86rem; line-height: 1.45; }
.pf2-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pf2-chips span { background: #e6f2f0; border-radius: 99px; padding: 5px 16px; font-weight: 700; font-size: .85rem; }
.pf2-two { display: grid; gap: 10px; }
.pf2-checks, .pf2-bul { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.pf2-checks li { display: flex; gap: 8px; align-items: flex-start; font-size: .86rem; }
.pf2-checks .ic-sm { color: #1c8a3c; margin-top: 3px; flex: none; }
.pf2-checks a { color: var(--d-ink); text-decoration: none; font-weight: 600; }
.pf2-bul li { font-size: .84rem; padding-left: 12px; position: relative; }
.pf2-bul li::before { content: "•"; position: absolute; left: 0; }
.pf2-three { display: grid; gap: 12px; }
.pf2-three h3 { font-family: var(--d-serif); font-weight: 800; font-size: .95rem; margin: 0 0 6px; display: flex; gap: 8px; align-items: center; color: var(--d-ink); }
.pf2-three h3 .ic-sm { color: var(--d-navy); }
.pf2-side { padding: 0; display: grid; }
.pf2-req, .pf2-office { padding: 14px 16px; }
.pf2-req + .pf2-office { border-top: 1px solid #e3e8ee; }
.pf2-req p { margin: 0 0 10px; font-size: .88rem; }
.pf2-office p { margin: 0 0 4px; font-size: .86rem; }
.pf2-strong { font-family: var(--d-serif); font-weight: 800; }
.pf2-strong a { color: var(--d-ink); text-decoration: none; }
.pf2-more { color: #0b6b4e; font-weight: 700; text-decoration: none; font-size: .84rem; }
.pf2-contact { list-style: none; margin: 10px 0 0; padding: 8px 0 0; display: grid; gap: 4px; border-top: 1px solid #e3e8ee; }
.pf2-contact li { display: flex; gap: 10px; align-items: center; font-size: .88rem; min-height: 30px; }
.pf2-contact .ic-sm { color: var(--d-navy); }
.pf2-contact a { color: var(--d-ink); text-decoration: none; }
.pf2-facts ul { list-style: none; margin: 0; padding: 0; }
.pf2-facts li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid #edf0f3; font-size: .88rem; }
.pf2-facts li:first-child { border-top: 0; }
.pf2-facts .ic-sm { color: var(--d-navy); }
.pf2-yn { margin-left: auto; padding: 0 12px; border-radius: 99px; font-size: .78rem; background: #e2f4ec; color: #146c43; }
.pf2-yn.n { background: #eee; color: #555; }
.pf2-why .pf2-checks li { font-size: .82rem; }
.pf2-rows { display: grid; gap: 10px; padding-bottom: 14px; }
.pf2-service-in { display: grid; gap: 12px; }
.pf2-map { position: relative; display: block; border-radius: 6px; overflow: hidden; max-width: 320px; }
.pf2-map img { width: 100%; height: auto; }
.pf2-map .ic { position: absolute; left: 47%; top: 22%; width: 26px; height: 26px; color: #0b6b4e; fill: #0b6b4e; }
.pf2-primary strong, .pf2-areas strong { font-family: var(--d-serif); font-weight: 800; display: flex; gap: 8px; align-items: center; margin-bottom: 4px; }
.pf2-primary p, .pf2-areas p { margin: 0 0 4px; font-size: .86rem; }
.pf2-fees-in { display: grid; gap: 10px; }
.pf2-fees p { margin: 0; font-size: .86rem; line-height: 1.45; }
.pf2-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.pf2-head p { margin: 0 0 8px; font-size: .84rem; color: var(--d-ink); }
.pf2-guide-row { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.pf2-guide-row a { display: flex; gap: 10px; align-items: center; background: #f6f9fa; border: 1px solid #e3e8ee; border-radius: 8px; padding: 8px 10px; text-decoration: none; color: var(--d-ink); min-height: 56px; }
.pf2-guide-row .ic { width: 26px; height: 26px; flex: none; color: var(--d-navy); }
.pf2-guide-row em { display: inline-block; font-style: normal; background: #dff3e8; color: #0b6b4e; border-radius: 99px; padding: 0 8px; font-weight: 700; font-size: .62rem; }
.pf2-guide-row strong { display: block; font-size: .8rem; line-height: 1.2; }
.pf2-sim-row { display: grid; gap: 8px; }
.pf2-sim-card { display: flex; gap: 10px; align-items: center; background: #fff; border: 1px solid #e3e8ee; border-radius: 8px; padding: 8px; text-decoration: none; color: var(--d-ink); }
.pf2-sim-photo { width: 62px; height: 74px; border-radius: 4px; overflow: hidden; background: #e7eef3; display: grid; place-items: center; flex: none; color: var(--d-teal); }
.pf2-sim-photo img { width: 100%; height: 100%; object-fit: cover; }
.pf2-sim-txt { display: grid; gap: 1px; min-width: 0; }
.pf2-sim-txt strong { font-family: var(--d-serif); font-weight: 800; font-size: .95rem; }
.pf2-sim-txt small { font-size: .74rem; }
.pf2-sim-txt .loc { display: flex; align-items: center; gap: 4px; }
.pf2-sim-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 3px; }
.pf2-sim-tags i { font-style: normal; background: #e6edf2; border-radius: 99px; padding: 1px 10px; font-size: .7rem; }
.pf2-disc { display: flex; gap: 8px; margin: 0; background: #e9eef2; border-radius: 8px; padding: 8px 12px; font-size: .72rem; color: #2b3a50; }
.pf2-disc .ic-sm { flex: none; margin-top: 2px; }
.pf2-formwrap { display: grid; gap: 10px; margin-top: 4px; }
.pf2-formcard h2 { font-size: 1.1rem; }
@media (min-width: 640px) {
  .pf2-top { grid-template-columns: 150px 1fr; }
  .pf2-photo { width: 150px; height: 215px; }
  .pf2-btns { grid-template-columns: repeat(4, auto); }
  .pf2-lic { grid-template-columns: auto repeat(3, auto); align-items: center; }
  .pf2-lic-note { grid-column: 1 / -1; }
  .pf2-two, .pf2-three { grid-template-columns: 1fr 1fr; }
  .pf2-about { grid-template-columns: 1fr 200px; }
  .pf2-service-in { grid-template-columns: 256px 1fr 1fr; }
  .pf2-fees-in { grid-template-columns: 1fr 1fr; }
  .pf2-guide-row { grid-template-columns: repeat(3, 1fr); }
  .pf2-sim-row { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .pf2-wrap { width: calc(1024 * var(--u)); max-width: 100%; padding-left: calc(41 * var(--u)); padding-right: calc(24 * var(--u)); }
  .pf2-hero { height: calc(100 * var(--u)); min-height: 0; }
  .pf2-hero-bg { width: calc(604 * var(--u)); opacity: 1; }
  .pf2-hero::after { background: linear-gradient(90deg, #f7f9fb 0, #f7f9fb 42%, rgba(247, 249, 251, 0) 66%); }
  .pf2-hero-in { padding-top: calc(12 * var(--u)); padding-bottom: 0; }
  .pf2-hero .crumbs ol { font-size: calc(10.4 * var(--u)); margin-bottom: calc(14 * var(--u)); }
  .pf2-hero .dh-eyebrow { font-size: calc(11.2 * var(--u)); margin: 0; }
  .pf2-grid { grid-template-columns: calc(679 * var(--u)) calc(273 * var(--u)); gap: calc(7 * var(--u)); margin-top: calc(-33 * var(--u)); position: relative; z-index: 3; padding-top: 0; padding-bottom: 0; }
  .pf2-right { padding-top: calc(50 * var(--u)); gap: calc(13 * var(--u)); }
  .pf2-left { gap: calc(11 * var(--u)); }
  .pf2-btn[data-share] { display: none; }`n  .pf2-card { border-radius: calc(10 * var(--u)); padding: calc(12 * var(--u)) calc(14 * var(--u)); }
  .pf2-card h2 { font-size: calc(15.2 * var(--u)); margin-bottom: calc(6 * var(--u)); gap: calc(8 * var(--u)); }
  .pf2-card h2 .ic { width: calc(22 * var(--u)); height: calc(22 * var(--u)); }
  .pf2-top { grid-template-columns: calc(166 * var(--u)) 1fr; gap: calc(12 * var(--u)) calc(20 * var(--u)); padding: calc(6 * var(--u)); min-height: calc(312 * var(--u)); }
  .pf2-photo { width: calc(166 * var(--u)); height: calc(238 * var(--u)); border-radius: calc(8 * var(--u)); }
  .pf2-id { padding-top: calc(10 * var(--u)); }
  .pf2-id h1 { font-size: calc(36 * var(--u)); line-height: calc(42 * var(--u)); margin: 0; }
  .pf2-sub { font-size: calc(15 * var(--u)); margin: calc(2 * var(--u)) 0 calc(10 * var(--u)); }
  .pf2-firm { font-size: calc(13.4 * var(--u)); gap: calc(4 * var(--u)) calc(26 * var(--u)); margin-bottom: calc(10 * var(--u)); }
  .pf2-meta { font-size: calc(12.4 * var(--u)); gap: calc(4 * var(--u)) calc(22 * var(--u)); margin-bottom: calc(8 * var(--u)); }
  .pf2-pill { font-size: calc(12.4 * var(--u)); padding: calc(3 * var(--u)) calc(13 * var(--u)); }
  .pf2-badges { margin-bottom: calc(14 * var(--u)); }
  .pf2-tags { margin-bottom: calc(8 * var(--u)); gap: calc(7 * var(--u)); }
  .pf2-tags li { font-size: calc(10.4 * var(--u)); padding: calc(4 * var(--u)) calc(11 * var(--u)); }
  .pf2-bio { font-size: calc(12.3 * var(--u)); line-height: 1.38; }
  .pf2-btns { grid-template-columns: calc(222 * var(--u)) calc(172 * var(--u)) calc(100 * var(--u)) calc(123 * var(--u)); gap: calc(10 * var(--u)); padding: 0 calc(9 * var(--u)) calc(8 * var(--u)) calc(9 * var(--u)); margin-top: calc(-4 * var(--u)); }
  .pf2-btn { height: calc(36 * var(--u)); min-height: 0; font-size: calc(11.5 * var(--u)); border-radius: calc(6 * var(--u)); }
  .pf2-lic { grid-template-columns: calc(212 * var(--u)) repeat(3, 1fr); gap: calc(10 * var(--u)) calc(18 * var(--u)); padding: calc(12 * var(--u)) calc(14 * var(--u)); min-height: calc(79 * var(--u)); }
  .pf2-lic-empty { grid-template-columns: calc(212 * var(--u)) 1fr calc(258 * var(--u)); }`n  .pf2-side h2, .pf2-facts h2, .pf2-why h2 { font-size: calc(13.4 * var(--u)); }`n  .pf2-lic-note { grid-column: auto; font-size: calc(9.4 * var(--u)); }
  .pf2-lic-h h2 { font-size: calc(14.2 * var(--u)); }
  .pf2-lic-h p { font-size: calc(11 * var(--u)); }
  .pf2-lic-cell small { font-size: calc(9.9 * var(--u)); }
  .pf2-lic-cell strong { font-size: calc(12.4 * var(--u)); }
  .pf2-lic-cell em { font-size: calc(8.8 * var(--u)); }
  .pf2-lic-cell .ic { width: calc(20 * var(--u)); height: calc(20 * var(--u)); }
  .pf2-about { grid-template-columns: 1fr calc(182 * var(--u)); gap: calc(18 * var(--u)); }
  .pf2-about p { font-size: calc(11.1 * var(--u)); line-height: 1.38; }
  .pf2-chips span { font-size: calc(12.3 * var(--u)); padding: calc(4 * var(--u)) calc(16 * var(--u)); }
  .pf2-two { grid-template-columns: calc(337 * var(--u)) calc(333 * var(--u)); gap: calc(10 * var(--u)); }
  .pf2-checks li { font-size: calc(11.3 * var(--u)); gap: calc(8 * var(--u)); }
  .pf2-checks { gap: calc(3 * var(--u)); }
  .pf2-three { grid-template-columns: calc(196 * var(--u)) calc(195 * var(--u)) 1fr; gap: 0; }
  .pf2-three > div { padding: 0 calc(14 * var(--u)); border-left: 1px solid #e3e8ee; }
  .pf2-three > div:first-child { border-left: 0; padding-left: 0; }
  .pf2-three h3 { font-size: calc(11.5 * var(--u)); }
  .pf2-bul li { font-size: calc(10.4 * var(--u)); }
  .pf2-req, .pf2-office { padding: calc(14 * var(--u)) calc(14 * var(--u)); }
  .pf2-req p { font-size: calc(13 * var(--u)); line-height: 1.3; }
  .pf2-req .pf2-btn { height: calc(36 * var(--u)); font-size: calc(11.5 * var(--u)); }
  .pf2-office h2 { font-size: calc(12.4 * var(--u)); }
  .pf2-office p { font-size: calc(11.3 * var(--u)); line-height: 1.35; }
  .pf2-more { font-size: calc(11.6 * var(--u)); }
  .pf2-contact li { font-size: calc(11.8 * var(--u)); min-height: calc(24 * var(--u)); gap: calc(12 * var(--u)); }
  .pf2-facts li { font-size: calc(11.8 * var(--u)); padding: calc(6 * var(--u)) 0; gap: calc(12 * var(--u)); }
  .pf2-yn { font-size: calc(10.4 * var(--u)); }
  .pf2-why .pf2-checks li { font-size: calc(10.9 * var(--u)); }
  .pf2-rows { gap: calc(11 * var(--u)); margin-top: calc(11 * var(--u)); padding-bottom: calc(6 * var(--u)); }
  .pf2-service-in { grid-template-columns: calc(256 * var(--u)) calc(270 * var(--u)) 1fr; gap: calc(26 * var(--u)); align-items: start; }
  .pf2-map { max-width: none; height: calc(69 * var(--u)); }
  .pf2-map img { height: 100%; object-fit: fill; }
  .pf2-primary strong, .pf2-areas strong { font-size: calc(12.4 * var(--u)); }
  .pf2-primary p, .pf2-areas p { font-size: calc(10.9 * var(--u)); line-height: 1.3; }
  .pf2-areas { border-left: 1px solid #e3e8ee; padding-left: calc(24 * var(--u)); }
  .pf2-fees-in { grid-template-columns: calc(425 * var(--u)) 1fr; gap: calc(30 * var(--u)); }
  .pf2-fees p { font-size: calc(10.9 * var(--u)); line-height: 1.32; }
  .pf2-head p { font-size: calc(11.3 * var(--u)); }
  .pf2-head .pf2-more { font-size: calc(11.1 * var(--u)); margin-top: calc(10 * var(--u)); }
  .pf2-guide-row { grid-template-columns: repeat(5, 1fr); gap: calc(10 * var(--u)); }
  .pf2-guide-row a { min-height: calc(52 * var(--u)); padding: calc(6 * var(--u)) calc(10 * var(--u)); gap: calc(12 * var(--u)); }
  .pf2-guide-row .ic { width: calc(28 * var(--u)); height: calc(28 * var(--u)); }
  .pf2-guide-row strong { font-size: calc(11.1 * var(--u)); }
  .pf2-guide-row em { font-size: calc(8.7 * var(--u)); }
  .pf2-sim-row { gap: calc(11 * var(--u)); }
  .pf2-sim-photo { width: calc(62 * var(--u)); height: calc(74 * var(--u)); }
  .pf2-sim-txt strong { font-size: calc(12.4 * var(--u)); }
  .pf2-sim-txt small { font-size: calc(10.1 * var(--u)); }
  .pf2-sim-tags i { font-size: calc(9.4 * var(--u)); }
  .pf2-disc { font-size: calc(9.7 * var(--u)); }
}

/* ===== Logo ===== */
.brand-logo { display: block; height: 42px; width: auto; max-width: none; }
.topbar-logo { display: block; height: 38px; width: auto; max-width: none; }
.corp-logo { max-width: 180px; }
footer.site .brand-logo { height: 54px; }
@media (min-width: 1024px) {
  .site-head-in { height: calc(66 * var(--u)); }
  .site-head .brand img.brand-logo { width: auto; height: calc(54 * var(--u)); }
  footer.site .brand img.brand-logo { width: auto; height: calc(48 * var(--u)); }
  footer.site { height: calc(134 * var(--u)); }
  .foot-brand p { margin-top: calc(4 * var(--u)); }
  .foot-bottom { top: calc(110 * var(--u)); }
}

/* ===== Consultation form: minimal, labels live inside the fields ===== */
.pf2-formcard { padding: 10px 12px; scroll-margin-top: 90px; }
.pf2-formcard h2 { margin-bottom: 6px; font-size: 1rem; }
.pf2-consult { display: grid; gap: 6px; }
.pf2-r2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pf2-in { width: 100%; min-width: 0; height: 36px; padding: 0 9px; border: 1px solid #cdd5de; border-radius: 6px; background: #fff; color: var(--d-ink); font: 500 16px var(--d-sans); }
select.pf2-in { padding-right: 4px; text-overflow: ellipsis; }
textarea.pf2-in { min-height: 0; height: 54px; padding: 7px 9px; resize: none; line-height: 1.3; }
.pf2-in::placeholder { color: #66758a; opacity: 1; }
.pf2-in.bad, .pf2-ck.bad span { border-color: var(--err); color: var(--err); }
.pf2-in:focus { border-color: var(--d-btn); outline: 2px solid color-mix(in srgb, var(--d-btn) 30%, transparent); outline-offset: 0; }
.pf2-cks { display: grid; gap: 2px; margin: 0; }
.pf2-ck { display: flex; gap: 7px; align-items: flex-start; font-size: .74rem; line-height: 1.25; color: var(--d-slate); padding: 2px 0; min-height: 24px; cursor: pointer; }
.pf2-ck input { width: 16px; height: 16px; margin: 1px 0 0; flex: none; accent-color: var(--d-btn); }
.pf2-submit { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 38px; border: 0; border-radius: 6px; background: var(--d-btn); color: #fff; font: 700 .92rem var(--d-sans); cursor: pointer; }
.pf2-submit:hover { filter: brightness(1.1); }
.pf2-submit[disabled] { opacity: .65; cursor: progress; }
.pf2-privacy { margin: 0; text-align: center; font-size: .68rem; color: var(--d-slate); display: block; }
.pf2-formcard .alert { margin: 0 0 6px; padding: 6px 8px; font-size: .78rem; }
.pf2-formcard .alert ul { margin: 2px 0 0; padding-left: 16px; }
@media (min-width: 1024px) {
  .pf2-formcard { padding: calc(10 * var(--u)) calc(12 * var(--u)); }
  .pf2-formcard h2 { font-size: calc(13 * var(--u)); margin-bottom: calc(6 * var(--u)); }
  .pf2-consult { gap: calc(6 * var(--u)); }
  .pf2-r2 { gap: calc(6 * var(--u)); }
  .pf2-in { height: calc(30 * var(--u)); font-size: max(13px, calc(10.2 * var(--u))); padding: 0 calc(8 * var(--u)); border-radius: calc(5 * var(--u)); }
  textarea.pf2-in { min-height: 0; height: calc(44 * var(--u)); padding: calc(6 * var(--u)) calc(8 * var(--u)); }
  .pf2-ck { font-size: calc(8.4 * var(--u)); min-height: 0; }
  .pf2-ck input { width: calc(13 * var(--u)); height: calc(13 * var(--u)); min-width: 13px; min-height: 13px; }
  .pf2-submit { min-height: calc(32 * var(--u)); font-size: calc(11.2 * var(--u)); }
  .pf2-privacy { font-size: calc(8 * var(--u)); }
}

/* left column stretches to the right column's height: no empty strip under the last card */
.pf2-left { display: flex; flex-direction: column; }
.pf2-left > * { flex: none; }
.pf2-left > .pf2-fees { flex: 1 1 auto; }
.pf2-right { align-content: start; }
.pf2-sent + * { display: none; }
@media (min-width: 1024px) {
  .pf2-left { gap: calc(11 * var(--u)); }
  .pf2-service-in { grid-template-columns: calc(190 * var(--u)) 1fr; gap: calc(14 * var(--u)) calc(20 * var(--u)); }
  .pf2-service .pf2-areas { grid-column: 2; border-left: 0; padding-left: 0; }
  .pf2-service .pf2-map { grid-row: 1 / span 2; }
  .pf2-fees-in { grid-template-columns: 1fr; gap: calc(8 * var(--u)); }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .pf2-service-in { grid-template-columns: 200px 1fr; }
  .pf2-service .pf2-areas { grid-column: 2; }
  .pf2-fees-in { grid-template-columns: 1fr; }
}

.pf2-note { position: relative; }
.pf2-note .pf2-count { position: absolute; right: 7px; bottom: 3px; margin: 0; padding: 0 3px; background: #fff; font-size: .62rem; line-height: 1.2; pointer-events: none; }

/* Columns are balanced by content; only the LAST card of each column absorbs the small remainder */
@media (min-width: 1024px) {
  .pf2-grid { align-items: stretch; }
  .pf2-left, .pf2-right { display: flex; flex-direction: column; }
  .pf2-left > *, .pf2-right > * { flex: 1 1 auto; }
  .pf2-left > .pf2-top, .pf2-right > .pf2-formcard, .pf2-right > .pf2-side { flex: none; }
  .pf2-right { padding-top: calc(50 * var(--u)); }
  .pf2-sim-side .pf2-sim-row { grid-template-columns: 1fr; gap: calc(8 * var(--u)); }
  .pf2-sim-side .pf2-sim-card { padding: calc(6 * var(--u)); }
  .pf2-sim-side .pf2-sim-photo { width: calc(48 * var(--u)); height: calc(58 * var(--u)); }
  .pf2-sim-side .pf2-sim-txt strong { font-size: calc(11.4 * var(--u)); }
  .pf2-sim-side .pf2-head { display: block; }
  .pf2-sim-side .pf2-head h2 { font-size: calc(13.4 * var(--u)); }
  .pf2-sim-side .pf2-head .pf2-more { display: inline-block; margin: 0 0 calc(8 * var(--u)); }
}
.pf2-readmore { margin-top: 4px; }
.pf2-readmore summary { cursor: pointer; color: var(--d-teal); font-weight: 700; font-size: .82rem; list-style: none; min-height: 28px; display: flex; align-items: center; }
.pf2-readmore summary::-webkit-details-marker { display: none; }
.pf2-readmore[open] summary { display: none; }

/* ===== States directory ===== */
.st-hero { background: linear-gradient(180deg, #eef5f7 0, #f6fafb 100%); }
.st-hero-in { display: grid; gap: 14px; padding-top: 14px; padding-bottom: 16px; }
.st-eyebrow { display: flex; align-items: center; gap: 12px; color: #a87a2d; font-weight: 700; font-size: .72rem; letter-spacing: .16em; margin: 0 0 8px; }
.st-eyebrow::before { content: ""; width: 24px; height: 2px; background: #c79a4a; }
.st-hero h1 { font-family: var(--d-serif); font-weight: 800; font-size: 2.1rem; line-height: 1.08; color: var(--d-ink); margin: 0 0 12px; letter-spacing: -.01em; }
.st-hero h1 span { color: var(--d-teal); }
.st-lead { font-size: 1rem; color: #3d4c63; margin: 0 0 12px; }
.st-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .84rem; color: var(--d-slate); }
.st-facts li { display: inline-flex; align-items: center; gap: 6px; }
.st-facts .ic-sm { color: var(--d-teal); }
.st-map { position: relative; display: none; }
.st-map img { width: 100%; height: auto; -webkit-mask-image: radial-gradient(ellipse at center, #000 62%, transparent 100%); mask-image: radial-gradient(ellipse at center, #000 62%, transparent 100%); }
.st-pill { z-index: 2; position: absolute; display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #e4eaf0; border-radius: 99px; padding: 6px 14px; font-size: .68rem; font-weight: 700; color: #4d5f78; box-shadow: 0 2px 8px rgba(20, 36, 58, .08); text-decoration: none; letter-spacing: .04em; }
.st-pill-a { left: 3%; top: 8%; }
.st-pill-b { right: 3%; bottom: 8%; border-radius: 8px; padding: 9px 14px; font-size: .74rem; letter-spacing: 0; color: var(--d-teal); }
.st-searchwrap { padding-bottom: 20px; }
.st-search { display: grid; gap: 8px; background: #11243f; border-radius: 12px; padding: 12px; box-shadow: 0 10px 28px rgba(17, 36, 63, .22); }
.st-search-in { display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 8px; padding: 0 14px; min-height: 46px; color: #7b8aa0; }
.st-search-in input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: 500 16px var(--d-sans); color: var(--d-ink); height: 44px; }
.st-search button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; border: 0; border-radius: 8px; background: #0e6f68; color: #fff; font: 700 .95rem var(--d-sans); padding: 0 22px; cursor: pointer; }
.st-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0 0; font-size: .82rem; color: var(--d-ink); }
.st-chips a { border: 1px solid #d5dee8; background: #fff; border-radius: 99px; padding: 5px 12px; text-decoration: none; color: var(--d-ink); font-size: .76rem; }
.st-sec { padding-top: 32px; padding-bottom: 8px; }
.st-sec h2, .st-two h2, .st-cta h2 { font-family: var(--d-serif); font-weight: 800; font-size: 1.55rem; line-height: 1.15; color: var(--d-ink); margin: 0 0 6px; }
.st-sec p { color: #51617a; }
.st-sec-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.st-sec-head p { margin: 0; font-size: .9rem; }
.st-more { display: inline-flex; align-items: center; gap: 6px; color: var(--d-teal); font-weight: 700; text-decoration: none; font-size: .88rem; min-height: 40px; }
.st-pop { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.st-pop-card { position: relative; display: grid; gap: 3px; padding: 14px; border: 1px solid #dfe7ee; border-radius: 12px; text-decoration: none; color: var(--d-ink); background: #fff; }
.st-pop-card.c0 { background: linear-gradient(135deg, #fbf7ee, #fff); }
.st-pop-card.c1 { background: linear-gradient(135deg, #eef4fb, #fff); }
.st-pop-card.c2 { background: linear-gradient(135deg, #f2f5fb, #fff); }
.st-pop-card.c3 { background: linear-gradient(135deg, #eef8f1, #fff); }
.st-code { justify-self: start; border: 1px solid #d5dee8; background: #fff; border-radius: 6px; padding: 2px 9px; font-weight: 700; font-size: .78rem; margin-bottom: 8px; }
.st-ne { position: absolute; right: 14px; top: 14px; color: #6a7b92; }
.st-pop-card strong { font-family: var(--d-serif); font-size: 1.3rem; }
.st-n { font-size: .8rem; color: #4d5f78; }
.st-n b { color: var(--d-teal); font-size: .95rem; }
.st-pop-card small { color: #7b8aa0; font-size: .72rem; }
.st-band { background: #f1f6f8; border-top: 1px solid #e2eaf0; border-bottom: 1px solid #e2eaf0; margin-top: 28px; padding: 28px 0 30px; }
.st-jump { display: flex; gap: 6px; flex-wrap: wrap; }
.st-jump a { border: 1px solid #d5dee8; background: #fff; border-radius: 6px; padding: 5px 10px; font-size: .74rem; font-weight: 700; color: var(--d-ink); text-decoration: none; }
.st-grid { background: #fff; border: 1px solid #e0e8ee; border-radius: 12px; padding: 8px 14px; columns: 2; column-gap: 0; }
.st-grid a, .st-terr a { display: flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; color: var(--d-ink); break-inside: avoid; padding: 0 6px; scroll-margin-top: 90px; }
.st-grid a[hidden], .st-terr a[hidden] { display: none; }
.st-grid a span, .st-terr a span { font-weight: 700; font-size: .9rem; flex: 1; }
.st-grid a em, .st-terr a em { font-style: normal; color: #8393a8; font-size: .78rem; }
.st-grid a i, .st-terr a i { font-style: normal; color: #6a7b92; }
.st-grid a:hover, .st-terr a:hover { background: #f2f7f8; border-radius: 6px; }
.st-h3 { font-family: var(--d-serif); font-size: 1.1rem; margin: 22px 0 2px; color: var(--d-ink); }
.st-sub { margin: 0 0 10px; font-size: .85rem; color: #51617a; }
.st-terr { display: grid; grid-template-columns: 1fr; gap: 8px; }
.st-terr a { background: #fff; border: 1px solid #e0e8ee; border-radius: 8px; padding: 0 14px; }
.st-noresult { margin: 12px 0 0; color: var(--err); font-weight: 600; }
.st-areas { display: grid; gap: 10px; }
.st-areas a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid #dfe7ee; border-radius: 10px; text-decoration: none; color: var(--d-ink); }
.st-areas strong { display: block; font-size: .92rem; }
.st-areas small { display: block; color: #6a7b92; font-size: .76rem; }
.st-areas span:nth-child(2) { flex: 1; }
.st-areas i { font-style: normal; color: #8393a8; }
.st-ic { width: 36px; height: 36px; border-radius: 8px; background: #e6f2f0; display: grid; place-items: center; color: var(--d-teal); flex: none; }
.st-ic .ic { width: 20px; height: 20px; }
.st-two { display: grid; gap: 14px; padding-top: 28px; }
.st-card { background: #f4f8f9; border: 1px solid #e0e8ee; border-radius: 12px; padding: 18px 20px; }
.st-card h2 { font-size: 1.3rem; }
.st-card p { color: #4d5f78; font-size: .9rem; }
.st-steps { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 14px; }
.st-steps li { display: flex; gap: 12px; align-items: flex-start; }
.st-steps li > span { width: 28px; height: 28px; border-radius: 50%; background: #dcecee; color: #0e6f68; font-weight: 700; display: grid; place-items: center; flex: none; font-size: .85rem; }
.st-steps strong { display: block; font-size: .92rem; color: var(--d-ink); }
.st-steps small { display: block; color: #51617a; font-size: .82rem; }
.st-faq details { border-bottom: 1px solid #e0e8ee; }
.st-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; cursor: pointer; padding: 14px 0; font-weight: 700; font-size: .95rem; color: var(--d-ink); min-height: 48px; }
.st-faq summary::-webkit-details-marker { display: none; }
.st-faq details[open] summary .ic-sm { transform: rotate(180deg); }
.st-faq p { margin: 0 0 14px; color: #51617a; font-size: .9rem; }
.st-cta { background: #e8f1f2; margin-top: 34px; }
.st-cta-in { display: grid; gap: 12px; padding-top: 22px; padding-bottom: 22px; }
.st-cta h2 { font-size: 1.3rem; margin: 0 0 2px; }
.st-cta p { margin: 0; color: #51617a; font-size: .88rem; }
.st-cta nav { display: flex; flex-wrap: wrap; gap: 8px; }
.st-cta nav a { background: #fff; border: 1px solid #d5dee8; border-radius: 8px; padding: 9px 14px; text-decoration: none; color: var(--d-ink); font-weight: 600; font-size: .85rem; }
@media (min-width: 640px) {
  .st-pop { grid-template-columns: repeat(4, 1fr); }
  .st-grid { columns: 3; }
  .st-terr { grid-template-columns: repeat(2, 1fr); }
  .st-areas { grid-template-columns: repeat(2, 1fr); }
  .st-two { grid-template-columns: 1fr 1fr; }
  .st-search { grid-template-columns: 1fr auto; padding: 14px; }
  .st-cta-in { grid-template-columns: 1fr auto; align-items: center; }
}
@media (min-width: 1024px) {
  body.bare .dwrap { max-width: 1240px; }
  .st-hero-in { grid-template-columns: 1fr 1fr; align-items: center; padding-top: 14px; padding-bottom: 8px; min-height: 330px; }
  .st-map { display: block; }
  .st-hero h1 { font-size: clamp(2.4rem, 3.2vw, 3.1rem); }
  .st-lead { max-width: 560px; }
  .st-grid { columns: 4; padding: 10px 18px; }
  .st-grid a { min-height: 48px; }
  .st-terr { grid-template-columns: repeat(3, 1fr); }
  .st-areas { grid-template-columns: repeat(3, 1fr); }
  .st-search { padding: 16px; border-radius: 14px; }
  .st-sec h2 { font-size: 1.9rem; }
}

.st-grid a + a { }
@media (min-width: 1024px) { .st-grid { column-rule: 1px solid #e6edf2; } }

/* ===== One shared page width on every page (header, content, footer share the same left/right edges) ===== */
@media (min-width: 1024px) {
  :root { --sw: calc(1024 * var(--u)); --sp: calc(26 * var(--u)); }
  .site-util .container, .site-head .container, footer.site .container, main .container, .topbar .container,
  body.bare .dwrap, .dwrap, .pf2-wrap, .hx-two, .hx-sec.pa, .hx-in, .hx-stats ul, body.bare main .wrap {
    width: var(--sw); max-width: 100%; margin-left: auto; margin-right: auto; padding-left: var(--sp); padding-right: var(--sp); box-sizing: border-box;
  }
  footer.site > .container { padding-left: 0; padding-right: 0; }
  .hx-in { padding-left: 0; padding-right: 0; }
  .pf2-grid { grid-template-columns: minmax(0, 1fr) calc(273 * var(--u)); }
  .pa-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .hx-two.s1 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .hx-two.s2, .hx-two.s3 { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
}

/* ===== A-Z directory + SmartDirectoryLinks ===== */
.az-grid { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; }
.az-grid-wide { grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); }
.az-grid a { display: grid; place-items: center; gap: 0; min-height: 56px; border: 1px solid var(--d-line); border-radius: 10px; background: #fff; text-decoration: none; color: var(--d-ink); padding: 6px 4px; }
.az-grid a:hover { border-color: var(--d-teal); background: #f2f8f7; }
.az-grid strong { font-family: var(--d-serif); font-size: 1.25rem; line-height: 1.1; }
.az-grid small { color: var(--d-slate); font-size: .72rem; }
.az-list { margin: 12px 0; padding-left: 38px; columns: 1; }
.az-list li { padding: 6px 0; break-inside: avoid; border-bottom: 1px solid #eef1f4; }
.az-list a { font-weight: 600; color: var(--d-ink); text-decoration: none; }
.az-list a:hover { color: var(--d-teal); text-decoration: underline; }
.az-list .small { display: block; }
.sdl { background: #f4f8f9; border-top: 1px solid var(--d-line); margin-top: 28px; }
.sdl-in { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; padding-top: 18px; padding-bottom: 18px; }
.sdl-g h2 { font: 700 .74rem var(--d-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--d-slate); margin: 0 0 6px; }
.sdl-g ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sdl-g a { display: inline-block; padding: 6px 11px; border: 1px solid #d5dee8; border-radius: 99px; background: #fff; color: var(--d-ink); text-decoration: none; font-size: .8rem; font-weight: 500; line-height: 1.2; }
.sdl-g a:hover { border-color: var(--d-teal); color: var(--d-teal); }
@media (min-width: 640px) { .az-list { columns: 2; column-gap: 28px; } .sdl-in { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .az-list { columns: 3; } .sdl-in { padding-top: calc(16 * var(--u)); padding-bottom: calc(16 * var(--u)); } .sdl-g h2 { font-size: calc(9.5 * var(--u)); } .sdl-g a { font-size: calc(10.5 * var(--u)); padding: calc(5 * var(--u)) calc(10 * var(--u)); } }


/* --- mobile home (below 1024px): navy hero + statue, white search card, stat strip, pastel practice tiles --- */
.hx-how-m { display: none; }
@media (max-width: 1023px) {
  .hx { background: #0c2750; color: #fff; }
  .hx-bg { display: none; }
  .hx { background: #0c2750 url(/assets/img/hero-m.webp) right top / auto 100% no-repeat; }
  .hx::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(8, 24, 58, .92) 0%, rgba(8, 24, 58, .72) 52%, rgba(8, 24, 58, .1) 100%); }
  .hx-in { position: relative; z-index: 2; padding-top: 20px; padding-bottom: 18px; }
  .hx-eyebrow { color: #f3c13a; font-size: .8rem; letter-spacing: .14em; }
  .hx h1 { color: #fff; font-size: 2.05rem; line-height: 1.1; max-width: 72%; text-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
  .hx-lead { color: #fff; font-size: 1.02rem; line-height: 1.38; max-width: 82%; margin-bottom: 18px; }
  .hx-tabs { display: none; }
  .hx-search { gap: 10px; padding: 14px; border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, .28); }
  .hx-field { min-height: 56px; border-radius: 10px; padding: 0 14px; position: relative; }
  .hx-field > .ic { color: #0c5d4b; width: 24px; height: 24px; }
  .hx-field label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .hx-field select { color: var(--d-ink); font-size: 1.05rem; min-height: 54px; appearance: none; -webkit-appearance: none; padding-right: 26px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2308183a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center / 18px; }
  .hx-go { min-height: 56px; border-radius: 10px; font-size: 1.12rem; background: linear-gradient(180deg, #0f6b55, #0a4d3d); }
  .hx-pop { flex-wrap: nowrap; overflow-x: auto; gap: 8px; margin: 12px -2px 0; padding: 2px; color: var(--d-ink); scrollbar-width: none; }
  .hx-pop::-webkit-scrollbar { display: none; }
  .hx-search + .hx-pop { background: #fff; margin: -4px 0 0; padding: 0 14px 14px; border-radius: 0 0 16px 16px; }
  .hx-pop > span { flex: none; white-space: nowrap; }
  .hx-pop a { flex: none; background: #eef2f6; border-color: #eef2f6; font-size: .92rem; min-height: 38px; }
  .hx-stats { background: #fff; box-shadow: none; border: 0; }
  .hx-stats ul { grid-template-columns: repeat(4, 1fr); gap: 0; padding-top: 16px; padding-bottom: 16px; }
  .hx-stats li { flex-direction: column; text-align: center; gap: 6px; padding: 0 4px; border-left: 1px solid var(--d-line); }
  .hx-stats li:first-child { border-left: 0; }
  .hx-stats li:nth-child(n+5) { display: none; }
  .hx-stats li .ic { width: 34px; height: 34px; color: #0a5a6e; }
  .hx-stats strong { font-size: .98rem; }
  .hx-stats span { font-size: .85rem; line-height: 1.2; }
  .pa .hx-head { align-items: center; flex-wrap: nowrap; }
  .pa .hx-head p { display: none; }
  .pa h2 { font-size: 1.2rem; line-height: 1.2; }
  .pa .hx-more { color: var(--d-teal); white-space: nowrap; min-height: 32px; }
  .pa-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .pa-card { border: 0; box-shadow: none; border-radius: 10px; background: #e8f1fa; }
  .pa-card img, .pa-desc, .pa-arrow { display: none; }
  .pa-body { padding: 12px 6px; flex-direction: column; align-items: center; text-align: center; gap: 6px; }
  .pa-txt { align-items: center; }
  .pa-txt strong { font-size: .88rem; line-height: 1.2; overflow-wrap: anywhere; }
  .pa-txt strong br { display: none; }
  .pa-ic .ic { width: 30px; height: 30px; }
  .pa-card:nth-child(2) { background: #fdf3e3; }
  .pa-card:nth-child(3) { background: #e3f6ee; }
  .pa-card:nth-child(4) { background: #fbe9ea; }
  .pa-card:nth-child(6) { background: #e6eefa; }
  .pa-card:nth-child(7) { background: #ece9f8; }
  .pa-card:nth-child(5), .pa-card:nth-child(8), .pa-card:nth-child(9), .pa-help { display: none; }
  .hx-how-m { display: flex; align-items: center; gap: 0; margin: 18px var(--gutter) 6px; background: #eef1fa; border-radius: 10px; overflow: hidden; text-decoration: none; color: var(--d-ink); }
  .hx-how-m img { width: 34%; height: 100%; min-height: 96px; object-fit: cover; }
  .hx-how-m > span { flex: 1; padding: 12px 14px; }
  .hx-how-m strong { display: block; font-family: var(--d-serif); font-size: 1.3rem; }
  .hx-how-m small { display: block; font-size: .95rem; line-height: 1.3; }
  .hx-how-m .ic { width: 40px; height: 40px; margin-right: 14px; color: #0f6b55; flex: none; }
}
@media (max-width: 1023px) {
  body.guest .topbar { background: #0c2750; border-bottom: 0; color: #fff; position: static; }
  body.guest .topbar-inner { height: 76px; }
  body.guest .logo { display: inline-flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; }
  .topbar-mark { height: 38px; flex: none; width: auto; }
  .topbar-word strong { display: block; font-family: var(--d-serif); font-size: 1.02rem; line-height: 1.1; color: #fff; white-space: nowrap; }
  .topbar-word em { font-style: normal; color: #f3c13a; }
  .topbar-word small { display: block; font-size: .5rem; letter-spacing: .1em; white-space: nowrap; text-transform: uppercase; color: #dbe6f5; }
  .topbar-lang { color: #fff; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; padding: 0 10px; min-height: 44px; border-right: 1px solid rgba(255, 255, 255, .25); }
  body.guest .topbar .icon-btn { color: #fff; }
  .hx { margin-top: 0; }
}
@media (min-width: 1024px) { .topbar-lang, .topbar-menu { display: none; } }
@media (max-width: 1023px) { body.guest .topbar-inner { gap: 4px; } body.guest .topbar-spacer { flex: 1 1 0; min-width: 0; } .topbar-lang { padding: 0 8px; } }
@media (max-width: 1023px) { .topbar-word strong { font-size: .9rem; } .topbar-word small { font-size: .44rem; } .topbar-mark { height: 32px; } body.guest .topbar .container { padding-left: 12px; padding-right: 8px; } }

/* --- mobile v2 (mock 19): home, listing, profile --- */
@media (max-width: 1023px) {
  /* home */
  .hx-eyebrow { display: none; }
  .hx h1 { font-size: 2.2rem; max-width: 74%; }
  .hx-lead { max-width: 74%; font-size: .98rem; }
  .hx-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; background: #fff; border-radius: 16px 16px 0 0; margin: 0; padding: 12px 12px 0; }
  .hx-tabs .hx-btn { min-height: 46px; border-radius: 10px; border: 0; font-size: .95rem; }
  .hx-tabs .hx-btn-fill { background: linear-gradient(180deg, #d4202a, #b3141c); }
  .hx-tabs .hx-btn-out { background: #eef2f8; color: var(--d-ink); }
  .hx-search { border-radius: 0 0 0 0; box-shadow: none; padding-top: 10px; }
  .hx-go { background: linear-gradient(180deg, #d4202a, #b3141c); }
  .hx-search + .hx-pop { display: none; }
  .hx-stats li:nth-child(2) strong, .hx-stats li:nth-child(3) strong { font-size: .92rem; }
  .pa-card { background: #fff; border: 1px solid var(--d-line); box-shadow: 0 2px 6px rgba(20, 36, 58, .06); }
  .pa-card:nth-child(n) { background: #fff; }
  .pa-ic { color: #14305e; }
  .pa h2 { font-size: 1.3rem; }
  /* listing */
  .dh { background: #fff; }
  .dh-bg { display: none; }
  .dh-in { padding-top: 6px; }
  .dh-eyebrow { display: none; }
  .dh h1 { font-size: 1.9rem; line-height: 1.1; color: var(--d-ink); }
  .dh-lead { color: var(--d-ink); font-size: .98rem; }
  .dh-bar { display: none; }
  .dland .dres-head { border: 1px solid #cfd8e3; border-radius: 10px; padding: 0 12px; min-height: 48px; align-items: center; margin-bottom: 14px; }
  .dland .dres-head h2 { font-size: 1rem; margin: 0; }
  .lr { background: #fff; border: 1px solid var(--d-line); border-radius: 14px; padding: 14px; box-shadow: 0 2px 8px rgba(20, 36, 58, .07); display: grid; grid-template-columns: 96px 1fr; gap: 6px 12px; }
  .lr-photo { width: 96px; height: 110px; border-radius: 8px; }
  .lr-main h3 { font-size: 1.25rem; }
  .lr-tags li { background: #e8f1fa; border-color: #e8f1fa; color: #14305e; }
  .lr-side { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .lr-ver { order: -1; }
  .lr-fill { background: #0c2750; border-color: #0c2750; }
  .lr-out { color: #0c2750; border-color: #b9c6d8; }
  /* profile */
  .pf-hero { background: #fff; }
  .pf-hero .dh-bg, .pf-hero::after { display: none; }
  .pf-hero-in { padding-bottom: 0; }
  .pf-hero-in .dh-eyebrow, .pf-eyebrow { display: none; }
  .pf-card { border-radius: 14px; }
  .pf-top { grid-template-columns: 104px 1fr; }
  .pf-photo { width: 104px; height: 124px; }
  .pf-id h1 { font-size: 1.6rem; }
  .pf-lead { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .pf-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .pf-actions .lr-btn { padding: 0 8px; }
  .pf-actions .lr-fill { background: #0f6b3a; border-color: #0f6b3a; }
  .pf-card h2 { font-size: 1.3rem; }
}

.dstats { list-style: none; margin: 0 0 12px; padding: 0; display: flex; gap: 10px; }
.dstats li { flex: 1; display: flex; align-items: center; gap: 8px; border: 1px solid var(--d-line); border-radius: 10px; padding: 10px 12px; background: #fff; color: var(--d-ink); }
.dstats .ic { width: 24px; height: 24px; flex: none; color: #14305e; }
.dstats strong { font-size: 1.05rem; }
.dstats span { color: var(--d-slate); font-size: .85rem; }
@media (min-width: 1024px) { .dstats { display: none; } }
@media (max-width: 1023px) {
  .pa-txt strong { overflow-wrap: normal; font-size: .84rem; }
  .pa-txt strong br { display: inline; }
  .pf-hero img, .pf-hero picture { display: none; }
  .pf-hero-in [class*="eyebrow"], .pf-hero-in .pf-kicker { display: none; }
  .pf-hero { background-image: none; }
}
@media (max-width: 1023px) {
  [class*="pf2-hero"] img, .pf2-hero .dh-bg { display: none; }
  .pf2-hero { background: #fff; background-image: none; }
  .pf2-hero::before, .pf2-hero::after { display: none; }
  .pf2-hero .dh-eyebrow { display: none; }
}


/* ===== Compact mobile layer (below 1024px only; desktop untouched). Tokens first, then shared components, then embedded labels. ===== */
@media (max-width: 1023px) {
  :root {
    --fs-base: 14px; --fs-sm: 12.6px; --fs-xs: 11.2px; --fs-nav: 10.5px;
    --tap: 36px; --tap-sm: 30px; --tap-chip: 30px; --tap-tab: 28px; --tap-icon: 32px;
    --s-1: 3px; --s-2: 6px; --s-3: 8px; --s-4: 11px; --s-5: 14px;
    --gutter: var(--s-4); --topbar-h: 40px; --bottomnav-h: 48px; --radius: 11px; --radius-sm: 8px;
    --embed-h: calc(var(--tap) + 6px);
  }
  body { font-size: var(--fs-base); line-height: 1.4; }
  h1, h2, h3 { letter-spacing: -.01em; font-weight: 700; margin-bottom: var(--s-2); line-height: 1.25; }
  h1 { font-size: 17px; } h2 { font-size: 15.4px; } h3 { font-size: 14.7px; }
  p { margin-bottom: var(--s-3); }
  .lead, .page-head .lead { font-size: var(--fs-base); }
  .small, .muted.small, .hint { font-size: var(--fs-sm); }
  .eyebrow, .badge, .pill { font-size: 11px; }
  main { padding: var(--s-4) 0 var(--s-5); }
  .page-head { margin: 0 0 var(--s-4); }
  .ic { width: 19px; height: 19px; } .ic-sm { width: 17px; height: 17px; } .ic-lg { width: 20px; height: 20px; }
  /* header, bottom nav */
  .topbar-inner { height: var(--topbar-h); gap: var(--s-2); }
  .topbar { padding-top: max(var(--s-1), env(safe-area-inset-top)); }
  .topbar-logo { height: 26px; }
  .icon-btn { width: var(--tap-icon); height: var(--tap-icon); }
  body.guest .topbar-inner { height: 44px; }
  body.guest .topbar-mark { height: 28px; }
  body.guest .topbar-word strong { font-size: .86rem; }
  body.guest .topbar-word small { font-size: .42rem; }
  .topbar-lang { min-height: var(--tap-icon); font-size: var(--fs-sm); }
  .bottomnav a { padding: var(--s-1) 2px; font-size: var(--fs-nav); gap: 1px; }
  .bottomnav .ic { width: 20px; height: 20px; }
  /* buttons, chips, tabs */
  .btn { min-height: var(--tap); padding: var(--s-2) var(--s-4); border-radius: 9px; font-size: var(--fs-base); gap: var(--s-2); }
  .btn-sm { min-height: var(--tap-sm); padding: var(--s-1) var(--s-3); font-size: var(--fs-sm); }
  .btn-block { width: 100%; }
  .chip-check span { min-height: var(--tap-chip); padding: var(--s-1) var(--s-3); font-size: var(--fs-sm); }
  .chips { gap: var(--s-2); }
  .hx-btn, .lr-btn { min-height: var(--tap); font-size: var(--fs-base); }
  .hx-go { min-height: 40px; font-size: var(--fs-base); }
  .hx-more, .card-title a, .row.between > a { min-height: var(--tap-sm); font-size: var(--fs-sm); }
  .hx-pop a { min-height: var(--tap-chip); padding: var(--s-1) var(--s-3); font-size: var(--fs-sm); }
  /* cards */
  .card, .pf-card, .hx-panel { padding: var(--s-3) var(--s-4); border-radius: var(--radius); }
  .card + .card { margin-top: var(--s-3); }
  .card-title { margin-bottom: var(--s-2); }
  .lr { padding: var(--s-3); gap: var(--s-1) var(--s-3); border-radius: var(--radius); }
  .lr-main h3 { font-size: 14.7px; }
  .lr-sub, .lr-loc, .lr-lang { font-size: var(--fs-sm); margin-bottom: var(--s-1); }
  .lr-tags li { font-size: 11px; padding: 1px var(--s-3); }
  .lr-list { gap: var(--s-3); }
  .hx-sec { padding-top: var(--s-4); }
  .hx-sec h2, .pa h2, .pf-card h2 { font-size: 15.4px; }
  .hx h1 { font-size: 26px; }
  .dh h1, .pf-id h1, .pf2-hero h1, #name-h, #st-h, main h1 { font-size: 17px; line-height: 1.2; }
  #st-h span { font-size: inherit; }
  .hx-lead, .dh-lead { font-size: var(--fs-base); }
  .hx-field, .dh-field { min-height: 40px; }
  .hx-field select, .dh-field select { min-height: 32px; font-size: var(--fs-base); }
  .hx-stats ul { padding-top: var(--s-3); padding-bottom: var(--s-3); }
  .hx-stats strong { font-size: var(--fs-sm); } .hx-stats span { font-size: 11px; }
  .pa-card .pa-body { padding: var(--s-3) var(--s-2); }
  .pa-txt strong { font-size: var(--fs-sm); }
  .pagination .pg, .pager .pg { min-width: var(--tap-icon); min-height: var(--tap-icon); font-size: var(--fs-sm); }
  .sdl a { min-height: var(--tap-tab); font-size: var(--fs-sm); }
  /* a title + one sentence + one button card becomes one strip */
  .card--row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 var(--s-3); align-items: center; }
  @media (min-width: 768px) { .card--row { grid-template-columns: auto minmax(0, 1fr) auto; } }
  @media (min-width: 768px) { form.grid { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: var(--s-2) var(--s-3); align-items: end; } }
  /* overflow guards */
  main, .card, .lr-main, .pf-id { min-width: 0; overflow-wrap: anywhere; }
  .btn:only-child:not(.btn-block) { align-self: start; }

  /* ---- embedded labels (label lives inside the control box) ---- */
  .field { margin-bottom: var(--s-3); }
  .field--e { position: relative; }
  .field--e > label {
    position: absolute; z-index: 1; top: 3px; left: calc(var(--s-3) + 1px); right: var(--s-5); margin: 0;
    overflow: hidden; color: var(--muted); font-size: calc(var(--fs-base) * .8); font-weight: 600; line-height: 1.2;
    white-space: nowrap; text-overflow: ellipsis; pointer-events: none; transition: top .12s, transform .12s, font-size .12s;
  }
  .field--e > label .optional { font-weight: 400; }
  .field--e > input:not([type=checkbox]):not([type=radio]):not([type=file]), .field--e > select, .field--e > textarea {
    min-height: var(--embed-h); padding: 15px var(--s-3) 1px; font-size: var(--fs-base); border-radius: 9px; line-height: 1.3;
  }
  .field--e > select { padding-inline-start: calc(var(--s-3) - 3px); }
  .field--e > textarea { min-height: 64px; padding-block: 18px var(--s-1); }
  .field--e > label:has(+ :is(input, textarea)[placeholder=" "]:placeholder-shown:not(:focus):not(:-webkit-autofill)) {
    top: calc(var(--embed-h) / 2); right: var(--s-2); transform: translateY(-50%); font-size: var(--fs-sm); font-weight: 500;
  }
  .field--e > label:has(+ textarea[placeholder=" "]:placeholder-shown:not(:focus)) { top: calc(var(--embed-h) / 2); }
  .field--e .field-error, .field--e .hint { margin: var(--s-1) 0 0; font-size: var(--fs-xs); }
  .field.has-error > input, .field.has-error > select, .field.has-error > textarea { border-color: var(--err); }
  @supports (-webkit-touch-callout: none) { input, select, textarea { font-size: 16px !important; } }
  .pf2-in, input.pf2-in, select.pf2-in { min-height: var(--tap); font-size: var(--fs-base); padding-top: var(--s-1); padding-bottom: var(--s-1); }
  textarea.pf2-in { height: 48px; min-height: 0; }
  body.guest .topbar-inner { height: 52px; gap: var(--s-2); }
  body.guest .topbar-mark { height: 34px; width: auto; }
  body.guest .topbar-word strong { font-size: 1rem; }
  body.guest .topbar-word small { font-size: .45rem; letter-spacing: .12em; }
  body.guest .topbar-word strong { font-size: .9rem; }
  body.guest .topbar-word em { color: #ff4a4f; }
  body.guest .topbar-mark { height: 32px; }
  body.guest .topbar { background: #fff; color: var(--d-ink); border-bottom: 1px solid var(--d-line); }
  body.guest .topbar-inner { height: 52px; }
  body.guest .topbar-logo { height: 42px; width: auto; }
  .topbar-lang, body.guest .topbar .icon-btn { color: var(--d-ink); }
  .topbar-lang { border-right-color: var(--d-line); }
}
