/* RD */

/* ===================================================================
   ReservaDeportes — rediseño home v2
   Identidad del dossier 2026: navy + naranja, UI clara, titulares
   bold con palabra naranja + punto, franja degradada azul→naranja,
   capturas reales del producto.
   ------------------------------------------------------------------- */
:root{
  --navy:#07304E; --navy-2:#0A436B; --navy-3:#0E2B40;
  --orange:#F5821F; --orange-d:#DE7212; --orange-soft:#FDEEDC;
  --blue:#1B7BB5; --blue-2:#156293; --blue-soft:#E5F1F9;
  --ink:#0E2233; --muted:#5A7184; --soft:#7C92A3;
  --paper:#FFFFFF; --tint:#F4F9FC; --tint-2:#EEF5FA;
  --line:#DCE7F0; --line-2:#E9F0F6;
  --shadow:0 1px 2px rgba(7,48,78,.05), 0 18px 40px -18px rgba(7,48,78,.22);
  --shadow-lg:0 40px 90px -30px rgba(7,48,78,.45);
  --r:18px; --r-sm:12px; --maxw:1180px;
  --display:"Archivo","Inter",system-ui,sans-serif;
  --body:"Inter",system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ font-family:var(--body); color:var(--ink); background:var(--paper); line-height:1.6; font-size:16.5px; -webkit-font-smoothing:antialiased; }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--display); color:var(--navy); line-height:1.04; letter-spacing:-.035em; font-weight:800; }
.o{ color:var(--orange); }   /* palabra naranja del titular */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }

/* franja degradada de marca (cabecera de cada página del dossier) */
.topbar{ height:5px; width:100%; background:linear-gradient(90deg,var(--blue) 0%,var(--blue) 52%,var(--orange) 52%,var(--orange) 100%); }

.eyebrow{ display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-2); }
.eyebrow::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--orange); flex:none; }
.rule{ width:64px; height:4px; background:var(--orange); border-radius:3px; margin:20px 0 0; }

/* botones */
.btn{ display:inline-flex; align-items:center; gap:9px; cursor:pointer; font-family:var(--body); font-weight:600; font-size:15.5px; padding:14px 24px; border-radius:12px; border:1.5px solid transparent; transition:transform .15s ease, box-shadow .2s ease, background .2s, border-color .2s, color .2s; white-space:nowrap; }
.btn svg{ width:18px; height:18px; }
.btn--orange{ background:var(--orange); color:#fff; box-shadow:0 10px 24px -8px rgba(245,130,31,.55); }
.btn--orange:hover{ transform:translateY(-2px); background:var(--orange-d); box-shadow:0 16px 32px -10px rgba(245,130,31,.6); }
.btn--navy{ background:var(--navy); color:#fff; }
.btn--navy:hover{ transform:translateY(-2px); background:var(--navy-2); }
.btn--ghost{ background:#fff; color:var(--navy); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--navy); }
.btn--ghost-light{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.28); }
.btn--ghost-light:hover{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.55); }

/* ===================== HEADER ===================== */
.hdr{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.9); backdrop-filter:blur(14px); border-bottom:1px solid var(--line-2); }
.hdr__in{ display:flex; align-items:center; gap:30px; height:72px; }
.brand{ display:flex; align-items:center; gap:11px; font-family:var(--display); font-weight:900; font-size:22px; color:var(--navy); letter-spacing:-.04em; }
.brand svg{ width:38px; height:38px; flex:none; }
.brand b{ color:var(--orange); }
.brand-logo{ height:40px; width:auto; }
.brand-mark{ height:34px; width:auto; }
.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav a{ font-weight:500; font-size:15px; color:var(--ink); padding:9px 12px; border-radius:9px; transition:background .15s,color .15s; white-space:nowrap; }
.nav a:hover{ background:var(--blue-soft); color:var(--blue-2); }
.nav__drop{ position:relative; display:inline-flex; align-items:center; }
.nav__droptoggle{ display:inline-flex; align-items:center; gap:5px; }
.nav__menu{ position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px); min-width:244px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-lg); padding:8px; opacity:0; visibility:hidden; transition:opacity .16s ease, transform .16s ease; z-index:60; }
.nav__menu a{ display:block; padding:9px 12px; border-radius:8px; font-size:14px; font-weight:500; color:var(--ink); white-space:nowrap; }
.nav__menu a:hover{ background:var(--blue-soft); color:var(--blue-2); }
.nav__droptoggle svg{ transition:transform .2s ease; }
.nav__drop.open .nav__droptoggle svg{ transform:rotate(180deg); }
.nav__drop.open > .nav__menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(2px); }
@media (max-width:980px){
  .nav__drop{ display:block; width:100%; }
  .nav__droptoggle{ width:100%; justify-content:space-between; }
  .nav__menu{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:0; padding:0; min-width:0; max-height:0; overflow:hidden; transition:max-height .25s ease; }
  .nav__drop.open > .nav__menu{ max-height:320px; padding:4px 0 6px 12px; transform:none; }
}
.hdr__cta{ display:flex; align-items:center; gap:10px; }
.hdr__cta .btn{ padding:11px 18px; font-size:14.5px; }
.burger{ display:none; background:#fff; border:1px solid var(--line); border-radius:9px; width:42px; height:42px; cursor:pointer; }
.burger svg{ width:22px; height:22px; stroke:var(--navy); }

/* ===================== HERO (cabecera con foto a sangre) ===================== */
.hero{ position:relative; isolation:isolate; overflow:hidden; background:var(--navy-3); color:#fff; }
/* fondo de una sola foto (páginas interiores) */
.hero__bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; background-repeat:no-repeat; transform:scale(1.04); animation:heroZoom 16s ease-out both; }
/* fondo en pase de fotos (home) */
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__slide{ position:absolute; inset:0; background-size:cover; background-position:center; background-repeat:no-repeat; opacity:0; transform:scale(1.04); animation:heroSlide 28s infinite both; will-change:opacity,transform; }
.hero__slide:nth-child(1){ animation-delay:0s; }
.hero__slide:nth-child(2){ animation-delay:7s; }
.hero__slide:nth-child(3){ animation-delay:14s; }
.hero__slide:nth-child(4){ animation-delay:21s; }
/* overlay de legibilidad (más oscuro a la izquierda, donde va el texto) */
.hero::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(6,38,62,.94) 0%, rgba(6,38,62,.80) 34%, rgba(6,38,62,.46) 66%, rgba(6,38,62,.16) 100%),
            linear-gradient(0deg, rgba(6,38,62,.60) 0%, rgba(6,38,62,0) 42%); }
