/* ══════════════════════════════════════════════════════════════════
   ASESORÍA DE LA PEÑA · DLP — sistema visual
   ------------------------------------------------------------------
   Paleta: los colores del logo (naranja #F79733 / #D97915 / #F7C460,
   gris #333) sobre neutros cálidos. El naranja es ACENTO (≈10 %),
   no fondo: así destaca en vez de cansar.
   Tipografía: Inter Tight (display) + Inter (texto y etiquetas).
   Una sola familia: las etiquetas y fechas usan Inter con más peso y
   cifras tabulares, no una monoespaciada. Un solo easing en todo.
   ══════════════════════════════════════════════════════════════════ */
/* Inter e Inter Tight (licencia SIL OFL) se sirven desde la propia web: sin terceros que reciban la IP
   del visitante y sin esperar a otro servidor. Las «Fallback» son Arial con las métricas de Inter, para
   que el texto no salte cuando llega la fuente buena. */
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:500 700;font-display:swap;src:url(../assets/fonts/inter-tight-latin.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(../assets/fonts/inter-latin.woff2) format('woff2')}
@font-face{font-family:'Inter Tight Fallback';src:local('Arial');size-adjust:100.7%;ascent-override:96.2%;descent-override:24%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial');size-adjust:107.1%;ascent-override:90.4%;descent-override:22.5%;line-gap-override:0%}
:root{
  --paper:#F8F4EC;            /* hueso cálido, tintado hacia el naranja */
  --paper2:#F0E9DD;           /* segundo plano */
  --card:#FFFDF9;
  --ink:#1C1815;              /* tinta cálida (el gris #333 del logo, más profundo) */
  --ink-70:rgba(28,24,21,.72);
  --ink-45:rgba(28,24,21,.66);      /* gris de etiquetas: ≥4,5:1 sobre hueso, tarjeta y beige (AA en texto pequeño) */
  --line:rgba(28,24,21,.14);
  --brand:#F79733;            /* naranja del logo */
  --brand-2:#D97915;          /* naranja profundo del logo (hover) */
  --brand-3:#F7C460;          /* ámbar claro del logo (detalles sobre oscuro) */
  --brand-text:#9A4F06;       /* naranja para texto pequeño: ≥4,5:1 sobre hueso y beige (AA) */
  --brand-em:#B25C08;         /* naranja de los titulares grandes (texto grande: basta 3:1) */
  --ok:#2F6B4F;
  --ez:cubic-bezier(.22,1,.28,1);
  /* display: Inter Tight (sans limpia, tracking cerrado). La variable conserva el nombre --serif
     por compatibilidad con el resto de la hoja, pero ya no es una serif. */
  --serif:'Inter Tight','Inter Tight Fallback','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --sans:'Inter','Inter Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Inter','Inter Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --pad:clamp(1.25rem,5vw,5rem);
  --maxw:1320px;
  /* grano por código (feTurbulence como data-URI, 0 KB) */
  --grano:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --step--1:clamp(.82rem,.78rem + .18vw,.92rem);
  --step-0:clamp(1rem,.96rem + .22vw,1.125rem);
  --step-1:clamp(1.2rem,1.05rem + .7vw,1.55rem);
  --step-2:clamp(1.55rem,1.25rem + 1.4vw,2.3rem);
  --step-3:clamp(2.1rem,1.5rem + 2.8vw,3.7rem);
  --step-4:clamp(2.7rem,1.7rem + 5.2vw,6rem);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
html.lock{overflow:hidden}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--step-0);
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;text-wrap:pretty}
::selection{background:var(--brand);color:var(--ink)}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;line-height:1.06;letter-spacing:-.03em;text-wrap:balance}
h1 em,h2 em,h3 em,.serif em{font-style:normal;font-weight:600;color:var(--brand-em)}
body{font-weight:400}
strong,b{font-weight:600}
h2{font-size:var(--step-3);max-width:20ch}
h3{font-size:var(--step-2)}
p{max-width:65ch}
.mono{font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.045em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.mono b{color:var(--brand-text);font-weight:500}
.wrap{padding-inline:var(--pad)}
.inner{max-width:var(--maxw);margin-inline:auto}
section{padding-block:clamp(4rem,9vw,8rem)}
.lead{font-size:var(--step-1);line-height:1.45;max-width:38ch;color:var(--ink-70)}
.muted{color:rgba(28,24,21,.62)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}
footer :focus-visible,.dark-sec :focus-visible,.wa-card :focus-visible,#menu :focus-visible,.hero :focus-visible,.tile.dark :focus-visible,
.cal-prox :focus-visible,.nav:not(.solid):not(.light) :focus-visible,#ck :focus-visible{outline-color:var(--paper)}
[tabindex="-1"]:focus:not(:focus-visible){outline:none}
html{scroll-padding-top:calc(var(--navh,4.6rem) + 1rem)}
html:has(#cal){scroll-padding-top:calc(var(--navh,4.6rem) + 4.8rem)}
.skip{position:absolute;left:1rem;top:-4rem;z-index:200;background:var(--ink);color:var(--paper);padding:.7rem 1rem;
  border-radius:2px;text-decoration:none;font-weight:600;transition:top .3s var(--ez)}
.skip:focus{top:1rem}
a,button{-webkit-tap-highlight-color:transparent}
/* el atributo hidden manda siempre (lo usan el calendario y los avisos; sin esto, display:grid lo anulaba) */
[hidden]{display:none!important}

/* Cortina de transición entre páginas, en dos capas: una naranja profunda que abre camino y la
   naranja de la marca que la sigue. Suben para cubrir, se cambia la página por detrás, y vuelven a
   subir para descubrirla. Las mueve el JavaScript (main.js → navegar). */
.curtain{position:fixed;inset:0;z-index:250;pointer-events:none}
.curtain div{position:absolute;inset:0;transform:translateY(101%);will-change:transform}
.curtain .c1{background:var(--brand-2)}
.curtain .c2{background:var(--brand)}
.curtain .c2::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--ink);opacity:.22}

/* la web se siente impresa: papel + grano, fijos y muy tenues */
body::before{content:'';position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:var(--grano);background-size:150px;opacity:.05;mix-blend-mode:multiply}

/* ── iconos con firma: remate recto + punto naranja ── */
.ico{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:middle;flex:0 0 auto;
  fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter}
.ico .pt{fill:var(--brand);stroke:none}
.ico.sm{width:1rem;height:1rem;stroke-width:1.8}
.ico.lg{width:2.2rem;height:2.2rem;stroke-width:1.15}

/* ── botones ── */
.btn{font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  padding:.95rem 1.5rem;text-decoration:none;display:inline-flex;align-items:center;gap:.6rem;
  border-radius:2px;background:var(--brand);color:var(--ink);border:1px solid var(--brand);
  transition:background .35s var(--ez),color .35s var(--ez),border-color .35s var(--ez),transform .35s var(--ez);
  white-space:nowrap}
.btn:hover{background:var(--brand-2);border-color:var(--brand-2)}
.btn.ghost{background:transparent;border-color:rgba(248,244,236,.4);color:var(--paper)}
.btn.ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn.dark:hover{background:var(--brand-2);border-color:var(--brand-2);color:var(--ink)}
.btn.line{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--paper)}
.btn .ico{width:.9rem;height:.9rem;stroke-width:2}
.link{text-decoration:none;background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/0 1px;
  transition:background-size .45s var(--ez);padding-bottom:1px}
.link:hover{background-size:100% 1px}
.arrow{display:inline-flex;align-items:center;gap:.5rem;padding-block:.45rem;text-decoration:none;font-family:var(--mono);
  font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brand-text)}
.arrow .ico{transition:transform .35s var(--ez)}
.arrow:hover .ico{transform:translateX(4px)}

