
/* FSM Booking System v1.6.0 — simplified premium multi-step UI */
.fsm-booking-system{
  --fsm-bg:#0a0806;
  --fsm-panel:#17110c;
  --fsm-panel2:#21170e;
  --fsm-line:rgba(226,173,24,.20);
  --fsm-line-strong:rgba(255,224,138,.62);
  --fsm-gold:#e2ad18;
  --fsm-gold2:#ffe08a;
  --fsm-text:#fff8ea;
  --fsm-muted:#cdbd9c;
  width:min(100%,1180px);
  margin:0 auto;
  color:var(--fsm-text);
  font-size:15px;
  line-height:1.45;
}
.fsm-booking-system *,
.fsm-booking-system *::before,
.fsm-booking-system *::after{box-sizing:border-box}
.fsm-booking-system a{color:var(--fsm-gold2);text-decoration:none}
.fsm-booking-system a:hover{text-decoration:underline}
.fsmx-alert{
  display:grid;gap:3px;margin:0 0 16px;padding:14px 16px;border:1px solid var(--fsm-line);
  border-radius:16px;background:rgba(226,173,24,.08)
}
.fsmx-alert.error{border-color:rgba(255,90,90,.35);background:rgba(120,20,20,.15)}

.fsmx-shell{display:grid;grid-template-columns:310px minmax(0,1fr);gap:20px;align-items:start}
.fsmx-summary{position:sticky;top:24px;align-self:start}
.admin-bar .fsmx-summary{top:58px}
.fsmx-summary-inner{
  display:grid;gap:15px;padding:20px;border:1px solid var(--fsm-line);border-radius:24px;
  background:radial-gradient(circle at 10% 0%,rgba(226,173,24,.15),transparent 38%),linear-gradient(180deg,#1c150f,#0d0a08);
  box-shadow:0 18px 42px rgba(0,0,0,.28)
}
.fsmx-kicker{
  display:inline-flex;width:max-content;padding:7px 11px;border-radius:999px;
  color:var(--fsm-gold2);background:rgba(226,173,24,.11);border:1px solid rgba(226,173,24,.24);
  font-size:.65rem;font-weight:950;letter-spacing:.09em;text-transform:uppercase
}
.fsmx-summary h2{margin:0;font-family:"Playfair Display",Georgia,serif;font-size:2.1rem;line-height:.98;letter-spacing:-.045em}
.fsmx-summary-intro{margin:0;color:var(--fsm-muted);font-size:.88rem}
.fsmx-progress-meter{height:5px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
.fsmx-progress-meter span{display:block;width:20%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f7e69d,#d79f08);transition:width .25s ease}
.fsmx-step-nav{display:grid;gap:6px}
.fsmx-step-nav button{
  display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center;width:100%;min-height:38px;padding:6px 8px;
  border:1px solid rgba(226,173,24,.12);border-radius:13px;background:rgba(255,255,255,.025);color:var(--fsm-muted);
  text-align:left;cursor:pointer
}
.fsmx-step-nav button i{
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-style:normal;font-size:.74rem;font-weight:950;
  background:rgba(226,173,24,.08);border:1px solid rgba(226,173,24,.18);color:var(--fsm-gold2)
}
.fsmx-step-nav button span{font-size:.82rem;font-weight:850}
.fsmx-step-nav button.active,.fsmx-step-nav button.completed{
  color:var(--fsm-text);border-color:rgba(255,224,138,.38);background:rgba(226,173,24,.08)
}
.fsmx-step-nav button.completed i{background:linear-gradient(135deg,#f7e69d,#d79f08);color:#171006}
.fsmx-live-summary{
  display:grid;gap:0;border:1px solid rgba(226,173,24,.15);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.025)
}
.fsmx-live-summary>div{display:grid;gap:3px;padding:10px 12px;border-top:1px solid rgba(226,173,24,.09)}
.fsmx-live-summary>div:first-child{border-top:0}
.fsmx-live-summary small{color:var(--fsm-muted);font-size:.68rem;font-weight:800}
.fsmx-live-summary strong{font-size:.9rem;line-height:1.2}
.fsmx-live-summary em{color:var(--fsm-muted);font-size:.72rem;font-style:normal}
.fsmx-help{display:grid;gap:4px;padding:12px;border-radius:15px;background:rgba(226,173,24,.05);border:1px solid rgba(226,173,24,.12)}
.fsmx-help strong{font-size:.82rem}
.fsmx-help span{color:var(--fsm-muted);font-size:.78rem}

.fsmx-booking-stage{min-width:0}
.fsmx-step{
  display:grid;gap:18px;padding:24px;border:1px solid var(--fsm-line);border-radius:24px;
  background:radial-gradient(circle at 8% 0%,rgba(226,173,24,.11),transparent 34%),linear-gradient(180deg,#1b140e,#0d0a08);
  box-shadow:0 18px 42px rgba(0,0,0,.24)
}
.fsmx-step[hidden]{display:none!important}
.fsmx-step-head{display:grid;gap:7px}
.fsmx-step-head>span{
  display:inline-flex;width:max-content;padding:6px 10px;border-radius:999px;color:var(--fsm-gold2);
  border:1px solid rgba(226,173,24,.22);background:rgba(226,173,24,.09);
  font-size:.65rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase
}
.fsmx-step-head h3{margin:0;font-family:"Playfair Display",Georgia,serif;font-size:clamp(2rem,3vw,2.8rem);line-height:1;letter-spacing:-.04em}
.fsmx-step-head p{margin:0;color:var(--fsm-muted);font-size:.94rem}

.fsmx-choice-grid{display:grid;gap:12px}
.fsmx-clinic-grid,.fsmx-payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.fsmx-treatment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.fsmx-choice{display:block;position:relative;min-width:0;margin:0!important;cursor:pointer}
.fsmx-choice input{position:absolute!important;opacity:0!important;pointer-events:none!important}
.fsmx-choice-card{
  display:flex;flex-direction:column;gap:7px;height:100%;min-height:150px;padding:16px;border-radius:18px;
  border:1px solid rgba(226,173,24,.18);background:linear-gradient(180deg,rgba(255,255,255,.042),rgba(255,255,255,.016));
  transition:.18s ease
}
.fsmx-treatment-grid .fsmx-choice-card{min-height:180px}
.fsmx-choice:hover .fsmx-choice-card{transform:translateY(-2px);border-color:rgba(255,224,138,.42)}
.fsmx-choice input:checked + .fsmx-choice-card{
  border-color:var(--fsm-line-strong);
  background:radial-gradient(circle at 20% 0%,rgba(226,173,24,.18),transparent 44%),linear-gradient(180deg,rgba(226,173,24,.08),rgba(255,255,255,.02));
  box-shadow:inset 0 0 0 1px rgba(255,224,138,.08),0 12px 24px rgba(0,0,0,.18)
}
.fsmx-choice-card small{color:var(--fsm-gold2);font-size:.62rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.fsmx-choice-card strong{font-size:1.04rem;line-height:1.12}
.fsmx-choice-card em{color:var(--fsm-muted);font-size:.82rem;line-height:1.38;font-style:normal}
.fsmx-choice-card b{margin-top:auto;color:var(--fsm-gold2);font-size:1.1rem}
.fsmx-select-state{
  display:inline-flex;width:max-content;margin-top:auto;padding:5px 9px;border-radius:999px;background:rgba(226,173,24,.08);
  color:var(--fsm-muted);font-size:.66rem;font-style:normal;font-weight:900
}
.fsmx-choice input:checked + .fsmx-choice-card .fsmx-select-state{background:linear-gradient(135deg,#f7e69d,#d79f08);color:#171006}
.fsmx-choice input:checked + .fsmx-choice-card .fsmx-select-state::before{content:"✓ ";font-weight:950}

.fsmx-date-row{display:grid;grid-template-columns:minmax(220px,320px);gap:12px}
.fsmx-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.fsmx-field{display:grid;gap:7px}
.fsmx-field-wide{grid-column:1/-1}
.fsmx-field-label{display:flex;align-items:baseline;gap:8px;font-size:.86rem;font-weight:850}
.fsmx-field-label em{color:var(--fsm-gold2);font-size:.62rem;font-style:normal;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.fsm-booking-system input,
.fsm-booking-system select,
.fsm-booking-system textarea{
  width:100%;min-height:48px;padding:10px 13px;border-radius:14px;background:rgba(255,255,255,.04);
  border:1px solid rgba(226,173,24,.20);color:var(--fsm-text);font:inherit;outline:none
}
.fsm-booking-system textarea{min-height:105px;resize:vertical}
.fsm-booking-system input:focus,
.fsm-booking-system select:focus,
.fsm-booking-system textarea:focus{border-color:var(--fsm-gold2);box-shadow:0 0 0 3px rgba(226,173,24,.12)}
.fsmx-times{min-height:106px;padding:15px;border-radius:18px;border:1px solid rgba(226,173,24,.15);background:rgba(226,173,24,.04)}
.fsmx-times h4{margin:0 0 7px;font-size:1rem}
.fsmx-times p{margin:0;color:var(--fsm-muted);font-size:.86rem}
.fsm-time-chip-grid{display:flex;flex-wrap:wrap;gap:8px}
.fsm-time-chip{
  min-width:90px;min-height:46px;padding:9px 12px;border-radius:14px;border:1px solid rgba(226,173,24,.20);
  background:rgba(255,255,255,.04);color:var(--fsm-text);cursor:pointer;text-align:left
}
.fsm-time-chip.active,.fsm-time-chip:hover{background:linear-gradient(135deg,#f7e69d,#d79f08);color:#171006}
.fsm-time-chip strong{display:block;font-size:.92rem}.fsm-time-chip small{display:block;margin-top:3px;font-size:.68rem}
.fsmx-member-box{
  display:grid;gap:7px;padding:14px;border-radius:16px;border:1px solid rgba(226,173,24,.15);background:rgba(226,173,24,.04)
}
.fsmx-member-box>div{display:flex;align-items:baseline;gap:8px}
.fsmx-member-box>div strong{font-size:.88rem}
.fsmx-member-box>div span{color:var(--fsm-gold2);font-size:.62rem;font-weight:950;text-transform:uppercase}
.fsmx-member-box p{margin:0;color:var(--fsm-muted);font-size:.8rem}
.fsmx-policy-note{display:grid;gap:4px;padding:13px;border-radius:16px;border:1px solid rgba(226,173,24,.14);background:rgba(226,173,24,.04)}
.fsmx-policy-note strong{font-size:.84rem}.fsmx-policy-note span{color:var(--fsm-muted);font-size:.8rem}
.fsmx-consent{display:flex;align-items:flex-start;gap:9px;padding:13px;border-radius:16px;border:1px solid rgba(226,173,24,.13)}
.fsmx-consent input{width:18px!important;height:18px!important;min-height:18px!important;flex:0 0 18px;padding:0!important;margin-top:2px}
.fsmx-consent label{margin:0!important;font-size:.82rem!important;line-height:1.4!important;color:var(--fsm-text)!important}
.fsmx-step-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:2px}
.fsmx-back,.fsmx-next,.fsmx-submit{
  min-height:46px;padding:10px 19px;border-radius:999px;font-weight:950;font-size:.82rem;cursor:pointer
}
.fsmx-back{border:1px solid rgba(226,173,24,.22);background:rgba(255,255,255,.03);color:var(--fsm-text)}
.fsmx-next,.fsmx-submit{border:0;background:linear-gradient(135deg,#f7e69d,#e2ad18,#be8a08);color:#171006;box-shadow:0 10px 22px rgba(190,138,8,.18)}
.fsmx-back:hover,.fsmx-next:hover,.fsmx-submit:hover{transform:translateY(-1px)}
.fsm-form-error{
  margin:0 0 12px;padding:11px 13px;border-radius:13px;background:rgba(160,38,38,.18);
  border:1px solid rgba(255,90,90,.34);color:#ffe2d8;font-size:.84rem;font-weight:850
}
.fsm-field-warning{border-color:rgba(255,90,90,.72)!important;box-shadow:0 0 0 3px rgba(255,90,90,.13)!important}

/* Stop theme / WooCommerce required-optional decorations from leaking into booking */
.fsm-booking-system .optional,
.fsm-booking-system .required,
.fsm-booking-system abbr.required,
.fsm-booking-system span.optional,
.fsm-booking-system span.required,
.fsm-booking-system label::before,
.fsm-booking-system label::after{content:none!important;display:none!important}

.fsm-elementor-booking-placeholder{
  display:grid;gap:5px;padding:18px;border:1px dashed rgba(226,173,24,.45);border-radius:16px;
  background:#17110c;color:#fff8ea
}
.fsm-elementor-booking-placeholder span{color:#cdbd9c;font-size:.88rem}

@media(max-width:1050px){
  .fsmx-shell{grid-template-columns:275px minmax(0,1fr);gap:16px}
  .fsmx-treatment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .fsmx-shell{grid-template-columns:1fr}
  .fsmx-summary{position:relative;top:auto}
  .fsmx-summary-inner{padding:18px}
  .fsmx-summary h2{font-size:1.8rem}
  .fsmx-step-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
  .fsmx-step-nav button{display:grid;grid-template-columns:1fr;place-items:center;padding:7px 4px;text-align:center}
  .fsmx-step-nav button span{font-size:.64rem}
  .fsmx-live-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fsmx-live-summary>div{border-top:0;border-left:1px solid rgba(226,173,24,.09)}
  .fsmx-live-summary>div:nth-child(odd){border-left:0}
}
@media(max-width:620px){
  .fsm-booking-system{font-size:14px}
  .fsmx-step{padding:18px;border-radius:20px}
  .fsmx-step-head h3{font-size:2rem}
  .fsmx-clinic-grid,.fsmx-payment-grid,.fsmx-treatment-grid,.fsmx-fields,.fsmx-date-row{grid-template-columns:1fr}
  .fsmx-field-wide{grid-column:auto}
  .fsmx-choice-card,.fsmx-treatment-grid .fsmx-choice-card{min-height:auto}
  .fsmx-live-summary{grid-template-columns:1fr}
  .fsmx-live-summary>div{border-left:0;border-top:1px solid rgba(226,173,24,.09)}
  .fsmx-step-nav{grid-template-columns:1fr}
  .fsmx-step-nav button{grid-template-columns:28px 1fr;place-items:initial;text-align:left}
  .fsmx-step-nav button span{font-size:.78rem}
}
