.ohlala-booking{
  --ohlala-navy:#0b3752;
  --ohlala-navy-2:#082a3e;
  --ohlala-gold:#d5b384;
  --ohlala-gold-deep:#b18a58;
  --ohlala-gold-soft:#f1e5d2;
  --ohlala-cream:#f8f5f1;
  --ohlala-paper:#fffdfa;
  --ohlala-ink:#17313f;
  --ohlala-muted:#697985;
  --ohlala-line:#e5ddd4;
  --ohlala-free:#fff;
  --ohlala-free-text:#0b3752;
  --ohlala-free-hover:#0b3752;
  --ohlala-free-hover-text:#fff;
  --ohlala-booked:#e7e9eb;
  --ohlala-booked-text:#737d84;
  --ohlala-blocked:#ead8bf;
  --ohlala-blocked-text:#6d502e;
  --ohlala-shadow:0 24px 70px rgba(11,55,82,.10);
  --ohlala-shadow-soft:0 12px 35px rgba(11,55,82,.07);
  max-width:1280px;
  margin:0 auto;
  padding:clamp(18px,3vw,34px);
  font-family:inherit;
  color:var(--ohlala-ink);
}
.ohlala-booking *{box-sizing:border-box}
.ohlala-booking button,.ohlala-booking input,.ohlala-booking select{font-family:inherit}
.ohlala-booking__hero{max-width:820px;margin:0 auto 34px;text-align:center}
.ohlala-booking__eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--ohlala-gold-deep);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.ohlala-booking__eyebrow:before{content:"";width:30px;height:1px;background:currentColor}
.ohlala-booking__hero h2{margin:12px 0;color:var(--ohlala-navy)}
.ohlala-booking__hero p{max-width:700px;margin:0 auto;color:var(--ohlala-muted)}

