/* Il Capo Booking v3.1 — compact */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600&family=Montserrat:wght@300;400;500&display=swap');

:root {
  --g:   #C9A84C;
  --gl:  #E2C97E;
  --gd:  #8A6E30;
  --bk:  #0D0C0A;
  --dk:  #0E1628;
  --mid: #1B2D50;
  --sf:  #243459;
  --sf2: #2C3E6A;
  --tx:  #F0F3FA;
  --tm:  #9BABC8;
  --r:   4px;
  --tr:  .18s ease;
}

#ilcapo-booking-wrap {
  font-family:'Montserrat',sans-serif; font-weight:300; color:var(--tx);
  max-width:560px; margin:0 auto; padding:0 0 2.5rem;
}

/* ── Steps ── */
.icb-steps { display:flex; align-items:center; justify-content:center; margin-bottom:2.2rem; }
.icb-step  { display:flex; flex-direction:column; align-items:center; gap:6px; opacity:.38; transition:opacity var(--tr); }
.icb-step.active { opacity:1; }
.icb-step.done   { opacity:.65; }
.icb-step-num {
  width:38px; height:38px; border-radius:50%;
  border:2px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.07);
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-family:'Cormorant Garamond',serif; font-weight:600; color:rgba(255,255,255,.55);
  transition:background var(--tr),border-color var(--tr),color var(--tr);
}
.icb-step.active .icb-step-num { border-color:var(--g); background:rgba(201,168,76,.2); color:var(--g); }
.icb-step.done   .icb-step-num { border-color:var(--gd); color:var(--gd); background:rgba(201,168,76,.08); }
.icb-step-label  { font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.45); }
.icb-step.active .icb-step-label { color:#fff; }
.icb-step.done   .icb-step-label { color:var(--gd); }
.icb-step-divider { flex:1; height:1px; background:rgba(255,255,255,.1); margin:0 5px; margin-bottom:14px; max-width:38px; }

/* ── Panels ── */
.icb-panel { display:none; animation:icbFd .25s ease both; }
.icb-panel.active { display:block; }
@keyframes icbFd { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }

.icb-panel-title {
  font-family:'Cormorant Garamond',serif; font-size:1.35rem; font-weight:600;
  letter-spacing:.04em; color:var(--tx);
  margin:0 0 1.1rem; padding-bottom:.5rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}

/* ── Badge ── */
.icb-badge {
  display:inline-flex; align-items:center;
  background:rgba(201,168,76,.09);
  border:1px solid rgba(201,168,76,.28);
  border-left:2px solid var(--g);
  border-radius:0 3px 3px 0; padding:5px 11px;
  font-size:.7rem; color:var(--gl);
  letter-spacing:.04em; margin-bottom:1rem;
}

/* ── Space cards ── */
.icb-space-cards { display:flex; flex-direction:column; gap:10px; margin-bottom:1.1rem; }
.icb-space-card {
  display:flex; align-items:center; gap:14px;
  background:var(--sf);
  border:1px solid rgba(255,255,255,.1);
  border-radius:6px; padding:14px 18px;
  cursor:pointer; text-align:left; width:100%;
  box-shadow:0 1px 10px rgba(0,0,0,.3);
  transition:border-color var(--tr),background var(--tr),box-shadow var(--tr),transform var(--tr);
}
.icb-space-card:hover {
  border-color:rgba(201,168,76,.5); background:var(--sf2);
  box-shadow:0 3px 16px rgba(0,0,0,.4); transform:translateY(-1px);
}
.icb-space-card.selected {
  border-color:var(--g); border-width:1.5px;
  background:linear-gradient(135deg,#2C3E6A 0%,#243459 100%);
  box-shadow:0 0 0 2px rgba(201,168,76,.15),0 3px 14px rgba(0,0,0,.35);
}
.icb-space-icon {
  flex-shrink:0; width:44px; height:44px; border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.6); transition:border-color var(--tr),color var(--tr),background var(--tr);
}
.icb-space-card:hover    .icb-space-icon { border-color:var(--gd); color:var(--gl); background:rgba(201,168,76,.07); }
.icb-space-card.selected .icb-space-icon { border-color:var(--g); color:var(--g); background:rgba(201,168,76,.1); }
.icb-space-info { display:flex; flex-direction:column; gap:2px; flex:1; }
.icb-space-name { font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:600; letter-spacing:.03em; color:#fff; }
.icb-space-sub  { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.65); font-weight:600; }
.icb-space-card.selected .icb-space-sub { color:var(--gl); }
.icb-space-cap  { font-size:.69rem; color:var(--gl); margin-top:2px; font-weight:500; }
.icb-space-check {
  width:22px; height:22px; border-radius:50%;
  background:var(--g); color:var(--bk);
  font-size:.7rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(0);
  transition:opacity var(--tr),transform var(--tr); flex-shrink:0;
}
.icb-space-card.selected .icb-space-check { opacity:1; transform:scale(1); }

/* ── Guests big picker ── */
.icb-guests-big {
  display:flex; align-items:center; justify-content:center; gap:22px;
  background:var(--sf); border:1px solid rgba(255,255,255,.1); border-radius:8px;
  padding:1.8rem 1.5rem; margin-bottom:.5rem;
  box-shadow:0 1px 12px rgba(0,0,0,.28);
}
.icb-counter-lg {
  width:46px; height:46px; border-radius:50%;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16);
  color:var(--g); font-size:1.4rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background var(--tr),border-color var(--tr); flex-shrink:0;
}
.icb-counter-lg:hover { background:rgba(255,255,255,.13); border-color:var(--g); }
.icb-guests-big-num { display:flex; flex-direction:column; align-items:center; gap:3px; }
#icb-guests-display {
  font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:600;
  line-height:1; color:var(--gl); min-width:60px; text-align:center;
}
.icb-guests-big-label { font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; color:var(--tm); }
.icb-guests-limit-note { font-size:.68rem; color:var(--gd); text-align:center; min-height:.9rem; }

