/* ==== FUENTES ==== */
@font-face {
    font-family: 'Josefin Slab';
    src: url('../fonts/jslab-wt.woff2') format('woff2');
    font-display: swap;
    font-weight: 300 600;
    font-style: normal;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Josefin Slab Fallback';
    src: local('Georgia');
    ascent-override: 79%;
    size-adjust: 95%;
}
@font-face {
    font-family: 'Josefin Sans';
    src: url('../fonts/jsans-wt.woff2') format('woff2');
    font-display: swap;
    font-weight: 300 700;
    font-style: normal;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Josefin Sans Fallback';
    src: local('Arial');
    ascent-override: 74%;
    size-adjust: 102%;
}

/* ==== VARIABLES ==== */
:root {
    --c-base: rgb(255 255 255);
    --c-forro: rgb(244 246 248);
    --c-costura: rgb(216 221 227);
    --c-gris: rgb(104 112 122);
    --c-texto: rgb(24 30 38);
    --c-verde: rgb(0 125 84);
    --c-marino: rgb(22 34 58);
    --c-velo: rgb(22 34 58 / 0.42);
    --s-1: 0.5rem;
    --s-2: 1rem;
    --s-3: 1.5rem;
    --s-4: 2.5rem;
    --s-5: 4rem;
    --s-6: 6.5rem;
    --s-lado: clamp(16px, 4vw, 40px);
    --s-capa: 0 1px 2px rgb(24 30 38 / 0.08), 0 14px 34px rgb(22 34 58 / 0.14);
    --f-slab: 'Josefin Slab', 'Josefin Slab Fallback', Georgia, serif;
    --f-sans: 'Josefin Sans', 'Josefin Sans Fallback', Arial, sans-serif;
}

/* ==== BASE ==== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 130px; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--c-base); color: var(--c-texto); font-family: var(--f-sans); font-size: 1.0625rem; line-height: 1.6; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-slab); font-weight: 300; line-height: 1.08; }
p, ul, ol, dl, dd, figure { margin: 0; }
a { color: var(--c-verde); }
button, input, select, textarea { font: inherit; color: inherit; }
table { border-collapse: collapse; width: 100%; }
:focus-visible { outline: 2px solid var(--c-verde); outline-offset: 3px; }

/* ==== UTILIDADES ==== */
.wr { max-width: 1260px; margin-inline: auto; padding-inline: var(--s-lado); }
.lbl { display: block; margin-bottom: var(--s-2); color: var(--c-gris); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; }
.ol { color: transparent; -webkit-text-stroke: 1.4px var(--c-texto); }
.sec { padding-block: var(--s-6); }
.sec-ap { padding-block: var(--s-4); }
.sec-t { background: var(--c-forro); }
.sec-d { background: var(--c-marino); color: var(--c-base); }
.sec-d .lbl { color: var(--c-costura); }
.sec-d a { color: var(--c-base); }
.sec-h { display: grid; grid-template-columns: 4fr 8fr; gap: var(--s-4); align-items: end; margin-bottom: var(--s-4); padding-bottom: var(--s-3); border-bottom: 1px solid var(--c-costura); }
.sec-d .sec-h { border-bottom-color: rgb(255 255 255 / 0.18); }
.sec-h h2 { font-size: clamp(2rem, 3.6vw, 3.2rem); }
.sec-h p { max-width: 58ch; color: var(--c-gris); }
.sec-d .sec-h p { color: var(--c-costura); }
.bt { display: inline-flex; align-items: center; gap: 0.6em; min-height: 46px; padding: 0 2px; border: 0; border-bottom: 2px solid currentColor; border-radius: 0; background: none; color: var(--c-verde); font-weight: 600; text-decoration: none; cursor: pointer; }
.bt span { transition: transform 0.2s ease; }
.bt:hover span { transform: translateX(5px); }
.bt-l { padding: 0 18px; border-radius: 3px 3px 0 0; background: var(--c-forro); font-size: 1.1rem; }
.sec-d .bt { color: var(--c-base); }
.chp { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border: 1px solid var(--c-costura); border-radius: 999px; background: var(--c-base); font-size: 0.92rem; }
.pp { padding: 12px; border: 1px solid var(--c-costura); background: var(--c-forro); }
.pp img { width: 100%; }
.pp figcaption { padding-top: 10px; color: var(--c-gris); font-size: 0.88rem; }
.crd { padding: var(--s-3); background: var(--c-forro); }
.crd h2, .crd h3 { margin-bottom: var(--s-1); font-size: 1.6rem; }
.crd p + p { margin-top: var(--s-1); }
.js .rv { opacity: 0; transform: translateY(18px); transition: opacity 0.6s ease, transform 0.6s ease; }
.js .rv.faded-in { opacity: 1; transform: none; }

