
/* Layout: expediente administrativo — azul de confianza para la marca, naranja solo para la acción principal */
:root {
  --paper: #fbfcfe;
  --paper-2: #eef3fa;
  --ink: #0f1d33;
  --ink-soft: #4a5872;
  --rule: #d6deea;
  --brand: #1f4fa3;
  --brand-soft: #e4ecf9;
  --cta: #e2621b;
  --cta-ink: #ffffff;
  --ok: #23794c;
  --f-display: "Bodoni Moda", "Didot", "Bodoni 72", "Georgia", serif;
  --f-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --f-mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;
  --s-1: .8125rem; --s0: 1rem; --s1: 1.25rem; --s2: 1.625rem; --s3: 2.25rem; --s4: clamp(2.5rem, 6vw, 4.25rem);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #0e1522; --paper-2: #172133; --ink: #e8eef8; --ink-soft: #a3b0c6; --rule: #2a3750;
    --brand: #8db1f2; --brand-soft: #1b2a47; --cta: #f08a45; --cta-ink: #1a0e05; --ok: #6cc596; color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #0e1522; --paper-2: #172133; --ink: #e8eef8; --ink-soft: #a3b0c6; --rule: #2a3750;
  --brand: #8db1f2; --brand-soft: #1b2a47; --cta: #f08a45; --cta-ink: #1a0e05; --ok: #6cc596; color-scheme: dark;
}

* { box-sizing: border-box; }
body {
  background: var(--paper); color: var(--ink);
  font-family: var(--f-body); font-size: var(--s0); line-height: 1.6;
  padding-inline: 20px; padding-block: 0;
}
.wrap { max-width: 1040px; margin-inline: auto; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 500; font-optical-sizing: auto; line-height: 1.1; text-wrap: balance; margin: 0; }
p { margin: 0; }
a { color: var(--brand); }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 2px; }
.label {
  font-family: var(--f-mono); font-size: var(--s-1); letter-spacing: .06em;
  text-transform: uppercase; color: var(--ink-soft);
}

