/*
Theme Name: DPS Theme
Theme URI: https://dataprivacysolution.com
Author: LEGALSEC CONSULTING S.L.
Description: Tema a medida de Data Privacy Solution — RGPD + AI Act en una sola plataforma.
Version: 2.1.0
Text Domain: dps-theme
*/

  @font-face { font-family:'Inter'; font-style:normal; font-weight:100 900; font-display:swap; src:url(fonts/inter-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
  @font-face { font-family:'Inter'; font-style:normal; font-weight:100 900; font-display:swap; src:url(fonts/inter-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
  * { margin:0; padding:0; box-sizing:border-box; }
  :root {
    --ink:#16203A; --body:#535B79; --bg:#EDF1F6; --card:#F3F6FB; --line:#D9E0EE;
    --blue:#00B3A4; --blue-d:#009486; --blue-l:#2BC5B8; --cyan:#F2A93B; --ok:#00B3A4; --warn:#F2A93B; --red:#E11D48;
    --sh-xs:var(--sh-xs); --sh-sm:var(--sh-sm); --sh-md:var(--sh-md); --sh-lg:var(--sh-lg); --sh-dark:0 24px 60px rgba(7,11,24,.35);
    --dark:#10192E; --dark-line:rgba(255,255,255,.13); --dark-dim:#A2B4C2;
    --grad:linear-gradient(92deg,#00C2B2,#008A7D);
  }
  html { scroll-behavior:smooth; }
  body { font-family:'Inter',sans-serif; background:var(--bg); color:var(--ink); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
  .container { max-width:1160px; margin:0 auto; padding:0 36px; }
  a { color:inherit; text-decoration:none; }
  .chip { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:550; color:var(--blue-d); background:transparent; border:1px solid #BFDBD6; border-radius:100px; padding:7px 16px; }
  .chip .dot { width:6px; height:6px; border-radius:50%; background:var(--ok); box-shadow:0 0 8px rgba(16,185,129,.8); }
  .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 28px; font-size:14.5px; font-weight:600; border-radius:12px; transition:.16s; cursor:pointer; border:none; }
  .btn-pri { background:linear-gradient(180deg,#00C2B2,#00A396); color:#fff; box-shadow:0 1px 0 rgba(255,255,255,.3) inset, 0 5px 14px rgba(0,179,164,.18); }
  .btn-pri:hover { filter:brightness(1.07); transform:translateY(-1px); }
  .btn-sec { background:#fff; border:1px solid var(--line); color:var(--ink); box-shadow:var(--sh-xs); }
  .btn-sec:hover { border-color:#C4D2DE; }
  .btn-white { background:#fff; color:var(--ink); }
  .btn-white:hover { filter:brightness(.95); }

  /* top social proof bar */
  .topbar { background:var(--dark); color:#BFE9E3; font-size:13px; padding:9px 0; text-align:center; }
  .topbar b { color:#fff; font-weight:600; }
  .topbar .sep { margin:0 12px; color:#3A4265; }
  .topbar .warn-txt { color:#F2A93B; font-weight:600; }

  nav { position:sticky; top:0; z-index:60; background:var(--dark); border-bottom:3px solid var(--blue); }
  .nav-inner { display:flex; align-items:center; justify-content:space-between; padding:14px 0; }
  .nav-logo img { height:42px; display:block; }
  .nav-links { display:flex; gap:28px; list-style:none; }
  .nav-links a { font-size:14px; font-weight:600; color:#B9C2D4; transition:.15s; }
  .nav-links a:hover { color:#fff; }
  .nav-mobile-toggle { display:none; background:none; border:none; cursor:pointer; color:#fff; }
  .mobile-menu { display:none; }

  /* hero */
  .hero { position:relative; padding:96px 0 96px; text-align:center; overflow:hidden; }
  .hero::before { content:""; position:absolute; inset:0;
    background:
      radial-gradient(ellipse 900px 480px at 18% -10%, rgba(0,179,164,.17), transparent 60%),
      radial-gradient(ellipse 800px 460px at 85% -6%, rgba(242,169,59,.15), transparent 60%);
    pointer-events:none; }
  .hero::after { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(14,19,48,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(14,19,48,.055) 1px, transparent 1px); background-size:54px 54px; mask-image:radial-gradient(ellipse at top, black 25%, transparent 72%); -webkit-mask-image:radial-gradient(ellipse at top, black 25%, transparent 72%); pointer-events:none; }
  .hero > .container { position:relative; z-index:2; }
  .hero .brandmark { position:absolute; right:-40px; top:70px; width:480px; opacity:.06; pointer-events:none; z-index:1; }
  @media (max-width:960px){ .hero .brandmark { display:none; } }
  .hero-brand-top { text-align:center; margin-bottom:28px; }
  .hero-brand-top img { width:min(470px,80vw); filter:drop-shadow(0 20px 40px rgba(0,179,164,.18)); }
  @media (max-width:960px){ .hero-brand-top { margin-bottom:20px; } .hero-brand-top img { width:min(300px,76vw); } }
  .hero h1 { font-size:clamp(42px,5.6vw,74px); font-weight:750; letter-spacing:-2.6px; line-height:1.04; margin:26px auto 20px; max-width:880px; }
  .hero h1 .grad { color:var(--blue); }
  .hero p.lead { font-size:18px; color:var(--body); max-width:640px; margin:0 auto 34px; font-weight:450; }
  .hero p.lead strong { color:var(--ink); font-weight:600; }
  /* email capture */
  .capture { display:flex; gap:10px; justify-content:center; max-width:520px; margin:0 auto 14px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:6px; box-shadow:var(--sh-md); }
  .capture input { flex:1; border:none; outline:none; font-family:inherit; font-size:14.5px; padding:10px 14px; color:var(--ink); background:transparent; min-width:0; }
  .capture input::placeholder { color:#9BA2BC; }
  .capture .btn { padding:12px 22px; border-radius:12px; white-space:nowrap; }
  .hero-notes { display:flex; gap:22px; justify-content:center; font-size:13px; color:#8B92AC; flex-wrap:wrap; }
  .hero-notes span::before { content:"✓ "; color:var(--ok); font-weight:700; }

  /* mockup oscuro */
  .mock { position:relative; max-width:760px; margin:52px auto 0; border-radius:20px; background:linear-gradient(180deg,#0D1226,#070B18); border:1px solid #232A4A; box-shadow:0 50px 130px rgba(14,19,48,.35); overflow:hidden; color:#F4F6FB; text-align:left; }
  .mock-bar { display:flex; align-items:center; gap:8px; padding:13px 18px; border-bottom:1px solid var(--dark-line); }
  .mock-bar i { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.15); }
  .mock-bar .url { margin-left:12px; flex:1; max-width:360px; background:rgba(255,255,255,.06); border-radius:8px; font-size:11.5px; color:var(--dark-dim); padding:5px 12px; }
  .mock-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:22px; }
  .mk { background:rgba(255,255,255,.045); border:1px solid var(--dark-line); border-radius:12px; padding:18px 20px; }
  .mk .lab { font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--dark-dim); }
  .mk .val { font-size:28px; font-weight:700; letter-spacing:-1px; margin-top:6px; }
  .mk .val.ok { color:#2BC5B8; }
  .mk .val.warn { color:#F2A93B; }
  .mock-rows { padding:0 22px 22px; display:grid; gap:8px; }
  .mrow { display:flex; justify-content:space-between; align-items:center; background:rgba(255,255,255,.035); border:1px solid var(--dark-line); border-radius:12px; padding:11px 18px; font-size:13.5px; color:#B7BFD6; }
  .mrow .st { font-size:11.5px; font-weight:600; padding:3px 11px; border-radius:100px; }
  .st.done { background:rgba(0,179,164,.14); color:#2BC5B8; }
  .st.rev { background:rgba(251,191,36,.14); color:#F2A93B; }
  .mock-shot { display:block; width:100%; height:auto; }
  .mock-stack { position:relative; max-width:980px; margin:64px auto 0; }
  .mock-stack .ms-main { position:relative; z-index:2; max-width:760px; margin:0 auto; }
  .ms-side { position:absolute; top:8%; width:46%; border-radius:12px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-lg); filter:blur(1.5px) saturate(.85); opacity:.55; z-index:1; }
  .ms-side img { display:block; width:100%; height:auto; }
  .ms-left { left:-4%; transform:rotate(-5deg); }
  .ms-right { right:-4%; top:16%; transform:rotate(5deg); }
  @media (max-width:960px){ .ms-side { display:none; } .mock-stack .ms-main { max-width:100%; } }
  .mock-caption { text-align:center; font-size:12.5px; color:#8B92AC; margin-top:14px; }

  /* clients marquee */
  .clients { padding:60px 0 56px; }
  .clients .c-cap { text-align:center; font-size:12.5px; letter-spacing:1.8px; text-transform:uppercase; color:var(--blue); margin-bottom:8px; font-weight:650; }
  .clients .c-title { text-align:center; font-size:clamp(20px,2.4vw,26px); font-weight:700; letter-spacing:-.5px; color:var(--ink); margin-bottom:36px; }
  .clients-track { overflow:hidden; position:relative; mask-image:linear-gradient(90deg, transparent, black 12%, black 88%, transparent); -webkit-mask-image:linear-gradient(90deg, transparent, black 12%, black 88%, transparent); }
  .clients-row { display:flex; align-items:center; gap:72px; width:max-content; animation:clients-scroll 32s linear infinite; padding-right:72px; }
  .clients-track:hover .clients-row { animation-play-state:paused; }
  .clients-row img { height:34px; filter:grayscale(1) opacity(.65); transition:.2s; }
  .clients-row img:hover { filter:none; opacity:1; }
  @keyframes clients-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }

  .section { padding:96px 0; }
  .sec-head { max-width:680px; margin:0 auto 56px; text-align:center; }
  .sec-cap { font-size:18px; font-weight:700; letter-spacing:2.2px; text-transform:uppercase; color:var(--blue); }
  .sec-head h2 { font-size:clamp(26px,3.2vw,38px); font-weight:720; letter-spacing:-1.1px; line-height:1.14; margin:14px 0 12px; }
  .sec-head p { color:var(--body); font-size:16.5px; }
  .sec-head p b, .sec-head p strong { color:var(--ink); }

  /* sectores */
  .sectors { display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:960px; margin:0 auto; }
  .scard { display:flex; align-items:center; gap:16px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px 20px; box-shadow:var(--sh-sm); transition:.18s; }
  .scard:hover { transform:translateY(-2px); box-shadow:var(--sh-md); border-color:#C4D2DE; }
  .scard .ic { width:42px; height:42px; flex-shrink:0; border-radius:12px; display:flex; align-items:center; justify-content:center; }
  .scard .ic svg { width:20px; height:20px; }
  .scard .tx { flex:1; min-width:0; }
  .scard h3 { font-size:15px; font-weight:650; letter-spacing:-.2px; }
  .scard p { font-size:12.5px; color:var(--body); margin-top:1px; }
  .scard .stag { flex-shrink:0; white-space:nowrap; }
  .stag { display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; padding:4px 11px; border-radius:100px; }
  .stag.hi { background:transparent; color:var(--red); border:1px solid rgba(225,29,72,.35); }
  .stag.lim { background:transparent; color:#B45309; border:1px solid rgba(180,83,9,.35); }
  /* sectores en panel oscuro */

  .sectors-wrap::after { content:""; position:absolute; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle, rgba(0,179,164,.3), transparent 62%); bottom:-240px; right:-140px; }
  .sectors-wrap > * { position:relative; z-index:2; }
  .sectors-wrap .sec-head { margin-bottom:40px; text-align:left; margin-left:0; max-width:760px; }
  .sectors-wrap .sec-head p { margin-left:0; }
  .sectors-wrap .sec-head p { color:var(--dark-dim); }
  .sectors-wrap .sec-head p b { color:#fff; }
  .sectors-wrap .sec-head p b.rojo { color:#F87171; }
  
  .sectors-wrap .scard { background:transparent; border:1px solid var(--dark-line); box-shadow:none; }
  .sectors-wrap .scard:hover { background:rgba(255,255,255,.04); border-color:rgba(0,179,164,.3); }
  .sectors-wrap .scard .ic { background:transparent; border:1px solid rgba(130,155,255,.45); color:#3FD6C8; }
  .sectors-wrap .scard h3 { color:#F4F6FB; }
  .sectors-wrap .scard p { color:var(--dark-dim); }
  .sectors-wrap .stag { display:inline-flex; align-items:center; gap:7px; }
  .sectors-wrap .stag::before { content:""; width:6px; height:6px; border-radius:50%; }
  .sectors-wrap .stag.hi { background:transparent; color:#B7BFD6; border:1px solid rgba(255,255,255,.16); }
  .sectors-wrap .stag.hi::before { background:#F87171; box-shadow:0 0 8px rgba(248,113,113,.8); }
  .sectors-wrap .stag.lim { background:transparent; color:#B7BFD6; border:1px solid rgba(255,255,255,.16); }
  .sectors-wrap .stag.lim::before { background:#F2A93B; box-shadow:0 0 8px rgba(242,169,59,.7); }
  .sectors-wrap .sectors-cta p { color:var(--dark-dim); }
  .sectors-wrap .sectors-cta p a { color:#3FD6C8; }

  .sectors-cta { text-align:center; margin-top:40px; }
  .sectors-cta p { font-size:13.5px; color:var(--body); margin-top:14px; }
  .sectors-cta p a { color:var(--blue); font-weight:600; }

  /* features bento */
  .fgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .fcard { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:30px 28px; box-shadow:var(--sh-sm); transition:.18s; position:relative; overflow:hidden; }
  .fcard::before { content:""; position:absolute; top:-60px; right:-60px; width:150px; height:150px; border-radius:50%; background:radial-gradient(circle, var(--tint, rgba(0,179,164,.10)), transparent 70%); pointer-events:none; }
  .fcard::after { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, var(--tint, rgba(0,179,164,.3)), transparent 80%); opacity:0; transition:.2s; }
  .fcard:hover { transform:translateY(-4px); box-shadow:var(--sh-md); border-color:#BFDBD6; }
  .fcard:hover::after { opacity:1; }
  .fcard h3, .fcard p { position:relative; z-index:2; }
  .fcard .ic { margin-bottom:18px; position:relative; z-index:2; display:block; }
  .fcard .ic svg { width:30px; height:30px; }
  .ic.c1, .ic.c4, .ic.c7 { color:#00857A; }
  .ic.c2, .ic.c5, .ic.c8 { color:#B4700E; }
  .ic.c3, .ic.c6, .ic.c9 { color:var(--ink); }
  .fcard:has(.ic.c1) { --tint:rgba(0,179,164,.07); }
  .fcard:has(.ic.c2) { --tint:rgba(217,119,6,.07); }
  .fcard:has(.ic.c3) { --tint:rgba(124,58,237,.07); }
  .fcard:has(.ic.c4) { --tint:rgba(8,145,178,.07); }
  .fcard:has(.ic.c5) { --tint:rgba(225,29,72,.07); }
  .fcard:has(.ic.c6) { --tint:rgba(5,150,105,.07); }
  .fcard:has(.ic.c7) { --tint:rgba(79,70,229,.07); }
  .fcard:has(.ic.c8) { --tint:rgba(13,148,136,.07); }
  .fcard:has(.ic.c9) { --tint:rgba(2,132,199,.07); }
  
  .fcard h3 { font-size:16.5px; font-weight:650; letter-spacing:-.2px; margin-bottom:8px; }
  .fcard p { font-size:14.5px; color:var(--body); }


  /* versiones por país */
  .regions { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:960px; margin:0 auto; }
  .rcard { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:36px 34px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; }
  .rcard .flag { display:inline-flex; align-items:center; gap:11px; line-height:0; margin-bottom:14px; }
  .rcard .flag .mark { height:30px; width:auto; }
  .rcard .flag .sep { width:1px; height:22px; background:var(--line); }
  .rcard .flag svg { border-radius:4px; box-shadow:var(--sh-xs); }
  .rcard h3 { font-size:19px; font-weight:700; letter-spacing:-.3px; margin-bottom:4px; }
  .rcard .norms { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0 14px; }
  .rcard .norm { font-size:11.5px; font-weight:650; letter-spacing:.6px; text-transform:uppercase; color:var(--blue-d); border:1px solid #BFDBD6; border-radius:100px; padding:4px 12px; }
  .rcard p { font-size:14px; color:var(--body); flex:1; }
  .rcard a.go { margin-top:18px; font-size:14px; font-weight:650; color:var(--blue); }
  .rcard a.go:hover { color:var(--blue-d); }
  /* fichas de país, versión con franja de bandera y checks */
  .rcard { overflow:hidden; position:relative; transition:.18s; }
  .rcard:hover { transform:translateY(-3px); box-shadow:var(--sh-md); }
  .rcard h3 { font-size:21px; }
  .rcard .norm { background:rgba(0,179,164,.09); border-color:rgba(0,179,164,.3); }
  .rlist { list-style:none; padding:0; margin:2px 0 6px; flex:1; }
  .rlist li { font-size:14px; color:var(--body); padding:7px 0 7px 26px; position:relative; border-bottom:1px dashed var(--line); }
  .rlist li:last-child { border-bottom:none; }
  .rlist li::before { content:"✓"; position:absolute; left:2px; color:var(--blue); font-weight:700; }
  .rcard a.go { margin-top:14px; }
  /* escudo con media marca resaltada en los paneles navy */
  .panel-mark { position:absolute; top:46px; right:56px; height:112px; pointer-events:none; opacity:.95; }
  @media (max-width:960px){ .panel-mark { display:none; } }
  .regions-note { text-align:center; font-size:13.5px; color:var(--body); margin-top:22px; }
  @media (max-width:900px){ .regions { grid-template-columns:1fr; } }
  /* dark panels */
  .dark-panel { background:linear-gradient(165deg, rgba(30,42,74,.96) 0%, rgba(22,32,58,.97) 60%, rgba(17,25,46,.98) 100%); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-radius:24px; padding:72px 64px; color:#F4F6FB; position:relative; overflow:hidden; border:1px solid rgba(0,179,164,.3); }
  .dark-panel .sec-cap { color:#3FD6C8; }
  .dark-panel h2 { font-size:clamp(26px,3.1vw,36px); font-weight:720; letter-spacing:-1px; line-height:1.14; margin:14px 0 12px; }
  .ia-wrap::before { content:""; position:absolute; width:640px; height:640px; border-radius:50%; background:radial-gradient(circle, rgba(0,179,164,.26), transparent 62%); top:-260px; right:-180px; }
  .ia-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:64px; align-items:center; position:relative; }
  .ia-grid > * { min-width:0; }
  .ia-grid p.l { color:var(--dark-dim); margin-bottom:8px; }
  .ia-list { display:grid; gap:10px; margin:28px 0 34px; }
  .ia-row { display:flex; align-items:center; justify-content:space-between; gap:16px; background:transparent; border:1px solid var(--dark-line); border-radius:12px; padding:13px 18px; font-size:14.5px; font-weight:500; }
  .ia-row .art { font-size:11.5px; font-weight:600; color:#3FD6C8; background:transparent; border:1px solid rgba(0,179,164,.3); padding:3px 11px; border-radius:100px; white-space:nowrap; }
  .fine { background:transparent; border:1px solid var(--dark-line); border-radius:20px; padding:44px 40px; text-align:center; }
  .fine .cap { font-size:11.5px; letter-spacing:1.8px; text-transform:uppercase; color:#F87171; font-weight:650; }
  .fine .big { font-size:72px; font-weight:800; letter-spacing:-3.5px; margin:14px 0 4px; background:linear-gradient(180deg,#fff,#93A5D8); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .fine .sub { color:var(--dark-dim); font-size:14px; }
  .fine-reuse .cap { color:#3FD6C8; }
  .fine-reuse .big { font-size:44px; letter-spacing:-1.6px; }
  .reuse-list { display:grid; gap:8px; margin:0 0 18px; text-align:left; }
  .reuse-row { display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:10px; border:1px solid var(--dark-line); border-radius:12px; padding:10px 14px; font-size:13px; font-weight:500; }
  .reuse-row span:first-child { color:#F2A93B; }
  .reuse-row span:last-child { color:#3FD6C8; text-align:right; }
  .reuse-arrow { color:var(--dark-dim); font-size:13px; }
  .fine hr { border:none; border-top:1px solid var(--dark-line); margin:24px 0; }
  .fine p { font-size:14px; color:var(--dark-dim); }
  .fine p b { color:#F4F6FB; }


  /* panel módulo RGPD */
  .rgpd-wrap::before { content:""; position:absolute; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle, rgba(242,169,59,.14), transparent 62%); top:-260px; left:-180px; }
  .rgpd-wrap .sec-cap { color:#F2A93B; }
  .rgpd-wrap .ia-row .art { color:#F2A93B; background:transparent; border:1px solid rgba(242,169,59,.38); }
  .feat-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 32px; }
  .feat-chips span { font-size:12.5px; font-weight:500; color:#C4D2DE; border:1px solid var(--dark-line); border-radius:100px; padding:6px 14px; }
  .docs-card { background:transparent; border:1px solid var(--dark-line); border-radius:20px; padding:38px 36px; }
  .docs-card h4 { font-size:12px; letter-spacing:1.8px; text-transform:uppercase; color:#2BC5B8; font-weight:650; margin-bottom:20px; }
  .docs-card ul { list-style:none; display:grid; gap:2px; }
  .docs-card li { font-size:14.5px; color:#C4D2DE; padding:9px 0; border-bottom:1px solid var(--dark-line); }
  .docs-card li:last-child { border-bottom:none; }
  .docs-card li::before { content:"✓"; color:#2BC5B8; font-weight:800; margin-right:12px; }
  .docs-card .foot { font-size:12.5px; color:var(--dark-dim); margin-top:18px; }
  .ia-shots { display:grid; grid-template-columns:1fr 1fr; gap:22px 18px; margin-top:56px; position:relative; z-index:2; }
  .ia-shots > div:first-child { grid-column:1 / -1; }
  @media (max-width:900px){ .ia-shots { grid-template-columns:1fr; } }
  .ia-shots .shot { border:1px solid var(--dark-line); border-radius:14px; overflow:hidden; box-shadow:var(--sh-dark); background:#fff; }
  .ia-shots .shot img { display:block; width:100%; height:auto; }
  .ia-shots .shot-cap { font-size:12.5px; color:var(--dark-dim); text-align:center; margin:6px 0 18px; }
  /* como funciona */
  .steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .step { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:32px 30px; box-shadow:var(--sh-sm); position:relative; }
  .step-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:18px; }
  .step-ico { width:46px; height:46px; border-radius:14px; background:rgba(0,179,164,.10); border:1px solid rgba(0,179,164,.3); color:var(--blue-d); display:flex; align-items:center; justify-content:center; }
  .step-ico svg { width:23px; height:23px; }
  .step-ico.si1 { background:rgba(0,179,164,.10); border-color:rgba(0,179,164,.30); color:#00857A; }
  .step-ico.si2 { background:rgba(242,169,59,.12); border-color:rgba(242,169,59,.38); color:#B4700E; }
  .step-ico.si3 { background:rgba(22,32,58,.07); border-color:rgba(22,32,58,.25); color:var(--ink); }
  .steps { position:relative; }
  .steps::before { content:""; position:absolute; left:12%; right:12%; top:55px; border-top:2px dashed rgba(0,179,164,.38); }
  .step { position:relative; z-index:1; }
  .step-when { display:inline-block; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:4px 10px; border-radius:100px; margin-bottom:10px; }
  .step-when.sw1 { color:#00857A; background:rgba(0,179,164,.10); }
  .step-when.sw2 { color:#B4700E; background:rgba(242,169,59,.14); }
  .step-when.sw3 { color:var(--ink); background:rgba(22,32,58,.08); }
  @media (max-width:960px){ .steps::before { display:none; } }
  .step-ghost { font-size:44px; font-weight:800; letter-spacing:-2px; line-height:1; color:rgba(22,32,58,.08); user-select:none; }
  .step .num { width:38px; height:38px; border-radius:100px; background:transparent; border:1.5px solid var(--blue); color:var(--blue); font-weight:700; font-size:15px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
  .step h3 { font-size:17px; font-weight:650; letter-spacing:-.2px; margin-bottom:10px; }
  .step p { font-size:14.5px; color:var(--body); }
  .step ul { list-style:none; margin-top:12px; }
  .step li { font-size:13.5px; color:var(--body); padding:4px 0; }
  .step li::before { content:"✓ "; color:var(--ok); font-weight:700; }

  /* beneficios / sanciones */
  .risk-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; position:relative; }
  .risk-fines { display:grid; gap:14px; }
  .rfine { display:flex; justify-content:space-between; align-items:center; gap:16px; background:transparent; border:1px solid var(--dark-line); border-radius:12px; padding:16px 20px; }
  .rfine .t { font-size:14.5px; font-weight:550; }
  .rfine .v { font-size:17px; font-weight:750; letter-spacing:-.4px; white-space:nowrap; }
  .rfine .v.warn { color:#F2A93B; }
  .rfine .v.red { color:#F87171; }
  .risk-note { font-size:13px; color:var(--dark-dim); margin-top:14px; }
  .protect { background:transparent; border:1px solid var(--dark-line); border-radius:20px; padding:36px 34px; text-align:center; }
  .protect .vs { font-size:12px; letter-spacing:1.6px; text-transform:uppercase; color:var(--dark-dim); margin-bottom:10px; }
  .protect .amt { font-size:52px; font-weight:800; letter-spacing:-2.4px; background:linear-gradient(92deg,#3FD6C8,#22D3EE); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .protect .cap2 { color:var(--dark-dim); font-size:13.5px; margin-top:6px; }
  .protect .btn { margin-top:24px; }

  /* precios */
  .prices { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
  .pcard { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:36px 32px; display:flex; flex-direction:column; position:relative; box-shadow:var(--sh-sm); }
  .pcard.hot { border:2px solid #F2A93B; box-shadow:var(--sh-md); }
  .pcard .flag { position:absolute; top:-14px; left:50%; transform:translateX(-50%); font-size:11.5px; font-weight:650; color:var(--ink); background:#F2A93B; box-shadow:0 2px 8px rgba(242,169,59,.25); padding:6px 16px; border-radius:100px; white-space:nowrap; box-shadow:0 8px 22px rgba(0,179,164,.3); }
  .pcard .name { font-size:12.5px; font-weight:650; letter-spacing:1.6px; text-transform:uppercase; color:var(--body); }
  .pcard .from { font-size:12px; color:#8B92AC; margin-top:16px; }
  .pcard .amt { font-size:52px; font-weight:750; letter-spacing:-2.4px; }
  .pcard .amt small { font-size:15.5px; font-weight:500; color:var(--body); letter-spacing:0; }
  .pcard ul { list-style:none; margin:14px 0 16px; flex:1; }
  .pcard li { font-size:14px; color:var(--body); padding:5px 0 5px 24px; position:relative; }
  .pcard li::before { content:"✓"; color:var(--ok); font-weight:800; position:absolute; left:0; }
  .pcard .addon { margin:0 0 16px; font-size:13px; color:var(--blue-d); background:transparent; border:1px dashed #BFDBD6; border-radius:12px; padding:12px 15px; }
  .pnote { text-align:center; font-size:13px; color:#8B92AC; margin-top:20px; }
  .duo { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:36px; }
  .duo .box { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:30px 34px; display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; box-shadow:var(--sh-sm); }
  .duo h4 { font-size:17.5px; font-weight:650; letter-spacing:-.2px; margin:8px 0 4px; }
  .duo p { font-size:13.5px; color:var(--body); }
  .duo a.go { font-size:14px; font-weight:650; color:var(--blue); white-space:nowrap; }
  .duo a.go:hover { color:var(--blue-d); }

  /* testimonios */
  .tauthor { display:flex; align-items:center; gap:12px; }

  /* FAQ */
  .faq-list { max-width:760px; margin:0 auto; display:grid; gap:12px; }
  .faq-item { background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--sh-sm); }
  .faq-q { width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; text-align:left; background:none; border:none; font-family:inherit; font-size:15.5px; font-weight:600; color:var(--ink); padding:19px 24px; cursor:pointer; }
  .faq-chevron { transition:.2s; color:#8B92AC; }
  .faq-a { max-height:0; overflow:hidden; transition:max-height .3s ease, padding .3s ease; padding:0 24px; font-size:14.5px; color:var(--body); }
  .faq-item.open .faq-a { max-height:400px; padding:0 24px 20px; }
  .faq-item.open .faq-chevron { transform:rotate(180deg); }

  /* noticias */
  .news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .ncard { background:var(--card); border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:var(--sh-sm); transition:.18s; }
  .ncard:hover { transform:translateY(-3px); box-shadow:var(--sh-md); }
  .nimg { height:130px; display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--line); }
  .nimg svg { width:44px; height:44px; }
  .nimg-foto img { width:100%; height:100%; object-fit:cover; display:block; }
  .nbody { padding:20px 22px; }
  .ntag { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--blue); margin-bottom:8px; }
  .ntitle { font-size:15px; font-weight:650; line-height:1.4; margin-bottom:8px; letter-spacing:-.2px; }
  .ndate { font-size:12.5px; color:#8B92AC; }

  /* demo form */
  .demo-wrap::before { content:""; position:absolute; width:640px; height:640px; border-radius:50%; background:radial-gradient(circle, rgba(0,179,164,.3), transparent 62%); bottom:-320px; left:-200px; }
  .demo-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:center; position:relative; }
  .demo-grid .chip { background:transparent; border-color:rgba(255,255,255,.28); color:#BFE9E3; }
  .demo-grid p.l { color:var(--dark-dim); margin-bottom:26px; }
  .demo-perks { display:grid; gap:16px; }
  .perk { display:flex; gap:14px; align-items:flex-start; }
  .perk .pic { width:38px; height:38px; flex-shrink:0; border-radius:12px; background:transparent; border:1px solid rgba(0,179,164,.3); color:#3FD6C8; display:flex; align-items:center; justify-content:center; }
  .perk .pic svg { width:18px; height:18px; }
  .perk h4 { font-size:15px; font-weight:650; }
  .perk p { font-size:13.5px; color:var(--dark-dim); }
  .form-card { background:#fff; border-radius:20px; padding:38px 36px; color:var(--ink); box-shadow:var(--sh-dark); }
  .form-card h3 { font-size:20px; font-weight:700; letter-spacing:-.4px; margin-bottom:6px; }
  .form-card .fsub { font-size:13.5px; color:var(--body); margin-bottom:22px; }
  .frow { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
  .fgroup { margin-bottom:12px; }
  .fgroup label { display:block; font-size:12.5px; font-weight:600; margin-bottom:5px; }
  .fgroup input, .fgroup select, .fgroup textarea { width:100%; resize:vertical; font-family:inherit; font-size:14px; padding:11px 13px; border:1px solid var(--line); border-radius:12px; outline:none; transition:.15s; background:#F3F6FB; color:var(--ink); }
  .fgroup input:focus, .fgroup select:focus, .fgroup textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,179,164,.12); }
  .fcheck { display:flex; gap:9px; align-items:flex-start; font-size:12px; color:var(--body); margin:14px 0 16px; }
  .fcheck a { color:var(--blue); font-weight:600; }
  .form-card .btn { width:100%; }

  footer { border-top:1px solid var(--line); padding:56px 0 40px; background:#fff; }
  .foot-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:44px; margin-bottom:40px; }
  .foot-brand img { height:44px; margin-bottom:14px; }
  .foot-brand p { font-size:13.5px; color:var(--body); max-width:280px; }
  .fcol h4 { font-size:13px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; margin-bottom:14px; }
  .fcol ul { list-style:none; }
  .fcol li { padding:5px 0; }
  .fcol a { font-size:13.5px; color:var(--body); }
  .fcol a:hover { color:var(--blue); }
  .fcontact { font-size:13.5px; color:var(--body); display:grid; gap:10px; }
  .foot-bottom { border-top:1px solid var(--line); padding-top:22px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:#8B92AC; }
  .foot-bottom .links { display:flex; gap:22px; }

  /* floating WA + toTop */
  .float-wa { position:fixed; right:22px; bottom:22px; z-index:70; width:54px; height:54px; border-radius:100px; background:#22C55E; color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; box-shadow:0 12px 30px rgba(34,197,94,.4); transition:.15s; }
  .float-wa:hover { transform:scale(1.07); }
  #backToTop { position:fixed; right:22px; bottom:88px; z-index:70; width:44px; height:44px; border-radius:100px; background:var(--ink); color:#fff; border:none; font-size:17px; cursor:pointer; opacity:0; pointer-events:none; transition:.2s; }
  #backToTop.vis { opacity:1; pointer-events:auto; }
  .ck-dec { background:rgba(255,255,255,.1); color:#BFE9E3; }
  .ck-acc { background:var(--blue); color:#fff; }

  /* tarjetas claras: relieve sutil en la familia pizarra */
  .fcard, .pcard, .ncard, .step, .faq-item, .duo .box, .rcard, .capture, .form-card {
    background:linear-gradient(180deg, #FCFDFF 0%, #F0F4FA 100%);
    border-color:#D8E0EC;
    box-shadow:0 1px 0 rgba(255,255,255,.9) inset, var(--sh-sm);
  }
  .form-card { background:linear-gradient(180deg,#FFFFFF 0%, #F4F7FC 100%); }
  .ok-circ { stroke-dasharray:145; stroke-dashoffset:145; animation:okDraw .6s ease forwards; }
  .ok-tick { stroke-dasharray:36; stroke-dashoffset:36; animation:okDraw .35s ease .45s forwards; }
  @keyframes okDraw { to { stroke-dashoffset:0; } }
  /* reveal */
  .rv { opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease; }
  .rv.in { opacity:1; transform:none; }

  @media (max-width:960px){
    .sectors { grid-template-columns:1fr; }
    .scard { display:grid; grid-template-columns:42px 1fr; gap:10px 14px; align-items:start; }
    .scard .tx { min-width:0; }
    .scard .stag { grid-column:2; justify-self:start; }
    .fgrid, .prices, .steps, .news-grid, .mock-grid { grid-template-columns:1fr; }
    .ia-grid, .duo, .risk-grid, .demo-grid, .foot-grid { grid-template-columns:minmax(0,1fr); }
    .dark-panel { padding:44px 22px !important; }
    .rfine .v { white-space:normal; }
    .nav-links, .nav-cta-desk { display:none; }
    .nav-mobile-toggle { display:block; }
    .mobile-menu.open { display:flex; flex-direction:column; gap:4px; padding:12px 24px 20px; background:#fff; border-bottom:1px solid var(--line); }
    .mobile-menu a { padding:10px 0; font-weight:600; font-size:15px; }
    .frow { grid-template-columns:1fr; }
    /* barra superior compacta: solo el aviso AI Act */
    .topbar { font-size:12px; padding:8px 14px; }
    .topbar > span:not(.warn-txt), .topbar > .sep { display:none; }
    /* hero contenido */
    .hero { padding:64px 0 64px; }
    .hero h1 { font-size:clamp(34px,10vw,44px); letter-spacing:-1.6px; }
    .hero p.lead { font-size:16px; }
    .sec-cap { font-size:14px; letter-spacing:1.6px; }
    .container { padding:0 22px; }
    /* email capture apilado */
    .capture { flex-direction:column; padding:8px; }
    .capture input { padding:12px 14px; text-align:center; }
    .capture .btn { width:100%; }
    .hero-notes { gap:10px 18px; }
    /* paneles y tarjetas */
    .section { padding:64px 0; }
    .duo .box { flex-direction:column; align-items:flex-start; }
    .risk-grid { text-align:center; }
    .risk-grid .sec-cap, .risk-grid h2 { display:block; text-align:center; }
    .rfine { flex-direction:column; align-items:center; text-align:center; gap:6px; }
    .risk-note { text-align:center; }
    .fine .big { font-size:56px; }
    .fine { padding:30px 20px; }
    .fine-reuse .big { font-size:32px; letter-spacing:-1px; }
    .reuse-row { grid-template-columns:1fr; gap:2px; font-size:12.5px; padding:9px 12px; }
    .reuse-arrow { display:none; }
    .reuse-row span:last-child { text-align:left; }
    .protect .amt { font-size:40px; }
    .foot-bottom { flex-direction:column; align-items:flex-start; }
    .float-wa { right:16px; bottom:16px; width:48px; height:48px; }
    #backToTop { right:16px; bottom:76px; }
    .mock-caption { padding:0 10px; }
    .regions-note { padding:0 10px; }
  }

  /* Contact Form 7: que herede el aspecto del formulario propio */
  .wpcf7-form-control-wrap { display:block; }
  .wpcf7 .fgroup { margin-bottom:16px; }
  .wpcf7-not-valid-tip { display:block; font-size:12.5px; color:var(--red); margin-top:5px; }
  .wpcf7 form .wpcf7-response-output { margin:16px 0 0; padding:12px 16px; border-radius:12px; font-size:14px; border:1px solid var(--line); }
  .wpcf7 form.sent .wpcf7-response-output { border-color:rgba(0,179,164,.5); color:var(--blue-d); background:rgba(0,179,164,.07); }
  .wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color:rgba(225,29,72,.4); color:var(--red); background:rgba(225,29,72,.05); }
  .wpcf7-list-item { margin:0; }
  .wpcf7-acceptance label { display:flex; gap:9px; align-items:flex-start; font-size:13px; color:var(--body); }
  .wpcf7-spinner { margin:0 0 0 10px; }
  /* fichas de país: cabecera navy de edición */
  .rcard { padding:0; overflow:hidden; }
  .rhead { background:#E9EEF6; border-bottom:2px solid var(--blue); padding:22px 28px 18px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
  .rhead-l { display:flex; align-items:center; gap:14px; }
  .rmark { height:40px; }
  .rname { color:var(--ink); font-size:19px; font-weight:700; letter-spacing:-.3px; }
  .rsub { color:#7C8AA5; font-size:12px; font-weight:600; letter-spacing:.6px; margin-top:2px; }
  .rflag svg { display:block; border-radius:4px; box-shadow:var(--sh-xs); }
  .rbody { padding:22px 28px 26px; display:flex; flex-direction:column; flex:1; }
  .seccion-suelo { background:linear-gradient(180deg,#DDE7EF,#E6EDF3); border-top:1px solid #D2DCE8; border-bottom:1px solid #D2DCE8; }
  .mock-media { position:relative; }
  .mock-media [hidden] { display:none !important; }
  video.mock-shot { aspect-ratio:1840/984; object-fit:cover; background:#0B1226; }
  .mock-play { position:absolute; top:50%; left:50%; width:78px; height:78px; margin:-39px 0 0 -39px; border-radius:50%; border:none; cursor:pointer; background:var(--blue); color:#fff; box-shadow:0 12px 34px rgba(0,179,164,.45), 0 0 0 10px rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; transition:.18s; }
  .mock-play svg { width:34px; height:34px; margin-left:4px; }
  .mock-play:hover { transform:scale(1.07); background:var(--blue-d); }
  /* test AI Act */
  .quiz { max-width:860px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:20px; padding:28px 32px; box-shadow:var(--sh-sm); }
  .quiz-q { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:16px 0; border-bottom:1px dashed var(--line); font-size:14.5px; color:var(--ink); }
  .quiz-q:last-of-type { border-bottom:none; }
  .quiz-opts { display:flex; flex-wrap:wrap; gap:8px; flex-shrink:0; }
  .quiz-opts label { cursor:pointer; }
  .quiz-opts input { position:absolute; opacity:0; width:0; height:0; }
  .quiz-opts i { font-style:normal; display:inline-block; white-space:nowrap; padding:7px 16px; border-radius:100px; border:1px solid var(--line); background:#fff; font-size:13px; font-weight:600; color:var(--body); transition:.15s; }
  .quiz-opts input:checked + i { background:var(--blue); border-color:var(--blue); color:#fff; }
  .quiz-foot { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:22px; }
  .quiz-nota { font-size:12.5px; color:#8B92AC; }
  .aia-cal { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; max-width:1140px; margin:26px auto 0; }
  .aia-cal div { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 16px; font-size:13px; line-height:1.5; color:var(--body); }
  .aia-cal b { display:block; font-size:11.5px; letter-spacing:1px; text-transform:uppercase; color:var(--blue-d); margin-bottom:5px; }
  .aia-cal .now { border-color:rgba(242,169,59,.5); }
  .aia-cal .now b { color:#B4700E; }
  @media (max-width:1000px){ .aia-cal { grid-template-columns:repeat(3,1fr); } }
  @media (max-width:700px){ .aia-cal { grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .aia-cal { grid-template-columns:1fr; } }
  .quiz-res { margin-top:22px; padding:22px 24px; border-radius:14px; border:1px solid var(--line); background:#fff; }
  .quiz-res h4 { font-size:17px; font-weight:700; margin-bottom:8px; }
  .quiz-res p { font-size:14px; color:var(--body); margin-bottom:8px; }
  .quiz-res.r-prohib { border-color:rgba(225,29,72,.4); } .quiz-res.r-prohib h4 { color:var(--red); }
  .quiz-res.r-alto { border-color:rgba(242,169,59,.6); } .quiz-res.r-alto h4 { color:#B4700E; }
  .quiz-res.r-lim { border-color:rgba(0,179,164,.45); } .quiz-res.r-lim h4 { color:var(--blue-d); }
  .quiz-res.r-fuera h4 { color:var(--ink); }
  .quiz-res a.go { font-weight:650; color:var(--blue); }
  @media (max-width:700px){ .quiz-q { flex-direction:column; align-items:flex-start; gap:10px; } .quiz { padding:20px 18px; } }
  /* seguridad y confianza */
  .trust-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  @media (max-width:960px){ .trust-grid { grid-template-columns:1fr; } }
  /* despachos */
  .desp-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:32px; align-items:start; }
  .desp-list { list-style:none; padding:0; margin:0; }
  .desp-list li { font-size:14.5px; color:var(--body); padding:12px 0 12px 30px; position:relative; border-bottom:1px dashed var(--line); }
  .desp-list li::before { content:"✓"; position:absolute; left:2px; color:var(--blue); font-weight:700; }
  .desp-list b { color:var(--ink); }
  .desp-card { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:26px 26px 22px; box-shadow:var(--sh-sm); }
  .desp-row { display:flex; justify-content:space-between; gap:12px; font-size:14px; color:var(--body); padding:10px 0; border-bottom:1px dashed var(--line); }
  .desp-row b { color:var(--ink); white-space:nowrap; }
  .desp-card .btn { width:100%; margin-top:18px; }
  .desp-nota { font-size:12.5px; color:#8B92AC; margin-top:12px; }
  @media (max-width:960px){ .desp-grid { grid-template-columns:1fr; } }
  /* precios: dos audiencias en un capítulo */
  .sec-head .aud { display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; color:var(--blue-d); background:rgba(0,179,164,.10); border-radius:100px; padding:5px 14px; margin:4px 0 6px; }
  .despachos-sub { margin-top:34px; padding-top:34px; border-top:1px solid var(--line); }
  .despachos-sub .h2-sub { font-size:clamp(24px,3vw,34px); font-weight:720; letter-spacing:-.8px; line-height:1.15; margin:12px 0 12px; }
  /* comparativa «por qué DPS» */
  .cmp { max-width:980px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:var(--sh-sm); }
  .cmp-head, .cmp-row { display:grid; grid-template-columns:1fr 1.1fr 1.9fr; }
  .cmp-head { background:#E9EEF6; font-size:11.5px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--body); }
  .cmp-head > div, .cmp-row > div { padding:16px 20px; }
  .cmp-row { border-top:1px solid var(--line); font-size:14px; color:var(--body); }
  .cmp-k { font-weight:650; color:var(--ink); }
  .cmp-dps { background:rgba(0,179,164,.07); color:var(--ink); border-left:1px solid rgba(0,179,164,.3); }
  .cmp-head .cmp-dps { color:var(--blue-d); }
  .cmp-nota { text-align:center; font-size:14px; color:var(--body); max-width:720px; margin:22px auto 0; }
  @media (max-width:760px){ .cmp-head { display:none; } .cmp-row { grid-template-columns:1fr; } .cmp-row > div { padding:10px 18px; } .cmp-k { padding-top:16px; } .cmp-dps { border-left:none; padding-bottom:16px; } }
  .pcard .amt { white-space:nowrap; }
  .despachos-sub .prices { margin-top:4px; }
  .pcard .pvar { font-size:12.5px; color:var(--body); margin:-8px 0 6px; line-height:1.5; }
  .pcard .pvar b { color:var(--ink); font-weight:650; }
  .pcard li.no { color:#8B92AC; }
  .pcard li.no::before { content:"–"; color:#B7BFD6; }
  .pcard .pyear { font-size:12.5px; color:#8B92AC; margin:-10px 0 8px; }
  .pcard .pyear b { color:var(--blue-d); font-weight:650; }
  .pcard .pvar { margin-top:0; }
  .pcard .addon { padding:10px 14px; font-size:13px; }
  .pcard { padding:30px 28px; }
  .desp-diff { max-width:none; margin:-6px 0 34px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px 26px; }
  .desp-diff-t { font-size:11.5px; font-weight:700; letter-spacing:1.3px; text-transform:uppercase; color:var(--blue-d); margin-bottom:14px; text-align:center; }
  .desp-diff ul { list-style:none; margin:0; padding:0; columns:2; column-gap:40px; }
  .desp-diff li { font-size:14px; color:var(--body); padding-left:18px; position:relative; break-inside:avoid; margin-bottom:6px; }
  .desp-diff li::before { content:"–"; position:absolute; left:2px; color:#B7BFD6; }
  .desp-diff b { color:var(--ink); font-weight:650; }
  @media (max-width:760px){ .desp-diff ul { columns:1; } }
  /* quién está detrás */
  .who-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:980px; margin:0 auto; }
  .who-card { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:30px 32px; box-shadow:var(--sh-sm); }
  .who-name { font-size:19px; font-weight:700; letter-spacing:-.3px; }
  .who-role { font-size:12px; font-weight:700; letter-spacing:1.1px; text-transform:uppercase; color:var(--blue-d); margin:6px 0 12px; }
  .who-card p { font-size:14.5px; color:var(--body); margin-bottom:14px; }
  .who-card a.go { font-size:14px; font-weight:650; color:var(--blue); }
  .who-logo { height:40px; margin-bottom:12px; }
  @media (max-width:760px){ .who-grid { grid-template-columns:1fr; } }
  /* equipo */
  .team { max-width:980px; margin:28px auto 0; }
  .team-t { text-align:center; font-size:11.5px; font-weight:700; letter-spacing:1.3px; text-transform:uppercase; color:var(--blue-d); margin-bottom:18px; }
  .team-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
  .tm { text-align:center; }
  .tm img { width:104px; height:104px; border-radius:50%; object-fit:cover; display:block; margin:0 auto 10px; border:3px solid #fff; box-shadow:var(--sh-md); }
  .tm-n { font-size:15px; font-weight:700; letter-spacing:-.2px; }
  .tm-r { font-size:12.5px; color:var(--body); margin-top:3px; }
  .team-nota { text-align:center; font-size:12.5px; color:#8B92AC; margin-top:16px; }
  .team-nota a { color:var(--blue); font-weight:600; }
  @media (max-width:760px){ .team-grid { grid-template-columns:1fr 1fr; } }
  .who-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:14px 0 16px; }
  .who-stats div { background:rgba(0,179,164,.07); border:1px solid rgba(0,179,164,.3); border-radius:12px; padding:12px 10px; text-align:center; }
  .who-stats b { display:block; font-size:24px; font-weight:800; letter-spacing:-1px; color:var(--ink); line-height:1.1; }
  .who-stats span { display:block; font-size:11.5px; color:var(--body); margin-top:4px; line-height:1.3; }
  /* banda de cifras (formato teselas sobre navy) */
  .cifras { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; max-width:980px; margin:26px auto 0; padding:26px; border-radius:24px; background:linear-gradient(165deg,#1E2A4A,#10192E); border:1px solid rgba(0,179,164,.3); }
  .cif { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:22px 14px; text-align:center; color:#fff; }
  .cif-ic { width:40px; height:40px; margin:0 auto 10px; color:#F2A93B; }
  .cif-ic svg { width:40px; height:40px; }
  .cif b { display:block; font-size:38px; font-weight:800; letter-spacing:-1.5px; line-height:1.05; }
  .cif span { display:block; font-size:12.5px; color:#B7C4D6; margin-top:8px; line-height:1.35; }
  @media (max-width:760px){ .cifras { grid-template-columns:1fr 1fr; padding:16px; } .cif b { font-size:30px; } }
  /* cómo funciona: línea de proceso moderna sobre panel navy */
  #como-funciona .steps { position:relative; padding:34px 0 0; gap:22px; }
  #como-funciona .steps::before { content:""; position:absolute; left:8%; right:8%; top:34px; border-top:2px solid rgba(0,179,164,.28); z-index:1; }
  #como-funciona .step { position:relative; z-index:2; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:var(--sh-md); transition:transform .2s, box-shadow .2s; }
  #como-funciona .step:hover { transform:translateY(-4px); box-shadow:var(--sh-lg); }
  #como-funciona .step-head { justify-content:flex-start; margin-bottom:14px; }
  #como-funciona .step-ghost { position:absolute; top:-17px; left:50%; transform:translateX(-50%); font-size:13px; font-weight:800; letter-spacing:0; color:#fff; background:linear-gradient(180deg,#00C2B2,#00A396); width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 5px var(--bg), 0 8px 20px rgba(0,179,164,.35); }
  #como-funciona .step-ico { box-shadow:var(--sh-sm); }
  @media (max-width:960px){ #como-funciona .steps { padding:0; } #como-funciona .steps::before { display:none; } #como-funciona .step-ghost { display:none; } }
  .who-grid { grid-template-columns:1fr; }
  .who-wide { padding:34px 48px; text-align:center; }
  .who-wide .who-logo { margin:0 auto 12px; }
  .who-wide p { max-width:820px; margin-left:auto; margin-right:auto; }
  .who-wide .who-sub { text-align:left; max-width:860px; margin-left:auto; margin-right:auto; }
  .who-wide .who-links { justify-content:center; }
  .who-sub { margin:18px 0 16px; padding:18px 22px; border-radius:14px; background:rgba(0,179,164,.07); border:1px solid rgba(0,179,164,.3); }
  .who-sub-t { font-size:15px; font-weight:700; letter-spacing:-.2px; margin-bottom:6px; }
  .who-sub-t span { font-weight:600; font-size:12.5px; letter-spacing:.3px; text-transform:none; color:var(--blue-d); }
  .who-sub p { margin:0; }
  .who-sub { display:flex; align-items:center; gap:26px; }
  .who-sub-txt { flex:1; min-width:0; }
  .who-sub-logo { flex:none; width:128px; height:auto; }
  @media (max-width:700px){ .who-sub { flex-direction:column; align-items:flex-start; gap:14px; } .who-sub-logo { width:110px; order:-1; } }
  .who-links { display:flex; gap:26px; flex-wrap:wrap; }
  .cmp-k { display:flex; align-items:center; gap:10px; }
  .cmp-ic { flex:none; width:34px; height:34px; border-radius:12px; background:rgba(0,179,164,.10); border:1px solid rgba(0,179,164,.3); color:var(--blue-d); display:inline-flex; align-items:center; justify-content:center; }
  .cmp-ic svg { width:18px; height:18px; }
  .cmp-row > div:nth-child(2) { padding-left:40px; position:relative; }
  .cmp-row > div:nth-child(2)::before { content:"✕"; position:absolute; left:20px; top:17px; color:#C3CBDC; font-weight:700; font-size:13px; }
  .cmp-row > .cmp-dps { padding-left:40px; position:relative; }
  .cmp-row > .cmp-dps::before { content:"✓"; position:absolute; left:20px; top:16px; color:var(--blue); font-weight:800; font-size:14px; }
  @media (max-width:760px){ .cmp-row > div:nth-child(2), .cmp-row > .cmp-dps { padding-left:38px; } }
  /* que el menú fijo no tape el título al saltar a un ancla */
  section[id], [id="despachos"], [id="clientes"] { scroll-margin-top:96px; }