/* ── intro: el sobre cerrado, el sello y la carta que se convierte en la web ── */
#pre{position:fixed;inset:0;z-index:300;background:var(--ink);color:var(--paper);display:grid;place-items:center;overflow:hidden}
/* fondo: la foto del despacho desenfocada, con un halo cálido tras el sobre y grano de película */
#pre .bg{position:absolute;inset:-8%;filter:blur(16px) saturate(.85) brightness(.5);transform:scale(1.06);will-change:transform}
#pre .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
#pre .bg::after{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 46% 46% at 50% 48%,rgba(247,151,51,.22) 0%,rgba(247,151,51,0) 70%),
             radial-gradient(ellipse at 50% 50%,rgba(28,24,21,.25) 0%,rgba(28,24,21,.85) 75%)}
#pre::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;
  opacity:.14;mix-blend-mode:overlay}
#pre .scene{perspective:1500px;width:min(580px,86vw);position:relative;z-index:2}
#pre .env{position:relative;width:100%;aspect-ratio:5/3.3;transform-style:preserve-3d;
  filter:drop-shadow(0 30px 50px rgba(0,0,0,.55))}
#pre .env-back{position:absolute;inset:0;background:#E6DCC8;border-radius:4px;z-index:1}
#pre .letter{position:absolute;left:6%;top:0;z-index:2;overflow:hidden;background:#0A0705;border-radius:3px;
  box-shadow:0 0 0 6px #FBF8F2,0 22px 44px rgba(0,0,0,.45);will-change:transform}
#pre .letter .hero{border-radius:0}
#pre .env-side{position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,#F1E8D8,#EADFCC)}
#pre .env-side.l{clip-path:polygon(0 0,52% 50%,0 100%)}
#pre .env-side.r{clip-path:polygon(100% 0,48% 50%,100% 100%);background:linear-gradient(270deg,#F1E8D8,#EADFCC)}
#pre .env-bottom{position:absolute;inset:0;z-index:4;background:linear-gradient(180deg,#EFE6D5,#F5EEE0);
  clip-path:polygon(0 100%,50% 48%,100% 100%)}
#pre .flap{position:absolute;inset:0;z-index:6;transform-origin:50% 0;transform-style:preserve-3d;
  background:linear-gradient(180deg,#F6EFE2,#EBE1CF);clip-path:polygon(0 0,100% 0,50% 56%);
  backface-visibility:visible}
#pre .flap.open{z-index:1}
#pre .seal{position:absolute;left:50%;top:52%;width:22%;height:auto;z-index:7;border-radius:3px;
  transform:translate(-50%,-50%) rotate(-4deg);box-shadow:0 4px 14px rgba(0,0,0,.35);opacity:0}
#pre .seal-ring{position:absolute;left:50%;top:52%;width:34%;aspect-ratio:1;border:2px solid var(--brand);
  border-radius:50%;z-index:5;transform:translate(-50%,-50%) scale(.6);opacity:0;pointer-events:none}
#pre{display:none}
html.intro #pre{display:grid;animation:preSafety .4s 8s forwards}
@keyframes preSafety{to{opacity:0;visibility:hidden}}
/* el bolsillo del sobre: recorta la carta por abajo y por los lados, pero la deja salir por arriba */
#pre .pocket{position:absolute;left:0;right:0;bottom:0;top:-300vh;overflow:hidden;z-index:2}

/* ── nav ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;padding:.9rem var(--pad);border-bottom:1px solid transparent;color:var(--paper);
  transition:background .45s var(--ez),border-color .45s var(--ez),color .45s var(--ez),transform .5s var(--ez)}
.nav.solid,.nav.light{background:rgba(248,244,236,.94);backdrop-filter:blur(10px);border-bottom-color:var(--line);color:var(--ink)}
.nav.hide{transform:translateY(-110%)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-family:var(--serif);font-size:1.25rem;letter-spacing:-.01em;line-height:1}
.brand img{height:2.75rem;width:auto;border-radius:2px;flex:0 0 auto}
.brand>span{display:none}
.brand>.sr{display:block}
.brand>.b-max{display:none}
@media(min-width:1100px){.brand>span{display:block}.brand>.b-min{display:none}.brand>.b-max{display:block}}
.f-grid .brand img{height:3.4rem}
.f-grid .brand>span{display:block}
.brand .mk{width:2.2rem;height:2.2rem;border-radius:3px;background:var(--brand);color:var(--ink);display:grid;place-items:center;
  font-family:var(--serif);font-size:1rem;letter-spacing:.02em}
.brand small{display:block;font-family:var(--mono);font-size:.63rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.74;margin-top:.25rem}
.nav-l{display:flex;gap:1.7rem;align-items:center}
.nav-l a{text-decoration:none;opacity:.78;transition:opacity .3s var(--ez);position:relative}
.nav-l a:not(.nav-cta)::after{content:'';position:absolute;left:0;right:0;bottom:-.35rem;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ez)}
.nav-l a:not(.nav-cta):hover::after,.nav-l a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.nav:not(.solid):not(.light) .nav-l a{opacity:.9}
.nav:not(.solid):not(.light) .nav-l a:not(.nav-cta){text-shadow:0 0 14px rgba(10,7,5,.7),0 1px 3px rgba(10,7,5,.6)}
.nav-l a:hover,.nav-l a[aria-current],.nav:not(.solid):not(.light) .nav-l a:hover,.nav:not(.solid):not(.light) .nav-l a[aria-current]{opacity:1}
.nav-l a[aria-current]{color:var(--brand-text)}
.nav.light .nav-l a[aria-current],.nav.solid .nav-l a[aria-current]{color:var(--brand-text)}
.nav:not(.solid):not(.light) .nav-l a[aria-current]{color:var(--brand)}
.nav-cta{background:var(--brand);color:var(--ink)!important;padding:.65rem 1.1rem;border-radius:2px;opacity:1!important;
  transition:background .35s var(--ez)}
.nav-cta:hover{background:var(--brand-2)}
.burger{display:none;width:2.6rem;height:2.6rem;place-items:center;border:1px solid currentColor;border-radius:2px;opacity:.85}
.burger span{display:block;width:1.1rem;height:1px;background:currentColor;position:relative}
.burger span::before,.burger span::after{content:'';position:absolute;left:0;width:100%;height:1px;background:currentColor;transition:transform .35s var(--ez)}
.burger span::before{top:-5px}.burger span::after{top:5px}
@media(max-width:960px){
  .nav-l{display:none}
  .burger{display:grid}
}
/* menú móvil */
#menu{position:fixed;inset:0;z-index:95;background:var(--ink);color:var(--paper);display:grid;grid-template-rows:auto 1fr auto;
  padding:1rem var(--pad) 2rem;transform:translateY(-100%);transition:transform .6s var(--ez);visibility:hidden}
