/* ============================================================
   ARDEN LOUNGE RESERVATIONS V4.0
   Public Booking + Back Office Reservations Manager
   ============================================================ */

:root{
  --r-forest:#122a22;
  --r-forest2:#081a14;
  --r-cream:#f7f0e6;
  --r-paper:#fffdf8;
  --r-gold:#c49a5b;
  --r-gold2:#9c703d;
  --r-clay:#a85f47;
  --r-text:#25342d;
  --r-muted:#6f7671;
  --r-line:#dfd2c1;
  --r-green:#4f805d;
  --r-red:#a14d43;
  --r-shadow:0 20px 55px rgba(14,31,25,.08);
}

.booking-hero{
  position:relative;
  overflow:hidden;
  padding:70px 5vw 48px;
  color:#fff;
  background:
    radial-gradient(circle at 14% 15%,rgba(196,154,91,.16),transparent 26%),
    radial-gradient(circle at 91% 85%,rgba(168,95,71,.11),transparent 22%),
    linear-gradient(145deg,var(--r-forest2),#1a3d31);
}

.booking-hero::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.08;
  background-image:radial-gradient(circle at 1px 1px,#fff 1px,transparent 0);
  background-size:29px 29px;
}

.booking-hero-inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:40px;
}

.booking-hero-copy{
  max-width:800px;
}

.booking-kicker{
  display:block;
  color:var(--r-gold2);
  font:700 11px/1.2 'Montserrat',Arial,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.booking-hero .booking-kicker{
  color:#d7b57e;
}

.booking-hero h1{
  margin:8px 0 10px;
  color:#fff;
  font:600 clamp(52px,6vw,78px)/.95 'Cormorant Garamond',Georgia,serif;
}

.booking-hero p{
  max-width:700px;
  margin:0;
  color:#d6dfda;
  font-size:14px;
  line-height:1.7;
}

.booking-hero-points{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:21px;
}

.booking-hero-points span{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:#e6ece8;
  font-size:11px;
  font-weight:700;
}

.booking-hero-points svg,
.booking-btn svg,
.booking-input-icon svg,
.reservation-search-box svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.booking-hero-mark{
  width:190px;
  min-height:150px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  flex:0 0 auto;
  padding:20px;
  border:1px solid rgba(196,154,91,.30);
  border-radius:18px;
  background:rgba(255,255,255,.035);
  backdrop-filter:blur(8px);
}

.booking-hero-mark span{
  color:#d7b47b;
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
}

.booking-hero-mark strong{
  color:#fff;
  font:600 44px/.9 'Cormorant Garamond',Georgia,serif;
}

.booking-hero-mark small{
  margin-top:10px;
  color:#aebcb5;
  font-size:9px;
  font-weight:600;
}

.booking-page{
  padding:48px 5vw 82px;
  background:
    radial-gradient(circle at 93% 8%,rgba(196,154,91,.06),transparent 23%),
    linear-gradient(180deg,#fffaf3,#f5ede2);
}

.booking-layout{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(310px,.62fr);
  gap:20px;
  align-items:start;
}

.booking-form-shell{
  overflow:hidden;
  border:1px solid var(--r-line);
  border-radius:18px;
  background:var(--r-paper);
  box-shadow:var(--r-shadow);
}

.booking-form-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:26px 27px 20px;
  border-bottom:1px solid #e7dccd;
}

.booking-form-head h2{
  margin:4px 0 5px;
  color:var(--r-forest);
  font:600 38px/1 'Cormorant Garamond',Georgia,serif;
}

.booking-form-head p{
  max-width:670px;
  margin:0;
  color:var(--r-muted);
  font-size:14px;
  line-height:1.55;
}

.booking-form-step{
  color:rgba(25,56,45,.10);
  font:600 57px/1 'Cormorant Garamond',Georgia,serif;
}

.booking-alert{
  display:grid;
  gap:3px;
  margin:17px 27px 0;
  padding:12px 14px;
  border-radius:10px;
  font-size:13px;
}

.booking-alert.error{
  border:1px solid #e4b8b1;
  background:#fff0ed;
  color:#8d4139;
}

.booking-alert strong{
  font-size:13px;
}

.booking-form{
  padding:5px 27px 27px;
}

.booking-honeypot{
  position:absolute;
  left:-9999px;
}

.booking-fieldset{
  margin:0;
  padding:22px 0;
  border:0;
  border-bottom:1px solid #eae1d5;
}

.booking-fieldset:last-of-type{
  border-bottom:0;
}

.booking-fieldset legend{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  margin-bottom:14px;
  color:#2f4037;
  font:700 16px/1.2 'Montserrat',Arial,sans-serif;
}

.booking-fieldset legend>span{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--r-forest);
  color:#fff;
  font-size:11px;
}

