
  :root{
    /* ===== Paleta oficial Los Robles ===== */
    --navy:#182A66;          /* Azul marino profundo — color principal */
    --navy-800:#12204F;      /* Navy más oscuro para footer/hover */
    --navy-050:#EEF1FA;      /* Navy muy diluido para fondos suaves */
    --olive:#66761C;         /* Verde oliva — color secundario */
    --olive-700:#525F15;     /* Oliva hover */
    --olive-050:#F3F5E8;     /* Oliva muy diluido */
    --lavender:#F1EDF9;      /* Lavanda clara — detrás de íconos */
    --white:#FFFFFF;         /* Blanco puro — predominante */
    --gray-soft:#D9D9D9;     /* Gris suave — solo sombras/profundidad */
    --ink:#182A66;           /* Texto principal en navy */
    --ink-soft:#4A5578;      /* Texto secundario (navy desaturado) */
    --line: rgba(24,42,102,.14);
    --line-soft: rgba(24,42,102,.08);
    --radius: 14px;
    --shadow: 0 10px 30px rgba(217,217,217,.75), 0 4px 12px rgba(24,42,102,.06);
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--white);
    color:var(--ink);
    font-family:'Public Sans', system-ui, sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', Georgia, serif;
    font-weight:600;
    color:var(--navy);
    margin:0 0 .4em 0;
    line-height:1.08;
  }
  p{line-height:1.65; color:var(--ink-soft); margin:0 0 1em 0;}
  a{color:inherit;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
  img{max-width:100%; display:block;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:.72rem;
    color:var(--olive);
    font-weight:500;
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  .eyebrow::before{
    content:"";
    width:16px; height:1px; background:var(--olive);
    display:inline-block;
  }
  section{position:relative; padding:88px 0;}
  @media (max-width:720px){ section{padding:60px 0;} }

  /* San Juan destacado */
  .loc-line{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:18px;}
  .sanjuan{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--navy); color:#fff;
    font-family:'Fraunces', serif; font-weight:600; font-style:italic;
    font-size:clamp(1rem, 1.6vw, 1.2rem);
    padding:8px 20px; border-radius:999px;
    letter-spacing:.02em;
    box-shadow:0 6px 16px rgba(24,42,102,.22);
  }
  .sanjuan::before{content:""; width:8px; height:8px; border-radius:50%; background:#B9C86A; flex:none;}

  /* ---------- Marca ---------- */
  .brand{display:flex; align-items:center; text-decoration:none;}
  .brand-logo{height:52px; width:auto; display:block;}
  footer .brand-logo{height:84px;}
  @media (max-width:720px){ .brand-logo{height:44px;} footer .brand-logo{height:64px;} }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line-soft);
  }
  header .bar{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 0;
  }
  nav.primary{display:flex; align-items:center; gap:36px;}
  nav.primary a{
    text-decoration:none; color:var(--navy);
    font-size:.92rem; font-weight:500;
    position:relative; padding:4px 0;
  }
  nav.primary a::after{
    content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px;
    background:var(--olive); transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  nav.primary a:hover::after{transform:scaleX(1);}
  .header-cta{display:flex; align-items:center; gap:14px;}
  .phone-chip{
    display:flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono', monospace; font-size:.82rem;
    color:var(--navy); text-decoration:none;
  }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:12px 22px; border-radius:999px;
    font-weight:600; font-size:.88rem; text-decoration:none;
    border:1px solid transparent; cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  .btn:hover{transform:translateY(-2px) scale(1.05);}
  .btn:active{transform:translateY(0) scale(.98);}
  .btn-navy{background:var(--navy); color:#fff; box-shadow:0 4px 12px rgba(24,42,102,.25);}
  .btn-navy:hover{background:var(--navy-800); box-shadow:0 12px 26px rgba(24,42,102,.4);}
  .btn-olive{background:var(--olive); color:#fff; box-shadow:0 4px 12px rgba(102,118,28,.25);}
  .btn-olive:hover{background:var(--olive-700); box-shadow:0 12px 26px rgba(102,118,28,.4);}
  .btn-outline{background:transparent; color:var(--navy); border-color:var(--line);}
  .btn-outline:hover{border-color:var(--navy); background:var(--navy-050); box-shadow:0 8px 18px rgba(217,217,217,.9);}
  .btn-ghost-light{background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.45);}
  .btn-ghost-light:hover{background:rgba(255,255,255,.24);}
  .btn-sm{padding:9px 16px; font-size:.8rem;}
  .gmaps-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:12px;}

  .menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .menu-toggle span{display:block; width:22px; height:2px; background:var(--navy); margin:5px 0; transition:.25s;}

  /* ---------- Hero ---------- */
  .hero{
    padding:76px 0 100px;
    background:
      radial-gradient(circle at 85% 15%, rgba(102,118,28,.10), transparent 42%),
      linear-gradient(180deg, var(--white) 0%, var(--navy-050) 100%);
    overflow:hidden;
    position:relative;
  }
  .hero .wrap{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; position:relative; z-index:2;}
  .hero h1{font-size:clamp(2.3rem, 4.2vw, 3.4rem); max-width:15ch;}
  .hero h1 em{font-style:italic; color:var(--olive);}
  .hero p.lead{font-size:1.08rem; max-width:46ch; margin-bottom:1.6em;}
  .hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px;}
  .hours-chips{display:flex; gap:16px; flex-wrap:wrap;}
  .hour-chip{
    display:flex; align-items:center; gap:14px;
    background:var(--white); border:1px solid var(--line-soft);
    border-radius:16px; padding:14px 22px 14px 14px;
    box-shadow:0 8px 20px rgba(217,217,217,.7);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .hour-chip:hover{transform:translateY(-3px); box-shadow:0 14px 28px rgba(217,217,217,.95);}
  .hc-ic{
    width:44px; height:44px; border-radius:12px; background:var(--navy); flex:none;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 10px rgba(24,42,102,.3);
  }
  .hc-ic.olive{background:var(--olive); box-shadow:0 4px 10px rgba(102,118,28,.3);}
  .hc-ic svg{width:22px; height:22px;}
  .hc-label{
    display:block; font-family:'IBM Plex Mono',monospace; font-size:.66rem;
    text-transform:uppercase; letter-spacing:.1em; color:var(--ink-soft); margin-bottom:2px;
  }
  .hour-chip strong{font-family:'Fraunces',serif; font-size:1.25rem; color:var(--navy); font-weight:600; white-space:nowrap;}

  .hero-logo{position:relative; display:flex; align-items:center; justify-content:center; padding:30px 0;}
  .hero-logo::before{
    content:""; position:absolute; inset:auto;
    width:min(420px, 90%); aspect-ratio:1/1; border-radius:50%;
    background:radial-gradient(circle, var(--lavender) 0%, rgba(241,237,249,0) 70%);
    z-index:0;
  }
  .hero-logo img{
    position:relative; z-index:1;
    width:min(340px, 70vw); height:auto;
    filter:drop-shadow(0 18px 30px rgba(217,217,217,.9));
    animation:heroFloat 7s ease-in-out infinite;
  }
  @keyframes heroFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}

  /* ---------- Section headers ---------- */
  .section-head{max-width:640px; margin-bottom:44px;}
  .section-head h2{font-size:clamp(1.7rem, 3vw, 2.3rem);}

  /* ---------- Servicios ---------- */
  .services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .service-card{
    background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius);
    padding:28px 26px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .service-card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--line);}
  .service-icon{
    width:46px; height:46px; border-radius:12px; background:var(--lavender);
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  }
  .service-icon svg{width:24px; height:24px; stroke:var(--navy);}
  .service-card h3{font-size:1.08rem; margin-bottom:.3em;}
  .service-card p{font-size:.92rem; margin:0;}

  /* ---------- Pruebas ---------- */
  .tests-wrap{display:grid; grid-template-columns:280px 1fr; gap:48px;}
  .tests-side{position:sticky; top:96px; align-self:start;}
  .tests-side .side-logo{width:84px; height:auto; margin-bottom:18px; display:block;}
  .tests-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .test-cat{
    border:1px solid var(--line-soft); border-radius:var(--radius);
    padding:22px 24px; background:var(--white);
    box-shadow:0 4px 14px rgba(217,217,217,.45);
  }
  .test-cat .num{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--olive); letter-spacing:.08em;}
  .test-cat h4{font-size:1.02rem; margin:.3em 0 .5em;}
  .test-cat ul{margin:0; padding:0; list-style:none;}
  .test-cat li{
    font-size:.88rem; color:var(--ink-soft); padding:6px 0;
    border-top:1px solid var(--line-soft);
  }
  .test-cat li:first-child{border-top:none;}
  .note-box{
    margin-top:26px; padding:18px 22px; background:var(--lavender);
    border-radius:var(--radius); font-size:.88rem; color:var(--ink-soft);
    border:1px dashed var(--line);
  }
  .note-box strong{color:var(--navy);}

  /* ---------- Domicilio ---------- */
  .domicilio{
    background:var(--navy); color:#fff; border-radius:24px;
    padding:64px 56px; position:relative; overflow:hidden;
  }
  .domicilio::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(circle at 90% 10%, rgba(102,118,28,.28), transparent 42%),
      radial-gradient(circle at 5% 90%, rgba(255,255,255,.06), transparent 40%);
  }
  .domicilio-inner{position:relative; z-index:2; display:grid; grid-template-columns:.9fr 1.1fr; gap:48px;}
  .domicilio h2{color:#fff;}
  .domicilio p{color:rgba(255,255,255,.78);}
  .domicilio .eyebrow{color:#B9C86A;}
  .domicilio .eyebrow::before{background:#B9C86A;}
  .steps{display:flex; flex-direction:column;}
  .step{display:flex; gap:20px; padding:20px 0; border-top:1px solid rgba(255,255,255,.16);}
  .step:first-child{border-top:none;}
  .step .n{font-family:'Fraunces',serif; font-size:1.6rem; color:#B9C86A; font-weight:600; flex:none; width:40px;}
  .step h4{color:#fff; margin:0 0 .25em; font-size:1.02rem; font-family:'Public Sans',sans-serif; font-weight:600;}
  .step p{margin:0; font-size:.9rem;}

  /* ---------- Mapa de cobertura ---------- */
  .coverage{margin-top:32px;}
  .coverage-head{text-align:center; max-width:640px; margin:0 auto 26px;}
  .coverage-head h3{font-size:clamp(1.4rem, 2.4vw, 1.9rem);}
  .coverage-head h3 em{font-style:italic; color:var(--olive);}
  .coverage-map{
    border-radius:20px; overflow:hidden;
    border:1px solid var(--line-soft);
    box-shadow:0 10px 30px rgba(217,217,217,.75);
    background:#F4F2FB;
  }
  .coverage-map svg{display:block; width:100%; height:auto;}
  .coverage-note{
    display:flex; align-items:center; gap:14px;
    background:var(--white); border:1px solid var(--line-soft);
    border-radius:16px; padding:16px 22px; margin-top:18px;
    box-shadow:0 4px 14px rgba(217,217,217,.45);
  }
  .coverage-note p{margin:0; font-size:.92rem;}
  .coverage-note strong{color:var(--navy);}
  .cn-check{
    width:38px; height:38px; border-radius:50%; background:var(--olive); flex:none;
    display:flex; align-items:center; justify-content:center;
  }
  .cn-check svg{width:19px; height:19px;}

  /* ---------- Planes / pagos ---------- */
  .split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  .planes-list, .pay-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;}
  .pill{
    padding:8px 16px; border-radius:999px; background:var(--white); border:1px solid var(--line);
    font-size:.84rem; color:var(--navy); font-weight:500;
  }

  /* ---------- Contacto ---------- */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
  .contact-card{
    background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius); padding:34px;
    box-shadow:0 4px 14px rgba(217,217,217,.45);
  }
  .contact-row{display:flex; gap:16px; padding:16px 0; border-top:1px solid var(--line-soft);}
  .contact-row:first-child{border-top:none;}
  .contact-row .ic{
    width:38px; height:38px; border-radius:10px; background:var(--lavender);
    display:flex; align-items:center; justify-content:center; flex:none;
  }
  .contact-row .ic svg{width:19px; height:19px; stroke:var(--navy);}
  .contact-row a{text-decoration:none; font-weight:600; color:var(--navy);}
  .contact-row a.btn-navy{color:#fff;}
  .contact-row a.btn-outline{color:var(--navy);}
  .contact-row .label{font-size:.74rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.08em; font-family:'IBM Plex Mono',monospace; margin-bottom:2px;}
  .hours-table{width:100%; border-collapse:collapse; margin-top:6px;}
  .hours-table td{padding:9px 0; font-size:.92rem; border-top:1px solid var(--line-soft);}
  .hours-table td:first-child{color:var(--ink-soft);}
  .hours-table td:last-child{text-align:right; font-family:'IBM Plex Mono',monospace; color:var(--navy); font-weight:500;}
  .map-frame{
    border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-soft); height:100%; min-height:340px;
    box-shadow:0 4px 14px rgba(217,217,217,.45);
  }
  .map-frame iframe{width:100%; height:100%; min-height:340px; border:0; display:block;}
  .social-row{display:flex; gap:12px; margin-top:20px;}
  .social-btn{
    width:40px; height:40px; border-radius:10px; background:var(--lavender);
    display:flex; align-items:center; justify-content:center; text-decoration:none;
    transition:background .2s ease;
  }
  .social-btn:hover{background:var(--navy-050);}
  .social-btn svg{width:18px; height:18px; stroke:var(--navy);}

  /* ---------- Footer ---------- */
  footer{background:var(--navy-800); color:rgba(255,255,255,.7); padding:44px 0 30px;}
  footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
  footer .brand{color:#fff;}
  footer .fine{font-size:.78rem; color:rgba(255,255,255,.5);}

  /* ---------- Formulario Contáctanos ---------- */
  .form-split{display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:start;}
  .contact-form{
    background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius);
    padding:32px; box-shadow:0 4px 14px rgba(217,217,217,.45);
  }
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .form-field{margin-bottom:16px;}
  .form-field label{
    display:block; font-size:.78rem; font-weight:600; color:var(--navy);
    text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px;
    font-family:'IBM Plex Mono', monospace;
  }
  .form-field input, .form-field textarea{
    width:100%; padding:12px 14px; border:1px solid var(--line);
    border-radius:10px; font-family:'Public Sans', sans-serif; font-size:.95rem;
    color:var(--navy); background:var(--white); resize:vertical;
  }
  .form-field input:focus, .form-field textarea:focus{
    outline:2px solid var(--navy); outline-offset:1px; border-color:var(--navy);
  }
  .form-field input::placeholder, .form-field textarea::placeholder{color:#9aa3bd;}
  .form-fine{font-size:.75rem; color:var(--ink-soft); margin:12px 0 0; text-align:center;}
  .hidden-field{display:none;}

  /* ---------- WhatsApp flotante ---------- */
  .wa-float{
    position:fixed; right:22px; bottom:22px; z-index:90;
    display:flex; align-items:center; gap:12px;
    text-decoration:none;
  }
  .wa-label{
    background:var(--white); color:var(--navy);
    font-size:.82rem; font-weight:600;
    padding:10px 16px; border-radius:999px;
    border:1px solid var(--line-soft);
    box-shadow:0 6px 18px rgba(217,217,217,.9);
    white-space:nowrap;
  }
  .wa-bubble{
    width:58px; height:58px; border-radius:50%;
    background:#25D366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 22px rgba(37,211,102,.45);
    transition:transform .2s ease;
    animation:waPulse 2.6s ease-in-out infinite;
  }
  .wa-float:hover .wa-bubble{transform:scale(1.08);}
  @keyframes waPulse{
    0%,100%{box-shadow:0 8px 22px rgba(37,211,102,.45);}
    50%{box-shadow:0 8px 22px rgba(37,211,102,.45), 0 0 0 12px rgba(37,211,102,.12);}
  }
  @media (max-width:720px){
    .wa-label{display:none;}
    .wa-bubble{width:54px; height:54px;}
  }

  .reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:none;}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1; transform:none; transition:none;}
    .hero-logo img{animation:none !important;}
    .wa-bubble{animation:none !important;}
  }

  @media (max-width:980px){
    .hero .wrap{grid-template-columns:1fr; gap:40px;}
    .hero-logo img{width:min(260px, 60vw);}
    .services-grid{grid-template-columns:1fr 1fr;}
    .tests-wrap{grid-template-columns:1fr;}
    .tests-side{position:static;}
    .domicilio-inner{grid-template-columns:1fr;}
    .split{grid-template-columns:1fr;}
    .form-split{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
  }
  @media (max-width:720px){
    nav.primary{display:none;}
    .menu-toggle{display:block;}
    .phone-chip{display:none;}
    .header-cta{gap:8px;}
    .header-cta .btn{padding:9px 13px; font-size:.76rem;}
    .tests-grid{grid-template-columns:1fr;}
    .services-grid{grid-template-columns:1fr 1fr;}
    .domicilio{padding:40px 26px;}
  }

  /* ---------- Ocultar contenedor de idioma ---------- */
  [hidden]{display:none !important;}

  /* ---------- Selector de idioma ---------- */
  .lang-switch{
    display:flex; align-items:center; gap:2px;
    border:1px solid var(--line); border-radius:999px; padding:3px;
    background:var(--white);
  }
  .lang-switch button{
    border:none; background:transparent; cursor:pointer;
    font-family:'IBM Plex Mono',monospace; font-size:.72rem; font-weight:600;
    padding:6px 10px; border-radius:999px; color:var(--ink-soft);
  }
  .lang-switch button.active{background:var(--navy); color:#fff;}


  .ls-label{
    font-family:'IBM Plex Mono',monospace; font-size:.62rem; text-transform:uppercase;
    letter-spacing:.08em; color:var(--ink-soft); padding:0 4px 0 8px;
  }

  /* ---------- Banner Dorado ---------- */
  .dorado-banner{
    background:linear-gradient(90deg, var(--navy) 0%, #1E3378 60%, #2A4090 100%);
    border-top:3px solid var(--gold); border-bottom:3px solid var(--gold);
  }
  .db-inner{
    display:flex; align-items:center; justify-content:center; gap:18px;
    padding:16px 28px; flex-wrap:wrap; text-align:center;
  }
  .db-text{color:#fff; font-size:.95rem;}
  .db-text strong{font-family:'Fraunces',serif; font-style:italic; color:var(--gold); font-size:1.08rem; margin-right:8px;}
  .btn-gold{background:var(--gold); color:var(--navy); box-shadow:0 4px 12px rgba(199,154,61,.35);}
  .btn-gold:hover{background:#B88930; color:#fff; box-shadow:0 12px 26px rgba(199,154,61,.5);}

  /* ---------- Sección Dorado ---------- */
  :root{--gold:#C79A3D;}
  .dorado-sec{
    background:
      radial-gradient(circle at 88% 12%, rgba(199,154,61,.22), transparent 42%),
      radial-gradient(circle at 8% 90%, rgba(199,154,61,.1), transparent 45%),
      var(--navy);
    color:#fff;
  }
  .dorado-sec .eyebrow{color:var(--gold);}
  .dorado-sec .eyebrow::before{background:var(--gold);}
  .dorado-head{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; margin-bottom:56px;}
  .dorado-head h2{color:#fff; font-size:clamp(1.9rem, 3.4vw, 2.7rem); margin-bottom:.15em;}
  .dorado-script{
    font-family:'Fraunces',serif; font-style:italic; font-weight:600;
    color:var(--gold); font-size:clamp(1.6rem, 2.8vw, 2.2rem); margin-bottom:.4em;
  }
  .dorado-sub{
    font-family:'IBM Plex Mono',monospace; letter-spacing:.12em; text-transform:uppercase;
    font-size:.8rem; color:rgba(255,255,255,.85); margin-bottom:1.2em;
  }
  .dorado-head p{color:rgba(255,255,255,.8);}
  .dorado-tagline{
    font-family:'IBM Plex Mono',monospace; letter-spacing:.2em; text-transform:uppercase;
    font-size:.72rem; color:var(--gold); margin-top:1.6em;
  }
  .dorado-cta{
    background:#fff; border-radius:var(--radius); padding:32px;
    box-shadow:0 20px 50px rgba(0,0,0,.3);
  }
  .dorado-cta h3{font-size:1.3rem;}
  .dorado-cta h3 em{font-style:italic; color:var(--gold);}
  .dorado-cta .phones{margin:14px 0 18px;}
  .dorado-cta .phones a{
    display:block; text-decoration:none; color:var(--navy); font-weight:700;
    font-family:'IBM Plex Mono',monospace; font-size:1.05rem; padding:4px 0;
  }
  .dorado-cta .btn{width:100%; margin-bottom:10px;}
  .benefits-grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:14px;
    margin-bottom:48px;
  }
  .benefit{
    border:1px solid rgba(255,255,255,.18); border-radius:14px;
    padding:20px 14px; text-align:center;
    background:rgba(255,255,255,.04);
  }
  .benefit svg{width:28px; height:28px; stroke:var(--gold); margin-bottom:10px;}
  .benefit span{display:block; font-size:.82rem; font-weight:600; color:rgba(255,255,255,.92); line-height:1.35;}
  .communities{
    display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap;
  }
  .communities .c-label{
    font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.14em;
    font-size:.72rem; color:var(--gold);
  }
  .c-pill{
    padding:8px 18px; border-radius:999px; border:1px solid var(--gold);
    color:#fff; font-size:.86rem; font-weight:500;
    display:inline-flex; align-items:center; gap:8px;
  }
  .c-pill::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--gold);}
  @media (max-width:980px){
    .dorado-head{grid-template-columns:1fr;}
  }

  /* ===== Botón A domicilio en header ===== */
  .nav-dom-btn{white-space:nowrap;}
  @media(max-width:980px){ .nav-dom-btn{display:none;} }

  /* ===== Banner llamativo hacia servicio a domicilio ===== */
  .dom-hero{
    position:relative; overflow:hidden;
    background:linear-gradient(115deg, var(--navy) 0%, #1E3378 55%, #24408f 100%);
    border-radius:24px;
    margin:0 0 8px;
    box-shadow:0 20px 50px rgba(24,42,102,.28);
  }
  .dom-hero::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(circle at 88% 20%, rgba(199,154,61,.28), transparent 45%),
      radial-gradient(circle at 10% 90%, rgba(102,118,28,.22), transparent 48%);
  }
  .dom-hero-inner{position:relative; z-index:2; display:grid; grid-template-columns:1.1fr .9fr; gap:20px; align-items:center; padding:44px 48px;}
  .dom-hero .eyebrow{color:var(--gold);}
  .dom-hero .eyebrow::before{background:var(--gold);}
  .dom-hero h2{color:#fff; font-size:clamp(1.7rem,3vw,2.4rem); margin-bottom:.25em; max-width:16ch;}
  .dom-hero h2 em{font-style:italic; color:var(--gold);}
  .dom-hero p{color:rgba(255,255,255,.82); margin:0 0 1.4em; max-width:46ch;}
  .dom-hero-badges{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px;}
  .dom-hero-badges span{
    display:inline-flex; align-items:center; gap:7px;
    background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25);
    color:#fff; font-size:.82rem; font-weight:500; padding:7px 14px; border-radius:999px;
  }
  .dom-hero-badges svg{width:15px;height:15px;stroke:var(--gold);}
  .dom-hero-cta{display:flex; flex-wrap:wrap; gap:12px;}
  .dom-hero-art{display:flex; align-items:center; justify-content:center;}
  .dom-hero-art svg{width:100%; max-width:280px; height:auto;}
  @media(max-width:820px){
    .dom-hero-inner{grid-template-columns:1fr; padding:34px 28px; text-align:center;}
    .dom-hero .eyebrow{justify-content:center;}
    .dom-hero h2, .dom-hero p{margin-left:auto;margin-right:auto;}
    .dom-hero-badges,.dom-hero-cta{justify-content:center;}
    .dom-hero-art{display:none;}
  }

  /* ===== Carrusel de fotos ===== */
  .gallery-head{text-align:center; max-width:640px; margin:0 auto 32px;}
  .gallery-head .eyebrow{justify-content:center;}
  .gallery-head h2{font-size:clamp(1.7rem,3vw,2.3rem);}
  .carousel{position:relative; max-width:960px; margin:0 auto;}
  .carousel-viewport{overflow:hidden; border-radius:20px; box-shadow:0 14px 40px rgba(217,217,217,.85); border:1px solid var(--line-soft);}
  .carousel-track{display:flex; transition:transform .5s cubic-bezier(.5,0,.2,1);}
  .carousel-slide{min-width:100%; position:relative;}
  .carousel-slide img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block;}
  .carousel-cap{
    position:absolute; left:0; right:0; bottom:0;
    background:linear-gradient(0deg, rgba(18,32,79,.82), transparent);
    color:#fff; padding:40px 24px 18px; font-weight:600; font-size:1rem;
    font-family:'Fraunces',serif;
  }
  .carousel-btn{
    position:absolute; top:50%; transform:translateY(-50%);
    width:46px;height:46px;border-radius:50%;border:none;cursor:pointer;
    background:rgba(255,255,255,.92); color:var(--navy);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 6px 18px rgba(24,42,102,.25); transition:background .2s, transform .2s;
    z-index:3;
  }
  .carousel-btn:hover{background:#fff; transform:translateY(-50%) scale(1.08);}
  .carousel-btn svg{width:22px;height:22px;stroke:var(--navy);stroke-width:2.4;fill:none;}
  .carousel-btn.prev{left:14px;}
  .carousel-btn.next{right:14px;}
  .carousel-dots{display:flex;justify-content:center;gap:9px;margin-top:18px;}
  .carousel-dots button{width:9px;height:9px;border-radius:50%;border:none;cursor:pointer;background:var(--gray-soft);padding:0;transition:background .2s,width .2s;}
  .carousel-dots button.active{background:var(--navy);width:26px;border-radius:999px;}
  @media(max-width:600px){ .carousel-btn{width:38px;height:38px;} }

/* ============================================================
   ===============  SOLUCIONES LOS ROBLES  ====================
   Componentes añadidos para las 6 páginas de pilares
   ============================================================ */

/* ---------- Nav dropdown "Soluciones" ---------- */
.has-drop{position:relative;}
.drop-trigger{
  display:inline-flex; align-items:center; gap:6px;
  background:none; border:none; cursor:pointer; padding:4px 0;
  font-family:'Public Sans', sans-serif; font-size:.92rem; font-weight:500;
  color:var(--navy);
}
.drop-trigger svg{width:12px; height:12px; transition:transform .25s ease;}
.has-drop[data-open="true"] .drop-trigger svg{transform:rotate(180deg);}
.has-drop::after{
  content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%);
  width:min(700px, 94vw); height:20px; display:none;
}
.has-drop[data-open="true"]::after{display:block;}
.drop-panel{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(-6px);
  width:min(680px, 92vw);
  background:#fff; border:1px solid var(--line);
  border-radius:16px; padding:14px;
  box-shadow:0 24px 60px rgba(24,42,102,.16);
  display:grid; grid-template-columns:1fr 1fr; gap:6px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  z-index:80;
}
.has-drop[data-open="true"] .drop-panel{opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);}
.drop-item{
  display:flex; gap:12px; align-items:flex-start;
  padding:12px; border-radius:11px; text-decoration:none;
  transition:background .18s ease;
}
.drop-item:hover{background:var(--navy-050);}
.drop-ic{
  flex:none; width:36px; height:36px; border-radius:9px;
  background:var(--lavender); display:grid; place-items:center;
}
.drop-ic svg{width:19px; height:19px; stroke:var(--navy); fill:none; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round;}
.drop-item strong{display:block; font-size:.9rem; color:var(--navy); font-weight:600; margin-bottom:2px;}
.drop-item span{display:block; font-size:.79rem; color:var(--ink-soft); line-height:1.4;}
@media (max-width:900px){ .drop-panel, .has-drop::after{display:none !important;} }

/* ---------- Rejilla de 6 soluciones (home) ---------- */
.sol-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px;}
.sol-card{
  position:relative; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:28px 24px 24px;
  text-decoration:none; overflow:hidden;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.sol-card::before{
  content:""; position:absolute; inset:0 auto auto 0; width:100%; height:3px;
  background:linear-gradient(90deg, var(--navy), var(--olive));
  transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.sol-card:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:transparent;}
.sol-card:hover::before{transform:scaleX(1);}
.sol-ic{
  width:50px; height:50px; border-radius:13px; background:var(--lavender);
  display:grid; place-items:center; margin-bottom:16px;
}
.sol-ic svg{width:25px; height:25px; stroke:var(--navy); fill:none; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round;}
.sol-card h3{font-size:1.16rem; margin-bottom:.35em;}
.sol-card p{font-size:.9rem; margin-bottom:1.1em; flex:1;}
.sol-go{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--olive); font-weight:500;
  display:inline-flex; align-items:center; gap:7px;
}
.sol-go::after{content:"→"; transition:transform .25s ease;}
.sol-card:hover .sol-go::after{transform:translateX(4px);}
@media (max-width:900px){ .sol-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .sol-grid{grid-template-columns:1fr;} }

/* ---------- Hero de página interior ---------- */
.ph{
  padding:88px 0 76px; color:#fff; position:relative; overflow:hidden;
  background:
    radial-gradient(circle at 88% 12%, rgba(102,118,28,.32), transparent 50%),
    linear-gradient(160deg, #182A66 0%, #12204F 100%);
}
.ph::after{
  content:""; position:absolute; right:-90px; bottom:-120px;
  width:380px; height:380px; border-radius:50%;
  border:1px solid rgba(255,255,255,.09);
}
.ph .wrap{position:relative; z-index:2;}
.ph .eyebrow{color:#B9C86A;}
.ph .eyebrow::before{background:#B9C86A;}
.ph h1{color:#fff; font-size:clamp(2rem, 4.6vw, 3.25rem); max-width:17ch; margin-top:.35em;}
.ph .ph-lead{
  color:rgba(255,255,255,.86); font-size:clamp(1rem,1.35vw,1.14rem);
  max-width:60ch; line-height:1.7; margin-top:1.1em;
}
.ph-cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px;}
.ph-note{
  font-family:'IBM Plex Mono', monospace; font-size:.74rem; letter-spacing:.06em;
  color:rgba(255,255,255,.55); margin-top:22px;
}
.btn-light{background:#fff; color:var(--navy);}
.btn-light:hover{background:var(--lavender);}
.btn-onnavy{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.4);}
.btn-onnavy:hover{background:rgba(255,255,255,.11); border-color:rgba(255,255,255,.7);}

/* ---------- Migas ---------- */
.crumbs{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; letter-spacing:.07em;
  padding:16px 0; border-bottom:1px solid var(--line-soft); color:var(--ink-soft);
}
.crumbs a{color:var(--olive); text-decoration:none;}
.crumbs a:hover{text-decoration:underline;}

/* ---------- Bloque problema / cita ---------- */
.pullquote{
  border-left:3px solid var(--olive); padding:6px 0 6px 26px;
  margin:30px 0; max-width:62ch;
}
.pullquote p{
  font-family:'Fraunces', serif; font-size:clamp(1.15rem,2vw,1.5rem);
  color:var(--navy); line-height:1.42; font-style:italic; margin:0;
}

/* ---------- Lista de audiencia ---------- */
.aud-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px;}
.aud{
  display:flex; gap:12px; align-items:flex-start;
  background:var(--navy-050); border-radius:12px; padding:18px 18px;
}
.aud-check{
  flex:none; width:22px; height:22px; border-radius:50%; background:var(--olive);
  display:grid; place-items:center; margin-top:2px;
}
.aud-check svg{width:12px; height:12px; stroke:#fff; stroke-width:3; fill:none;
  stroke-linecap:round; stroke-linejoin:round;}
.aud p{margin:0; font-size:.91rem; color:var(--ink); line-height:1.5;}
@media (max-width:880px){ .aud-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .aud-grid{grid-template-columns:1fr;} }

/* ---------- 3 pasos ---------- */
.flow{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:34px;}
.flow-step{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 24px; position:relative;
}
.flow-num{
  font-family:'IBM Plex Mono', monospace; font-size:.74rem; letter-spacing:.12em;
  color:var(--olive); font-weight:500; display:block; margin-bottom:12px;
}
.flow-step h3{font-size:1.06rem; margin-bottom:.4em;}
.flow-step p{font-size:.9rem; margin:0;}
@media (max-width:820px){ .flow{grid-template-columns:1fr;} }

/* ---------- Preguntas reales (Specialized) ---------- */
.qa-list{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:26px;}
.qa{
  display:flex; gap:12px; align-items:flex-start;
  background:#fff; border:1px solid var(--line); border-radius:11px;
  padding:15px 18px; font-size:.92rem; color:var(--ink); line-height:1.5;
}
.qa-q{
  flex:none; font-family:'Fraunces', serif; font-weight:700;
  color:var(--olive); font-size:1.05rem; line-height:1.2;
}
@media (max-width:780px){ .qa-list{grid-template-columns:1fr;} }

/* ---------- Tarjetas de área / biomarcador ---------- */
.area-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:32px;}
.area{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:30px 28px; transition:box-shadow .28s ease, transform .28s ease;
}
.area:hover{box-shadow:var(--shadow); transform:translateY(-3px);}
.area-tag{
  font-family:'IBM Plex Mono', monospace; font-size:.7rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--olive); display:block; margin-bottom:10px;
}
.area h3{font-size:1.2rem; margin-bottom:.45em;}
.area p{font-size:.93rem;}
.area-ask{
  margin-top:18px; padding-top:16px; border-top:1px dashed var(--line);
  font-size:.88rem; color:var(--navy); font-style:italic;
}
@media (max-width:820px){ .area-grid{grid-template-columns:1fr;} }

/* ---------- Casos de uso (At Work) ---------- */
.uc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:30px;}
.uc{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 22px; transition:border-color .25s ease, box-shadow .25s ease;
}
.uc:hover{border-color:var(--olive); box-shadow:var(--shadow);}
.uc-ic{
  width:42px; height:42px; border-radius:11px; background:var(--olive-050);
  display:grid; place-items:center; margin-bottom:14px;
}
.uc-ic svg{width:21px; height:21px; stroke:var(--olive-700); fill:none; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round;}
.uc h4{font-family:'Fraunces',serif; font-size:1.02rem; color:var(--navy); margin:0 0 .4em;}
.uc p{font-size:.88rem; margin:0;}
@media (max-width:900px){ .uc-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .uc-grid{grid-template-columns:1fr;} }

/* ---------- Banda oscura destacada ---------- */
.band{
  background:linear-gradient(155deg,#182A66,#12204F); color:#fff;
  border-radius:20px; padding:56px 48px; position:relative; overflow:hidden;
}
.band::after{
  content:""; position:absolute; left:-70px; top:-70px;
  width:260px; height:260px; border-radius:50%;
  background:rgba(102,118,28,.18);
}
.band > *{position:relative; z-index:2;}
.band h2{color:#fff;}
.band p{color:rgba(255,255,255,.82);}
.band .eyebrow{color:#B9C86A;}
.band .eyebrow::before{background:#B9C86A;}
@media (max-width:720px){ .band{padding:38px 24px;} }

/* ---------- Aviso clínico ---------- */
.disclaimer{
  display:flex; gap:14px; align-items:flex-start;
  background:var(--olive-050); border:1px solid rgba(102,118,28,.22);
  border-radius:12px; padding:20px 22px; margin-top:34px;
}
.disclaimer svg{
  flex:none; width:20px; height:20px; stroke:var(--olive-700);
  fill:none; stroke-width:1.9; margin-top:2px;
  stroke-linecap:round; stroke-linejoin:round;
}
.disclaimer p{margin:0; font-size:.87rem; color:var(--olive-700); line-height:1.6;}

/* ---------- Acordeón educativo ---------- */
.acc{border-top:1px solid var(--line); margin-top:30px;}
.acc details{border-bottom:1px solid var(--line);}
.acc summary{
  list-style:none; cursor:pointer; padding:24px 44px 24px 0; position:relative;
  font-family:'Fraunces', serif; font-size:1.16rem; font-weight:600; color:var(--navy);
}
.acc summary::-webkit-details-marker{display:none;}
.acc summary::after{
  content:"+"; position:absolute; right:8px; top:50%; transform:translateY(-50%);
  font-family:'Public Sans',sans-serif; font-size:1.5rem; font-weight:300;
  color:var(--olive); transition:transform .25s ease;
}
.acc details[open] summary::after{content:"−";}
.acc summary:hover{color:var(--olive-700);}
.acc-body{padding:0 0 26px; max-width:72ch;}
.acc-body p{font-size:.94rem;}
.acc-body h4{
  font-family:'IBM Plex Mono', monospace; font-size:.74rem; letter-spacing:.11em;
  text-transform:uppercase; color:var(--olive); font-weight:500; margin:20px 0 .5em;
}
.acc-body ul{margin:0 0 1em; padding-left:20px;}
.acc-body li{color:var(--ink-soft); line-height:1.65; font-size:.94rem; margin-bottom:.35em;}

/* ---------- CTA final ---------- */
.endcta{text-align:center; max-width:64ch; margin:0 auto;}
.endcta h2{font-size:clamp(1.6rem,3.2vw,2.4rem);}
.endcta .ph-cta{justify-content:center;}

/* ---------- Formulario en dos columnas ---------- */
.formbox{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:34px 32px; box-shadow:var(--shadow);
}
.formbox h3{font-size:1.3rem; margin-bottom:.3em;}
@media (max-width:720px){ .formbox{padding:26px 20px;} }
.form-field select{
  width:100%; padding:12px 14px; border:1px solid var(--line);
  border-radius:9px; font-family:'Public Sans',sans-serif; font-size:.95rem;
  color:var(--ink); background:#fff; appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23182A66' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center; background-size:16px;
}
.form-field select:focus{outline:none; border-color:var(--olive);}


/* ============================================================
   ===============  PILARES LOS ROBLES  =======================
   Sección explicativa en la portada
   ============================================================ */
.pilares{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:40px;}
.pilar{
  position:relative; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line); border-radius:18px;
  padding:34px 32px 30px; text-decoration:none; overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.pilar::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg, var(--navy), var(--olive));
  transform:scaleY(0); transform-origin:top; transition:transform .38s ease;
}
.pilar:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent;}
.pilar:hover::before{transform:scaleY(1);}
.pilar-top{display:flex; align-items:center; gap:16px; margin-bottom:16px;}
.pilar-ic{
  flex:none; width:54px; height:54px; border-radius:15px; background:var(--lavender);
  display:grid; place-items:center;
}
.pilar-ic svg{width:27px; height:27px; stroke:var(--navy); fill:none; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round;}
.pilar-num{
  font-family:'IBM Plex Mono', monospace; font-size:.7rem; letter-spacing:.16em;
  color:var(--olive); font-weight:500; display:block; margin-bottom:5px;
}
.pilar-top h3{font-size:1.32rem; margin:0; line-height:1.15;}
.pilar-tag{
  font-family:'Fraunces', serif; font-style:italic; font-size:1.02rem;
  color:var(--olive-700); margin:0 0 .8em; line-height:1.4;
}
.pilar > p{font-size:.93rem; margin-bottom:1.1em;}
.pilar-list{list-style:none; padding:0; margin:0 0 22px; flex:1;}
.pilar-list li{
  position:relative; padding-left:24px; margin-bottom:9px;
  font-size:.88rem; color:var(--ink); line-height:1.5;
}
.pilar-list li::before{
  content:""; position:absolute; left:2px; top:.5em;
  width:9px; height:9px; border-radius:50%;
  background:var(--olive-050); border:2px solid var(--olive);
}
.pilar-go{
  align-self:flex-start;
  display:inline-flex; align-items:center; gap:9px;
  background:var(--navy-050); color:var(--navy);
  font-size:.86rem; font-weight:600;
  padding:11px 20px; border-radius:999px;
  transition:background .25s ease, color .25s ease, gap .25s ease;
}
.pilar-go::after{content:"→"; transition:transform .25s ease;}
.pilar:hover .pilar-go{background:var(--navy); color:#fff;}
.pilar:hover .pilar-go::after{transform:translateX(4px);}
@media (max-width:900px){ .pilares{grid-template-columns:1fr; gap:18px;} }
@media (max-width:620px){ .pilar{padding:28px 22px 26px;} .pilar-top h3{font-size:1.18rem;} }

/* Intro de la sección de pilares */
.pilares-intro{max-width:62ch; margin:1.2em auto 0; text-align:center;}
.pilares-intro p{font-size:1.02rem;}
