/* AgendaMaestra - paginas publicas: registro, login, legales, reservas y errores.
   Se carga solo en layouts/public.php (el panel no la usa). */

/* Inter y Lexend servidas desde el sitio (variables); layouts/public precarga los archivos latinos. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/inter-latin-v20.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/inter-latinext-v20.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Lexend';font-style:normal;font-weight:600 800;font-display:swap;src:url('../fonts/lexend-latin-v26.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Lexend';font-style:normal;font-weight:600 800;font-display:swap;src:url('../fonts/lexend-latinext-v26.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Respaldos con metrica de Inter y Lexend (anchos medidos contra las fuentes reales, 2026-09-28): evitan saltos de diseno mientras llegan las fuentes. */
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans');font-weight:400;size-adjust:106.3%;ascent-override:91.1%;descent-override:22.7%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans');font-weight:500;size-adjust:106.9%;ascent-override:90.6%;descent-override:22.5%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold');font-weight:600;size-adjust:100.2%;ascent-override:96.6%;descent-override:24.0%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold');font-weight:700;size-adjust:101.7%;ascent-override:95.3%;descent-override:23.7%;line-gap-override:0%}
@font-face{font-family:'Lexend Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold');font-weight:600;size-adjust:107.2%;ascent-override:93.3%;descent-override:23.3%;line-gap-override:0%}
@font-face{font-family:'Lexend Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold');font-weight:700;size-adjust:108.3%;ascent-override:92.4%;descent-override:23.0%;line-gap-override:0%}
@font-face{font-family:'Lexend Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold');font-weight:800;size-adjust:110.6%;ascent-override:90.4%;descent-override:22.6%;line-gap-override:0%}
/* Android no trae Arial: respaldo con Roboto medido contra Inter y Lexend */
@font-face{font-family:'Lexend Fallback R';src:local('Roboto Bold'),local('Roboto-Bold');font-weight:600;size-adjust:113.5%;ascent-override:88.1%;descent-override:22.0%;line-gap-override:0%}
@font-face{font-family:'Lexend Fallback R';src:local('Roboto Bold'),local('Roboto-Bold');font-weight:700;size-adjust:115.8%;ascent-override:86.4%;descent-override:21.6%;line-gap-override:0%}
@font-face{font-family:'Lexend Fallback R';src:local('Roboto Bold'),local('Roboto-Bold');font-weight:800;size-adjust:118.5%;ascent-override:84.4%;descent-override:21.1%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback R';src:local('Roboto'),local('Roboto Regular'),local('Roboto-Regular');font-weight:400;size-adjust:107.1%;ascent-override:90.5%;descent-override:22.6%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback R';src:local('Roboto Medium'),local('Roboto-Medium');font-weight:500;size-adjust:107.4%;ascent-override:90.2%;descent-override:22.5%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback R';src:local('Roboto Bold'),local('Roboto-Bold');font-weight:600;size-adjust:107.2%;ascent-override:90.4%;descent-override:22.6%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback R';src:local('Roboto Bold'),local('Roboto-Bold');font-weight:700;size-adjust:108.5%;ascent-override:89.3%;descent-override:22.3%;line-gap-override:0%}