/* ── Calendar ── */
.icb-calendar {
  background:var(--sf); border:1px solid rgba(255,255,255,.1);
  border-radius:8px; overflow:hidden; margin-bottom:.4rem;
  box-shadow:0 1px 14px rgba(0,0,0,.32);
}
.icb-cal-header {
  display:flex; align-items:center; justify-content:space-between;
  background:var(--mid); padding:9px 14px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.icb-cal-month-label {
  font-family:'Cormorant Garamond',serif; font-size:1.05rem; font-weight:400;
  letter-spacing:.07em; color:var(--tx);
}
.icb-cal-nav {
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  color:var(--tx); font-size:1.1rem; cursor:pointer;
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background var(--tr),border-color var(--tr);
}
.icb-cal-nav:hover { background:rgba(255,255,255,.1); border-color:var(--g); }
.icb-cal-weekdays {
  display:grid; grid-template-columns:repeat(7,1fr);
  padding:5px 8px 2px;
  border-bottom:1px solid rgba(255,255,255,.07);
  background:rgba(0,0,0,.12);
}
.icb-cal-weekdays span {
  text-align:center; font-size:7.5px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.42); padding:2px 0; font-weight:500;
}
.icb-cal-grid {
  display:grid; grid-template-columns:repeat(7,1fr);
  padding:4px 8px 6px; gap:0;
}