.booking-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}

.booking-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.booking-field.full{
  grid-column:1/-1;
}

.booking-field>span{
  color:#58625d;
  font-size:12px;
  font-weight:700;
}

.booking-field>span b{
  color:var(--r-clay);
}

.booking-field input,
.booking-field select,
.booking-field textarea,
.booking-time-field>select{
  width:100%;
  min-height:49px;
  padding:10px 12px;
  border:1px solid #d9d0c4;
  border-radius:9px;
  outline:0;
  background:#fff;
  color:#2c3c33;
  font:500 14px/1.3 'Montserrat',Arial,sans-serif;
  transition:border-color .17s ease,box-shadow .17s ease;
}

.booking-field textarea{
  min-height:100px;
  resize:vertical;
}

.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus,
.booking-time-field>select:focus{
  border-color:#b88a4f;
  box-shadow:0 0 0 3px rgba(184,138,79,.10);
}

.booking-input-icon{
  position:relative;
}

.booking-input-icon>svg{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  color:#9d7544;
  pointer-events:none;
}

.booking-input-icon input,
.booking-input-icon select{
  padding-left:38px;
}

.booking-time-status{
  margin-bottom:8px;
  color:#7c817d;
  font-size:12px;
}

.booking-time-grid{
  display:none;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
}

.booking-form.is-enhanced .booking-time-field>select{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  border:0;
  opacity:0;
  pointer-events:none;
}

.booking-form.is-enhanced .booking-time-grid{
  display:grid;
}

.booking-time-chip{
  min-height:42px;
  padding:7px;
  border:1px solid #ded3c4;
  border-radius:8px;
  background:#fff;
  color:#49564f;
  cursor:pointer;
  font:700 12px/1 'Montserrat',Arial,sans-serif;
  transition:.16s ease;
}

.booking-time-chip:hover{
  border-color:#c1a273;
  background:#faf3e8;
}

.booking-time-chip.active{
  border-color:var(--r-forest);
  background:var(--r-forest);
  color:#fff;
  box-shadow:0 8px 18px rgba(18,42,34,.12);
}

.booking-time-empty{
  grid-column:1/-1;
  padding:16px;
  border:1px dashed #d7c7b0;
  border-radius:9px;
  background:#fbf4e9;
  color:#766d63;
  font-size:12px;
  text-align:center;
}

.booking-submit{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:5px;
  padding:18px;
  border:1px solid #d9cab4;
  border-radius:12px;
  background:#f7eee2;
}

.booking-submit small{
  display:block;
  color:#9c7544;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.booking-submit p{
  max-width:520px;
  margin:3px 0 0;
  color:#655f57;
  font-size:12px;
  line-height:1.45;
}

.booking-btn{
  min-height:51px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 17px;
  border:1px solid transparent;
  border-radius:999px;
  cursor:pointer;
  font:700 13px/1 'Montserrat',Arial,sans-serif;
}

.booking-btn.primary{
  background:linear-gradient(135deg,var(--r-gold),var(--r-gold2));
  color:#fff;
  box-shadow:0 10px 24px rgba(196,154,91,.18);
}

.booking-btn.secondary{
  border-color:#d6cbbb;
  background:#fff;
  color:#48554e;
}

.booking-aside{
  display:grid;
  gap:13px;
}

.booking-aside-card,
.booking-location-card{
  overflow:hidden;
  padding:21px;
  border:1px solid var(--r-line);
  border-radius:15px;
  background:#fffdf8;
  box-shadow:0 11px 28px rgba(14,31,25,.045);
}