/* ==== CABECERA ==== */
.hd { position: sticky; top: 0; z-index: 500; background: var(--c-base); box-shadow: 0 1px 0 var(--c-costura); }
.hd-inf { background: var(--c-marino); color: var(--c-costura); font-size: 0.86rem; }
.hd-in { display: flex; justify-content: space-between; align-items: center; gap: var(--s-2); min-height: 44px; }
.hd-in a { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-base); text-decoration: none; letter-spacing: 0.06em; }
.hd-row { display: flex; align-items: center; gap: var(--s-3); min-height: 74px; }
.hd-logo { display: flex; flex-direction: column; margin-right: auto; color: var(--c-texto); font-family: var(--f-slab); font-size: 1.9rem; font-weight: 400; line-height: 1; letter-spacing: 0.04em; text-decoration: none; }
.hd-logo small { margin-top: 5px; color: var(--c-gris); font-family: var(--f-sans); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; }
.nv { display: flex; gap: var(--s-3); }
.nv a { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 2px solid transparent; color: var(--c-texto); text-decoration: none; }
.nv a:hover, .nv a[aria-current] { border-bottom-color: var(--c-verde); }
.hd-cst { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; color: var(--c-texto); }
.hd-cst svg { width: 26px; height: 26px; }
.hd-num { position: absolute; top: 2px; right: 0; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--c-verde); color: var(--c-base); font-size: 0.74rem; font-weight: 700; line-height: 21px; text-align: center; }
.hd-brg { display: none; width: 46px; height: 46px; padding: 11px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); cursor: pointer; }
.hd-brg span { display: block; height: 2px; margin: 5px 0; background: var(--c-texto); }

/* ==== MENÚ MÓVIL ==== */
.mnu { position: fixed; inset: 0; z-index: 800; display: flex; flex-direction: column; padding: var(--s-3) var(--s-lado); background: var(--c-base); visibility: hidden; overflow-y: auto; }
.mnu.showing { visibility: visible; }
.mnu-x { align-self: flex-end; min-width: 46px; min-height: 46px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); cursor: pointer; }
.mnu-nv { display: flex; flex-direction: column; margin-top: var(--s-3); border-top: 1px solid var(--c-costura); }
.mnu-nv a { display: flex; align-items: center; min-height: 58px; border-bottom: 1px solid var(--c-costura); color: var(--c-texto); font-family: var(--f-slab); font-size: 1.7rem; text-decoration: none; }
.mnu p { margin-top: var(--s-3); color: var(--c-gris); }

/* ==== CESTA LATERAL ==== */
.cj { position: fixed; top: 0; right: 0; bottom: 0; z-index: 700; display: flex; flex-direction: column; width: min(430px, 100%); background: var(--c-base); box-shadow: var(--s-capa); visibility: hidden; transform: translateX(100%); transition: transform 0.25s ease, visibility 0.25s; }
.cj.showing { visibility: visible; transform: none; }
.cj-hd { display: flex; justify-content: space-between; align-items: center; padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--c-costura); }
.cj-hd h2 { font-size: 1.8rem; }
.cj-x { min-width: 46px; min-height: 46px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); cursor: pointer; }
.cj-ls { flex: 1; padding: var(--s-2) var(--s-3); overflow-y: auto; }
.cj-ft { padding: var(--s-2) var(--s-3) var(--s-3); background: var(--c-forro); }
.cj-ft .bt { margin-right: var(--s-3); }
.cj-msg { padding: var(--s-1) var(--s-3); background: var(--c-forro); color: var(--c-verde); font-weight: 600; }

