/* Identidad compartida por la web y el panel. Colores de las fotografías
   de la isla: la segunda tinta de Aurora controla su iluminación. */
:root{
  --palette-brown:#42362A;
  --palette-earth:#775F43;
  --palette-sand:#CFB28A;
  --palette-umber:#735B40;
  --palette-shadow:#574C3A;
  --palette-night:#3C3628;
  --palette-moss:#68604B;
  --palette-gold:#DCC58E;
  --palette-linen:#E8D9B4;
  --palette-brass:#A5915C;
  --ui-night-surface:var(--ui-night-deep);
  --ui-night-deep:var(--ui-day-ink);
  --ui-night-tint:color-mix(in srgb,var(--ui-night-deep) 90%,var(--cream));
  --ui-night-tint-strong:color-mix(in srgb,var(--ui-night-deep) 82%,var(--cream));
  --ui-day-ink:var(--palette-brown);
  --site-gradient-type:aurora;
  --site-gradient-speed:.7;
  --site-gradient-scale:1.5;
  --site-gradient-noise:0;
  --site-gradient-color1:var(--palette-earth);
  --site-gradient-color2:var(--palette-sand);
  --site-gradient-color3:var(--palette-brown);
  --site-gradient-opacity:.4;
  --site-gradient-base:var(--champagne);
  --brand-gradient-color1:var(--palette-brown);
  --brand-gradient-color2:var(--palette-umber);
  --brand-gradient-color3:var(--palette-shadow);
  --ui-text:var(--deep);
  --ui-muted:var(--ui-day-ink);
  --ui-link:var(--olive);
  --ui-surface:var(--cream);
  --ui-surface-soft:var(--sand);
  --ui-surface-tint:var(--pale);
  --ui-surface-tint-strong:var(--sage);
  --ui-surface-mid:var(--mid);
  --ui-inverse-surface:var(--deep);
  --ui-inverse-text:var(--champagne);
  --ui-inverse-muted:color-mix(in srgb,var(--champagne) 82%,transparent);
  --ui-border-strong:var(--deep);
  --ui-border-accent:var(--olive);
  --ui-action:var(--olive);
  --ui-action-hover:var(--deep);
  --ui-on-accent:var(--cream);
  --ui-border:rgba(61,65,39,.2);
  --ui-focus:var(--olive);
  --ui-hover:rgba(61,65,39,.08);
  --ui-alert:var(--alerta);
  --ui-reading-shadow:none;
  --ui-scrollbar-thumb:var(--deep);
  color-scheme:light;
}
@media screen and (forced-colors:none){
  :root:not([data-theme="dark"]){
    /* Los alias históricos cubren también el texto que aún usa --deep/olive. */
    --deep:var(--ui-day-ink);
    --olive:var(--ui-day-ink);
    --ui-text:var(--ui-day-ink);
    --ui-muted:var(--ui-day-ink);
    --ui-secondary:var(--ui-day-ink);
    --ui-link:var(--ui-day-ink);
    --ui-link-alpha:var(--ui-day-ink);
    --ui-action:var(--ui-day-ink);
    --ui-action-hover:var(--ui-day-ink);
    --ui-border-strong:var(--ui-day-ink);
    --ui-border-accent:var(--ui-day-ink);
    --ui-focus:var(--ui-day-ink);
    --ui-scrollbar-thumb:var(--ui-day-ink);
    --ui-border:color-mix(in srgb,var(--ui-day-ink) 20%,transparent);
    --ui-line:color-mix(in srgb,var(--ui-day-ink) 20%,transparent);
    --ui-line-accent:color-mix(in srgb,var(--ui-day-ink) 45%,transparent);
    --ui-hover:color-mix(in srgb,var(--ui-day-ink) 8%,transparent);
    --ui-hover-alpha:color-mix(in srgb,var(--ui-day-ink) 8%,transparent);
    --ui-surface-tint:color-mix(in srgb,var(--ui-day-ink) 8%,var(--cream));
    --ui-surface-tint-strong:color-mix(in srgb,var(--ui-day-ink) 15%,var(--cream));
    --ui-surface-mid:color-mix(in srgb,var(--ui-day-ink) 25%,var(--cream));
    --ui-surface-alpha:color-mix(in srgb,var(--cream) 96%,transparent);
    --ui-inverse-surface:var(--palette-brown);
  }
}
/* Formularios: controles neutros de la paleta actual, sin tintes de salvia. */
:where(.cont-form,.pres-form,.svc-wizard,.svc-explorer__tabs,.svc-web-builder){
  --ui-secondary:color-mix(in srgb,var(--olive) 75%,var(--cream));
  --ui-line:color-mix(in srgb,var(--olive) 55%,var(--cream));
  --ui-line-accent:var(--olive);
  --ui-hover:color-mix(in srgb,var(--olive) 8%,var(--cream));
}
@media screen and (forced-colors:none){
  :root:not([data-theme="dark"]) :where(.cont-form,.pres-form,.svc-wizard,.svc-explorer__tabs,.svc-web-builder){
    --ui-secondary:var(--ui-day-ink);
  }
}
@media screen{
  :is(.home-hero__copy,.home-work__title,.home-orbit,.home-faq,.svc-wrap,
    .mis,.cont-wrap,.pres-wrap,.e404,.enc-wrap,.pv-barra,.pv-pie,.pf-hero){
    text-shadow:var(--ui-reading-shadow);
  }
  :is(.panel,.ck,.pv-documento,.cont-persona,.cont-form,.pres-form,.pres-resumen,
    .enc-form,.enc-aviso,.enc-gracias,.svc-explorer__panels,.svc-demo,.svc-module,
    .svc-wizard__summary,.home-orbit__panel,.home-orbit__center,.home-orbit__button,
    .home-faq__group details,.mis-tag,.mis-caja--crema,.mis-cita,.mis-nota,.mis-compromiso,
    .mis-tarjeta,.mis-cta,.e404-salidas a,.btn,.theme-toggle){text-shadow:none}
}
@media screen and (forced-colors:none){
  /* El blanco nativo de las casillas también pertenece a la interfaz. */
  :root :is(.cont-form,.pres-form) input[type="checkbox"]{
    appearance:none;display:inline-grid;place-content:center;
    width:18px;height:18px;min-width:18px;flex:none;padding:0;
    border:1.5px solid var(--ui-link);border-radius:3px;
    background:var(--cream);cursor:pointer;vertical-align:middle;
  }
  :root :is(.cont-form,.pres-form) input[type="checkbox"]::after{
    content:"";width:9px;height:5px;opacity:0;
    border-left:2px solid var(--ui-surface);border-bottom:2px solid var(--ui-surface);
    transform:translateY(-1px) rotate(-45deg);
  }
  :root :is(.cont-form,.pres-form) input[type="checkbox"]:checked{background:var(--ui-link)}
  :root :is(.cont-form,.pres-form) input[type="checkbox"]:checked::after{opacity:1}
  :root :is(.cont-form,.pres-form) input[type="checkbox"]:focus-visible{outline:2px solid var(--ui-focus);outline-offset:3px}
  :root :is(.cont-form,.pres-form) input[type="checkbox"]:disabled{opacity:.5;cursor:default}
  :root .hip-antispam{--altcha-input-background-color:var(--cream)}
}
@media screen and (forced-colors:none){
:root[data-theme="dark"]{
  --deep:var(--ui-night-deep);
  --olive:var(--ui-night-surface);
  --site-gradient-color1:var(--palette-shadow);
  --site-gradient-color2:var(--palette-night);
  --site-gradient-color3:var(--palette-moss);
  --site-gradient-opacity:1;
  --site-gradient-base:var(--palette-night);
  --brand-gradient-color1:var(--champagne);
  --brand-gradient-color2:var(--palette-gold);
  --brand-gradient-color3:var(--palette-linen);
  --ui-text:var(--cream);
  --ui-muted:color-mix(in srgb,var(--champagne) 82%,transparent);
  --ui-link:var(--cream);
  --ui-secondary:var(--cream);
  --ui-link-alpha:var(--cream);
  --ui-surface:var(--ui-night-surface);
  --ui-surface-soft:var(--ui-night-deep);
  --ui-surface-tint:var(--ui-night-tint);
  --ui-surface-tint-strong:var(--ui-night-tint-strong);
  --ui-surface-mid:var(--ui-night-tint-strong);
  --ui-surface-alpha:color-mix(in srgb,var(--ui-night-surface) 96%,transparent);
  --ui-inverse-surface:var(--ui-night-deep);
  --ui-action:var(--champagne);
  --ui-action-hover:var(--palette-linen);
  --ui-on-accent:var(--ui-night-surface);
  --ui-border:color-mix(in srgb,var(--champagne) 30%,transparent);
  --ui-border-strong:var(--champagne);
  --ui-border-accent:var(--champagne);
  --ui-line:color-mix(in srgb,var(--champagne) 30%,transparent);
  --ui-line-accent:color-mix(in srgb,var(--champagne) 45%,transparent);
  --ui-vector-alpha:color-mix(in srgb,var(--champagne) 40%,transparent);
  --ui-focus:var(--champagne);
  --ui-hover:color-mix(in srgb,var(--champagne) 10%,transparent);
  --ui-hover-alpha:var(--ui-hover);
  --ui-accent-alpha:color-mix(in srgb,var(--champagne) 12%,transparent);
  --ui-alert:#F3A183;
  --site-gradient-shade:var(--palette-night);
  --site-gradient-veil:.08;
  --ui-reading-shadow:none;
  --ui-scrollbar-thumb:var(--cream);
  color-scheme:dark;
}
/* Mantiene los tres colores del shader; el velo uniforme sostiene el texto. */
html[data-theme="dark"] .site-gradient::after{content:"";position:absolute;inset:0;
  background:var(--site-gradient-shade);opacity:var(--site-gradient-veil)}
html[data-theme="dark"] ::selection{background:var(--cream);color:var(--deep)}
html[data-theme="dark"] :is(input,textarea){caret-color:var(--ui-text);accent-color:var(--ui-focus)}
html[data-theme="dark"] :is(input,textarea)::placeholder{color:var(--ui-muted);opacity:1}

/* Sobre paneles opacos, el secundario recupera la diferencia de valor. */
html[data-theme="dark"] :is(.panel,.ck,.pv-documento,.cont-persona,.cont-form,
  .pres-form,.pres-resumen,.enc-form,.enc-aviso,.enc-gracias,.svc-explorer__panels,
  .svc-demo,.svc-wizard__summary,.svc-module,
  .home-orbit__panel,.home-faq__group details,.mis-caja--crema,.mis-cita,.mis-nota,
  .mis-compromiso,.mis-tarjeta,.mis-cta){
  --ui-secondary:var(--ui-muted);
  --ui-link:var(--champagne);
  --ui-link-alpha:var(--champagne);
}
html[data-theme="dark"] :is(.cont-form,.pres-form,.svc-wizard,
  .svc-wizard .svc-module,.svc-wizard__summary,.svc-explorer__tabs,.svc-web-builder){
  --ui-link:var(--cream);
  --ui-link-alpha:var(--cream);
  --ui-secondary:color-mix(in srgb,var(--cream) 75%,var(--olive));
  --ui-border-accent:var(--cream);
  --ui-focus:var(--cream);
  --ui-line:color-mix(in srgb,var(--cream) 55%,var(--olive));
  --ui-line-accent:var(--cream);
  --ui-hover:color-mix(in srgb,var(--cream) 8%,var(--olive));
}

/* Filtros limitados a la marca vectorial: el hueco alfa sigue siendo real. */
html[data-theme="dark"] :is(.nav__mark,.pv-barra,.svc-demo__site,.svc-demo__site-brand,
  .svc-demo__phone,.home-orbit__center)
  img[src*="hipatia-"]{filter:brightness(0) invert(1)}
html[data-theme="dark"] .nl :is(.solid,.l){fill:var(--ui-text)}
html[data-theme="dark"] .nl .ltr{stroke:var(--ui-surface)}
html[data-theme="dark"] .pre .ltr{stroke:var(--ui-surface-soft)}

/* El widget aislado recibe los mismos roles que los campos del formulario. */
html[data-theme="dark"] .hip-antispam{
  --altcha-color-base:var(--ui-surface-soft);
  --altcha-color-base-content:var(--ui-text);
  --altcha-color-primary:var(--ui-action);
  --altcha-color-primary-content:var(--ui-on-accent);
  --altcha-color-success:var(--ui-link);
  --altcha-color-success-content:var(--ui-surface);
  --altcha-color-error:var(--ui-alert);
  --altcha-color-error-content:var(--ui-surface);
  --altcha-color-neutral:var(--ui-surface-tint);
  --altcha-color-neutral-content:var(--ui-text);
  --altcha-border-color:var(--ui-border-accent);
  --altcha-checkbox-border-color:var(--ui-border-accent);
  --altcha-checkbox-outline-color:var(--ui-focus);
  --altcha-checkbox-outline:2px solid var(--ui-focus);
}
}
.site-gradient{background:var(--site-gradient-base)}
.site-gradient--ready canvas{opacity:var(--site-gradient-opacity)}

