
  :root {
    --navy: #152352;
    --navy-dark: #0d1836;
    --navy-deep: #0a1228;
    --navy-mid: #1e3370;
    --royal: #1c50c8;          /* azul de la balanza del sello */
    --royal-light: #3b6fe0;
    --gold: #C9A227;
    --gold-bright: #F2B530;     /* dorado del sello */
    --gold-light: #e0be6a;
    --gold-dark: #9e7e1d;
    --white: #ffffff;
    --off-white: #f8f6f0;
    --light-gray: #f2f0ea;
    --mid-gray: #8a8880;
    --text-dark: #1a1a1a;
    --text-body: #3a3a3a;
    --red: #b8332a;
    --section-pad: 92px 0;
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; font-size: 16px; scroll-padding-top: 86px; }
  body {
    font-family: 'Lato', sans-serif; font-weight: 400;
    color: var(--text-body); background: var(--white); line-height: 1.7;
    overflow-x: hidden;
  }

  /* ─── TYPOGRAPHY ─── */
  /* text-wrap:balance evita palabras huérfanas en la última línea de los títulos;
     pretty + hyphens (con lang="es") da un justificado tipográfico limpio en párrafos. */
  h1, h2, h3, h4, h5 { font-family: 'Playfair Display', Georgia, serif; color: var(--navy); line-height: 1.18; text-wrap: balance; }
  h1 { font-size: clamp(2.2rem, 5vw, 3.7rem); font-weight: 800; }
  h2 { font-size: clamp(1.85rem, 3.5vw, 2.7rem); font-weight: 700; }
  h3 { font-size: 1.38rem; font-weight: 600; }
  h4 { font-size: 1.1rem; font-weight: 600; }
  p { margin-bottom: 1rem; text-align: justify; text-align-last: left; -webkit-hyphens: auto; hyphens: auto;
      -webkit-hyphenate-limit-before: 3; -webkit-hyphenate-limit-after: 2; hyphenate-limit-chars: 6 3 2; text-wrap: pretty; }
  a { color: #8a6c17; text-decoration: none; transition: color .2s; }
  a:hover { color: var(--navy); }
  strong { color: var(--navy); font-weight: 700; }

  /* ─── LAYOUT UTILS ─── */
  .container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
  .section { padding: var(--section-pad); }
  .section-alt { background: var(--off-white); padding: var(--section-pad); }
  .section-navy { background: var(--navy); padding: var(--section-pad); }
  .text-center { text-align: center; }
  .eyebrow {
    display: inline-block; font-size: .78rem; font-weight: 900;
    letter-spacing: .22em; text-transform: uppercase; color: var(--gold-dark);
    margin-bottom: 14px;
  }
  .eyebrow.light { color: var(--gold); }
  .gold-line { display: block; width: 64px; height: 3px; background: var(--gold); margin: 14px auto 28px; border-radius: 2px; }
  .gold-line-left { margin-left: 0; }
  .lead { color: #5b5b5b; font-size: 1rem; }

  .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    padding: 14px 30px; font-family: 'Lato', sans-serif; font-size: .9rem; font-weight: 900;
    letter-spacing: .08em; text-transform: uppercase; border-radius: 3px;
    cursor: pointer; transition: all .25s; border: 2px solid transparent; text-decoration: none;
    text-align: center;
  }
  .btn svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
  .btn-gold { background: var(--gold); color: var(--navy-dark); border-color: var(--gold); box-shadow: 0 6px 22px rgba(201,162,39,.28); }
  .btn-gold:hover { background: var(--gold-bright); color: var(--navy-dark); border-color: var(--gold-bright); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(201,162,39,.4); }
  .btn-outline { background: transparent; color: var(--white); border-color: rgba(255,255,255,.55); }
  .btn-outline:hover { background: var(--white); color: var(--navy); border-color: var(--white); }
  .btn-navy { background: var(--navy); color: var(--white); border-color: var(--navy); }
  .btn-navy:hover { background: var(--navy-mid); border-color: var(--navy-mid); color: var(--white); transform: translateY(-2px); }
  .btn-royal { background: var(--royal); color: #fff; border-color: var(--royal); box-shadow: 0 6px 22px rgba(28,80,200,.3); }
  .btn-royal:hover { background: var(--royal-light); border-color: var(--royal-light); color:#fff; transform: translateY(-2px); }
  .btn-ghost-gold { background: transparent; color: var(--gold-dark); border-color: var(--gold); }
  .btn-ghost-gold:hover { background: var(--gold); color: var(--navy-dark); }
  .btn-sm { padding: 11px 22px; font-size: .8rem; }

  /* ─── LOGO (imagen oficial incrustada, reutilizada por todo el sitio) ─── */
  .logo-img {
    background-image: url("assets/logo-jad.png");
    background-size: contain; background-repeat: no-repeat; background-position: center;
  }

  /* ─── COOKIE BANNER ─── */
  #cookie-banner {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
    background: var(--navy-deep); color: var(--white);
    padding: 18px 24px; display: flex; align-items: center;
    justify-content: space-between; gap: 18px; flex-wrap: wrap;
    font-size: .85rem; box-shadow: 0 -4px 24px rgba(0,0,0,.4);
    border-top: 2px solid var(--gold);
  }
  #cookie-banner.hidden { display: none; }
  #cookie-banner p { margin: 0; color: rgba(255,255,255,.85); max-width: 760px; }
  #cookie-banner a { color: var(--gold-light); text-decoration: underline; }
  .cookie-btns { display: flex; gap: 10px; flex-shrink: 0; }
  .cookie-btns button {
    padding: 9px 22px; border-radius: 3px; border: none; cursor: pointer;
    font-family: 'Lato', sans-serif; font-size: .8rem; font-weight: 900;
    letter-spacing: .06em; text-transform: uppercase;
  }
  .btn-accept { background: var(--gold); color: var(--navy-dark); }
  .btn-config { background: transparent; color: rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.35) !important; }
  .btn-reject { background: transparent; color: rgba(255,255,255,.65); border: 1px solid rgba(255,255,255,.25) !important; }

  /* ─── FLOATING WHATSAPP / BACK TOP ─── */
  .whatsapp-float {
    position: fixed; bottom: 86px; right: 24px; z-index: 998;
    width: 56px; height: 56px; border-radius: 50%; background: #25D366;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 6px 22px rgba(37,211,102,.45); color: #fff; transition: transform .2s;
  }
  .whatsapp-float:hover { transform: scale(1.08); color: #fff; }
  .whatsapp-float svg { width: 30px; height: 30px; }
  #back-top {
    position: fixed; bottom: 24px; right: 24px; z-index: 997;
    width: 46px; height: 46px; background: var(--navy); color: var(--white);
    border-radius: 3px; display: flex; align-items: center; justify-content: center;
    cursor: pointer; opacity: 0; pointer-events:none; transition: opacity .3s, background .2s; border: none;
  }
  #back-top.visible { opacity: 1; pointer-events:auto; }
  #back-top:hover { background: var(--gold); color: var(--navy-dark); }
  #back-top svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

  /* ─── TOP STRIP ─── */
  .top-strip { background: var(--navy-deep); padding: 9px 24px; position: relative; z-index: 1001; }
  .top-strip-inner { max-width: 1180px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
  .top-strip-left { font-size: .78rem; color: rgba(255,255,255,.55); letter-spacing: .04em; }
  .top-strip-right { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
  .top-strip a { color: rgba(255,255,255,.78); font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; transition: color .2s; display: inline-flex; align-items: center; gap: 6px; }
  .top-strip a:hover { color: var(--gold); }
  .top-strip svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }

  /* ─── NAVBAR ─── */
  #navbar {
    position: sticky; top: 0; left: 0; right: 0; z-index: 1000;
    background: var(--navy-dark); transition: background .35s, box-shadow .35s, padding .3s;
    box-shadow: 0 2px 18px rgba(0,0,0,.18);
  }
  #navbar.scrolled { box-shadow: 0 4px 26px rgba(0,0,0,.4); }
  .nav-inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; height: 76px; }
  .nav-logo { display: flex; align-items: center; gap: 13px; text-decoration: none; }
  .nav-logo-img { width: 66px; height: 66px; flex-shrink: 0; filter: drop-shadow(0 2px 4px rgba(0,0,0,.3)); }
  .nav-logo-text { display: flex; flex-direction: column; }
  .nav-logo-name { font-family: 'Playfair Display', serif; font-size: 1.12rem; font-weight: 800; color: var(--white); line-height: 1.05; letter-spacing: .04em; }
  .nav-logo-sub { font-size: .64rem; color: var(--gold); letter-spacing: .22em; text-transform: uppercase; font-weight: 700; margin-top: 2px; }
  .nav-links { display: flex; align-items: center; gap: 24px; list-style: none; }
  .nav-links > li > a {
    color: rgba(255,255,255,.82); font-size: .82rem; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase; text-decoration: none;
    transition: color .2s; position: relative; padding: 6px 0; display:inline-block;
  }
  .nav-links > li > a::after { content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px; background: var(--gold); transform: scaleX(0); transition: transform .25s; }
  .nav-links > li > a:hover { color: var(--white); }
  .nav-links > li > a:hover::after { transform: scaleX(1); }
  .nav-links a.reg-link { color: var(--gold-bright); }
  .nav-links a.reg-link::after { background: var(--gold-bright); transform: scaleX(1); height: 2px; }
  .nav-cta { margin-left: 6px; }

  /* ─── DROPDOWN SERVICIOS ─── */
  .nav-links li.has-dropdown { position: relative; }
  .nav-links > li.has-dropdown > a { display: inline-flex; align-items: center; gap: 4px; }
  .dd-caret { font-size: .62rem; opacity: .65; transition: transform .25s; display: inline-block; line-height: 1; }
  .has-dropdown:hover .dd-caret, .has-dropdown:focus-within .dd-caret { transform: rotate(180deg); }
  .dropdown {
    position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(8px);
    min-width: 270px; background: var(--navy-dark); border: 1px solid rgba(201,162,39,.35);
    border-top: 3px solid var(--gold); border-radius: 0 0 8px 8px; list-style: none;
    padding: 8px 0; box-shadow: 0 18px 48px rgba(0,0,0,.45);
    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity .22s, transform .22s, visibility .22s; z-index: 1200;
  }
  .has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0);
  }
  .dropdown::before { content: ''; position: absolute; top: -17px; left: 0; right: 0; height: 17px; }
  .dropdown li a {
    display: block; padding: 11px 22px; color: rgba(255,255,255,.82); font-size: .8rem;
    font-weight: 700; letter-spacing: .04em; text-decoration: none; text-transform: none;
    border-left: 3px solid transparent; transition: background .2s, color .2s, border-color .2s;
  }
  .dropdown li a:hover { background: rgba(201,162,39,.12); color: var(--gold-bright); border-left-color: var(--gold); }
  .dropdown li:first-child a { color: var(--gold); }
  .mobile-menu .mm-sub a { padding-left: 22px; font-size: .82rem; color: rgba(255,255,255,.6); text-transform: none; letter-spacing: .03em; }
  .mobile-menu .mm-sub a:hover { color: var(--gold); }

  /* ─── TARJETAS DE SERVICIO EXPANDIDAS (acordeones) ─── */
  .srv-wide { grid-column: 1 / -1; }
  details.srv-acc { border: 1px solid #e8e4d8; border-radius: 7px; margin-top: 12px; background: #fcfbf7; overflow: hidden; }
  details.srv-acc summary {
    cursor: pointer; list-style: none; padding: 15px 20px; display: flex; align-items: center; gap: 12px;
    font-weight: 900; font-size: .9rem; color: var(--navy); letter-spacing: .02em; user-select: none;
  }
  details.srv-acc summary::-webkit-details-marker { display: none; }
  details.srv-acc summary::after { content: '+'; margin-left: auto; font-size: 1.35rem; color: var(--gold); font-weight: 300; transition: transform .25s; }
  details.srv-acc[open] summary::after { transform: rotate(45deg); }
  details.srv-acc[open] summary { border-bottom: 1px solid #e8e4d8; background: #fff; }
  /* Acordeones sobre fondo azul marino (Autónomos y Sociedades): sin raya blanca al abrir */
  #fiscal details.srv-acc summary { color: #fff; }
  #fiscal details.srv-acc[open] summary { background: rgba(255,255,255,.07); border-bottom-color: rgba(255,255,255,.16); }
  #fiscal .srv-acc-body { color: rgba(255,255,255,.85); }
  #fiscal .srv-acc-body li { color: rgba(255,255,255,.82); }
  @media (max-width: 600px) {
    #srv-autonomos { padding: 22px 16px !important; }
    #srv-autonomos h3 { font-size: 1.28rem !important; }
    #srv-autonomos details.srv-acc summary { font-size: .92rem; padding: 14px 16px; }
    #srv-autonomos .srv-acc-body { padding: 16px; }
    .srv-banner { padding: 24px 18px !important; }
  }
  .srv-acc-body { padding: 18px 22px 22px; font-size: .87rem; color: #555; line-height: 1.7; }
  .srv-acc-body h6 { font-family: 'Lato'; font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-dark); margin: 14px 0 6px; }
  .srv-acc-body h6:first-child { margin-top: 0; }
  .srv-acc-body ul { padding-left: 18px; margin: 0; display: flex; flex-direction: column; gap: 4px; }
  .srv-acc-body li { line-height: 1.6; }
  .srv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
  .srv-chip { background: rgba(21,35,82,.06); border: 1px solid rgba(21,35,82,.12); color: var(--navy); font-size: .74rem; font-weight: 700; padding: 5px 12px; border-radius: 16px; }
  .srv-chip b { color: var(--gold-dark); }
  .srv-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 20px; }

  /* ─── WHATSAPP SIEMPRE FLOTANTE (móvil y escritorio) ─── */
  .whatsapp-float { display: flex !important; }
  @media (max-width: 480px) {
    .whatsapp-float { bottom: 80px; right: 16px; width: 54px; height: 54px; }
    #back-top { bottom: 20px; right: 18px; }
  }
  .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; }
  .hamburger span { width: 25px; height: 2px; background: var(--white); transition: all .3s; border-radius: 2px; }
  .mobile-menu {
    display: none; position: fixed; top: 76px; left: 0; right: 0; max-height: calc(100vh - 76px); overflow-y: auto;
    background: var(--navy-dark); padding: 16px 24px 28px; flex-direction: column; gap: 0; list-style: none;
    border-top: 1px solid rgba(255,255,255,.1); z-index: 1000; box-shadow: 0 14px 30px rgba(0,0,0,.4);
  }
  .mobile-menu.open { display: flex; }
  .mobile-menu li { border-bottom: 1px solid rgba(255,255,255,.08); }
  .mobile-menu a { display: block; padding: 14px 4px; color: rgba(255,255,255,.85); font-size: .92rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; }
  .mobile-menu a:hover, .mobile-menu a.reg-link { color: var(--gold); }
  .mobile-menu .btn { margin-top: 16px; width: 100%; }

  /* ─── ALERTA REGULARIZACIÓN ─── */
  #reg-alert {
    background: linear-gradient(100deg, var(--gold) 0%, var(--gold-bright) 100%);
    color: var(--navy-dark); position: relative; z-index: 999;
  }
  #reg-alert.hidden { display: none; }
  .reg-alert-inner { max-width: 1180px; margin: 0 auto; padding: 11px 50px 11px 24px; display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; text-align: center; }
  .reg-alert-inner .pulse-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--red); animation: pulse 1.6s infinite; flex-shrink: 0; }
  @keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(184,51,42,.6)} 70%{box-shadow:0 0 0 9px rgba(184,51,42,0)} 100%{box-shadow:0 0 0 0 rgba(184,51,42,0)} }
  .reg-alert-text { font-size: .86rem; font-weight: 700; letter-spacing: .01em; }
  .reg-alert-text strong { color: var(--navy-deep); }
  .reg-alert-text a { color: var(--navy-deep); text-decoration: underline; font-weight: 900; white-space: nowrap; }
  .reg-alert-close { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); background: none; border: none; color: var(--navy-dark); cursor: pointer; font-size: 1.3rem; line-height: 1; opacity: .6; }
  .reg-alert-close:hover { opacity: 1; }

  /* ─── HERO ─── */
  #hero { position: relative; background: var(--navy-dark); display: flex; align-items: center; overflow: hidden; min-height: 86vh; }
  .hero-bg {
    position: absolute; inset: 0;
    background:
      radial-gradient(circle at 78% 30%, rgba(28,80,200,.18) 0%, transparent 45%),
      linear-gradient(135deg, rgba(21,35,82,.97) 0%, rgba(13,24,54,.93) 55%, rgba(10,18,40,.97) 100%),
      repeating-linear-gradient(45deg, transparent, transparent 42px, rgba(201,162,39,.03) 42px, rgba(201,162,39,.03) 43px);
  }
  .hero-seal { position: absolute; right: -90px; bottom: -70px; width: 540px; height: 540px; opacity: .07; }
  .hero-content { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; padding: 84px 24px 76px; width: 100%; }
  .hero-eyebrow { display: inline-block; font-size: .78rem; font-weight: 900; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); margin-bottom: 22px; border-left: 3px solid var(--gold); padding-left: 13px; }
  .hero-title { color: var(--white); max-width: 850px; margin-bottom: 26px; text-shadow: 0 2px 24px rgba(0,0,0,.35); }
  .hero-title em { font-style: italic; color: var(--gold); }
  .hero-subtitle { color: rgba(255,255,255,.78); font-size: 1.15rem; max-width: 600px; margin-bottom: 40px; font-weight: 300; line-height: 1.8; }
  .hero-ctas { display: flex; gap: 15px; flex-wrap: wrap; }
  .hero-stats { display: flex; gap: 44px; margin-top: 60px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.13); padding-top: 34px; }
  .hero-stat-num { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 800; color: var(--gold); line-height: 1; }
  .hero-stat-label { font-size: .78rem; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .12em; margin-top: 6px; }

  /* ─── BADGE STRIP ─── */
  .badge-strip { background: var(--gold); padding: 15px 0; }
  .badge-strip-inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; display: flex; justify-content: center; align-items: center; gap: 42px; flex-wrap: wrap; }
  .badge-item { display: flex; align-items: center; gap: 9px; font-size: .78rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; color: var(--navy-dark); }
  .badge-item svg { width: 18px; height: 18px; stroke: var(--navy); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

  /* ─── QUIÉNES SOMOS ─── */
  .about-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; }
  .about-seal-wrap { display: flex; justify-content: center; align-items: center; position: relative; }
  .about-seal { width: 340px; height: 340px; max-width: 100%; filter: drop-shadow(0 18px 40px rgba(21,35,82,.22)); animation: floaty 6s ease-in-out infinite; }
  @keyframes floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
  .vmq-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 22px; margin-top: 34px; }
  .vmq-card { background: var(--off-white); border-left: 4px solid var(--gold); padding: 24px 22px; border-radius: 0 5px 5px 0; }
  .vmq-card h4 { color: var(--navy); font-size: .98rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 10px; }
  .vmq-card p { font-size: .9rem; color: #555; margin: 0; line-height: 1.7; }

  /* ─── POR QUÉ ELEGIRNOS ─── */
  .why-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 30px; margin-top: 52px; }
  .why-card { display: flex; gap: 18px; align-items: flex-start; }
  .why-num { font-family: 'Playfair Display', serif; font-size: 2.9rem; font-weight: 800; color: rgba(201,162,39,.28); line-height: 1; flex-shrink: 0; width: 54px; }
  .why-body h4 { color: var(--white); font-size: 1.02rem; margin-bottom: 8px; }
  .why-body p { font-size: .88rem; color: rgba(255,255,255,.62); margin: 0; line-height: 1.7; }

  /* ─── SERVICIOS ─── */
  .services-intro { max-width: 700px; margin: 0 auto 50px; }
  .services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
  .service-card { background: var(--white); border: 1px solid #e8e4d8; border-radius: 6px; padding: 32px 26px; transition: transform .25s, box-shadow .25s, border-color .25s; position: relative; overflow: hidden; }
  .service-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
  .service-card:hover { transform: translateY(-5px); box-shadow: 0 14px 44px rgba(21,35,82,.13); border-color: var(--gold); }
  .service-card:hover::before { transform: scaleX(1); }
  .service-icon { width: 54px; height: 54px; border-radius: 50%; background: rgba(201,162,39,.12); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
  .service-icon svg { width: 26px; height: 26px; stroke: var(--gold); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

  /* ─── ICONOS DE COLOR (badges vivos para tarjetas: áreas, hub y servicios) ─── */
  .area-ico.ico-blue, .hub-icon.ico-blue, .service-icon.ico-blue { background: var(--royal); }
  .area-ico.ico-blue svg, .hub-icon.ico-blue svg, .service-icon.ico-blue svg { stroke: #fff; }
  .area-ico.ico-gold, .hub-icon.ico-gold, .service-icon.ico-gold { background: linear-gradient(150deg,var(--gold-bright),var(--gold-dark)); }
  .area-ico.ico-gold svg, .hub-icon.ico-gold svg, .service-icon.ico-gold svg { stroke: var(--navy-dark); }
  .area-ico.ico-green, .hub-icon.ico-green, .service-icon.ico-green { background: #1a8a4c; }
  .area-ico.ico-green svg, .hub-icon.ico-green svg, .service-icon.ico-green svg { stroke: #fff; }
  .area-ico.ico-red, .hub-icon.ico-red, .service-icon.ico-red { background: var(--red); }
  .area-ico.ico-red svg, .hub-icon.ico-red svg, .service-icon.ico-red svg { stroke: #fff; }
  .area-ico.ico-teal, .hub-icon.ico-teal, .service-icon.ico-teal { background: #0f8798; }
  .area-ico.ico-teal svg, .hub-icon.ico-teal svg, .service-icon.ico-teal svg { stroke: #fff; }
  .area-ico.ico-purple, .hub-icon.ico-purple, .service-icon.ico-purple { background: #6247aa; }
  .area-ico.ico-purple svg, .hub-icon.ico-purple svg, .service-icon.ico-purple svg { stroke: #fff; }
  .area-card:hover .ico-blue, .area-card:hover .ico-gold, .area-card:hover .ico-green, .area-card:hover .ico-red, .area-card:hover .ico-teal, .area-card:hover .ico-purple { filter: brightness(1.08); }
  .hub-card.dark .hub-icon.ico-blue { background: var(--royal); }
  .hub-card.dark .hub-icon.ico-blue svg { stroke: #fff; }
  .hub-card.dark .hub-icon.ico-gold { background: linear-gradient(150deg,var(--gold-bright),var(--gold-dark)); }
  .hub-card.dark .hub-icon.ico-gold svg { stroke: var(--navy-dark); }
  .hub-card.dark .hub-icon.ico-green { background: #1a8a4c; }
  .hub-card.dark .hub-icon.ico-green svg { stroke: #fff; }
  .hub-card.dark .hub-icon.ico-red { background: var(--red); }
  .hub-card.dark .hub-icon.ico-red svg { stroke: #fff; }
  .hub-card.dark .hub-icon.ico-teal { background: #0f8798; }
  .hub-card.dark .hub-icon.ico-teal svg { stroke: #fff; }
  .hub-card.dark .hub-icon.ico-purple { background: #6247aa; }
  .hub-card.dark .hub-icon.ico-purple svg { stroke: #fff; }
  .service-card h3 { font-size: 1.12rem; color: var(--navy); margin-bottom: 10px; }
  .service-card p { font-size: .88rem; color: #666; line-height: 1.7; margin: 0; }
  .service-tag { display: inline-block; margin-top: 14px; padding: 4px 11px; background: rgba(21,35,82,.07); color: var(--navy); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; border-radius: 3px; }

  /* ─── EXTRANJERÍA HUB (botones de acción) ─── */
  .ext-hub { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 22px; margin-top: 14px; }
  .hub-card {
    position: relative; border-radius: 10px; padding: 30px 26px 28px; text-decoration: none;
    display: flex; flex-direction: column; min-height: 220px; transition: transform .25s, box-shadow .25s;
    border: 1px solid rgba(255,255,255,.1); overflow: hidden;
  }
  .hub-card:hover { transform: translateY(-6px); box-shadow: 0 20px 46px rgba(13,24,54,.3); }
  .hub-card .hub-icon { width: 52px; height: 52px; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
  .hub-card .hub-icon svg { width: 26px; height: 26px; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
  .hub-card h3 { font-size: 1.25rem; margin-bottom: 8px; }
  .hub-card p { font-size: .87rem; line-height: 1.6; margin: 0 0 16px; flex-grow: 1; }
  .hub-card .hub-go { font-size: .8rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 7px; }
  .hub-card .hub-go svg { width: 16px; height: 16px; stroke-width: 2.4; fill: none; }

  .hub-card.feat { background: linear-gradient(140deg, var(--gold) 0%, var(--gold-bright) 100%); color: var(--navy-dark); grid-column: span 1; }
  .hub-card.feat .hub-icon { background: rgba(13,24,54,.14); }
  .hub-card.feat .hub-icon svg { stroke: var(--navy-dark); }
  .hub-card.feat h3 { color: var(--navy-dark); }
  .hub-card.feat p { color: rgba(13,24,54,.8); }
  .hub-card.feat .hub-go { color: var(--navy-dark); }
  .hub-card.feat .hub-badge { position: absolute; top: 14px; right: 14px; background: var(--red); color: #fff; font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; border-radius: 20px; }

  .hub-card.dark { background: linear-gradient(150deg, var(--navy-mid) 0%, var(--navy) 100%); color: #fff; }
  .hub-card.dark .hub-icon { background: rgba(201,162,39,.16); }
  .hub-card.dark .hub-icon svg { stroke: var(--gold); }
  .hub-card.dark h3 { color: #fff; }
  .hub-card.dark p { color: rgba(255,255,255,.7); }
  .hub-card.dark .hub-go { color: var(--gold); }

  .hub-card.royal { background: linear-gradient(150deg, var(--royal) 0%, #143a96 100%); color: #fff; }
  .hub-card.royal .hub-icon { background: rgba(255,255,255,.16); }
  .hub-card.royal .hub-icon svg { stroke: #fff; }
  .hub-card.royal h3 { color: #fff; }
  .hub-card.royal p { color: rgba(255,255,255,.75); }
  .hub-card.royal .hub-go { color: #fff; }

  /* ─── REGULARIZACIÓN ─── */
  #regularizacion { background: linear-gradient(180deg, var(--navy-dark) 0%, var(--navy-deep) 100%); color: #fff; position: relative; overflow: hidden; }
  #regularizacion .reg-watermark { position: absolute; left: -120px; top: 40px; width: 420px; height: 420px; opacity: .05; }
  .reg-head { max-width: 760px; }
  .reg-head h2 { color: #fff; }
  .reg-head h2 em { color: var(--gold); font-style: italic; }
  .reg-deadline-box {
    display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
    background: linear-gradient(110deg, rgba(201,162,39,.16), rgba(201,162,39,.06));
    border: 1px solid rgba(201,162,39,.4); border-radius: 12px; padding: 22px 28px; margin: 30px 0 8px;
  }
  .reg-countdown { display: flex; gap: 12px; }
  .cd-unit { background: rgba(0,0,0,.25); border-radius: 8px; padding: 10px 14px; text-align: center; min-width: 64px; }
  .cd-num { font-family: 'Playfair Display', serif; font-size: 1.9rem; font-weight: 800; color: var(--gold); line-height: 1; }
  .cd-label { font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.6); margin-top: 5px; }
  .reg-deadline-text { flex: 1; min-width: 220px; }
  .reg-deadline-text .dl-big { font-family: 'Playfair Display', serif; font-size: 1.3rem; color: #fff; font-weight: 700; }
  .reg-deadline-text .dl-sub { font-size: .85rem; color: rgba(255,255,255,.7); margin-top: 4px; }

  .reg-pathways { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 40px; }
  .path-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: 30px 28px; transition: border-color .25s, transform .25s; }
  .path-card:hover { border-color: rgba(201,162,39,.5); transform: translateY(-4px); }
  .path-tag { display: inline-block; font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; padding: 5px 12px; border-radius: 20px; margin-bottom: 14px; }
  .path-tag.a { background: rgba(28,80,200,.22); color: var(--royal-light); border: 1px solid rgba(28,80,200,.4); }
  .path-tag.b { background: rgba(201,162,39,.18); color: var(--gold); border: 1px solid rgba(201,162,39,.4); }
  .path-card h3 { color: #fff; font-size: 1.3rem; margin-bottom: 6px; }
  .path-card .path-model { font-size: .8rem; color: var(--gold); font-weight: 900; letter-spacing: .05em; margin-bottom: 14px; }
  .path-card p { font-size: .9rem; color: rgba(255,255,255,.72); line-height: 1.7; }
  .path-card ul { list-style: none; margin: 12px 0 0; display: flex; flex-direction: column; gap: 9px; }
  .path-card ul li { font-size: .88rem; color: rgba(255,255,255,.78); line-height: 1.55; position: relative; padding-left: 18px; }
  .path-card ul li::before { content: '✓'; color: var(--gold); font-weight: 900; position: absolute; left: 0; top: 0; }

  .reg-block { margin-top: 44px; }
  .reg-block > h3 { color: #fff; font-size: 1.4rem; display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
  .reg-block > h3 .num { width: 34px; height: 34px; border-radius: 50%; background: var(--gold); color: var(--navy-dark); display: inline-flex; align-items: center; justify-content: center; font-family: 'Lato'; font-size: .95rem; font-weight: 900; flex-shrink: 0; }
  .reg-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 18px; }
  .reg-list { list-style: none; display: flex; flex-direction: column; gap: 11px; }
  .reg-list li { font-size: .9rem; color: rgba(255,255,255,.8); line-height: 1.6; position: relative; padding-left: 27px; }
  .reg-list li svg { width: 17px; height: 17px; stroke: var(--gold); fill: none; stroke-width: 2.4; position: absolute; left: 0; top: 4px; }
  .reg-note { background: rgba(28,80,200,.12); border-left: 3px solid var(--royal-light); border-radius: 0 6px 6px 0; padding: 14px 18px; font-size: .84rem; color: rgba(255,255,255,.82); margin-top: 18px; line-height: 1.6; }
  .reg-note strong { color: #fff; }
  .reg-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 0; margin-top: 22px; }
  .reg-step { padding: 18px 16px; position: relative; text-align: center; }
  .reg-step::after { content:'→'; position:absolute; right:-6px; top: 28px; color: rgba(201,162,39,.5); font-size: 1.3rem; }
  .reg-step:last-child::after { display:none; }
  .reg-step .rs-num { width: 42px; height: 42px; border-radius: 50%; border: 2px solid var(--gold); color: var(--gold); display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; font-family: 'Playfair Display'; font-weight: 800; }
  .reg-step h4 { color: #fff; font-size: .92rem; margin-bottom: 6px; }
  .reg-step p { font-size: .78rem; color: rgba(255,255,255,.6); margin: 0; line-height: 1.5; }
  .reg-official { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 30px; }
  .reg-disclaimer { font-size: .78rem; color: rgba(255,255,255,.5); margin-top: 28px; line-height: 1.6; border-top: 1px solid rgba(255,255,255,.1); padding-top: 18px; }
  .reg-disclaimer a { color: var(--gold-light); }

  /* ─── AUTORIZACIONES (acordeón) ─── */
  .auth-cats { display: flex; flex-direction: column; gap: 14px; margin-top: 38px; }
  .auth-item { border: 1px solid #e3ddcc; border-radius: 8px; overflow: hidden; background: #fff; transition: box-shadow .25s; }
  .auth-item:hover { box-shadow: 0 8px 26px rgba(21,35,82,.08); }
  .auth-q { width: 100%; text-align: left; background: #fff; border: none; cursor: pointer; padding: 22px 26px; display: flex; align-items: center; gap: 16px; font-family: 'Playfair Display', serif; }
  .auth-q .a-ico { width: 44px; height: 44px; border-radius: 9px; background: rgba(201,162,39,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .auth-q .a-ico svg { width: 22px; height: 22px; stroke: var(--gold-dark); fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
  .auth-q .a-title { flex-grow: 1; }
  .auth-q .a-title b { display: block; font-size: 1.12rem; color: var(--navy); font-weight: 700; }
  .auth-q .a-title span { display: block; font-family: 'Lato'; font-size: .8rem; color: #8a8576; font-weight: 400; margin-top: 2px; }
  .auth-q .a-plus { font-size: 1.6rem; color: var(--gold); transition: transform .3s; flex-shrink: 0; line-height: 1; font-family: 'Lato'; font-weight: 300; }
  .auth-item.open .a-plus { transform: rotate(45deg); }
  .auth-a { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
  .auth-item.open .auth-a { max-height: 1400px; }
  .auth-a-inner { padding: 4px 26px 28px; }
  .auth-a-inner .a-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
  .auth-a-inner h5 { font-family: 'Lato'; font-size: .74rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 12px; padding-bottom: 7px; border-bottom: 1px solid #eee5cf; }
  .auth-a-inner ul { list-style: none; display: flex; flex-direction: column; gap: 9px; }
  .auth-a-inner ul li { font-size: .87rem; color: #555; line-height: 1.55; position: relative; padding-left: 16px; }
  .auth-a-inner ul li::before { content: '◆'; color: var(--gold); font-size: .6rem; position: absolute; left: 0; top: 5px; }
  .auth-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
  .auth-chip { font-size: .73rem; font-weight: 700; padding: 6px 13px; border-radius: 20px; background: var(--off-white); border: 1px solid #e3ddcc; color: var(--navy); display:inline-block; }
  .auth-chip b { color: var(--gold-dark); }

  /* ─── MODELOS & TASAS ─── */
  .mt-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 30px; align-items: start; }
  .nat-grid { grid-template-columns: 1fr 1fr; }
  .nat-grid > div { min-width: 0; }
  /* Los <li> de nacionalidad usaban display:flex, lo que convertía los <strong>
     (CCSE, DELE A2…) en items flex que se encogían y se solapaban. Se pasan a
     bloque con viñeta colgante para que el texto en negrita fluya en línea. */
  .nat-grid li { display: block !important; position: relative; padding-left: 20px; }
  .nat-grid li > span:first-child { position: absolute; left: 0; top: 0; }
  .modelos-panel, .tasas-panel { background: #fff; border: 1px solid #e3ddcc; border-radius: 10px; padding: 30px 28px; }
  .panel-h { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
  .panel-h .ph-ico { width: 42px; height: 42px; border-radius: 10px; background: rgba(21,35,82,.07); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .panel-h .ph-ico svg { width: 22px; height: 22px; stroke: var(--navy); fill:none; stroke-width: 1.9; stroke-linecap:round; stroke-linejoin:round; }
  .panel-h h3 { font-size: 1.3rem; }
  .panel-sub { font-size: .87rem; color: #777; margin-bottom: 20px; }
  .modelos-list { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
  .modelo-row { display: flex; align-items: center; gap: 11px; padding: 11px 13px; border: 1px solid #ece6d6; border-radius: 7px; transition: border-color .2s, background .2s; text-decoration: none; }
  .modelo-row:hover { border-color: var(--gold); background: rgba(201,162,39,.05); }
  .modelo-code { font-family: 'Playfair Display', serif; font-weight: 800; color: var(--gold-dark); font-size: .95rem; min-width: 48px; flex-shrink: 0; }
  .modelo-name { font-size: .8rem; color: #555; line-height: 1.35; }
  .tasa-card { border: 1px solid #ece6d6; border-radius: 8px; padding: 16px 18px; margin-bottom: 12px; }
  .tasa-card .tc-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
  .tasa-card .tc-code { font-family: 'Playfair Display', serif; font-weight: 800; color: var(--navy); font-size: 1.05rem; }
  .tasa-card .tc-amt { font-size: .82rem; font-weight: 900; color: var(--gold-dark); white-space: nowrap; }
  .tasa-card p { font-size: .8rem; color: #666; margin: 6px 0 12px; line-height: 1.5; }

  /* ─── AGENDAR CITA ─── */
  #agenda { background: linear-gradient(140deg, var(--navy) 0%, var(--navy-dark) 60%, var(--navy-deep) 100%); color: #fff; position: relative; overflow: hidden; }
  #agenda .ag-seal { position: absolute; right: -100px; top: -60px; width: 400px; height: 400px; opacity: .06; }
  .agenda-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
  .agenda-left h2 { color: #fff; }
  .agenda-left h2 em { color: var(--gold); font-style: italic; }
  .agenda-feats { list-style: none; margin: 26px 0 0; display: flex; flex-direction: column; gap: 16px; }
  .agenda-feats li { display: flex; gap: 14px; align-items: flex-start; }
  .agenda-feats li .af-ico { width: 40px; height: 40px; border-radius: 10px; background: rgba(201,162,39,.16); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .agenda-feats li .af-ico svg { width: 20px; height: 20px; stroke: var(--gold); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .agenda-feats li b { color: #fff; display: block; font-size: .98rem; }
  .agenda-feats li span { color: rgba(255,255,255,.68); font-size: .86rem; }
  .agenda-card { background: #fff; border-radius: 16px; padding: 40px 34px; text-align: center; box-shadow: 0 24px 60px rgba(0,0,0,.35); color: var(--text-body); }
  .agenda-card .ac-cal { width: 76px; height: 76px; border-radius: 18px; background: linear-gradient(140deg, var(--gold), var(--gold-bright)); display: flex; align-items: center; justify-content: center; margin: 0 auto 22px; }
  .agenda-card .ac-cal svg { width: 38px; height: 38px; stroke: var(--navy-dark); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .agenda-card h3 { font-size: 1.5rem; margin-bottom: 10px; }
  .agenda-card p { font-size: .92rem; color: #666; margin-bottom: 26px; }
  .agenda-card .btn { width: 100%; padding: 16px; font-size: .95rem; }
  .agenda-card .ac-or { font-size: .82rem; color: #999; margin: 18px 0; position: relative; }
  .agenda-card .ac-or::before, .agenda-card .ac-or::after { content: ''; position: absolute; top: 50%; width: 36%; height: 1px; background: #e5e5e5; }
  .agenda-card .ac-or::before { left: 0; } .agenda-card .ac-or::after { right: 0; }
  .agenda-card .ac-phone { font-family: 'Playfair Display', serif; font-size: 1.35rem; font-weight: 700; color: var(--navy); }
  .agenda-card .ac-phone a { color: var(--navy); }
  .agenda-card .ac-powered { font-size: .72rem; color: #aaa; margin-top: 20px; display: flex; align-items: center; justify-content: center; gap: 6px; }

  /* ─── PAÍSES CANJE ─── */
  .countries-grid { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; justify-content: center; }
  .country-tag { padding: 8px 16px; background: var(--white); border: 1px solid #ddd8c8; border-radius: 3px; font-size: .82rem; font-weight: 700; color: var(--navy); letter-spacing: .04em; transition: background .2s, border-color .2s, color .2s; }
  .country-tag:hover { background: var(--gold); border-color: var(--gold); color: var(--navy-dark); }

  /* ─── FISCAL ─── */
  .fiscal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 20px; margin-top: 36px; }
  .fiscal-card { background: var(--navy-mid); border: 1px solid rgba(201,162,39,.2); border-radius: 6px; padding: 26px 20px; text-align: center; transition: transform .2s, border-color .2s; }
  .fiscal-card:hover { transform: translateY(-4px); border-color: var(--gold); }
  .fiscal-abbr { font-family: 'Playfair Display', serif; font-size: 2rem; color: var(--gold); font-weight: 800; }
  .fiscal-name { font-size: .8rem; color: rgba(255,255,255,.65); margin-top: 6px; line-height: 1.4; }

  /* ─── PROCESO ─── */
  .process-steps { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0; margin-top: 48px; }
  .process-step { text-align: center; padding: 32px 20px; position: relative; }
  .process-step::after { content: '→'; position: absolute; right: -10px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--gold); opacity: .5; }
  .process-step:last-child::after { display: none; }
  .step-num { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--gold); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 800; color: var(--gold); }
  .process-step h4 { color: var(--navy); font-size: .96rem; margin-bottom: 8px; }
  .process-step p { font-size: .82rem; color: #888; margin: 0; }

  /* ─── CONTACTO ─── */
  .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
  .contact-item { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 26px; }
  .contact-icon-wrap { width: 44px; height: 44px; border-radius: 50%; background: rgba(201,162,39,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .contact-icon-wrap svg { width: 20px; height: 20px; stroke: var(--gold); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .contact-item-label { font-size: .7rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 4px; }
  .contact-item-val { font-size: .95rem; color: var(--navy); font-weight: 700; }
  .contact-item-val a { color: var(--navy); }
  .social-links { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }
  .social-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border: 1px solid #ddd8c8; border-radius: 4px; font-size: .8rem; font-weight: 700; color: var(--navy); transition: background .2s, border-color .2s, color .2s; }
  .social-btn:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
  .social-btn svg { stroke: currentColor; }
  .map-embed { width: 100%; height: 260px; border: 0; border-radius: 8px; margin-top: 30px; filter: grayscale(.2); }
  .map-link-wrap { margin-top: 12px; }
  .contact-form { background: #fff; border: 1px solid #e8e4d8; border-radius: 10px; padding: 36px 32px; box-shadow: 0 12px 40px rgba(21,35,82,.06); }
  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .form-group { margin-bottom: 18px; }
  .form-group label { display: block; font-size: .8rem; font-weight: 700; color: var(--navy); margin-bottom: 7px; letter-spacing: .03em; }
  .form-group input, .form-group select, .form-group textarea { width: 100%; padding: 12px 14px; border: 1px solid #d8d3c4; border-radius: 5px; font-family: 'Lato', sans-serif; font-size: .92rem; color: var(--text-dark); background: #fdfcf9; transition: border-color .2s, box-shadow .2s; }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,162,39,.14); }
  .form-group textarea { resize: vertical; min-height: 120px; }
  .form-note { font-size: .76rem; color: #999; margin: 6px 0 16px; line-height: 1.5; }
  .form-submit-wrap .btn { width: 100%; }

  /* ─── LEGAL ─── */
  .legal-box { background: rgba(201,162,39,.06); border: 1px solid rgba(201,162,39,.2); border-radius: 6px; padding: 22px 26px; margin-top: 26px; font-size: .82rem; color: #6f6f6f; line-height: 1.8; }
  .legal-box p { margin-bottom: 12px; }
  .legal-box p:last-child { margin-bottom: 0; }

  /* ─── FOOTER ─── */
  footer { background: var(--navy-deep); color: rgba(255,255,255,.65); padding: 64px 24px 0; }
  .footer-inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; }
  .footer-logo { display: flex; align-items: center; gap: 13px; margin-bottom: 16px; }
  .footer-logo-img { width: 66px; height: 66px; flex-shrink: 0; }
  .footer-logo-text { font-family: 'Playfair Display', serif; font-size: 1.12rem; color: var(--white); font-weight: 800; letter-spacing: .03em; }
  .footer-tagline { font-size: .85rem; color: var(--gold); font-style: italic; margin-bottom: 14px; font-family: 'Playfair Display', serif; }
  .footer-desc { font-size: .85rem; line-height: 1.75; }
  .footer-col h5 { font-family: 'Playfair Display', serif; color: var(--white); font-size: .95rem; margin-bottom: 16px; }
  .footer-col ul { list-style: none; }
  .footer-col ul li { margin-bottom: 9px; }
  .footer-col ul li a { color: rgba(255,255,255,.6); font-size: .85rem; text-decoration: none; transition: color .2s; }
  .footer-col ul li a:hover { color: var(--gold); }
  .footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 22px 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; font-size: .78rem; color: rgba(255,255,255,.42); max-width: 1180px; margin: 48px auto 0; gap: 12px; }
  .footer-bottom a { color: rgba(255,255,255,.42); text-decoration: none; }
  .footer-bottom a:hover { color: var(--gold); }

  /* ─── ANIMATIONS ─── */
  .fade-up { opacity: 0; transform: translateY(28px); transition: opacity .6s ease, transform .6s ease; }
  .fade-up.visible { opacity: 1; transform: translateY(0); }

  /* ─── LETRAS EN FONDOS OSCUROS (section-navy, regularización) ─── */
  .section-navy strong,
  .section-navy h1, .section-navy h2, .section-navy h3, .section-navy h4, .section-navy h5,
  #regularizacion strong,
  #fiscal strong { color: var(--white); }
  .section-navy .eyebrow.light { color: var(--gold); }
  .fiscal-name { color: rgba(255,255,255,.8) !important; }
  .fiscal-abbr { color: var(--gold) !important; }

  /* ─── RESPONSIVE ─── */
  @media (max-width: 1000px) {
    .about-grid { grid-template-columns: 1fr; gap: 44px; }
    .about-seal-wrap { order: -1; }
    .about-seal { width: 240px; height: 240px; }
    .contact-grid { grid-template-columns: 1fr; gap: 44px; }
    .footer-inner { grid-template-columns: 1fr 1fr; }
    .vmq-grid { grid-template-columns: 1fr; }
    .reg-pathways, .reg-cols, .auth-a-inner .a-grid, .mt-grid, .agenda-grid, .nat-grid { grid-template-columns: 1fr; }
    .agenda-grid { gap: 40px; }
    /* Al apilarse a una columna, estos títulos quedaban alineados a la izquierda
       mientras el resto de la web usa títulos centrados: se homogeneiza aquí. */
    .about-grid > .fade-up:first-child, .agenda-left, .arr-hero { text-align: center; }
    .about-grid > .fade-up:first-child .gold-line-left,
    .agenda-left .gold-line-left,
    .arr-hero .gold-line-left { margin-left: auto; margin-right: auto; }
  }
  @media (max-width: 1080px) {
    .nav-links, .nav-cta { display: none; }
    .hamburger { display: flex; }
  }
  @media (max-width: 768px) {
    :root { --section-pad: 62px 0; }
    .hero-stats { gap: 26px; }
    .footer-inner { grid-template-columns: 1fr; gap: 32px; }
    .footer-col { border-top: 1px solid rgba(255,255,255,.08); padding-top: 24px; }
    .form-row, .modelos-list { grid-template-columns: 1fr; }
    .process-step::after, .reg-step::after { display: none; }
    .badge-strip-inner { gap: 18px; }
    .top-strip-left { display: none; }
    .reg-deadline-box { flex-direction: column; align-items: flex-start; }
  }
  @media (max-width: 480px) {
    .hero-ctas { flex-direction: column; }
    .hero-ctas .btn { width: 100%; }
    .reg-alert-inner { padding-right: 40px; }
    .cd-unit { min-width: 54px; padding: 8px 10px; }
  }
  /* Red de seguridad para móviles pequeños (≤359px): dentro de las ventanas
     modales, cualquier rejilla pasa a una sola columna y el contenido puede
     encogerse, evitando desbordes y texto cortado en pantallas estrechas. */
  @media (max-width: 359px) {
    #modal-host [style*="grid-template-columns"],
    #modal-host .services-grid, #modal-host .why-grid, #modal-host .ext-hub,
    #modal-host .arr-grid, #modal-host .arr-steps, #modal-host .reg-steps,
    #modal-host .reg-pathways, #modal-host .reg-cols, #modal-host .a-grid,
    #modal-host .mt-grid, #modal-host .modelos-list, #modal-host .nat-grid,
    #modal-host .fiscal-grid, #modal-host .process-steps, #modal-host .vmq-grid,
    #modal-host .srv-grid-2, #modal-host .form-row, #modal-host .contact-grid {
      grid-template-columns: 1fr !important;
    }
    /* min-width:0 solo en contenedores de bloque (para que las rejillas se
       encojan); NUNCA en texto en línea (strong/b/a) para no aplastarlo.
       break-word parte solo cadenas largas (emails) sin afectar palabras. */
    #modal-host div, #modal-host ul, #modal-host ol, #modal-host li,
    #modal-host section, #modal-host p, #modal-host figure { min-width: 0 !important; }
    #modal-host p, #modal-host li, #modal-host a, #modal-host .contact-item-val { overflow-wrap: break-word; }
  }

  /* ═══════════════════════════════════════════════════════════
     ★ BOTÓN LLAMATIVO E INTERACTIVO (efecto brillo + latido)
     ═══════════════════════════════════════════════════════════ */
  .btn-shine {
    position: relative; overflow: hidden;
    background: linear-gradient(120deg, var(--gold-bright) 0%, var(--gold) 45%, var(--gold-dark) 100%);
    color: var(--navy-deep); border-color: var(--gold-bright);
    box-shadow: 0 8px 26px rgba(201,162,39,.42);
    animation: shinePulse 2.6s ease-in-out infinite;
  }
  .btn-shine::after {
    content: ''; position: absolute; top: 0; left: -130%;
    width: 60%; height: 100%; transform: skewX(-22deg);
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent);
    animation: shineSweep 2.8s ease-in-out infinite;
  }
  .btn-shine:hover { transform: translateY(-3px) scale(1.03); color: var(--navy-deep);
    box-shadow: 0 14px 36px rgba(201,162,39,.6); border-color: var(--gold-bright); }
  .btn-shine svg { position: relative; z-index: 2; }
  .btn-shine span { position: relative; z-index: 2; }
  @keyframes shineSweep { 0% { left: -130%; } 55%, 100% { left: 130%; } }
  @keyframes shinePulse {
    0%, 100% { box-shadow: 0 8px 26px rgba(201,162,39,.42); }
    50% { box-shadow: 0 8px 34px rgba(242,181,48,.72); }
  }
  @media (prefers-reduced-motion: reduce) {
    .btn-shine, .btn-shine::after { animation: none; }
  }

  /* ═══════════════════════════════════════════════════════════
     ★ SISTEMA DE MODALES (2ª página superpuesta · sin scroll)
     ═══════════════════════════════════════════════════════════ */
  /* Las secciones-modal NO se muestran en el flujo normal de la página */
  .modal-section { display: none; }
  #modal-root {
    position: fixed; inset: 0; z-index: 5000;
    display: none; align-items: flex-start; justify-content: center;
    padding: 40px 18px; overflow-y: auto;
    background: rgba(10,18,40,.72); backdrop-filter: blur(4px);
  }
  #modal-root.open { display: flex; animation: modalFade .25s ease; }
  @keyframes modalFade { from { opacity: 0; } to { opacity: 1; } }
  .modal-panel {
    position: relative; width: 100%; max-width: 1060px;
    background: var(--white); border-radius: 14px; overflow: hidden;
    border-top: 5px solid var(--gold);
    box-shadow: 0 30px 80px rgba(0,0,0,.5);
    animation: modalRise .3s cubic-bezier(.2,.8,.3,1);
    margin: auto;
  }
  @keyframes modalRise { from { transform: translateY(26px); opacity: .6; } to { transform: translateY(0); opacity: 1; } }
  /* Cuando una sección vive dentro del modal, se muestra sin padding de sección */
  .modal-panel .modal-section { display: block; padding: 46px 40px 40px; }
  .modal-panel .modal-section .container { padding: 0; max-width: 100%; }
  .modal-close {
    position: fixed; top: 18px; right: 22px; z-index: 5200;
    width: 48px; height: 48px; border-radius: 50%;
    background: var(--navy); color: #fff; border: 2px solid rgba(255,255,255,.55); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem; line-height: 1; transition: background .2s, transform .2s;
    box-shadow: 0 8px 22px rgba(0,0,0,.5);
  }
  .modal-close:hover { background: var(--gold); color: var(--navy-deep); transform: rotate(90deg); }
  body.modal-open { overflow: hidden; }

  /* Contenido de arraigos dentro del modal (tema claro) */
  .arr-hero { max-width: 780px; }
  .arr-hero h2 em { color: var(--gold-dark); font-style: italic; }
  .arr-news {
    display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap;
    background: linear-gradient(110deg, rgba(21,35,82,.05), rgba(201,162,39,.08));
    border: 1px solid rgba(201,162,39,.4); border-left: 5px solid var(--gold);
    border-radius: 10px; padding: 22px 26px; margin: 26px 0 8px;
  }
  .arr-news .arr-figure { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 800; color: var(--navy); line-height: 1; }
  .arr-news .arr-figure small { display: block; font-family: 'Lato'; font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-dark); margin-top: 6px; }
  .arr-news-txt { flex: 1; min-width: 240px; }
  .arr-news-txt p { font-size: .9rem; color: var(--text-body); margin: 0; line-height: 1.65; }
  /* Caja de novedad jurisprudencial (Sentencia TS) */
  .sentencia-box { background: linear-gradient(120deg, rgba(28,80,200,.05), rgba(21,35,82,.04)); border: 1px solid rgba(28,80,200,.28); border-left: 5px solid var(--royal); border-radius: 12px; padding: 26px 30px; margin: 28px 0 8px; }
  .sentencia-badge { display: inline-flex; align-items: center; gap: 8px; font-size: .7rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--royal); background: rgba(28,80,200,.1); border: 1px solid rgba(28,80,200,.25); padding: 6px 14px; border-radius: 20px; margin-bottom: 12px; }
  .sentencia-badge svg { width: 15px; height: 15px; stroke: var(--royal); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .sentencia-head h3 { font-size: 1.32rem; color: var(--navy); margin-bottom: 6px; }
  .sentencia-ref { font-size: .8rem; color: #6a6a6a; font-style: italic; margin-bottom: 16px; text-align: left; }
  .sentencia-box > p { font-size: .92rem; color: var(--text-body); line-height: 1.7; }
  .sentencia-list { list-style: none; margin: 14px 0 18px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
  .sentencia-list li { position: relative; padding-left: 22px; font-size: .9rem; color: var(--text-body); line-height: 1.6; text-align: justify; text-align-last: left; }
  .sentencia-list li::before { content: '§'; position: absolute; left: 0; top: 0; color: var(--royal); font-weight: 900; }
  .sentencia-note { font-size: .82rem; color: #6a6a6a; border-top: 1px solid rgba(28,80,200,.15); padding-top: 14px; }
  .sentencia-box .btn svg { width: 16px; height: 16px; }
  .arr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 22px; margin-top: 34px; }
  .arr-card { background: var(--off-white); border: 1px solid #e8e4d8; border-radius: 12px; padding: 26px 24px; transition: transform .22s, box-shadow .22s, border-color .22s; }
  .arr-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(21,35,82,.12); border-color: var(--gold); }
  .arr-card .arr-tag { display: inline-block; font-size: .66rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-dark); background: rgba(201,162,39,.14); padding: 4px 11px; border-radius: 20px; margin-bottom: 12px; }
  .arr-card h4 { font-size: 1.12rem; color: var(--navy); margin-bottom: 8px; }
  .arr-card p { font-size: .87rem; color: #5c5c5c; line-height: 1.65; margin: 0; }
  .arr-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap: 16px; margin-top: 30px; }
  .arr-step { background: var(--navy); color:#fff; border-radius: 10px; padding: 20px 18px; }
  .arr-step .arr-sn { width: 30px; height: 30px; border-radius: 50%; background: var(--gold); color: var(--navy-deep); display: flex; align-items: center; justify-content: center; font-weight: 900; margin-bottom: 12px; }
  .arr-step h5 { color:#fff; font-size: .98rem; margin-bottom: 6px; font-family: 'Playfair Display', serif; }
  .arr-step p { font-size: .82rem; color: rgba(255,255,255,.72); margin: 0; line-height: 1.55; }
  .arr-note { background: rgba(28,80,200,.07); border-left: 3px solid var(--royal); border-radius: 0 6px 6px 0; padding: 14px 18px; font-size: .84rem; color: var(--text-body); margin-top: 26px; line-height: 1.6; }
  .arr-cta-row { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 30px; }
  .arr-disclaimer { font-size: .76rem; color: #8a8880; margin-top: 24px; line-height: 1.6; }

  /* Barra informativa (antes alerta de plazo) */
  #reg-alert { background: linear-gradient(90deg, var(--gold-light), var(--gold-bright)); color: var(--navy-deep); position: relative; z-index: 999; }
  /* Cada sección conserva su fondo nativo dentro de la ventana (oscuro u claro) */
  .modal-panel .modal-section { min-height: 100%; }
  /* Justificado profesional: cuerpo justificado, última línea a la izquierda (no se estira) */
  p { text-align: justify; text-align-last: left; text-justify: inter-word; -webkit-hyphens: auto; hyphens: auto; }
  h1, h2, h3, h4, h5 { hyphens: manual; text-align-last: auto; }
  .text-center p, .hero-stats, .cd-label, .review-card figcaption, .arr-figure { text-align: center; text-align-last: center; }
  .btn, .hub-go, .area-go, .arr-tag, .path-tag, .eyebrow { text-align: center; }
  ::selection { background: var(--gold); color: #fff; }
  html { scroll-behavior: smooth; }
  @media (max-width: 600px) {
    .modal-panel .modal-section { padding: 40px 20px 30px; }
    .arr-news .arr-figure { font-size: 2rem; }
  }

  /* ── Foto del Director (Nosotros) ── */
  .director-card { margin:0; background:var(--navy); border-radius:16px; overflow:hidden; box-shadow:0 24px 60px rgba(13,24,54,.35); border:1px solid rgba(201,162,39,.35); }
  .director-photo { display:block; width:100%; height:auto; }
  .director-card figcaption { padding:16px 22px 20px; background:var(--navy-deep); }
  .director-card figcaption strong { display:block; font-family:'Playfair Display',serif; color:#fff; font-size:1.18rem; }
  .director-card figcaption span { display:block; color:var(--gold); font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-top:5px; }

  /* ── Botón flotante de cita ── */
  .cita-float { position:fixed; bottom:24px; left:24px; z-index:998; display:inline-flex; align-items:center; gap:9px; padding:12px 20px; background:linear-gradient(120deg,var(--gold-bright),var(--gold-dark)); color:var(--navy-deep); border-radius:40px; font-family:'Lato',sans-serif; font-weight:900; font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; box-shadow:0 8px 24px rgba(201,162,39,.45); transition:transform .2s, box-shadow .2s; }
  .cita-float:hover { transform:translateY(-3px) scale(1.03); color:var(--navy-deep); box-shadow:0 12px 30px rgba(201,162,39,.6); }
  .cita-float svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
  @media (max-width:600px){ .cita-float span{ display:none; } .cita-float{ padding:14px; border-radius:50%; left:16px; bottom:16px; } }
  /* ── Buscador de trámite ── */
  .tramite-search { display:flex; flex-wrap:wrap; align-items:flex-end; gap:14px; max-width:820px; margin:0 auto 46px; background:var(--white); border:1px solid #e3ded0; border-radius:12px; padding:22px 24px; box-shadow:0 10px 34px rgba(21,35,82,.08); }
  .tramite-search label { display:block; width:100%; font-size:.72rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:-4px; }
  .tramite-search select { flex:1; min-width:220px; padding:13px 14px; border:1px solid #d8d3c4; border-radius:7px; font-family:'Lato',sans-serif; font-size:.95rem; color:var(--navy); background:#fff; }
  .tramite-search .btn { padding:13px 24px; }
  /* ── Áreas de práctica ── */
  .areas-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:22px; }
  .area-card { background:var(--white); border:1px solid #e8e4d8; border-radius:12px; padding:28px 26px; text-decoration:none; display:flex; flex-direction:column; transition:transform .25s, box-shadow .25s, border-color .25s; position:relative; overflow:hidden; }
  .area-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
  .area-card:hover { transform:translateY(-6px); box-shadow:0 20px 46px rgba(21,35,82,.14); border-color:var(--gold); }
  .area-card:hover::before { transform:scaleX(1); }
  .area-ico { width:56px; height:56px; border-radius:14px; background:linear-gradient(150deg,var(--navy-mid),var(--navy)); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:28px; line-height:1; transition:transform .25s; }
  .area-card:hover .area-ico { transform:scale(1.08) rotate(-4deg); }
  .area-ico svg { width:26px; height:26px; stroke:var(--gold); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  .area-card h3 { font-size:1.2rem; color:var(--navy); margin-bottom:8px; }
  .area-card p { font-size:.87rem; color:#5f5f5f; line-height:1.6; margin:0 0 16px; flex-grow:1; }
  .area-go { font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-dark); }
  /* ── Opiniones ── */
  .reviews-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; }
  .review-card { margin:0; background:var(--off-white); border:1px solid #e8e4d8; border-radius:12px; padding:28px 26px; transition:transform .25s, box-shadow .25s; }
  .review-card:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(21,35,82,.12); }
  .review-card .stars { color:var(--gold-bright); letter-spacing:2px; font-size:1.05rem; margin-bottom:12px; }
  .review-card blockquote { margin:0 0 16px; font-size:.95rem; color:var(--text-body); line-height:1.7; font-style:italic; text-align:justify; text-align-last:left; -webkit-hyphens:auto; hyphens:auto; hyphenate-limit-chars:6 3 2; text-wrap:pretty; }
  .review-card figcaption { font-size:.82rem; font-weight:900; letter-spacing:.04em; color:var(--navy); text-transform:uppercase; }
  /* ── FAQ ── */
  .faq-list { display:flex; flex-direction:column; gap:12px; }
  .faq-item { background:var(--white); border:1px solid #e6e1d3; border-radius:10px; padding:2px 22px; transition:border-color .2s, box-shadow .2s; }
  .faq-item[open] { border-color:var(--gold); box-shadow:0 8px 26px rgba(21,35,82,.08); }
  .faq-item summary { cursor:pointer; list-style:none; padding:18px 0; font-family:'Playfair Display',serif; font-size:1.06rem; color:var(--navy); font-weight:600; display:flex; justify-content:space-between; align-items:center; gap:14px; }
  .faq-item summary::-webkit-details-marker { display:none; }
  .faq-item summary::after { content:'+'; color:var(--gold); font-size:1.5rem; font-weight:300; transition:transform .25s; flex-shrink:0; }
  .faq-item[open] summary::after { transform:rotate(45deg); }
  .faq-item p { margin:0 0 18px; font-size:.92rem; color:#555; line-height:1.7; }
  @media (max-width:600px){ .tramite-search{ flex-direction:column; align-items:stretch; } .tramite-search .btn{ width:100%; } }


  /* ── Barra flotante agrupada ── */
  .float-stack{ position:fixed; right:0; bottom:96px; z-index:998; display:flex; flex-direction:column; gap:8px; }
  .fl-btn{ display:flex; align-items:center; gap:9px; padding:11px 16px 11px 14px;
           font-family:'Lato',sans-serif; font-size:.8rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
           color:#fff; text-decoration:none; border-radius:8px 0 0 8px; box-shadow:0 5px 18px rgba(0,0,0,.28);
           transform:translateX(calc(100% - 46px)); transition:transform .28s cubic-bezier(.22,1,.36,1), box-shadow .2s; }
  .fl-btn svg{ width:20px; height:20px; flex:0 0 20px; stroke:currentColor; fill:none; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; }
  .fl-btn span{ white-space:nowrap; }
  .fl-btn:hover,.fl-btn:focus-visible{ transform:translateX(0); color:#fff; box-shadow:0 8px 24px rgba(0,0,0,.4); }
  .fl-cita{ background:linear-gradient(120deg,var(--gold-bright),var(--gold-dark)); color:var(--navy-deep); }
  .fl-cita:hover{ color:var(--navy-deep); }
  .fl-cont{ background:var(--navy-mid); }
  .fl-wa{ background:#25D366; }
  .fl-wa svg{ fill:currentColor; stroke:none; }
  @media (max-width:600px){ .float-stack{ bottom:80px; gap:6px; } .fl-btn{ padding:12px 14px; transform:translateX(calc(100% - 44px)); } }

  /* ── CTA reserva reforzado (navbar) ── */
  .nav-cta.reserva-cta{ position:relative; background:linear-gradient(120deg,var(--gold-bright),var(--gold-dark)); color:var(--navy-deep);
                        font-weight:900; letter-spacing:.06em; box-shadow:0 0 0 0 rgba(242,181,48,.55); animation:reservaPulse 2.6s infinite; }
  .nav-cta.reserva-cta:hover{ color:var(--navy-deep); filter:brightness(1.05); }
  @keyframes reservaPulse{ 0%{box-shadow:0 0 0 0 rgba(242,181,48,.5);} 70%{box-shadow:0 0 0 12px rgba(242,181,48,0);} 100%{box-shadow:0 0 0 0 rgba(242,181,48,0);} }
  @media (prefers-reduced-motion:reduce){ .nav-cta.reserva-cta{ animation:none; } }

  /* ── Blog Jurídico / Novedades ── */
  .blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:8px; }
  @media (max-width:920px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:600px){ .blog-grid{ grid-template-columns:1fr; } }
  .blog-card{ background:#fff; border:1px solid #e8e4d8; border-radius:14px; overflow:hidden; display:flex; flex-direction:column;
              box-shadow:0 4px 18px rgba(21,35,82,.06); transition:transform .22s, box-shadow .22s; }
  .blog-card:hover{ transform:translateY(-6px); box-shadow:0 16px 38px rgba(21,35,82,.14); }
  /* Miniatura con fotografía real (posts del despacho) */
  .blog-thumb-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 78%; }
  .blog-thumb.has-photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,24,54,.05) 40%, rgba(13,24,54,.55) 100%); }
  /* Certificados dentro del artículo de trayectoria */
  .cert-figure{ margin:26px 0; background:var(--white); border:1px solid #e8e4d8; border-radius:14px; overflow:hidden;
                box-shadow:0 10px 34px rgba(21,35,82,.10); }
  .cert-figure img{ display:block; width:100%; height:auto; }
  .cert-figure figcaption{ padding:16px 22px 20px; background:var(--navy); color:rgba(255,255,255,.72); font-size:.8rem; line-height:1.6;
                           text-align:center; text-align-last:center; }
  .cert-figure figcaption strong{ display:block; color:#fff; font-family:'Playfair Display',serif; font-size:1.02rem; margin-bottom:5px; }
  .cert-quote{ margin:30px 0; padding:26px 30px; background:linear-gradient(120deg, rgba(201,162,39,.10), rgba(21,35,82,.05));
               border-left:5px solid var(--gold); border-radius:0 12px 12px 0; }
  .cert-quote p{ margin:0; font-family:'Playfair Display',serif; font-size:1.12rem; line-height:1.75; color:var(--navy); font-style:italic;
                 text-align:justify; text-align-last:left; }
  @media (max-width:600px){ .cert-quote{ padding:20px 18px; } .cert-quote p{ font-size:1rem; } }
  .blog-thumb{ position:relative; height:172px; display:flex; align-items:flex-end; padding:16px; color:#fff;
               background:linear-gradient(150deg,var(--navy),var(--navy-mid)); }
  .blog-thumb.t2{ background:linear-gradient(150deg,#243a7d,var(--royal)); }
  .blog-thumb.t3{ background:linear-gradient(150deg,#1a2a5e,#3a2f6e); }
  .blog-thumb .blog-cat{ font-size:.68rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase;
                         background:var(--gold); color:var(--navy-deep); padding:5px 11px; border-radius:20px; position:relative; z-index:2; }
  /* Medallón central: círculo dorado translúcido con el icono en dorado brillante,
     como punto focal de la miniatura (en vez de una silueta gris apagada). */
  .blog-thumb-ico{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; }
  .blog-thumb-ico::before{ content:''; position:absolute; width:92px; height:92px; border-radius:50%;
                           background:rgba(201,162,39,.16); border:1.5px solid rgba(242,181,48,.55);
                           box-shadow:0 6px 22px rgba(0,0,0,.25); transition:transform .3s, background .3s; }
  .blog-thumb-ico svg{ position:relative; width:46px; height:46px; stroke:var(--gold-bright); fill:none; stroke-width:1.7;
                        stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 2px 6px rgba(0,0,0,.35)); }
  .blog-card:hover .blog-thumb-ico::before{ transform:scale(1.08); background:rgba(242,181,48,.24); }
  .blog-body{ padding:20px 22px 24px; display:flex; flex-direction:column; flex:1; }
  .blog-body h3{ font-size:1.16rem; line-height:1.3; margin-bottom:10px; }
  .blog-body p{ font-size:.94rem; color:var(--text-body); margin-bottom:16px; flex:1; }
  .blog-meta{ font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:10px; }
  .blog-link{ font-size:.82rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--navy); display:inline-flex; align-items:center; gap:6px; }
  .blog-link:hover{ color:var(--gold-dark); }
  .blog-social{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:38px; }
  .blog-social a{ display:inline-flex; align-items:center; gap:9px; padding:12px 22px; border-radius:10px; font-weight:800;
                  font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; color:#fff; text-decoration:none; transition:transform .2s, filter .2s; }
  .blog-social a:hover{ transform:translateY(-3px); filter:brightness(1.06); color:#fff; }
  .bs-yt{ background:#c4302b; } .bs-ig{ background:linear-gradient(120deg,#833ab4,#fd1d1d,#fcb045); } .bs-li{ background:#0a66c2; }
  .blog-social svg{ width:18px; height:18px; fill:currentColor; }
  /* ── Blog · barra de filtros por tema ── */
  .blog-filters{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:0 auto 34px; }
  .blog-chip{ font-family:'Lato',sans-serif; font-size:.78rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
              padding:9px 18px; border-radius:30px; border:1.5px solid #d9d3c2; background:#fff; color:var(--navy); cursor:pointer;
              transition:background .18s, color .18s, border-color .18s, transform .18s; }
  .blog-chip:hover{ transform:translateY(-2px); border-color:var(--gold); }
  .blog-chip.active{ background:var(--navy); color:#fff; border-color:var(--navy); }
  .blog-card.is-hidden{ display:none; }
  /* ── Blog · banda CTA inferior ── */
  .blog-cta{ margin-top:44px; background:var(--navy); border-radius:16px; padding:36px 32px; text-align:center; color:#fff; }
  .blog-cta h3{ color:#fff; font-size:1.5rem; margin-bottom:8px; }
  .blog-cta p{ color:rgba(255,255,255,.8); max-width:640px; margin:0 auto 22px; }
  .blog-cta .btn{ margin:0 6px 8px; }
  .blog-empty{ text-align:center; color:var(--mid-gray); font-style:italic; padding:30px 0; display:none; }


  /* ── Tablas de precios (precios.html) ── */
  .price-h { font-size: 1.45rem; margin: 40px 0 14px; padding-bottom: 8px; border-bottom: 2px solid var(--gold); }
  .price-h-sub { display: block; font-family: 'Lato', sans-serif; font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-dark); margin-top: 6px; }
  .price-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e8e4d8; border-radius: 12px; background: #fff; box-shadow: 0 4px 18px rgba(21,35,82,.06); }
  .price-table { width: 100%; border-collapse: collapse; min-width: 520px; font-size: .9rem; }
  .price-table thead th { background: var(--navy); color: #fff; text-align: left; font-family: 'Lato', sans-serif; font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; padding: 13px 18px; }
  .price-table tbody td { padding: 12px 18px; border-top: 1px solid #eee7d6; color: var(--text-body); vertical-align: top; }
  .price-table tbody tr:nth-child(even) { background: rgba(248,246,240,.7); }
  .price-table tbody tr:hover { background: rgba(201,162,39,.08); }
  .price-table tbody td:nth-child(2) { font-weight: 900; color: var(--navy); white-space: nowrap; }
  .price-table tbody td:nth-child(3) { color: #6a6a6a; font-size: .85rem; }
  .price-note { background: linear-gradient(120deg, rgba(201,162,39,.10), rgba(21,35,82,.04)); border-left: 5px solid var(--gold); border-radius: 0 12px 12px 0; padding: 20px 24px; margin: 22px 0; }
  .price-note p { font-size: .88rem; color: #555; line-height: 1.7; }
  @media (max-width: 600px) { .price-h { font-size: 1.25rem; } .price-table { font-size: .84rem; } .price-table thead th, .price-table tbody td { padding: 10px 12px; } }

  /* ── Estados de servicio en la tabla de precios ── */
  .pt-badge { display:inline-block; font-size:.62rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; padding:3px 8px; border-radius:20px; margin-left:7px; vertical-align:middle; white-space:nowrap; }
  .pt-req { background:rgba(201,162,39,.16); color:#8a6c17; border:1px solid rgba(201,162,39,.45); }
  .pt-prof { background:rgba(28,80,200,.10); color:var(--royal); border:1px solid rgba(28,80,200,.35); }
  .pt-closed { background:rgba(184,51,42,.10); color:var(--red); border:1px solid rgba(184,51,42,.35); }
  .price-legend { display:flex; flex-wrap:wrap; gap:16px; margin:18px 0 6px; font-size:.8rem; color:#5f5f5f; }
  .price-legend span b { font-weight:900; }
  .price-rules { list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; }
  .price-rules li { position:relative; padding-left:20px; font-size:.86rem; color:#555; line-height:1.65; text-align:justify; text-align-last:left; }
  .price-rules li::before { content:'▸'; position:absolute; left:0; top:0; color:var(--gold-dark); font-weight:900; }