/* ==== LÍNEAS Y RESUMEN ==== */
.ln { display: grid; grid-template-columns: 76px 1fr auto; gap: var(--s-2); align-items: start; padding-block: var(--s-2); border-bottom: 1px solid var(--c-costura); }
.ln img { width: 76px; background: var(--c-forro); }
.ln h3 { font-family: var(--f-sans); font-size: 1.02rem; font-weight: 600; }
.ln h3 a { color: var(--c-texto); text-decoration: none; }
.ln p { color: var(--c-gris); font-size: 0.92rem; }
.ln-q { display: flex; align-items: center; gap: 4px; margin-top: 6px; }
.ln-q button { width: 44px; height: 44px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); cursor: pointer; }
.ln-q output { min-width: 28px; text-align: center; font-weight: 600; }
.ln-del { min-height: 44px; padding: 0; border: 0; background: none; color: var(--c-gris); text-decoration: underline; cursor: pointer; }
.ln-pr { font-weight: 600; white-space: nowrap; }
.sm { padding: var(--s-3); background: var(--c-forro); }
.sm h2 { margin-bottom: var(--s-2); font-size: 1.9rem; }
.sm-row { display: flex; justify-content: space-between; gap: var(--s-2); padding-block: 7px; border-bottom: 1px solid var(--c-costura); }
.sm-tot { padding-top: var(--s-1); border-bottom: 0; font-size: 1.25rem; font-weight: 700; }
.sm-nt { margin-top: var(--s-1); color: var(--c-gris); font-size: 0.9rem; }
.vac { padding: var(--s-4); border-left: 4px solid var(--c-verde); background: var(--c-forro); }
.vac h2 { margin-bottom: var(--s-1); font-size: 2rem; }
.vac p { margin-bottom: var(--s-2); }

/* ==== PIE ==== */
.ft { padding-block: var(--s-3); border-top: 1px solid var(--c-costura); background: var(--c-forro); font-size: 0.92rem; }
.ft-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--s-3); }
.ft-row a { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-texto); }
.ft-row strong { font-family: var(--f-slab); font-size: 1.3rem; font-weight: 400; }

/* ==== AVISO DE COOKIES ==== */
.cc-pill { position: fixed; left: var(--s-lado); bottom: 14px; z-index: 600; display: flex; align-items: center; gap: var(--s-2); width: min(480px, calc(100% - 32px)); padding: 12px 14px 12px 22px; border-radius: 34px; background: var(--c-marino); color: var(--c-base); box-shadow: var(--s-capa); font-size: 0.9rem; line-height: 1.35; }
.cc-pill a { color: var(--c-base); }
.cc-q strong { font-weight: 600; }
.cc-mas { display: block; }
.cc-bts { display: flex; gap: 8px; }
.cc-bt { min-width: 92px; min-height: 44px; padding: 0 14px; border: 1px solid var(--c-base); border-radius: 22px; background: var(--c-marino); color: var(--c-base); font-weight: 600; cursor: pointer; }
.cc-bt:hover { background: var(--c-base); color: var(--c-marino); }

/* ==== PORTADA ==== */
.hro { padding-top: var(--s-4); }
.hro-g { display: grid; grid-template-columns: 3fr 9fr; gap: var(--s-4); align-items: stretch; }
.hro-fx { display: flex; flex-direction: column; justify-content: space-between; gap: var(--s-3); padding-bottom: 8px; }
.hro-num span { display: block; font-family: var(--f-slab); font-size: clamp(5rem, 10vw, 9.5rem); font-weight: 300; line-height: 0.8; }
.hro-num p { max-width: 26ch; margin-top: var(--s-2); padding-top: var(--s-1); border-top: 1px solid var(--c-costura); color: var(--c-gris); font-size: 0.95rem; }
.hro-chp { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.hro-tx { text-align: right; }
.hro-tx h1 { font-size: clamp(3rem, 6.6vw, 6.5rem); line-height: 0.98; letter-spacing: -0.01em; }
.hro-ld { max-width: 46ch; margin: var(--s-3) 0 0 auto; color: var(--c-gris); font-size: 1.12rem; }
.hro-cta { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: var(--s-1) var(--s-3); margin-top: var(--s-3); }
.hro-tel { display: inline-flex; align-items: center; min-height: 46px; color: var(--c-texto); font-weight: 600; text-decoration: none; }
.hro-strip { display: flex; gap: 12px; margin-top: var(--s-4); padding-inline: var(--s-lado); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--s-lado); scrollbar-width: none; }
.hro-strip figure { flex: 0 0 auto; height: clamp(170px, 19vw, 280px); scroll-snap-align: start; }
.hro-strip img { width: auto; height: 100%; object-fit: cover; }
.hro-strip .pp { padding: 10px; }
.hro-pr { background: var(--c-forro); }
.hro-strip .pp img { height: 100%; }