/* Banderas dibujadas en CSS (los emoji de bandera no se ven en Windows) */
.flag {
  display: inline-block; width: 30px; height: 20px; border-radius: 2px; flex: none; position: relative; overflow: hidden;
  box-shadow: 0 0 0 1px rgba(15, 29, 51, .14);
}
.f-es { background: linear-gradient(#aa151b 25%, #f1bf00 25% 75%, #aa151b 75%); }
.f-ve { background: linear-gradient(#ffcc00 33.3%, #00247d 33.3% 66.6%, #cf142b 66.6%); }
.f-co, .f-ec { background: linear-gradient(#fcd116 50%, #003893 50% 75%, #ce1126 75%); }
.f-pe { background: linear-gradient(90deg, #d91023 33.3%, #fff 33.3% 66.6%, #d91023 66.6%); }
.f-ar { background: linear-gradient(#74acdf 33.3%, #fff 33.3% 66.6%, #74acdf 66.6%); }
.f-mx { background: linear-gradient(90deg, #006847 33.3%, #fff 33.3% 66.6%, #ce1126 66.6%); }
.f-bo { background: linear-gradient(#d52b1e 33.3%, #f9e300 33.3% 66.6%, #007934 66.6%); }
.f-py { background: linear-gradient(#d52b1e 33.3%, #fff 33.3% 66.6%, #0038a8 66.6%); }
.f-hn { background: linear-gradient(#00bce4 33.3%, #fff 33.3% 66.6%, #00bce4 66.6%); }
.f-gt { background: linear-gradient(90deg, #4997d0 33.3%, #fff 33.3% 66.6%, #4997d0 66.6%); }
.f-cl { background: linear-gradient(#0039a6, #0039a6) 0 0 / 33.4% 50% no-repeat, linear-gradient(#fff 50%, #d52b1e 50%); }
.f-cu { background: linear-gradient(#002a8f 20%, #fff 20% 40%, #002a8f 40% 60%, #fff 60% 80%, #002a8f 80%); }
.f-cu::before { content: ""; position: absolute; inset: 0; background: #cf142b; clip-path: polygon(0 0, 45% 50%, 0 100%); }
.f-do { background: linear-gradient(90deg, transparent 42%, #fff 42% 58%, transparent 58%), linear-gradient(#fff 40%, transparent 40% 60%, #fff 60%), conic-gradient(from 90deg at 50% 50%, #ce1126 25%, #002d62 25% 50%, #ce1126 50% 75%, #002d62 75%); }
.f-uy { background: linear-gradient(#fff, #fff) 0 0 / 40% 55.6% no-repeat, repeating-linear-gradient(#fff 0 11.1%, #0038a8 11.1% 22.2%); }
.f-uy::before { content: ""; position: absolute; left: 11%; top: 13%; width: 18%; height: 28%; border-radius: 50%; background: #fcd116; }
.f-br { background: #009c3b; }
.f-br::before { content: ""; position: absolute; inset: 0; background: #ffdf00; clip-path: polygon(50% 10%, 92% 50%, 50% 90%, 8% 50%); }
.f-br::after { content: ""; position: absolute; left: 36%; top: 29%; width: 28%; height: 42%; border-radius: 50%; background: #002776; }
.f-pt { background: linear-gradient(90deg, #006600 40%, #ff0000 40%); }
.f-it { background: linear-gradient(90deg, #009246 33.3%, #fff 33.3% 66.6%, #ce2b37 66.6%); }
.f-fr { background: linear-gradient(90deg, #0055a4 33.3%, #fff 33.3% 66.6%, #ef4135 66.6%); }
.f-de { background: linear-gradient(#000 33.3%, #dd0000 33.3% 66.6%, #ffce00 66.6%); }
.f-ro { background: linear-gradient(90deg, #002b7f 33.3%, #fcd116 33.3% 66.6%, #ce1126 66.6%); }
.f-ua { background: linear-gradient(#0057b7 50%, #ffd700 50%); }
.f-ru { background: linear-gradient(#fff 33.3%, #0039a6 33.3% 66.6%, #d52b1e 66.6%); }
.f-ma { background: #c1272d; }
.f-ma::before { content: "★"; position: absolute; inset: 0; display: grid; place-items: center; color: #006233; font-size: 13px; line-height: 1; }
.f-in { background: linear-gradient(#ff9933 33.3%, #fff 33.3% 66.6%, #138808 66.6%); }
.f-in::before { content: ""; position: absolute; left: 43%; top: 36%; width: 14%; height: 28%; border-radius: 50%; border: 1px solid #000080; }
.f-ng { background: linear-gradient(90deg, #008751 33.3%, #fff 33.3% 66.6%, #008751 66.6%); }
.f-cn { background: #de2910; }
.f-cn::before { content: "★"; position: absolute; left: 4px; top: 1px; color: #ffde00; font-size: 10px; line-height: 1; }
.f-eu { background: #003399; }
.f-eu::before { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 11px; transform: translate(-50%, -50%); border-radius: 50%; border: 2px dotted #ffcc00; }
.globe { width: 17px; height: 17px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; }

/* Cabecera */
header.top {
  display: flex; justify-content: space-between; align-items: center; gap: 12px 20px; flex-wrap: wrap;
  padding-block: 20px; border-bottom: 1px solid var(--rule);
}
.brand-link { display: flex; align-items: center; gap: 10px; font-family: var(--f-display); font-weight: 700; font-size: var(--s1); color: var(--ink); text-decoration: none; }
.brand-link span { color: var(--brand); }
.emblem { width: 34px; height: 34px; flex: none; }
.e-ring { fill: none; stroke: var(--brand); }
.e-fill { fill: var(--brand); }
.e-acc { fill: var(--cta); }
.e-acc-s { fill: none; stroke: var(--cta); }

/* Contacto directo */
.talk { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 40px; }
.talk-card { border: 1.5px solid var(--brand); border-radius: 6px; padding: 22px; display: grid; gap: 10px; align-content: start; min-width: 0; }
.talk-card .big { font-family: var(--f-display); font-weight: 700; font-size: clamp(1.4rem, 3.4vw, 1.9rem); color: var(--brand); overflow-wrap: anywhere; user-select: all; font-variant-numeric: lining-nums; }
.talk-card p { color: var(--ink-soft); font-size: .95rem; }
.talk-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.talk-row .btn { padding: 10px 16px; font-size: .95rem; }
.btn.wa { background: #1f9d55; border-color: #1f9d55; color: #fff; }
.btn.small { border-color: var(--rule); color: var(--ink-soft); background: transparent; }
.fab { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); display: grid; gap: 10px; z-index: 20; }
.fab a { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; box-shadow: 0 4px 14px rgba(15, 29, 51, .25); }
.fab a svg { width: 24px; height: 24px; fill: #fff; }
.fab .f-call { background: var(--cta); }
.fab .f-wa { background: #1f9d55; }
.head-right { display: flex; align-items: center; gap: 12px 24px; flex-wrap: wrap; }
nav { display: flex; gap: 18px; flex-wrap: wrap; }
nav a { color: var(--ink-soft); text-decoration: none; font-weight: 500; font-size: .95rem; }
nav a:hover { color: var(--ink); }
.langs { display: flex; border: 1px solid var(--rule); border-radius: 4px; overflow: hidden; }
.langs button {
  font: 500 .8rem var(--f-mono); letter-spacing: .04em; padding: 6px 10px; border: 0; background: var(--paper);
  color: var(--ink-soft); cursor: pointer;
}
.langs button + button { border-left: 1px solid var(--rule); }
.langs button[aria-pressed="true"] { background: var(--brand); color: var(--paper); }

/* Hero */
.hero {
  display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; align-items: center;
  padding-block: 56px 40px;
}
.hero h1 { font-size: clamp(2rem, 4.6vw, 3.25rem); margin-top: 14px; }
.hero h1 em { font-style: italic; color: var(--brand); }
.hero .hero-sub { font-family: var(--f-display); font-size: clamp(1.35rem, 2.6vw, 1.75rem); line-height: 1.2; margin-top: 14px; color: var(--ink); }
.hero .hero-sub em { font-style: italic; color: var(--brand); }
.hero .lede { margin-top: 20px; font-size: 1.15rem; color: var(--ink-soft); max-width: 34em; }
.cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.trust { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 24px; padding: 0; list-style: none; font-weight: 600; font-size: .95rem; }
.trust li { display: flex; gap: 6px; align-items: center; }
.trust li::before { content: "✓"; color: var(--ok); font-weight: 700; }
.btn {
  display: inline-block; padding: 13px 22px; border-radius: 4px; font-weight: 600; text-decoration: none;
  border: 1.5px solid var(--brand); font-family: var(--f-body); font-size: 1rem; cursor: pointer;
}
.btn.primary { background: var(--cta); border-color: var(--cta); color: var(--cta-ink); }
.btn.ghost { background: transparent; color: var(--brand); }
.btn:hover { filter: brightness(1.07); }
.btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; filter: none; }

.stamp-box { display: grid; place-items: center; }
.stamp {
  width: min(280px, 100%); aspect-ratio: 1; max-width: 100%; border-radius: 50%;
  border: 3px solid var(--brand); outline: 1px solid var(--brand); outline-offset: -14px;
  display: grid; place-items: center; text-align: center; color: var(--brand);
  transform: rotate(-11deg); opacity: .94;
  animation: thump .7s cubic-bezier(.2,.9,.3,1.3) .2s both;
}
.stamp .inner { display: grid; gap: 6px; padding: 30px; justify-items: center; }
.stamp .big { font-family: var(--f-display); font-weight: 700; font-size: clamp(1.4rem, 3.6vw, 2rem); letter-spacing: .04em; }
.stamp .small { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.stamp .line { height: 1px; width: 80%; background: var(--brand); }
@keyframes thump { from { transform: rotate(-11deg) scale(1.25); opacity: 0; } to { transform: rotate(-11deg) scale(1); opacity: .94; } }
@media (prefers-reduced-motion: reduce) { .stamp { animation: none; } }

/* Franja de países */
.countries { padding-block: 28px 36px; display: grid; gap: 14px; }
.flags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.flags li {
  display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 7px; border: 1px solid var(--rule);
  border-radius: 999px; font-size: .9rem; background: var(--paper);
}
.flags li.more { color: var(--ink-soft); padding-left: 12px; }

/* Cifras */
.stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid var(--rule); border-radius: 6px; margin-bottom: 48px; background: var(--brand-soft); overflow: hidden; }
.stat { padding: 28px 32px; display: grid; gap: 4px; position: relative; min-width: 0; }
.stat + .stat { border-left: 1px solid var(--rule); }
.stat-num { font-family: var(--f-display); font-weight: 700; font-size: clamp(3rem, 8vw, 5rem); line-height: 1; color: var(--brand); font-variant-numeric: tabular-nums lining-nums; }
.stat-txt { font-weight: 600; font-size: 1.05rem; }
.stat-bar { position: absolute; left: 0; bottom: 0; height: 4px; width: 100%; background: var(--cta); transform-origin: left; }
.stats.run .stat-bar { animation: bar 1.8s cubic-bezier(.2,.7,.2,1) both; }
@keyframes bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .stats.run .stat-bar { animation: none; } }

/* Secciones */
section { padding-block: 56px; border-top: 1px solid var(--rule); }
.sec-head { display: grid; gap: 10px; margin-bottom: 32px; max-width: 40em; }
.sec-head h2 { font-size: var(--s3); }
.sec-head p { color: var(--ink-soft); }

/* Homologación vs equivalencia */
.compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; }
.compare article { padding: 28px; display: grid; gap: 14px; align-content: start; min-width: 0; }
.compare article + article { border-left: 1px solid var(--rule); }
.compare h3 { font-size: var(--s2); }
.compare ul { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; }
.compare .use { font-size: .95rem; background: var(--paper-2); padding: 12px 14px; border-radius: 4px; }
.compare .use strong { color: var(--brand); }

/* Simuladores */
.sim-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.sim { border: 1px solid var(--rule); border-radius: 6px; padding: 24px; display: grid; gap: 18px; min-width: 0; background: var(--paper); }
.sim h3 { font-size: var(--s2); }
.q { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; min-width: 0; }
.q legend, .q > label.qt { font-weight: 600; font-size: .98rem; padding: 0; margin-bottom: 4px; }
.opts { display: flex; flex-wrap: wrap; gap: 8px; }
.opt { position: relative; }
.opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opt > span {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; border: 1px solid var(--rule); border-radius: 4px;
  cursor: pointer; font-size: .93rem; background: var(--paper); color: var(--ink);
}
.opt input:checked + span { border-color: var(--brand); background: var(--brand-soft); color: var(--brand); font-weight: 600; }
.opt input:focus-visible + span { outline: 2px solid var(--brand); outline-offset: 2px; }
.opt .flag { width: 21px; height: 14px; }
.check-inline { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; font-size: .95rem; }
.check-inline input { width: 18px; height: 18px; margin-top: 3px; }
.verdict { border-left: 3px solid var(--brand); background: var(--brand-soft); padding: 16px 18px; border-radius: 0 4px 4px 0; display: grid; gap: 8px; }
.verdict .label { color: var(--brand); }
.verdict h4 { font-size: var(--s2); line-height: 1.15; }
.verdict p { font-size: .95rem; }
.verdict .warn { font-weight: 500; }
.doclist { list-style: none; margin: 0; padding: 0; display: grid; }
.doclist li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding-block: 12px; border-bottom: 1px solid var(--rule); }
.doclist li:last-child { border-bottom: 0; }
.doclist strong { font-size: .98rem; }
.doclist p { grid-column: 1 / -1; color: var(--ink-soft); font-size: .92rem; }
.tag { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; padding: 3px 7px; border-radius: 3px; align-self: start; white-space: nowrap; }
.tag.req { background: var(--brand); color: var(--paper); }
.tag.maybe { border: 1px solid var(--rule); color: var(--ink-soft); }
.tag.mine { border: 1px solid var(--ok); color: var(--ok); }
.lang-note { background: var(--paper-2); padding: 14px 16px; border-radius: 4px; font-size: .95rem; display: grid; gap: 6px; }
.sim-foot { font-size: .85rem; color: var(--ink-soft); }

/* Precio */
.price-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.fee { border: 1.5px solid var(--brand); border-radius: 6px; padding: 28px; background: var(--paper); display: grid; gap: 20px; }
.fee-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: baseline; padding-bottom: 18px; border-bottom: 1px dashed var(--rule); }
.fee-row h3 { font-size: var(--s1); font-family: var(--f-body); font-weight: 700; }
.fee-row p { color: var(--ink-soft); font-size: .95rem; margin-top: 4px; }
.amount { font-family: var(--f-display); font-weight: 700; font-size: var(--s3); color: var(--brand); white-space: nowrap; font-variant-numeric: tabular-nums lining-nums; }
.amount small { font-family: var(--f-body); font-weight: 400; font-size: .9rem; color: var(--ink-soft); }
.amount small[data-t="incl"] { display: block; text-align: right; white-space: normal; margin-top: 4px; }
@media (max-width: 760px) { .fee-row { grid-template-columns: minmax(0, 1fr); } .amount small[data-t="incl"] { text-align: left; } }
.note { font-size: .9rem; color: var(--ink-soft); background: var(--paper-2); padding: 12px 14px; border-radius: 4px; }
.includes { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.includes li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; }
.includes li::before { content: "✓"; color: var(--ok); font-weight: 700; }
.pay { border-top: 1px solid var(--rule); padding-top: 20px; display: grid; gap: 14px; }
.pay-row { display: flex; flex-wrap: wrap; gap: 10px; }
.pay-msg { font-size: .9rem; color: var(--ink-soft); }
.pay-safe { display: flex; gap: 8px; align-items: flex-start; font-size: .85rem; color: var(--ink-soft); }
.lock { width: 16px; height: 16px; flex: none; margin-top: 2px; fill: none; stroke: var(--ok); stroke-width: 2; }

.calc { border: 1px solid var(--rule); border-radius: 6px; padding: 24px; display: grid; gap: 16px; background: var(--paper-2); }
.calc h3 { font-size: var(--s1); }
.stepper { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.stepper button {
  width: 40px; height: 40px; border-radius: 4px; border: 1px solid var(--rule); background: var(--paper);
  color: var(--ink); font-size: 1.2rem; cursor: pointer;
}
.stepper output { font-family: var(--f-mono); font-size: 1.2rem; min-width: 2ch; text-align: center; }
.calc table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: .95rem; }
.calc td { padding: 6px 0; border-bottom: 1px solid var(--rule); }
.calc td:last-child { text-align: right; font-family: var(--f-mono); white-space: nowrap; padding-left: 12px; font-size: .9rem; }
.calc tr.sub td { font-weight: 700; }
.calc tr.total td { font-weight: 700; border-bottom: 0; padding-top: 10px; font-size: 1.05rem; }
.calc tr.total td:last-child { color: var(--brand); }

/* Proceso */
.steps { list-style: none; margin: 0; padding: 0; display: grid; counter-reset: paso; }
.steps li {
  counter-increment: paso; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px;
  padding-block: 18px; border-bottom: 1px solid var(--rule);
}
.steps li:last-child { border-bottom: 0; }
.steps li::before { content: counter(paso, decimal-leading-zero); font-family: var(--f-mono); color: var(--brand); font-size: 1.1rem; padding-top: 2px; }
.steps h3 { font-family: var(--f-body); font-weight: 700; font-size: 1.05rem; }
.steps p { color: var(--ink-soft); margin-top: 2px; }

/* FAQ */
.faq { display: grid; max-width: 46em; }
.faq details { border-bottom: 1px solid var(--rule); padding-block: 16px; }
.faq summary { cursor: pointer; font-weight: 600; font-size: 1.05rem; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--brand); font-family: var(--f-mono); font-size: 1.2rem; }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin-top: 10px; color: var(--ink-soft); }

/* Contacto */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
form { display: grid; gap: 14px; }
.field { display: grid; gap: 6px; }
.field label { font-weight: 600; font-size: .92rem; }
input, select, textarea {
  font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--rule);
  border-radius: 4px; padding: 11px 12px; width: 100%;
}
textarea { min-height: 110px; resize: vertical; }
.check { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; font-size: .88rem; color: var(--ink-soft); }
.check input { width: 18px; height: 18px; margin-top: 3px; }
.form-msg { font-size: .95rem; padding: 12px 14px; border-radius: 4px; background: var(--brand-soft); color: var(--ink); }
.contact-data { display: grid; gap: 18px; align-content: start; }
.contact-data .item { display: grid; gap: 2px; }
.contact-data .val { font-size: 1.1rem; font-weight: 600; }
.contact-data .sub { color: var(--ink-soft); }
.office { border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; display: grid; }
.office .map {
  height: 120px; position: relative;
  background:
    linear-gradient(90deg, transparent 47%, var(--paper) 47% 53%, transparent 53%),
    linear-gradient(transparent 58%, var(--paper) 58% 64%, transparent 64%),
    linear-gradient(115deg, transparent 30%, var(--paper) 30% 33%, transparent 33%),
    var(--paper-2);
}
.office .pin {
  position: absolute; left: 50%; top: 61%; width: 22px; height: 22px; transform: translate(-50%, -100%) rotate(-45deg);
  background: var(--cta); border-radius: 50% 50% 50% 0;
}
.office .pin::after { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: var(--paper); }
.office .info { padding: 16px; display: grid; gap: 4px; }
.office .addr { font-weight: 700; font-size: 1.05rem; }
.office .info > span:not(.label) { color: var(--ink-soft); font-size: .92rem; }
.placeholder { background: var(--brand-soft); color: var(--brand); padding: 0 6px; border-radius: 3px; font-family: var(--f-mono); font-size: .85em; }

footer { border-top: 1px solid var(--rule); padding-block: 32px 48px; display: grid; gap: 10px; font-size: .88rem; color: var(--ink-soft); }
footer .links { display: flex; gap: 18px; flex-wrap: wrap; }

@media (max-width: 760px) {
  .hero, .price-grid, .contact-grid, .compare, .sim-grid { grid-template-columns: minmax(0, 1fr); }
  .hero { padding-block: 40px 24px; gap: 28px; }
  .stamp { width: 210px; }
  .stamp-box { overflow: hidden; padding-block: 12px; }
  .stamp .inner { padding: 16px; }
  .stamp .small { font-size: .6rem; letter-spacing: .08em; }
  header.top nav { display: none; }
  .talk, .stats { grid-template-columns: minmax(0, 1fr); }
  .stat + .stat { border-left: 0; border-top: 1px solid var(--rule); }
  .stat { padding: 22px; }
  .compare article + article { border-left: 0; border-top: 1px solid var(--rule); }
  .sim { padding: 18px; }
  nav { gap: 14px; }
  .steps li { grid-template-columns: 44px minmax(0, 1fr); }
}

.dd { position: relative; }
.dd > summary { list-style: none; cursor: pointer; color: var(--ink-soft); font-weight: 500; font-size: .95rem; }
.dd > summary::-webkit-details-marker { display: none; }
.dd > summary::after { content: " ▾"; font-size: .8em; }
.dd[open] > summary { color: var(--ink); }
.dd-menu { position: absolute; top: calc(100% + 10px); left: 0; z-index: 30; min-width: 250px; display: grid; padding: 8px; background: var(--paper); border: 1px solid var(--rule); border-radius: 6px; box-shadow: 0 10px 30px rgba(15,29,51,.15); }
.dd-menu a { padding: 7px 10px; border-radius: 4px; color: var(--ink); text-decoration: none; font-size: .93rem; }
.dd-menu a:hover, .dd-menu a:focus-visible { background: var(--brand-soft); color: var(--brand); }
.foot-links { display: grid; gap: 8px; }
.foot-links .grid { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.foot-links a { color: var(--ink-soft); }
.card-more { font-weight: 600; text-decoration: none; }

.crumbs { font-size: .88rem; color: var(--ink-soft); padding-top: 20px; }
.crumbs a { color: var(--ink-soft); }
.crumbs span[aria-current] { color: var(--ink); }
.page-hero { padding-block: 28px 32px; display: grid; gap: 14px; max-width: 46em; }
.page-hero h1 { font-size: clamp(2rem, 4.4vw, 3rem); }
.page-hero .lead p { font-size: 1.1rem; color: var(--ink-soft); }
.page-hero .cta-row { margin-top: 6px; }
.prose { max-width: 46em; display: grid; gap: 14px; }
.prose h2 { font-size: var(--s2); margin-top: 18px; }
.prose ul, .prose ol { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.prose ul.cols { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); column-gap: 28px; }
.prose ol.plain { padding-left: 1.3em; }
.prose a { font-weight: 500; }
.page-sec { padding-block: 44px; border-top: 1px solid var(--rule); }
.page-price { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; border: 1.5px solid var(--brand); border-radius: 6px; padding: 24px; max-width: 46em; }
.page-price .amount { font-size: var(--s3); }
.page-price .breakdown { color: var(--ink-soft); font-size: .95rem; margin-top: 4px; }
.related { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 14px; }
.related a { display: grid; gap: 4px; padding: 16px; border: 1px solid var(--rule); border-radius: 6px; text-decoration: none; color: var(--ink); }
.related a:hover { border-color: var(--brand); }
.related a span { color: var(--ink-soft); font-size: .9rem; }
.pnav { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.pnav > a { color: var(--ink-soft); text-decoration: none; font-weight: 500; font-size: .95rem; }
@media (max-width: 760px) {
  .page-price { grid-template-columns: minmax(0, 1fr); }
  header.top nav.pnav { display: flex; }
  .pnav > a.hide-m { display: none; }
  .dd-menu { left: auto; right: auto; min-width: min(280px, calc(100vw - 40px)); }
}
