.booking{--ink:#09376c;--blue:#0073d9;max-width:1000px;margin:0 auto;padding:32px 16px 70px;color:var(--ink)}.booking-crumb{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;margin-bottom:36px}.booking a{color:var(--ink)}.booking h1,.booking h2{font-family:Georgia,serif;color:#072c61;line-height:1.2}.booking h1{font-size:34px;margin:0 0 12px}.booking h2{font-size:27px}.booking p{line-height:1.6}.booking-heading{text-align:center;margin-bottom:32px}.booking-eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:#637d9a}.booking-options{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:780px;margin:auto}.booking-card,.booking-flow{background:linear-gradient(135deg,#fff,#f7fbff);border:1px solid #dce6ef;border-radius:12px;padding:36px;box-shadow:0 8px 30px #163e6810}.booking-card{text-align:center;display:flex;flex-direction:column;align-items:center}.booking-card p{flex:1;max-width:260px}.booking-icon svg{width:66px;height:66px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.booking-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:linear-gradient(115deg,#12457b,#195899);border:1px solid #164a81;border-radius:5px;padding:13px 24px;color:white!important;text-decoration:none;font:inherit;font-size:14px;font-weight:600;cursor:pointer;min-height:46px}.booking-button:hover{filter:brightness(1.1)}.booking-button:disabled{opacity:.45;cursor:not-allowed}.booking-button.secondary{background:white;color:var(--ink)!important}.booking-button.danger{background:#dd2143;border-color:#dd2143}.booking-card .booking-button{width:100%}.booking-notice{background:#e4f2ff;padding:14px 17px;border-radius:6px;font-size:13px;margin:24px 0}.booking-center{text-align:center;font-size:14px}.booking-flow{max-width:720px;margin:auto}.booking-steps{display:flex;list-style:none;padding:0;margin:0 0 36px;justify-content:space-between}.booking-steps li{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;gap:8px;font-size:12px;text-align:center}.booking-steps li:before{content:'';height:1px;background:#ccd9e7;position:absolute;top:16px;left:0;width:100%}.booking-steps span{z-index:1;border:1px solid #cbd9e9;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;background:#f0f5fa}.booking-steps .active{font-weight:bold}.booking-steps .active span{background:var(--blue);color:#fff;border-color:var(--blue)}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}.booking-field label{display:block;font-size:13px;margin-bottom:7px}.booking-field input:not([type=radio]),.booking-field textarea{box-sizing:border-box;width:100%;border:1px solid #ccdbea;border-radius:5px;background:#fff;padding:11px;font:inherit;color:var(--ink)}.booking-required,.errorlist{color:#b32039}.errorlist{padding-left:18px;font-size:13px}.booking-wide{grid-column:1/-1}.booking-actions{display:flex;justify-content:space-between;gap:15px;margin-top:28px;flex-wrap:wrap}.booking-full{width:100%}.booking-calendar-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:25px}.booking-calendar,.booking-times{min-width:0;border:1px solid #e0e8f1;border-radius:8px;background:#fff;padding:16px}.booking-month{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.booking-month a{padding:6px;text-decoration:none;font-size:25px}.booking-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center;font-size:13px}.booking-days>*{display:grid;place-items:center;min-height:32px}.booking-days a{text-decoration:none;border-radius:5px}.booking-days a:hover{background:#e4f2ff}.booking-days .selected{background:var(--blue);color:white}.booking-days .unavailable{color:#aab6c2}.booking-times legend{font-size:14px;font-weight:bold;padding:0 4px}.booking-times>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.booking-times label{position:relative;cursor:pointer}.booking-times input{position:absolute;opacity:0}.booking-times span{display:block;text-align:center;padding:9px 5px;border:1px solid #dce5ef;border-radius:5px;font-size:14px}.booking-times input:checked+span{background:var(--blue);color:white}.booking-times input:focus-visible+span,.booking :focus-visible{outline:3px solid #46a6ef;outline-offset:3px}.booking-summary{background:white;border:1px solid #e0e8f1;border-radius:8px;padding:10px 20px}.booking-summary>div{display:grid;grid-template-columns:135px 1fr;gap:18px;padding:14px 0;border-bottom:1px solid #edf1f7;font-size:14px}.booking-summary>div:last-child{border:0}.booking-summary dt{font-weight:600}.booking-summary dd{margin:0;overflow-wrap:anywhere}.booking-summary small{display:block;margin-top:6px;color:#6a83a0}.booking-success{border-radius:50%;background:#10b65a;color:white;width:52px;height:52px;display:grid;place-items:center;font-size:32px;margin:0 auto 20px}.booking-code{padding:20px;background:#edf6ff;border:1px solid #dbe7f2;border-radius:6px;text-align:center;overflow-wrap:anywhere}.booking-code small,.booking-code strong{display:block}.booking-code strong{margin-top:7px;font-size:20px}.booking-status{background:#c5f0d6;padding:5px 9px;border-radius:4px}.booking-cancel{margin-top:25px}.booking-cancel summary{cursor:pointer;color:#bb1739}.nav .nav-reserva{background:#103e72;color:white;border-radius:4px;padding:9px}.reservation-hero-cta{display:inline-block;margin-top:20px;padding:14px 25px;background:#0074d9;color:#fff;border-radius:30px;text-decoration:none;font-weight:bold}@media(max-width:650px){.booking{padding:22px 0 40px}.booking-options,.booking-calendar-layout,.booking-fields{grid-template-columns:1fr}.booking-flow,.booking-card{padding:23px 18px}.booking h1{font-size:28px}.booking-wide{grid-column:auto}.booking-summary>div{grid-template-columns:105px 1fr;gap:8px}.booking-actions>*{flex:1}.booking-actions .booking-button{width:100%}.booking-steps li{font-size:10px}.booking-times>div{grid-template-columns:repeat(3,1fr)}}
.booking .booking-field-title{grid-column:1/-1;font-family:inherit;font-size:15px;margin:6px 0 -8px}.booking-field [id="id_documentos"]{display:flex;gap:22px}.booking-times>div>p{grid-column:1/-1}
.booking *{box-sizing:border-box}.booking details{margin-top:24px}.booking summary{cursor:pointer}
.booking-upload { margin: 26px 0 30px; padding: 22px; border: 1px dashed #83acd0; border-radius: 10px; background: #edf6ff; }
.booking .booking-upload h2 { font-family: inherit; font-size: 18px; margin: 0 0 12px; }
.booking-upload p { margin: 10px 0 16px; font-size: 14px; line-height: 1.6; }
.booking-upload label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.booking-upload input[type=file] { display: block; max-width: 100%; width: 100%; font: inherit; font-size: 13px; }
.booking-upload input::file-selector-button { padding: 10px 12px; border: 1px solid #9dbada; border-radius: 5px; background: white; color: #123e70; cursor: pointer; margin-right: 10px; }
.booking-upload small { display: block; margin: 12px 0 18px; line-height: 1.6; color: #526b85; }
.booking-upload #certificado-estado:empty { display: none; }
.booking-upload #certificado-estado { margin-bottom: 0; }
.booking-upload .upload-error { color: #a7253c; }
.booking-field[hidden] { display: none; }
.booking-field #id_tiene_borrador { display: flex; gap: 24px; margin-top: 10px; }
.booking-field small { display: block; font-size: 12px; line-height: 1.6; margin-top: 10px; color: #526b85; }
.booking-field input[type=file] { max-width: 100%; font-size: 13px; }
/* Selector de borrador integrado al formulario. */
.booking .draft-upload { padding: 24px; border: 1px dashed #9bb9d6; border-radius: 12px; background: linear-gradient(135deg, #f5faff, #edf5fc); }
.draft-upload-heading { display: flex; align-items: center; gap: 15px; margin-bottom: 22px; }
.draft-upload-icon { display: grid; place-items: center; flex: 0 0 46px; height: 46px; border-radius: 12px; color: #18568d; background: #deedfb; }
.draft-upload-icon svg { width: 27px; height: 27px; }
.booking .draft-upload-heading label { margin: 0 0 6px; font-size: 15px; line-height: 1.4; font-weight: 650; color: #123e70; }
.booking .draft-upload-heading p { margin: 0; font-size: 13px; line-height: 1.5; color: #526b85; }
.booking .draft-upload input[type=file] { width: 100%; padding: 0; border: 1px solid #c6d8e9; border-radius: 7px; background: #fff; color: #526b85; font-size: 13px; line-height: 24px; cursor: pointer; }
.booking .draft-upload input::file-selector-button { margin: 0 14px 0 0; padding: 11px 17px; border: 0; border-right: 1px solid #123e70; border-radius: 6px 0 0 6px; background: #174b80; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.booking .draft-upload input:hover::file-selector-button { background: #205e99; }
.booking .draft-upload:focus-within { border-color: #3d8dd3; box-shadow: 0 0 0 3px #3d8dd31a; }
.draft-upload-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 16px; }
.draft-upload-meta span { font-size: 10px; letter-spacing: .4px; font-weight: 600; padding: 4px 7px; border: 1px solid #d4e2ee; border-radius: 4px; color: #506c85; background: #fff; }
.draft-upload-meta .draft-upload-limit { margin-left: auto; padding: 0; border: 0; background: transparent; font-size: 12px; font-weight: 400; letter-spacing: 0; }
.booking .draft-upload small { margin-top: 14px; overflow-wrap: anywhere; }
@media (max-width: 600px) { .booking .draft-upload { padding: 18px 15px; } .draft-upload-heading { align-items: flex-start; gap: 12px; } .booking .draft-upload input::file-selector-button { padding: 10px 12px; margin-right: 8px; } }
