.booking{--ink:#205530;--blue:#3b9e59;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:#1c4c2a;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:#639a74}.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,#f9fdfa);border:1px solid #dcefe2;border-radius:12px;padding:36px;box-shadow:0 8px 30px #225c3310}.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,#26673a,#308249);border:1px solid #296e3e;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:#ebf8ef;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:#cce7d4;position:absolute;top:16px;left:0;width:100%}.booking-steps span{z-index:1;border:1px solid #cbe9d4;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;background:#f0faf3}.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 #ccead5;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 #e0f1e5;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:#ebf8ef}.booking-days .selected{background:var(--blue);color:white}.booking-days .unavailable{color:#aac2b1}.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 #dcefe2;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 #6cc988;outline-offset:3px}.booking-summary{background:white;border:1px solid #e0f1e5;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 #edf7f0;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:#6aa07a}.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:#f2faf4;border:1px solid #dbf2e2;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:#235e35;color:white;border-radius:4px;padding:9px}.reservation-hero-cta{display:inline-block;margin-top:20px;padding:14px 25px;background:#235e35;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 #83d09a; border-radius: 10px; background: #f2faf4; }
.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 #9ddaaf; border-radius: 5px; background: white; color: #235e35; cursor: pointer; margin-right: 10px; }
.booking-upload small { display: block; margin: 12px 0 18px; line-height: 1.6; color: #528561; }
.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: #528561; }
.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 #9bd6ad; border-radius: 12px; background: linear-gradient(135deg, #f8fcf9, #f0f9f3); }
.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: #2d7843; background: #e4f5e9; }
.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: #235e35; }
.booking .draft-upload-heading p { margin: 0; font-size: 13px; line-height: 1.5; color: #528561; }
.booking .draft-upload input[type=file] { width: 100%; padding: 0; border: 1px solid #c6e9d0; border-radius: 7px; background: #fff; color: #528561; 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 #235e35; border-radius: 6px 0 0 6px; background: #296e3e; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.booking .draft-upload input:hover::file-selector-button { background: #32874b; }
.booking .draft-upload:focus-within { border-color: #51bf72; box-shadow: 0 0 0 3px #51bf721a; }
.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 #d4eedc; border-radius: 4px; color: #508560; 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; } }