#menu.open{transform:none;visibility:visible}
#menu{overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:1rem}
#menu .burger span{background:transparent}
#menu .burger span::before{top:0;transform:rotate(45deg)}
#menu .burger span::after{top:0;transform:rotate(-45deg)}
#menu .bot a{display:inline-block;padding:.55rem 0}
#menu .top{display:flex;justify-content:space-between;align-items:center}
#menu nav{display:grid;align-content:center;gap:.2rem}
#menu nav a{font-family:var(--serif);font-size:clamp(2rem,8vw,3.2rem);text-decoration:none;line-height:1.15;display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:1px solid rgba(248,244,236,.14);padding:.5rem 0}
#menu nav a small{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;opacity:.5}
#menu .bot{display:flex;flex-wrap:wrap;gap:1.2rem 2rem;justify-content:space-between;align-items:end}
#menu .bot .mono{color:rgba(248,244,236,.55)}
@media(max-height:560px){#menu{grid-template-rows:auto auto auto;gap:1rem}#menu nav a{font-size:clamp(1.35rem,6.5vh,2rem);padding:.3rem 0}}

/* ── héroe ── */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;
  padding-bottom:clamp(2rem,5vh,3.5rem);padding-top:6rem;overflow:clip;background:#0A0705;color:var(--paper)}
.hero-img{position:absolute;inset:0;z-index:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:72% 50%;transform:scale(1.06);transition:transform 2.4s var(--ez)}
html.ready .hero-img img{transform:none}
/* la propia foto ya tiene el tercio izquierdo en luminancia 10/255: el velo solo asegura el paso */
.hero-img::after{content:'';position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(10,7,5,.88) 0,rgba(10,7,5,.58) 90px,rgba(10,7,5,0) 185px),
  linear-gradient(96deg,rgba(10,7,5,.9) 0%,rgba(10,7,5,.6) 38%,rgba(10,7,5,0) 64%),
  linear-gradient(0deg,rgba(10,7,5,.88) 0%,rgba(10,7,5,0) 46%)}
/* En pantallas estrechas el titular ocupa todo el ancho, así que se encuadra la madera
   oscura de la izquierda (el logo ya está en la cabecera) y el naranja no pisa al naranja. */
@media(max-width:1000px){
  .hero-img img{object-position:34% 50%}
  .hero-img::after{background:
    linear-gradient(96deg,rgba(10,7,5,.86) 0%,rgba(10,7,5,.66) 55%,rgba(10,7,5,.34) 100%),
    linear-gradient(0deg,rgba(10,7,5,.92) 0%,rgba(10,7,5,.1) 60%)}
}
.hero-in{position:relative;z-index:2;max-width:62rem}
.hero-tag{display:flex;gap:.8rem;align-items:center;color:rgba(248,244,236,.6);margin-bottom:1.4rem;flex-wrap:wrap}
.hero-tag s{width:2.2rem;height:1px;background:var(--brand);display:block;text-decoration:none}
.hero h1{font-size:var(--step-4);color:var(--paper);max-width:14ch}
.hero h1 .ln{display:block;overflow:clip;padding-bottom:.06em;margin-bottom:-.06em}
.hero h1 .ch{display:inline-block;white-space:pre;will-change:transform}
.hero h1 em{color:var(--brand)}
.hero-sub{max-width:46ch;color:rgba(248,244,236,.7);margin-top:1.5rem;font-size:var(--step-1);line-height:1.45}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;
  margin-top:2.6rem;padding-top:1.3rem;border-top:1px solid rgba(248,244,236,.18)}
.hero-foot .mono{color:rgba(248,244,236,.5)}
.hero-cta{display:flex;gap:.7rem;flex-wrap:wrap}
.scroll-hint{position:absolute;right:var(--pad);bottom:clamp(2rem,5vh,3.5rem);z-index:2;display:flex;align-items:center;gap:.6rem;color:rgba(248,244,236,.5)}
.scroll-hint i{width:1px;height:2.6rem;background:linear-gradient(var(--brand),transparent);display:block;animation:hint 2.2s var(--ez) infinite}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:700px){.scroll-hint{display:none}}

/* héroe pequeño (páginas interiores) */
.hero.small{min-height:auto;padding-top:9rem;padding-bottom:3.5rem;background:var(--ink)}
@media(max-width:700px){.hero.small{padding-top:6.5rem;padding-bottom:2.6rem}}
.hero.small::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.12;mix-blend-mode:overlay}
.hero.small .inner{width:100%}
.hero.small h1{font-size:var(--step-3);max-width:18ch}
.hero.small .hero-sub{font-size:var(--step-0);color:rgba(248,244,236,.66)}
.crumbs{display:flex;gap:.6rem;align-items:center;color:rgba(248,244,236,.5);margin-bottom:1.2rem}
.crumbs a{text-decoration:none;display:inline-block;padding:.45rem 0}.crumbs a:hover{color:var(--brand)}

/* ── marquesina de modelos ── */
.marq{border-block:1px solid var(--line);background:var(--paper2);overflow:clip;padding-block:.85rem;position:relative;z-index:2}
.marq-in{display:flex;gap:2.4rem;width:max-content;will-change:transform}
.marq span{font-family:var(--mono);font-size:.8rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-45);white-space:nowrap;display:flex;align-items:center;gap:2.4rem}
.marq span::after{content:'';width:5px;height:5px;background:var(--brand);border-radius:50%;display:block}

/* ── cabeceras de sección ── */
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem 1.5rem;flex-wrap:wrap;
  padding-bottom:1.1rem;margin-bottom:2.8rem;position:relative}
.head::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.9;
  transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ez)}
.head.on::after,html.no-js .head::after{transform:scaleX(1)}
.head .mono{color:var(--ink-45);display:flex;align-items:center;gap:.5rem}
.head p{margin-top:.6rem}

/* ── bento de servicios ── */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;align-items:stretch}
.tile{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:1.7rem;position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:.85rem;text-decoration:none;color:inherit;
  transition:transform .5s var(--ez),box-shadow .5s var(--ez),border-color .5s var(--ez)}
.tile::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.05;mix-blend-mode:multiply}
.tile>*{position:relative;z-index:1}
a.tile:hover,.tile.hov:hover{transform:translateY(-3px);box-shadow:0 1.1rem 2.4rem rgba(28,24,21,.09);border-color:rgba(28,24,21,.28)}
.t-2{grid-column:span 2}.t-3{grid-column:span 3}.t-4{grid-column:span 4}.t-r2{grid-row:span 2}
.tile .kick{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-45);display:flex;align-items:center;gap:.5rem}
.tile h3{font-size:var(--step-2);line-height:1.05}
.tile p{color:var(--ink-70);font-size:.96rem}
.tile.dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tile.dark .kick{color:rgba(248,244,236,.5)}
.tile.dark p{color:rgba(248,244,236,.7)}
.tile.dark h3 em{color:var(--brand)}
.tile.naranja{background:var(--brand);color:var(--ink);border-color:var(--brand)}
.tile.naranja .kick{color:rgba(28,24,21,.82)}
.tile.naranja p{color:rgba(28,24,21,.86)}
.tile.naranja::after{opacity:.09;mix-blend-mode:multiply}
.tile .more{margin-top:auto;padding-top:.6rem}
@media(max-width:1000px){.bento{grid-template-columns:repeat(2,1fr)}.t-3,.t-4{grid-column:span 2}}
@media(max-width:560px){.bento{grid-template-columns:1fr}.t-2,.t-3,.t-4{grid-column:span 1}.t-r2{grid-row:auto}}

/* servicio con icono y lista */
.svc .ico{color:var(--brand-text)}
.svc ul{list-style:none;display:grid;gap:.3rem;margin-top:.1rem}
.svc li{font-size:.88rem;color:var(--ink-70);padding-left:.95rem;position:relative}
.svc li::before{content:'';position:absolute;left:0;top:.66em;width:5px;height:1px;background:var(--brand)}

/* vencimiento vivo */
.venc .big{font-family:var(--serif);font-size:clamp(3.6rem,7.5vw,5.8rem);line-height:.9;font-variant-numeric:tabular-nums;color:var(--brand)}
.venc .lbl{font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-3)}
.venc .mods{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.3rem}
.venc .mods b{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;border:1px solid rgba(248,244,236,.3);padding:.22rem .5rem;border-radius:2px}

/* copiar al portapapeles */
.copy{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;text-align:left;
  border-bottom:1px solid rgba(248,244,236,.2);padding:.75rem 0;font-size:1rem;transition:border-color .3s var(--ez)}