.booking-aside-card.is-dark{
  border-color:#29483c;
  background:
    radial-gradient(circle at 90% 8%,rgba(196,154,91,.14),transparent 30%),
    linear-gradient(145deg,#17352b,#091d16);
  color:#fff;
}

.booking-aside-card h3{
  margin:4px 0 12px;
  color:var(--r-forest);
  font:600 29px/1 'Cormorant Garamond',Georgia,serif;
}

.booking-aside-card.is-dark h3{
  color:#fff;
}

.booking-hours-large{
  display:block;
  color:#e1bd84;
  font-size:15px;
}

.booking-hours-ranges{
  display:grid;
  gap:5px;
}

.booking-hours-ranges strong{
  display:flex;
  align-items:center;
  gap:6px;
  color:#e7ede9;
  font-size:14px;
}

.booking-hours-ranges span{
  color:#bf9558;
}

.booking-aside-link{
  display:flex;
  flex-direction:column;
  margin-top:17px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#9fb0a7;
  font-size:11px;
}

.booking-aside-link strong{
  margin-top:3px;
  color:#fff;
  font-size:14px;
}

.booking-guide{
  display:grid;
}

.booking-guide>div{
  display:grid;
  grid-template-columns:30px 1fr;
  gap:9px;
  padding:11px 0;
  border-top:1px solid #ece3d7;
}

.booking-guide>div:first-child{
  border-top:0;
}

.booking-guide span{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f0e3d1;
  color:#946c3d;
  font-size:10px;
  font-weight:800;
}

.booking-guide p{
  margin:0;
  color:#6f7671;
  font-size:12px;
  line-height:1.5;
}

.booking-location-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  color:#405048;
}

.booking-location-card small,
.booking-location-card strong{
  display:block;
}

.booking-location-card small{
  color:#9e7542;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.booking-location-card strong{
  margin-top:3px;
  font-size:13px;
}

.booking-location-card b{
  color:#89673f;
  font-size:12px;
}

.booking-success{
  padding:44px 34px;
  text-align:center;
}

.booking-success-icon{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  margin:0 auto 14px;
  border-radius:50%;
  background:var(--r-forest);
  color:#fff;
}

.booking-success-icon svg{
  width:28px;
  height:28px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
}

.booking-success h2{
  margin:5px 0 7px;
  color:var(--r-forest);
  font:600 47px/1 'Cormorant Garamond',Georgia,serif;
}

.booking-success>p{
  max-width:600px;
  margin:0 auto;
  color:var(--r-muted);
  font-size:14px;
  line-height:1.55;
}

.booking-success-reference{
  width:max-content;
  min-width:180px;
  margin:23px auto 14px;
  padding:10px 18px;
  border:1px solid #d8c5a8;
  border-radius:10px;
  background:#f7eee2;
}

.booking-success-reference small,
.booking-success-reference strong{
  display:block;
}

.booking-success-reference small{
  color:#967040;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.booking-success-reference strong{
  margin-top:2px;
  color:#27372f;
  font-size:19px;
}

.booking-success-grid{
  max-width:600px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:0 auto;
}

.booking-success-grid span{
  padding:11px;
  border:1px solid #e2d8ca;
  border-radius:10px;
  background:#fff;
}

.booking-success-grid small,
.booking-success-grid strong{
  display:block;
}

.booking-success-grid small{
  color:#8a8f8b;
  font-size:9px;
  text-transform:uppercase;
}

.booking-success-grid strong{
  margin-top:3px;
  color:#2d3c34;
  font-size:13px;
}

.booking-success-actions{
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:21px;
}

/* ============================================================
   ADMIN
   ============================================================ */

.reservations-admin{
  max-width:1580px;
  margin:auto;
}

.reservations-admin-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  padding:24px;
  margin-bottom:13px;
  border:1px solid #29483c;
  border-radius:16px;
  background:
    radial-gradient(circle at 91% 10%,rgba(196,154,91,.15),transparent 28%),
    linear-gradient(145deg,#0e251c,#193d31);
  color:#fff;
  box-shadow:0 14px 36px rgba(14,31,25,.12);
}

.reservations-admin-kicker{
  color:#d8b67d;
  font-size:10px;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.reservations-admin-hero h1{
  margin:4px 0 3px;
  color:#fff;
  font:600 39px/1 'Cormorant Garamond',Georgia,serif;
}

.reservations-admin-hero p{
  max-width:760px;
  margin:0;
  color:#c6d1cc;
  font-size:13px;
  line-height:1.55;
}

.reservations-admin-hero-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

.reservation-admin-btn{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 13px;
  border:1px solid transparent;
  border-radius:9px;
  cursor:pointer;
  font:700 14px/1 'Montserrat',Arial,sans-serif;
}

.reservation-admin-btn.gold{
  background:var(--r-gold);
  color:#fff;
}

.reservation-admin-btn.light{
  border-color:rgba(255,255,255,.18);
  background:rgba(255,255,255,.055);
  color:#fff;
}

.reservation-admin-btn.dark{
  background:var(--r-forest);
  color:#fff;
}

.reservation-admin-btn.outline{
  border-color:#d6cdc1;
  background:#fff;
  color:#52605a;
}

.reservation-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-bottom:10px;
}

