:root{
  --rn-accent:#b13a55;
  --rn-accent-dark:#8e2d43;
  --rn-bg:#f6efe9;
  --rn-card:#fbf6f2;
  --rn-cal-card:#fbf6f2;
  --rn-border:#e7d7d2;
  --rn-text:#2b2426;
  --rn-muted:#7a5a63;
  --rn-note:#7a5a63;
  --rn-btn-bg:#b13a55;
  --rn-btn-text:#ffffff;
  --rn-btn-hover:#8e2d43;
  --rn-cal-day-text:#b13a55;
  --rn-cal-nav-bg:#ffffff;
  --rn-cal-nav-text:#2b2426;
  --rn-cal-nav-border:#e7d7d2;
  --rn-cal-nav-hover-bg:#fbf6f2;

  /* Calendar markers + legend */
  --rn-cal-availability-dot:#9e2a4d;
  --rn-cal-note-blocked:#000000;
  --rn-cal-note-partial:#9e2a4d;
  --rn-cal-legend-text:#4b5563;
  /* calendar sizing helpers */
  --rn-cal-day-radius:10px;
  --rn-cal-marker-offset:6px;
  --rn-cal-dot-size:6px;
  --rn-cal-note-size:8px;
}

.reservanova{max-width:980px;margin:0 auto}
.reservanova__form{display:block;padding:16px;border:1px solid rgba(0,0,0,.08);border-radius:12px}
.reservanova__row{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}
@media(min-width:720px){.reservanova__row{grid-template-columns:1fr 1fr} .reservanova__row:nth-child(2),.reservanova__row:nth-child(5),.reservanova__row:nth-child(6){grid-template-columns:1fr}}
.reservanova label span{display:block;font-size:14px;margin-bottom:6px;opacity:.85}
.reservanova input,.reservanova select,.reservanova textarea{width:100%;padding:10px 12px;border:1px solid rgba(0,0,0,.18);border-radius:10px}
.reservanova textarea{resize:vertical}
.reservanova__submit{padding:10px 14px;border-radius:10px;border:0;cursor:pointer}
.reservanova__status{margin-left:10px;font-size:14px}
.reservanova__status.is-ok{font-weight:600}
.reservanova__status.is-error{font-weight:600}
.reservanova__error{display:block;color:#b00020;font-size:12px;min-height:16px}
.reservanova__hint{display:block;font-size:12px;opacity:.75;margin-top:6px;min-height:16px}
.is-invalid{outline:2px solid rgba(176,0,32,.25);border-color:rgba(176,0,32,.55)}
.reservanova__row--consent{grid-template-columns:1fr}
.reservanova__consent{display:flex;gap:10px;align-items:flex-start}
.reservanova__consent input{width:auto;margin-top:3px}
.reservanova__form.is-shake{animation:reservanovaShake .18s linear 0s 2}
@keyframes reservanovaShake{0%{transform:translateX(0)}25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-4px)}100%{transform:translateX(0)}}
.reservanova__row--notice{margin-bottom:10px}
.reservanova__notice{display:block;font-size:13px;opacity:.8}