.copy:hover{border-bottom-color:var(--brand)}
.copy .cp{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand);opacity:0;transition:opacity .3s var(--ez);white-space:nowrap}
.copy:hover .cp,.copy.done .cp,.copy:focus-visible .cp{opacity:1}
.copy.on-light{border-bottom-color:var(--line)}
.copy.on-light .cp{color:var(--brand-text)}
.copy.on-light:hover{border-bottom-color:var(--brand-2)}

/* ── novedades ── */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
@media(max-width:900px){.news-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.news-grid{grid-template-columns:1fr}}
.news{display:flex;flex-direction:column;gap:.9rem;background:var(--card);border:1px solid var(--line);border-radius:3px;padding:1.6rem;
  text-decoration:none;color:inherit;position:relative;overflow:hidden;min-height:16rem;
  transition:transform .5s var(--ez),box-shadow .5s var(--ez),border-color .5s var(--ez)}
.news::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.05;mix-blend-mode:multiply}
.news>*{position:relative;z-index:1}
.news:hover{transform:translateY(-3px);box-shadow:0 1.1rem 2.4rem rgba(28,24,21,.09);border-color:rgba(28,24,21,.28)}
.news .meta{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.chip{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);padding:.28rem .55rem;border-radius:2px;color:var(--ink-70);white-space:nowrap}
.chip.fiscal{border-color:var(--brand);color:var(--brand-text)}
.chip.laboral{border-color:var(--ok);color:var(--ok)}
.chip.mercantil{border-color:var(--ink);color:var(--ink)}
.chip.negocio{border-color:rgba(28,24,21,.4);color:var(--ink-70)}
.date{font-family:var(--mono);font-size:.78rem;font-weight:500;letter-spacing:0;color:var(--ink-45);font-variant-numeric:tabular-nums}
.news h3{font-size:var(--step-1);line-height:1.15}
.news p{color:var(--ink-70);font-size:.95rem}
.news .arrow{margin-top:auto}
.news.new{border-color:var(--brand);box-shadow:inset 0 3px 0 var(--brand)}
.news.new::before{content:'Nueva';position:absolute;top:0;right:0;z-index:2;background:var(--brand);color:var(--ink);font-family:var(--mono);
  font-size:.66rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:.3rem .6rem;border-radius:0 0 0 3px}
.news-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}
.news-filters button{font-family:var(--mono);font-size:.76rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);padding:.55rem .9rem;border-radius:2px;
  color:var(--ink-70);transition:all .3s var(--ez)}
.news-filters button:hover{border-color:var(--ink);color:var(--ink)}
.news-filters button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.news-empty{padding:3rem 0;color:var(--ink-45);text-align:center;font-family:var(--mono);font-size:.82rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase}
.updated{display:inline-flex;align-items:center;gap:.5rem}

/* artículo de novedad */
.article{max-width:46rem}
.article .lead{max-width:none;margin-top:1.4rem;color:var(--ink);font-size:var(--step-1)}
.article .body{margin-top:2.4rem;display:grid;gap:1.2rem;font-size:1.06rem}
.article .body p{max-width:none}
.article .body h2{font-size:var(--step-2);margin-top:1rem}
.article .body ul{padding-left:1.2rem;display:grid;gap:.4rem}
.article .box{margin-top:2.6rem;border:1px solid var(--line);border-left:3px solid var(--brand);padding:1.4rem 1.6rem;background:var(--card);border-radius:3px}
.article .box p{max-width:none;font-size:.96rem;color:var(--ink-70)}
.art-nav{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.art-nav a{text-decoration:none;display:grid;gap:.3rem;max-width:22rem}
.art-nav a b{font-family:var(--serif);font-weight:400;font-size:1.15rem;line-height:1.2}
.art-nav a:last-child{text-align:right}

/* ── compartir una novedad ── */
.share{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line);align-items:center}
.share .lbl{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-45);margin-right:.4rem}
.share .btn{padding:.6rem .9rem;font-size:.72rem}
.share .btn.copy{width:auto;display:inline-flex;justify-content:center;padding:.6rem .9rem;border:1px solid var(--ink);border-radius:2px;font-size:.72rem;background:transparent;color:var(--ink)}
.share .btn.copy .cp{opacity:1;font:inherit;letter-spacing:inherit;color:inherit}
.share .btn.copy.done{background:var(--ink);color:var(--paper)}

/* ── proceso / diagrama que se dibuja ── */
.dg{width:100%;height:auto;overflow:visible}
.dg .ln{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter}
.dg .ln.dim{stroke:var(--ink-45);stroke-width:1}
.dg .ac{fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}
.dg .nd{fill:var(--paper);stroke:var(--brand);stroke-width:2}
.dg text{fill:var(--ink);font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.01em}
.dg text.sm{font-size:10.5px;font-weight:500;fill:var(--ink-45);letter-spacing:.02em}
.dg text.big{font-family:var(--serif);font-size:22px}
.dg text.acc{fill:var(--brand-text)}
.dg-note{color:var(--ink-45);margin-top:2rem;text-align:center;max-width:none}
.steps.dg-steps{display:none}
@media(max-width:700px){.dg{display:none}.steps.dg-steps{display:grid}#proceso .head{margin-bottom:1.2rem}#proceso .head::after{display:none}}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;counter-reset:st}
.step{border-top:1px solid var(--ink);padding-top:1rem;display:grid;gap:.5rem}
.step .n{font-family:var(--serif);font-size:var(--step-2);color:var(--brand-text)}
.step h3{font-size:1.25rem}
.step p{font-size:.92rem;color:var(--ink-70)}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}

/* ── calendario fiscal (datos de la Agencia Tributaria, ver js/aeat.js) ── */
.cal-bar{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-bottom:1rem}
.cal-bar .btn{margin-left:auto}
.cal-vista{display:inline-flex;border:1px solid var(--ink);border-radius:2px;padding:3px;gap:3px;background:var(--card)}
.cal-vista button{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.62rem .95rem;
  border-radius:1px;color:var(--ink-70);transition:background .3s var(--ez),color .3s var(--ez)}
.cal-vista button:hover{color:var(--ink)}
.cal-vista button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.cal-q{flex:1 1 17rem;max-width:30rem;display:flex;align-items:center;gap:.6rem;border:1px solid var(--line);background:var(--card);
  border-radius:2px;padding:0 .95rem;transition:border-color .3s var(--ez),box-shadow .3s var(--ez)}
.cal-q:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(247,151,51,.25)}
.cal-q .ico{color:var(--ink-45)}
.cal-q input{border:0;background:none;padding:.82rem 0;width:100%;font:inherit;font-size:1rem;color:var(--ink);outline:0;min-width:0}
.cal-q input::placeholder{color:var(--ink-45)}
.cal-q input:focus{box-shadow:none}
/* barra de meses: se queda fija bajo la cabecera (y sube con ella cuando la cabecera se esconde) */
.cal-meses{position:sticky;top:var(--navh,4.6rem);z-index:40;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;
  padding:.5rem 0;margin-bottom:.4rem;background:rgba(248,244,236,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-block:1px solid var(--line);transition:top .5s var(--ez)}
html.nav-oculta .cal-meses{top:0}
.cal-meses::-webkit-scrollbar{display:none}
.cal-meses a{flex:1 0 auto;text-align:center;font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  text-decoration:none;padding:.66rem .75rem;border-radius:2px;color:var(--ink-70);transition:background .3s var(--ez),color .3s var(--ez)}
.cal-meses a:hover{background:var(--card);color:var(--ink)}
.cal-meses a.antes{color:var(--ink-45)}
.cal-meses a.actual{background:var(--ink);color:var(--paper)}
.cal-pasados{display:flex;width:100%;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem .1rem;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-70);text-align:left;transition:color .3s var(--ez)}
.cal-pasados:hover{color:var(--ink)}
.cal-pasados::after{content:'+';content:'+' / '';width:1.6rem;height:1.6rem;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-size:.8rem}
.cal-pasados[hidden],.cal.buscando .cal-pasados{display:none!important}
.cal.sin-pasados .cal-mes.pasado{display:none}
.cal.sin-pasados.buscando .cal-mes.pasado:not(.vacio){display:grid}
.cal-vacio,.cal-fin{padding:2.4rem 0;color:var(--ink-70);text-align:center;max-width:none}
.cal-fin{max-width:46rem;margin-inline:auto}
.cal-fin a{color:var(--ink)}
/* próximo plazo (lo rellena main.js según la vista y la búsqueda) */
.cal-prox{display:grid;grid-template-columns:auto 1fr auto;gap:1rem 2.2rem;align-items:center;background:var(--ink);color:var(--paper);
  border-radius:3px;padding:1.5rem 1.8rem;margin:1.4rem 0 .6rem;position:relative;overflow:hidden}