/* ==== CARRIL ==== */
.rl-trk { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(260px, 28vw, 360px); gap: var(--s-2); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--s-2); scrollbar-width: thin; }
.rl-pn { position: relative; display: flex; flex-direction: column; min-width: 0; padding: var(--s-2); background: var(--c-base); scroll-snap-align: start; }
.rl-num { position: absolute; top: 6px; left: 14px; font-family: var(--f-slab); font-size: 4.6rem; line-height: 1; }
.rl-pn img { margin-top: var(--s-4); }
.rl-pn h3 { margin-top: var(--s-2); font-size: 1.6rem; }
.rl-pn dl { display: grid; grid-template-columns: auto 1fr; gap: 2px var(--s-2); margin: var(--s-1) 0 var(--s-2); font-size: 0.94rem; }
.rl-pn dt { color: var(--c-gris); }
.rl-pn .bt { align-self: flex-start; margin-top: auto; }
.rl-nav { display: flex; justify-content: flex-end; gap: var(--s-1); margin-top: var(--s-2); }
.rl-nav button { min-width: 48px; min-height: 48px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); font-size: 1.2rem; cursor: pointer; }

/* ==== TABLAS ==== */
.tbl-w { overflow-x: auto; }
.tbl { min-width: 640px; font-size: 0.98rem; }
.tbl caption { padding-bottom: var(--s-2); color: var(--c-gris); text-align: left; }
.tbl th, .tbl td { padding: 14px 12px; border-bottom: 1px solid var(--c-costura); text-align: left; vertical-align: top; }
.tbl thead th { border-bottom: 2px solid var(--c-texto); font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase; }
.tbl tbody th { font-family: var(--f-slab); font-size: 1.25rem; font-weight: 400; }
.tbl tr.showing > * { background: var(--c-forro); }
.tbl-k { min-width: 0; }
.dlk a, .tbl a, .txt li > a { display: inline-flex; align-items: center; min-height: 44px; }
.tbl-k th { width: 34%; }
.tbl-k td { overflow-wrap: anywhere; }

/* ==== BANDA ==== */
.bnd { position: relative; overflow: hidden; }
.bnd-g { display: grid; grid-template-columns: 7fr 5fr; gap: var(--s-4); align-items: center; }
.bnd h2 { font-size: clamp(2rem, 3.6vw, 3.2rem); }
.bnd p { margin-top: var(--s-2); color: var(--c-costura); }
.bnd-wm { position: absolute; right: -0.04em; bottom: -0.2em; color: transparent; -webkit-text-stroke: 1px rgb(216 221 227 / 0.3); font-family: var(--f-slab); font-size: clamp(7rem, 15vw, 14rem); line-height: 1; pointer-events: none; }
.bnd ul { position: relative; padding: 0; list-style: none; }
.bnd li { padding: 12px 0; border-bottom: 1px solid rgb(255 255 255 / 0.18); }
.bnd li b { display: block; font-family: var(--f-slab); font-size: 1.6rem; font-weight: 400; }

