:root{
  --booking-bg:#fffaf1;
  --booking-paper:rgba(255,255,255,.88);
  --booking-paper-strong:#ffffff;
  --booking-ink:#17110d;
  --booking-muted:#6e6258;
  --booking-line:rgba(23,17,13,.13);
  --booking-accent:#f5a400;
  --booking-red:#d73520;
  --booking-rust:#b95522;
  --booking-sand:#e6c695;
  --booking-shadow:0 24px 70px rgba(67,38,13,.14);
}

*{box-sizing:border-box}

body.booking-body{
  margin:0;
  min-height:100vh;
  background:transparent;
  color:var(--booking-ink);
  font-family:'Manrope',sans-serif;
}

a{color:inherit}

.booking-shell-page{
  width:min(1180px,calc(100% - 36px));
  margin:0 auto;
  padding:140px 0 76px;
}

.booking-hero{
  position:relative;
  overflow:hidden;
  padding:38px;
  border:1px solid var(--booking-line);
  border-radius:34px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.88),rgba(247,234,215,.82)),
    radial-gradient(circle at 84% 8%,rgba(245,164,0,.18),transparent 28%);
  color:var(--booking-ink);
  box-shadow:var(--booking-shadow);
  backdrop-filter:blur(16px);
}

.booking-hero:before,
.booking-card:before,
.booking-panel:before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.45;
  background:
    radial-gradient(circle at 12% 10%,rgba(245,164,0,.13),transparent 24%),
    linear-gradient(120deg,rgba(255,255,255,.5),transparent 44%,rgba(185,85,34,.08));
  pointer-events:none;
}

.booking-hero h1,
.booking-hero h2{
  position:relative;
  margin:0;
  max-width:860px;
  color:var(--booking-ink);
  font-family:'Fraunces',serif;
  font-size:clamp(44px,7vw,86px);
  line-height:.92;
  letter-spacing:-.06em;
}

.booking-hero p{
  position:relative;
  max-width:760px;
  margin:18px 0 0;
  color:var(--booking-muted);
  font-size:16px;
  line-height:1.82;
}

.booking-summary{
  position:relative;
  width:max-content;
  max-width:100%;
  margin-top:20px;
  padding:10px 13px;
  border:1px solid rgba(215,53,32,.24);
  border-radius:999px;
  background:rgba(245,164,0,.12);
  color:var(--booking-red);
  font-family:'Barlow Condensed',sans-serif;
  font-size:14px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.booking-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:28px;
}

.booking-card,
.booking-panel,
.result-card,
.metric-card,
.template-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--booking-line);
  border-radius:30px;
  background:rgba(255,255,255,.84);
  box-shadow:var(--booking-shadow);
  backdrop-filter:blur(16px);
}

.booking-card{
  display:flex;
  flex-direction:column;
}

.booking-card-media{
  min-height:220px;
  background:
    linear-gradient(145deg,rgba(245,164,0,.64),rgba(215,53,32,.5)),
    radial-gradient(circle at 22% 18%,rgba(255,255,255,.35),transparent 26%);
  background-size:cover;
  background-position:center;
  filter:saturate(1.04) contrast(1.02);
}

.booking-card-body,
.booking-panel,
.template-card{
  padding:24px;
}

.booking-chip{
  position:relative;
  display:inline-flex;
  width:max-content;
  padding:8px 11px;
  border:1px solid rgba(215,53,32,.24);
  border-radius:999px;
  background:rgba(245,164,0,.12);
  color:var(--booking-red);
  font-family:'Barlow Condensed',sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.booking-card h3,
.booking-panel h3{
  position:relative;
  margin:16px 0 8px;
  color:var(--booking-ink);
  font-family:'Fraunces',serif;
  font-size:32px;
  line-height:1;
  letter-spacing:-.04em;
}

.booking-card p,
.booking-panel p,
.muted-copy{
  position:relative;
  color:var(--booking-muted);
  font-size:14px;
  line-height:1.75;
}

.booking-meta-row,
.booking-action-row{
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  flex-wrap:wrap;
}

.booking-meta-row{
  margin:16px 0 18px;
  color:var(--booking-muted);
  font-size:13px;
}

.booking-meta-row strong{
  color:var(--booking-ink);
}

.booking-highlight-list{
  position:relative;
  margin:0 0 22px;
  padding-left:18px;
  display:grid;
  gap:8px;
  color:var(--booking-muted);
}

.booking-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 18px;
  border:1px solid rgba(215,53,32,.18);
  border-radius:999px;
  background:linear-gradient(145deg,var(--booking-accent),#f07818 55%,var(--booking-red));
  color:#fff;
  text-decoration:none;
  font-family:'Barlow Condensed',sans-serif;
  font-size:14px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 18px 34px rgba(215,53,32,.18);
}

.booking-button.ghost{
  background:var(--booking-paper-strong);
  color:var(--booking-ink);
  border-color:rgba(23,17,13,.16);
  box-shadow:none;
}

.booking-two-col{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);
  gap:22px;
  margin-top:28px;
}

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