.ohlala-calendar-card{background:linear-gradient(180deg,#fff 0%,var(--ohlala-paper) 100%);border:1px solid var(--ohlala-line);border-radius:28px;padding:clamp(16px,2.4vw,28px);box-shadow:var(--ohlala-shadow)}
.ohlala-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.ohlala-calendar-toolbar>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.ohlala-calendar-toolbar__label{font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--ohlala-gold-deep)}
.ohlala-calendar-toolbar strong{font-size:17px;color:var(--ohlala-navy);line-height:1.35}
.ohlala-calendar-nav{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.ohlala-calendar-nav button{appearance:none;border:1px solid var(--ohlala-line);background:#fff;color:var(--ohlala-navy);height:40px;min-width:40px;padding:0 13px;border-radius:999px;font:inherit;font-weight:700;cursor:pointer;transition:border-color .2s ease,transform .2s ease,background .2s ease,color .2s ease}
.ohlala-calendar-nav button:hover,.ohlala-calendar-nav button:focus-visible{border-color:var(--ohlala-gold);transform:translateY(-1px);outline:none;box-shadow:0 0 0 3px rgba(213,179,132,.16)}
.ohlala-legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin:0 0 20px;color:var(--ohlala-muted);font-size:13px}
.ohlala-legend span{display:flex;align-items:center;gap:7px}
.ohlala-legend i{width:14px;height:14px;border-radius:4px;border:1px solid var(--ohlala-line);display:inline-block;flex:0 0 14px}
.ohlala-legend .is-free{background:var(--ohlala-free)}.ohlala-legend .is-booked{background:var(--ohlala-booked)}.ohlala-legend .is-blocked{background:var(--ohlala-blocked)}
.ohlala-calendar-status{display:none;margin:0 0 14px;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45;font-weight:600}
.ohlala-calendar-status:not(:empty){display:block}
.ohlala-calendar-status.is-error{color:#7f2e2b;background:#fbeceb;border:1px solid #efd1cf}
.ohlala-calendar-status.is-loading{color:var(--ohlala-navy);background:#eef5f8;border:1px solid #d9e8ef}
.ohlala-week{transition:opacity .2s ease}.ohlala-week.is-loading{opacity:.55}
.ohlala-day{border:1px solid var(--ohlala-line);background:var(--ohlala-cream)}
.ohlala-day__header{background:#fff;border-bottom:1px solid var(--ohlala-line)}
.ohlala-day__header span{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--ohlala-muted)}
.ohlala-day__header strong{font-size:27px;line-height:1;color:var(--ohlala-navy)}
.ohlala-day__header small{font-size:11px;color:var(--ohlala-gold-deep);text-transform:uppercase}
.ohlala-day__slots{display:flex;flex-direction:column;gap:7px}
.ohlala-time{border:1px solid var(--ohlala-line);border-radius:12px;padding:10px 9px;font:inherit;font-size:13px;font-weight:700;line-height:1.15;transition:.2s ease;min-height:39px}
.ohlala-time.is-free{background:var(--ohlala-free);color:var(--ohlala-free-text);cursor:pointer}
.ohlala-time.is-free:hover,.ohlala-time.is-free:focus-visible{border-color:var(--ohlala-free-hover);background:var(--ohlala-free-hover);color:var(--ohlala-free-hover-text);transform:translateY(-1px);box-shadow:0 8px 18px rgba(11,55,82,.12);outline:none}
.ohlala-time.is-booked{background:var(--ohlala-booked);color:var(--ohlala-booked-text);border-color:var(--ohlala-booked);cursor:not-allowed}
.ohlala-time.is-blocked{background:var(--ohlala-blocked);color:var(--ohlala-blocked-text);border-color:#dfc49f;cursor:not-allowed}
.ohlala-day__closed{display:block;padding:18px 8px;text-align:center;font-size:12px;color:#8c979e}
.ohlala-empty-calendar{padding:30px;text-align:center;color:var(--ohlala-muted);background:var(--ohlala-cream);border-radius:16px}
.ohlala-calendar-note{text-align:center;color:var(--ohlala-muted);font-size:13px;margin:16px 0 0}

/* 1. SEMANA ELEGANTE */
.ohlala-calendar-style-week .ohlala-week{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px;overflow-x:auto;padding-bottom:5px}
.ohlala-calendar-style-week .ohlala-day{min-width:120px;border-radius:18px;overflow:hidden}
.ohlala-calendar-style-week .ohlala-day__header{min-height:82px;padding:12px 10px;text-align:center;display:grid;place-items:center;gap:1px}
.ohlala-calendar-style-week .ohlala-day__slots{padding:10px;max-height:500px;overflow:auto}

/* 2. AGENDA POR DIAS */
.ohlala-calendar-style-agenda .ohlala-calendar-card{background:#fff}
.ohlala-calendar-style-agenda .ohlala-week{display:flex;flex-direction:column;gap:12px}
.ohlala-calendar-style-agenda .ohlala-day{display:grid;grid-template-columns:150px minmax(0,1fr);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--ohlala-shadow-soft)}
.ohlala-calendar-style-agenda .ohlala-day__header{border-bottom:0;border-right:1px solid var(--ohlala-line);padding:18px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;background:linear-gradient(135deg,var(--ohlala-cream),#fff)}
.ohlala-calendar-style-agenda .ohlala-day__header strong{font-size:32px}
.ohlala-calendar-style-agenda .ohlala-day__slots{padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));align-content:start}
.ohlala-calendar-style-agenda .ohlala-day__closed{grid-column:1/-1;text-align:left;padding:14px 4px}

/* 3. TARJETAS BOUTIQUE */
.ohlala-calendar-style-cards .ohlala-calendar-card{background:linear-gradient(145deg,#fff,#f8f3ed)}
.ohlala-calendar-style-cards .ohlala-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:16px}
.ohlala-calendar-style-cards .ohlala-day{border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 14px 32px rgba(11,55,82,.07);border-color:#ece2d7}
.ohlala-calendar-style-cards .ohlala-day__header{padding:18px 18px 14px;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;background:#fff}
.ohlala-calendar-style-cards .ohlala-day__header span{grid-column:1/-1}.ohlala-calendar-style-cards .ohlala-day__header strong{font-size:34px}.ohlala-calendar-style-cards .ohlala-day__header small{align-self:end;padding-bottom:3px}
.ohlala-calendar-style-cards .ohlala-day__slots{padding:14px 16px 18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;background:var(--ohlala-cream)}
.ohlala-calendar-style-cards .ohlala-time{border-radius:999px;padding:10px 6px}
.ohlala-calendar-style-cards .ohlala-day__closed{grid-column:1/-1}

/* 4. MINIMAL COMPACTO */
.ohlala-calendar-style-minimal .ohlala-calendar-card{box-shadow:none;border-radius:18px;background:#fff;padding-left:clamp(12px,2vw,22px);padding-right:clamp(12px,2vw,22px)}
.ohlala-calendar-style-minimal .ohlala-week{display:flex;flex-direction:column;border-top:1px solid var(--ohlala-line)}
.ohlala-calendar-style-minimal .ohlala-day{display:grid;grid-template-columns:165px minmax(0,1fr);border:0;border-bottom:1px solid var(--ohlala-line);background:#fff;padding:10px 0}
.ohlala-calendar-style-minimal .ohlala-day__header{border:0;padding:8px 12px;display:flex;align-items:baseline;gap:8px;background:transparent}
.ohlala-calendar-style-minimal .ohlala-day__header span{order:2}.ohlala-calendar-style-minimal .ohlala-day__header strong{font-size:26px}.ohlala-calendar-style-minimal .ohlala-day__header small{order:3}
.ohlala-calendar-style-minimal .ohlala-day__slots{padding:6px 10px;display:flex;flex-direction:row;flex-wrap:wrap;gap:7px;align-items:center}
.ohlala-calendar-style-minimal .ohlala-time{width:auto;min-width:76px;border-radius:999px;padding:8px 13px}
.ohlala-calendar-style-minimal .ohlala-day__closed{text-align:left;padding:9px 4px}

/* MODAL */
.ohlala-modal[hidden]{display:none!important}
.ohlala-modal{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;padding:18px}
.ohlala-modal__backdrop{position:absolute;inset:0;background:rgba(3,24,35,.68);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.ohlala-modal__dialog{position:relative;z-index:2;width:min(720px,100%);max-height:min(880px,92vh);overflow:auto;background:#fff;color:var(--ohlala-ink);border-radius:28px;box-shadow:0 35px 100px rgba(0,0,0,.28);padding:clamp(22px,4vw,38px);overscroll-behavior:contain}
.ohlala-modal__close{position:absolute;right:18px;top:16px;width:38px;height:38px;border-radius:50%;border:1px solid var(--ohlala-line);background:#fff;color:var(--ohlala-navy);font-size:24px;line-height:1;cursor:pointer;z-index:3}
.ohlala-modal__close:hover,.ohlala-modal__close:focus-visible{border-color:var(--ohlala-gold);outline:none;box-shadow:0 0 0 3px rgba(213,179,132,.16)}
.ohlala-modal__header{padding-right:45px;margin-bottom:24px}
.ohlala-modal__header h3{margin:8px 0 6px;color:var(--ohlala-navy)}
.ohlala-modal__slot{margin:0;font-weight:700;color:var(--ohlala-gold-deep);text-transform:capitalize}
.ohlala-question{font-size:18px;font-weight:700;color:var(--ohlala-navy);margin:0 0 14px}
.ohlala-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ohlala-source-choice{appearance:none;border:1px solid var(--ohlala-line);border-radius:20px;background:var(--ohlala-cream);padding:22px;text-align:left;cursor:pointer;transition:.2s ease;color:var(--ohlala-ink)}
.ohlala-source-choice:hover,.ohlala-source-choice:focus-visible{border-color:var(--ohlala-gold);background:#fff;transform:translateY(-2px);box-shadow:0 15px 35px rgba(11,55,82,.08);outline:none}
.ohlala-source-choice__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ohlala-navy);color:#fff;font-weight:800;margin-bottom:16px}
.ohlala-source-choice strong,.ohlala-source-choice small{display:block}.ohlala-source-choice strong{font-size:17px;color:var(--ohlala-navy);margin-bottom:5px}.ohlala-source-choice small{color:var(--ohlala-muted);line-height:1.45}
.ohlala-modal-step h4{margin:0 0 6px;color:var(--ohlala-navy);font-size:22px}.ohlala-step-intro{margin:0 0 20px;color:var(--ohlala-muted)}
.ohlala-step-back{appearance:none;border:0;background:transparent;color:var(--ohlala-gold-deep);padding:0;margin:0 0 16px;font:inherit;font-weight:700;cursor:pointer}
.ohlala-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ohlala-field-full{grid-column:1/-1}
.ohlala-modal label{display:block;font-size:13px;font-weight:700;color:var(--ohlala-navy);margin:0}
.ohlala-modal input,.ohlala-modal select{width:100%;margin-top:7px;border:1px solid var(--ohlala-line);border-radius:13px;padding:13px 14px;background:#fff;color:var(--ohlala-ink);font:inherit;outline:none;transition:.2s ease}
.ohlala-modal input:focus,.ohlala-modal select:focus{border-color:var(--ohlala-gold);box-shadow:0 0 0 3px rgba(213,179,132,.18)}
.ohlala-upload-field{border:1px dashed #d7cab9;border-radius:16px;padding:14px;background:var(--ohlala-cream)}.ohlala-upload-field input{border:0;padding:8px 0;background:transparent}.ohlala-upload-field small{display:block;color:var(--ohlala-muted);font-weight:400}
.ohlala-primary-button{appearance:none;width:100%;border:0;border-radius:999px;background:var(--ohlala-navy);color:#fff!important;padding:15px 22px;margin-top:18px;font:inherit;font-weight:800;cursor:pointer;transition:.2s ease}
.ohlala-primary-button:hover,.ohlala-primary-button:focus-visible{background:var(--ohlala-navy-2);color:#fff!important;transform:translateY(-1px);box-shadow:0 12px 26px rgba(11,55,82,.20);outline:none}
.ohlala-primary-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.ohlala-message{display:none;margin-top:12px;padding:11px 13px;border-radius:12px;font-size:13px;line-height:1.45;font-weight:650;color:var(--ohlala-ink);background:#f4f6f7;border:1px solid #e1e6e8}
.ohlala-message:not(:empty){display:block}
.ohlala-message.is-error{color:#7f2e2b!important;background:#fbeceb;border-color:#efd1cf}
.ohlala-message.is-ok{color:#1f6545!important;background:#e8f5ee;border-color:#cce7d8}
.ohlala-message.is-loading{color:#405763!important;background:#eef3f5;border-color:#dce7eb}
.ohlala-success{text-align:center;padding:18px;border-radius:20px;background:linear-gradient(180deg,#fbfdfc,#f4faf7);border:1px solid #d8eadf;color:var(--ohlala-ink)}
.ohlala-success__icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:#e6f3ec;color:#2a7751;font-size:24px;font-weight:800}
.ohlala-success h4{color:var(--ohlala-navy)!important;margin:0 0 8px}.ohlala-success p{color:#425862!important;margin:0 auto 8px;max-width:540px;line-height:1.6}
html.ohlala-modal-open,html.ohlala-modal-open body{overflow:hidden}

/* TABLET */
@media(max-width:1024px){
  .ohlala-booking{padding:16px}
  .ohlala-calendar-style-week .ohlala-week{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .ohlala-calendar-style-week .ohlala-day{min-width:0}
  .ohlala-calendar-style-week .ohlala-day__slots{max-height:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .ohlala-calendar-style-cards .ohlala-week{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* MOVIL */
@media(max-width:700px){
  .ohlala-booking{padding:10px}
  .ohlala-booking__hero{text-align:left;margin-bottom:22px}
  .ohlala-booking__eyebrow{font-size:10px}
  .ohlala-calendar-card{border-radius:20px;padding:14px}
  .ohlala-calendar-toolbar{align-items:flex-start;flex-direction:column;gap:12px}
  .ohlala-calendar-nav{width:100%;justify-content:space-between}
  .ohlala-calendar-nav button:nth-child(2){flex:1}
  .ohlala-legend{gap:9px 12px;font-size:11px;margin-bottom:15px}
  .ohlala-calendar-note{text-align:left;padding:0 4px}

  .ohlala-calendar-style-week .ohlala-week,
  .ohlala-calendar-style-cards .ohlala-week{grid-template-columns:1fr;gap:12px}
  .ohlala-calendar-style-week .ohlala-day__header,
  .ohlala-calendar-style-cards .ohlala-day__header{min-height:0;display:flex;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:8px;text-align:left;padding:14px 16px}
  .ohlala-calendar-style-week .ohlala-day__header strong,
  .ohlala-calendar-style-cards .ohlala-day__header strong{font-size:26px}
  .ohlala-calendar-style-week .ohlala-day__slots,
  .ohlala-calendar-style-cards .ohlala-day__slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px;max-height:none;overflow:visible}

  .ohlala-calendar-style-agenda .ohlala-day,
  .ohlala-calendar-style-minimal .ohlala-day{grid-template-columns:1fr;border-radius:16px;overflow:hidden;padding:0}
  .ohlala-calendar-style-agenda .ohlala-day__header,
  .ohlala-calendar-style-minimal .ohlala-day__header{border-right:0;border-bottom:1px solid var(--ohlala-line);display:flex;flex-direction:row;align-items:baseline;gap:8px;padding:13px 14px;background:#fff}
  .ohlala-calendar-style-agenda .ohlala-day__header strong,
  .ohlala-calendar-style-minimal .ohlala-day__header strong{font-size:25px}
  .ohlala-calendar-style-agenda .ohlala-day__slots{padding:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
  .ohlala-calendar-style-minimal .ohlala-week{gap:10px;border-top:0}
  .ohlala-calendar-style-minimal .ohlala-day{border:1px solid var(--ohlala-line)}
  .ohlala-calendar-style-minimal .ohlala-day__slots{padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .ohlala-calendar-style-minimal .ohlala-time{width:100%;min-width:0;padding:9px 6px}

  .ohlala-source-grid,.ohlala-form-grid{grid-template-columns:1fr}
  .ohlala-field-full{grid-column:auto}
  .ohlala-modal{padding:0;align-items:end}
  .ohlala-modal__dialog{width:100%;border-radius:24px 24px 0 0;padding:24px 18px max(22px,env(safe-area-inset-bottom));max-height:94dvh}
  .ohlala-modal__header{padding-right:42px;margin-bottom:18px}
  .ohlala-source-choice{padding:17px}
}

@media(max-width:420px){
  .ohlala-calendar-style-week .ohlala-day__slots,
  .ohlala-calendar-style-cards .ohlala-day__slots,
  .ohlala-calendar-style-agenda .ohlala-day__slots,
  .ohlala-calendar-style-minimal .ohlala-day__slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ohlala-calendar-nav button{height:38px;min-width:38px;padding:0 11px}
}