/* ==== CITAS ==== */
.qw-g { display: grid; grid-template-columns: 5fr 7fr; gap: var(--s-4); align-items: start; }
.qw-fig { position: relative; }
.qw-fig .pp { border-color: rgb(255 255 255 / 0.2); background: rgb(255 255 255 / 0.06); }
.qw-fig .pp figcaption { color: var(--c-costura); }
.qw-fig > p { margin-top: var(--s-2); color: var(--c-costura); }
.qw { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
.qw blockquote { margin: 0; padding: var(--s-3); background: rgb(255 255 255 / 0.07); font-family: var(--f-slab); font-size: 1.3rem; line-height: 1.35; }
.qw blockquote:nth-child(2) { margin-top: var(--s-5); }
.qw blockquote:nth-child(3) { font-size: 1.55rem; }
.qw blockquote:nth-child(4) { margin-top: calc(-1 * var(--s-4)); }
.qw cite { display: block; margin-top: var(--s-2); color: var(--c-costura); font-family: var(--f-sans); font-size: 0.82rem; font-style: normal; letter-spacing: 0.12em; text-transform: uppercase; }

/* ==== LLAMADA FINAL ==== */
.cta-g { display: grid; grid-template-columns: 8fr 4fr; gap: var(--s-4); align-items: center; padding: var(--s-4); background: var(--c-forro); box-shadow: var(--s-capa); }
.cta-g h2 { font-size: clamp(1.9rem, 3.2vw, 2.8rem); }
.cta-g p { margin-top: var(--s-1); color: var(--c-gris); }
.cta-a { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-1); }
.cta-a a:not(.bt) { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-texto); font-size: 1.3rem; font-weight: 600; text-decoration: none; }

/* ==== CABECERA DE PÁGINA ==== */
.ph { padding-block: var(--s-4) var(--s-3); border-bottom: 1px solid var(--c-costura); }
.ph-crumb { display: flex; gap: 8px; min-height: 28px; margin-bottom: var(--s-1); color: var(--c-gris); font-size: 0.86rem; }
.ph-crumb a { color: var(--c-gris); }
.ph h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); }
.ph-sub { max-width: 62ch; margin-top: var(--s-2); color: var(--c-gris); font-size: 1.08rem; }

/* ==== CATÁLOGO ==== */
.ct-nav { display: flex; flex-wrap: wrap; gap: var(--s-1); margin-bottom: var(--s-4); }
.ct-nav a { min-height: 44px; color: var(--c-texto); text-decoration: none; }
.ct-top { padding-top: var(--s-3); }
.ct-top .ct-nav { margin-bottom: 0; }
.ct-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: var(--s-3) var(--s-2); }
.pc { display: flex; flex-direction: column; padding: var(--s-2); background: var(--c-forro); }
.pc img { background: var(--c-base); }
.pc h3 { margin-top: var(--s-2); font-size: 1.6rem; }
.pc h3 a { color: var(--c-texto); text-decoration: none; }
.pc p { color: var(--c-gris); font-size: 0.94rem; }
.pc-pr { margin-top: 6px; color: var(--c-texto); font-size: 1.15rem; font-weight: 700; }
.pc .bt { align-self: flex-start; margin-top: var(--s-1); }

/* ==== FICHA ==== */
.fc-g { display: grid; grid-template-columns: 7fr 5fr; gap: var(--s-4); align-items: start; }
.fc-img { background: var(--c-forro); }
.fc-img img { width: 100%; max-height: 60vh; object-fit: contain; }
.fc-buy { position: sticky; top: 130px; }
.fc-pr { font-size: 2rem; font-weight: 700; }
.fc-pr small { margin-left: 8px; color: var(--c-gris); font-size: 0.9rem; font-weight: 400; }
.fc-col { margin-top: 4px; color: var(--c-gris); }
.fc-buy fieldset { margin: var(--s-3) 0 0; padding: 0; border: 0; }
.fc-buy legend { margin-bottom: var(--s-1); font-weight: 600; }
.tl { display: flex; flex-wrap: wrap; gap: 8px; }
.tl-op { position: relative; }
.tl-op input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tl-op span { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 58px; min-height: 48px; padding: 2px 10px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); font-weight: 600; cursor: pointer; }
.tl-op small { color: var(--c-gris); font-size: 0.68rem; font-weight: 400; }
.tl-op input:checked + span { border-color: var(--c-verde); background: var(--c-verde); color: var(--c-base); }
.tl-op input:focus-visible + span { outline: 2px solid var(--c-verde); outline-offset: 2px; }
.tl-op input:disabled + span { border-style: dashed; color: var(--c-gris); cursor: not-allowed; text-decoration: line-through; }
.fc-q { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-1) var(--s-2); margin-top: var(--s-2); }
.fc-q select { min-height: 46px; padding: 0 12px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); }
.fc-act { margin-top: var(--s-3); }
.fc-msg { min-height: 1.6em; margin-top: var(--s-1); color: var(--c-verde); font-weight: 600; }
.fc-msg.fx-mal { color: rgb(160 30 30); }
.fc-det { margin-top: var(--s-4); }
.fc-det h2 { margin-bottom: var(--s-1); font-size: 1.7rem; }
.fc-det p + h2 { margin-top: var(--s-3); }
.fc-env { margin-top: var(--s-3); padding: var(--s-2) var(--s-3); border-left: 4px solid var(--c-verde); background: var(--c-forro); font-size: 0.95rem; }
.fc-env a { display: inline-flex; align-items: center; min-height: 44px; }
.fc-mas { margin-top: var(--s-5); }