.booking-field,
.booking-field-full{
  display:grid;
  gap:8px;
}

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

.booking-field label,
.booking-field-full label{
  color:var(--booking-red);
  font-family:'Barlow Condensed',sans-serif;
  font-size:14px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.booking-field input,
.booking-field select,
.booking-field textarea,
.booking-field-full input,
.booking-field-full select,
.booking-field-full textarea{
  width:100%;
  min-height:52px;
  padding:14px 16px;
  border:1px solid rgba(23,17,13,.16);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  color:var(--booking-ink);
  outline:none;
}

.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus,
.booking-field-full input:focus,
.booking-field-full select:focus,
.booking-field-full textarea:focus{
  border-color:rgba(215,53,32,.55);
  box-shadow:0 0 0 4px rgba(215,53,32,.12);
}

.booking-field textarea,
.booking-field-full textarea{
  min-height:120px;
  resize:vertical;
}

.booking-field input::placeholder,
.booking-field-full textarea::placeholder{
  color:rgba(23,17,13,.38);
}

.booking-inline-note{
  margin:0;
  color:var(--booking-muted);
  font-size:13px;
  line-height:1.6;
}

.check-card,
.inline-check{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:14px 16px;
  border:1px solid rgba(23,17,13,.12);
  border-radius:18px;
  background:rgba(255,255,255,.68);
  color:var(--booking-muted);
  line-height:1.6;
}

.booking-stat-stack{
  position:relative;
  display:grid;
  gap:12px;
}

.booking-stat,
.detail-grid div,
.metric-card{
  padding:16px;
  border:1px solid rgba(23,17,13,.12);
  border-radius:18px;
  background:rgba(255,255,255,.68);
}

.booking-stat span,
.detail-grid span,
.metric-card span{
  display:block;
  color:var(--booking-red);
  font-family:'Barlow Condensed',sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.booking-stat strong,
.detail-grid strong,
.metric-card strong{
  display:block;
  margin-top:8px;
  color:var(--booking-ink);
  font-family:'Fraunces',serif;
  font-size:25px;
  line-height:1;
}

.status-banner{
  position:relative;
  margin-top:18px;
  padding:15px 16px;
  border:1px solid rgba(215,53,32,.18);
  border-radius:18px;
  background:rgba(245,164,0,.1);
  color:var(--booking-muted);
  line-height:1.72;
}

.status-banner.is-error{
  border-color:rgba(215,53,32,.3);
  background:rgba(215,53,32,.08);
  color:#842717;
}

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

.table-wrap{
  margin-top:16px;
  overflow:auto;
  border:1px solid var(--booking-line);
  border-radius:24px;
  background:var(--booking-paper);
  box-shadow:var(--booking-shadow);
}

table{
  width:100%;
  border-collapse:collapse;
}

th,
td{
  padding:14px 16px;
  border-bottom:1px solid var(--booking-line);
  color:var(--booking-muted);
  text-align:left;
  font-size:14px;
}

th{
  color:var(--booking-red);
  font-family:'Barlow Condensed',sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.result-card{
  padding:18px;
}

.template-card pre{
  margin:10px 0 0;
  white-space:pre-wrap;
  color:var(--booking-muted);
  font-family:'Manrope',sans-serif;
}

@media (max-width:980px){
  .booking-grid,
  .booking-two-col,
  .detail-grid,
  .booking-form-grid{
    grid-template-columns:1fr;
  }
  .booking-shell-page{
    padding-top:150px;
  }
  .booking-action-row,
  .booking-meta-row{
    align-items:flex-start;
    flex-direction:column;
  }
}