.reservanova__extras{margin-bottom:12px;padding:12px;border:1px solid rgba(0,0,0,.08);border-radius:12px}
.reservanova__extras-title{font-weight:600;margin-bottom:8px}
.reservanova__extras-list{display:grid;gap:8px}
.reservanova__extra{display:flex;align-items:center;justify-content:space-between;gap:10px}
.reservanova__checkbox{display:flex;align-items:center;gap:10px}
.reservanova__counter{display:inline-flex;align-items:center;gap:8px}
.reservanova__counter-btn{width:34px;height:34px;border-radius:10px;border:1px solid rgba(0,0,0,.15);background:#fff;cursor:pointer}
.reservanova__counter-val{min-width:22px;text-align:center;font-weight:600}

.reservanova__charcount{display:block;font-size:12px;opacity:.7;text-align:right;margin-top:4px}



/* Extras: 2 columns on desktop */
.reservanova__extras-compact{display:grid;grid-template-columns:1fr;gap:8px 14px;align-items:center}
@media (min-width: 840px){
  .reservanova__extras-compact{grid-template-columns:1fr 1fr}
}

/* Minimal counter (no button frames) */
.reservanova__extra-compact .reservanova__counter-btn.small{
  width:auto;height:auto;border:0;background:transparent;padding:0 6px;border-radius:0;
  font-size:16px;line-height:1;opacity:.85
}
.reservanova__extra-compact .reservanova__counter-btn.small:hover{opacity:1}
.reservanova__extra-compact .reservanova__counter-val.small{min-width:18px;font-size:14px}


/* ===== Extras: pretty compact layout (override) ===== */
.reservanova__row--extras{margin-top:10px;margin-bottom:10px}
.reservanova__extras-caption{display:block;font-size:12px;opacity:.7;margin-bottom:6px}

.reservanova__extras-compact{
  display:grid !important;
  grid-template-columns: 1fr;
  gap: 10px 24px;
  align-items:start;
}
@media (min-width: 900px){
  .reservanova__extras-compact{grid-template-columns: 1fr 1fr;}
}

.reservanova__extra-compact{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.reservanova__extra-compact .reservanova__extra-label{flex:1;min-width:0}

.reservanova__extra-compact .reservanova__checkbox.small{
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:flex-start;
  width:100%;
}
.reservanova__extra-compact .reservanova__checkbox.small input{margin:0}

.reservanova__extra-compact .reservanova__counter-btn.small{
  border:0 !important;
  background:transparent !important;
  padding:0 6px !important;
  width:auto !important;
  height:auto !important;
  border-radius:0 !important;
  font-size:18px;
  line-height:1;
  opacity:.75;
}
.reservanova__extra-compact .reservanova__counter-btn.small:hover{opacity:1}
.reservanova__extra-compact .reservanova__counter-val.small{
  min-width:18px;
  text-align:center;
  font-size:14px;
  font-weight:600;
}

/* Counter alignment fix */
.reservanova__counter-compact{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-width:72px;justify-content:flex-end}
.reservanova__extra-compact[data-extra-type="counter"]{justify-content:space-between}


/* ===== Extras layout final (override) ===== */
.reservanova__row--extras{margin-top:10px;margin-bottom:10px;display:block !important}
.reservanova__extras-head{margin-bottom:6px}
.reservanova__extras-caption{display:block;font-size:12px;opacity:.7}

/* options grid */
.reservanova__extras-compact{
  display:grid !important;
  grid-template-columns: 1fr;
  gap: 8px 28px !important;
}
@media (min-width: 900px){
  .reservanova__extras-compact{grid-template-columns: 1fr 1fr;}
}

/* each option: label left, control right */
.reservanova__extra-compact{
  display:grid !important;
  grid-template-columns: 1fr auto;
  align-items:center;
  column-gap:10px;
}

/* checkbox option */
.reservanova__extra-compact .reservanova__checkbox.small{
  grid-column: 1 / -1;
  display:flex !important;
  align-items:center;
  gap:8px;
  width:100%;
  margin:0;
}
.reservanova__extra-compact .reservanova__checkbox.small span{flex:1}
.reservanova__extra-compact .reservanova__checkbox.small input{margin:0}

/* counter option */
.reservanova__extra-compact .reservanova__extra-label{min-width:0}
.reservanova__counter-compact{
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:84px;
}

/* minimalist buttons (inherit color, no theme color bleed) */
.reservanova__counter-btn.small{
  border:0 !important;
  background:transparent !important;
  padding:0 6px !important;
  width:auto !important;
  height:auto !important;
  border-radius:0 !important;
  line-height:1 !important;
  font-size:18px !important;
  color: inherit !important;
  opacity:.75;
}
.reservanova__counter-btn.small:hover{opacity:1}
.reservanova__counter-val.small{
  min-width:18px !important;
  text-align:center;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:1 !important;
}


/* ===== FINAL RESPONSIVE EXTRAS FIX ===== */

/* container */
.reservanova__row--extras{
  margin-top:12px;
  margin-bottom:12px;
}

/* caption always full width */
.reservanova__extras-head{
  width:100%;
  margin-bottom:6px;
}

/* grid wrapper */
.reservanova__extras-compact{
  display:grid !important;
  grid-template-columns: 1fr;
  row-gap:10px;
  column-gap:30px;
}

/* desktop 2 columns */
@media (min-width: 900px){
  .reservanova__extras-compact{
    grid-template-columns: 1fr 1fr;
  }
}

/* each option row */
.reservanova__extra-compact{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

/* label left aligned */
.reservanova__extra-compact .reservanova__extra-label{
  flex:1;
}

/* counter right aligned clean */
.reservanova__counter-compact{
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:90px;
}

/* checkbox alignment FIX */
.reservanova__extra-compact .reservanova__checkbox.small{
  display:flex !important;
  align-items:center;
  gap:8px !important;
  justify-content:flex-start;
  width:auto;
  margin:0;
}

.reservanova__extra-compact .reservanova__checkbox.small input{
  margin:0 !important;
  flex:0 0 auto;
}

.reservanova__extra-compact .reservanova__checkbox.small span{
  margin:0 !important;
  padding:0 !important;
}

/* MOBILE STACKING FIX */
@media (max-width: 899px){

  .reservanova__extras-compact{
    grid-template-columns: 1fr !important;
  }

  .reservanova__extra-compact{
    flex-direction:row;
    justify-content:space-between;
  }

  .reservanova__counter-compact{
    min-width:80px;
  }

}


/* ===== Extras layout CLEAN (wins over theme) ===== */
.reservanova .reservanova__row--extras{margin-top:12px;margin-bottom:12px}
.reservanova .reservanova__extras-head{margin-bottom:6px}
.reservanova .reservanova__extras-caption{display:block;font-size:12px;opacity:.7}

/* grid of options */
.reservanova .reservanova__extras-compact{
  display:grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px 28px !important;
}
@media (min-width: 900px){
  .reservanova .reservanova__extras-compact{grid-template-columns: 1fr 1fr !important;}
}

/* each option row: label left, control right */
.reservanova .reservanova__extra-compact{
  display:grid !important;
  grid-template-columns: 1fr auto !important;
  align-items:center !important;
  column-gap:12px !important;
  row-gap:6px !important;
}

/* label */
.reservanova .reservanova__extra-compact .reservanova__extra-label{
  margin:0 !important;
  padding:0 !important;
  line-height:1.2;
}

/* checkbox control */
.reservanova .reservanova__extra-compact .reservanova__checkbox-input{
  margin:0 !important;
  padding:0 !important;
  width:16px;
  height:16px;
  justify-self:end;
}

/* counter control stays right and compact */
.reservanova .reservanova__counter-compact{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
  min-width:90px;
}
.reservanova .reservanova__counter-btn.small{
  border:0 !important;
  background:transparent !important;
  padding:0 6px !important;
  width:auto !important;
  height:auto !important;
  border-radius:0 !important;
  line-height:1 !important;
  font-size:18px !important;
  color: inherit !important;
  opacity:.75;
}
.reservanova .reservanova__counter-btn.small:hover{opacity:1}
.reservanova .reservanova__counter-val.small{
  min-width:18px !important;
  text-align:center !important;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:1 !important;
}

/* mobile: ensure nothing wraps weirdly */
@media (max-width: 899px){
  .reservanova .reservanova__extra-compact{grid-template-columns: 1fr auto !important;}
  .reservanova .reservanova__counter-compact{min-width:84px}
}


/* ===== Calendar layout ===== */
/* Default sizing variables (can be overridden by theme settings or media queries) */
:root{
  --rn-cal-day-radius: 12px;
  --rn-cal-marker-offset: 6px;
  --rn-cal-dot-size: 6px;
  --rn-cal-note-size: 8px;
}

.reservanova__layout{display:flex;gap:18px;align-items:flex-start}
.reservanova__calendar{flex:0 0 360px;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:12px}
.reservanova__fields{flex:1;min-width:0}
@media (max-width: 860px){
  .reservanova__layout{flex-direction:column}
  .reservanova__calendar{width:100%;flex:0 0 auto}
}

/* Calendar UI */
.reservanova__cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.reservanova__cal-title{font-weight:600}
.reservanova__cal-nav{border:1px solid var(--rn-cal-nav-border)!important;background:var(--rn-cal-nav-bg)!important;border-radius:12px;width:44px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-size:20px;line-height:1;color:var(--rn-cal-nav-text)!important}
.reservanova__cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:11px;opacity:.6;margin-bottom:6px}
.reservanova__cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.reservanova__cal-day{width:100%;aspect-ratio:1/1;border-radius:var(--rn-cal-day-radius);border:1px solid rgba(0,0,0,.08);background:#fff;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;position:relative}
/* Ensure day cells remain perfectly centered even if themes add default button padding/appearance */
.reservanova__cal-day{padding:0 !important; margin:0; box-sizing:border-box; text-align:center; font:inherit; color:inherit; appearance:none; -webkit-appearance:none;}
.reservanova__cal-day.is-out{opacity:.25;cursor:default}
.reservanova__cal-day.is-disabled{opacity:.35;cursor:not-allowed;background:rgba(0,0,0,.03)}
.reservanova__cal-day.is-available{border-color:rgba(0,0,0,.18)}
.reservanova__cal-day.is-selected{outline:2px solid rgba(0,0,0,.55)}
.reservanova__cal-day:focus{outline:2px solid rgba(0,0,0,.55);outline-offset:1px}

/* ===== Responsive Calendar Refactor (mobile overflow hardening) =====
 * Some themes/builders can apply container constraints that cause
 * grid items to overflow (min-content sizing) on very small screens.
 * These rules make the calendar grid strictly fluid and prevent horizontal
 * shifting/overlapping of the blocks below.
 */
.reservanova__calendar{max-width:100%; overflow:hidden;}
.reservanova__cal-week,
.reservanova__cal-grid{
  width:100%;
  grid-template-columns:repeat(7, minmax(0, 1fr));
}
.reservanova__cal-day{min-width:0;}

@media (max-width: 480px){
  .reservanova__cal-week{gap:4px; font-size:10px;}
  .reservanova__cal-grid{gap:4px;}
  .reservanova__cal-day{font-size:12px;}
  .reservanova__cal-nav{width:38px;height:38px;font-size:18px;}
  :root{ --rn-cal-day-radius:8px; --rn-cal-marker-offset:4px; --rn-cal-dot-size:5px; --rn-cal-note-size:7px; }
}


/* ===== Warm Restaurant Theme (Bordeaux #9e2a4d) ===== */

.reservanova{
  background:#f6f1ec;
  border-radius:20px;
  padding:28px;
  box-shadow:0 8px 30px rgba(0,0,0,0.05);
}

/* Calendar container */
.reservanova__calendar{
  background:#fbf7f3;
  border:1px solid rgba(0,0,0,.05);
  border-radius:18px;
  padding:16px;
}

/* Calendar days */
.reservanova__cal-day{
  border-radius:var(--rn-cal-day-radius);
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
  transition:all .18s ease;
}

.reservanova__cal-day.is-available:hover{
  background:rgba(158,42,77,.08);
  border-color:rgba(158,42,77,.25);
}

/* Selected day */
.reservanova__cal-day.is-selected{
  background:#9e2a4d !important;
  color:#fff !important;
  border-color:#9e2a4d !important;
}

/* Today subtle ring */
.reservanova__cal-day.is-today{
  box-shadow:0 0 0 2px rgba(158,42,77,.35) inset;
}

/* Inputs warm */
.reservanova input,
.reservanova select,
.reservanova textarea{
  background:#f8f6f4;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
}

.reservanova input:focus,
.reservanova select:focus,
.reservanova textarea:focus{
  outline:none;
  border-color:#9e2a4d;
  box-shadow:0 0 0 2px rgba(158,42,77,.15);
}

/* Primary button filled */
.reservanova__submit{
  background:#9e2a4d;
  color:#fff;
  border:0;
  border-radius:14px;
  padding:14px 22px;
  transition:all .2s ease;
  box-shadow:0 4px 16px rgba(158,42,77,.25);
}

.reservanova__submit:hover{
  background:#862342;
  transform:translateY(-1px);
  box-shadow:0 6px 20px rgba(158,42,77,.35);
}

/* Extras counter color */
.reservanova__counter-btn.small{
  color:#9e2a4d !important;
}



/* Availability dots */
.reservanova__cal-day.has-availability::after{
  content:'';
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:var(--rn-cal-marker-offset);
  width:var(--rn-cal-dot-size);
  height:var(--rn-cal-dot-size);
  border-radius:50%;
  background:var(--rn-cal-availability-dot,#9e2a4d);
}

/* Calendar tooltip marker (blocked/partial reasons) */
.reservanova__cal-day.has-note::before{
  content:'';
  position:absolute;
  top:var(--rn-cal-marker-offset);
  right:var(--rn-cal-marker-offset);
  width:var(--rn-cal-note-size);
  height:var(--rn-cal-note-size);
  border-radius:2px;
  opacity:.9;
}
.reservanova__cal-day.has-note--blocked::before{ background:var(--rn-cal-note-blocked,#000000); opacity:.45; }
.reservanova__cal-day.has-note--partial::before{ background:var(--rn-cal-note-partial,#9e2a4d); opacity:.75; }

/* Calendar legend */
.reservanova__cal-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(0,0,0,.08);
  font-size:12px;
  line-height:1.2;
  color:var(--rn-cal-legend-text,#4b5563);
}
.rn-legend__item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.rn-legend__dot{
  width:6px;
  height:6px;
  border-radius:50%;
  display:inline-block;
}
.rn-legend__sq{
  width:8px;
  height:8px;
  border-radius:2px;
  display:inline-block;
  opacity:.9;
}
.rn-legend__dot--available{ background:var(--rn-cal-availability-dot,#9e2a4d); }
.rn-legend__sq--blocked{ background:var(--rn-cal-note-blocked,#000000); opacity:.45; }
.rn-legend__sq--partial{ background:var(--rn-cal-note-partial,#9e2a4d); opacity:.75; }

.reservanova__cal-day{
  position:relative;
}

/* ===== Mobile Calendar Visual Polish (v2) =====
 * The responsive refactor ensures the grid never overflows.
 * On very small screens, we also need to keep tiles crisp (not too round),
 * center the day number reliably, and keep markers aligned.
 */
@media (max-width: 600px){
  :root{ --rn-cal-day-radius:10px; }
  /* Remove the outer "frame" to gain width on mobile */
  .reservanova{
    padding:12px !important;
    background:transparent !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  /* Keep the calendar card compact */
  .reservanova__calendar{
    padding:12px !important;
    border-radius:16px !important;
  }

  /* Tiles: less round + consistent centering */
  .reservanova__cal-day{
    /* radius controlled via CSS variable (see :root in this file) */
    padding:0 !important;
    box-sizing:border-box;
    line-height:1 !important;
    text-align:center;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  /* Markers scale down a touch */
  :root{
    --rn-cal-marker-offset:4px;
    --rn-cal-dot-size:5px;
    --rn-cal-note-size:7px;
  }
}

/* Reservation summary box */
.reservanova__summary{
  background:#fbf7f3;
  border-radius:16px;
  padding:14px 16px;
  margin-top:18px;
  margin-bottom:18px;
  font-size:14px;
  line-height:1.6;
  border:1px solid rgba(0,0,0,.05);
}

.reservanova__summary-title{
  font-weight:600;
  margin-bottom:6px;
}



/* ===== Compact Vertical Spacing ===== */

.reservanova{
  padding:22px; /* was 28px */
}

.reservanova__row{
  margin-bottom:14px; /* tighter rows */
}

.reservanova label > span{
  margin-bottom:4px;
  display:inline-block;
}

.reservanova input,
.reservanova select{
  padding:8px 12px;
}

.reservanova textarea{
  padding:10px 12px;
}

.reservanova__calendar{
  padding:14px;
}

.reservanova__summary{
  margin-top:12px;
  margin-bottom:14px;
}

.reservanova__submit{
  margin-top:6px;
}



/* ===== Ultra Compact Fine-Dining Widget ===== */

.reservanova{
  padding:18px;
}

.reservanova__layout{
  gap:14px;
}

.reservanova__calendar{
  padding:12px;
}

.reservanova__cal-head{
  margin-bottom:6px;
}

.reservanova__cal-week{
  margin-bottom:4px;
  font-size:10px;
}

.reservanova__cal-grid{
  gap:4px;
}

.reservanova__cal-day{
  font-size:13px;
  border-radius:12px;
}

.reservanova__row{
  margin-bottom:10px;
}

.reservanova label > span{
  font-size:13px;
  margin-bottom:3px;
}

.reservanova input,
.reservanova select{
  padding:7px 10px;
  font-size:14px;
}

.reservanova textarea{
  padding:8px 10px;
}

.reservanova__extras-compact{
  row-gap:6px !important;
}

.reservanova__summary{
  margin-top:10px;
  margin-bottom:10px;
  padding:12px 14px;
  font-size:13px;
}

.reservanova__submit{
  padding:12px 18px;
  margin-top:4px;
}



/* ===== Calendar bigger, form tighter (per request) ===== */

/* Calendar: more spacing + slightly bigger area */
.reservanova__calendar{
  padding:16px;
}
.reservanova__cal-week{
  margin-bottom:6px;
}
.reservanova__cal-grid{
  gap:6px; /* was 4px */
}
.reservanova__cal-day{
  border-radius:14px;
  font-size:14px;
}

/* Keep labels as-is; tighten vertical spacing on right form fields */
.reservanova__fields .reservanova__row{
  margin-bottom:8px; /* tighter than 10px */
}

/* Slightly tighter textarea + consent spacing */
.reservanova textarea{
  min-height:110px;
}


/* ===== Extra Tight Right Form Layout ===== */

/* Reduce vertical spacing only inside right column */
.reservanova__fields .reservanova__row{
  margin-bottom:6px; /* was 8px */
}

/* If row contains two labels (Name/Phone), reduce gap between them */
.reservanova__fields .reservanova__row{
  display:flex;
  gap:10px; /* tighter horizontal gap */
}

.reservanova__fields .reservanova__row > label{
  flex:1;
}

/* Make select/input groups tighter */
.reservanova__fields label{
  margin-bottom:0;
}

.reservanova__fields input,
.reservanova__fields select{
  margin-bottom:2px;
}

/* Tighten spacing before time + duration block */
.reservanova__fields .reservanova__row + .reservanova__row{
  margin-top:0;
}

/* Slightly reduce extras spacing too */
.reservanova__fields .reservanova__extras-compact{
  row-gap:4px !important;
}



/* ===== Desktop Layout 60 / 40 (Calendar / Form) ===== */

@media (min-width: 1024px){
  .reservanova__layout{
    display:flex;
    gap:20px;
  }

  .reservanova__calendar{
    flex:0 0 60%;
    max-width:60%;
  }

  .reservanova__fields{
    flex:0 0 40%;
    max-width:40%;
  }
}

/* Keep mobile stacked */
@media (max-width: 1023px){
  .reservanova__calendar,
  .reservanova__fields{
    max-width:100%;
    flex:1 1 auto;
  }
}



/* ===== Premium One-Line Summary ===== */

.reservanova__summary{
  background:#f4ebe6;
  border:1px solid rgba(158,42,77,.15);
  border-radius:18px;
  padding:18px 22px;
  margin-top:14px;
  margin-bottom:14px;
  text-align:center;
}

.reservanova__summary-premium{
  font-size:18px;
  font-weight:600;
  letter-spacing:.3px;
  color:#5a1c2e;
}

@media (min-width: 1024px){
  .reservanova__summary-premium{
    font-size:20px;
  }
}



/* ===== Premium Two-Line Summary ===== */

.reservanova__summary{
  background:#f4ebe6;
  border:1px solid rgba(158,42,77,.18);
  border-radius:18px;
  padding:20px 24px;
  margin-top:16px;
  margin-bottom:16px;
  text-align:center;
}

.reservanova__summary-premium-date{
  font-size:20px;
  font-weight:700;
  color:#4a1424;
  margin-bottom:6px;
}

.reservanova__summary-premium-details{
  font-size:15px;
  color:#6b2b3c;
  font-weight:500;
}

@media (min-width: 1024px){
  .reservanova__summary-premium-date{
    font-size:22px;
  }
  .reservanova__summary-premium-details{
    font-size:16px;
  }
}



/* Calendar hint under calendar */
.reservanova__calendar-hint{
  margin-top:10px;
  font-size:13px;
  line-height:1.5;
  color:#6b2b3c;
  opacity:.95;
}
.reservanova__calendar-hint p{ margin:0 0 6px; }
.reservanova__calendar-hint p:last-child{ margin-bottom:0; }
.reservanova__calendar-hint a{ color:#9e2a4d; text-decoration:underline; }


/* ===== Bottom Row aligns to 60/40 and smaller button ===== */

.reservanova__bottom{
  display:flex;
  gap:20px;
  align-items:stretch;
}

.reservanova__bottom .reservanova__summary-wrap{
  flex:0 0 60%;
  max-width:60%;
}

.reservanova__bottom .reservanova__submit-wrap{
  flex:0 0 40%;
  max-width:40%;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Smaller, elegant button (not full card) */
.reservanova__bottom .reservanova__submit{
  width:auto;
  min-width:220px;
  padding:12px 22px;
  font-size:15px;
  border-radius:14px;
  box-shadow:0 4px 14px rgba(158,42,77,.22);
}

/* On mobile stack */
@media (max-width: 1023px){
  .reservanova__bottom{
    flex-direction:column;
    gap:14px;
  }
  .reservanova__bottom .reservanova__summary-wrap,
  .reservanova__bottom .reservanova__submit-wrap{
    flex:1 1 auto;
    max-width:100%;
  }
  .reservanova__bottom .reservanova__submit{
    width:100%;
    min-width:0;
  }
}



/* ===== Layout Robustness / Overflow Fixes ===== */
.reservanova, .reservanova *{
  box-sizing:border-box;
}
.reservanova__layout{
  align-items:flex-start;
}
.reservanova__calendar,
.reservanova__fields{
  min-width:0; /* prevent flex overflow */
}
.reservanova__fields input,
.reservanova__fields select,
.reservanova__fields textarea{
  width:100%;
}

/* Bottom row: use same 60/40 grid as top */
@media (min-width: 1024px){
  .reservanova__bottom{
    display:grid;
    grid-template-columns: 60% 40%;
    gap:20px;
    align-items:center;
  }
  .reservanova__bottom .reservanova__summary-wrap,
  .reservanova__bottom .reservanova__submit-wrap{
    max-width:100%;
  }
}
.reservanova__summary{
  width:100%;
}


/* ===== 60/40 WITHOUT OVERFLOW: Use CSS Grid (Desktop) ===== */
@media (min-width: 1024px){
  .reservanova__layout{
    display:grid !important;
    grid-template-columns: 3fr 2fr; /* 60/40 */
    gap:20px;
    align-items:start;
  }
  .reservanova__calendar,
  .reservanova__fields{
    max-width:none !important;
    width:auto !important;
  }
}

/* Remove flex-basis overflow behaviour on older rules */
@media (min-width: 1024px){
  .reservanova__calendar{ flex:initial !important; }
  .reservanova__fields{ flex:initial !important; }
}



/* ===== Extras alignment ===== */
.reservanova__extras-compact .reservanova__extra-row,
.reservanova__extras-compact .reservanova__extra-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.reservanova__counter{
  display:inline-flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}
.reservanova__counter-btn.small{
  padding:0;
  line-height:1;
}
.reservanova__counter-value{
  min-width:16px;
  text-align:center;
  font-weight:600;
}

/* Ensure labels don't push counters */
.reservanova__extras-compact .reservanova__extra-label{
  flex:1 1 auto;
  min-width:0;
}

/* ===== Privacy checkbox: left aligned, tight checkbox gap ===== */
.reservanova__privacy,
.reservanova__consent{
  display:flex;
  align-items:flex-start;
  gap:8px;
  justify-content:flex-start;
}
.reservanova__privacy input[type="checkbox"],
.reservanova__consent input[type="checkbox"]{
  margin-top:3px;
}

/* ===== Submit: centered under privacy (right column) ===== */
.reservanova__submit-center{
  display:flex;
  justify-content:center;
  margin-top:10px;
}
.reservanova__submit-center .reservanova__submit{
  min-width:240px;
}



/* ===== Right column polish ===== */
.reservanova__row--consent{
  margin-top:8px;
}
.reservanova__consent{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:8px;
}
.reservanova__consent input[type="checkbox"]{
  margin-top:3px;
}
.reservanova__row--submit{
  margin-top:10px;
}
.reservanova__fields .reservanova__row--submit{
  display:block !important;
}
.reservanova__submit-center{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}
.reservanova__status{
  display:block;
  width:100%;
  max-width:520px;
  text-align:center;
  margin-top:10px;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.9);
  box-sizing:border-box;
}
.reservanova__status:empty{ display:none; }
.reservanova__status.is-ok{
  border-color: rgba(34, 197, 94, .35);
  background: rgba(34, 197, 94, .08);
  color: #065f46;
}
.reservanova__status.is-error{
  border-color: rgba(239, 68, 68, .35);
  background: rgba(239, 68, 68, .08);
  color: #7f1d1d;
}

/* Extras: keep counter aligned to the right within each row */
.reservanova__extras-compact .reservanova__extra-item[data-type="counter"]{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:12px;
}
.reservanova__extras-compact .reservanova__extra-item[data-type="counter"] .reservanova__counter{
  justify-self:end;
}



/* ===== Mobile polish: button center, extras spacing, counters ===== */

/* Button perfectly centered */
.reservanova__submit-center{
  width:100%;
}
.reservanova__submit-center .reservanova__submit{
  margin-left:auto;
  margin-right:auto;
}

/* More breathing room between Extras and Notes */
.reservanova__extras-compact{
  margin-bottom:14px;
}

/* Ensure "Anmerkung" area has top spacing */
.reservanova__row--note{
  margin-top:10px;
}

/* Counter rows: avoid overlap on small screens */
.reservanova__extras-compact .reservanova__extra-item[data-type="counter"]{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:14px;
}

.reservanova__extras-compact .reservanova__extra-item[data-type="counter"] .reservanova__counter{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:92px; /* space for – 0 + */
}

.reservanova__counter-btn.small{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.reservanova__counter-value{
  min-width:18px;
  text-align:center;
}

@media (max-width: 520px){
  .reservanova__extras-compact .reservanova__extra-item[data-type="counter"]{
    gap:10px;
  }
  .reservanova__extras-compact .reservanova__extra-item[data-type="counter"] .reservanova__counter{
    min-width:84px;
    gap:10px;
  }
}



/* ===== Extras (compact) alignment fix ===== */
.reservanova__extras-compact{
  display:grid;
  grid-template-columns: 1fr;
  row-gap:8px;
}

.reservanova__extra-compact{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  column-gap:14px;
}

.reservanova__extra-compact .reservanova__extra-label{
  min-width:0;
}

.reservanova__extra-compact[data-extra-type="counter"] .reservanova__counter-compact{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:96px; /* space for − 0 + */
  white-space:nowrap;
}

.reservanova__extra-compact[data-extra-type="counter"] .reservanova__counter-val{
  min-width:18px;
  text-align:center;
  font-weight:600;
}

.reservanova__extra-compact[data-extra-type="counter"] .reservanova__counter-btn.small{
  width:18px;
  height:18px;
  padding:0;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* checkbox items: keep checkbox tight to label */
.reservanova__extra-compact[data-extra-type="checkbox"] .reservanova__checkbox-input{
  justify-self:end;
  margin:0;
}

@media (max-width: 520px){
  .reservanova__extra-compact{
    column-gap:10px;
  }
  .reservanova__extra-compact[data-extra-type="counter"] .reservanova__counter-compact{
    min-width:88px;
    gap:10px;
  }
}


/* ===== Counter as Select (robust) ===== */
.reservanova__extra-compact[data-extra-type="counter"]{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:12px;
}
.reservanova__counter-select{
  width:72px;
  padding:6px 10px;
  border:1px solid rgba(0,0,0,.18);
  border-radius:12px;
  background:rgba(255,255,255,.55);
  text-align:center;
}
@media (max-width: 520px){
  .reservanova__counter-select{ width:64px; }
}



/* ===== Summary Placeholder ===== */
.reservanova__summary-placeholder{
  font-size:16px;
  font-weight:500;
  color:var(--rn-muted);
  font-style:italic;
}



/* ===== Privacy / Consent left aligned & tight ===== */
.reservanova__row--consent{
  text-align:left !important;
}

.reservanova__consent{
  display:flex !important;
  align-items:flex-start;
  justify-content:flex-start !important;
  gap:6px !important;
  text-align:left !important;
}

.reservanova__consent span{
  display:inline-block;
  text-align:left;
}

.reservanova__consent input[type="checkbox"]{
  margin:2px 0 0 0;
}



/* ===== Consent row: force checkbox + text tightly left-aligned (theme-proof) ===== */
.reservanova .reservanova__row--consent{
  text-align:left !important;
  justify-items:start !important;
}

.reservanova .reservanova__row--consent label.reservanova__consent{
  display:grid !important;
  grid-template-columns: 18px 1fr !important;
  column-gap:8px !important;
  align-items:start !important;
  justify-content:start !important;
  width:100% !important;
  max-width:100% !important;
  text-align:left !important;
}

.reservanova .reservanova__row--consent label.reservanova__consent input[type="checkbox"]{
  margin:2px 0 0 0 !important;
  justify-self:start !important;
}

.reservanova .reservanova__row--consent label.reservanova__consent span{
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
}



/* ===== Themeable palette (admin colors) ===== */
.reservanova{
  background: var(--rn-bg);
  color: var(--rn-text);
}
.reservanova__form,
.reservanova__cal,
.reservanova__summary,
.reservanova__extras,
.reservanova__right{
  background: var(--rn-card);
}
.reservanova__form,
.reservanova__cal,
.reservanova__summary,
.reservanova__extras{
  border-color: var(--rn-border) !important;
}
.reservanova label span,
.reservanova__notice,
.reservanova__summary-placeholder{
  color: var(--rn-muted);
}
.reservanova__cal-day{
  background: #fff;
  border-color: var(--rn-border);
}
.reservanova__cal-day.is-selected{
  background: var(--rn-accent) !important;
  border-color: var(--rn-accent) !important;
  color: #fff !important;
}
.reservanova__cal-day:hover:not(.is-disabled):not(.is-selected){
  border-color: var(--rn-accent);
}
.reservanova__submit,
.reservanova__btn,
.reservanova__cal-nav{border:1px solid var(--rn-cal-nav-border)!important;background:var(--rn-cal-nav-bg)!important;border-radius:12px;width:44px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-size:20px;line-height:1;color:var(--rn-cal-nav-text)!important}
.reservanova__submit{
  color: var(--rn-accent);
}
.reservanova__submit:hover{
  background: color-mix(in srgb, var(--rn-accent) 10%, transparent);
}
.reservanova a{
  color: var(--rn-accent);
}


/* ===== Calendar card uses 'Karte' color ===== */
.reservanova__calendar{
  background: var(--rn-cal-card) !important;
  border-color: var(--rn-border) !important;
}


/* ===== Button colors (admin) ===== */
.reservanova .reservanova__submit{
  background: var(--rn-btn-bg) !important;
  color: var(--rn-btn-text) !important;
  border-color: var(--rn-btn-bg) !important;
}
.reservanova .reservanova__submit:hover{
  background: var(--rn-btn-hover) !important;
  border-color: var(--rn-btn-hover) !important;
}


/* ===== Calendar hint uses note color ===== */
.reservanova .reservanova__calendar-hint,
.reservanova .reservanova__calendar-hint *{
  color: var(--rn-note) !important;
}
.reservanova .reservanova__calendar-hint a{
  color: var(--rn-accent) !important;
}



/* Uniform calendar tile radius */
.reservanova .reservanova__cal-day{
  border-radius: var(--rn-cal-day-radius, 12px) !important;
}
/* Calendar day number color */
.reservanova .reservanova__cal-day{
  color: var(--rn-cal-day-text) !important;
}
/* Disabled/outside-month still uses same radius and softer text */
.reservanova .reservanova__cal-day.is-disabled,
.reservanova .reservanova__cal-day.is-outside{
  opacity: .45;
}
/* Selected overrides */
.reservanova .reservanova__cal-day.is-selected{
  color: #fff !important;
}

.reservanova .reservanova__cal-nav:focus{outline:none;box-shadow:0 0 0 3px rgba(177,58,85,.18)}



.reservanova__cal-nav:hover{background:var(--rn-cal-nav-hover-bg)!important}
.reservanova .reservanova__cal-nav:hover{background:var(--rn-cal-nav-hover-bg)!important}

.reservanova__cal-nav svg{width:18px;height:18px;fill:currentColor}