/* ==== FORMULARIOS ==== */
.frm { display: grid; gap: var(--s-2); }
.fx label { display: block; margin-bottom: 4px; font-weight: 600; }
.fx input, .fx textarea, .fx select { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid var(--c-costura); border-radius: 3px; background: var(--c-base); }
.fx textarea { min-height: 130px; resize: vertical; }
.fx input[aria-invalid='true'], .fx textarea[aria-invalid='true'] { border-color: rgb(160 30 30); }
.fx-err { min-height: 1.3em; margin-top: 3px; color: rgb(160 30 30); font-size: 0.9rem; }
.fx-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
.chk { display: flex; gap: 10px; align-items: flex-start; font-size: 0.95rem; }
.chk input { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 2px; accent-color: var(--c-verde); color-scheme: light; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.frm-st { min-height: 1.5em; font-weight: 600; }
.frm-st.fx-mal { color: rgb(160 30 30); }

/* ==== CESTA Y TRÁMITE ==== */
.cs-t { margin-bottom: var(--s-1); font-size: 1.9rem; }
.cs-g { display: grid; grid-template-columns: 8fr 4fr; gap: var(--s-4); align-items: start; }
.tr-steps { display: flex; gap: var(--s-2); margin-bottom: var(--s-3); padding: 0; list-style: none; }
.tr-steps li { flex: 1; padding: 10px 14px; border-top: 3px solid var(--c-costura); color: var(--c-gris); font-weight: 600; }
.tr-steps li.showing { border-top-color: var(--c-verde); color: var(--c-texto); }
.tr-pay { padding: var(--s-2); border: 1px solid var(--c-costura); background: var(--c-base); }
.tr-rev { padding: var(--s-2) var(--s-3); background: var(--c-forro); }
.tr-rev dl { display: grid; grid-template-columns: auto 1fr; gap: 4px var(--s-2); }
.tr-rev dt { color: var(--c-gris); }
.tr-act { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); }
.tr-act .ln-del { color: var(--c-texto); }