/* Day */
.icb-cal-day {
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  font-size:.74rem; border-radius:50%; cursor:pointer;
  border:none; background:none; color:rgba(255,255,255,.78);
  font-family:'Montserrat',sans-serif; font-weight:300;
  transition:background var(--tr),color var(--tr); position:relative;
}
.icb-cal-day.empty  { pointer-events:none; }
.icb-cal-day.past   { opacity:.2; cursor:default; pointer-events:none; }
.icb-cal-day.closed { opacity:.17; cursor:not-allowed; pointer-events:none; text-decoration:line-through; }
.icb-cal-day::after {
  content:''; position:absolute; bottom:1px; left:50%; transform:translateX(-50%);
  width:3px; height:3px; border-radius:50%; opacity:0; transition:opacity var(--tr);
}
.icb-cal-day.day-available::after { background:#52C97A; opacity:1; }
.icb-cal-day.day-limited::after   { background:#F0913A; opacity:1; }
.icb-cal-day.day-full::after      { background:#E05555; opacity:1; }
.icb-cal-day:hover:not(.past):not(.empty):not(.closed):not(.day-full) {
  background:rgba(201,168,76,.18); color:#fff;
}
.icb-cal-day.today:not(.selected) { border:1px solid rgba(201,168,76,.45); color:var(--gl); }
.icb-cal-day.selected { background:var(--g); color:var(--bk); font-weight:600; }
.icb-cal-day.selected::after { opacity:0 !important; }
.icb-cal-day.day-full:not(.past) { opacity:.3; cursor:not-allowed; }

/* Legend */
.icb-cal-legend {
  display:flex; gap:14px; justify-content:center;
  padding:5px 8px 7px;
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(0,0,0,.1);
}
.icb-legend-item { display:flex; align-items:center; gap:4px; font-size:.62rem; color:rgba(255,255,255,.4); letter-spacing:.04em; }
.icb-legend-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.icb-legend-dot.available { background:#52C97A; }
.icb-legend-dot.limited   { background:#F0913A; }
.icb-legend-dot.full      { background:#E05555; }

/* ── Time section ── */
.icb-time-section-title {
  display:flex; align-items:center; gap:6px;
  font-size:.68rem; letter-spacing:.08em; color:var(--gl);
  margin:1rem 0 .7rem; text-transform:uppercase; font-weight:500;
}
.icb-time-section-title svg { color:var(--gd); flex-shrink:0; }

.icb-slots-grid { display:flex; flex-wrap:wrap; gap:6px; }
.icb-slots-hint { font-size:.75rem; color:var(--tm); font-style:italic; margin:0; }
.icb-slot {
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13);
  border-radius:var(--r); color:rgba(255,255,255,.82);
  font-family:'Montserrat',sans-serif; font-size:.74rem; font-weight:300;
  padding:6px 12px; cursor:pointer; min-width:58px; text-align:center;
  transition:background var(--tr),border-color var(--tr),color var(--tr);
  display:flex; flex-direction:column; align-items:center; gap:1px;
}
.icb-slot:hover:not(.full) { border-color:var(--g); background:rgba(201,168,76,.14); color:#fff; }
.icb-slot.selected { background:rgba(201,168,76,.22); border-color:var(--g); border-width:1.5px; color:var(--gl); font-weight:500; }
.icb-slot.full     { opacity:.22; cursor:not-allowed; pointer-events:none; text-decoration:line-through; }
.icb-slot.low .icb-slot-remaining { color:#F0913A; }
.icb-slot-remaining { font-size:.57rem; color:rgba(201,168,76,.65); }

/* Loading */
.icb-loading-slots { display:flex; align-items:center; gap:7px; font-size:.75rem; color:rgba(255,255,255,.35); padding:8px 0; }
.icb-spinner { width:12px; height:12px; border:1.5px solid rgba(255,255,255,.1); border-top-color:var(--g); border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to{transform:rotate(360deg)} }

/* ── Fields ── */
.icb-field-group { margin-bottom:1.1rem; }
.icb-field-group label { display:block; font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:5px; }
.icb-field-group input[type="text"],
.icb-field-group input[type="email"],
.icb-field-group input[type="tel"],
.icb-field-group textarea {
  width:100%; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.13); border-radius:var(--r);
  color:var(--tx); font-family:'Montserrat',sans-serif; font-size:.82rem; font-weight:300;
  padding:10px 12px; outline:none; box-sizing:border-box;
  transition:border-color var(--tr),background var(--tr); -webkit-appearance:none;
}
.icb-field-group input::placeholder,
.icb-field-group textarea::placeholder { color:rgba(255,255,255,.22); }
.icb-field-group input:focus,
.icb-field-group textarea:focus { border-color:var(--g); background:rgba(255,255,255,.09); }
.icb-field-group textarea { resize:vertical; min-height:80px; }
.icb-required { color:var(--g); }
.icb-optional { color:rgba(255,255,255,.3); font-size:.75em; }
.icb-field-error { display:block; font-size:.7rem; color:#FF6B6B; margin-top:3px; min-height:.85em; }

/* ── Info note ── */
.icb-info-note {
  display:flex; align-items:flex-start; gap:7px;
  background:rgba(201,168,76,.06); border:1px solid rgba(201,168,76,.2);
  border-left:2px solid var(--gd); border-radius:0 3px 3px 0;
  padding:7px 11px; font-size:.72rem; color:rgba(255,255,255,.45);
}
.icb-info-note svg { flex-shrink:0; margin-top:1px; color:var(--gd); }
.icb-info-note strong { color:var(--g); font-weight:500; }

/* ── Buttons ── */
.icb-btn {
  font-family:'Montserrat',sans-serif; font-size:.67rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  border-radius:var(--r); padding:11px 20px; cursor:pointer;
  transition:background var(--tr),color var(--tr),border-color var(--tr),transform var(--tr);
}
.icb-btn-next, .icb-btn-submit {
  background:var(--g); color:var(--bk); border:1px solid var(--g);
  display:block; width:100%; margin-top:.4rem;
}
.icb-btn-next:hover, .icb-btn-submit:hover { background:var(--gl); border-color:var(--gl); transform:translateY(-1px); }
.icb-btn-back { background:rgba(255,255,255,.04); color:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.12); }
.icb-btn-back:hover { border-color:var(--g); color:#fff; background:rgba(255,255,255,.07); }
.icb-btn-row { display:flex; gap:8px; margin-top:.5rem; }
.icb-btn-row .icb-btn-back { flex:0 0 auto; }
.icb-btn-row .icb-btn-next, .icb-btn-row .icb-btn-submit { flex:1; margin-top:0; }

/* ── Summary ── */
.icb-summary { background:var(--sf); border:1px solid rgba(255,255,255,.1); border-radius:var(--r); padding:.9rem 1.1rem; margin-bottom:1.2rem; }
.icb-summary-row { display:flex; align-items:flex-start; gap:9px; padding:6px 0; border-bottom:1px solid rgba(255,255,255,.07); font-size:.8rem; }
.icb-summary-row:last-child { border-bottom:none; padding-bottom:0; }
.icb-summary-row svg { flex-shrink:0; margin-top:2px; color:var(--gd); }

/* ── Status ── */
#icb-status { min-height:1.3rem; margin-bottom:.6rem; font-size:.78rem; }
#icb-status.error   { color:#FF6B6B; }
#icb-status.success { color:#6DBF82; }

/* ── Success ── */
.icb-success { text-align:center; padding:1.8rem 0 .8rem; }
.icb-success-icon {
  width:56px; height:56px; border-radius:50%; border:1px solid var(--g);
  color:var(--g); font-size:1.6rem;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.2rem;
  animation:icbPop .45s cubic-bezier(.175,.885,.32,1.275) both;
}
@keyframes icbPop { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }
.icb-success h2 { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:400; color:var(--gl); margin:0 0 .6rem; }
.icb-success p  { font-size:.8rem; color:var(--tm); margin:0 0 .35rem; line-height:1.7; }
.icb-success-sub { font-size:.7rem !important; letter-spacing:.05em; margin-bottom:1.5rem !important; }
.icb-success .icb-btn-next { max-width:220px; margin:0 auto; }

@media (max-width:480px) {
  .icb-step-divider { max-width:20px; }
  .icb-step-label   { font-size:8px; }
  .icb-cal-grid, .icb-cal-weekdays { padding:5px 6px 8px; }
  .icb-guests-big   { padding:1.4rem 1rem; gap:16px; }
  #icb-guests-display { font-size:2.5rem; }
}

/* ── Pending screen ── */
.icb-pending { text-align:center; padding:1.8rem 0 .8rem; }
.icb-pending-icon {
  width:60px; height:60px; border-radius:50%;
  border:1.5px solid var(--g);
  color:var(--g);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.2rem;
  animation:icbPop .45s cubic-bezier(.175,.885,.32,1.275) both;
}
.icb-pending h2 { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:600; color:var(--gl); margin:0 0 .8rem; }
.icb-pending p  { font-size:.8rem; color:rgba(255,255,255,.6); margin:0 0 .5rem; line-height:1.7; max-width:400px; margin-left:auto; margin-right:auto; }
.icb-pending-note {
  display:inline-block;
  background:rgba(201,168,76,.08);
  border:1px solid rgba(201,168,76,.25);
  border-radius:4px;
  padding:8px 16px;
  font-size:.74rem !important;
  color:var(--gl) !important;
  margin:0.4rem auto .8rem !important;
}
.icb-pending-sub { font-size:.7rem !important; color:rgba(255,255,255,.35) !important; letter-spacing:.04em; margin-bottom:1.5rem !important; }
.icb-pending .icb-btn-next { max-width:220px; margin:0 auto; }

/* ── GDPR Consent ── */
.icb-gdpr {
  margin-bottom: 1rem;
  padding: .9rem 1rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--r);
}
.icb-gdpr-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.icb-gdpr-label input[type="checkbox"] {
  flex-shrink: 0;
  width: 17px; height: 17px;
  margin-top: 2px;
  accent-color: var(--g);
  cursor: pointer;
}
.icb-gdpr-text {
  font-size: .77rem;
  color: rgba(255,255,255,.55);
  line-height: 1.6;
}
.icb-gdpr-text a {
  color: var(--gl);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.icb-gdpr-text a:hover { color: #fff; }
.icb-gdpr.has-error { border-color: rgba(224,85,85,.4); background: rgba(224,85,85,.05); }