.reservation-kpis>a{
  position:relative;
  overflow:hidden;
  padding:13px 15px;
  border:1px solid #ded5c8;
  border-radius:12px;
  background:#fff;
  color:#3d4b44;
  box-shadow:0 6px 17px rgba(14,31,25,.035);
}

.reservation-kpis>a.active{
  border-color:#bea06d;
  background:#f7eee2;
}

.reservation-kpis small{
  display:block;
  color:#878d89;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}

.reservation-kpis strong{
  display:inline-block;
  margin-top:3px;
  color:var(--r-forest);
  font:600 30px/1 'Cormorant Garamond',Georgia,serif;
}

.reservation-kpis span{
  margin-left:5px;
  color:#8b908d;
  font-size:11px;
}

.reservation-tabs{
  display:flex;
  gap:6px;
  overflow-x:auto;
  padding:2px 0 9px;
  scrollbar-width:none;
}

.reservation-tabs::-webkit-scrollbar{
  display:none;
}

.reservation-tabs a{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:8px 13px;
  border:1px solid #ddd5ca;
  border-radius:999px;
  background:#fff;
  color:#52605a;
  font-size:12px;
  font-weight:700;
}

.reservation-tabs a.active{
  border-color:var(--r-forest);
  background:var(--r-forest);
  color:#fff;
}

.reservation-admin-toolbar{
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px;
  margin-bottom:10px;
  border:1px solid #dcd3c7;
  border-radius:12px;
  background:#f9f4ed;
}

.reservation-search-form{
  display:flex;
  align-items:end;
  gap:7px;
  flex:1;
}

.reservation-search-box{
  min-height:46px;
  display:flex;
  align-items:center;
  gap:7px;
  flex:1;
  padding:0 11px;
  border:1px solid #d7cfc3;
  border-radius:9px;
  background:#fff;
}

.reservation-search-box svg{
  flex:0 0 auto;
  color:#9f7542;
}

.reservation-search-box input{
  width:100%;
  border:0;
  outline:0;
  font-size:13px;
}

.reservation-date-filter{
  display:grid;
  gap:3px;
}

.reservation-date-filter span{
  color:#7d837f;
  font-size:9px;
  font-weight:700;
  text-transform:uppercase;
}

.reservation-date-filter input{
  min-height:46px;
  padding:7px 9px;
  border:1px solid #d7cfc3;
  border-radius:9px;
  background:#fff;
  font-size:12px;
}

.reservation-results-count{
  min-width:96px;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  border:1px solid #d7cfc3;
  border-radius:9px;
  background:#fff;
}

.reservation-results-count strong{
  color:var(--r-gold2);
  font-size:18px;
}

.reservation-results-count span{
  color:#858b87;
  font-size:10px;
}

.reservation-admin-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  align-items:start;
}

.reservation-admin-layout.has-detail{
  grid-template-columns:minmax(0,1fr) minmax(345px,430px);
}

.reservation-list{
  overflow:hidden;
  border:1px solid #ddd5ca;
  border-radius:13px;
  background:#fff;
}

.reservation-date-divider{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-top:1px solid #e7dfd5;
  border-bottom:1px solid #e7dfd5;
  background:#f8f2e9;
  color:#49564f;
  font-size:12px;
  font-weight:700;
}

.reservation-date-divider:first-child{
  border-top:0;
}

.reservation-date-divider b{
  padding:3px 6px;
  border-radius:999px;
  background:#17372c;
  color:#fff;
  font-size:9px;
  text-transform:uppercase;
}

.reservation-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  border-bottom:1px solid #ece6dd;
}

.reservation-row:last-child{
  border-bottom:0;
}

.reservation-row.selected{
  background:#fff8ec;
  box-shadow:inset 3px 0 0 #c49a5b;
}

.reservation-row-main{
  min-height:82px;
  display:grid;
  grid-template-columns:100px minmax(0,1fr) 98px 20px;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  color:#34423b;
}

.reservation-time strong,
.reservation-time small{
  display:block;
}

.reservation-time strong{
  color:var(--r-forest);
  font:600 21px/1 'Cormorant Garamond',Georgia,serif;
}

