/* Wong · preferencias de lectura. Solo se carga en la portada. */
:root {
  --a11y-paper: #fff;
  --a11y-ink: #111;
  --a11y-muted: #414a43;
  --a11y-accent: #cef2ce;
  --a11y-border: #737d75;
  --a11y-space: 8px;
  --a11y-radius: 16px;
  --a11y-panel-width: 440px;
  --a11y-panel-padding: 24px;
  --a11y-control-radius: 4px;
  --a11y-enter: 180ms;
  --a11y-exit: 120ms;
  --a11y-body: 18px;
  --a11y-title: 24px;
}
.a11y-launcher {
  position: fixed;
  left: max(16px, env(safe-area-inset-left, 0px));
  bottom: max(16px, env(safe-area-inset-bottom, 0px));
  z-index: 95;
  display: flex;
  align-items: center;
  gap: var(--a11y-space);
  min-height: 56px;
  max-width: calc(100% - 104px);
  padding: 12px 16px;
  border: 2px solid var(--a11y-ink);
  border-radius: var(--a11y-radius);
  background: var(--a11y-accent);
  color: var(--a11y-ink);
  box-shadow: 0 4px 16px #0002;
  font: 700 var(--a11y-body)/1.5 var(--sans);
}
.a11y-launcher svg { width: 28px; height: 28px; flex: none; }
.a11y-launcher span { display: block; overflow-wrap: anywhere; }
.a11y-dialog {
  position: fixed;
  inset: auto;
  top: 0;
  left: 0;
  width: min(var(--a11y-panel-width), 100%);
  max-width: 100%;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  padding: max(var(--a11y-panel-padding), env(safe-area-inset-top, 0px)) var(--a11y-panel-padding) max(var(--a11y-panel-padding), env(safe-area-inset-bottom, 0px)) max(var(--a11y-panel-padding), env(safe-area-inset-left, 0px));
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 0;
  border-right: 2px solid var(--a11y-ink);
  border-radius: 0;
  background: var(--a11y-paper);
  color: var(--a11y-ink);
  box-shadow: 16px 0 48px #0004;
  font: 400 var(--a11y-body)/1.5 var(--sans);
}
.a11y-dialog::backdrop { background: #0009; }
.a11y-dialog[open] { animation: a11y-enter var(--a11y-enter) ease-out; }
.a11y-dialog.is-closing { animation: a11y-exit var(--a11y-exit) ease-in forwards; }
.a11y-header { display: flex; align-items: flex-start; gap: 16px; }
.a11y-header h2 {
  flex: 1; min-width: 0; margin: 0;
  font: 700 var(--a11y-title)/1.3 var(--serif);
  letter-spacing: -.02em;
}
.a11y-dialog p { margin: 16px 0; font-size: var(--a11y-body); color: var(--a11y-muted); }
.a11y-dialog button {
  min-width: 48px; min-height: 48px; max-width: 100%;
  padding: 8px 12px; border: 1px solid var(--a11y-border);
  border-radius: var(--a11y-control-radius); background: var(--a11y-paper); color: var(--a11y-ink);
  font: 700 var(--a11y-body)/1.5 var(--sans);
  white-space: normal; overflow-wrap: anywhere;
}
.a11y-dialog .a11y-close { display: grid; place-items: center; flex: none; padding: 12px; }
.a11y-close svg { width: 24px; height: 24px; }
.a11y-dialog fieldset { min-width: 0; margin: 24px 0 0; padding: 0; border: 0; }
.a11y-dialog legend { display: block; max-width: 100%; padding: 0; margin-bottom: 8px; font-weight: 700; }
.a11y-stepper { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.a11y-value { display: block; text-align: center; font-weight: 700; overflow-wrap: anywhere; }
.a11y-dialog .a11y-help { font-size: 16px; margin: 8px 0 0; }
.a11y-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.a11y-choices button { flex: 1 1 96px; }
.a11y-toggles { display: grid; gap: 12px; margin-block: 24px; }
.a11y-toggle { display: flex; align-items: center; justify-content: space-between; gap: 16px; text-align: left; }
.a11y-toggle > span { display: block; min-width: 0; }
.a11y-toggle .a11y-state { flex: none; font-size: 16px; }
.a11y-dialog button[aria-pressed="true"] { background: var(--a11y-accent); border: 2px solid var(--a11y-ink); }
.a11y-dialog button:disabled { opacity: .5; cursor: not-allowed; }
.a11y-dialog .a11y-reset { display: block; width: 100%; }
.a11y-dialog .a11y-status { min-height: 3em; margin-bottom: 0; }
.a11y-dialog :focus-visible, .a11y-launcher:focus-visible { outline: 3px solid var(--a11y-ink); outline-offset: 4px; }
html:has(.a11y-dialog[open]) { overflow: hidden; }
@keyframes a11y-enter { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes a11y-exit { to { transform: translateX(-100%); } }
@media (hover: hover) {
  .a11y-launcher:hover, .a11y-dialog button:not(:disabled):hover { background: var(--a11y-accent); text-decoration: underline; }
}
@media (max-width: 480px) {
  .a11y-dialog { --a11y-panel-padding: 16px; }
  .a11y-launcher { padding: 12px; }
  .a11y-launcher span { display: none; }
}

/* El texto crece de verdad; las columnas se reorganizan para darle espacio. */
html[data-a11y-large] body :where(h1,h2,h3,h4,p,a,li,label,summary,button,legend,output) { overflow-wrap: anywhere; }
html[data-a11y-large] :where(.hero-copy,.about-copy,.appointment-copy,.prep-copy) { max-width: 100%; min-width: 0; }
html[data-a11y-large] .hero-copy h1 span { white-space: normal; }
html[data-a11y-large] .hero-copy h1 { max-width: 100%; }
html[data-a11y-large] :where(.btn,.nav a,.nav-cta) { white-space: normal; }
html[data-a11y-large] :where(.section-head,.hero-slider-controls,.actions,.footer-bottom) { flex-wrap: wrap; }
html[data-a11y-large] :where(.about-layout,.appointment-layout,.prep-layout,.division-layout) { grid-template-columns: minmax(0,1fr); }
html[data-a11y-large] :where(.about-facts,.team-grid,.specialty-grid,.footer-grid,.locations) { grid-template-columns: repeat(2,minmax(0,1fr)); }
html[data-a11y-large] .site-header { position: relative; }
html[data-a11y-large] .site-header .header-inner { display: flex; flex-wrap: wrap; gap: 16px; padding-block: 16px; }
html[data-a11y-large] .site-header .nav { flex-wrap: wrap; justify-content: flex-start; }
html[data-a11y-large] .site-header .header-phone { margin-left: 0; }
html[data-a11y-large] .site-header .header-phone-number { white-space: nowrap; }
html[data-a11y-large] .site-header .menu-toggle { flex: none; }
html[data-a11y-large] .site-header .nav[data-open="true"] { position: static; flex-basis: 100%; order: 10; }
html[data-a11y-large] .services-specialties-flow .service-row { grid-template-columns: minmax(0,1fr) auto; gap: 16px; }
html[data-a11y-large] .service-row > * { min-width: 0; }
html[data-a11y-large] .service-row :where(.service-row-index,.service-row-title,.service-new-copy) { grid-column: 1; grid-row: auto; }
html[data-a11y-large] .service-row .service-row-arrow { grid-column: 2; grid-row: 1; }
html[data-a11y-large] .service-row :where(.service-row-preview,.service-new-stage) { grid-column: 1 / -1; grid-row: auto; position: relative; width: min(100%,280px); height: auto; }
html[data-a11y-large] .service-new-media { position: relative; top: auto; right: auto; opacity: 1; transform: none !important; }
html[data-a11y-large] .service-new-badge-rest { display: none; }
html[data-a11y-large] .service-row-preview { opacity: 1; transform: none; }
html[data-a11y-large] .faq-icon { flex: none; }
html[data-a11y-large] .faq-answer { padding-right: 0; }
html[data-a11y-large] .whatsapp-float span { display: none; }
html[data-a11y-large] .whatsapp-float { padding: 12px; }
html[data-a11y-large] .a11y-toggle { flex-wrap: wrap; }
html[data-a11y-large] .a11y-launcher span { display: none; }
html[data-a11y-large] :where(input,select,textarea) { min-width: 0; max-width: 100%; height: auto; }
@media (max-width: 1024px) {
  html[data-a11y-large] :where(.team-grid,.specialty-grid,.footer-grid,.locations,.about-facts,.form-grid) { grid-template-columns: minmax(0,1fr); }
  html[data-a11y-large] .footer-grid > div:first-child { grid-column: auto; }
}

/* Contrastes explícitos, sin invertir fotografías ni logos. */
html[data-a11y-contrast="light"] { --a11y-page: #fff; --a11y-text: #000; --a11y-link: #002f80; }
html[data-a11y-contrast="dark"] { --a11y-page: #000; --a11y-text: #fff; --a11y-link: #ffec80; --a11y-paper:#000; --a11y-ink:#fff; --a11y-muted:#fff; --a11y-accent:#203d24; --a11y-border:#fff; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) body { background: var(--a11y-page); }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) body :where(h1,h2,h3,h4,p,span,li,label,legend,output,strong,small,em,summary,div,section,article,header,footer,aside,form,details,dialog) { color: var(--a11y-text) !important; text-shadow: none !important; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) :where(.site-header,.site-footer,main,section,article,dialog,details,summary,.hero-copy,.hero-slider-bar,.team-card-body,.division-services,.location-card,.appointment-form,.faq-answer,.nav,.about-fact) { background-color: var(--a11y-page) !important; background-image: none !important; border-color: var(--a11y-text) !important; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) :where(.services-specialties-flow,.visit-flow)::before,
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) :where(.flow-parallax-image,.visit-background) { display: none; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) .hero-copy { padding: 24px; border-radius: 8px; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) a { color: var(--a11y-link) !important; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) :where(button,input,select,textarea,.btn,.nav-cta,.whatsapp-float,.service-new-badge) { background: var(--a11y-page) !important; color: var(--a11y-text) !important; border-color: var(--a11y-text) !important; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) button[aria-pressed="true"] { background: var(--a11y-accent) !important; text-decoration: underline; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) :where(.brand img,.footer-grid img) { filter: none !important; background-color: #fff; border: 8px solid #fff; }
html[data-a11y-contrast]:not([data-a11y-contrast="original"]) :focus-visible { outline: 3px solid var(--a11y-link) !important; outline-offset: 4px; }
html[data-a11y-links="true"] a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .2em; }
html[data-a11y-links="true"] a:focus-visible { outline-width: 4px; }

/* La preferencia también detiene los temporizadores en wong.js. */
html[data-a11y-motion="paused"] { scroll-behavior: auto; }
html[data-a11y-motion="paused"] *, html[data-a11y-motion="paused"] *::before, html[data-a11y-motion="paused"] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html[data-a11y-motion="paused"] .partners-track { transform: none; width: 100%; }
html[data-a11y-motion="paused"] .partners-group { width: 100%; flex-wrap: wrap; justify-content: center; padding-inline: 24px; }
html[data-a11y-motion="paused"] :where(.partners-copy,.partners-pause) { display: none; }
html[data-a11y-motion="paused"] :where(.flow-parallax-image,.visit-background::before) { transform: none !important; }
@media (prefers-reduced-motion: reduce) {
  .a11y-dialog[open], .a11y-dialog.is-closing { animation: none; }
}
@media (any-pointer: fine) {
  html[data-a11y-cursor="medium"] body, html[data-a11y-cursor="large"] body,
  html[data-a11y-cursor="medium"] body *, html[data-a11y-cursor="large"] body * { cursor: var(--a11y-cursor-arrow), auto !important; }
  html[data-a11y-cursor="medium"] :is(a,button,summary,[role="button"],select),
  html[data-a11y-cursor="large"] :is(a,button,summary,[role="button"],select),
  html[data-a11y-cursor="medium"] :is(a,button,summary,[role="button"]) *,
  html[data-a11y-cursor="large"] :is(a,button,summary,[role="button"]) * { cursor: var(--a11y-cursor-pointer), pointer !important; }
}