.cal-prox::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.1;mix-blend-mode:overlay}
.cal-prox>*{position:relative;z-index:1}
.cal-prox .kick{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(248,244,236,.5);display:block;margin-bottom:.35rem}
.cal-prox .n{font-family:var(--serif);font-size:clamp(3rem,6vw,4.4rem);line-height:.9;color:var(--brand);font-variant-numeric:tabular-nums;display:block}
.cal-prox .l{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-3)}
.cal-prox .t{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;line-height:1.1;font-size:var(--step-1);color:var(--paper);margin:0}
.cal-prox p{color:rgba(248,244,236,.7);font-size:.95rem;margin-top:.3rem}
.cal-prox .mods{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.7rem}
.cal-prox .mods b{font-family:var(--mono);font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums;border:1px solid rgba(248,244,236,.3);padding:.18rem .45rem;border-radius:2px}
.cal-prox .arrow{color:var(--brand);white-space:nowrap}
/* un mes: cabecera fija a la izquierda (mes + mini calendario) y sus plazos a la derecha */
.cal-mes{display:grid;grid-template-columns:minmax(14rem,17.5rem) 1fr;gap:1.2rem clamp(1.5rem,4vw,4rem);padding-block:2.6rem;border-bottom:1px solid var(--line);
  scroll-margin-top:calc(var(--navh,4.6rem) + 4rem)}
.cal-mh{position:sticky;top:calc(var(--navh,4.6rem) + 4.4rem);align-self:start;display:grid;gap:1rem;transition:top .5s var(--ez)}
html.nav-oculta .cal-mh{top:4.4rem}
.cal-mh-t{display:grid;gap:.5rem}
.cal-mh h2{font-size:var(--step-3);line-height:1}
.cal-mh h2 span{color:var(--ink-45);font-weight:500}
.cal-mh .mono{color:var(--ink-45)}
.cal{overflow-anchor:none}
.cal-mg{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-family:var(--mono);font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:center;max-width:17.5rem}
.cal-mg span,.cal-mg a{aspect-ratio:1;display:grid;place-items:center;border-radius:2px;color:var(--ink-45)}
.cal-mg .dw{color:var(--ink);font-size:.64rem;aspect-ratio:auto;padding-bottom:.25rem}
.cal-mg .fs{color:var(--ink-45);font-weight:500}
.cal-mg a{background:var(--brand);color:var(--ink);text-decoration:none;transition:background .3s var(--ez),box-shadow .3s var(--ez)}
.cal-mg a:hover{background:var(--brand-2)}
.cal-mg a.off{background:transparent;color:var(--ink-45);box-shadow:inset 0 0 0 1px var(--line);pointer-events:none}
.cal-mg .hoy{box-shadow:inset 0 0 0 2px var(--ink);color:var(--ink)}
.cal-ver{display:none}
.cal-nada{display:none;color:var(--ink-45);font-size:.95rem;padding:1rem 0}
.cal-mes.vacio .cal-nada{display:block}
.cal.buscando .cal-mes.vacio{display:none}
/* meses ya pasados: plegados, se abren a petición (o al buscar) */
.cal-mes.pasado:not(.abierto){padding-block:1.3rem;grid-template-columns:1fr}
.cal-mes.pasado:not(.abierto) .cal-mh{position:static;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem}
.cal-mes.pasado:not(.abierto) .cal-mh-t{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.2rem;flex:1}
.cal-mes.pasado:not(.abierto) h2{font-size:var(--step-2);color:var(--ink-45)}
.cal-mes.pasado:not(.abierto) .cal-mg,.cal-mes.pasado:not(.abierto) .cal-dias,.cal-mes.pasado:not(.abierto) .cal-nada{display:none}
.cal-mes.pasado:not(.abierto) .cal-ver{display:inline-flex;padding:.62rem 1rem;font-size:.72rem}
.cal.buscando .cal-mes.pasado .cal-dias{display:grid}
.cal.buscando .cal-mes.pasado .cal-ver{display:none}
/* un día de plazo */
.cal-cuerpo{min-width:0}
.cal-dias{list-style:none;display:grid;gap:.9rem;min-width:0}
.cal-dia{display:grid;grid-template-columns:5.4rem 1fr;background:var(--card);border:1px solid var(--line);border-radius:3px;overflow:hidden;position:relative;
  scroll-margin-top:calc(var(--navh,4.6rem) + 4.4rem);transition:border-color .4s var(--ez),box-shadow .4s var(--ez)}
.cd-f{background:var(--paper2);border-right:1px solid var(--line);padding:1.25rem .5rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem}
.cd-f b{font-family:var(--serif);font-size:2.4rem;line-height:1;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.cd-f span{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-text)}
.cd-f small{font-size:.74rem;color:var(--ink-45)}
.cd-f .cd-r{margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-70)}
.cd-b{padding:1.2rem 1.5rem 1.1rem;display:grid;gap:1.05rem;min-width:0}
.cd-t{font-size:1.3rem;line-height:1.2;letter-spacing:-.02em}
.cd-sec{display:grid;gap:1.05rem}
.cd-s{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-text);padding-top:.7rem;border-top:1px dashed var(--line);max-width:none}
.cd-g h4{font-family:var(--serif);font-size:1.04rem;font-weight:600;letter-spacing:-.012em;line-height:1.3;color:var(--ink);margin-bottom:.35rem;display:flex;align-items:baseline;gap:.6rem}
.cd-g h4::before{content:'';width:.8rem;height:2px;background:var(--brand);flex:0 0 auto;transform:translateY(-.28em)}
.cd-n{font-size:.84rem;color:var(--ink-45);line-height:1.5;margin-bottom:.35rem;max-width:none}
.cd-i{list-style:none;display:grid}
.cd-i>li+li{border-top:1px solid var(--line)}
.cd-row{display:flex;justify-content:space-between;align-items:baseline;gap:.35rem 1.2rem;padding:.55rem 0;flex-wrap:wrap}
.cd-it{font-size:.95rem;color:var(--ink-70);flex:1 1 15rem;min-width:0;overflow-wrap:anywhere}
.cd-m{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}
.cd-m b,.cd-it .mi{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;border:1px solid var(--line);
  padding:.14rem .45rem;border-radius:2px;color:var(--ink);background:var(--paper);white-space:nowrap}
