:root{
      --brand1:#007bff; --brand2:#0056b3; --muted:#6b7280; --card:#ffffff; --radius:12px;
    }
    *{box-sizing:border-box}
    body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,'Helvetica Neue',Arial;background:#f5f9ff;color:#0f172a;-webkit-font-smoothing:antialiased;}
    .wrap{max-width:1020px;margin:22px auto;padding:0 14px;}
    .card{background:var(--card);border-radius:var(--radius);padding:18px;box-shadow:0 8px 28px rgba(2,6,23,0.06);}
    h1{color:var(--brand2);margin:0 0 12px;font-size:22px;text-align:center;}
    label{display:block;font-weight:700;color:#0f172a;margin-bottom:6px;font-size:13px;}
    input,select,textarea{width:100%;padding:10px;border-radius:8px;border:1px solid #e6edf8;background:#fff;font-size:14px;}
    input[readonly]{background:#fff;cursor:default;}
  /* ===== Responsive Grid Improvements ===== */
.grid-2 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
  align-items: end;
}

@media(max-width: 1024px) {
  .grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width: 600px) {
  .grid-2 {
    grid-template-columns: 1fr;
  }
}

/* ===== Input & Label Tweaks for Desktop ===== */
label {
  display: block;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 5px;
  font-size: 13px;
}

input, select {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #dbe3f0;
  background: #fff;
  font-size: 14px;
  transition: all 0.2s ease;
}

input:focus, select:focus {
  outline: none;
  border-color: #007bff;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.15);
}

/* ===== Check Availability Button ===== */
#check-availability {
  background: linear-gradient(90deg, var(--brand1), var(--brand2));
  color: #fff;
  border: none;
  padding: 12px 32px;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.25s ease;
}

#check-availability:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0, 123, 255, 0.25);
}

    .grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
    .center{display:flex;justify-content:center;align-items:center;}
    .btn{background:linear-gradient(90deg,var(--brand1),var(--brand2));color:#fff;border:0;padding:12px 18px;border-radius:10px;font-weight:800;cursor:pointer;}
    .btn:disabled{opacity:.55;cursor:not-allowed;}
    .muted{color:var(--muted);font-size:13px;}
    /* Results / Rooms */
    #results-section{Margin-top:18px;display:none;}
    .room-card{background:#fff;border-radius:10px;padding:14px;border:1px solid #e9f1ff;margin-bottom:12px;box-shadow:0 6px 18px rgba(3,10,39,0.03);transition:transform .12s;}
    .room-card:hover{transform:translateY(-4px)}
    .room-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
    .room-title{font-weight:800;color:#06317a}
    .room-meta{font-size:13px;color:#475569}
    .room-body{display:grid;grid-template-columns:110px 1fr 1fr 160px;gap:12px;align-items:center}
    .room-body label{font-weight:700;font-size:13px;color:#0f172a;margin-bottom:6px}
    .subtotal-badge{background:#e8f3ff;padding:8px 10px;border-radius:8px;font-weight:900;color:#04326b;text-align:right}
    .availability-badge{background:linear-gradient(90deg,#e6f0ff,#d5e8ff);padding:6px 8px;border-radius:8px;color:#08306b;font-weight:800}
    .small-muted{font-size:12px;color:#6b7280}
    /* Responsive */
    @media(max-width:880px){.room-body{grid-template-columns:1fr 1fr 1fr;}.room-body > div:nth-child(4){order:4;text-align:right}}
    @media(max-width:520px){.room-body{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr}}
    /* Fixed total bar (hidden until rooms selected) */
    .fixed-bar{position:fixed;left:0;right:0;bottom:18px;display:flex;justify-content:center;z-index:1200;visibility:hidden}
    .fixed-inner{max-width:1020px;width:calc(100% - 32px);background:linear-gradient(90deg,var(--brand1),var(--brand2));color:#fff;padding:12px 18px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 30px rgba(3,10,39,0.12)}
/* ===== FORCE WHITE 3D BOOK NOW BUTTON (Final Fix) ===== */
.book-btn {
  background: #ffffff !important;              /* solid white */
  color: #1e293b !important;                   /* dark navy/gray text */
  border: none !important;
  border-radius: 10px !important;
  padding: 14px 36px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px;
  cursor: pointer;
  transition: all 0.2s ease-in-out !important;
  box-shadow:
    0 4px 0 #1f2937,                           /* bottom dark layer */
    0 6px 14px rgba(0, 0, 0, 0.25) !important; /* soft shadow */
  position: relative;
}

/* Hover – lift up slightly */
.book-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow:
    0 6px 0 #1f2937,
    0 8px 18px rgba(0, 0, 0, 0.3) !important;
}

/* Active – pressed down */
.book-btn:active {
  transform: translateY(3px) !important;
  box-shadow:
    0 2px 0 #1f2937,
    0 4px 10px rgba(0, 0, 0, 0.25) !important;
}

/* Disabled */
.book-btn:disabled {
  opacity: 0.6 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

/* Pulse animation for gentle highlight effect */
@keyframes glowPulseBtn {
  0%, 100% {
    box-shadow: 0 0 0 rgba(0, 74, 173, 0);
  }
  50% {
    box-shadow: 0 0 18px rgba(0, 74, 173, 0.4);
  }
}

/* Mobile-friendly scaling */
@media (max-width: 600px) {
  .book-btn {
    font-size: 14px;
    padding: 12px 26px;
  }
}


    /* Fullscreen guest form and preview */
    .fullscreen {position:fixed;inset:0;background:#fff;z-index:2200;overflow:auto;padding:28px;display:none}
    .guest-form{max-width:820px;margin:8px auto;display:flex;flex-direction:column;gap:12px}
    .guest-form .full{width:100%}
    .group-title{font-weight:900;color:var(--brand2);margin-bottom:6px}
    .preview-wrap{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
    .preview-card{background:#fff;border:1px solid #e9f1f9;border-radius:10px;padding:16px;box-shadow:0 8px 24px rgba(3,10,39,0.04)}
    .preview-row{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-top:1px dashed #eef5ff}
    .preview-row:first-of-type{border-top:0;padding-top:0}
    .actions-row{display:flex;justify-content:space-between;gap:12px;margin-top:12px}
    .btn-secondary{background:#f3f4f6;color:#0f172a;padding:10px 16px;border-radius:8px;border:1px solid #e7eaef;cursor:pointer}
    /* ===== Professional Spinner Overlay ===== */
.spinner-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 5000;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.spinner-overlay[aria-hidden="false"] {
  visibility: visible;
  opacity: 1;
}

spinner-box {
  text-align: center;
  animation: fadeInUp 0.4s ease;
}

/* ... rest of CSS ... */
