/* Lo propio de WordPress: lo que el concepto estático no necesita. */

/* Icono base: todos los del sprite son de trazo; los logos de marca llevan su relleno en el sprite. */
.ic{ width:1em; height:1em; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* Enlace para saltar al contenido: invisible hasta que recibe el foco con el teclado. */
.skip-link{ position:absolute; left:16px; top:-64px; z-index:1000; padding:10px 18px; border-radius:var(--radius-chip); background:var(--gold); color:var(--gold-ink); font:700 .86rem 'Poppins',sans-serif; text-decoration:none; transition:top .15s ease; }
.skip-link:focus{ top:12px; }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Con la barra de administración (solo cuando hay sesión iniciada) las barras pegajosas bajan. */
.admin-bar header.nav{ top:32px; }
.admin-bar .page-subnav{ top:calc(var(--nav-h, 64px) + 32px); }
@media (max-width:782px){
  .admin-bar header.nav{ top:46px; }
  .admin-bar .page-subnav{ top:calc(var(--nav-h, 64px) + 46px); }
}

/* La barra inferior de móvil no debe tapar el final de la página. */
@media (max-width:640px){ body.has-tabbar{ padding-bottom:88px; } }

/* Los enlaces de menú que saca wp_nav_menu en el pie heredan el estilo de `footer a`. */
footer .menu-item{ list-style:none; }

@media (prefers-reduced-motion:reduce){ *, *::before, *::after{ scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }

/* Botones de la cabecera de página (en el concepto estaban con estilo en línea). */
.page-head .hero-ctas{ margin-top:28px; display:flex; gap:16px; flex-wrap:wrap; }

/* ---- Formulario de contacto (bloque contact-form) ----
   No está en el concepto aprobado: usa los mismos tokens y la forma de tarjeta (esquina inferior izquierda cuadrada). */
.split--form{ align-items:start; }
.contact-form{ background:var(--bg-panel); border-radius:30px 30px 30px 0; padding:32px 30px 34px; box-shadow:var(--shadow); }
.contact-form p{ margin:0 0 16px; }
.contact-form label{ display:block; font:600 .86rem 'Poppins',sans-serif; color:var(--ink); margin-bottom:6px; }
.contact-form label span{ font-weight:500; color:var(--ink-faint); }
.contact-form input[type=text], .contact-form input[type=email], .contact-form input[type=tel], .contact-form select, .contact-form textarea{
  width:100%; font:inherit; color:var(--ink); background:#fff; border:1.5px solid var(--border); border-radius:14px; padding:12px 14px; transition:border-color .15s ease, box-shadow .15s ease;
}
.contact-form textarea{ resize:vertical; min-height:120px; }
.contact-form input:focus-visible, .contact-form select:focus-visible, .contact-form textarea:focus-visible{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(18,77,176,.18); }
.cf-fila{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
.cf-acepto label{ display:flex; gap:10px; align-items:flex-start; font:500 .86rem 'Mulish',sans-serif; color:var(--ink-soft); }
.cf-acepto input{ margin-top:3px; flex:none; width:18px; height:18px; accent-color:var(--blue); }
.cf-acepto a{ color:var(--blue); }
.cf-trampa{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-aviso{ display:flex; gap:12px; align-items:flex-start; padding:18px 20px; border-radius:18px; font-weight:600; }
.form-aviso svg{ width:22px; height:22px; flex:none; margin-top:1px; }
.form-aviso--ok{ background:#E4F3EA; color:#134929; }
.form-aviso--err{ background:#FDECEC; color:#7A1C1C; margin-bottom:16px; }
@media (max-width:900px){ .split--form{ gap:28px; } }
@media (max-width:640px){ .cf-fila{ grid-template-columns:1fr; } .contact-form{ padding:24px 20px 26px; border-radius:24px 24px 24px 0; } }

/* ===== App instalable: botón del pie y cuadro de pasos para iPhone ===== */
.gm-install{ display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:999px; border:1.5px solid rgba(255,255,255,.35); background:transparent; color:#fff; font:700 .8rem/1 'Poppins',sans-serif; cursor:pointer; transition:background .15s ease, border-color .15s ease, color .15s ease; }
.gm-install[hidden]{ display:none; }
.gm-install:hover{ background:var(--gold); border-color:var(--gold); color:var(--blue-deep); }
.gm-install-dialog{ border:0; border-radius:22px; padding:28px 26px 24px; max-width:min(92vw,420px); color:var(--ink); box-shadow:var(--shadow-lg); }
.gm-install-dialog::backdrop{ background:rgba(7,26,61,.6); }
.gm-install-dialog h2{ font-size:1.2rem; margin:0 0 14px; }
.gm-install-dialog ol{ margin:0 0 20px; padding-left:20px; color:var(--ink-soft); line-height:1.5; }
.gm-install-dialog li + li{ margin-top:8px; }
.gm-install-dialog svg{ vertical-align:-3px; }

/* App en celular girado: se pide volver a vertical (solo con la web instalada y pantalla baja; las tablets no se tocan). */
.gm-rotate{ display:none; }
@media (display-mode: standalone) and (orientation: landscape) and (max-height: 520px){
  .gm-rotate{ position:fixed; inset:0; z-index:9999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:var(--blue-deep); color:#fff; text-align:center; padding:24px; }
  .gm-rotate svg{ color:var(--gold); transform:rotate(90deg); }
  .gm-rotate p{ margin:0; font:700 1.05rem/1.3 'Poppins',sans-serif; }
}

/* ---- Política de datos ---- */
.politica{ max-width:none; gap:12px; }
.politica h2{ font-size:1.25rem; margin-top:22px; color:var(--ink); }
.politica h2:first-child{ margin-top:0; }
.politica ul{ margin:0; padding-left:1.2em; display:flex; flex-direction:column; gap:8px; }
.politica a{ color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.footer-legal{ color:#C7D2F2; font-size:.82rem; text-decoration:underline; text-underline-offset:3px; }
.footer-legal:hover{ color:#fff; }

/* ---- Aviso «Instala la app» (solo celulares y tablets; pwa.js lo muestra) ---- */
.gm-a2hs[hidden]{ display:none; }
.gm-a2hs{ position:fixed; z-index:90; left:12px; right:12px; bottom:calc(88px + env(safe-area-inset-bottom)); max-width:520px; margin-inline:auto;
  display:grid; grid-template-columns:auto 1fr; gap:12px 14px; align-items:center; padding:14px 16px 14px 14px; background:var(--bg-panel);
  border:1px solid var(--border); border-radius:22px 22px 22px 0; box-shadow:0 18px 40px -14px rgba(7,26,61,.45); animation:gmA2hsIn .35s ease both; }
.gm-a2hs__ic{ width:52px; height:52px; border-radius:14px; box-shadow:0 0 0 1px var(--border); }
.gm-a2hs__tx strong{ display:block; font:700 .95rem 'Poppins',sans-serif; color:var(--ink); }
.gm-a2hs__tx span{ display:block; margin-top:2px; font-size:.84rem; line-height:1.4; color:var(--ink-soft); }
.gm-a2hs__bt{ grid-column:1 / -1; display:flex; align-items:center; gap:12px; justify-content:flex-end; }
.gm-a2hs__bt .btn{ padding:10px 20px; font-size:.86rem; }
.gm-a2hs__no{ background:none; border:0; font:600 .84rem 'Poppins',sans-serif; color:var(--ink-faint); cursor:pointer; padding:8px 6px; }
.gm-a2hs__no:hover{ color:var(--ink); }
@keyframes gmA2hsIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (min-width:641px){ .gm-a2hs{ bottom:20px; left:20px; right:auto; margin-inline:0; } }
@media (prefers-reduced-motion:reduce){ .gm-a2hs{ animation:none; } }