/* ==== BLOQUES DE TEXTO ==== */
.g2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
.g3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-2); }
.nt { position: relative; padding: var(--s-3); padding-top: var(--s-5); background: var(--c-forro); }
.nt::before { content: attr(data-n); position: absolute; top: 12px; left: var(--s-3); color: transparent; -webkit-text-stroke: 1px var(--c-texto); font-family: var(--f-slab); font-size: 2.6rem; line-height: 1; }
.nt h2, .nt h3 { margin-bottom: var(--s-1); font-size: 1.45rem; }
.nt p + p { margin-top: var(--s-1); }
.txt { max-width: 70ch; }
.txt p + p, .txt p + ul, .txt ul + p { margin-top: var(--s-2); }
.txt h2 { margin: var(--s-4) 0 var(--s-2); font-size: 2rem; }
.txt h2:first-child { margin-top: 0; }
.txt ul { padding-left: 1.2em; }
.sp { display: grid; grid-template-columns: 5fr 7fr; gap: var(--s-4); align-items: start; }
.acc { padding: var(--s-3); border-left: 4px solid var(--c-verde); background: var(--c-forro); }
.acc h2, .acc h3 { margin-bottom: var(--s-1); font-size: 1.6rem; }
.acc p + p { margin-top: var(--s-1); }
.acc-sep { margin-top: var(--s-4); }
.dlk { display: grid; grid-template-columns: minmax(130px, auto) 1fr; border-top: 1px solid var(--c-costura); }
.dlk dt, .dlk dd { padding: 10px 0; border-bottom: 1px solid var(--c-costura); }
.dlk dt { padding-right: var(--s-2); color: var(--c-gris); }
.dlk dd { overflow-wrap: anywhere; }
.big-tel { display: inline-flex; align-items: center; min-height: 48px; color: var(--c-texto); font-family: var(--f-slab); font-size: clamp(1.8rem, 3vw, 2.4rem); text-decoration: none; }
.toc { display: flex; flex-wrap: wrap; gap: var(--s-1); padding: var(--s-2) var(--s-3); background: var(--c-forro); }
.toc a { display: inline-flex; align-items: center; min-height: 44px; margin-right: var(--s-2); color: var(--c-texto); }
.lg-sec { padding-top: var(--s-4); }
.lg-sec h2 { margin-bottom: var(--s-2); font-size: clamp(1.8rem, 3vw, 2.4rem); }
.lg-sec > p + p { margin-top: var(--s-2); }
.lg-sec > p { max-width: 74ch; }
.frmt { margin-top: var(--s-2); padding: var(--s-3); border: 1px dashed var(--c-gris); background: var(--c-base); font-size: 0.96rem; }
.frmt p + p { margin-top: var(--s-1); }
.est-r { margin-top: var(--s-3); }
.pck { display: grid; grid-template-columns: auto 1fr; gap: var(--s-2); align-items: end; max-width: 520px; }
.pck-out { grid-column: 1 / -1; min-height: 3.4em; padding: var(--s-2); background: var(--c-base); font-weight: 600; }

/* ==== PANTALLAS ==== */
@media (max-width: 1100px) {
    .nv { gap: var(--s-2); }
    .g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .nv { display: none; }
    .hd-brg { display: block; }
    .hd-hr { display: none; }
    .hro-g, .sec-h, .bnd-g, .qw-g, .cta-g, .sp, .cs-g, .fc-g { grid-template-columns: minmax(0, 1fr); }
    .hro-fx { order: 2; }
    .hro-num { display: none; }
    .hro-chp { flex-direction: row; flex-wrap: wrap; }
    .hro-chp .lbl { width: 100%; margin-bottom: 0; }
    .hro-tx { text-align: left; }
    .hro-ld { margin-left: 0; }
    .hro-cta { justify-content: flex-start; }
    .fc-buy { position: static; order: -1; }
    .sec { padding-block: var(--s-5); }
}
@media (max-width: 700px) {
    .hd-txt { display: none; }
    .ph { padding-block: var(--s-3) var(--s-2); }
    .ph-fc .ph-sub { display: none; }
    .fc { padding-top: var(--s-2); }
    .fc-q label { position: absolute; width: 1px; height: 1px; overflow: hidden; white-space: nowrap; clip: rect(0 0 0 0); }
    .hro { padding-top: var(--s-3); }
    .hro-tx .lbl, .hro-chp .lbl { display: none; }
    .hro-chp { flex-wrap: nowrap; overflow-x: auto; margin-top: calc(-1 * var(--s-2)); scrollbar-width: none; }
    .hro-chp .chp { flex: 0 0 auto; }
    .vac { padding: var(--s-3); }
    .cc-mas { display: none; }
    .cc-q { flex: 1 1 150px; }
    .fc-img img { max-height: 52vh; }
    .g2, .g3, .fx-2, .qw { grid-template-columns: minmax(0, 1fr); }
    .qw blockquote:nth-child(n) { margin-top: 0; }
    .cc-pill { gap: 8px; width: calc(100% - 16px); padding: 10px 10px 10px 14px; border-radius: 18px; bottom: 8px; left: 8px; font-size: 0.84rem; }
    .cc-bt { min-width: 70px; padding: 0 10px; }
    .ct-g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ct-g .pc { padding: 10px; }
    .pc h3 { font-size: 1.3rem; }
    .cta-g { padding: var(--s-3); }
    .tr-steps { flex-direction: column; gap: 4px; }
    .cj { top: auto; left: 0; width: 100%; max-height: 84vh; transform: translateY(100%); }
}
@media (max-width: 420px) {
    .ct-g { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .js .rv { transform: none; transition: none; }
    .cj { transition: none; }
}
[hidden] { display: none; }