/* Solo la barra de la página: mantiene el grosor habitual y la paleta en ambos modos. */
@media screen and (forced-colors:none){
  html{scrollbar-width:auto;scrollbar-color:var(--ui-scrollbar-thumb) var(--sand)}
  @supports selector(::-webkit-scrollbar){
    /* En Chromium, scrollbar-color prevalece sobre las piezas personalizadas. */
    html{scrollbar-color:auto}
    html::-webkit-scrollbar{width:17px;height:17px}
    html::-webkit-scrollbar-button{display:none}
    html::-webkit-scrollbar-track{
      background:transparent;border:1px solid var(--sand);border-radius:999px}
    html::-webkit-scrollbar-thumb{
      background:var(--ui-scrollbar-thumb);background-clip:padding-box;border:3px solid transparent;border-radius:999px}
    html::-webkit-scrollbar-thumb:hover{background-color:var(--ui-scrollbar-thumb)}
    html::-webkit-scrollbar-corner{background:var(--sand)}
  }
}
@media (forced-colors:active){
  html{scrollbar-width:auto;scrollbar-color:auto}
}

/* El control se queda en su sitio mientras la barra se contrae. */
.theme-toggle-dock{position:fixed;top:31px;right:calc(var(--pad) + 18px);
  z-index:70;width:44px;height:44px;isolation:isolate;pointer-events:none}
