/* Cuidado de Oro — extra.css
   Extensiones para páginas de servicios, áreas de servicio,
   dropdown de navegación y burbuja de chat. */

/* ---------- Dropdown "Servicios" en la navegación ---------- */
.nav-drop{position:relative}
.nav-drop>button{background:none;border:0;cursor:pointer;font:inherit;color:inherit;display:inline-flex;align-items:center;gap:6px;padding:0}
.nav-drop>button .caret{width:12px;height:12px;transition:transform .2s}
.nav-sub{position:absolute;top:calc(100% + 14px);left:-14px;min-width:290px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:10px;display:none;z-index:60}
.nav-sub a{display:block!important;padding:10px 14px!important;font-size:.93rem;border-radius:6px;white-space:nowrap}
.nav-sub a:hover{background:var(--cream);color:var(--ink)}
.nav-drop:hover .nav-sub,.nav-drop:focus-within .nav-sub,.nav-drop.open .nav-sub{display:block}
.nav-drop:hover .caret{transform:rotate(180deg)}

/* ---------- Hero de páginas internas ---------- */
.page-hero{background:linear-gradient(135deg,#0a2540 0%,#133753 70%,#0a2540 100%);color:#fff;padding:110px 0 84px;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border:1px solid rgba(201,168,106,.35);border-radius:50%}
.page-hero::before{content:"";position:absolute;right:-60px;top:-60px;width:300px;height:300px;border:1px solid rgba(201,168,106,.22);border-radius:50%}
.page-hero .kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:700;margin-bottom:14px}
.page-hero h1{font-family:'Playfair Display',serif;font-weight:600;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.12;margin:0 0 18px;color:#fff}
.page-hero h1 em{font-style:italic;color:var(--gold)}
.page-hero p.lead{font-size:1.12rem;line-height:1.7;color:#d7e0e8;max-width:640px;margin:0 0 30px}
.page-hero .hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.crumb{font-size:.85rem;color:#9fb0bf;margin-bottom:20px}
.crumb a{color:#c9a86a;text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* ---------- Secciones de contenido ---------- */
.svc-section{padding:72px 0}
.svc-section.alt{background:var(--cream)}
.svc-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.svc-section h2{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,3.4vw,2.3rem);color:var(--ink);margin:0 0 18px;line-height:1.2}
.svc-section p{color:var(--body);line-height:1.75;margin:0 0 16px}
.includes{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:12px}
.includes li{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;line-height:1.6;color:var(--body)}
.includes li svg{flex:0 0 22px;width:22px;height:22px;color:var(--gold);margin-top:2px}
.note-clinical{background:#fff8ec;border:1px solid #e8d5a8;border-left:4px solid var(--gold);border-radius:8px;padding:16px 18px;color:#5a4a1e;line-height:1.65;font-size:.95rem;margin-top:26px}
.cta-card{background:#0a2540;color:#fff;border-radius:16px;padding:34px 30px;box-shadow:var(--shadow);position:sticky;top:110px}
.cta-card h3{font-family:'Playfair Display',serif;color:var(--gold);margin:0 0 12px;font-size:1.5rem}
.cta-card p{color:#d7e0e8;line-height:1.7;margin:0 0 20px;font-size:.98rem}
.cta-card .btn-whatsapp{width:100%;margin-bottom:10px}
.cta-card .btn-call{width:100%;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff}
.cta-card .btn-call:hover{border-color:var(--gold);color:var(--gold)}

/* ---------- Otros servicios ---------- */
.svc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:28px}
.svc-card{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 20px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold)}
.svc-card h3{font-family:'Playfair Display',serif;font-size:1.15rem;margin:0 0 8px}
.svc-card p{font-size:.92rem;color:var(--muted);margin:0;line-height:1.6}
.svc-card .go{color:var(--gold);font-weight:700;font-size:.88rem;margin-top:10px;display:inline-block}

/* ---------- Áreas de servicio ---------- */
.area-block{margin-bottom:56px}
.area-block h2{font-family:'Playfair Display',serif;font-size:clamp(1.5rem,3vw,2rem);color:var(--ink);margin:0 0 8px;display:flex;align-items:center;gap:12px}
.area-block h2 .count{background:var(--gold);color:#071a2a;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:700;border-radius:999px;padding:4px 12px}
.area-block>p{color:var(--muted);margin:0 0 22px}
.muni-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.muni{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px 15px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem;transition:transform .15s,border-color .15s,box-shadow .15s}
.muni:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-2px)}
.muni svg{width:20px;height:20px;color:var(--whatsapp);flex:0 0 20px}
.muni small{display:block;font-weight:400;color:var(--muted);font-size:.78rem}

/* ---------- Burbuja de chat ---------- */
.oro-chat{position:fixed;z-index:90;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}
.oro-chat-btn{width:64px;height:64px;border-radius:50%;border:3px solid #fff;background:#25D366;cursor:pointer;box-shadow:0 14px 34px rgba(0,0,0,.3);padding:0;overflow:hidden;transition:transform .2s;display:flex;align-items:center;justify-content:center}.oro-chat-btn svg{width:34px;height:34px;display:block}
.oro-chat-btn:hover{transform:scale(1.07)}
.oro-chat-btn img{width:100%;height:100%;object-fit:cover;display:block}
.oro-chat-btn .dot{position:absolute;top:2px;right:2px;width:15px;height:15px;background:#22c55e;border:3px solid #fff;border-radius:50%}
.oro-chat{position:fixed}
.oro-chat-wrap{position:relative}
.oro-popup{position:absolute;right:0;bottom:78px;width:min(330px,calc(100vw - 40px));background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(10,37,64,.28);overflow:hidden;transform-origin:bottom right;transform:scale(.6);opacity:0;pointer-events:none;transition:transform .25s cubic-bezier(.2,.9,.3,1.3),opacity .2s}
.oro-popup.open{transform:scale(1);opacity:1;pointer-events:auto}
.oro-popup-head{background:linear-gradient(135deg,#0a2540,#133753);padding:16px 18px;display:flex;gap:12px;align-items:center}
.oro-popup-head img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.oro-popup-head .who strong{display:block;color:#fff;font-size:.98rem}
.oro-popup-head .who span{color:#9fb0bf;font-size:.78rem;display:flex;align-items:center;gap:6px}
.oro-popup-head .who span::before{content:"";width:8px;height:8px;background:#22c55e;border-radius:50%;display:inline-block}
.oro-popup-close{margin-left:auto;background:rgba(255,255,255,.12);border:0;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:1rem;line-height:1}
.oro-popup-close:hover{background:rgba(255,255,255,.25)}
.oro-popup-body{padding:18px}
.oro-popup-body .bubble{background:var(--cream);border-radius:4px 14px 14px 14px;padding:13px 15px;color:var(--ink);line-height:1.6;font-size:.95rem;margin-bottom:14px}
.oro-popup-body .bubble strong{color:#0a2540}
.oro-cta{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--whatsapp);color:#fff;font-weight:700;text-decoration:none;border-radius:12px;padding:14px;min-height:54px;transition:filter .2s}
.oro-cta:hover{filter:brightness(1.08)}
.oro-cta svg{width:22px;height:22px}
.oro-popup-foot{text-align:center;font-size:.75rem;color:var(--muted);margin-top:10px}

/* ---------- Responsive ---------- */
@media(max-width:1030px){
  .nav-sub{position:static;display:none;box-shadow:none;border:0;border-left:2px solid var(--line);border-radius:0;padding:0 0 0 8px;margin:4px 0 8px;min-width:0;background:transparent}
  /* En táctil el :hover se queda pegado y rompe el abrir/cerrar: solo la clase .open controla */
  .nav-drop:hover .nav-sub,.nav-drop:focus-within .nav-sub{display:none}
  .nav-drop.open .nav-sub{display:grid}
  .nav-drop.open .caret{transform:rotate(180deg)}
  .nav-sub a{white-space:normal}
  .nav-drop>button{padding:7px 0;font-size:1rem}
  .svc-grid{grid-template-columns:1fr}
  .cta-card{position:static}
}
@media(max-width:720px){
  .page-hero{padding:90px 0 64px}
  .oro-popup{bottom:74px}
}
@media(prefers-reduced-motion:reduce){
  .oro-popup{transition:none}
}

/* Agencia vs independiente */
.agency-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}
.agency-col{border-radius:14px;padding:34px 30px}
.agency-col h3{font-family:"Playfair Display",serif;font-size:1.35rem;margin:0 0 18px}
.agency-col ul{list-style:none;margin:0 0 26px;padding:0}
.agency-col li{position:relative;padding:0 0 12px 28px;line-height:1.55;font-size:.98rem}
.agency-us{background:var(--navy);color:#fff}
.agency-us h3{color:var(--gold)}
.agency-us li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}
.agency-them{background:var(--paper);border:1px solid var(--line);color:var(--body)}
.agency-them h3{color:var(--ink)}
.agency-them li::before{content:"–";position:absolute;left:0;color:var(--muted);font-weight:700}
.agency-note{margin-top:28px;color:var(--muted);font-size:.92rem;font-style:italic;max-width:640px}
@media(max-width:768px){.agency-grid{grid-template-columns:1fr}}

/* Auditoría 2026-10-10: corrección de contraste e iconos */
.menu-btn svg{width:22px;height:22px}
.addr-line{display:flex;align-items:flex-start;gap:10px}
.addr-line svg{width:19px;height:19px;flex:0 0 auto;color:var(--gold)}
.service-card:nth-child(2) .btn-outline{color:#fff}
.service-card:nth-child(2) .btn-outline:hover{background:rgba(201,168,106,.16);border-color:var(--gold)}

/* Auditoría 2026-10-10: hero de páginas de pueblo — la plantilla usa
   .shell.hero-content juntos; el CSS del hero principal los espera anidados
   (.hero>.shell{display:flex}). Sin esto, el hero se rompe en desktop. */
.hero>.shell.hero-content{display:block;width:min(880px,100%);padding:84px 0 96px}

/* Auditoría 2026-10-10: el nav de index (10 enlaces + CTA) desborda hasta ~1500px
   y el botón dorado queda cortado. Se compacta el nav en ese rango. */
@media(max-width:1500px){
  .nav{gap:12px}
  .nav-links{gap:11px}
  .nav-links a{font-size:.8rem;letter-spacing:-.01em}
  .nav-links .btn{padding:10px 12px}
  .brand-slogan{display:none}
}

/* Auditoría 2026-10-10: .btn-whatsapp y .btn-secondary solo existían bajo .hero;
   en .page-hero (servicios) se veían como texto sin botón. */
.page-hero .btn-whatsapp{background:var(--whatsapp);color:#fff;border-radius:999px;box-shadow:0 12px 28px rgba(23,122,82,.22)}
.page-hero .btn-whatsapp svg{width:21px;height:21px}
.page-hero .btn-secondary{border-color:rgba(255,255,255,.55);color:#fff;background:rgba(255,255,255,.08);border-radius:999px}
.page-hero .btn-secondary:hover{border-color:var(--gold);background:rgba(201,168,106,.14)}

/* Auditoría 2026-10-10: el FAB "Chatea con Oro" (fixed, bottom:18px) tapaba el
   último link del footer en móvil. Se agrega despeje inferior al footer. */
@media(max-width:720px){footer{padding-bottom:calc(104px + env(safe-area-inset-bottom))!important}}

/* Auditoría 2026-10-10: en desktop la píldora "Chatea con Oro" (fixed, bottom-right)
   cubría el botón "Política de privacidad" del .legal. Se despeja a la derecha. */
@media(min-width:721px){.legal{padding-right:230px!important}}
