:root{--ink:#071b3d;--muted:#52627b;--line:#dce3eb;--paper:#fff;--wash:#f5f8fb;--red:#c81f32;--teal:#267d6d;--sans:Inter,ui-sans-serif,system-ui,sans-serif;--serif:Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);line-height:1.55}a{color:inherit}button,input,select,textarea{font:inherit}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.7rem;z-index:9}.top{min-height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px max(5vw,24px)}.brand{font:700 1.25rem var(--serif);text-decoration:none}.nav{display:flex;gap:28px;align-items:center}.nav a{text-decoration:none;font-size:.9rem}.hero{background:linear-gradient(90deg,#fff,#f7fafe);padding:62px max(7vw,28px) 54px;display:grid;grid-template-columns:1fr 1fr;gap:7vw;min-height:420px}.hero h1,.page h1{font:700 clamp(2.5rem,5vw,4.5rem)/.98 var(--serif);letter-spacing:-.035em;margin:0 0 22px}.hero p{font-size:1.12rem;max-width:580px}.hero-side{border-left:1px solid #aeb9c6;padding-left:4vw}.hero-side h2,.page h2{font:700 1.75rem/1.12 var(--serif)}.red-rule{width:28px;border-top:4px solid var(--red);margin:28px 0}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:5px;padding:.78rem 1.25rem;text-decoration:none;background:#fff;color:var(--ink);font-weight:650;cursor:pointer}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.small{padding:.4rem .7rem;font-size:.84rem}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5aa9e6;outline-offset:2px}.journey{padding:22px max(6vw,20px);display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}.step{text-align:center;font-size:.78rem}.step b{display:grid;place-items:center;margin:0 auto 8px;width:36px;height:36px;border-radius:50%;background:#e8edf2}.step.active b{background:var(--ink);color:#fff}.page{max-width:1180px;margin:0 auto;padding:54px 28px 90px}.page h1{font-size:3.2rem}.notice{background:#eef4f8;border-left:4px solid var(--teal);padding:16px 20px;margin:24px 0}.question{padding:25px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:56px 1fr;gap:12px}.question strong{font:700 1.2rem var(--serif)}.flow{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 74px)}.rail{padding:40px 26px;border-right:1px solid var(--line);background:var(--wash)}.rail a{display:block;text-decoration:none;padding:12px 0;font-size:.86rem}.rail .on{color:var(--red);font-weight:700}.panel{padding:45px max(5vw,30px);max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:650;font-size:.9rem}.field input,.field select,.field textarea{border:1px solid #aab6c5;border-radius:5px;padding:.75rem;background:#fff}.upload{border:1px dashed #9aabba;padding:20px;background:#fbfdff}.status{padding:14px 16px;border:1px solid #acd2c9;background:#f0faf7;color:#195e51;margin:18px 0}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}.table th{color:var(--muted);font-size:.75rem;text-transform:uppercase}.admin-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.admin-nav{background:var(--ink);color:#fff;padding:30px 22px}.admin-nav a{display:block;color:#dbe6f3;text-decoration:none;padding:10px 0}.admin-main{padding:40px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:25px 0}.metric{background:#fff;padding:24px}.metric b{display:block;font:700 2rem var(--serif)}.muted{color:var(--muted)}footer{padding:30px max(5vw,24px);border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:.85rem}@media(max-width:760px){.nav a:not(:last-child){display:none}.hero{grid-template-columns:1fr;padding-top:42px}.hero-side{border:0;border-top:1px solid var(--line);padding:24px 0}.journey{grid-template-columns:repeat(3,1fr);gap:15px}.flow,.admin-shell{grid-template-columns:1fr}.rail{display:flex;overflow:auto;gap:18px;border:0;border-bottom:1px solid var(--line);padding:14px 20px}.rail a{white-space:nowrap}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.admin-nav{padding:18px}.admin-nav a{display:inline-block;margin-right:18px}.metrics{grid-template-columns:1fr}.page h1{font-size:2.5rem}footer{display:block}}
/* Estructura común: pie al fondo y contenido centrado en un ancho máximo compartido */
:root{--max:1240px;--pad:max(4vw,24px)}
body{min-height:100vh;display:flex;flex-direction:column}
body>main,.admin-shell{flex:1}
.page{width:100%}
.top{gap:32px}
.brand{min-width:0}
.nav{flex-shrink:0}
@media(min-width:761px) and (max-width:1240px){.brand{font-size:1.08rem;line-height:1.3}.nav{gap:20px}}
.home{display:flex;flex-direction:column}
.home .hero{flex:1}
@media(min-width:761px){
.top,footer,.hero,.journey,.page{padding-left:max(var(--pad),calc((100% - var(--max))/2));padding-right:max(var(--pad),calc((100% - var(--max))/2))}
.page{max-width:none}
.hero{gap:clamp(48px,6vw,120px);align-items:center}
.question div{max-width:78ch}
.flow{width:min(var(--max),100% - 2 * var(--pad));margin:0 auto;grid-template-columns:240px minmax(0,1fr);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.admin-main{max-width:1280px}
}
@media(min-width:1800px){:root{--max:1360px}html{font-size:106.25%}}
@media(min-width:2300px){:root{--max:1480px}html{font-size:112.5%}}
/* Calendario semanal de reserva */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 14px}
.cal-nav strong{font:700 1.15rem/1.25 var(--serif);text-align:center}
.cal-nav [aria-disabled]{opacity:.35;cursor:default}
.cal-nav .btn{white-space:nowrap;flex-shrink:0}
.cal-wrap{overflow-x:auto;background:var(--wash);border:1px solid var(--line);border-radius:14px;padding:8px}
.cal{width:100%;min-width:540px;border-collapse:separate;border-spacing:8px;table-layout:fixed}
.cal th,.cal td{padding:0;text-align:center;vertical-align:middle}
.cal td{height:78px;border-radius:12px;background:rgba(255,255,255,.55)}
.cal thead th{padding:6px 4px 10px;color:var(--muted);font-weight:600}
.cal-dow{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}
.cal thead th b{display:block;margin:4px 0 1px;color:var(--ink);font:700 1.7rem/1 var(--serif)}
.cal-month{display:block;font-size:.78rem;letter-spacing:.02em}
.cal thead th:first-child{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;vertical-align:bottom;padding-bottom:12px}
.cal thead th:first-child,.cal tbody th{width:64px;position:sticky;left:0;background:var(--wash);z-index:1}
.cal tbody th{color:var(--muted);font-size:.86rem;font-weight:650;font-variant-numeric:tabular-nums}
.slot{display:block;position:relative;height:100%;cursor:pointer}
.slot input{position:absolute;opacity:0;width:1px;height:1px}
.slot>span{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;height:100%;min-height:78px;padding:10px 6px;border:1px solid #d4dee8;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(7,27,61,.06);transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}
.slot strong{font:750 1.08rem/1 var(--sans);letter-spacing:.01em;font-variant-numeric:tabular-nums lining-nums}
.slot small{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.7rem;font-weight:650;letter-spacing:.03em;line-height:1.3}
.slot.is-remota small{background:#e3f2ee;color:#1f6b5d}
.slot.is-presencial small{background:#fbe9eb;color:#a61b2b}
.slot:hover>span{transform:translateY(-2px);border-color:var(--ink);box-shadow:0 8px 18px rgba(7,27,61,.12)}
.slot input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 10px 22px rgba(7,27,61,.28)}
.slot input:checked+span small{background:rgba(255,255,255,.16);color:#fff}
.slot input:checked+span::after{content:"✓";position:absolute;top:-8px;right:-8px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;font-size:.78rem;font-weight:800;box-shadow:0 2px 6px rgba(200,31,50,.4)}
.slot input:focus-visible+span{outline:3px solid #5aa9e6;outline-offset:3px}
.slot.static{cursor:default}
.slot.static:hover>span{transform:none;border-color:#d4dee8;box-shadow:0 1px 2px rgba(7,27,61,.06)}
.cal-legend{display:flex;flex-wrap:wrap;gap:18px;margin:12px 4px 0;font-size:.82rem;color:var(--muted)}
.cal-legend span::before{content:"";display:inline-block;width:10px;height:10px;margin-right:7px;border-radius:50%;vertical-align:-1px}
.cal-legend .is-remota::before{background:#1f6b5d}
.cal-legend .is-presencial::before{background:#a61b2b}
.cal-choice{display:flex;align-items:center;gap:10px;margin:18px 0;padding:14px 18px;border-radius:12px;background:var(--wash);border:1px solid var(--line);font-weight:600;min-height:1.5em}
.cal-choice.is-set{background:#f0faf7;border-color:#acd2c9;color:#195e51}
.flow>.panel{min-width:0}
@media(max-width:760px){.flow{grid-template-columns:minmax(0,1fr)}.cal-nav{flex-wrap:wrap}.cal-nav strong{order:-1;width:100%}.cal-nav .btn{flex:1}.cal .off{display:none}.cal{min-width:calc(64px + var(--used,5) * 92px);border-spacing:6px}.cal-wrap{padding:4px}}
.modal{border:0;border-radius:8px;padding:0;width:calc(100% - 32px);max-width:460px;color:var(--ink);background:var(--paper);box-shadow:0 24px 60px rgba(7,27,61,.28)}
.modal::backdrop{background:rgba(7,27,61,.5)}
.modal form{padding:30px 30px 26px}
.modal h2{font:700 1.55rem/1.15 var(--serif);letter-spacing:-.01em;margin:0}
.modal .red-rule{margin:16px 0 18px}
.modal p{margin:0;color:var(--muted)}
.modal .actions{justify-content:flex-end;margin-top:26px}
.modal .btn:focus-visible{outline:3px solid #5aa9e6;outline-offset:2px}