.theme-toggle-dock::before{content:"";position:absolute;inset:0;z-index:-1;
  border-radius:50%;background:var(--ui-surface);opacity:0;
  box-shadow:0 10px 22px -12px rgba(61,65,39,.4);
  transition:opacity .2s ease,transform .65s cubic-bezier(.16,1,.3,1)}
.theme-toggle-dock--detached::before{opacity:1;animation:themeDrop .65s cubic-bezier(.16,1,.3,1) both}
@keyframes themeDrop{
  0%{transform:scaleX(1.25);border-radius:38% 62% 55% 45% / 48% 42% 58% 52%}
  65%{transform:scaleX(.97);border-radius:52% 48% 49% 51%}
  100%{transform:scaleX(1);border-radius:50%}
}
.theme-toggle{position:relative;
  display:inline-grid;place-items:center;flex:none;
  width:44px;height:44px;min-width:44px;padding:10px;border:0;
  border-radius:var(--r-pill);background:transparent;color:var(--ui-text);
  font:inherit;cursor:pointer;touch-action:manipulation;pointer-events:auto;
  transition:background .2s ease,color .2s ease,transform .22s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){
  .theme-toggle:hover{background:var(--ui-hover);transform:translateY(-1px)}
}
.theme-toggle:active{background:var(--ui-hover);transform:scale(.94)}
.theme-toggle:focus-visible{outline:2.5px solid var(--ui-focus);outline-offset:3px}
.theme-toggle svg{display:block;grid-area:1/1;width:22px;height:22px;pointer-events:none;
  transform-origin:center;transform-box:view-box;
  transition:opacity .28s ease,transform .52s cubic-bezier(.22,1,.36,1)}