.cd-it .mi{padding:.02rem .34rem}
.cd-i li[data-h="1"]>.cd-row .cd-m b,.cd-i li[data-h="1"]>.cd-row .mi{border-color:var(--brand);color:var(--brand-text)}
.cd-i ul{list-style:none;margin:0 0 .45rem .2rem;padding-left:1rem;border-left:1px solid var(--line)}
.cd-i ul .cd-row{padding:.32rem 0}
.cd-src{justify-self:start;padding:.45rem 0;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-45);
  text-decoration:none;display:inline-flex;gap:.4rem;align-items:center;transition:color .3s var(--ez)}
.cd-src:hover{color:var(--brand-text)}
.cd-src .ico{width:.8rem;height:.8rem}
.cd-pie{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;align-items:center;justify-content:space-between;max-width:none;padding-top:.15rem}
.cd-act{font-size:.72rem;color:var(--ink-45)}
.cal-x-f{font-size:.8rem;color:var(--ink-45);max-width:none}
.cal-x-f a{color:var(--ink-70)}
.cal-dia.pasado .cd-f{background:transparent}
.cal-dia.pasado .cd-f b{color:var(--ink-45)}
.cal-dia.pasado .cd-t::after{content:'Vencido';display:inline-block;vertical-align:middle;margin-left:.6rem;font-family:var(--mono);font-size:.62rem;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--ink-70);border:1px solid var(--line);border-radius:2px;padding:.15rem .4rem}
.cal-dia.proximo{border-color:var(--brand);box-shadow:0 1rem 2.2rem rgba(28,24,21,.08)}
.cal-dia.proximo .cd-f{background:var(--brand);border-right-color:var(--brand)}
.cal-dia.proximo .cd-f span{color:var(--ink)}
.cal-dia.proximo .cd-f small{color:rgba(28,24,21,.86)}
.cal-dia.proximo::before{content:'Próximo plazo';position:absolute;top:0;right:0;z-index:2;background:var(--brand);color:var(--ink);font-family:var(--mono);
  font-size:.64rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:.3rem .6rem;border-radius:0 0 0 3px}
/* anexos: domiciliación bancaria y novedades del año */
.cal-extras{display:grid;gap:.9rem;margin-top:3rem}
.cal-x{border:1px solid var(--line);background:var(--card);border-radius:3px}
.cal-x summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.5rem;
  font-family:var(--serif);font-size:var(--step-1);font-weight:600;letter-spacing:-.015em;line-height:1.2}
.cal-x summary::-webkit-details-marker{display:none}
.cal-x summary i{width:1.6rem;height:1.6rem;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-style:normal;
  font-family:var(--mono);font-size:.8rem;transition:transform .4s var(--ez),background .4s var(--ez)}
.cal-x[open] summary i{transform:rotate(45deg);background:var(--brand);border-color:var(--brand)}
.cal-x-in{padding:0 1.5rem 1.6rem;display:grid;gap:1rem}
.cal-x-in>p{color:var(--ink-70);font-size:.95rem}
.cal-x-in.prose{max-width:none}
.cal-x-in.prose p,.cal-x-in.prose li{font-size:.94rem;color:var(--ink-70);max-width:80ch}
.dom{display:grid;border-top:1px solid var(--ink)}
.dom-h,.dom-r{display:grid;grid-template-columns:minmax(9rem,1fr) 1.45fr 1.45fr;gap:1.4rem;padding:.9rem 0;border-bottom:1px solid var(--line);align-items:start}
.dom-h{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-45)}
.dom-r b{font-weight:600;font-size:.94rem;line-height:1.35}
.dom-r div{display:grid;gap:.18rem;font-size:.86rem;color:var(--ink-70);line-height:1.45}
.cal-fuente{margin-top:2.4rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.86rem;color:var(--ink-45);max-width:none}
.cal-fuente a{color:var(--ink-70)}
@media(max-width:900px){
  .cal-mes{grid-template-columns:1fr}
  .cal-mh{position:static;grid-template-columns:1fr auto;align-items:end}
  .cal-mg{width:100%;max-width:17rem;justify-self:end}
  .cal-prox{grid-template-columns:auto 1fr}
  .cal-prox .arrow{grid-column:1/-1}
}
@media(max-width:640px){
  .cal-bar .btn{margin-left:0;width:100%;justify-content:center}
  .cal-vista{width:100%}
  .cal-vista button{flex:1;padding-inline:.5rem}
  .cal-q{max-width:none}
  .cal-mh{grid-template-columns:1fr}
  .cal-mg{justify-self:start;width:100%;max-width:18rem}
  .cal-dia{grid-template-columns:1fr}
  .cd-f{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:.55rem;border-right:0;border-bottom:1px solid var(--line);padding:.8rem 1.1rem;flex-wrap:wrap}
  .cal-dia.proximo .cd-f{border-bottom-color:var(--brand)}
  .cd-f b{font-size:1.9rem}
  .cd-f .cd-r{margin:0 0 0 auto;padding:0;border:0}
  .cd-b{padding:1rem 1.1rem}
  .cd-row{flex-direction:column;align-items:flex-start;gap:.35rem}
  .cd-it{flex:0 0 auto}
  .cd-m{justify-content:flex-start}
  .cal-prox{grid-template-columns:1fr;padding:1.3rem}
  .cal-x summary{padding:1.1rem 1.1rem}
  .cal-x-in{padding:0 1.1rem 1.3rem}
  .dom-h{display:none}
  .dom-r{grid-template-columns:1fr;gap:.55rem}
  .dom-r div::before{content:attr(data-k);font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-45)}
}

/* ── novedades de la Agencia Tributaria ── */
.chip.aeat{border-color:var(--ink);color:var(--ink)}
.news.aeat h3{font-size:1.28rem;line-height:1.2}
.news.aeat p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.news .arrow .ico{width:.85rem;height:.85rem}
.aeat-pie{display:flex;justify-content:space-between;align-items:center;gap:1rem 2rem;flex-wrap:wrap;margin-top:2rem}
.aeat-pie .mono{color:var(--ink-45)}
.nv{display:grid;gap:2.8rem}
.nv-mh{font-size:var(--step-1);margin-bottom:.9rem;display:flex;align-items:center;gap:1rem;max-width:none}
.nv-mh::after{content:'';flex:1;height:1px;background:var(--line)}
.nv-list{list-style:none;display:grid;border-top:1px solid var(--ink)}
.nv-it{display:grid;grid-template-columns:4.4rem 1fr auto;gap:1.5rem;align-items:start;padding:1.3rem .3rem;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit;transition:background .35s var(--ez),padding .35s var(--ez)}
.nv-it:hover{background:var(--card);padding-inline:.9rem}
.nv-d{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-45);display:grid;line-height:1.1;gap:.2rem}
.nv-d b{font-family:var(--serif);font-size:2.1rem;font-weight:600;color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.nv-it.new .nv-d b{color:var(--brand-text)}
.nv-t b{display:block;font-family:var(--serif);font-size:var(--step-1);line-height:1.22;font-weight:600;letter-spacing:-.015em}
.nv-t small{display:block;margin-top:.45rem;color:var(--ink-70);font-size:.94rem;line-height:1.55;max-width:72ch}
.nv-go{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-text);
  display:inline-flex;gap:.4rem;align-items:center;white-space:nowrap;padding-top:.55rem}
.nv-go .ico{width:.85rem;height:.85rem}
@media(max-width:640px){.nv-it{grid-template-columns:3.3rem 1fr;gap:1rem}.nv-go{grid-column:2;padding-top:0}.nv-d b{font-size:1.7rem}}
.fuente-nota{border:1px solid var(--line);border-left:3px solid var(--brand);background:var(--card);border-radius:3px;padding:1.1rem 1.4rem;
  font-size:.9rem;color:var(--ink-70);margin-bottom:2.4rem;max-width:none}
.fuente-nota a{color:var(--ink)}