.hero::after{ content:""; position:absolute; right:-160px; top:-140px; z-index:1; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle at center, rgba(245,130,31,.22), transparent 64%); pointer-events:none; }
.hero__in{ position:relative; z-index:2; display:flex; align-items:center; min-height:clamp(560px,84vh,780px); padding:clamp(96px,12vh,140px) 0; }
.hero__copy{ max-width:720px; }
.hero .eyebrow{ color:#8FC0E6; }
.hero h1{ font-size:clamp(2.5rem,5.4vw,4.2rem); margin:18px 0 0; color:#fff; text-shadow:0 2px 30px rgba(0,0,0,.28); }
.hero__sub{ font-size:19px; color:rgba(233,243,250,.9); line-height:1.55; max-width:560px; margin-top:22px; }
.hero__sub b{ color:#fff; font-weight:600; }
.hero__cta{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
.hero__badges{ display:flex; gap:10px 22px; flex-wrap:wrap; margin-top:34px; padding-top:28px; border-top:1px solid rgba(255,255,255,.18); }
.hero__badges span{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:#fff; }
.hero__badges svg{ width:18px; height:18px; stroke:var(--orange); fill:none; stroke-width:2.4; flex:none; }
@keyframes heroZoom{ from{ transform:scale(1.10); } to{ transform:scale(1.0); } }
@keyframes heroSlide{
  0%{ opacity:0; transform:scale(1.04); }
  3%{ opacity:1; }
  22%{ opacity:1; }
  25%{ transform:scale(1.10); }
  28%{ opacity:0; transform:scale(1.10); }
  100%{ opacity:0; transform:scale(1.04); }
}

/* ===================== TRUST ===================== */
.trust{ background:#fff; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); padding:34px 0; }
.trust__lbl{ text-align:center; font-size:12px; letter-spacing:.15em; text-transform:uppercase; color:var(--soft); font-weight:700; margin-bottom:24px; }
.trust__row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:34px 48px; }
.trust__row img{ height:46px; width:auto; opacity:.6; filter:grayscale(1); transition:opacity .2s,filter .2s; }
.trust__row img:hover{ opacity:1; filter:none; }
/* ===================== CONFÍAN (escudos) ===================== */
.proof{ background:linear-gradient(180deg,#fff,var(--tint)); border-top:1px solid var(--line-2); }
.proof__sub{ max-width:700px; margin:14px auto 0; color:var(--muted); font-size:17px; line-height:1.6; text-align:center; }
.proof__sub b{ color:var(--navy); }
.escudos{ display:grid; grid-template-columns:repeat(5,1fr); gap:32px 18px; max-width:1010px; margin:50px auto 0; }
.escudo{ display:flex; flex-direction:column; align-items:center; gap:11px; text-align:center; }
.escudo img{ height:90px; width:auto; filter:drop-shadow(0 5px 12px rgba(7,48,78,.13)); transition:transform .2s ease; }
.escudo:hover img{ transform:translateY(-4px) scale(1.05); }
.escudo b{ font-size:13px; font-weight:700; color:var(--navy); letter-spacing:-.01em; line-height:1.2; }
.escudo span{ font-size:11.5px; color:var(--soft); }
.proof__note{ text-align:center; max-width:660px; margin:48px auto 0; padding-top:32px; border-top:1px solid var(--line); color:var(--muted); font-size:15.5px; line-height:1.55; }
.proof__note b{ color:var(--navy); }
@media (max-width:820px){ .escudos{ grid-template-columns:repeat(3,1fr); gap:30px 14px; } }
@media (max-width:480px){ .escudos{ grid-template-columns:repeat(2,1fr); } .escudo img{ height:80px; } }
.proof__lbl{ text-align:center; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--soft); font-weight:700; margin:0 0 26px; }
.escudos__more{ text-align:center; margin:30px auto 0; color:var(--muted); font-size:15px; }
.escudos__more b{ color:var(--navy); }
.clubwall{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; max-width:940px; margin:0 auto; }
.clubchip{ display:inline-flex; align-items:center; gap:9px; padding:13px 20px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:var(--shadow); font-family:var(--display); font-weight:800; font-size:16px; color:var(--navy); letter-spacing:-.01em; transition:transform .16s, border-color .2s; }
.clubchip:hover{ transform:translateY(-2px); border-color:rgba(245,130,31,.55); }
.clubchip svg{ width:17px; height:17px; stroke:var(--orange); fill:none; stroke-width:2; flex:none; }
.clubchip.more{ background:var(--navy); color:#fff; border-color:var(--navy); }
.fomo{ max-width:790px; margin:58px auto 0; text-align:center; background:var(--orange-soft); border:1px solid rgba(245,130,31,.28); border-radius:20px; padding:32px 34px; }
.fomo p{ font-size:18px; color:var(--navy); line-height:1.5; margin-bottom:22px; font-weight:500; }
.fomo p b{ font-weight:800; }

/* ===================== SECCIONES BASE ===================== */
.section{ padding:96px 0; }
.section--tint{ background:var(--tint); }
.section--tint2{ background:var(--tint-2); }
.sec-head{ max-width:720px; }
.sec-head--center{ margin:0 auto 58px; text-align:center; }
.sec-head--center .eyebrow{ justify-content:center; }
.sec-head--center .rule{ margin-left:auto; margin-right:auto; }
.sec-head h2{ font-size:clamp(2rem,3.8vw,3rem); margin-top:14px; }
.sec-head p{ font-size:18px; color:var(--muted); margin-top:16px; line-height:1.55; }

/* ----- filas de característica con foto real ----- */
.frow{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.frow + .frow{ margin-top:96px; }
.frow--rev .frow__media{ order:-1; }
.frow__media{ position:relative; }
.frow__media img{ width:100%; border-radius:16px; box-shadow:var(--shadow-lg); border:1px solid var(--line-2); }
.frow__media .blob{ position:absolute; width:160px; height:160px; border-radius:50%; z-index:-1; opacity:.12; }
.frow__media .blob.b1{ right:-26px; bottom:-26px; background:var(--blue); }
.frow__media .blob.b2{ left:-26px; top:-26px; background:var(--orange); }
.frow h3{ font-size:clamp(1.7rem,3vw,2.4rem); margin-top:14px; }
.frow p{ color:var(--muted); font-size:17px; margin-top:14px; line-height:1.6; }
.fchips{ display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }
.fchips span{ display:inline-flex; align-items:center; gap:7px; background:#fff; border:1px solid var(--line); border-radius:100px; padding:8px 14px; font-size:13.5px; font-weight:600; color:var(--navy); }
.fchips svg{ width:15px; height:15px; stroke:var(--blue-2); fill:none; stroke-width:2.6; }
.frow .badge-num{ font-family:var(--display); font-weight:800; font-size:13px; color:var(--orange); letter-spacing:.05em; }

/* ----- grid de características (iconos) ----- */
.feat{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:56px; }
.fcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:26px 24px; transition:transform .18s,box-shadow .25s,border-color .2s; }
.fcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:#C6D9E8; }
.fcard__ico{ width:46px; height:46px; border-radius:12px; background:var(--blue-soft); display:grid; place-items:center; margin-bottom:18px; }
.fcard__ico svg{ width:23px; height:23px; stroke:var(--blue-2); fill:none; stroke-width:1.9; }
.fcard:nth-child(3n+2) .fcard__ico{ background:var(--orange-soft); }
.fcard:nth-child(3n+2) .fcard__ico svg{ stroke:var(--orange); }
.fcard h3{ font-size:18px; margin-bottom:8px; letter-spacing:-.02em; }
.fcard p{ font-size:14.5px; color:var(--muted); line-height:1.55; }

/* ===================== DOMÓTICA (navy, diferenciador) ===================== */
.domo{ background:linear-gradient(160deg,var(--navy) 0%,var(--navy-3) 100%); color:#fff; position:relative; overflow:hidden; }
.domo::before{ content:""; position:absolute; right:-10%; top:-20%; width:700px; height:700px; border-radius:50%; background:radial-gradient(circle,rgba(27,123,181,.35),transparent 62%); pointer-events:none; }
.domo__in{ position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; padding:90px 0; }
.domo .eyebrow{ color:#8FD0F2; }
.domo .eyebrow::before{ background:var(--orange); }
.domo h2{ color:#fff; font-size:clamp(2rem,4vw,3rem); margin-top:14px; }
.domo__lead{ font-size:18px; color:#BAD2E2; margin-top:18px; line-height:1.6; }
.domo__lead b{ color:#fff; font-weight:600; }
.domo__sim{ display:inline-flex; align-items:center; gap:12px; margin:26px 0 8px; background:rgba(245,130,31,.14); border:1.5px solid rgba(245,130,31,.4); border-radius:14px; padding:14px 18px; }
.domo__sim .s{ font-family:var(--display); font-weight:900; font-size:24px; color:var(--orange); line-height:.9; }
.domo__sim p{ font-size:13.5px; color:#CFE0EC; max-width:330px; }
.domo__sim p b{ color:#fff; }
.domo__cards{ display:grid; gap:12px; margin-top:24px; }
.domo__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:56px; }
@media (max-width:1080px){ .domo__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .domo__grid{ grid-template-columns:1fr; } }
.dcard{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:16px 18px; display:flex; gap:14px; align-items:flex-start; }
.dcard.feat{ background:var(--blue-2); border-color:var(--blue-2); }
.dcard .di{ width:42px; height:42px; border-radius:11px; background:rgba(245,130,31,.16); display:grid; place-items:center; flex:none; }
.dcard.feat .di{ background:rgba(255,255,255,.16); }
.dcard .di svg{ width:21px; height:21px; stroke:var(--orange); fill:none; stroke-width:2; }
.dcard.feat .di svg{ stroke:#fff; }
.dcard h4{ color:#fff; font-size:15.5px; margin-bottom:3px; }
.dcard p{ font-size:13px; color:#9FB8C9; }
.dcard.feat p{ color:#DCEAF3; }
.domo__shot{ position:relative; display:flex; justify-content:center; }
.domo__shot img{ width:78%; max-width:330px; filter:drop-shadow(0 40px 60px rgba(0,0,0,.5)); }

/* ---- simulador domótica ---- */
.domo{ padding:90px 0; }
.domo .sec-head p, .domo__lead2{ color:#BAD2E2; }
.domo__lead2{ max-width:690px; margin:14px auto 0; text-align:center; font-size:18px; line-height:1.6; }
.domo__lead2 b{ color:#fff; }
.sim{ position:relative; max-width:820px; margin:46px auto 0; background:#fff; border-radius:22px; box-shadow:var(--shadow-lg); padding:22px; }
.sim__bar{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:4px 6px 16px; }
.sim__bar b{ display:block; font-family:var(--display); font-weight:800; font-size:16px; color:var(--navy); letter-spacing:-.02em; }
.sim__bar span{ font-size:13px; color:var(--muted); }
.sim__hint{ flex:none; font-size:12px; font-weight:700; color:var(--orange); background:var(--orange-soft); border-radius:999px; padding:7px 13px; white-space:nowrap; animation:hintpulse 1.8s ease-in-out infinite; }
@keyframes hintpulse{ 0%,100%{ opacity:.6; } 50%{ opacity:1; } }
.sim__stage{ display:flex; gap:14px; background:#EAF0F5; border:1px solid #DCE6EE; border-radius:16px; padding:20px; }
.court{ position:relative; flex:1; aspect-ratio:2/1; border-radius:10px; background:#1B2C3D; overflow:hidden; }
.court__floor{ position:absolute; inset:0; opacity:0; transition:opacity .5s ease; background:linear-gradient(135deg,#1668C4,#1E86E6 45%,#1668C4); }
.court.is-lit .court__floor{ opacity:var(--int,1); }
.court__glow{ position:absolute; left:50%; top:50%; width:72%; height:125%; transform:translate(-50%,-50%); background:radial-gradient(ellipse at center,rgba(120,185,255,.9),transparent 64%); opacity:0; transition:opacity .5s ease; pointer-events:none; z-index:1; }
.court.is-lit .court__glow{ opacity:var(--int,1); }
.court__lines{ position:absolute; inset:0; width:100%; height:100%; opacity:.38; transition:opacity .5s ease; z-index:2; }
.court.is-lit .court__lines{ opacity:.95; }
.lamp{ position:absolute; width:13px; height:9px; border-radius:3px; background:#6E8597; z-index:3; transition:background .35s, box-shadow .35s; }
.lamp::after{ content:""; position:absolute; width:86px; height:86px; left:50%; top:50%; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(255,212,80,.7),transparent 62%); opacity:0; transition:opacity .45s; pointer-events:none; }
.court.is-lit .lamp{ background:#FFD24A; box-shadow:0 0 14px 3px rgba(255,212,80,.85); }
.court.is-lit .lamp::after{ opacity:var(--int,1); }
.lamp--t1{ left:21%; top:6px; transform:translateX(-50%); } .lamp--t2{ left:79%; top:6px; transform:translateX(-50%); } .lamp--b1{ left:21%; bottom:6px; transform:translateX(-50%); } .lamp--b2{ left:79%; bottom:6px; transform:translateX(-50%); }
.court__door{ position:absolute; bottom:-1px; left:50%; width:54px; height:9px; margin-left:-27px; background:#F5821F; border-radius:2px; z-index:4; transform-origin:left center; transition:transform .55s cubic-bezier(.5,1.4,.5,1), background .3s; box-shadow:0 0 0 2px rgba(255,255,255,.3); }
.court__door.is-open{ transform:rotate(-72deg); background:#36C46B; }
.cover{ position:relative; width:88px; flex:none; border:1px solid #AEBDC9; border-radius:10px; overflow:hidden; background:linear-gradient(180deg,#CFE6F6,#EAF3FB); }
.cover__lbl{ position:absolute; bottom:7px; left:0; right:0; text-align:center; font-size:8px; font-weight:800; letter-spacing:.1em; color:#5A7184; z-index:3; }
.cover__blind{ position:absolute; top:0; left:0; right:0; height:100%; z-index:2; border-bottom:2px solid #93A6B4; background:repeating-linear-gradient(180deg,#EEF3F7 0 8px,#C4D1DB 8px 11px); transition:height .55s cubic-bezier(.5,0,.2,1); }
.cover.is-open .cover__blind{ height:18%; }
.sim__controls{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:16px; }
.simtile{ background:#fff; border:1.5px solid var(--line); border-radius:14px; padding:16px 12px 13px; text-align:center; cursor:pointer; font-family:var(--body); transition:border-color .2s, box-shadow .2s, transform .1s; }
.simtile:hover{ border-color:#C6D9E8; box-shadow:var(--shadow); }
.simtile:active{ transform:scale(.97); }
.simtile__ic{ width:42px; height:42px; border-radius:11px; background:var(--tint); display:grid; place-items:center; margin:0 auto 9px; transition:background .2s; }
.simtile__ic svg{ width:21px; height:21px; stroke:var(--soft); fill:none; stroke-width:2; transition:stroke .2s; }
.simtile b{ display:block; font-size:14px; color:var(--navy); font-weight:700; }
.simtile__st{ display:block; font-size:11.5px; color:var(--soft); margin-top:2px; }
.simtile.is-on{ border-color:var(--orange); box-shadow:0 0 0 3px rgba(245,130,31,.12); }
.simtile.is-on .simtile__ic{ background:var(--orange-soft); }
.simtile.is-on .simtile__ic svg{ stroke:var(--orange); }
.simtile.is-on .simtile__st{ color:var(--orange); font-weight:700; }
.simtile--sensor{ cursor:default; }
.simtile--sensor:hover{ border-color:var(--line); box-shadow:none; }
.simtile--sensor .simtile__st{ display:flex; align-items:center; justify-content:center; gap:7px; color:#1F9C52; font-weight:700; }
.simtile--sensor .dot{ width:9px; height:9px; border-radius:50%; background:#2FB964; box-shadow:0 0 6px rgba(47,185,100,.85); animation:blink 1.05s ease-in-out infinite; }
.simtile--sensor .simtile__ic{ background:rgba(47,185,100,.14); }
.simtile--sensor .simtile__ic svg{ stroke:#2FB964; }
.simtile--sensor.is-alert .simtile__st{ color:#E5484D; }
.simtile--sensor.is-alert .dot{ background:#E5484D; box-shadow:0 0 6px rgba(229,72,77,.9); }
.simtile--sensor.is-alert .simtile__ic{ background:rgba(229,72,77,.14); }
.simtile--sensor.is-alert .simtile__ic svg{ stroke:#E5484D; }
@keyframes blink{ 0%,100%{ opacity:1; } 50%{ opacity:.16; } }
.domo__sim2{ max-width:760px; margin:32px auto 0; display:flex; align-items:center; gap:16px; background:rgba(245,130,31,.14); border:1.5px solid rgba(245,130,31,.4); border-radius:14px; padding:16px 20px; }
.domo__sim2 .s{ font-family:var(--display); font-weight:900; font-size:22px; color:var(--orange); flex:none; }
.domo__sim2 p{ font-size:14px; color:#CFE0EC; line-height:1.5; }
.domo__sim2 p b{ color:#fff; }
.domo__cards3{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px; }
@media (max-width:820px){ .domo__cards3{ grid-template-columns:1fr; } }
@media (max-width:560px){ .sim__controls{ grid-template-columns:repeat(2,1fr); } .sim__bar{ flex-direction:column; gap:8px; } .cover{ width:60px; } }

/* ===================== MÓDULOS ===================== */
.mods{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.mcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:30px 30px 26px; transition:transform .18s,box-shadow .25s,border-color .2s; }
.mcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:#C6D9E8; }
.mcard--feat{ background:var(--navy); border-color:var(--navy); }
.mcard__top{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.mcard__ico{ width:48px; height:48px; border-radius:12px; background:var(--blue-soft); display:grid; place-items:center; flex:none; }
.mcard__ico svg{ width:24px; height:24px; stroke:var(--blue-2); fill:none; stroke-width:1.9; }
.mcard--feat .mcard__ico{ background:rgba(245,130,31,.18); }
.mcard--feat .mcard__ico svg{ stroke:var(--orange); }
.mcard h3{ font-size:20px; letter-spacing:-.03em; }
.mcard--feat h3{ color:#fff; }
.mcard__desc{ font-size:14.5px; color:var(--muted); line-height:1.55; margin-bottom:16px; }
.mcard--feat .mcard__desc{ color:#A9C3D5; }
.mcard ul{ list-style:none; display:grid; gap:9px; margin-bottom:20px; }
.mcard li{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--ink); }
.mcard--feat li{ color:#D6E5EF; }
.mcard li svg{ width:17px; height:17px; flex:none; margin-top:2px; stroke:var(--orange); fill:none; stroke-width:2.4; }
.mcard__price{ display:flex; align-items:baseline; justify-content:space-between; padding-top:16px; border-top:1px solid var(--line-2); }
.mcard--feat .mcard__price{ border-color:rgba(255,255,255,.14); }
.mcard__price .lbl{ font-size:13px; color:var(--muted); font-weight:600; }
.mcard--feat .mcard__price .lbl{ color:#9FB8C9; }
.mcard__price .amt{ font-family:var(--display); font-weight:800; font-size:24px; color:var(--orange); }

/* ===================== APP MÓVIL ===================== */
.app{ background:var(--tint-2); }
.app__in{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.appfeat{ display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; margin-top:30px; }
.appfeat__i{ display:flex; gap:13px; align-items:flex-start; }
.appfeat__i .ic{ width:40px; height:40px; border-radius:11px; background:#fff; border:1px solid var(--line); display:grid; place-items:center; flex:none; }
.appfeat__i .ic svg{ width:20px; height:20px; stroke:var(--blue-2); fill:none; stroke-width:2; }
.appfeat__i b{ display:block; font-family:var(--display); font-size:15.5px; color:var(--navy); letter-spacing:-.02em; }
.appfeat__i span{ font-size:13.5px; color:var(--muted); }
.stores{ display:flex; gap:12px; margin-top:30px; flex-wrap:wrap; }
.store{ display:inline-flex; align-items:center; gap:11px; background:var(--navy); color:#fff; border-radius:13px; padding:11px 20px; }
.store svg{ width:24px; height:24px; fill:#fff; }
.store span{ font-size:11px; color:#9FB8C9; line-height:1.1; }
.store b{ display:block; font-family:var(--display); font-size:16px; letter-spacing:-.02em; }
.app__visual{ position:relative; background:linear-gradient(160deg,var(--navy),var(--navy-3)); border-radius:24px; padding:44px 20px; display:flex; justify-content:center; overflow:hidden; }
.app__visual::before{ content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle,rgba(245,130,31,.3),transparent 60%); }
.phones{ position:relative; width:100%; min-height:420px; display:flex; align-items:center; justify-content:center; }
.phone{ position:absolute; width:170px; border-radius:30px; background:#10293F; padding:7px; box-shadow:0 26px 50px -16px rgba(0,0,0,.6); border:1px solid rgba(255,255,255,.12); }
.phone img{ display:block; width:100%; border-radius:24px; }
.phone--c{ z-index:4; transform:translateY(-14px); }
.phone--l{ z-index:1; transform:translateX(-120px) rotate(-9deg) scale(.9); }
.phone--r{ z-index:2; transform:translateX(120px) rotate(9deg) scale(.9); }
@media (max-width:520px){ .phone{ width:140px; } .phone--l{ transform:translateX(-96px) rotate(-9deg) scale(.9); } .phone--r{ transform:translateX(96px) rotate(9deg) scale(.9); } .phones{ min-height:340px; } }

/* ===================== STATS ===================== */
.stats{ background:var(--navy); color:#fff; }
.stats__in{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding:64px 0; text-align:center; }
.stats__in .n{ font-family:var(--display); font-weight:900; font-size:clamp(2.2rem,4vw,3.1rem); color:#fff; line-height:1; }
.stats__in .n .o{ color:var(--orange); }
.stats__in .c{ font-size:14.5px; color:#A9C3D5; margin-top:10px; font-weight:500; }

/* ===================== TESTIMONIOS ===================== */
.tcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.tcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:30px 28px; display:flex; flex-direction:column; }
.tcard__q{ font-size:16px; color:var(--ink); line-height:1.6; flex:1; }
.tcard__q::before{ content:"\201C"; font-family:var(--display); font-weight:900; font-size:52px; color:var(--orange); line-height:0; display:block; height:22px; }
.tcard__by{ display:flex; align-items:center; gap:13px; margin-top:24px; padding-top:20px; border-top:1px solid var(--line-2); }
.tcard__by img{ width:46px; height:46px; border-radius:11px; object-fit:cover; }
.tcard__by b{ display:block; color:var(--navy); font-size:15px; font-family:var(--display); letter-spacing:-.02em; }
.tcard__by span{ font-size:13px; color:var(--muted); }

/* ===================== PRECIOS ===================== */
.price{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
.pcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:32px 28px; display:flex; flex-direction:column; }
.pcard--feat{ background:var(--navy); border-color:var(--navy); box-shadow:var(--shadow-lg); position:relative; }
.pcard__flag{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--orange); color:#fff; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:6px 14px; border-radius:8px; }
.pcard__seg{ font-size:13px; font-weight:700; color:var(--muted); }
.pcard--feat .pcard__seg{ color:#9FB8C9; }
.pcard__sub{ font-size:13px; color:var(--soft); margin-top:3px; }
.pcard--feat .pcard__sub{ color:#8AA6BA; }
.pcard__price{ display:flex; align-items:baseline; gap:4px; margin:18px 0 6px; }
.pcard__price .amt{ font-family:var(--display); font-weight:900; font-size:44px; color:var(--navy); letter-spacing:-.04em; }
.pcard--feat .pcard__price .amt{ color:#fff; }
.pcard__price .per{ font-size:15px; color:var(--muted); }
.pcard--feat .pcard__price .per{ color:#9FB8C9; }
.pcard ul{ list-style:none; margin:20px 0 26px; display:grid; gap:11px; }
.pcard li{ display:flex; gap:11px; align-items:flex-start; font-size:14.5px; color:var(--ink); }
.pcard--feat li{ color:#D6E5EF; }
.pcard li svg{ width:18px; height:18px; flex:none; margin-top:2px; stroke:var(--orange); fill:none; stroke-width:2.4; }
.pcard .btn{ width:100%; justify-content:center; margin-top:auto; }
.pnote{ margin-top:24px; background:var(--tint); border:1px solid var(--line); border-left:4px solid var(--orange); border-radius:12px; padding:18px 22px; font-size:14.5px; color:var(--muted); }
.pnote b{ color:var(--navy); }
.pmods{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px 40px; margin-top:18px; }
.pmods div{ display:flex; justify-content:space-between; gap:12px; font-size:14px; padding:8px 0; border-bottom:1px dashed var(--line); }
.pmods span{ color:var(--ink); }
.pmods b{ color:var(--orange); font-family:var(--display); white-space:nowrap; }

/* ===================== GATE DE PRECIOS + MODAL ===================== */
.pricewrap{ position:relative; }
.pricewrap__c{ transition:filter .4s ease; }
.pricewrap__c.is-blur{ filter:blur(9px); pointer-events:none; user-select:none; }
.gate{ position:absolute; inset:0; display:grid; place-items:center; padding:16px; z-index:5; }
.gate__card{ background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-lg); padding:38px 36px; max-width:470px; text-align:center; }
.gate__ic{ width:60px; height:60px; border-radius:16px; background:var(--orange-soft); display:grid; place-items:center; margin:0 auto 18px; }
.gate__ic svg{ width:28px; height:28px; stroke:var(--orange); fill:none; stroke-width:2; }
.gate__card h3{ font-size:24px; letter-spacing:-.03em; }
.gate__card p{ color:var(--muted); font-size:15.5px; margin:12px 0 22px; line-height:1.55; }
.gate__card .btn{ width:100%; justify-content:center; }
.gate__hint{ display:block; margin-top:14px; font-size:13px; color:var(--soft); }
.modal[hidden]{ display:none; }
.modal{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:20px; }
.modal__bd{ position:absolute; inset:0; background:rgba(7,48,78,.55); backdrop-filter:blur(3px); animation:fade .2s ease; }
.modal__card{ position:relative; background:#fff; border-radius:22px; box-shadow:var(--shadow-lg); width:100%; max-width:460px; padding:38px 36px; animation:pop .25s ease; max-height:92vh; overflow:auto; }
.modal__x{ position:absolute; top:15px; right:15px; width:38px; height:38px; border-radius:10px; border:1px solid var(--line); background:#fff; cursor:pointer; display:grid; place-items:center; }
.modal__x svg{ width:18px; height:18px; stroke:var(--navy); fill:none; stroke-width:2.2; }
.modal__card h3{ font-size:26px; margin-top:12px; }
.modal__card .lead{ color:var(--muted); font-size:15px; margin:10px 0 22px; line-height:1.55; }
.field{ display:block; margin-bottom:14px; }
.field span{ display:block; font-size:13px; font-weight:600; color:var(--navy); margin-bottom:6px; }
.field input{ width:100%; font-family:var(--body); font-size:15.5px; padding:13px 15px; border:1.5px solid var(--line); border-radius:11px; background:var(--tint); transition:border-color .15s, background .15s; color:var(--ink); }
.field input:focus{ outline:none; border-color:var(--blue); background:#fff; }
.check{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--muted); margin:4px 0 20px; line-height:1.45; cursor:pointer; }
.check input{ margin-top:2px; width:16px; height:16px; flex:none; accent-color:var(--orange); }
.check a{ color:var(--blue-2); text-decoration:underline; }
.modal__card .btn{ width:100%; justify-content:center; }
.form-msg{ font-size:13.5px; margin-top:12px; text-align:center; min-height:18px; }
.form-msg.err{ color:#C0392B; }
.form-msg.ok{ color:#1E8449; }
@keyframes fade{ from{opacity:0;} to{opacity:1;} }
@keyframes pop{ from{opacity:0; transform:translateY(12px) scale(.98);} to{opacity:1; transform:none;} }

/* ===================== CTA FINAL ===================== */
.cta{ background:linear-gradient(160deg,var(--navy),var(--navy-3)); color:#fff; position:relative; overflow:hidden; }
.cta::before{ content:""; position:absolute; inset:0; background:radial-gradient(640px 320px at 78% -10%,rgba(27,123,181,.4),transparent 60%),radial-gradient(560px 300px at 20% 120%,rgba(245,130,31,.22),transparent 60%); pointer-events:none; }
.cta__in{ position:relative; text-align:center; padding:90px 0; }
.cta h2{ color:#fff; font-size:clamp(2.1rem,4vw,3.2rem); max-width:760px; margin:0 auto 16px; }
.cta p{ font-size:19px; color:#BAD2E2; max-width:560px; margin:0 auto 32px; }
.cta__btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ===================== FOOTER ===================== */
.ft{ background:var(--navy-3); color:#9FB8C9; padding:62px 0 28px; }
.ft__top{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; padding-bottom:42px; border-bottom:1px solid rgba(255,255,255,.1); }
.ft .brand{ color:#fff; margin-bottom:16px; }
.ft__about{ font-size:14.5px; line-height:1.6; max-width:300px; color:#8AA6BA; }
.ft__about a{ color:#fff; }
.ft h4{ color:#fff; font-family:var(--body); font-size:14px; font-weight:700; margin-bottom:15px; }
.ft__col a{ display:block; font-size:14.5px; color:#9FB8C9; padding:6px 0; transition:color .15s; }
.ft__col a:hover{ color:var(--orange); }
.ft__bottom{ display:flex; flex-wrap:wrap; gap:14px 28px; align-items:center; justify-content:space-between; padding-top:24px; font-size:13.5px; color:#7C97AB; }
.ft__bottom a{ color:#9FB8C9; }
.ft__bottom a:hover{ color:#fff; }
.ft__legal{ display:flex; flex-wrap:wrap; gap:8px 18px; }

/* ===================== ANIM ===================== */
@keyframes floatUp{ from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:none;} }
.js .reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ===================== RESPONSIVE ===================== */
@media (max-width:980px){
  .nav,.hdr__cta .btn--ghost{ display:none; }
  .burger{ display:grid; place-items:center; margin-left:auto; }
  .hero__in,.domo__in,.frow,.frow--rev,.app__in{ grid-template-columns:1fr; gap:44px; }
  .hero__in{ min-height:auto; padding:104px 0 84px; }
  .frow--rev .frow__media{ order:0; }
  .frow + .frow{ margin-top:64px; }
  .feat,.mods,.tcards,.price,.stats__in,.ft__top,.appfeat,.pmods{ grid-template-columns:repeat(2,1fr); }
  .domo__shot img{ max-width:280px; }
}
@media (max-width:640px){
  body{ font-size:16px; }
  .section{ padding:64px 0; }
  .feat,.mods,.tcards,.price,.ft__top,.appfeat,.pmods{ grid-template-columns:1fr; }
  .stats__in{ grid-template-columns:repeat(2,1fr); gap:34px 20px; }
  .hero h1{ font-size:clamp(2.1rem,8.5vw,3rem); }
  .subhero{ min-height:auto; }
  .subhero .wrap{ padding-top:64px; padding-bottom:40px; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none!important; transition:none!important; scroll-behavior:auto; }
  .reveal{ opacity:1!important; transform:none!important; }
  .hero__bg,.subhero__bg{ transform:none!important; }
  .hero__slide{ opacity:0!important; }
  .hero__slide:first-child{ opacity:1!important; transform:none!important; }
}
/* ---- diferenciadores ---- */
.diffs{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.diff{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px 28px; transition:transform .18s, box-shadow .25s, border-color .2s; }
.diff:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:#C6D9E8; }
.diff__ic{ width:54px; height:54px; border-radius:14px; background:var(--blue-soft); display:grid; place-items:center; margin-bottom:18px; }
.diff__ic svg{ width:26px; height:26px; stroke:var(--blue-2); fill:none; stroke-width:1.9; }
.diff h3{ font-size:18.5px; letter-spacing:-.02em; margin-bottom:8px; }
.diff p{ color:var(--muted); font-size:14.5px; line-height:1.55; }
.diff .tagk{ display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--orange); margin-bottom:7px; }
.diff--feat{ background:linear-gradient(160deg,#FFFFFF,#FFF4E9); border-color:rgba(245,130,31,.4); }
.diff--feat .diff__ic{ background:var(--orange-soft); }
.diff--feat .diff__ic svg{ stroke:var(--orange); }
@media (max-width:900px){ .diffs{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .diffs{ grid-template-columns:1fr; } }
/* ---- FAQ (acordeón nativo) ---- */
.faq{ display:grid; gap:12px; }
.faq__i{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:0 22px; transition:border-color .2s; }
.faq__i[open]{ border-color:#C6D9E8; }
.faq__i summary{ list-style:none; cursor:pointer; padding:20px 0; font-family:var(--display); font-weight:700; font-size:16.5px; color:var(--navy); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq__i summary::-webkit-details-marker{ display:none; }
.faq__i summary::after{ content:""; width:10px; height:10px; border-right:2.5px solid var(--blue-2); border-bottom:2.5px solid var(--blue-2); transform:rotate(45deg); transition:transform .25s; flex:none; }
.faq__i[open] summary::after{ transform:rotate(-135deg); }
.faq__a{ padding:0 0 20px; color:var(--muted); font-size:15px; line-height:1.62; }
.faq__a p{ margin:0; }
/* ---- hub tipos de cliente ---- */
.types{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.typecard{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:32px 30px; display:flex; flex-direction:column; transition:transform .18s, box-shadow .25s, border-color .2s; }
.typecard:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#C6D9E8; }
.typecard__ic{ width:58px; height:58px; border-radius:15px; background:var(--blue-soft); display:grid; place-items:center; margin-bottom:18px; }
.typecard__ic svg{ width:29px; height:29px; stroke:var(--blue-2); fill:none; stroke-width:1.8; }
.typecard h3{ font-size:22px; letter-spacing:-.02em; margin-bottom:8px; }
.typecard__d{ color:var(--muted); font-size:15px; line-height:1.55; margin-bottom:18px; }
.typecard ul{ list-style:none; padding:0; margin:0 0 24px; display:grid; gap:10px; }
.typecard ul li{ position:relative; padding-left:26px; font-size:14.5px; color:var(--ink); }
.typecard ul li svg{ position:absolute; left:0; top:2px; width:17px; height:17px; stroke:var(--orange); fill:none; stroke-width:2.4; }
.typecard .btn{ margin-top:auto; }
@media (max-width:900px){ .types{ grid-template-columns:1fr; } }
/* ---- orbit "para quién" (landing automatización) ---- */
.orbit{ position:relative; max-width:740px; margin:10px auto 0; height:430px; }
.orbit__core{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:150px; height:150px; display:grid; place-items:center; z-index:3; }
.orbit__hub{ position:relative; z-index:2; width:150px; height:150px; border-radius:50%; background:linear-gradient(160deg,var(--navy),var(--navy-3)); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; box-shadow:0 18px 46px rgba(7,48,78,.4); }
.orbit__hub svg{ width:34px; height:34px; stroke:var(--orange); fill:none; stroke-width:1.8; margin-bottom:5px; }
.orbit__hub b{ font-family:var(--display); font-size:18px; line-height:1; }
.orbit__hub span{ font-size:10.5px; color:#9FC7E0; letter-spacing:.08em; text-transform:uppercase; margin-top:3px; }
.orbit__wave{ position:absolute; left:50%; top:50%; width:150px; height:150px; margin:-75px 0 0 -75px; border-radius:50%; border:2px solid var(--orange); opacity:0; animation:owave 3.2s ease-out infinite; }
.orbit__wave:nth-child(2){ animation-delay:1.06s; }
.orbit__wave:nth-child(3){ animation-delay:2.13s; }
@keyframes owave{ 0%{ transform:scale(1); opacity:.5; } 80%{ opacity:.06; } 100%{ transform:scale(2.4); opacity:0; } }
.onode{ position:absolute; display:flex; align-items:center; gap:13px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:14px 18px; box-shadow:var(--shadow); width:248px; z-index:4; }
.onode__ic{ width:44px; height:44px; border-radius:12px; background:var(--blue-soft); display:grid; place-items:center; flex:none; }
.onode__ic svg{ width:22px; height:22px; stroke:var(--blue-2); fill:none; stroke-width:1.9; }
.onode b{ display:block; font-size:15px; color:var(--navy); letter-spacing:-.01em; }
.onode small{ font-size:12.5px; color:var(--muted); }
.onode--1{ top:0; left:50%; transform:translateX(-50%); }
.onode--2{ bottom:6px; left:0; }
.onode--3{ bottom:6px; right:0; }
@media (prefers-reduced-motion: reduce){ .orbit__wave{ animation:none; opacity:.22; } }
@media (max-width:760px){
  .orbit{ height:auto; max-width:380px; display:flex; flex-direction:column; align-items:center; gap:14px; overflow:hidden; padding-top:4px; }
  .orbit__core{ position:relative; left:auto; top:auto; transform:none; margin-bottom:2px; }
  .onode{ position:relative; left:auto; right:auto; top:auto; bottom:auto; transform:none; width:100%; }
}
/* ---- banner subvención (ayuntamientos) ---- */
.subv-cta{ margin-top:34px; background:linear-gradient(160deg,var(--navy),var(--navy-3)); border-radius:20px; padding:30px 36px; display:flex; align-items:center; gap:24px; color:#fff; flex-wrap:wrap; }
.subv-cta__ic{ width:62px; height:62px; border-radius:16px; background:rgba(245,130,31,.16); display:grid; place-items:center; flex:none; }
.subv-cta__ic svg{ width:31px; height:31px; stroke:var(--orange); fill:none; stroke-width:1.8; }
.subv-cta__tx{ flex:1; min-width:250px; }
.subv-cta__tx b{ font-family:var(--display); font-size:20px; display:block; margin-bottom:5px; letter-spacing:-.01em; }
.subv-cta__tx p{ color:#BAD2E2; font-size:15px; margin:0; line-height:1.55; }
.subv-cta .btn{ flex:none; }
@media (max-width:620px){ .subv-cta{ padding:26px; gap:18px; } .subv-cta .btn{ width:100%; justify-content:center; } }
/* ---- regulador de intensidad (simulador) ---- */
.sim__dim{ display:flex; align-items:center; gap:14px; margin-top:12px; background:#0E2233; border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:13px 18px; }
.sim__dim-ic{ display:grid; place-items:center; flex:none; }
.sim__dim-ic svg{ width:20px; height:20px; stroke:var(--orange); fill:none; stroke-width:1.9; }
.sim__dim-lbl{ font-size:13px; font-weight:700; color:#DCE8F2; flex:none; }
.sim__range{ -webkit-appearance:none; appearance:none; flex:1; height:6px; border-radius:999px; background:rgba(255,255,255,.18); outline:none; cursor:pointer; }
.sim__range::-webkit-slider-runnable-track{ height:6px; border-radius:999px; background:transparent; }
.sim__range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:18px; height:18px; border-radius:50%; background:#fff; border:3px solid var(--orange); margin-top:-6px; box-shadow:0 2px 6px rgba(0,0,0,.35); }
.sim__range::-moz-range-track{ height:6px; border-radius:999px; background:rgba(255,255,255,.18); }
.sim__range::-moz-range-progress{ height:6px; border-radius:999px; background:var(--orange); }
.sim__range::-moz-range-thumb{ width:15px; height:15px; border-radius:50%; background:#fff; border:3px solid var(--orange); }
.sim__dim-val{ font-size:13px; font-weight:800; color:#fff; min-width:42px; text-align:right; flex:none; }
@media (max-width:560px){ .sim__dim{ padding:11px 14px; gap:10px; } .sim__dim-lbl{ display:none; } }

/* eco */

/* ===================== ECOSISTEMA PADELMAGIC (club) ===================== */
.eco{ background:linear-gradient(165deg,#062840 0%,#0A3A5E 100%); color:#fff; position:relative; overflow:hidden; }
.eco::before{ content:""; position:absolute; right:-12%; top:-15%; width:680px; height:680px; border-radius:50%; background:radial-gradient(circle,rgba(245,130,31,.18),transparent 62%); pointer-events:none; }
.eco::after{ content:""; position:absolute; left:-15%; bottom:-25%; width:620px; height:620px; border-radius:50%; background:radial-gradient(circle,rgba(27,123,181,.28),transparent 62%); pointer-events:none; }
.eco .wrap{ position:relative; }
.eco .sec-head h2{ color:#fff; }
.eco .sec-head p{ color:#A9C3D5; }
.eco .eyebrow{ color:#8FD0F2; }
.eco .eyebrow::before{ background:var(--orange); }
.eco__feat{ display:grid; grid-template-columns:1.05fr .95fr; gap:54px; align-items:center; margin-bottom:60px; }
.eco__copy h3{ color:#fff; font-size:clamp(1.7rem,3vw,2.4rem); }
.scoreboard{ background:#0A2235; border:1px solid rgba(255,255,255,.12); border-radius:18px; padding:24px 26px; box-shadow:var(--shadow-lg); }
.scoreboard__top{ display:flex; justify-content:space-between; align-items:center; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:#8FD0F2; margin-bottom:14px; font-weight:700; }
.scoreboard__live{ display:inline-flex; align-items:center; gap:7px; color:#fff; }
.scoreboard__live::before{ content:""; width:9px; height:9px; border-radius:50%; background:#36C46B; box-shadow:0 0 10px #36C46B; animation:pulse 1.4s infinite; }
.scoreboard__row{ display:flex; justify-content:space-between; align-items:center; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.scoreboard__team{ font-family:var(--display); font-weight:700; font-size:18px; color:#fff; letter-spacing:-.02em; }
.scoreboard__score{ display:flex; gap:8px; }
.scoreboard__score b{ font-family:var(--display); font-weight:900; font-size:25px; color:var(--orange); background:rgba(245,130,31,.12); border:1px solid rgba(245,130,31,.25); border-radius:8px; padding:3px 0; min-width:44px; text-align:center; }
.scoreboard__foot{ margin-top:14px; font-size:12.5px; color:#8AA6BA; letter-spacing:.02em; }
.eco__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.ecard{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:16px; padding:26px 24px; transition:transform .18s, background .2s, border-color .2s; }
.ecard:hover{ transform:translateY(-3px); background:rgba(255,255,255,.07); border-color:rgba(245,130,31,.4); }
.ecard__ic{ width:48px; height:48px; border-radius:12px; background:rgba(245,130,31,.16); display:grid; place-items:center; margin-bottom:16px; }
.ecard__ic svg{ width:24px; height:24px; stroke:var(--orange); fill:none; stroke-width:1.9; }
.ecard h3{ font-size:18px; color:#fff; margin-bottom:8px; letter-spacing:-.02em; }
.ecard p{ font-size:14px; color:#9FB8C9; line-height:1.55; }
.ecard__tag{ display:inline-block; margin-top:13px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#8FD0F2; }
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:.35;} }
@media (max-width:980px){ .eco__feat{ grid-template-columns:1fr; gap:40px; } .eco__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .eco__grid{ grid-template-columns:1fr; } }
.ledscreen{ background:#05070b; border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:10px; box-shadow:0 34px 70px -24px rgba(0,0,0,.85), 0 0 60px -16px rgba(190,242,100,.16); }
.ledscreen img{ display:block; width:100%; border-radius:9px; }
.eco__player{ margin-top:66px; }
.eco__player .phones{ margin-top:6px; }
@media (max-width:980px){ .eco__player{ margin-top:48px; } }
.eco__marq{ text-align:center; margin-bottom:62px; }
.eco__marq-head{ max-width:760px; margin:0 auto 30px; }
.eco__marq-head h3{ color:#fff; font-size:clamp(1.7rem,3vw,2.4rem); }
.eco__marq-head p{ color:#BAD2E2; font-size:17px; margin-top:12px; line-height:1.6; }
.eco__marq-head b{ color:#fff; }
.ledstage{ position:relative; max-width:920px; margin:0 auto; min-height:540px; display:flex; align-items:center; }
.ledstage__screen{ width:64%; background:#05070b; border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:9px; box-shadow:0 30px 60px -22px rgba(0,0,0,.8),0 0 50px -18px rgba(190,242,100,.14); }
.ledstage__screen img{ display:block; width:100%; border-radius:8px; }
.ledstage__recap{ position:absolute; right:0; top:50%; transform:translateY(-50%); width:42%; margin:0; background:#05070b; border:1px solid rgba(190,242,100,.45); border-radius:20px; padding:8px; box-shadow:0 36px 70px -18px rgba(0,0,0,.9),0 0 60px -12px rgba(190,242,100,.28); }
.ledstage__recap img{ display:block; width:100%; border-radius:13px; }
.ledstage__tag{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:#BEF264; color:#0b2e12; font-size:11px; font-weight:800; letter-spacing:.05em; padding:5px 13px; border-radius:8px; text-transform:uppercase; white-space:nowrap; box-shadow:0 6px 16px rgba(0,0,0,.35); z-index:2; }
.fchips--center{ justify-content:center; margin-top:36px; }
@media (max-width:760px){ .ledstage{ flex-direction:column; min-height:0; gap:26px; } .ledstage__screen{ width:100%; } .ledstage__recap{ position:static; transform:none; width:80%; margin:0 auto; } }
.pslider{ position:relative; max-width:430px; margin:0 auto; }
.pslider__view{ overflow:hidden; border-radius:20px; }
.pslider__track{ display:flex; transition:transform .55s cubic-bezier(.4,0,.2,1); }
.pslide{ flex:0 0 100%; display:flex; flex-direction:column; align-items:center; gap:16px; padding:6px 4px 0; }
.pslide img{ width:84%; max-width:330px; filter:drop-shadow(0 30px 50px rgba(0,0,0,.55)); border-radius:30px; }
.pslide__cap{ display:flex; align-items:center; gap:9px; color:#fff; font-weight:700; font-size:15px; }
.pslide__cap svg{ width:18px; height:18px; stroke:#BEF264; fill:none; stroke-width:2; }
.pslider__nav{ position:absolute; top:42%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff; font-size:22px; line-height:1; cursor:pointer; display:grid; place-items:center; transition:background .2s,color .2s; z-index:3; }
.pslider__nav:hover{ background:rgba(190,242,100,.92); color:#0b2e12; border-color:transparent; }
.pslider__prev{ left:-8px; } .pslider__next{ right:-8px; }
.pslider__dots{ display:flex; justify-content:center; gap:9px; margin-top:20px; }
.pdot{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.22); border:0; cursor:pointer; padding:0; transition:background .2s,width .2s; }
.pdot.is-active{ background:#BEF264; width:24px; border-radius:6px; }
@media (max-width:560px){ .pslider__prev{ left:0; } .pslider__next{ right:0; } }

/* modx */

/* ===================== MÓDULOS DETALLE (ayto) ===================== */
.modwrap{ display:grid; gap:22px; }
.modx{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:34px 36px; }
.modx__h{ display:flex; align-items:center; gap:16px; margin-bottom:6px; }
.modx__ic{ width:54px; height:54px; border-radius:14px; background:var(--blue-soft); display:grid; place-items:center; flex:none; }
.modx__ic svg{ width:27px; height:27px; stroke:var(--blue-2); fill:none; stroke-width:1.9; }
.modx__tag{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--orange); }
.modx h3{ font-size:23px; letter-spacing:-.03em; margin-top:2px; }
.modx__desc{ color:var(--muted); font-size:16px; line-height:1.6; margin:14px 0 20px; max-width:820px; }
.modx__list{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px 26px; }
.modx__list div{ display:flex; gap:10px; align-items:flex-start; font-size:14.5px; color:var(--ink); }
.modx__list svg{ width:18px; height:18px; flex:none; margin-top:2px; stroke:var(--orange); fill:none; stroke-width:2.4; }
.modx__shot{ margin-top:24px; }
.modx__shot img{ width:100%; border-radius:14px; border:1px solid var(--line-2); box-shadow:var(--shadow); }
.modx__shotcap{ display:block; text-align:center; font-size:12.5px; color:var(--muted); margin-top:13px; line-height:1.55; max-width:760px; margin-left:auto; margin-right:auto; }
@media (max-width:720px){ .modx__list{ grid-template-columns:1fr; } .modx{ padding:26px 22px; } }

/* ---- modx split + carnet piscina ---- */
.modx--split{ display:grid; grid-template-columns:1fr 300px; gap:42px; align-items:start; }
.modx--split .modx__list{ grid-template-columns:repeat(2,1fr); }
.modx__cap{ display:block; text-align:center; font-size:12.5px; color:var(--muted); margin-top:14px; line-height:1.5; max-width:300px; margin-left:auto; margin-right:auto; }
@media (max-width:860px){ .modx--split{ grid-template-columns:1fr; gap:30px; } .modx__aside{ justify-self:center; } .modx--split .modx__list{ grid-template-columns:1fr; } }
.ppass{ width:300px; max-width:100%; border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 24px 50px -18px rgba(7,48,78,.35); border:1px solid var(--line); margin:0 auto; }
.ppass__head{ position:relative; padding:22px 22px 20px; color:#fff; background:linear-gradient(135deg,#1CA7B6 0%,#0C6E7E 100%); overflow:hidden; }
.ppass__rings{ position:absolute; right:-30px; top:-30px; width:130px; height:130px; border-radius:50%; background:repeating-radial-gradient(circle, rgba(255,255,255,.16) 0 1px, transparent 1px 13px); }
.ppass__brand{ position:relative; display:flex; justify-content:space-between; align-items:center; font-size:10.5px; font-weight:700; letter-spacing:.14em; opacity:.95; }
.ppass__brand span{ letter-spacing:.07em; opacity:.85; }
.ppass__title{ position:relative; font-family:var(--display); font-weight:900; font-size:27px; letter-spacing:-.02em; margin:10px 0 9px; }
.ppass__meta{ position:relative; display:flex; align-items:center; gap:10px; font-size:12.5px; font-weight:600; }
.ppass__badge{ background:#F4C84B; color:#5A3D00; font-size:10.5px; font-weight:800; letter-spacing:.06em; padding:3px 10px; border-radius:999px; }
.ppass__perf{ height:0; border-top:2px dashed #D7E0E7; margin:0 14px; }
.ppass__body{ padding:18px 22px 22px; }
.ppass__lbl{ text-align:center; font-size:10.5px; font-weight:800; letter-spacing:.16em; color:#1CA0B0; text-transform:uppercase; }
.ppass__qr{ position:relative; width:172px; aspect-ratio:1; margin:14px auto 12px; padding:14px; }
.ppass__qr img{ width:100%; height:100%; display:block; }
.cnr{ position:absolute; width:18px; height:18px; border:2.5px solid #1CA7B6; }
.cnr--tl{ top:0; left:0; border-right:0; border-bottom:0; border-top-left-radius:5px; }
.cnr--tr{ top:0; right:0; border-left:0; border-bottom:0; border-top-right-radius:5px; }
.cnr--bl{ bottom:0; left:0; border-right:0; border-top:0; border-bottom-left-radius:5px; }
.cnr--br{ bottom:0; right:0; border-left:0; border-top:0; border-bottom-right-radius:5px; }
.ppass__hint{ text-align:center; font-size:11px; color:var(--soft); margin-bottom:16px; }
.ppass__rows{ display:grid; gap:11px; }
.ppass__rows div{ display:flex; justify-content:space-between; align-items:center; padding-bottom:10px; border-bottom:1px solid var(--line-2); }
.ppass__rows div:last-child{ border-bottom:0; padding-bottom:0; }
.ppass__rows span{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--soft); }
.ppass__rows b{ font-size:14px; color:var(--navy); font-weight:800; }
.ppass__foot{ text-align:center; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--soft); padding:14px; background:var(--tint); border-top:1px solid var(--line); }

/* extra */

/* ===================== BLOG ===================== */
.subhero{ position:relative; isolation:isolate; overflow:hidden; background:var(--navy-3); color:#fff; text-align:center; min-height:clamp(360px,52vh,470px); display:flex; align-items:center; }
.subhero__bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; background-repeat:no-repeat; transform:scale(1.04); animation:heroZoom 16s ease-out both; }
.subhero::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,38,62,.52) 0%, rgba(6,38,62,.74) 100%),
            radial-gradient(120% 120% at 50% 0%, rgba(245,130,31,.14), transparent 55%); }
.subhero .wrap{ position:relative; z-index:2; padding-top:46px; padding-bottom:46px; }
.subhero .eyebrow{ color:#8FC0E6; }
.subhero h1{ font-family:var(--display); font-weight:900; font-size:clamp(2.2rem,5vw,3.4rem); letter-spacing:-.03em; color:#fff; margin:14px 0 0; text-shadow:0 2px 30px rgba(0,0,0,.28); }
.subhero h1 .o{ color:var(--orange); }
.subhero p{ max-width:640px; margin:16px auto 0; font-size:18px; color:rgba(233,243,250,.9); line-height:1.6; }
.subhero p strong{ color:#fff; }
.subhero .cat{ background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.26); color:#fff; }
.subhero .cat:hover{ border-color:rgba(255,255,255,.6); }
.subhero .cat.is-on{ background:var(--orange); border-color:var(--orange); color:#fff; }
.cats{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:26px; }
.cat{ border:1.5px solid var(--line); background:#fff; color:var(--navy); border-radius:999px; padding:9px 18px; font-size:13.5px; font-weight:600; cursor:pointer; transition:all .18s; text-decoration:none; }
.cat:hover{ border-color:#C6D9E8; }
.cat.is-on{ background:var(--navy); border-color:var(--navy); color:#fff; }

.pcover{ position:relative; aspect-ratio:16/9; overflow:hidden; display:flex; align-items:flex-end; padding:18px; }
.pcover__tag{ position:relative; z-index:2; background:rgba(255,255,255,.92); color:var(--navy); font-size:11.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:6px 12px; border-radius:999px; }
.pcover__ico{ position:absolute; right:-10px; bottom:-14px; opacity:.16; }
.pcover__ico svg{ width:120px; height:120px; stroke:#fff; fill:none; stroke-width:1.4; }
.cv-reservas{ background:linear-gradient(135deg,#1B7BB5,#07304E); }
.cv-domotica{ background:linear-gradient(135deg,#0E3F5E,#156293); }
.cv-ayto{ background:linear-gradient(135deg,#156293,#07304E); }
.cv-padel{ background:linear-gradient(135deg,#F5821F,#C0480C); }
.cv-producto{ background:linear-gradient(135deg,#1CA7B6,#0C6E7E); }
.cv-comunidades{ background:linear-gradient(135deg,#2E8BC7,#0E4B73); }

.feat-post{ display:grid; grid-template-columns:1.05fr .95fr; gap:0; background:#fff; border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:var(--shadow); margin-bottom:40px; }
.feat-post .pcover{ aspect-ratio:auto; min-height:340px; border-radius:0; }
.feat-post .pcover__ico svg{ width:170px; height:170px; }
.feat-post__body{ padding:40px; display:flex; flex-direction:column; justify-content:center; }
.feat-post__body .k{ font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--orange); }
.feat-post__body h2{ font-family:var(--display); font-weight:800; font-size:clamp(1.5rem,2.6vw,2.1rem); letter-spacing:-.03em; margin:10px 0 14px; line-height:1.12; }
.feat-post__body p{ color:var(--muted); font-size:16px; line-height:1.6; }
.feat-post__body .meta{ display:flex; align-items:center; gap:10px; margin:18px 0 22px; font-size:13.5px; color:var(--soft); }
.feat-post__body .meta b{ color:var(--navy); font-weight:600; }
.feat-post__body .dot-sep{ width:4px; height:4px; border-radius:50%; background:var(--line-2); }

.posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.post{ background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; transition:transform .18s, box-shadow .25s, border-color .2s; display:flex; flex-direction:column; }
.post:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:#C6D9E8; }
.post .pcover{ border-radius:0; }
.post__body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.post__body h3{ font-size:19px; letter-spacing:-.02em; line-height:1.25; margin-bottom:9px; }
.post__body h3 a{ color:var(--navy); text-decoration:none; }
.post__body h3 a:hover{ color:var(--blue-2); }
.post__body p{ color:var(--muted); font-size:14.5px; line-height:1.55; flex:1; }
.post__meta{ display:flex; align-items:center; gap:9px; margin-top:18px; font-size:12.5px; color:var(--soft); }
.post__meta .dot-sep{ width:4px; height:4px; border-radius:50%; background:var(--line-2); }

.pager{ display:flex; justify-content:center; align-items:center; gap:8px; margin-top:48px; }
.pager a, .pager span{ min-width:42px; height:42px; display:grid; place-items:center; border:1.5px solid var(--line); border-radius:11px; font-size:14px; font-weight:600; color:var(--navy); text-decoration:none; padding:0 12px; transition:all .18s; }
.pager a:hover{ border-color:#C6D9E8; }
.pager .is-on{ background:var(--navy); border-color:var(--navy); color:#fff; }
.pager .nx{ gap:6px; display:inline-flex; }
.pager svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2.2; }

.news{ margin-top:64px; background:linear-gradient(160deg,var(--navy),var(--navy-3)); border-radius:22px; padding:48px; text-align:center; color:#fff; position:relative; overflow:hidden; }
.news::before{ content:""; position:absolute; right:-40px; top:-40px; width:240px; height:240px; border-radius:50%; background:radial-gradient(circle,rgba(245,130,31,.3),transparent 60%); }
.news h2{ position:relative; color:#fff; font-size:clamp(1.5rem,3vw,2rem); }
.news h2 .o{ color:var(--orange); }
.news p{ position:relative; color:#BAD2E2; margin:12px auto 24px; max-width:520px; }
.news__form{ position:relative; display:flex; gap:10px; max-width:480px; margin:0 auto; }
.news__form input{ flex:1; border:1.5px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:#fff; border-radius:12px; padding:14px 16px; font-size:15px; font-family:inherit; }
.news__form input::placeholder{ color:#9FB8C9; }

/* ===================== BLOG POST ===================== */
.post-head{ padding:56px 0 0; }
.post-head .crumb{ font-size:13px; color:var(--soft); margin-bottom:18px; }
.post-head .crumb a{ color:var(--blue-2); text-decoration:none; }
.post-head .k{ font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--orange); }
.post-head h1{ font-family:var(--display); font-weight:900; font-size:clamp(2rem,4.4vw,3rem); letter-spacing:-.03em; color:var(--navy); margin:10px 0 18px; line-height:1.08; max-width:840px; }
.post-head .meta{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--soft); }
.post-head .meta b{ color:var(--navy); font-weight:600; }
.post-head .meta .dot-sep{ width:4px; height:4px; border-radius:50%; background:var(--line-2); }
.post-cover{ height:300px; border-radius:18px; margin:30px 0 8px; }
.article{ max-width:760px; margin:0 auto; padding:8px 0 0; }
.prose{ font-size:17.5px; line-height:1.78; color:#33414C; }
.prose p{ margin:0 0 22px; }
.prose h2{ font-family:var(--display); font-weight:800; font-size:1.6rem; letter-spacing:-.02em; color:var(--navy); margin:38px 0 14px; }
.prose h3{ font-size:1.25rem; color:var(--navy); margin:28px 0 10px; }
.prose ul{ margin:0 0 22px; padding:0; list-style:none; display:grid; gap:11px; }
.prose ul li{ position:relative; padding-left:28px; }
.prose ul li::before{ content:""; position:absolute; left:4px; top:9px; width:8px; height:8px; border-radius:2px; background:var(--orange); }
.prose a{ color:var(--blue-2); }
.prose blockquote{ margin:28px 0; padding:18px 24px; border-left:4px solid var(--orange); background:var(--tint); border-radius:0 12px 12px 0; font-size:1.15rem; color:var(--navy); font-weight:500; }
.callout{ background:var(--tint); border:1px solid var(--line); border-radius:16px; padding:24px 26px; margin:30px 0; }
.callout b{ color:var(--navy); }
.inline-cta{ background:linear-gradient(160deg,var(--navy),var(--navy-3)); border-radius:18px; padding:32px; margin:36px 0; text-align:center; color:#fff; }
.inline-cta h3{ color:#fff; font-size:1.4rem; margin-bottom:8px; }
.inline-cta p{ color:#BAD2E2; margin-bottom:18px; }
.share{ display:flex; align-items:center; gap:12px; margin:34px 0; padding-top:24px; border-top:1px solid var(--line); font-size:14px; color:var(--soft); }
.share a{ width:38px; height:38px; border:1px solid var(--line); border-radius:10px; display:grid; place-items:center; color:var(--navy); }
.share a:hover{ border-color:#C6D9E8; }
.share svg{ width:17px; height:17px; fill:currentColor; }
.related-h{ font-family:var(--display); font-weight:800; font-size:1.5rem; color:var(--navy); margin-bottom:24px; letter-spacing:-.02em; }

/* ===================== CONTACTO ===================== */
.contact__grid{ display:grid; grid-template-columns:1.25fr .9fr; gap:38px; align-items:start; }
.cform{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:34px; box-shadow:var(--shadow); }
.cform h2{ font-size:1.5rem; letter-spacing:-.02em; margin-bottom:6px; }
.cform__sub{ color:var(--muted); font-size:15px; margin-bottom:24px; }
.cform .field{ display:block; margin-bottom:16px; }
.cform .field>span{ display:block; font-size:13px; font-weight:600; color:var(--navy); margin-bottom:7px; }
.cform input, .cform select, .cform textarea{ width:100%; border:1.5px solid var(--line); border-radius:12px; padding:13px 15px; font-size:15px; font-family:inherit; color:var(--ink); background:#fff; transition:border-color .18s, box-shadow .18s; }
.cform input:focus, .cform select:focus, .cform textarea:focus{ outline:0; border-color:var(--orange); box-shadow:0 0 0 3px rgba(245,130,31,.12); }
.cform textarea{ min-height:130px; resize:vertical; }
.cform .row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cform .check{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--muted); margin:4px 0 20px; line-height:1.5; }
.cform .check input{ width:auto; margin-top:3px; flex:none; }
.cform .check a{ color:var(--blue-2); }
.cinfo{ display:grid; gap:14px; }
.cinfo__card{ display:flex; gap:15px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px; }
.cinfo__ic{ width:46px; height:46px; border-radius:12px; background:var(--blue-soft); display:grid; place-items:center; flex:none; }
.cinfo__ic svg{ width:22px; height:22px; stroke:var(--blue-2); fill:none; stroke-width:2; }
.cinfo__card .l{ font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--soft); margin-bottom:3px; }
.cinfo__card b, .cinfo__card a{ display:block; font-size:15.5px; color:var(--navy); font-weight:600; text-decoration:none; }
.cinfo__card a:hover{ color:var(--blue-2); }
.cinfo__card span.t{ font-size:13.5px; color:var(--muted); }
.cmap{ margin-top:8px; border-radius:18px; overflow:hidden; border:1px solid var(--line); }
.cmap iframe{ width:100%; height:360px; border:0; display:block; }
@media (max-width:880px){ .contact__grid{ grid-template-columns:1fr; } .feat-post{ grid-template-columns:1fr; } .feat-post .pcover{ min-height:220px; } .posts{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .posts{ grid-template-columns:1fr; } .cform .row2{ grid-template-columns:1fr; } .feat-post__body,.cform,.news,.inline-cta{ padding:26px; } }
