/* Cohete CW · WCAG 2.2 AA progressive focus affordances, version 1.0.108.
   Scope only to plugin links/buttons, preserve all existing colors, transitions and layouts. */
#cwHeader :is(a,button):focus-visible,
#cwFooter :is(a,button,summary):focus-visible,
.cw-pf-faq :is(summary,button,a):focus-visible,
.cw-clinical-summary a:focus-visible,
.cw-clinical-grid :is(a,summary):focus-visible,
.cwpf-team a:focus-visible,
.cw-gallery-wrapper a:focus-visible,
.cw-videos button:focus-visible,
.cw-form-box :is(button,input,textarea):focus-visible,
.cw-lightbox button:focus-visible,
.cw-video-modal button:focus-visible {
  outline: 3px solid var(--cw-pf-a11y-focus, #006A8F) !important;
  outline-offset: 3px;
}
/* Footer fields intentionally rely on their :focus-within outline around the input group. */
#cwFooter .cw-footer-enquiry__input-wrap:focus-within {
  border-color: var(--cw-footer-text, #333333);
  box-shadow: 0 0 0 2px var(--cw-footer-surface, #fff), 0 0 0 4px var(--cw-footer-text, #333333);
}
/* Clear indication for controls without an underline in the linked text state. */
@media (forced-colors:active) {
  :is(#cwHeader,#cwFooter,.cw-pf-faq,.cw-clinical-grid,.cw-gallery-wrapper,.cw-videos,.cw-form-box) :is(a,button,summary):focus-visible { outline:2px solid Highlight; }
}

/* Documented theme: keep legible focus outlines against dark backgrounds. */
html[data-theme="dark"] body,
body[data-theme="dark"] { --cw-pf-a11y-focus: #F4F9FB; }
/* Text-only contrasts on the light contact surface; brand blocks/images remain untouched. */
html[data-theme="light"] #cwFooter .cw-footer-enquiry__eyebrow,
body[data-theme="light"] #cwFooter .cw-footer-enquiry__eyebrow,
html[data-theme="light"] #cwFooter .cw-footer-enquiry__legal a,
body[data-theme="light"] #cwFooter .cw-footer-enquiry__legal a,
html[data-theme="light"] #cwFooter .cw-footer-enquiry__consent a,
body[data-theme="light"] #cwFooter .cw-footer-enquiry__consent a {
  color: #006653;
}
html[data-theme="light"] #cwFooter .cw-footer-enquiry__input-wrap :is(input,textarea)::placeholder,
body[data-theme="light"] #cwFooter .cw-footer-enquiry__input-wrap :is(input,textarea)::placeholder {
  color: #333333;
  opacity: 1;
}
/* Componentes adicionales con :focus anulado en sus estilos visuales originales.
   :focus-visible mantiene intactos los estados hover y las animaciones. */
html body .cw-pf-rs-google .cw-pf-rs-google__controls button:focus-visible,
html body .cw-pf-rs-review-card a:focus-visible,
html body .cw-pf-rs-summary a:focus-visible,
.cw-clinical-list a:focus-visible,
.cw-clinical-grid .cw-clinical-grid__summary:focus-visible,
.cw-clinical-grid .cw-clinical-grid__item:focus-visible,
.cw-pf-image a:focus-visible,
.cw-first-visit a:focus-visible,
.cw-services a:focus-visible,
.cw-pf-hero a:focus-visible,
.cw-professional-single a:focus-visible,
.cw-professional-card a:focus-visible,
.cw-single-share a:focus-visible,
.cw-whatsapp a:focus-visible,
.cw-legal-toc a:focus-visible,
.cw-pf-rs-review-card__verified-mark:focus-visible {
  outline: 3px solid var(--cw-pf-a11y-focus, #006A8F) !important;
  outline-offset: 3px;
}


/* 1.0.109 — auditoría localizada tras WAVE 27/10/2026.
   La marca verde/azul sirve para fondos y adornos; el texto del mismo tono sobre
   blanco no alcanza 4.5:1. El tono legible deriva del color editorial y del
   acento configurado: no recolorea superficies, logotipos ni SVG decorativos.
   Con colores predeterminados: ~6.39:1 sobre blanco para #216A5D (mezcla 65/35).
   Los colores personalizados y fondos fotográficos necesitan auditoría visual. */

/* Tarjetas de contacto: enlaces "Cómo llegar", "WhatsApp", "Ver semana";
   incluye la instancia Elementor y el duplicado legítimo del footer. */
.cw-pf-contact-band {
  --cw-cb-accessible-accent: color-mix(in srgb, var(--cw-cb-title, #333333) 65%, var(--cw-cb-accent, #00CFAB) 35%);
  --cw-cb-accessible-hover: color-mix(in srgb, var(--cw-cb-title, #333333) 70%, var(--cw-cb-hover, #36CEAB) 30%);
}
.cw-pf-contact-band :is(.cw-pf-contact-band__micro,.cw-pf-contact-band__week-trigger),
.cw-pf-contact-band .cw-pf-contact-band__week-disclosure > summary,
.cw-pf-contact-band .cw-pf-contact-band__week-today :is(dt,dd) {
  color: var(--cw-cb-accessible-accent) !important;
}
@media (hover:hover) and (pointer:fine) {
  .cw-pf-contact-band :is(.cw-pf-contact-band__micro,.cw-pf-contact-band__week-trigger):hover {
    color: var(--cw-cb-accessible-hover) !important;
  }
}
/* La flecha y el auricular son iconos visibles de acción, no textos alternativos. */
.cw-pf-contact-band :is(.cw-pf-contact-band__phone,.cw-pf-contact-band__mail) svg {
  color: color-mix(in srgb, var(--cw-cb-title, #333333) 65%, var(--cw-cb-blue, #00ACF8) 35%) !important;
}

/* El pie reutiliza el primario como acento luminoso. Únicamente ajustamos la
   tinta de contenido en superficies neutras y el foco de controles pequeños. */
#cwFooter {
  --cw-footer-readable-accent: color-mix(in srgb, var(--cw-footer-text, #333333) 65%, var(--cw-footer-accent, #00CFAB) 35%);
}
#cwFooter :is(
  .cw-footer-band-week > summary,
  .cw-footer-enquiry__eyebrow,
  .cw-footer-enquiry__field > label > span:not(.cw-footer-enquiry__counter),
  .cw-footer-enquiry__consent a,
  .cw-footer-enquiry__legal a,
  .cw-footer-enquiry__status,
  .cw-footer-accreditations__label,
  .cw-footer-map-actions a,
  .cw-footer-map-placeholder a,
  .cw-footer-metro-row:hover,
  .cw-footer-metro-arrow,
  .cw-footer-list-link:hover,
  .cw-footer-transit-stop[aria-pressed="true"]
) { color: var(--cw-footer-readable-accent) !important; }

/* Titulares, párrafos auxiliares, índices y etiquetas sobre fondo neutro. */
.cw-pf-title {
  --cw-title-accessible-accent: color-mix(in srgb, var(--cw-title-color, #333333) 65%, var(--cw-title-accent, #00CFAB) 35%);
}
.cw-pf-title .cw-pf-title__eyebrow,
.cw-pf-title--highlight-accent .cw-pf-title__highlight,
.cw-pf-title .cw-pf-title__subtitle ol > li::before {
  color: var(--cw-title-accessible-accent) !important;
}
.cw-clinical-summary {
  --cw-cs-accessible-accent: color-mix(in srgb, var(--cw-cs-title, #333333) 65%, var(--cw-cs-accent, #00CFAB) 35%);
}
.cw-clinical-summary :is(
  .cw-clinical-summary__eyebrow,.cw-clinical-summary__number,
  .cw-clinical-summary__index,.cw-clinical-summary__go
) { color: var(--cw-cs-accessible-accent) !important; }
.cw-clinical-grid {
  --cw-cg-accessible-accent: color-mix(in srgb, var(--cw-cg-title, #333333) 65%, var(--cw-cg-accent, #00CFAB) 35%);
}
.cw-clinical-grid :is(
  .cw-clinical-grid__eyebrow,.cw-clinical-grid__label,
  .cw-clinical-grid__arrow,.cw-clinical-grid__disclosure,
  .cw-clinical-grid__more
) { color: var(--cw-cg-accessible-accent) !important; }
.cw-pf-rs-summary,.cw-pf-rs-google {
  --cw-rs-accessible-accent: color-mix(in srgb, var(--cw-pf-rs-text, #333333) 65%, var(--cw-pf-rs-accent, #00CFAB) 35%);
}
.cw-pf-rs-summary .cw-pf-rs-eyebrow,
.cw-pf-rs-google .cw-pf-rs-eyebrow,
.cw-pf-rs-google .cw-pf-rs-review-card__initials {
  color: var(--cw-rs-accessible-accent) !important;
}
.cw-first-visit {
  --cw-fv-readable-accent: color-mix(in srgb, var(--cw-fv-title, #333333) 65%, var(--cw-fv-green, #00CFAB) 35%);
}
.cw-first-visit :is(.cw-first-visit__eyebrow,.cw-first-visit__note-label) {
  color: var(--cw-fv-readable-accent) !important;
}
.cw-services .cw-service-card .cw-service-label {
  /* Solo la etiqueta de primer plano, NO la leyenda blanca sobre la foto. */
  --cw-service-label-color: color-mix(in srgb, var(--cw-services-text, #333333) 65%, var(--cw-services-accent, #00CFAB) 35%);
}
/* Un icono informativo debe superar 3:1 sobre su superficie. No se oculta
   mediante aria-hidden si es la única representación de una acción. */

/* 1.0.110: se revierte solamente el cambio de tinta oscura de v1.0.109.
   La identidad aprobada de los CTA primarios es degradado azul-verde con
   letras blancas; first-visit-widget.css, brand-polish.css y footer-enquiry.css
   ya especifican la misma tinta blanca en reposo, hover y foco.
   IMPORTANTE: los extremos claros de la paleta no garantizan el contraste
   WCAG AA de texto blanco. No se certifica ese contraste por CSS artificial. */
/* Evitar foco ilegible bajo los controles que eliminaban outline en CSS. */
.cw-pf-contact-band :is(a,button,summary):focus-visible,
.cw-clinical-summary a:focus-visible,
.cw-clinical-grid :is(a,summary):focus-visible,
.cw-first-visit a:focus-visible {
  outline: 3px solid var(--cw-pf-a11y-focus, #006A8F) !important;
  outline-offset: 3px !important;
}