.reservation-time small{
  margin-top:3px;
  color:#828985;
  font-size:10px;
}

.reservation-guest strong{
  display:block;
  font-size:14px;
}

.reservation-guest>small{
  display:block;
  margin-top:3px;
  color:#89908c;
  font-size:10px;
}

.reservation-flags{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:6px;
}

.reservation-flags em{
  padding:3px 6px;
  border-radius:999px;
  background:#f0ebe4;
  color:#776f66;
  font-size:9px;
  font-style:normal;
  font-weight:700;
}

.reservation-flags em.occasion{
  background:#f3e8d8;
  color:#8c6639;
}

.reservation-flags em.allergy{
  background:#fde8e3;
  color:#9d493f;
}

.reservation-status{
  min-height:29px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:800;
}

.reservation-status.requested{
  background:#fff0d9;
  color:#926328;
}

.reservation-status.confirmed{
  background:#e5f2e8;
  color:#347048;
}

.reservation-status.completed{
  background:#e9edf0;
  color:#58646c;
}

.reservation-status.cancelled{
  background:#fbe7e4;
  color:#97493f;
}

.reservation-open-arrow{
  color:#a78350;
  font-size:22px;
}

.reservation-row-actions{
  display:flex;
  align-items:center;
  gap:5px;
  padding:10px 12px 10px 0;
}

.reservation-row-actions form{
  margin:0;
}

.reservation-quick{
  min-height:39px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:7px 9px;
  border:1px solid #d8d0c5;
  border-radius:8px;
  background:#fff;
  color:#54615a;
  cursor:pointer;
  font-size:10px;
  font-weight:700;
}

.reservation-quick.confirm{
  border-color:#aac9b0;
  background:#edf7ef;
  color:#3e744d;
}

.reservation-detail{
  position:sticky;
  top:10px;
  overflow:hidden;
  border:1px solid #d9cdbb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 16px 40px rgba(14,31,25,.08);
}

.reservation-detail-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:18px;
  border-bottom:1px solid #e7ddd0;
  background:
    radial-gradient(circle at 93% 8%,rgba(196,154,91,.09),transparent 30%),
    #fbf5ec;
}

.reservation-detail-head small{
  color:#9c7543;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
}

.reservation-detail-head h2{
  margin:2px 0 7px;
  color:var(--r-forest);
  font:600 31px/1 'Cormorant Garamond',Georgia,serif;
}

.reservation-detail-close{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid #d8cec1;
  border-radius:50%;
  background:#fff;
  color:#68736e;
  font-size:20px;
}

.reservation-detail-visit{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  padding:13px 15px;
  border-bottom:1px solid #ece5dc;
}

.reservation-detail-visit span{
  padding:8px;
  border:1px solid #e4dbcf;
  border-radius:8px;
  background:#fffaf4;
  text-align:center;
}

.reservation-detail-visit small,
.reservation-detail-visit strong{
  display:block;
}

.reservation-detail-visit small{
  color:#909590;
  font-size:8px;
  text-transform:uppercase;
}

.reservation-detail-visit strong{
  margin-top:3px;
  color:#39473f;
  font-size:11px;
}

.reservation-detail-section{
  padding:15px;
  border-bottom:1px solid #ece5dc;
}

.reservation-detail-section h3{
  margin:0 0 9px;
  color:#34423b;
  font-size:12px;
}

.reservation-detail-section>a{
  display:block;
  padding:7px 0;
  color:#48564f;
}

.reservation-detail-section>a small,
.reservation-detail-section>a strong{
  display:block;
}

