/* ==========================================================================
   EXERGÍA V2 — páginas de menú por pasos (formato de las Herramientas de Cálculo)
   Encabezado con mapa 3D · línea de pasos · panel del paso elegido
   ========================================================================== */
.pp{ --st-a:#FFFFFF; --st-b:#EEF3F7; --st-c:#DFE8F0; --st-dot:rgba(23,76,115,.10); --tip-bg:rgba(13,36,56,.55); padding-bottom:clamp(40px,7vh,90px); }
html[data-theme="dark"] .pp{ --st-a:#1A3047; --st-b:#11233A; --st-c:#0A1826; --st-dot:rgba(160,200,235,.08); --tip-bg:rgba(255,117,31,.6); }

/* ---------- encabezado: texto a la izquierda, mapa a la derecha ---------- */
.pp-hero{ padding:calc(var(--hdr-real, 96px) + 18px) 0 clamp(70px,10vh,110px);
  background:radial-gradient(ellipse 70% 80% at 80% 30%, color-mix(in srgb, var(--azul) 10%, transparent), transparent 70%), linear-gradient(180deg, color-mix(in srgb, var(--azul) 6%, var(--paper)), var(--paper)); }
.pp-hero-grid{ display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr); gap:clamp(20px,3vw,56px); align-items:center; }
.pp-crumb{ font-size:var(--f-small); font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:clamp(10px,2vh,22px); }
.pp-crumb a{ color:var(--naranja); }
.pp-hero h1{ font-size:clamp(2.8rem,6vw,6.4rem); font-weight:700; line-height:.94; letter-spacing:-.05em; color:var(--azul-deep); margin-bottom:clamp(14px,2.4vh,26px); }
html[data-theme="dark"] .pp-hero h1{ color:var(--ink); }
.pp-phrase{ font-size:clamp(1.02rem,1.3vw,1.32rem); line-height:1.55; color:var(--ink-soft); max-width:34em; }

/* mapa (mismos componentes que la portada) */
.pp-map.mq-stage{ position:relative; height:min(56vh, 560px); min-height:340px; border-radius:24px; overflow:hidden; cursor:grab; touch-action:pan-y;
  background:radial-gradient(ellipse 70% 60% at 50% 42%, var(--st-a) 0%, var(--st-b) 55%, var(--st-c) 100%);
  border:1px solid var(--linea); box-shadow:0 30px 80px -40px rgba(13,36,56,.45), inset 0 1px 0 rgba(255,255,255,.6); }
.pp-map.mq-stage:active{ cursor:grabbing; }
.pp-map::before{ content:''; position:absolute; inset:0; background-image:radial-gradient(var(--st-dot) 1.2px, transparent 1.3px); background-size:22px 22px; pointer-events:none; }
.pp-map .mq-canvas{ position:absolute; inset:0; width:100% !important; height:100% !important; display:block; }
.pp-map .mq-tip{ position:absolute; left:50%; top:14px; transform:translateX(-50%); z-index:4; display:inline-flex; align-items:center; gap:10px; padding:8px 14px 8px 14px; border-radius:100px;
  background:var(--tip-bg); color:#fff; font-size:.84rem; font-weight:700; white-space:nowrap; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.22); border-left:5px solid var(--tc, var(--naranja)); max-width:90%; }
.pp-map .mq-tip[hidden]{ display:none; }
.pp-map .mq-tip span{ color:var(--tc, var(--naranja)); }
.pp-map .mq-tip b{ overflow:hidden; text-overflow:ellipsis; }
.pp-map .mq-lead{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:3; overflow:visible; opacity:0; transition:opacity .5s var(--ease); }
.pp-map .mq-hint{ position:absolute; left:14px; bottom:12px; z-index:2; display:inline-flex; align-items:center; gap:8px; padding:6px 12px 6px 9px; border-radius:100px;
  background:rgba(255,255,255,.75); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); border:1px solid var(--linea); color:var(--azul-deep);
  font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; pointer-events:none; }
html[data-theme="dark"] .pp-map .mq-hint{ background:rgba(10,24,38,.7); color:#E8EEF5; }
.pp-map .mq-hint svg{ width:17px !important; height:17px !important; flex:0 0 17px; }

/* ---------- línea de pasos (montada sobre el borde del encabezado) ---------- */
.pp-steps{ position:relative; z-index:5; margin-top:clamp(-70px,-8vh,-50px); }
.pp-steps ol{ --prog:0; position:relative; list-style:none; margin:0; padding:clamp(16px,2.2vw,26px) clamp(12px,2vw,28px) clamp(12px,1.6vw,18px);
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(86px,1fr); gap:0; overflow-x:auto; scrollbar-width:thin;
  background:var(--card); border:1px solid var(--linea); border-radius:20px; box-shadow:0 24px 50px -30px rgba(13,36,56,.35); }
.pp-steps li{ position:relative; display:flex; justify-content:center; }
.pp-steps li + li::before{ content:''; position:absolute; top:calc(26px + 0px); right:50%; width:100%; height:4px; transform:translateY(-50%);
  background:linear-gradient(90deg, var(--cp, var(--linea)), var(--cs, var(--linea))); border-radius:2px; z-index:0; }
.pp-step{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:6px; padding:0 6px; background:none; border:0; cursor:pointer; color:var(--ink); font:inherit; min-width:0; }
.pp-sico{ position:relative; display:grid; place-items:center; width:52px; height:52px; border-radius:14px; background:var(--card); border:3px solid var(--c); color:var(--c);
  box-shadow:0 0 0 5px var(--card); transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease); }
.pp-sico svg{ width:24px; height:24px; }
.pp-sico img{ width:34px; height:34px; object-fit:contain; border-radius:6px; background:#fff; }
.pp-ok{ position:absolute; top:-9px; right:-9px; width:20px; height:20px; border-radius:50%; background:#2E9B4F; color:#fff; font-style:normal; font-size:.72rem; font-weight:800; display:grid; place-items:center; border:2px solid var(--card); opacity:0; transform:scale(.4); transition:opacity .3s, transform .3s var(--ease); }
.pp-step.done .pp-ok{ opacity:1; transform:none; }
.pp-sn{ font-family:'JetBrains Mono', Consolas, monospace; font-size:.72rem; color:var(--ink-soft); letter-spacing:.06em; }
.pp-sl{ font-size:clamp(.74rem,.82vw,.9rem); font-weight:700; text-align:center; line-height:1.2; white-space:nowrap; }
.pp-step:hover .pp-sico{ transform:translateY(-3px); }
.pp-step.on .pp-sico{ background:var(--c); color:#fff; transform:scale(1.08); box-shadow:0 0 0 5px var(--card), 0 0 0 9px color-mix(in srgb, var(--c) 22%, transparent), 0 10px 24px -6px var(--c); }
.pp-step.on .pp-sico img{ background:#fff; }
.pp-step.on .pp-sl{ color:var(--c); }
html[data-theme="dark"] .pp-step.on .pp-sl{ color:color-mix(in srgb, var(--c) 65%, #fff); }
.pp-step:focus-visible{ outline:none; } .pp-step:focus-visible .pp-sico{ outline:3px solid var(--naranja); outline-offset:4px; }

/* ---------- panel del paso ---------- */
.pp-stage{ margin-top:clamp(18px,3vh,32px); }
.pp-panel{ --c:var(--naranja); background:var(--card); border:1px solid var(--linea); border-radius:22px; overflow:hidden; border-top:5px solid var(--c); }
.pp-panel.in{ animation:ppIn .55s var(--ease); }
@keyframes ppIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.pp-ph{ display:flex; gap:clamp(14px,1.6vw,22px); align-items:flex-start; padding:clamp(20px,2.6vw,34px) clamp(20px,2.8vw,40px) clamp(14px,2vw,22px);
  background:linear-gradient(90deg, color-mix(in srgb, var(--c) 9%, transparent), transparent 70%); }
.pp-pico{ flex:0 0 auto; display:grid; place-items:center; width:62px; height:62px; border-radius:16px; background:var(--c); color:#fff; box-shadow:0 12px 26px -10px var(--c); }
.pp-pico svg{ width:30px; height:30px; } .pp-pico img{ width:46px; height:46px; object-fit:contain; background:#fff; border-radius:8px; padding:3px; }
.pp-k{ display:block; font-size:var(--f-small); font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--c); margin-bottom:4px; }
.pp-ph h2{ font-size:clamp(1.6rem,2.6vw,2.6rem); font-weight:700; letter-spacing:-.035em; line-height:1.05; color:var(--ink); }
.pp-ph p{ margin-top:8px; font-size:clamp(.98rem,1.1vw,1.12rem); line-height:1.5; color:var(--ink-soft); max-width:46em; }
.pp-grid{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr); gap:clamp(18px,2.6vw,44px); padding:clamp(8px,1.4vw,16px) clamp(20px,2.8vw,40px) clamp(20px,2.6vw,32px); }
.pp-main h3{ font-size:clamp(1.05rem,1.2vw,1.22rem); font-weight:700; color:var(--ink); margin:clamp(14px,2.2vh,22px) 0 8px; display:flex; align-items:center; gap:10px; }
.pp-main h3::before{ content:''; width:16px; height:4px; border-radius:2px; background:var(--c); }
.pp-main h3:first-child{ margin-top:6px; }
.pp-main p{ font-size:clamp(.95rem,1vw,1.05rem); line-height:1.65; color:var(--ink-soft); }
.pp-main p.lead{ font-size:clamp(1rem,1.1vw,1.12rem); color:var(--ink); }
.pp-main ul{ list-style:none; margin:0; padding:0; display:grid; gap:7px; }
.pp-main ul li{ position:relative; padding-left:28px; font-size:clamp(.92rem,.98vw,1.02rem); line-height:1.5; color:var(--ink); }
.pp-main ul li::before{ content:''; position:absolute; left:0; top:.32em; width:17px; height:17px; border-radius:5px; background:color-mix(in srgb, var(--c) 16%, transparent); }
.pp-main ul li::after{ content:''; position:absolute; left:5px; top:calc(.32em + 4px); width:6px; height:9px; border:solid var(--c); border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
.pp-mx{ display:grid; grid-template-columns:repeat(auto-fill, minmax(180px,1fr)); gap:10px; margin-top:6px; }
.pp-mx-c{ display:block; padding:12px 14px; border-radius:14px; border:1px solid var(--linea); background:color-mix(in srgb, var(--c) 4%, var(--card)); transition:border-color .3s, transform .3s var(--ease); }
.pp-mx-c:hover{ border-color:var(--c); transform:translateY(-2px); }
.pp-mx-c .n{ font-family:'JetBrains Mono', Consolas, monospace; font-size:.72rem; font-weight:700; color:var(--c); }
.pp-mx-c b{ display:block; font-size:.95rem; color:var(--ink); margin:2px 0 6px; }
.pp-mx-c ul{ gap:3px; } .pp-mx-c ul li{ font-size:.82rem; padding-left:16px; color:var(--ink-soft); }
.pp-mx-c ul li::before{ width:7px; height:7px; top:.5em; border-radius:50%; background:var(--c); } .pp-mx-c ul li::after{ display:none; }
.pp-aside{ display:flex; flex-direction:column; gap:14px; }
.pp-valor{ padding:clamp(16px,1.8vw,24px); border-radius:18px; background:color-mix(in srgb, var(--c) 8%, var(--paper)); border:1px solid color-mix(in srgb, var(--c) 30%, transparent); }
.pp-valor h3{ font-size:.82rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--c); margin-bottom:8px; }
.pp-valor p{ font-size:.96rem; line-height:1.6; color:var(--ink); } .pp-valor p + p{ margin-top:8px; }
.pp-acts{ display:flex; flex-wrap:wrap; gap:10px; }
.pp-more{ font-weight:700; color:var(--naranja); }
.pp-note{ font-size:.8rem; color:var(--ink-soft); }
.pp-nav{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px clamp(20px,2.8vw,40px); border-top:1px solid var(--linea); background:color-mix(in srgb, var(--ink) 2%, transparent); }
.pp-go{ display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:100px; border:1px solid var(--linea); background:var(--card); color:var(--ink); font:inherit; font-weight:700; font-size:.9rem; cursor:pointer; transition:border-color .3s, color .3s; }
.pp-go:hover{ border-color:var(--c); color:var(--c); }
.pp-count{ font-family:'JetBrains Mono', Consolas, monospace; font-size:.85rem; color:var(--ink-soft); }

@media (max-width:980px){
  .pp-hero-grid{ grid-template-columns:1fr; }
  .pp-map.mq-stage{ height:46vh; }
  .pp-grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){ .pp-go{ font-size:.8rem; padding:8px 12px; } .pp-count{ display:none; } }
@media (prefers-reduced-motion: reduce){ .pp-panel.in{ animation:none; } }

/* Alianzas: captura de la página de cada aliado en un marco de navegador */
.pp-shot{ border-radius:18px; overflow:hidden; background:var(--card); border:1px solid var(--linea); box-shadow:0 30px 80px -40px rgba(13,36,56,.5); }
.pp-shot-bar{ display:flex; align-items:center; gap:7px; padding:10px 14px; background:color-mix(in srgb, var(--ink) 6%, var(--card)); border-bottom:1px solid var(--linea); }
.pp-shot-bar i{ width:11px; height:11px; border-radius:50%; background:#FF5F57; } .pp-shot-bar i:nth-child(2){ background:#FEBC2E; } .pp-shot-bar i:nth-child(3){ background:#28C840; }
.pp-url{ flex:1; margin-left:8px; padding:5px 12px; border-radius:100px; background:var(--paper); color:var(--ink-soft); font-size:.8rem; font-family:'JetBrains Mono', Consolas, monospace; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-visit{ font-size:.8rem; font-weight:700; color:var(--naranja); white-space:nowrap; }
.pp-shot-img{ aspect-ratio:16/9.6; overflow:hidden; background:#fff; }
.pp-shot-img img{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; transition:opacity .25s var(--ease), transform .6s var(--ease); }
.pp-shot-img img.out{ opacity:0; transform:scale(.985); }

/* Herramientas de Cálculo: tarjetas de herramienta dentro del paso */
.pp-tools{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(260px,100%),1fr)); gap:12px; margin-top:6px; }
.pp-tool{ display:flex; flex-direction:column; gap:6px; padding:16px 18px; border-radius:16px; border:1px solid var(--linea); background:color-mix(in srgb, var(--c) 4%, var(--card)); transition:border-color .3s, transform .3s var(--ease), box-shadow .3s; }
.pp-tool:hover{ border-color:var(--c); transform:translateY(-3px); box-shadow:0 16px 30px -18px var(--c); }
.pp-tool b{ font-size:1.02rem; color:var(--ink); }
.pp-tool span{ font-size:.9rem; line-height:1.5; color:var(--ink-soft); }
.pp-tool em{ font-style:normal; font-size:.76rem; font-weight:700; letter-spacing:.04em; color:var(--c); }
.pp-tool i{ margin-top:auto; font-style:normal; font-weight:700; font-size:.88rem; color:var(--naranja); }

/* zoom de los mapas 3D: botones + / − / vista completa y aviso de Ctrl + rueda */
.mq-zoom{ position:absolute; right:14px; bottom:14px; z-index:3; display:flex; flex-direction:column; border-radius:14px; overflow:hidden; background:rgba(255,255,255,.8); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); box-shadow:0 4px 16px rgba(13,36,56,.14); border:1px solid rgba(13,36,56,.1); cursor:default; }
.mq-zoom button{ display:grid; place-items:center; width:38px; height:36px; padding:0; border:0; background:none; color:var(--azul-deep, #0D2438); font:600 1.25rem/1 Inter, system-ui, sans-serif; cursor:pointer; transition:background .2s, color .2s; }
.mq-zoom button + button{ border-top:1px solid rgba(13,36,56,.1); }
.mq-zoom button svg{ width:17px; height:17px; }
.mq-zoom button:hover:not(:disabled){ background:#FF751F; color:#fff; }
.mq-zoom button:focus-visible{ outline:2px solid #FF751F; outline-offset:-2px; }
.mq-zoom button:disabled{ opacity:.35; cursor:default; }
html[data-theme="dark"] .mq-zoom{ background:rgba(10,24,38,.75); border-color:rgba(255,255,255,.12); }
html[data-theme="dark"] .mq-zoom button{ color:#E8EEF5; }
html[data-theme="dark"] .mq-zoom button + button{ border-top-color:rgba(255,255,255,.12); }
.mq-whint{ position:absolute; left:50%; top:50%; z-index:4; transform:translate(-50%,-50%) scale(.96); padding:10px 18px; border-radius:100px; background:rgba(13,36,56,.82); color:#fff; font-size:.85rem; font-weight:600; white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .25s, transform .25s; }
.mq-whint.on{ opacity:1; transform:translate(-50%,-50%) scale(1); }
.mq-zoomed{ cursor:grab; }
@media (max-width:640px){ .mq-zoom button{ width:34px; height:32px; } .mq-whint{ white-space:normal; width:80%; text-align:center; } }

/* ======================================================================
   Herramientas de Cálculo (21-oct): encabezado arriba, fichas de normativa y botones de herramienta
   ====================================================================== */
.pp-calc .pp-hero-grid{ align-items:start; }
.pp-calc .pp-hero{ padding-bottom:clamp(36px,6vh,70px); }
.pp-calc .pp-hero h1{ font-size:clamp(2.2rem,4vw,4.4rem); line-height:1; }
.pp-calc .pp-crumb{ margin-bottom:clamp(8px,1.4vh,16px); }
/* el panel ya no repite el título: lo dice el encabezado */
.pp-calc .pp-ph{ display:none; }
/* fichas de normativa */
.pp-normas{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-top:clamp(18px,3vh,30px); }
.pp-norma{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:12px 12px 11px; border-radius:14px; cursor:default; outline:none;
  background:color-mix(in srgb,var(--card) 82%,transparent); border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);
  transition:transform .35s cubic-bezier(.22,1,.36,1), border-color .3s, box-shadow .35s; }
.pp-nic{ display:grid; place-items:center; width:30px; height:30px; margin-bottom:6px; border-radius:9px; color:var(--c); background:color-mix(in srgb,var(--c) 11%,transparent); }
.pp-nic svg{ width:17px; height:17px; }
.pp-norma>b{ font-size:.8rem; font-weight:700; letter-spacing:-.01em; color:var(--ink); line-height:1.15; }
.pp-norma>small{ font-size:.7rem; color:var(--ink-soft); line-height:1.2; }
.pp-norma:hover,.pp-norma:focus-visible,.pp-norma:focus-within{ transform:scale(1.04); border-color:color-mix(in srgb,var(--c) 40%,transparent); box-shadow:0 14px 30px -20px color-mix(in srgb,var(--c) 70%,#000); z-index:5; }
.pp-npop{ position:absolute; left:0; top:calc(100% + 10px); width:min(360px,80vw); padding:16px 18px 14px; border-radius:16px; z-index:30; text-align:left;
  background:var(--card); color:var(--ink); border:1px solid color-mix(in srgb,var(--ink) 9%,transparent); box-shadow:0 28px 60px -24px rgba(13,36,56,.45);
  opacity:0; visibility:hidden; transform:translateY(-6px) scale(.98); transform-origin:top left; transition:opacity .22s, transform .3s cubic-bezier(.22,1,.36,1), visibility .22s; }
.pp-npop::before{ content:""; position:absolute; left:0; right:0; top:-12px; height:12px; }
.pp-norma:nth-child(n+4) .pp-npop{ left:auto; right:0; transform-origin:top right; }
.pp-norma:hover .pp-npop,.pp-norma:focus-visible .pp-npop,.pp-norma:focus-within .pp-npop{ opacity:1; visibility:visible; transform:none; }
.pp-nh{ margin:0 0 4px; font-size:.86rem; font-weight:700; color:var(--c); }
.pp-nd{ margin:0 0 10px; font-size:.8rem; line-height:1.45; color:var(--ink-soft); }
.pp-npop ul{ list-style:none; margin:0; padding:0; display:grid; gap:5px; max-height:min(300px,45vh); overflow:auto; }
.pp-npop li{ display:grid; grid-template-columns:minmax(0,auto) 1fr; gap:2px 10px; font-size:.76rem; line-height:1.35; padding-bottom:5px; border-bottom:1px solid color-mix(in srgb,var(--ink) 7%,transparent); }
.pp-npop li:last-child{ border-bottom:0; }
.pp-npop li b{ font-weight:700; color:var(--ink); white-space:nowrap; }
.pp-npop li span{ color:var(--ink-soft); }
.pp-nlink{ display:inline-block; margin-top:10px; font-size:.76rem; font-weight:700; color:var(--naranja); text-decoration:none; }
.pp-nlink:hover{ text-decoration:underline; }
@media (max-width:1300px){ .pp-normas{ grid-template-columns:repeat(3,minmax(0,1fr)); } .pp-norma:nth-child(n+4) .pp-npop{ left:0; right:auto; } .pp-norma:nth-child(3n) .pp-npop{ left:auto; right:0; } }
@media (max-width:560px){ .pp-normas{ grid-template-columns:repeat(2,minmax(0,1fr)); } .pp-norma .pp-npop{ left:0!important; right:auto!important; width:min(320px,86vw); } .pp-norma:nth-child(2n) .pp-npop{ left:auto!important; right:0!important; } }
/* botones de herramienta: tarjetas limpias, colores tenues y un ligero zoom */
.pp-calc .pp-tools{ grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr)); gap:14px; margin-top:0; }
.pp-tool{ position:relative; gap:8px; padding:20px 20px 18px; border-radius:18px; text-decoration:none; overflow:hidden;
  background:var(--card); border:1px solid color-mix(in srgb,var(--ink) 8%,transparent); box-shadow:0 1px 2px rgba(13,36,56,.04);
  transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s, border-color .3s; }
.pp-tool::before{ content:""; position:absolute; inset:0; background:linear-gradient(160deg,color-mix(in srgb,var(--c) 7%,transparent),transparent 55%); opacity:.6; pointer-events:none; transition:opacity .3s; }
.pp-tool>*{ position:relative; }
.pp-tool:hover,.pp-tool:focus-visible{ transform:scale(1.025); border-color:color-mix(in srgb,var(--c) 30%,transparent); box-shadow:0 22px 44px -26px rgba(13,36,56,.38); outline:none; }
.pp-tool:hover::before{ opacity:1; }
.pp-tool b{ font-size:1.04rem; font-weight:650; letter-spacing:-.01em; color:var(--ink); padding-right:40px; line-height:1.25; }
.pp-tool .pp-td{ font-size:.86rem; line-height:1.55; color:var(--ink-soft); }
.pp-tool em{ align-self:flex-start; margin-top:2px; padding:3px 9px; border-radius:100px; font-size:.7rem; font-weight:650; letter-spacing:.02em; color:color-mix(in srgb,var(--c) 75%,var(--ink)); background:color-mix(in srgb,var(--c) 10%,transparent); }
.pp-tool i{ margin-top:auto; padding-top:6px; font-size:.8rem; font-weight:600; color:var(--ink-soft); transition:color .3s; }
.pp-tool:hover i{ color:var(--ink); }
.pp-tgo{ position:absolute!important; top:16px; right:16px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; font-size:.9rem; font-style:normal;
  color:color-mix(in srgb,var(--c) 80%,var(--ink)); background:color-mix(in srgb,var(--c) 10%,transparent); transition:transform .4s cubic-bezier(.22,1,.36,1), background .3s, color .3s; }
.pp-tool:hover .pp-tgo{ transform:translateX(3px); background:var(--c); color:#fff; }
html[data-theme="dark"] .pp-tool{ background:color-mix(in srgb,var(--card) 92%,#fff 2%); border-color:rgba(255,255,255,.08); }
@media (prefers-reduced-motion:reduce){ .pp-tool,.pp-norma,.pp-npop,.pp-tgo{ transition:none!important; } .pp-tool:hover,.pp-norma:hover{ transform:none; } }
.pp-npop ul{list-style:none!important;padding-left:0!important}.pp-npop li{list-style:none!important;padding-left:0!important}.pp-npop li::before,.pp-npop li::marker{display:none!important;content:none!important}

.pp-calc .pp-hero{ position:relative; z-index:3; }
/* (21-oct, 2) fichas: solo icono y nombre; botones de herramienta: solo el nombre, grandes, todos iguales,
   al pasar el cursor se llenan de verde tenue; sin el cuadro de fundamento ni «Hablemos» */
.pp-norma{ align-items:center; justify-content:center; text-align:center; gap:6px; padding:14px 8px 12px; }
.pp-nic{ width:36px; height:36px; margin:0; border-radius:10px; }
.pp-nic svg{ width:20px; height:20px; }
.pp-norma>b{ font-size:.84rem; white-space:nowrap; }
.pp-calc .pp-aside{ display:none; }
.pp-calc .pp-grid{ grid-template-columns:1fr!important; }
.pp-calc .pp-tools{ grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr)); gap:16px; }
.pp-calc .pp-tool{ --fill:#2E9E5B; flex-direction:row; align-items:center; justify-content:space-between; gap:16px; height:132px; padding:22px 24px; isolation:isolate; }
.pp-calc .pp-tool::before{ content:""; position:absolute; z-index:-1; left:0; right:0; bottom:0; top:auto; height:0; opacity:1; inset:auto 0 0 0;
  background:color-mix(in srgb,var(--fill) 16%,var(--card)); transition:height .5s cubic-bezier(.22,1,.36,1); }
.pp-calc .pp-tool:hover::before,.pp-calc .pp-tool:focus-visible::before{ height:100%; }
.pp-calc .pp-tool b{ font-size:clamp(1.15rem,1.35vw,1.45rem); font-weight:650; line-height:1.2; padding:0; letter-spacing:-.015em; }
.pp-calc .pp-tgo{ position:static!important; flex:none; width:38px; height:38px; font-size:1.05rem; color:#2E7D4F; background:color-mix(in srgb,var(--fill) 12%,transparent); }
.pp-calc .pp-tool:hover .pp-tgo{ background:var(--fill); color:#fff; }
.pp-calc .pp-tool:hover,.pp-calc .pp-tool:focus-visible{ border-color:color-mix(in srgb,var(--fill) 35%,transparent); }
html[data-theme="dark"] .pp-calc .pp-tool::before{ background:color-mix(in srgb,var(--fill) 22%,var(--card)); }
.pp-calc .pp-tools{ grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); }
/* fichas por especialidad (21-oct, 3): las que no aplican se ocultan; el comentario se abre hacia dentro */
.pp-normas[hidden],.pp-norma[hidden],.pp-npop li[hidden]{ display:none!important; }
.pp-norma:nth-child(n) .pp-npop{ left:0; right:auto; transform-origin:top left; }
.pp-norma.pp-nder .pp-npop{ left:auto; right:0; transform-origin:top right; }
@media (max-width:1300px){ .pp-norma.pp-nder .pp-npop{ left:0; right:auto; } }
/* (21-oct, 4) el encabezado guarda siempre el mismo alto: las fichas de normativa no suben ni bajan al cambiar de especialidad */
.pp-calc .pp-hero h1{ min-height:2lh; }
.pp-calc .pp-hero .pp-phrase{ min-height:3lh; margin-bottom:0; }
@media (max-width:1500px){ .pp-calc .pp-hero .pp-phrase{ min-height:4lh; } }
.pp-calc .pp-normas{ min-height:84px; align-content:start; }
.pp-calc .pp-normas[hidden]{ display:grid!important; visibility:hidden; }
/* (21-oct, 5) todas las páginas por pasos: el título grande y la explicación son los del paso elegido;
   el panel ya no los repite y el encabezado guarda su alto para que nada brinque */
.pp-hstep .pp-hero-grid{ align-items:start; }
.pp-hstep .pp-hero{ padding-bottom:clamp(36px,6vh,70px); }
.pp-hstep .pp-hero h1{ font-size:clamp(2.2rem,4vw,4.4rem); line-height:1; min-height:2lh; }
.pp-hstep .pp-hero .pp-phrase{ min-height:4lh; margin-bottom:0; }
.pp-hstep .pp-crumb{ margin-bottom:clamp(8px,1.4vh,16px); }
.pp-hstep .pp-ph{ display:none; }
.pp-hstep .pp-normas{ min-height:84px; align-content:start; grid-template-columns:repeat(8,minmax(0,1fr)); }
.pp-hstep .pp-normas[hidden]{ display:grid!important; visibility:hidden; }
.pp-hstep .pp-norma>b{ font-size:.74rem; }
@media (max-width:1300px){ .pp-hstep .pp-normas{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
/* (21-oct, 6) alto fijo del título (2 renglones) y de la explicación (4 renglones) para que las fichas no se muevan */
.pp-hstep .pp-hero h1{ font-size:clamp(2rem,3.1vw,3.6rem); height:2lh; min-height:0; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.pp-hstep .pp-hero .pp-phrase{ font-size:clamp(.98rem,1.05vw,1.15rem); height:4lh; min-height:0; overflow:hidden; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; }
/* más específico que la regla de pp-side.css (body.pps-on .pp-hero h1) */
body.pps-on .pp-hstep .pp-hero h1,body .pp-hstep .pp-hero h1{ font-size:clamp(2rem,3.1vw,3.6rem); line-height:1.02; }
/* títulos largos (más de 40 letras): letra un poco menor para que quepan en 2 renglones */
body.pps-on .pp-hstep .pp-hero h1.pp-h1-largo,body .pp-hstep .pp-hero h1.pp-h1-largo{ font-size:clamp(1.7rem,2.5vw,2.9rem); }
body .pp-hstep .pp-hero h1,body.pps-on .pp-hstep .pp-hero h1.pp-h1-largo{ height:calc(2 * 1.02 * clamp(2rem,3.1vw,3.6rem)); }
/* (21-oct, 7) arreglo: el título y la explicación van juntos (sin hueco), las fichas se quedan siempre abajo
   en el mismo lugar porque el bloque de texto tiene un alto fijo */
.pp-hstep .pp-hero-txt{ display:flex; flex-direction:column; height:calc(30px + 2 * 1.02 * clamp(2rem,3.1vw,3.6rem) + 16px + 4 * 1.55 * clamp(.98rem,1.05vw,1.15rem) + 24px + 96px); }
body .pp-hstep .pp-hero h1,body.pps-on .pp-hstep .pp-hero h1.pp-h1-largo{ height:auto!important; max-height:calc(2 * 1.02 * clamp(2rem,3.1vw,3.6rem)); margin-bottom:16px; flex:none; }
.pp-hstep .pp-hero .pp-phrase{ height:auto!important; line-height:1.55; flex:none; }
.pp-hstep .pp-normas{ margin-top:auto!important; min-height:0!important; }
/* fichas: tamaño propio (no se encogen), solo icono y nombre */
.pp-hstep .pp-normas,.pp-calc .pp-normas{ display:flex!important; flex-wrap:nowrap; gap:8px; }
.pp-hstep .pp-norma{ flex:0 1 92px; min-width:64px; padding:12px 4px 10px; }
.pp-hstep .pp-norma>b{ font-size:.72rem!important; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.pp-hstep .pp-norma[hidden]{ display:none!important; }
.pp-hstep .pp-normas[hidden]{ display:flex!important; visibility:hidden; height:96px; }
/* el detalle se abre por encima de la barra lateral; su lugar lo acomoda pp-side.js para que no se salga */
.pp-hstep .pp-hero{ z-index:75; }
.pp-hstep .pp-npop{ left:0; right:auto; }
@media (max-width:1300px){ .pp-hstep .pp-normas{ flex-wrap:wrap; } .pp-hstep .pp-hero-txt{ height:auto; } }
/* (21-oct, 8) la fila de fichas siempre mide lo mismo (esté vacía o llena) y la letra se ajusta al ancho */
.pp-hstep .pp-normas,.pp-hstep .pp-normas[hidden]{ height:92px!important; flex-wrap:nowrap!important; align-items:stretch; }
.pp-hstep .pp-norma{ height:100%; box-sizing:border-box; justify-content:center; }
.pp-hstep .pp-norma>b{ font-size:clamp(.6rem,.62vw,.74rem)!important; letter-spacing:-.01em; }
.pp-hstep .pp-nic{ width:32px; height:32px; }
@media (max-width:1300px){ .pp-hstep .pp-hero-txt{ height:calc(30px + 2 * 1.02 * clamp(2rem,3.1vw,3.6rem) + 16px + 4 * 1.55 * clamp(.98rem,1.05vw,1.15rem) + 24px + 92px)!important; } }
/* (21-oct, 9) pantallas medianas o con zoom: las fichas van en 2 filas de 4 (alto fijo) para no meterse en el mapa */
@media (max-width:1700px){
  .pp-hstep .pp-normas,.pp-hstep .pp-normas[hidden]{ flex-wrap:wrap!important; height:142px!important; align-content:flex-start; }
  .pp-hstep .pp-norma{ flex:0 0 calc((100% - 24px) / 4); max-width:calc((100% - 24px) / 4); min-width:0; height:67px; padding:6px 4px; gap:3px; }
  .pp-hstep .pp-nic{ width:26px; height:26px; border-radius:8px; }
  .pp-hstep .pp-nic svg{ width:16px; height:16px; }
  .pp-hstep .pp-norma>b{ font-size:.72rem!important; }
  .pp-hstep .pp-hero-txt{ height:calc(30px + 2 * 1.02 * clamp(2rem,3.1vw,3.6rem) + 16px + 4 * 1.55 * clamp(.98rem,1.05vw,1.15rem) + 24px + 142px)!important; }
}
/* (lista 1, 20-oct) Herramientas de Cálculo: en lugar de la explicación, recuadros con las herramientas de la
   especialidad (2 por fila, icono blanco sobre cuadro de color tipo CarPlay); las fichas de normativa bajan al mapa */
.pp-calc .pp-hero-txt{ height:auto!important; display:block; }
.pp-calc .pp-hero h1{ margin-bottom:clamp(14px,2.2vh,22px)!important; }
.pp-htools{ min-height:calc(3 * 76px + 2 * 14px); }
.pp-htg{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pp-htg[hidden]{ display:none!important; }
.pp-ht{ position:relative; display:flex; align-items:center; gap:14px; min-height:76px; padding:12px 16px 12px 12px; border-radius:20px; text-decoration:none; color:var(--ink);
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.52)); -webkit-backdrop-filter:blur(16px) saturate(160%); backdrop-filter:blur(16px) saturate(160%);
  border:1px solid rgba(255,255,255,.9); box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 10px 28px -18px rgba(13,36,56,.35), 0 0 0 1px rgba(13,36,56,.05);
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s, border-color .3s; }
.pp-ht:hover,.pp-ht:focus-visible{ transform:translateY(-2px) scale(1.02); outline:none; border-color:color-mix(in srgb,var(--c) 35%,#fff);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 18px 36px -18px color-mix(in srgb,var(--c) 55%,rgba(13,36,56,.6)), 0 0 0 1px color-mix(in srgb,var(--c) 18%,transparent); }
.pp-hti{ position:relative; flex:none; display:grid; place-items:center; width:52px; height:52px; border-radius:14px; color:#fff; overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 78%,#fff),var(--c) 55%,color-mix(in srgb,var(--c) 80%,#000));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), inset 0 -1px 0 rgba(0,0,0,.15), 0 6px 14px -8px color-mix(in srgb,var(--c) 80%,#000); }
.pp-hti::after{ content:""; position:absolute; left:0; right:0; top:0; height:50%; background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0)); pointer-events:none; }
.pp-hti svg{ position:relative; width:27px; height:27px; stroke:#fff; filter:drop-shadow(0 1px 1px rgba(0,0,0,.18)); }
.pp-ht b{ font-size:clamp(.92rem,1vw,1.08rem); font-weight:650; line-height:1.25; letter-spacing:-.01em; }
html[data-theme="dark"] .pp-ht{ color:var(--ink); background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.04)); border-color:rgba(255,255,255,.14);
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 12px 30px -18px rgba(0,0,0,.7); }
.pp-hright{ display:flex; flex-direction:column; gap:14px; min-width:0; }
.pp-calc .pp-hright .pp-normas,.pp-calc .pp-hright .pp-normas[hidden]{ display:flex!important; flex-wrap:wrap!important; justify-content:center; height:auto!important; min-height:72px!important; margin:0!important; gap:8px; }
.pp-calc .pp-hright .pp-norma{ flex:0 1 96px!important; max-width:none!important; min-width:72px!important; height:72px!important; padding:8px 6px!important; gap:4px!important; }
.pp-calc .pp-hright .pp-nic{ width:30px; height:30px; }
.pp-calc .pp-hright .pp-norma>b{ font-size:.74rem!important; }
@media (prefers-reduced-motion:reduce){ .pp-ht{ transition:none; } .pp-ht:hover{ transform:none; } }
@media (max-width:560px){ .pp-htg{ gap:8px; } .pp-ht{ gap:9px; padding:8px 10px 8px 8px; min-height:58px; } .pp-hti{ width:38px; height:38px; border-radius:10px; } .pp-hti svg{ width:20px; height:20px; } .pp-ht b{ font-size:.8rem; } .pp-htools{ min-height:0; } }
@media (max-width:900px){ body .pp-calc .pp-hero-grid{ grid-template-columns:minmax(0,1fr)!important; } .pp-calc .pp-htools{ min-height:0; } }
/* (20-oct, lista 4) Herramientas de Cálculo: sin las tarjetas repetidas de abajo; las herramientas ya están en el encabezado */
.pp-calc .pp-stage{ display:none!important; }
/* (20-oct) Servicios por Etapas: «En qué consiste» en el encabezado; recuadros separados (incluye / recibes / valor),
   tablero de decisión estilo shadcn dashboard-01 (datos ilustrativos) y fotos estilo «attachment» */
.pp-etapas .pp-hero-txt{ height:auto!important; display:block!important; }
.pp-etapas .pp-hero h1{ margin-bottom:16px!important; }
.pp-hcons .pp-htg{ display:block; }
.pp-hcons .pp-htg[hidden]{ display:none!important; }
.pp-cons{ padding:clamp(18px,2vw,26px); border-radius:20px; background:color-mix(in srgb,var(--card) 88%,transparent); border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);
  box-shadow:0 1px 2px rgba(13,36,56,.05), 0 18px 40px -30px rgba(13,36,56,.35); border-top:3px solid var(--c); }
.pp-cons h3,.pp-ecard h3{ display:flex; align-items:center; gap:10px; margin:0 0 12px; font-size:clamp(1rem,1.1vw,1.12rem); font-weight:650; letter-spacing:-.01em; color:var(--ink); }
.pp-cons p{ margin:0; font-size:clamp(.98rem,1.05vw,1.1rem); line-height:1.62; color:var(--ink); }
.pp-eti{ flex:none; display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:#fff;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 72%,#fff),var(--c) 60%,color-mix(in srgb,var(--c) 80%,#000)); box-shadow:inset 0 1px 0 rgba(255,255,255,.4); }
.pp-eti svg{ width:17px; height:17px; }
.pp-et{ display:grid; gap:18px; }
.pp-et-row{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; }
.pp-ecard{ padding:22px 22px 20px; border-radius:18px; background:var(--card); border:1px solid color-mix(in srgb,var(--ink) 8%,transparent); box-shadow:0 1px 2px rgba(13,36,56,.04); }
.pp-ecard .lista-check{ margin:0; }
.pp-ecard .lista-check li{ font-size:.92rem; line-height:1.5; }
.pp-ecard p{ margin:0; font-size:.95rem; line-height:1.6; color:var(--ink); }
.pp-ecard-v{ background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,var(--card)),var(--card) 70%); border-color:color-mix(in srgb,var(--c) 22%,transparent); }
/* tablero */
.pp-dash{ padding:clamp(16px,1.8vw,22px); border-radius:20px; background:color-mix(in srgb,var(--ink) 2.5%,var(--card)); border:1px solid color-mix(in srgb,var(--ink) 8%,transparent); }
.pp-dash-h{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.pp-dash-h h3{ margin:0; font-size:1.05rem; font-weight:650; color:var(--ink); }
.pp-dash-tag{ padding:3px 10px; border-radius:100px; font-size:.72rem; font-weight:600; color:var(--ink-soft); border:1px solid color-mix(in srgb,var(--ink) 14%,transparent); white-space:nowrap; }
.pp-kpis{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.pp-kpi{ display:flex; flex-direction:column; gap:6px; padding:16px 16px 14px; border-radius:14px; border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--c) 6%,var(--card)),var(--card)); box-shadow:0 1px 2px rgba(13,36,56,.04); }
.pp-kpi-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.pp-kpi-l{ font-size:.8rem; color:var(--ink-soft); line-height:1.3; }
.pp-kpi-v{ font-size:clamp(1.35rem,1.8vw,1.8rem); font-weight:650; letter-spacing:-.02em; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.1; }
.pp-kpi-n{ font-size:.76rem; color:var(--ink-soft); line-height:1.35; }
.pp-bdg{ flex:none; display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:8px; font-size:.7rem; font-weight:600; white-space:nowrap; color:var(--ink);
  border:1px solid color-mix(in srgb,var(--ink) 14%,transparent); }
.pp-bdg i{ font-style:normal; }
.pp-b-warn{ color:#9A6400; border-color:color-mix(in srgb,#F2A33A 50%,transparent); background:color-mix(in srgb,#F2A33A 10%,transparent); }
.pp-b-risk{ color:#B4302A; border-color:color-mix(in srgb,#D63A2F 45%,transparent); background:color-mix(in srgb,#D63A2F 8%,transparent); }
.pp-dash-b{ display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:12px; }
.pp-dcard{ padding:16px; border-radius:14px; background:var(--card); border:1px solid color-mix(in srgb,var(--ink) 8%,transparent); min-width:0; }
.pp-dct{ margin:0 0 8px; font-size:.84rem; font-weight:600; color:var(--ink); }
.pp-chart{ display:block; width:100%; height:auto; overflow:visible; }
.pp-cg{ stroke:color-mix(in srgb,var(--ink) 9%,transparent); stroke-dasharray:3 4; }
.pp-ct,.pp-cv{ fill:var(--ink-soft); font-size:11px; font-family:inherit; }
.pp-ck{ fill:var(--ink); font-size:12px; font-family:inherit; }
.pp-cbg{ fill:color-mix(in srgb,var(--ink) 5%,transparent); }
.pp-lg{ display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:8px; font-size:.76rem; color:var(--ink-soft); }
.pp-lg span{ display:inline-flex; align-items:center; gap:6px; }
.pp-lg i{ width:10px; height:10px; border-radius:3px; }
.pp-dtb{ width:100%; border-collapse:collapse; font-size:.84rem; }
.pp-dtb th{ text-align:left; font-size:.72rem; font-weight:600; color:var(--ink-soft); padding:0 8px 8px; border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent); }
.pp-dtb td{ padding:10px 8px; border-bottom:1px solid color-mix(in srgb,var(--ink) 6%,transparent); color:var(--ink); vertical-align:middle; }
.pp-dtb tr:last-child td{ border-bottom:0; }
.pp-dtb th:first-child,.pp-dtb td:first-child{ padding-left:0; }
.pp-st{ display:inline-flex; align-items:center; gap:6px; padding:2px 9px 2px 7px; border-radius:100px; font-size:.74rem; font-weight:600; white-space:nowrap;
  border:1px solid color-mix(in srgb,var(--ink) 12%,transparent); color:var(--ink); }
.pp-st::before{ content:""; width:7px; height:7px; border-radius:50%; background:#0F8A4B; }
.pp-s-warn::before{ background:#F2A33A; }
.pp-s-risk::before{ background:#D63A2F; }
/* fotos tipo «attachment» */
.pp-att-g{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.pp-att{ margin:0; padding:8px; border-radius:16px; background:var(--card); border:1px solid color-mix(in srgb,var(--ink) 8%,transparent); box-shadow:0 1px 2px rgba(13,36,56,.04); }
.pp-att-m{ aspect-ratio:4/3; border-radius:10px; overflow:hidden; background:color-mix(in srgb,var(--ink) 6%,transparent); }
.pp-att-m img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.22,1,.36,1); }
.pp-att:hover .pp-att-m img{ transform:scale(1.04); }
.pp-att figcaption{ display:flex; flex-direction:column; gap:2px; padding:10px 6px 4px; }
.pp-att figcaption b{ font-size:.9rem; font-weight:600; color:var(--ink); }
.pp-att figcaption span{ font-size:.74rem; color:var(--ink-soft); }
@media (max-width:1200px){ .pp-et-row{ grid-template-columns:repeat(2,minmax(0,1fr)); } .pp-ecard-v{ grid-column:1 / -1; } .pp-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); } .pp-dash-b{ grid-template-columns:1fr; } }
@media (max-width:900px){ body .pp-etapas .pp-hero-grid{ grid-template-columns:minmax(0,1fr)!important; } }
@media (max-width:640px){ .pp-et-row,.pp-att-g{ grid-template-columns:1fr; } .pp-dtb{ font-size:.78rem; } }
@media (prefers-reduced-motion:reduce){ .pp-att-m img{ transition:none; } }
/* la regla general .v7-main svg:not([width]) encogía la gráfica y los iconos */
.v7-main svg.pp-chart{ width:100%!important; max-width:none; }
.v7-main .pp-eti svg{ width:17px!important; height:17px!important; }
@media (max-width:640px){ .pp-dtb th,.pp-dtb td{ padding-left:4px; padding-right:4px; } .pp-st{ white-space:normal; } .pp-dcard-t{ overflow-x:auto; } .pp-kpis{ grid-template-columns:1fr 1fr; gap:8px; } .pp-kpi{ padding:12px; } }
/* (20-oct) Especialidades y Sectores: texto bajo el título, fichas de normativa bajo el mapa, recuadros separados */
.pp-rich .pp-hero-txt{ height:auto!important; display:block!important; }
.pp-rich .pp-hero h1{ margin-bottom:16px!important; }
.pp-hstep .pp-hright .pp-normas,.pp-hstep .pp-hright .pp-normas[hidden]{ display:flex!important; flex-wrap:wrap!important; justify-content:center; height:auto!important; min-height:72px!important; margin:0!important; gap:8px; }
.pp-hstep .pp-hright .pp-normas[hidden]{ visibility:hidden; }
.pp-hstep .pp-hright .pp-norma{ flex:0 1 96px!important; max-width:none!important; min-width:72px!important; height:72px!important; padding:8px 6px!important; gap:4px!important; }
.pp-hstep .pp-hright .pp-nic{ width:30px; height:30px; }
.pp-hstep .pp-hright .pp-norma>b{ font-size:.74rem!important; }
.pp-ecard-mx .pp-mx{ margin-top:4px; }
@media (max-width:900px){ body .pp-rich .pp-hero-grid{ grid-template-columns:minmax(0,1fr)!important; } }
