@font-face{font-family:Kinesia Inter;src:url('assets/inter-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Kinesia Inter;src:url('assets/inter-700.ttf') format('truetype');font-weight:600 900;font-display:swap}
:root{font-family:Kinesia Inter,Inter,system-ui,sans-serif;color:#193c46;background:#f6f9f7;color-scheme:light;font-size:16px;line-height:1.55}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(ellipse at 8% 10%,#e4eee980,transparent 50%)}.test-strip{background:#edf0e8;color:#665b3e;text-align:center;font-size:.72rem;padding:8px 12px;letter-spacing:.04em}header{max-width:1180px;margin:auto;padding:25px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dce6e1;gap:20px}header img{width:190px;display:block}#identity{display:flex;align-items:center;gap:12px;font-size:.85rem}main{max-width:1180px;margin:0 auto;padding:36px 24px 60px}.intro{max-width:700px;margin-bottom:30px}.eyebrow{font-size:.7rem;letter-spacing:.14em;color:#8b754a;font-weight:700;margin:0 0 10px}h1,h2{font-weight:400;letter-spacing:-.025em;line-height:1.12}h1{font-size:clamp(2.4rem,6vw,3.7rem);margin:12px 0 20px}h2{font-size:1.8rem;margin:8px 0 22px}.intro>p:last-child{color:#657e75}.layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,1fr);gap:25px;align-items:start}.card{background:#fff;border:1px solid #dce6e1;border-radius:18px;padding:28px;box-shadow:0 8px 30px #25564005}aside .card+.card{margin-top:22px}label{display:grid;gap:7px;margin:19px 0 10px;font-size:.88rem;font-weight:600}input,select,button{font:inherit;min-width:0}input,select{width:100%;border:1px solid #c8dad0;border-radius:9px;padding:12px;color:inherit;background:#fff;font-size:.95rem}input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #84b6a7;outline-offset:3px}button{border:1px solid #276454;border-radius:9px;background:#276454;color:#fff;padding:13px 17px;cursor:pointer;font-weight:600;line-height:1.3}button:hover{background:#1a5143}button:disabled{opacity:.5;cursor:not-allowed}.quiet{background:transparent;color:#286653;border-color:#c9dbd1}.quiet:hover{background:#edf5ef}form>button{width:100%;margin-top:18px}fieldset{border:0;padding:0;margin:24px 0 0}legend{font-size:.88rem;font-weight:600;margin-bottom:12px}.slots{display:flex;flex-wrap:wrap;gap:9px;min-height:50px}.slots button{background:#fff;color:#286653;border-color:#d4e0d8;min-width:74px;padding:11px}.slots button.selected{background:#326e60;color:#fff;border-color:#326e60}.slots button:hover{border-color:#326e60}.muted{color:#687f76;font-size:.88rem}.small{font-size:.78rem}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.82rem;line-height:1.5}.check input{width:18px;height:18px;min-width:18px;margin:2px 0 0;accent-color:#326e60}.selection{background:#edf5ef;border-radius:10px;padding:14px;color:#285d4e;font-size:.9rem}.notice{background:#f8f5eb;padding:12px;border-radius:8px;color:#706246;font-size:.8rem}#feedback{border-radius:10px;font-size:.95rem}#feedback:not(:empty){padding:15px 18px;background:#edf5ef;border:1px solid #ccdcd1}#feedback.error{color:#8b3938;background:#fff0ed;border-color:#edc8c1}#verify-panel{margin:0 0 25px}details{margin-top:20px;font-size:.8rem;color:#647b71}summary{cursor:pointer;font-weight:600}.appointment{border-top:1px solid #e2eae5;padding:19px 0}.appointment h3{font-size:.95rem;font-weight:600;margin:0 0 6px}.appointment p{margin:6px 0;font-size:.88rem}.appointment .actions{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}.appointment button{font-size:.8rem;padding:9px 12px}.badge{font-size:.75rem;color:#60756d}.appointment.cancelled{opacity:.65}footer{text-align:center;border-top:1px solid #dce6e1;padding:25px;font-size:.8rem;color:#74877d}footer span{padding:0 8px;color:#a58a56}@media(max-width:760px){.layout{grid-template-columns:1fr}.card{padding:22px}main{padding:28px 16px 40px}header{padding:20px 16px}header img{width:155px}#identity{flex-wrap:wrap;justify-content:flex-end;font-size:.75rem}.intro{margin-bottom:25px}h1{font-size:2.6rem}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}}

dialog{max-width:min(480px,calc(100% - 32px));border:1px solid #dce6e1;border-radius:18px;padding:28px;color:#193c46;background:#fff;box-shadow:0 20px 80px #193c4640}dialog::backdrop{background:#18382e66}.dialog-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.dialog-actions button{width:auto;margin:0;flex:1}

.intro{margin-bottom:20px}.intro h1{font-size:clamp(1.25rem,3vw,1.6rem);line-height:1.35;letter-spacing:-.015em;margin:0}.booking-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:360px;list-style:none;padding:0;margin:0 0 28px;color:#657e75;font-size:1rem}.booking-steps li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;min-width:0;padding:9px 6px;border:1px solid #c8dad0;border-radius:12px;background:#fff;line-height:1.25}.booking-steps .step-number{font-size:1.15rem;font-weight:700;line-height:1}.booking-steps [aria-current="step"]{background:#276454;border:2px solid #276454;color:#fff;font-weight:700}.booking form>label:first-child{margin-top:0}

#booking-result{margin-bottom:24px;border:2px solid #326e60}#booking-result h2{margin-bottom:12px}#booking-result .actions,.week-navigation{display:flex;flex-wrap:wrap;gap:10px}.week-navigation{margin-bottom:16px}.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.slot-day{border:1px solid #dce6e1;border-radius:10px;padding:12px}.slot-day h3{font-size:.85rem;margin:0 0 12px}.slot-day button{margin:0 6px 8px 0;min-width:65px}.slot-day p{font-size:.8rem}

#access-options{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 24px}#access-options button{flex:1;font-size:.85rem;padding:12px}

#access-form{display:grid;gap:20px}#access-form>p,#access-form>label,#access-form>details,#access-form>button{margin:0}#access-form>button{min-height:48px;overflow-wrap:anywhere}#access-help{font-size:.9rem}#access-form details+label{margin-top:-4px}

#booking-choice>label:first-child{margin-top:0}.focused-flow{grid-template-columns:minmax(0,680px);justify-content:center}.focused-flow>aside{min-width:0}#confirmation-panel{margin-bottom:24px;outline:none}#confirmation-panel h2{font-size:1.5rem;margin:0 0 16px}#confirmation-panel p{margin:12px 0}#confirmation-panel .quiet{margin-top:4px;font-size:.85rem;padding:10px 12px}#confirmation-service{font-weight:600}#deposit-panel{margin:20px 0}#cancellation-panel{margin-top:20px}.booking{min-width:0}header>a{flex-shrink:0}#identity{min-width:0;flex-wrap:wrap;justify-content:flex-end}#patient-name{overflow-wrap:anywhere;max-width:220px}input[type=date]{min-width:0;max-width:100%;min-inline-size:0}body{background-color:#f6f9f7}@media(max-width:420px){#identity{max-width:45%}#patient-name{font-size:.7rem}.card{padding:20px}.booking-steps{gap:10px}}

.deposit-page{max-width:680px;margin:0 auto}.deposit-page #refresh{margin-top:16px}.deposit-page #deadline{margin:24px 0;padding:16px;background:#edf5ef;border-radius:10px}.deposit-page h1{font-size:2rem}

#home-consultation{margin:24px 0;padding:20px;font-size:1rem;line-height:1.55}#home-consultation h3{margin:0 0 12px;font-size:1.05rem}#home-consultation p{margin:0}#home-consultation .actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:12px}#home-consultation .button{display:inline-block;border-radius:9px;background:#276454;color:#fff;padding:13px 17px;text-decoration:none;font-weight:600;max-width:100%;overflow-wrap:anywhere}#home-consultation .button:hover{background:#1a5143}

.preconsultation{margin-top:24px;border-top:1px solid #dce7e5;padding-top:20px}.preconsultation summary{cursor:pointer;font-weight:700}.preconsultation form{display:grid;gap:20px;margin-top:20px}.preconsultation label{display:grid;gap:10px}.preconsultation textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #ccdedd;border-radius:12px}

/* Anticipo: una acción por paso, legible en móvil. */
.deposit-page{max-width:560px;padding:32px}.deposit-page h1{font-size:clamp(1.6rem,5vw,2rem);line-height:1.2;margin:20px 0}.deposit-steps{display:flex;gap:12px;list-style:none;padding:0;margin:0 0 28px;font-size:.8rem;color:#667c74}.deposit-steps li{flex:1;padding:10px 8px;border-bottom:3px solid #dce6e1;text-align:center}.deposit-steps [aria-current=step]{border-color:#276454;color:#276454;font-weight:700}.deposit-symbol{width:64px;height:64px;color:#276454;background:#edf5ef;border-radius:18px;padding:10px}.deposit-symbol svg{width:100%;height:100%}.deposit-page #deadline{font-size:.85rem;padding:12px 16px;margin:20px 0 28px}.deposit-page .check{font-size:.95rem;gap:12px;margin:0;line-height:1.5}.deposit-page details{margin:16px 0 24px;font-size:.9rem}.deposit-page details p{line-height:1.6}.deposit-page #pay{margin:0;min-height:52px}.deposit-page #methods{text-align:center;font-size:.8rem;margin:12px 0 0}.deposit-help{margin:28px 0 0;font-size:.9rem}.deposit-page a{color:#276454;text-underline-offset:3px}.deposit-page #my-appointments{display:inline-block;margin-top:20px}.deposit-page #appointment{font-weight:600;line-height:1.7}.deposit-page #amount{padding:18px;background:#edf5ef;border-radius:12px;line-height:1.8}.deposit-aftercare{margin-top:28px;border-top:1px solid #dce6e1;padding-top:24px}.deposit-aftercare #confirmation-email{margin-top:20px}.deposit-aftercare h2{font-size:1.05rem;line-height:1.45;font-weight:700;margin:0 0 12px}.deposit-aftercare p{font-size:.9rem;margin:0;line-height:1.65}@media(max-width:420px){.deposit-page{padding:24px 20px}.deposit-steps{gap:8px;font-size:.75rem}}

/* Reserva guiada: una tarjeta activa y una sola acción principal por etapa. */
.portal-wizard main{max-width:728px;padding-top:28px;min-height:65vh}.portal-wizard .layout{grid-template-columns:minmax(0,1fr);gap:0}.portal-wizard .booking-steps{max-width:none;margin-bottom:20px}.portal-wizard .card{padding:32px;min-width:0}.portal-wizard #flow-progress{margin:0 0 16px;font-size:.85rem}.portal-wizard #feedback:empty{display:none}.portal-wizard .intro{margin-bottom:24px}.portal-wizard .flow-symbol{width:64px;height:64px;border-radius:18px;background:#edf5ef;color:#276454;padding:12px;margin-bottom:24px}.flow-symbol svg{width:100%;height:100%}.portal-wizard #choice-title{font-size:1.6rem;line-height:1.3;margin:0 0 12px;outline:none}.portal-wizard #choice-help{margin:0 0 24px}.portal-wizard #service-choice>label{margin-top:0}.portal-wizard #continue-service{width:100%;margin-top:28px;min-height:52px}.portal-wizard #voucher-options{margin-top:24px}.portal-wizard #voucher-options summary{font-weight:400}.portal-wizard #back-service{margin-bottom:12px}.portal-wizard #back-schedule{margin:0 0 24px}.portal-wizard .slots{grid-template-columns:1fr;gap:12px}.portal-wizard .slot-day{padding:0;overflow:hidden}.portal-wizard .day-choice{width:100%;border:0;text-align:left;border-radius:0;margin:0;padding:16px;min-height:52px}.portal-wizard .day-choice[aria-expanded=true]{background:#edf5ef}.portal-wizard .day-hours{display:flex;flex-wrap:wrap;gap:12px;padding:16px}.portal-wizard .day-hours button{margin:0;min-height:46px}.portal-wizard .day-hours p{margin:0}.portal-wizard #deposit-panel{background:#edf5ef;color:#193c46;padding:18px;font-size:.95rem}.portal-wizard #deposit-panel h3{font-size:1rem;margin:0 0 12px}.portal-wizard #deposit-balance{margin:0}.portal-wizard #cancellation-panel details{margin:24px 0 20px;font-size:.9rem}.portal-wizard .check{font-size:.9rem;gap:12px}.portal-wizard #book-button{min-height:52px;margin-top:28px}.portal-wizard #booking-result h2{font-size:1.8rem;line-height:1.3}.portal-wizard #booking-result .actions{gap:12px;margin-top:24px}.portal-wizard .week-navigation{gap:12px}.portal-wizard #access-sent{background:transparent;padding:0;color:inherit;font-size:1rem}.portal-wizard #access-sent button{margin:20px 12px 0 0}.portal-wizard #appointments-panel{margin-top:0}.portal-wizard button{max-width:100%;overflow-wrap:anywhere}.portal-wizard #confirmation-help:empty{display:none}@media(max-width:420px){.portal-wizard .card{padding:24px 20px}.portal-wizard main{padding:24px 16px 40px}.portal-wizard header{align-items:flex-start}.portal-wizard header img{width:140px}.portal-wizard #identity button{font-size:.75rem;padding:9px}.portal-wizard .day-hours{padding:12px}.portal-wizard #choice-title{font-size:1.4rem}}