/* ---------- base ---------- */
.pub{
  --font-display:'Lexend','Lexend Fallback','Lexend Fallback R',-apple-system,sans-serif;
  --font-body:'Inter','Inter Fallback','Inter Fallback R',-apple-system,BlinkMacSystemFont,sans-serif;
  --brand-deep:#B8371C;   /* texto y enlaces coral: 5.8:1 sobre blanco */
  --focus:#D93A18;        /* anillo de foco y boton: 4.6:1 */
  --line:#8A8A8E;         /* borde de campos: 3.4:1 sobre blanco (WCAG 1.4.11) */
  margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;
  background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
:where(.pub) :is(button,input,select,textarea){font:inherit}
/* especificidad baja a proposito: cualquier clase de componente (logo, dia, servicio) la sobrescribe */
.pub :where(a:not(.btn)){color:var(--brand-deep)}
.pub :where(a:not(.btn):hover){color:#8E2F19}
.pub :focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
.pub img{max-width:100%}
.pub-icon{display:inline-block;flex:0 0 auto;vertical-align:-2px}

.pub-main{flex:1 0 auto;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:32px 16px}
/* Solo las paginas cortas (registro, login, errores) se centran en vertical; las largas empiezan
   arriba para que el contenido no brinque mientras termina de cargar. */
.pub-auth .pub-main,.pub-error .pub-main{justify-content:center}

.pub-foot{padding:4px 16px 28px;text-align:center;font-size:13px;color:var(--ink-soft)}
.pub-foot-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 22px}
.pub-foot a{color:var(--ink-soft);text-decoration:underline;text-underline-offset:2px}
.pub-foot a:hover{color:var(--ink)}
.pub-foot-brand{margin:0 0 8px}
.pub-foot-brand a{font-weight:600}

/* Formularios: bordes a 3:1 y foco claro */
.pub .form-input{border-color:var(--line);font-size:15px;min-height:44px}
.pub .form-input:hover{border-color:#6E6E73}
.pub .form-input:focus{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus);box-shadow:none}
.pub .form-input[aria-invalid="true"]{border-color:var(--brand-deep);background:#FFF8F6}
.pub .form-label{font-size:13px;color:#4A4A4F}
.pub .form-hint{font-size:12.5px;color:var(--ink-soft);margin:6px 0 0}
.pub .btn{font-size:15px;padding:11px 18px;border-radius:12px}
.pub .btn-primary{box-shadow:0 2px 8px rgba(217,58,24,.25)}
.pub .btn-primary:hover{filter:none;background:var(--brand-deep);color:#fff}
.pub .btn-primary:disabled{background:#C7C7CC;color:#3A3A3E;box-shadow:none;cursor:not-allowed}
.pub .btn-ghost{border-color:var(--line);color:var(--ink)}
.pub .btn-ghost:hover{border-color:var(--ink);background:var(--card);color:var(--ink)}
.pub .alert{font-size:13.5px;line-height:1.45}
.pub .alert-list{margin:0;padding-left:18px}
.pub .alert-list li+li{margin-top:2px}
.honeypot-field{position:absolute;left:-9999px;top:-9999px;opacity:0;height:0;width:0;overflow:hidden}
.grecaptcha-badge{visibility:hidden}

/* ---------- barra superior (legales y errores) ---------- */
.pub-top{background:var(--card);border-bottom:1px solid var(--sep)}
.pub-top-in{max-width:1120px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:16px}
.pub-top-actions{margin-left:auto;display:flex;align-items:center;gap:18px}
.pub-top-actions .btn{padding:9px 16px;font-size:14px}
.pub-top-login{font-size:14.5px;font-weight:600;color:var(--ink);text-decoration:none}
.pub-top-login:hover{text-decoration:underline}

/* ---------- logo ---------- */
.pub-logo{display:inline-flex;align-items:center;text-decoration:none}
.pub-logo img{display:block;width:auto;height:38px}
.pub-logo:hover{text-decoration:none;opacity:.85}

/* ---------- registro y login ---------- */
.auth-card{display:flex;width:920px;max-width:100%;border-radius:20px;overflow:hidden;background:var(--card);box-shadow:0 24px 48px rgba(28,28,30,.13),0 8px 16px rgba(28,28,30,.06)}
.auth-card--login{width:780px}
.auth-brand{flex:0 0 40%;position:relative;background:var(--brand-deep);color:#fff;display:flex;flex-direction:column;padding:44px 36px 0}
.auth-card--login .auth-brand{flex-basis:44%;padding:0 34px 36px}
.auth-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(28,28,30,.24);padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600}
.auth-badge .pub-icon path{stroke:#8E2F19}
.auth-brand-title{font-family:var(--font-display);font-weight:700;font-size:26px;line-height:1.25;letter-spacing:-.01em;margin:18px 0 22px;text-wrap:balance}
.auth-card--login .auth-brand-title{font-size:24px;margin:0 0 10px}
.auth-brand-text{font-size:15px;line-height:1.5;color:rgba(255,255,255,.94);margin:0}
.auth-brand-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.auth-brand-list li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;color:rgba(255,255,255,.95)}
.auth-brand-list .pub-icon{margin-top:4px}
.auth-photo{display:block;position:relative;flex:1 1 auto;background:#8E2F19}
.auth-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.auth-photo--bottom{min-height:170px;margin:30px -36px 0}
.auth-photo--bottom img{object-position:50% 30%}
.auth-photo--bottom::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#B8371C 0%,rgba(184,55,28,.5) 22%,rgba(184,55,28,0) 50%)}
.auth-photo--top{min-height:200px;margin:0 -34px 22px}
.auth-photo--top img{object-position:50% 0}
.auth-photo--top::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#B8371C 0%,rgba(184,55,28,.5) 12%,rgba(184,55,28,0) 30%)}

.auth-form-side{flex:1;min-width:0;padding:34px 40px 32px;display:flex;flex-direction:column;justify-content:center}
.auth-logo{display:inline-flex;align-self:flex-start;margin-bottom:22px;text-decoration:none}
.auth-logo img{display:block;width:auto;height:40px}
.auth-logo:hover{opacity:.85}
.auth-form-side h1{font-size:24px;line-height:1.2;margin:0 0 4px}
.auth-sub{font-size:14.5px;color:var(--ink-soft);margin:0 0 20px}
.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.auth-check{display:flex;gap:10px;align-items:flex-start;margin:4px 0 18px;font-size:13.5px;line-height:1.5;color:#4A4A4F}
.auth-check input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--focus)}
.auth-check a{font-weight:600}
.auth-submit{width:100%;justify-content:center;padding:13px 16px}
.auth-fine{font-size:12.5px;line-height:1.5;color:var(--ink-soft);margin:14px 0 0}
.auth-fine a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.auth-fine+.auth-fine{margin-top:8px}
.auth-forgot{text-align:center;font-size:14.5px;margin:14px 0 0}
.auth-forgot a{font-weight:600}
.auth-switch{text-align:center;font-size:14.5px;color:var(--ink-soft);margin:20px 0 0}
.auth-switch a{font-weight:600}

/* tableta: registro con el panel arriba, sin foto */
@media (max-width:900px){
  .auth-card--register{flex-direction:column;width:640px}
  .auth-card--register .auth-brand{padding:26px 32px 24px}
  .auth-card--register .auth-photo{display:none}
  .auth-card--register .auth-brand-title{font-size:22px;margin:14px 0 16px}
  .auth-card--register .auth-brand-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
  .auth-card--register .auth-form-side{padding:30px 32px 30px}
}
@media (max-width:760px){
  .auth-card--login{width:420px}
  .auth-card--login .auth-brand{display:none}
}
/* telefono */
@media (max-width:560px){
  .pub-main{padding:20px 12px 24px;justify-content:flex-start}
  .auth-card{border-radius:16px}
  .auth-card--register .auth-brand{padding:22px 20px 20px}
  .auth-card--register .auth-brand-title{font-size:20px}
  .auth-card--register .auth-brand-list{grid-template-columns:1fr;gap:8px}
  .auth-form-side,.auth-card--register .auth-form-side{padding:24px 20px 24px}
  .auth-row{grid-template-columns:1fr}
  .auth-logo{margin-bottom:18px}
}

/* ---------- reservas ---------- */
.bk{width:100%;max-width:560px}
.bk--slots{max-width:1040px}
.bk--done{max-width:440px}
.bk-card{background:var(--card);border:1px solid var(--sep);border-radius:18px;box-shadow:0 1px 2px rgba(16,16,20,.03),0 8px 22px rgba(16,16,20,.05)}
.bk-head{margin:0 0 18px}
.bk-head--center{text-align:center}
.bk-head h1{font-size:28px;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
.bk-head-sub{margin:8px 0 0;font-size:15.5px;color:var(--ink-soft)}
.bk-head-biz{margin:6px 0 0;font-size:15.5px;color:#4A4A4F}
.bk-head-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.bk-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;background:var(--card);border:1px solid var(--sep);font-size:14px;font-weight:600;color:var(--ink)}
.bk-chip .pub-icon{color:var(--ink-soft)}
.bk-back{display:inline-flex;align-items:center;gap:7px;font-size:14.5px;font-weight:600;text-decoration:none;margin-bottom:14px;padding:4px 0}
.bk-back:hover{text-decoration:underline}

/* perfil del negocio en su página de reservas (datos de "Mi negocio") */
.bk-biz{margin-bottom:22px}
.bk-biz-logo{width:76px;height:76px;margin:0 auto 14px;border-radius:20px;background:var(--card);border:1px solid var(--sep);display:grid;place-items:center;overflow:hidden;box-shadow:0 1px 2px rgba(16,16,20,.04),0 6px 16px rgba(16,16,20,.06)}
.bk-biz-logo img{width:100%;height:100%;object-fit:contain;padding:8px}
.bk-biz-logo.is-initial{background:#FFF1EC;border-color:#F4D3C8;color:var(--brand-deep);font-family:var(--font-display);font-weight:800;font-size:32px;line-height:1}
.bk-biz-today{display:inline-flex;align-items:center;gap:8px;margin:10px 0 0;font-size:14.5px;font-weight:600;color:#3E3E43}
.bk-biz-dot{width:8px;height:8px;border-radius:50%;background:#8A8A8E;flex:0 0 auto}
.bk-biz-dot.is-open{background:#1E8E4E}
.bk-biz-info{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:14.5px;line-height:1.45;color:#4A4A4F}
.bk-biz-info li{display:flex;align-items:flex-start;justify-content:center;gap:8px;max-width:100%}
.bk-biz-info .pub-icon{color:var(--ink-soft);margin-top:2px}
.bk-biz-social{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.bk-biz-social a{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 14px;border:1px solid var(--sep);border-radius:999px;background:var(--card);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none}
.bk-biz-social a:hover{border-color:var(--ink)}
.bk-biz-hours{margin:14px auto 0;max-width:340px}
.bk-biz-hours summary{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:14.5px;font-weight:600;color:var(--brand-deep);list-style:none;padding:4px 2px}
.bk-biz-hours summary::-webkit-details-marker{display:none}
.bk-biz-hours summary:hover{text-decoration:underline}
.bk-biz-hours dl{margin:10px 0 0;padding:12px 18px;background:var(--card);border:1px solid var(--sep);border-radius:14px;text-align:left;font-size:14.5px}
.bk-biz-hours dl div{display:flex;justify-content:space-between;gap:18px;padding:3px 0}
.bk-biz-hours dt{color:#4A4A4F}
.bk-biz-hours dd{margin:0;color:var(--ink);white-space:nowrap}
.bk-biz-hours .is-today dt,.bk-biz-hours .is-today dd{font-weight:700;color:var(--ink)}
.bk-biz-lead{margin-top:18px}

/* lista de servicios */
.bk-services{list-style:none;margin:0;padding:6px}
.bk-svc{display:flex;align-items:center;gap:14px;padding:16px 16px;border-radius:12px;text-decoration:none;color:var(--ink)}
.bk-services li+li{border-top:1px solid var(--sep)}
.bk-svc:hover{background:#FFF4F0}
.bk-svc-dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.bk-svc-main{flex:1;min-width:0;display:flex;flex-direction:column}
.bk-svc-name{font-weight:600;font-size:16px;line-height:1.35}
.bk-svc-meta{font-size:14px;color:var(--ink-soft)}
.bk-svc-price{font-weight:700;font-size:16px;color:var(--brand-deep);white-space:nowrap}
.bk-svc-go{color:var(--ink-soft)}

/* horarios */
.bk-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:start}
.bk-when,.bk-who{padding:24px 26px}
.bk-who{position:sticky;top:20px}
.bk-step{font-size:18px;line-height:1.3;margin:0 0 14px}
.bk-step--hours{margin:26px 0 6px;padding-top:22px;border-top:1px solid var(--sep)}
.bk-strip{display:flex;align-items:stretch;gap:6px}
.bk-strip-days{flex:1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.bk-strip-arrow{flex:0 0 36px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);color:var(--ink);text-decoration:none;background:var(--card)}
.bk-strip-arrow:hover{border-color:var(--ink)}
.bk-strip-arrow.is-off{border-color:var(--sep);color:#C7C7CC}
.bk-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:12px;border:1px solid var(--line);text-decoration:none;color:var(--ink);background:var(--card);min-height:56px;justify-content:center}
.bk-day:hover{border-color:var(--ink)}
.bk-day-name{font-size:12.5px;color:var(--ink-soft)}
.bk-day-num{font-family:var(--font-display);font-weight:700;font-size:17px;line-height:1.1}
.bk-day.is-selected{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.bk-day.is-selected .bk-day-name{color:rgba(255,255,255,.92)}
.bk-day.is-off{border-color:var(--sep);color:#AEAEB2;background:#FAFAFC}
.bk-day.is-off .bk-day-name{color:#AEAEB2}
.bk-otherdate{margin-top:14px}
.bk-otherdate-row{display:flex;gap:8px}
.bk-otherdate-row .form-input{flex:1;min-width:0}
.bk-otherdate-row .btn{white-space:nowrap}
.bk-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#FFF4E5;color:#6B3A00;font-size:14px}
.bk-empty{text-align:center;padding:18px 8px 6px}
.bk-empty p{margin:0 0 12px;font-size:15px;color:var(--ink)}
.bk-empty .bk-empty-sub{color:var(--ink-soft);font-size:14px}
.bk-card.bk-empty{padding:28px 22px}

.bk-staff{border:0;margin:18px 0 0;padding:0;min-width:0}
.bk-staff-head{display:flex;align-items:center;gap:10px;padding:0;margin:0 0 4px;font-size:15px}
.bk-staff-dot{width:12px;height:12px;border-radius:4px;flex:0 0 auto}
.bk-staff-name{font-weight:700}
.bk-staff-count{font-size:13px;color:var(--ink-soft)}
.bk-period{font-size:13px;font-weight:600;color:var(--ink-soft);margin:12px 0 6px}
.bk-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (min-width:1100px){.bk-slot-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.bk-slot{position:relative;display:block;cursor:pointer}
.bk-slot input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.bk-slot span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 4px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-weight:600;white-space:nowrap;background:var(--card);color:var(--ink);transition:border-color .12s,background .12s}
.bk-slot:hover span{border-color:var(--ink)}
.bk-slot input:checked+span{background:var(--focus);border-color:var(--focus);color:#fff}
.bk-slot input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.bk-slot:has(input:focus-visible) span{outline:3px solid var(--focus);outline-offset:2px}

.bk-choice{margin:-4px 0 16px;font-size:14.5px;color:#4A4A4F}
.bk-contact{border:0;margin:0;padding:0;min-width:0}
.bk-contact legend{padding:0;margin:0 0 8px}
.bk-legend-hint{font-weight:400;color:var(--ink-soft)}
.bk-contact legend .bk-legend-hint{display:block;margin-top:2px}
.pub .form-label--sub{font-weight:600}
.bk-privacy{font-size:13px;line-height:1.5;color:var(--ink-soft);margin:14px 0 16px}
.bk-privacy a{text-decoration:underline;text-underline-offset:2px}
.bk-submit{width:100%;justify-content:center;padding:13px 16px}

.bk-done{padding:34px 28px;text-align:center}
.bk-done-icon{display:block;margin:0 auto 12px;color:#1A7535}
.bk-done h1{font-size:22px;margin:0 0 8px}
.bk-done p{font-size:15px;color:#4A4A4F;margin:0 0 20px}
.bk-done strong{color:var(--ink)}

/* tableta vertical (768-900): horas y datos lado a lado (QA móvil 2026-09-28) */
@media (min-width:768px) and (max-width:900px){
  .bk-grid{grid-template-columns:minmax(0,1fr) 300px}
}
@media (max-width:767px){
  .bk--slots{max-width:600px}
  .bk-grid{grid-template-columns:minmax(0,1fr)}
  .bk-who{position:static}
}
@media (max-width:400px){
  .bk-otherdate-row{flex-wrap:wrap}
  .bk-otherdate-row .btn{flex:1 1 100%;justify-content:center}
}
/* táctil: campos a 16px para que iPhone no haga zoom; "Tus datos" cabe en tabletas horizontales */
@media (pointer:coarse){
  .pub .form-input{font-size:16px}
  /* áreas de toque de 44 px */
  .pub-logo,.pub-top-login{position:relative}
  .pub-logo::after{content:'';position:absolute;inset:-6px -4px}
  .pub-top-login::after{content:'';position:absolute;inset:-11px -4px}
  .pub-top-actions .btn{min-height:44px}
  .bk-back{min-height:44px;margin-bottom:4px}
  .auth-check input{width:22px;height:22px;margin-top:0}
  .pub-foot-links{row-gap:0}
  .pub-foot-links a{display:inline-block;padding:12px 2px}
  .bk-biz-social a{min-height:44px}
  .bk-biz-hours summary{min-height:44px}
}
/* teléfono y tableta: títulos sin una palabra sola en el último renglón */
@media (max-width:900px){
  .pub h1,.pub h2,.pub h3{text-wrap:balance}
}
@media (pointer:coarse) and (min-width:768px){
  .bk-who{max-height:calc(100vh - 40px);overflow:auto}
}
@media (max-width:560px){
  .bk-head h1{font-size:24px}
  .bk-when,.bk-who{padding:20px 16px}
  .bk-strip{gap:4px}
  .bk-strip-days{gap:4px}
  .bk-strip-arrow{flex-basis:30px}
  .bk-day{padding:7px 0}
  .bk-day-num{font-size:16px}
  .bk-slot-grid{gap:6px}
  .bk-slot span{font-size:13.5px;padding:8px 2px}
  .bk-svc{padding:14px 12px;gap:12px}
}

/* ---------- legales ---------- */
.legal{width:100%;max-width:780px;background:var(--card);border:1px solid var(--sep);border-radius:18px;padding:40px 48px 44px;overflow-wrap:anywhere}
.legal h1{font-size:28px;line-height:1.2;letter-spacing:-.02em;margin:0 0 14px;text-wrap:balance}
.legal .legal-meta{list-style:none;margin:0 0 8px;padding:0}
.legal .legal-meta li{margin:0 0 2px;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.legal-meta strong{color:#4A4A4F}
.legal h2{font-size:20px;line-height:1.3;margin:34px 0 10px}
.legal h3{font-size:16.5px;margin:22px 0 8px}
.legal p,.legal li{font-size:15.5px;line-height:1.65;color:#3E3E43}
.legal p{margin:0 0 12px}
.legal ul,.legal ol{padding-left:22px;margin:8px 0 14px}
.legal li{margin-bottom:6px}
.legal strong{color:var(--ink)}
.legal a{text-decoration:underline;text-underline-offset:2px}
.legal hr{border:0;border-top:1px solid var(--sep);margin:30px 0}
.legal-table{width:100%;border-collapse:collapse;margin:14px 0 18px;font-size:14.5px}
.legal-table th,.legal-table td{border:1px solid var(--sep);padding:9px 11px;text-align:left;vertical-align:top;line-height:1.5}
.legal-table th{background:#F7F7FA;font-weight:600}
.legal-note{background:#FFF7F4;border-left:3px solid var(--brand-deep);padding:14px 16px;border-radius:0 10px 10px 0;margin:14px 0 18px}
.legal-note p:last-child{margin:0}
.legal-list-letters{list-style:lower-alpha}
@media (max-width:760px){
  .legal{padding:28px 20px 32px;border-radius:14px}
  .legal h1{font-size:23px}
  .legal-table,.legal-table tbody,.legal-table tr,.legal-table td{display:block;width:100%}
  .legal-table thead{display:none}
  .legal-table tr{border:1px solid var(--sep);border-radius:10px;margin-bottom:10px;padding:8px 12px}
  .legal-table td{border:0;padding:4px 0}
  .legal-table td::before{content:attr(data-label);display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft)}
}
@media (max-width:560px){
  .pub-top-in{padding:10px 14px}
  .pub-top-actions{gap:12px}
  .pub-top-actions .btn{padding:8px 12px;font-size:13.5px}
  .pub-top .pub-logo img{height:36px}
}

/* ---------- errores (404, 429) ---------- */
.err{width:100%;max-width:560px;text-align:center;padding:12px 0}
.err .err-code{font-family:var(--font-display);font-weight:800;font-size:15px;letter-spacing:.02em;color:var(--brand-deep);margin:0 0 10px}
.err h1{font-size:30px;line-height:1.2;letter-spacing:-.02em;margin:0 0 12px;text-wrap:balance}
.err p{font-size:16.5px;color:#4A4A4F;margin:0 auto 24px;max-width:34em}
.err-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
