/* ═══════════════════════════════════════════════════
   PALMIRA — Booking widget public styles
   Cohérent avec la palette violet/cosmique du site
   ═══════════════════════════════════════════════════ */

.p-reserve {
  padding: 100px 5%;
  background: linear-gradient(180deg, var(--p-cream) 0%, #f3edff 100%);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.p-reserve .p-inner { max-width: 1100px; margin: 0 auto; }
.p-reserve .p-label { font-size: 0.82rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--p-sec); margin-bottom: 18px; font-weight: 500; }
.p-reserve .p-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.2rem); font-weight: 300; color: var(--p-solid); line-height: 1.15; margin-bottom: 16px; }
.p-reserve .p-sub { color: var(--p-t2); font-size: 1.05rem; max-width: 600px; margin: 0 auto 50px; line-height: 1.7; }

.pr-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 36px; text-align: left; }
@media (max-width: 900px) { .pr-grid { grid-template-columns: 1fr; gap: 24px; } }

.pr-col-cal, .pr-col-side {
  background: rgba(255,255,255,0.8);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(152,42,188,0.12);
  border-radius: 18px;
  padding: 28px 30px;
  box-shadow: 0 8px 32px rgba(152,42,188,0.06);
}

.pr-cal-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.pr-month { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; color: var(--p-solid); font-weight: 500; text-transform: capitalize; }
.pr-arrow { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(152,42,188,0.2); background: #fff; color: var(--p-sec); font-size: 1.4rem; cursor: pointer; transition: all 0.2s; padding: 0; line-height: 1; }
.pr-arrow:hover { background: var(--p-sec); color: #fff; }

.pr-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.pr-dow { text-align: center; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--p-sec); padding: 8px 0; opacity: 0.7; }
.pr-day { background: rgba(152,42,188,0.04); border: 1px solid transparent; border-radius: 8px; aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; padding: 0; font-family: inherit; color: var(--p-t1); position: relative; }
.pr-day-num { font-size: 0.95rem; font-weight: 400; }
.pr-day-empty { background: transparent; cursor: default; }
.pr-day-past { opacity: 0.25; cursor: not-allowed; pointer-events: none; }
.pr-day-closed { opacity: 0.35; color: var(--p-t2); cursor: not-allowed; }
.pr-day-open:hover { background: rgba(152,42,188,0.12); border-color: rgba(152,42,188,0.3); transform: translateY(-1px); }
.pr-day-sel { background: linear-gradient(135deg, var(--p-sec), #6b3fa0) !important; color: #fff !important; border-color: var(--p-sec) !important; box-shadow: 0 4px 14px rgba(152,42,188,0.35); }
.pr-day-sel .pr-day-num { font-weight: 600; }
.pr-day-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--p-sec); margin-top: 3px; opacity: 0.7; }
.pr-day-sel .pr-day-dot { background: #fff; opacity: 1; }
.pr-cal-loading, .pr-cal-error { grid-column: 1 / -1; text-align: center; padding: 40px 20px; color: var(--p-t2); font-style: italic; }
.pr-cal-error { color: #c33; }

.pr-tz { text-align: center; margin-top: 18px; font-size: 0.78rem; color: var(--p-t2); opacity: 0.7; letter-spacing: 0.05em; }

.pr-side { min-height: 320px; }
.pr-side-empty { color: var(--p-t2); font-style: italic; padding: 60px 20px; text-align: center; opacity: 0.7; }
.pr-side-loading { color: var(--p-sec); padding: 30px 0; text-align: center; font-style: italic; }
.pr-side-error { color: #c33; padding: 20px 0; text-align: center; }
.pr-side-label { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; color: var(--p-solid); margin-bottom: 18px; font-weight: 500; text-transform: capitalize; }

.pr-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(95px, 1fr)); gap: 10px; }
.pr-slot { padding: 14px 10px; background: rgba(152,42,188,0.06); border: 1px solid rgba(152,42,188,0.18); border-radius: 10px; color: var(--p-solid); cursor: pointer; font-family: inherit; font-size: 0.95rem; font-weight: 500; transition: all 0.2s; }
.pr-slot:hover { background: var(--p-sec); color: #fff; border-color: var(--p-sec); transform: translateY(-2px); }
.pr-slot-sel { background: var(--p-sec); color: #fff; border-color: var(--p-sec); }

.pr-back { background: none; border: none; color: var(--p-sec); cursor: pointer; padding: 0; margin: 0 0 16px; font-size: 0.85rem; font-family: inherit; }
.pr-back:hover { text-decoration: underline; }
.pr-form { display: flex; flex-direction: column; gap: 16px; }
.pr-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pr-field { display: flex; flex-direction: column; gap: 6px; }
.pr-field-full { grid-column: 1 / -1; }
.pr-field label { font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--p-t2); font-weight: 500; }
.pr-field input, .pr-field textarea { background: #fff; border: 1px solid rgba(152,42,188,0.2); border-radius: 8px; padding: 10px 14px; font-family: inherit; font-size: 0.95rem; color: var(--p-t1); transition: border 0.2s; }
.pr-field input:focus, .pr-field textarea:focus { outline: none; border-color: var(--p-sec); box-shadow: 0 0 0 3px rgba(152,42,188,0.1); }

.pr-cgv { font-size: 0.85rem; color: var(--p-t2); display: flex; gap: 8px; align-items: flex-start; line-height: 1.5; }
.pr-cgv input { margin-top: 3px; accent-color: var(--p-sec); }
.pr-cgv a { color: var(--p-sec); }

.pr-submit { padding: 16px 24px; font-size: 1rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; background: linear-gradient(180deg, #4a2a6e 0%, #2E063D 100%); border: none; border-radius: 50px; cursor: pointer; box-shadow: 0 8px 24px rgba(152,42,188,0.28); transition: all 0.25s; font-family: inherit; }
.pr-submit:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(152,42,188,0.4); }
.pr-submit:disabled { opacity: 0.6; cursor: wait; }
.pr-secure { font-size: 0.78rem; color: var(--p-t2); text-align: center; margin: 0; opacity: 0.75; }
.pr-error { color: #c33; font-size: 0.9rem; text-align: center; margin: 8px 0 0; }

/* Dark mode */
body.palmira-dark .p-reserve { background: linear-gradient(180deg, #06031a 0%, #0d0625 100%); }
body.palmira-dark .p-reserve .p-title { color: #ede6ff; }
body.palmira-dark .p-reserve .p-sub { color: #a896c0; }
body.palmira-dark .pr-col-cal, body.palmira-dark .pr-col-side { background: rgba(255,255,255,0.04); border-color: rgba(180,140,210,0.15); }
body.palmira-dark .pr-month { color: #ede6ff; }
body.palmira-dark .pr-arrow { background: rgba(255,255,255,0.06); border-color: rgba(180,140,210,0.2); color: #b99ad8; }
body.palmira-dark .pr-arrow:hover { background: var(--p-sec); color: #fff; }
body.palmira-dark .pr-day { background: rgba(180,140,210,0.04); color: #ede6ff; }
body.palmira-dark .pr-day-open:hover { background: rgba(168,125,214,0.2); }
body.palmira-dark .pr-side-label { color: #ede6ff; }
body.palmira-dark .pr-slot { background: rgba(180,140,210,0.08); border-color: rgba(180,140,210,0.2); color: #ede6ff; }
body.palmira-dark .pr-field input, body.palmira-dark .pr-field textarea { background: rgba(255,255,255,0.05); border-color: rgba(180,140,210,0.2); color: #ede6ff; }
body.palmira-dark .pr-field label { color: #b99ad8; }
body.palmira-dark .pr-cgv { color: #a896c0; }
body.palmira-dark .pr-secure { color: #a896c0; }
body.palmira-dark .pr-tz { color: #a896c0; }

@media (max-width: 600px) {
  .p-reserve { padding: 60px 5%; }
  .pr-col-cal, .pr-col-side { padding: 20px 18px; }
  .pr-form-grid { grid-template-columns: 1fr; }
}