/* ── administraciones públicas ── */
.adm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
@media(max-width:1060px){.adm-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:660px){.adm-grid{grid-template-columns:1fr}}
.adm{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:1.7rem;display:flex;flex-direction:column;gap:1rem;position:relative;overflow:hidden;
  scroll-margin-top:calc(var(--navh,4.6rem) + 1.5rem);transition:border-color .5s var(--ez),box-shadow .5s var(--ez)}
.adm::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.05;mix-blend-mode:multiply}
.adm>*{position:relative;z-index:1}
.adm:hover{border-color:rgba(28,24,21,.28);box-shadow:0 1.1rem 2.4rem rgba(28,24,21,.07)}
.adm-top{display:flex;align-items:center;gap:1rem}
.adm .sig{font-family:var(--serif);font-size:.92rem;font-weight:600;letter-spacing:.02em;min-width:3.4rem;height:3.4rem;padding:0 .5rem;display:grid;place-items:center;
  border:1px solid var(--ink);border-radius:2px;background:var(--paper);flex:0 0 auto}
.adm h2{font-size:var(--step-1);max-width:none;line-height:1.15}
.adm h2 small{display:block;font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-45);margin-top:.35rem}
.adm>p{font-size:.94rem;color:var(--ink-70)}
.adm ul{list-style:none;display:grid;border-top:1px solid var(--line)}
.adm li a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.66rem 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:.95rem;
  transition:color .3s var(--ez),padding .3s var(--ez)}
.adm li a:hover{color:var(--brand-text);padding-left:.3rem}
.adm li a .ico{width:.85rem;height:.85rem;color:var(--ink-45);flex:0 0 auto}
.adm .btn{align-self:flex-start;margin-top:auto}
.adm .dir{font-size:.84rem;color:var(--ink-45)}

/* ── WhatsApp ── */
.btn .ico.wa,.ico.wa{stroke-width:1.6}
.wa-card{background:var(--ink);color:var(--paper);border-radius:3px;padding:clamp(1.7rem,4vw,3rem);display:grid;gap:1.3rem;position:relative;overflow:hidden}
.wa-card::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.1;mix-blend-mode:overlay}
.wa-card>*{position:relative;z-index:1}
.wa-card .kick{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(248,244,236,.5);display:flex;gap:.5rem;align-items:center}
.wa-card h2{color:var(--paper);font-size:var(--step-3)}
.wa-card h2 em{color:var(--brand)}
.wa-card>p{color:rgba(248,244,236,.72)}
.wa-card .btn{justify-self:start}
.wa-temas{display:grid;gap:.7rem;padding-top:1.2rem;border-top:1px solid rgba(248,244,236,.16)}
.wa-temas>span{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(248,244,236,.5)}
.wa-temas div{display:flex;flex-wrap:wrap;gap:.45rem}
.wa-temas a{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid rgba(248,244,236,.3);color:var(--paper);
  padding:.6rem .85rem;border-radius:2px;text-decoration:none;transition:background .3s var(--ez),color .3s var(--ez),border-color .3s var(--ez)}
.wa-temas a:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.wa-card .fine{font-size:.8rem;color:rgba(248,244,236,.5)}
.wa-card .fine a{color:rgba(248,244,236,.75)}
.wa-alt{display:flex;flex-wrap:wrap;gap:.6rem}
.btn.ghost-dark{background:transparent;border-color:rgba(248,244,236,.35);color:var(--paper)}
.btn.ghost-dark:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* ── aviso breve ── */
#toast{position:fixed;left:50%;bottom:1.4rem;z-index:130;transform:translate(-50%,1rem);opacity:0;pointer-events:none;background:var(--ink);color:var(--paper);
  border:1px solid rgba(248,244,236,.18);border-radius:3px;padding:.95rem 1.25rem;font-size:.92rem;line-height:1.45;width:max-content;max-width:min(32rem,calc(100vw - 2rem));
  box-shadow:0 1rem 2.4rem rgba(0,0,0,.25);transition:opacity .35s var(--ez),transform .35s var(--ez)}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* titular de portada: la línea superior forma parte del h1 (Google la lee) sin cambiar su aspecto */
.hero h1 .hero-tag{font-family:var(--sans);letter-spacing:0;line-height:1.3;max-width:none}
.hero h1 .hero-tag .mono{font-weight:600}
.venc .big.hoy{font-size:clamp(2.6rem,5vw,4rem)}

/* ── sección oscura (el despacho) ── */
.dark-sec{background:var(--ink);color:var(--paper);position:relative}
.dark-sec::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.1;mix-blend-mode:overlay}
.dark-sec>*{position:relative;z-index:1}
.dark-sec h2{color:var(--paper)}
.dark-sec h2 em{color:var(--brand)}
.dark-sec .head::after{background:rgba(248,244,236,.35)}
.dark-sec .head .mono{color:rgba(248,244,236,.62)}
.dark-sec p{color:rgba(248,244,236,.68)}
.cif-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2.4rem 2rem}
.cif .n{font-family:var(--serif);font-size:clamp(2.8rem,5.5vw,4.6rem);line-height:1;font-variant-numeric:tabular-nums;color:var(--brand)}
.cif .l{display:block;margin-top:.55rem;color:rgba(248,244,236,.62);font-size:.92rem;max-width:22ch}
@media(max-width:900px){.cif-grid{grid-template-columns:1fr 1fr}}
.two{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.two .sticky{position:sticky;top:6rem}
@media(max-width:900px){.two{grid-template-columns:1fr}.two .sticky{position:static}}
.pillars{display:grid;gap:0;border-top:1px solid rgba(248,244,236,.2)}
.pillar{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.3rem 0;border-bottom:1px solid rgba(248,244,236,.2)}
.pillar .n{font-family:var(--mono);font-size:.78rem;color:var(--brand);font-weight:600;letter-spacing:.04em;padding-top:.35rem}
.pillar h3{font-size:var(--step-1);color:var(--paper)}
.pillar p{margin-top:.35rem;font-size:.95rem}

/* ── newsletter ── */
.nl{background:var(--paper2);border-block:1px solid var(--line)}
.nl-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
@media(max-width:900px){.nl-grid{grid-template-columns:1fr}}
.nl form{display:grid;gap:.7rem}
.nl .row{display:flex;gap:.6rem;flex-wrap:wrap}
.nl input[type=email]{flex:1 1 16rem}
.nl .fine{font-size:.78rem;color:var(--ink-45);max-width:none}
.nl .fine a{color:var(--ink-70)}

/* ── formularios ── */
.field{display:grid;gap:.4rem}
.field label{font-family:var(--mono);font-size:.73rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-45)}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:2px;
  padding:.85rem 1rem;transition:border-color .3s var(--ez),box-shadow .3s var(--ez)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(247,151,51,.25)}
textarea{min-height:8rem;resize:vertical}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.86rem;color:var(--ink-70)}
.check input{margin-top:.3rem;accent-color:var(--brand-2)}
.check a{color:var(--ink)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-grid .full{grid-column:1/-1}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}}
.form-ok{display:none;border:1px solid var(--ok);border-left:3px solid var(--ok);padding:1.2rem 1.4rem;border-radius:3px;background:var(--card)}
.form-ok.show{display:block}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* ── contacto ── */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}.contact-grid .wa-card{order:-1}}
.contact-list{display:grid;border-top:1px solid var(--line)}
.c-row{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.c-row .k{font-family:var(--mono);font-size:.73rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-45)}
.c-row .v{font-size:1.05rem}
.c-row .v a{text-decoration:none;display:inline-block;padding:.35rem 0}
.c-row .v a:hover{color:var(--brand-text)}
@media(max-width:480px){.c-row{grid-template-columns:1fr;gap:.2rem}}
.map{margin-top:1.6rem;aspect-ratio:4/3;background:var(--paper2);border:1px solid var(--line);border-radius:3px;display:grid;place-items:center;position:relative;overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.9) contrast(1.05) sepia(.15)}
.map .load{display:grid;gap:.8rem;place-items:center;text-align:center;padding:1.5rem}
.map .load p{font-size:.84rem;color:var(--ink-45);max-width:28ch}