/* El icono representa el tema activo; el tooltip describe la acción. */
.theme-toggle .theme-toggle__sun{opacity:1;transform:rotate(0deg) scale(1)}
.theme-toggle .theme-toggle__moon{opacity:0;transform:rotate(-40deg) scale(.55)}
.theme-toggle__rays{transform-origin:center;transform-box:view-box;
  transform:rotate(0deg) scale(1);transition:transform .6s cubic-bezier(.22,1,.36,1)}
html[data-theme="dark"] .theme-toggle .theme-toggle__sun{opacity:0;transform:rotate(55deg) scale(.55)}
html[data-theme="dark"] .theme-toggle .theme-toggle__moon{opacity:1;transform:rotate(0deg) scale(1)}
html[data-theme="dark"] .theme-toggle__rays{transform:rotate(35deg) scale(.7)}
.pv-barra .theme-toggle{position:static;margin-left:auto}
@media(max-width:1100px){
  .theme-toggle-dock{right:calc(var(--pad) + 12px)}
}
@media(prefers-reduced-motion:reduce){
  .theme-toggle,.theme-toggle svg,.theme-toggle__rays,.theme-toggle-dock::before{transition:none}
  .theme-toggle:hover,.theme-toggle:active{transform:none}
  .theme-toggle-dock--detached::before{animation:none}
}
@media print{
  :root{color-scheme:light!important}
  .theme-toggle,.theme-toggle-dock{display:none!important}
}
