/* ==========================================================================
   BOOKING / RESERVATION
   ========================================================================== */

.booking-page{padding-top:7rem;padding-bottom:5rem;background:var(--cream)}
.booking-head{text-align:center;max-width:760px;margin:0 auto 3rem}
.booking-head .eyebrow{justify-content:center;display:inline-block}
.booking-head h1{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.4rem,5vw,4rem);line-height:1.05;margin-top:.6rem}
.booking-head h1 em{font-style:italic;color:var(--gold-deep)}
.booking-head p{margin-top:1rem;font-size:1.05rem;color:var(--ink-soft)}

/* Universe selector tabs */
.tab-switch{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:680px;margin:0 auto 3rem;background:var(--cream-2);padding:.5rem;border-radius:999px;border:1px solid var(--line)}
.tab-btn{padding:1rem 1.6rem;border-radius:999px;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;transition:all .35s var(--t);color:var(--ink-soft);text-align:center;display:flex;align-items:center;justify-content:center;gap:.6rem}
.tab-btn:hover{color:var(--ink)}
.tab-btn.active{background:var(--ink);color:var(--cream);box-shadow:0 4px 16px rgba(0,0,0,.18)}
.tab-btn[data-univers="love"].active{background:linear-gradient(135deg,#2A0F2C 0%,#0E0814 100%);color:#fff}
.tab-btn[data-univers="gite"].active{background:linear-gradient(135deg,#C8102E 0%,#971024 100%);color:#fff}
.tab-btn .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.tab-btn[data-univers="love"] .dot{background:#C9A76B}
.tab-btn[data-univers="gite"] .dot{background:#E8A33D}

/* Booking layout */
.booking-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:2.5rem;align-items:start}

/* Calendar */
.calendar-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1.8rem;box-shadow:var(--shadow-sm)}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.3rem}
.cal-head h3{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:400;text-transform:capitalize}
.cal-nav{display:flex;gap:.4rem}
.cal-nav button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:all .25s;background:#fff}
.cal-nav button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.cal-nav button:disabled{opacity:.3;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);padding:.6rem 0;font-weight:600}
.cal-day{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;font-size:.92rem;font-weight:500;cursor:pointer;transition:all .2s;position:relative;color:var(--ink);border:1px solid transparent}
.cal-day:hover:not(.empty):not(.disabled):not(.booked){background:var(--cream-2);border-color:var(--line)}
.cal-day.empty{cursor:default}
.cal-day.disabled{color:rgba(26,20,16,.25);cursor:not-allowed}
.cal-day.booked{background:repeating-linear-gradient(135deg,#f3eee5 0 6px,#e8ddc7 6px 12px);color:rgba(26,20,16,.4);cursor:not-allowed;text-decoration:line-through}
.cal-day.today{font-weight:700;color:var(--gold-deep)}
.cal-day.selected-start,.cal-day.selected-end{background:var(--ink);color:#fff;font-weight:600;border-color:var(--ink)}
.cal-day.in-range{background:var(--cream-2);color:var(--ink)}

.cal-legend{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--ink-soft)}
.cal-legend .lg{display:flex;align-items:center;gap:.5rem}
.cal-legend .sw{width:14px;height:14px;border-radius:4px;border:1px solid var(--line)}
.sw.available{background:#fff}
.sw.selected{background:var(--ink);border-color:var(--ink)}
.sw.booked{background:repeating-linear-gradient(135deg,#f3eee5 0 4px,#e8ddc7 4px 8px)}

/* Form */
.booking-form{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1.8rem;box-shadow:var(--shadow-sm)}
.booking-form h3{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:400;margin-bottom:1.4rem}
.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}
.field label{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
.field input,.field textarea,.field select{padding:.85rem 1rem;border:1px solid var(--line);border-radius:8px;background:var(--cream);font-size:.95rem;transition:border-color .2s,background .2s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink);background:#fff}
.field textarea{min-height:90px;resize:vertical;font-family:inherit}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.dates-display{background:var(--cream-2);border:1px dashed var(--line);border-radius:8px;padding:.9rem 1rem;font-size:.9rem;color:var(--ink-soft);text-align:center}
.dates-display strong{color:var(--ink);font-weight:600;font-family:'Cormorant Garamond',serif;font-size:1.05rem}

/* Supplements (love) */
.supplements{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.1rem}
.sup-opt{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--cream);transition:all .2s}
.sup-opt:hover{border-color:var(--gold-deep);background:#fff}
.sup-opt input{accent-color:var(--gold-deep);margin:0}
.sup-opt .lab{font-size:.86rem;font-weight:500}
.sup-opt .price-mini{font-size:.78rem;color:var(--ink-soft);margin-left:auto}

/* Total */
.booking-total{background:var(--ink);color:var(--cream);border-radius:var(--r-md);padding:1.4rem 1.6rem;display:flex;justify-content:space-between;align-items:center;margin:1.4rem 0}
.booking-total .lab{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.booking-total .amount{font-family:'Cormorant Garamond',serif;font-size:2.1rem;line-height:1}
.booking-total .amount small{font-size:.95rem;opacity:.7;font-family:'Inter',sans-serif;margin-left:.3rem}

/* Submit */
.booking-form .btn{width:100%;justify-content:center;padding:1.1rem}

/* Info banner */
.info-banner{background:var(--cream-2);border:1px solid var(--line);border-radius:var(--r-md);padding:1.3rem;display:flex;gap:1rem;align-items:flex-start;margin-top:1.4rem;font-size:.86rem;color:var(--ink-soft);line-height:1.6}
.info-banner .ico{width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--cream);display:grid;place-items:center;flex-shrink:0}
.info-banner strong{color:var(--ink);display:block;margin-bottom:.2rem;font-weight:600}

/* Confirmation modal */
.confirm-modal{position:fixed;inset:0;background:rgba(8,5,12,.85);z-index:200;display:none;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(8px)}
.confirm-modal.open{display:flex;animation:fadeIn .25s ease}
.confirm-card{background:var(--cream);border-radius:var(--r-lg);max-width:520px;width:100%;padding:3rem 2.5rem;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.5);animation:popIn .35s var(--t)}
@keyframes popIn{0%{opacity:0;transform:translateY(20px) scale(.96)}100%{opacity:1;transform:none}}
.confirm-card .icon-wrap{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);display:grid;place-items:center;margin:0 auto 1.4rem;color:#0a0a0a}
.confirm-card h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:2rem;line-height:1.2}
.confirm-card h3 em{font-style:italic;color:var(--gold-deep)}
.confirm-card p{margin-top:1rem;color:var(--ink-soft);line-height:1.7;font-size:.95rem}
.confirm-card .recap{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1rem;margin:1.5rem 0;text-align:left;font-size:.9rem}
.confirm-card .recap div{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px dashed var(--line)}
.confirm-card .recap div:last-child{border-bottom:0}
.confirm-card .recap span:first-child{color:var(--ink-soft)}
.confirm-card .recap span:last-child{font-weight:600}
.confirm-card .actions{display:flex;gap:.8rem;justify-content:center;margin-top:1.5rem;flex-wrap:wrap}

/* FAQ */
.faq{max-width:780px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line);padding:1.4rem 0;cursor:pointer}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:500;font-size:1.05rem}
.faq-q .plus{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:1rem;transition:transform .3s,background .3s,color .3s;flex-shrink:0}
.faq-item.open .faq-q .plus{transform:rotate(45deg);background:var(--ink);color:#fff;border-color:var(--ink)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--t);color:var(--ink-soft);font-size:.95rem;line-height:1.7}
.faq-item.open .faq-a{max-height:300px;margin-top:.8rem}

@media (max-width:900px){
  .booking-grid{grid-template-columns:1fr}
  .field-row,.supplements{grid-template-columns:1fr}
}