.reservation-detail-section>a small,
.reservation-detail-note small{
  color:#929793;
  font-size:8px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.reservation-detail-section>a strong,
.reservation-detail-note strong{
  margin-top:2px;
  overflow-wrap:anywhere;
  color:#39483f;
  font-size:11px;
  line-height:1.45;
}

.reservation-detail-note{
  margin-top:7px;
  padding:9px 10px;
  border:1px solid #e1d8cc;
  border-radius:8px;
  background:#fbf8f3;
}

.reservation-detail-note.allergy{
  border-color:#e6bcb5;
  background:#fff1ee;
}

.reservation-status-actions{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:5px;
}

.reservation-status-actions form{
  margin:0;
}

.reservation-status-button{
  width:100%;
  min-height:39px;
  border:1px solid #d8d0c5;
  border-radius:8px;
  background:#fff;
  color:#59655f;
  cursor:pointer;
  font-size:10px;
  font-weight:700;
}

.reservation-status-button.active,
.reservation-status-button:disabled{
  opacity:1;
  cursor:default;
}

.reservation-status-button.requested.active{
  background:#fff0d9;
  border-color:#e4c48e;
  color:#926328;
}

.reservation-status-button.confirmed.active{
  background:#e5f2e8;
  border-color:#b3d0b9;
  color:#347048;
}

.reservation-status-button.completed.active{
  background:#e9edf0;
  color:#58646c;
}

.reservation-status-button.cancelled.active{
  background:#fbe7e4;
  border-color:#e7bcb5;
  color:#97493f;
}

.reservation-manager-note{
  display:grid;
  gap:7px;
}

.reservation-manager-note textarea{
  min-height:85px;
  padding:9px 10px;
  border:1px solid #d8d0c5;
  border-radius:8px;
  resize:vertical;
  font-size:11px;
}

.reservation-detail-meta{
  padding:11px 15px;
  background:#f8f3ec;
  color:#909590;
  font-size:8px;
  text-align:center;
}

.reservation-empty{
  padding:55px 20px;
  text-align:center;
}

.reservation-empty>span{
  width:49px;
  height:49px;
  display:grid;
  place-items:center;
  margin:0 auto 10px;
  border-radius:50%;
  background:#e8f1e9;
  color:#4d7b59;
  font-size:21px;
}

.reservation-empty h2{
  margin:0 0 4px;
  font:600 29px/1 'Cormorant Garamond',Georgia,serif;
}

.reservation-empty p{
  margin:0;
  color:#858b87;
  font-size:11px;
}

@media(max-width:1180px){
  .booking-layout{
    grid-template-columns:minmax(0,1fr) 300px;
  }

  .booking-time-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .reservation-admin-layout.has-detail{
    grid-template-columns:minmax(0,1fr) 345px;
  }

  .reservation-row-main{
    grid-template-columns:87px minmax(0,1fr) 92px 18px;
  }
}

@media(max-width:980px){
  .booking-layout{
    grid-template-columns:1fr;
  }

  .booking-aside{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .booking-location-card{
    grid-column:1/-1;
  }

  .reservations-admin-hero{
    align-items:flex-start;
    flex-direction:column;
  }

  .reservation-kpis{
    grid-template-columns:repeat(2,1fr);
  }

  .reservation-admin-layout.has-detail{
    grid-template-columns:1fr;
  }

  .reservation-detail{
    position:relative;
    top:auto;
    order:-1;
  }
}

@media(max-width:760px){
  .booking-hero{
    padding:48px 5vw 36px;
  }

  .booking-hero-inner{
    align-items:flex-start;
    flex-direction:column;
  }

  .booking-hero-mark{
    display:none;
  }

  .booking-hero h1{
    font-size:54px;
  }

  .booking-page{
    padding:30px 4vw 70px;
  }

  .booking-form-head{
    padding:21px 18px 16px;
  }

  .booking-form{
    padding:4px 18px 20px;
  }

  .booking-grid{
    grid-template-columns:1fr;
  }

  .booking-field.full{
    grid-column:auto;
  }

  .booking-time-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .booking-submit{
    align-items:stretch;
    flex-direction:column;
  }

  .booking-submit .booking-btn{
    width:100%;
  }

  .booking-aside{
    grid-template-columns:1fr;
  }

  .booking-location-card{
    grid-column:auto;
  }

  .reservation-admin-toolbar,
  .reservation-search-form{
    align-items:stretch;
    flex-direction:column;
  }

  .reservation-results-count{
    min-height:42px;
  }

  .reservation-date-filter input{
    width:100%;
  }

  .reservation-row{
    grid-template-columns:1fr;
  }

  .reservation-row-main{
    grid-template-columns:75px minmax(0,1fr) 90px;
  }

  .reservation-open-arrow{
    display:none;
  }

  .reservation-row-actions{
    padding:0 12px 11px;
  }

  .reservation-row-actions>*{
    flex:1;
  }

  .reservation-row-actions .reservation-quick{
    width:100%;
  }
}

@media(max-width:560px){
  .booking-success{
    padding:34px 17px;
  }

  .booking-success h2{
    font-size:39px;
  }

  .booking-success-grid{
    grid-template-columns:1fr;
  }

  .booking-success-actions{
    display:grid;
  }

  .booking-time-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .booking-aside-card,
  .booking-location-card{
    padding:17px;
  }

  .reservation-kpis{
    grid-template-columns:repeat(2,1fr);
  }

  .reservation-kpis>a{
    padding:11px;
  }

  .reservations-admin-hero{
    padding:18px;
  }

  .reservations-admin-hero h1{
    font-size:34px;
  }

  .reservations-admin-hero-actions{
    display:grid;
    width:100%;
  }

  .reservation-row-main{
    min-height:94px;
    grid-template-columns:68px minmax(0,1fr);
    gap:9px;
    padding:11px;
  }

  .reservation-row-main>.reservation-status{
    grid-column:1/-1;
    width:max-content;
  }

  .reservation-detail-visit{
    grid-template-columns:1fr;
  }

  .reservation-status-actions{
    grid-template-columns:1fr 1fr;
  }
}


/* ============================================================
   CONNECTED RESERVATION APP V5.8
   Direct visible embed. No hidden drawer or JS interception.
   ============================================================ */

.booking-app-hero{
  position:relative;
  overflow:hidden;
  padding:72px 5vw 50px;
  color:#fff;
  background:
    radial-gradient(circle at 12% 8%,rgba(196,154,91,.16),transparent 27%),
    radial-gradient(circle at 91% 86%,rgba(160,91,66,.10),transparent 25%),
    linear-gradient(145deg,#071a14,#1b3f32);
}

.booking-app-hero::after{
  content:"ARDEN";
  position:absolute;
  right:-1vw;
  top:-62px;
  color:rgba(255,255,255,.025);
  font:600 clamp(130px,18vw,300px)/1 'Cormorant Garamond',Georgia,serif;
  letter-spacing:-.07em;
  pointer-events:none;
}

.booking-app-hero-inner{
  position:relative;
  z-index:1;
}

.booking-app-kicker{
  display:block;
  color:#d8b57d;
  font-size:14px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.booking-app-hero h1{
  max-width:920px;
  margin:7px 0 11px;
  color:#fff;
  font:600 clamp(56px,7vw,84px)/.92 'Cormorant Garamond',Georgia,serif;
  letter-spacing:-.03em;
}

.booking-app-hero p{
  max-width:720px;
  margin:0;
  color:#d2ddd7;
  font-size:14px;
  line-height:1.72;
}

.booking-app-page{
  background:
    radial-gradient(circle at 92% 8%,rgba(196,154,91,.06),transparent 25%),
    linear-gradient(180deg,#f7f0e6,#fffaf3);
}

.booking-app-shell{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
  overflow:hidden;
  background:transparent;
}

.booking-app-frame{
  display:block;
  width:100%;
  min-height:900px;
  margin:0;
  border:0;
  background:transparent;
}

.booking-app-help{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding-top:28px;
  padding-bottom:64px;
}

.booking-app-help h2{
  margin:5px 0 6px;
  color:#123126;
  font:600 40px/1 'Cormorant Garamond',Georgia,serif;
}

.booking-app-help p{
  max-width:680px;
  margin:0;
  color:#68736d;
  font-size:14px;
  line-height:1.6;
}

.booking-app-help-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.booking-app-btn{
  min-height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 17px;
  border-radius:999px;
  font-size:18px;
  font-weight:700;
}

.booking-app-btn.primary{
  border:1px solid #c49a5b;
  background:linear-gradient(135deg,#c49a5b,#9c6f39);
  color:#fff;
}

.booking-app-btn.secondary{
  border:1px solid #d5c7b4;
  background:#fff;
  color:#294137;
}

@media(max-width:900px){
  .booking-app-frame{
    min-height:980px;
    height:980px;
  }

  .booking-app-help{
    align-items:flex-start;
    flex-direction:column;
  }

  .booking-app-help-actions{
    width:100%;
    justify-content:flex-start;
  }
}

@media(max-width:650px){
  .booking-app-hero{
    padding:54px 4vw 40px;
  }

  .booking-app-hero h1{
    font-size:52px;
  }

  .booking-app-frame{
    min-height:1100px;
    height:1100px;
  }

  .booking-app-help{
    padding-top:24px;
    padding-bottom:54px;
  }

  .booking-app-help-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .booking-app-btn{
    width:100%;
    font-size:18px!important;
  }

  .booking-app-hero p,
  .booking-app-help p,
  .booking-app-kicker{
    font-size:14px!important;
  }
}
