:root{
    --bg:#f7f2ec;--panel:#fffdf9;--panel2:#f3ece4;--line:#d8cabc;
    --gold:#b99662;--gold2:#c8a978;--burgundy:#6b263d;
    --text:#332b2d;--muted:#786e6d;
}
*{box-sizing:border-box}
html,body{margin:0;background:radial-gradient(circle at 10% 0%,rgba(107,38,61,.08),transparent 28%),var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}
body{min-height:100vh}button,input{font:inherit}button{cursor:pointer}
.page{max-width:1280px;margin:0 auto;padding:22px 22px 54px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px}.logo{width:54px;height:54px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;color:var(--burgundy);font-size:17px;background:#fffdf9}.brand-name{font-family:Georgia,serif;color:var(--burgundy);font-size:21px;font-weight:700;letter-spacing:1.2px}.brand-tag{margin-top:4px;color:var(--muted);font-size:12px}.staging{border:1px solid var(--gold);color:var(--burgundy);padding:8px 12px;border-radius:20px;font-size:10px;font-weight:700;background:rgba(185,150,98,.08)}
.booking-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.booking-nav a{color:var(--burgundy);text-decoration:none;border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-size:10px;font-weight:800;letter-spacing:.5px;background:#fffdf9}.booking-nav a:hover{background:#eee6dd;border-color:var(--gold)}
.hero{padding:28px 0 22px}.eyebrow{color:var(--gold);letter-spacing:2.3px;font-size:10px;font-weight:800}.hero h1{margin:9px 0 10px;font-family:Georgia,'Times New Roman',serif;font-size:44px;line-height:1.08;color:var(--burgundy)}.hero p{margin:0;max-width:760px;color:var(--muted);line-height:1.6}
.preview-note{border:1px solid var(--gold);background:#eee6dd;color:var(--burgundy);padding:11px 13px;border-radius:8px;font-size:11px;margin-bottom:18px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.step{border:1px solid var(--line);background:#fffdf9;color:var(--muted);border-radius:9px;padding:12px;font-size:11px}.step.current{color:var(--burgundy);border-color:var(--gold);background:linear-gradient(180deg,#fffdf9,#eee6dd)}.step span{display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;margin-right:8px}
.section{border:1px solid var(--line);background:linear-gradient(145deg,#fffdf9,#f3ece4);border-radius:14px;margin-bottom:18px;padding:24px}.section h2{margin:0 0 18px;font-family:Georgia,serif;color:var(--burgundy);font-size:28px}
.sessions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.session{display:block}.session input{position:absolute;opacity:0;pointer-events:none}.session-card{border:1px solid var(--line);background:linear-gradient(145deg,#fffdf9,#eee6dd);border-radius:12px;padding:20px;min-height:150px;transition:.18s ease;color:var(--text)}.session input:checked + .session-card{border-color:var(--gold);box-shadow:0 0 0 2px rgba(185,150,98,.2);background:linear-gradient(145deg,#fffdf9,#eadfd3)}.session-card h3{margin:0 0 8px;font-size:20px;color:var(--burgundy)}.session-card p{margin:0;min-height:38px;color:var(--muted);font-size:12px;line-height:1.45}.session-foot{margin-top:22px;display:flex;align-items:center;justify-content:space-between}.session-foot b{font-size:14px}.session-foot strong{color:var(--burgundy);font-size:18px}
.booking-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:16px}.card{border:1px solid var(--line);background:linear-gradient(145deg,#fffdf9,#f1e9e1);border-radius:13px;padding:20px;color:var(--text)}.card-title{color:var(--burgundy);font-size:12px;letter-spacing:1.6px;margin-bottom:16px}
.calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-bottom:15px}.calendar-head button{height:38px;border:1px solid var(--line);background:#fffdf9;color:var(--burgundy);border-radius:7px;font-size:21px}.calendar-head button:disabled{opacity:.25;cursor:not-allowed}.calendar-head h3{margin:0;text-align:center;font-family:Georgia,serif;font-size:22px;color:var(--burgundy)}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:7px}.week b{text-align:center;color:#91857f;font-size:9px;letter-spacing:.5px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar .blank{min-height:40px}.calendar button{height:40px;border:1px solid transparent;background:transparent;color:var(--text);border-radius:9px;font-weight:700}.calendar button:hover:not(:disabled){border-color:var(--gold);background:#eee6dd}.calendar button.selected{background:linear-gradient(180deg,#6b263d,#521c30);color:#fffaf5;border-color:#6b263d}.calendar button.unavailable{color:#b5aca5;cursor:not-allowed}.calendar button.closed-special{color:#7d4252;background:#f1e1e5;cursor:not-allowed}
.legend{display:flex;flex-wrap:wrap;gap:15px;margin-top:18px;color:var(--muted);font-size:9px}.legend span{display:flex;align-items:center;gap:6px}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px}.legend .available{background:var(--gold)}.legend .off{background:#cfc7c0}.legend .special{background:var(--burgundy)}
.selected-date{margin:2px 0 17px;font-family:Georgia,serif;font-size:21px;color:var(--burgundy)}.times{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.times button{border:1px solid var(--line);background:#fffdf9;color:var(--text);padding:12px 8px;border-radius:7px}.times button:hover{border-color:var(--gold)}.times button.selected{background:linear-gradient(180deg,#6b263d,#521c30);border-color:#6b263d;color:#fffaf5}.empty-times{grid-column:1/-1;color:var(--muted);font-size:12px;padding:12px 0}
.summary{border-top:1px solid var(--line);margin-top:20px;padding-top:18px;display:grid;gap:12px}.summary-row{display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:12px}.summary-row strong{color:var(--burgundy)}.primary{width:100%;margin-top:18px;border:1px solid var(--burgundy);background:linear-gradient(180deg,#6b263d,#521c30);color:#fffaf5;border-radius:7px;padding:13px;font-weight:900}.primary:disabled{opacity:.45;cursor:not-allowed}
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.info-grid label{display:grid;gap:7px;color:var(--burgundy);font-size:11px}.info-grid input{border:1px solid var(--line);background:#fffdf9;color:var(--text);border-radius:6px;padding:11px}.info-grid .full{grid-column:1/-1}.field-error{color:#a33b51;font-size:10px;min-height:12px}.info-grid input.invalid{border-color:#9f2940;box-shadow:0 0 0 1px rgba(159,41,64,.25)}
.review-box{display:none;margin-top:18px;border:1px solid var(--line);background:#fffdf9;border-radius:10px;padding:16px}.review-box h3{margin:0 0 13px;color:var(--burgundy);font-family:Georgia,serif}.review-row{display:flex;justify-content:space-between;gap:18px;padding:7px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.review-row:last-child{border-bottom:0}.review-row strong{color:var(--burgundy);text-align:right}.payment-text{color:var(--muted);font-size:13px;line-height:1.55}.disabled-pay{border:1px solid var(--gold);background:#eee6dd;color:var(--burgundy);padding:12px 16px;border-radius:7px;font-weight:800}
.hold-actions{margin-top:18px}.continue-payment{width:100%;border:1px solid var(--burgundy);border-radius:8px;padding:16px 20px;font-size:16px;font-weight:800;cursor:pointer;background:linear-gradient(180deg,#6b263d,#521c30);color:#fffaf5}.continue-payment:disabled{opacity:.5;cursor:not-allowed}.hold-confirmation{margin-top:16px;padding:16px 18px;border:1px solid var(--gold);border-radius:8px;background:#fffdf9;color:var(--text);line-height:1.55}.hold-confirmation strong{color:var(--burgundy)}.hold-countdown-wrap{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#eee6dd;text-align:center}.hold-countdown-label{color:var(--muted);font-size:12px;letter-spacing:.4px;margin-bottom:5px}.hold-countdown{color:var(--burgundy);font-family:Georgia,serif;font-size:30px;font-weight:700;letter-spacing:1px}.hold-expired{border-color:var(--burgundy);background:#f1e1e5}.hold-expired strong{color:var(--burgundy);font-size:18px}.return-calendar{width:100%;margin-top:14px;border:1px solid var(--burgundy);background:#fffdf9;color:var(--burgundy);border-radius:8px;padding:13px 16px;font-weight:800;cursor:pointer}
@media(max-width:900px){.page{padding:16px}.hero h1{font-size:34px}.sessions{grid-template-columns:1fr}.booking-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps{grid-template-columns:1fr}.section{padding:17px}.times{grid-template-columns:1fr 1fr}.info-grid{grid-template-columns:1fr}.info-grid .full{grid-column:auto}}

/* ============================================================
   TRUE ROMANCE BOUDOIR — PREMIUM SITE-STYLE FINISH
   VISUAL STYLING ONLY — EXISTING LAYOUT/FUNCTIONS PRESERVED
   ============================================================ */
:root{
  --trb-bg:#f7f3ee;
  --trb-white:#fffdf9;
  --trb-cream:#f3ebe3;
  --trb-blush:#eaded5;
  --trb-border:#d8c9bc;
  --trb-wine:#63243b;
  --trb-wine-dark:#421726;
  --trb-champagne:#b59668;
  --trb-brown:#33292b;
  --trb-muted:#756b6b;
}
html,body{
  background:var(--trb-bg)!important;
  color:var(--trb-brown)!important;
}
body{
  font-family:Arial,Helvetica,sans-serif;
  background:
    radial-gradient(circle at 50% -10%,rgba(234,222,213,.72),transparent 38%),
    var(--trb-bg)!important;
}
.page{max-width:1280px;margin:0 auto;padding:30px 28px 65px}
.topbar{
  padding:0 0 22px;
  border-bottom:1px solid var(--trb-border)!important;
}
.logo{
  border:1px solid var(--trb-champagne)!important;
  background:var(--trb-white)!important;
  color:var(--trb-wine)!important;
}
.brand-name{
  color:var(--trb-wine)!important;
  font-family:Georgia,'Times New Roman',serif!important;
  letter-spacing:1.5px;
}
.brand-tag{color:var(--trb-muted)!important}
.staging{
  border-color:var(--trb-champagne)!important;
  background:rgba(181,150,104,.08)!important;
  color:var(--trb-wine)!important;
}
.booking-nav a{
  color:var(--trb-wine)!important;
  background:transparent!important;
  border:0!important;
  padding:8px 10px!important;
  font-size:10px;
  letter-spacing:.8px;
}
.booking-nav a:hover{
  background:var(--trb-cream)!important;
  color:var(--trb-wine-dark)!important;
}
.hero{
  padding:54px 8px 42px;
  text-align:center;
}
.eyebrow{
  color:var(--trb-champagne)!important;
  letter-spacing:3px;
}
.hero h1{
  margin:12px auto 14px;
  max-width:850px;
  color:var(--trb-wine)!important;
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:48px;
  font-weight:400;
  letter-spacing:-.5px;
}
.hero p{
  margin:0 auto;
  max-width:720px;
  color:var(--trb-muted)!important;
  line-height:1.75;
}
.preview-note{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-cream)!important;
  color:var(--trb-wine)!important;
  border-radius:2px!important;
}
.steps{gap:12px}
.step{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-white)!important;
  color:#958b87!important;
  border-radius:3px!important;
  box-shadow:0 2px 8px rgba(63,39,43,.035);
}
.step.current{
  border-color:var(--trb-champagne)!important;
  background:var(--trb-wine)!important;
  color:#fffdf9!important;
}
.step span{border-color:currentColor!important}
.section{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-white)!important;
  border-radius:3px!important;
  padding:30px!important;
  box-shadow:0 5px 22px rgba(62,39,42,.045);
}
.section h2{
  color:var(--trb-wine)!important;
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:29px;
  font-weight:400;
  letter-spacing:.1px;
}
.session-card{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-white)!important;
  border-radius:3px!important;
  box-shadow:0 3px 14px rgba(62,39,42,.035);
}
.session-card:hover{
  border-color:var(--trb-champagne)!important;
  transform:translateY(-1px);
}
.session input:checked + .session-card{
  border-color:var(--trb-wine)!important;
  box-shadow:0 0 0 2px rgba(99,36,59,.10)!important;
  background:var(--trb-cream)!important;
}
.session-card h3{color:var(--trb-wine)!important;font-family:Georgia,'Times New Roman',serif}
.session-card p{color:var(--trb-muted)!important}
.session-foot strong{color:var(--trb-wine)!important}
.card{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-white)!important;
  border-radius:3px!important;
  box-shadow:0 5px 20px rgba(62,39,42,.04);
}
.card-title{
  color:var(--trb-wine)!important;
  letter-spacing:2px;
  font-weight:700;
}
.calendar-head button{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-white)!important;
  color:var(--trb-wine)!important;
}
.calendar-head button:hover:not(:disabled){
  border-color:var(--trb-champagne)!important;
  background:var(--trb-cream)!important;
}
.calendar-head h3,.selected-date{
  color:var(--trb-wine)!important;
  font-weight:400;
}
.week b{color:var(--trb-muted)!important}
.calendar button{
  color:var(--trb-brown)!important;
  background:transparent!important;
}
.calendar button:hover:not(:disabled){
  border-color:var(--trb-champagne)!important;
  background:var(--trb-cream)!important;
}
.calendar button.selected{
  background:var(--trb-wine)!important;
  border-color:var(--trb-wine)!important;
  color:#fffdf9!important;
}
.calendar button.closed-special{
  color:#8b4c5f!important;
  background:#f0e0e5!important;
}
.legend{color:var(--trb-muted)!important}
.legend .available{background:var(--trb-champagne)!important}
.legend .off{background:#cec4bc!important}
.legend .special{background:var(--trb-wine)!important}
.times button{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-white)!important;
  color:var(--trb-brown)!important;
  border-radius:3px!important;
}
.times button:hover{border-color:var(--trb-champagne)!important;background:var(--trb-cream)!important}
.times button.selected{
  background:var(--trb-wine)!important;
  border-color:var(--trb-wine)!important;
  color:#fffdf9!important;
}
.empty-times{color:var(--trb-muted)!important}
.summary{border-top-color:var(--trb-border)!important}
.summary-row{color:var(--trb-muted)!important}
.summary-row strong{color:var(--trb-wine)!important}
.primary,.continue-payment{
  border:1px solid var(--trb-wine)!important;
  background:var(--trb-wine)!important;
  color:#fffdf9!important;
  border-radius:2px!important;
  letter-spacing:.7px;
  box-shadow:none!important;
}
.primary:hover:not(:disabled),.continue-payment:hover:not(:disabled){background:var(--trb-wine-dark)!important}
.info-grid label{color:var(--trb-wine)!important}
.info-grid input{
  border:1px solid var(--trb-border)!important;
  background:#fffdf9!important;
  color:var(--trb-brown)!important;
  border-radius:2px!important;
}
.info-grid input:focus{
  outline:none!important;
  border-color:var(--trb-champagne)!important;
  box-shadow:0 0 0 2px rgba(181,150,104,.12)!important;
}
.review-box{
  border:1px solid var(--trb-border)!important;
  background:var(--trb-cream)!important;
  border-radius:3px!important;
}
.review-box h3{color:var(--trb-wine)!important}
.review-row{border-bottom-color:var(--trb-border)!important;color:var(--trb-muted)!important}
.review-row strong{color:var(--trb-wine)!important}
.payment-text{color:var(--trb-muted)!important}
.disabled-pay{
  border-color:var(--trb-champagne)!important;
  background:var(--trb-cream)!important;
  color:var(--trb-wine)!important;
}
.hold-confirmation{
  border-color:var(--trb-champagne)!important;
  background:var(--trb-white)!important;
  color:var(--trb-brown)!important;
}
.hold-confirmation strong{color:var(--trb-wine)!important}
.hold-countdown-wrap{
  border-color:var(--trb-border)!important;
  background:var(--trb-cream)!important;
}
.hold-countdown-label{color:var(--trb-muted)!important}
.hold-countdown{color:var(--trb-wine)!important}
.hold-expired{border-color:var(--trb-wine)!important;background:#f0e0e5!important}
.hold-expired strong{color:var(--trb-wine)!important}
.return-calendar{
  border-color:var(--trb-wine)!important;
  background:var(--trb-white)!important;
  color:var(--trb-wine)!important;
  border-radius:2px!important;
}
@media(max-width:900px){
  .page{padding:20px 16px 50px}
  .hero{padding:40px 4px 30px}
  .hero h1{font-size:38px}
}
@media(max-width:560px){
  .hero{padding:32px 2px 25px}
  .hero h1{font-size:32px}
  .section{padding:20px!important}
}