/* ── FAQ ── */
.faq{display:grid;border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.2rem 0;font-family:var(--serif);font-size:var(--step-1);line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{width:1.6rem;height:1.6rem;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-style:normal;font-family:var(--mono);font-size:.8rem;transition:transform .4s var(--ez),background .3s var(--ez)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--brand);border-color:var(--brand)}
.faq .a{padding:0 0 1.4rem;color:var(--ink-70);max-width:62ch}

/* ── listas de contenido interior ── */
.incl{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media(max-width:700px){.incl{grid-template-columns:1fr}}
.incl .it{border:1px solid var(--line);background:var(--card);border-radius:3px;padding:1.3rem 1.4rem;display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start}
.incl .it .ico{color:var(--brand-text);margin-top:.15rem}
.incl .it b{font-family:var(--serif);font-weight:400;font-size:1.2rem;display:block;line-height:1.15}
.incl .it p{font-size:.9rem;color:var(--ink-70);margin-top:.3rem}
.prose{display:grid;gap:1.1rem;max-width:62ch}
.prose h2{font-size:var(--step-2);margin-top:1.2rem}
.prose ul{padding-left:1.2rem;display:grid;gap:.35rem}
.prose li{color:var(--ink-70)}
.aside{display:grid;gap:1rem}
.aside .tile{padding:1.4rem}

/* ── enlaces útiles ── */
.links-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}
@media(max-width:760px){.links-grid{grid-template-columns:1fr}}
.feat-links{border:1px solid var(--line);background:var(--card);border-radius:3px;padding:1.5rem 1.6rem;
  position:relative;overflow:hidden}
.feat-links::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.05;mix-blend-mode:multiply}
.feat-links>*{position:relative;z-index:1}
.feat-links h2,.feat-links h3{font-size:var(--step-1);max-width:none;margin-bottom:.9rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.feat-links ul{list-style:none;display:grid;gap:.5rem}
.feat-links li{font-size:.96rem}
.feat-links a{color:var(--ink-70);text-decoration:none;display:inline-block;overflow-wrap:anywhere}
.feat-links a:hover{color:var(--brand-text)}

/* ── CTA final ── */
.cta{background:var(--brand);color:var(--ink);position:relative;overflow:hidden}
.cta::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.09;mix-blend-mode:multiply}
.cta>*{position:relative;z-index:1}
.cta h2{max-width:16ch}
.cta h2 em{color:var(--ink);opacity:.72}
.cta p{color:rgba(28,24,21,.78)}
.cta-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:end}
@media(max-width:900px){.cta-grid{grid-template-columns:1fr;gap:2rem}}
.cta .copy{border-bottom-color:rgba(28,24,21,.3);text-decoration:none;color:var(--ink)}
.cta .copy .cp{color:var(--ink);opacity:.82}
.cta .mono{color:rgba(28,24,21,.82)}

/* ── footer ── */
footer{background:var(--ink);color:rgba(248,244,236,.62);padding-block:3.5rem 2rem;position:relative}
footer::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--grano);background-size:150px;opacity:.1;mix-blend-mode:overlay}
footer>*{position:relative;z-index:1}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem 2rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(248,244,236,.14)}
@media(max-width:900px){.f-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.f-grid{grid-template-columns:1fr}}
.f-grid .brand{color:var(--paper)}
.f-grid h4,.f-grid .f-h{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:rgba(248,244,236,.5);margin-bottom:1rem;font-weight:600}
.f-grid ul{list-style:none;display:grid;gap:.45rem}
.f-grid a{text-decoration:none;transition:color .3s var(--ez)}
.f-grid a:hover{color:var(--brand)}
.f-grid p{font-size:.92rem;max-width:30ch;margin-top:1rem}
.f-bot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.6rem;font-size:.8rem}
.f-bot .mono{color:rgba(248,244,236,.62)}
.f-bot a{display:inline-block;padding:.55rem .1rem}
.f-bot a{text-decoration:none}
.f-bot a:hover{color:var(--brand)}

/* ── legal ── */
.legal{max-width:46rem}
.legal h2{font-size:var(--step-2);margin-top:2.2rem;margin-bottom:.6rem}
.legal p,.legal li{color:var(--ink-70);margin-bottom:.8rem;max-width:none}
.legal ul{padding-left:1.2rem}

/* ── aviso de cookies (solo si hay analítica configurada) ── */
#ck{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:120;max-width:34rem;margin-inline:auto;background:var(--ink);color:var(--paper);
  border:1px solid rgba(248,244,236,.15);border-radius:3px;padding:1.2rem 1.4rem;display:none;gap:1rem;align-items:center;flex-wrap:wrap}
#ck.show{display:flex}
#ck p{font-size:.86rem;color:rgba(248,244,236,.75);flex:1 1 18rem;max-width:none}
#ck .btn{padding:.7rem 1rem}
#ck a{color:var(--paper)}

/* ── utilidades de revelado ── */
.rev{will-change:transform,opacity}
html.no-js .rev,html.no-js .hero h1 .ch{opacity:1!important;transform:none!important}
/* sin JavaScript no se muestran controles que no harían nada (el pie sigue dando toda la navegación) */
html.no-js [data-menu],html.no-js .cal-bar,html.no-js .map .load button,html.no-js [data-ver-pasados],html.no-js .cal-ver{display:none!important}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .hero-img img{transform:none}
}
.pill{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.73rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);padding:.35rem .7rem;border-radius:99px;color:var(--ink-70)}
.pill i{width:.45rem;height:.45rem;border-radius:50%;background:var(--brand);display:block}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media(max-width:700px){.grid-2{grid-template-columns:1fr}}
.tag-row{display:flex;gap:.5rem;flex-wrap:wrap}

/* ── impresión ── */
@media print{
  #pre,.nav,#menu,.marq,.cta,footer,.share,.news-filters,.nl,#ck,.hero-img,.btn,.skip,.curtain{display:none!important}
  body{background:#fff;color:#000}
  body::before{display:none}
  .hero,.hero.small{background:none!important;color:#000;padding-top:1rem;min-height:auto}
  .hero h1,.hero.small h1,.hero-sub{color:#000!important}
  .cal-bar,.cal-meses,.cal-prox,.cd-src,.cal-ver,.cal-mg,#toast,.wa-temas,.cal-pasados{display:none!important}
  .cal-mes,.cal-mes.pasado:not(.abierto){grid-template-columns:1fr;padding-block:1rem;break-inside:auto}
  .cal-mh{position:static}
  .cal-mes.pasado .cal-dias{display:grid!important}
  .hero-tag,.hero-tag .mono,.hero-foot .mono,.crumbs,.crumbs a,[data-cal-act],.hero.small .mono,.cal-prox *,.wa-card *,.tile.dark *,.dark-sec *{color:#000!important}
  .cal-prox,.wa-card,.tile.dark,.dark-sec{background:none!important;border:1px solid #999}
  .map,.wa-temas,.wa-alt{display:none!important}
  .adm a[href^="http"]::after,.feat-links a[href^="http"]::after{content:" (" attr(href) ")";font-size:.75em;color:#444;word-break:break-all}
  .cal-dia{break-inside:avoid;opacity:1!important}
  section{padding-block:1.5rem}
  .rev{opacity:1!important;transform:none!important}
  a{text-decoration:none;color:inherit}
}
