
/* Appointment page — compact medical booking UI */
.appointment-page{background:#f8f5ef;color:#111811}
.appointment-page-hero{background:#10150f;color:#fff;padding:30px 0 32px}
.appointment-page-hero__inner{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;min-height:88px}
.appointment-page-hero .breadcrumb{display:flex;gap:7px;align-items:center;margin-bottom:10px;font-size:10px;color:rgba(255,255,255,.55)}
.appointment-page-hero .breadcrumb a{color:rgba(255,255,255,.72)}
.appointment-page-hero h1{margin:0;font-size:clamp(21px,2vw,25px);line-height:1.55;font-weight:600;letter-spacing:-.02em}
.appointment-page-hero p{max-width:480px;margin:0;font-size:13px;line-height:2;color:rgba(255,255,255,.62);font-weight:400}
.appointment-booking-section{padding:42px 0 48px;background:linear-gradient(180deg,#fbf8f2 0%,#f4eee4 100%)}
.appointment-booking-section__inner{max-width:1160px}
.appointment-booking-head{margin:0 0 20px;max-width:720px}
.appointment-booking-head>span,.appointment-location-kicker{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:500;color:#8a7143}
.appointment-booking-head>span:after,.appointment-location-kicker:after{content:"";width:28px;height:1px;background:#c79948}
.appointment-booking-head h2,.appointment-location-copy h2{margin:7px 0 6px;font-size:clamp(19px,1.8vw,23px);line-height:1.7;font-weight:600;letter-spacing:-.015em}
.appointment-booking-head p,.appointment-location-copy p{margin:0;font-size:13px;line-height:2;color:#747970;font-weight:400}
.appointment-shortcode-shell{width:100%}
.appointment-plugin-missing{padding:20px;border:1px solid #e2dbcf;border-radius:12px;background:#fff;display:grid;gap:5px;font-size:13px}
.appointment-plugin-missing span{color:#777;font-size:12px}

/* Shortcode visual integration */
.appointment-page .spa-booking{max-width:none;margin:0;padding:0;--spa-bg:#f6f1e7;--spa-card:#fffdf8;--spa-ink:#111811;--spa-muted:#73776f;--spa-line:#e2dbcf;--spa-gold:#c79948;--spa-gold-soft:#efe1c7;--spa-radius:12px}
.appointment-page .spa-booking__header{display:none}
.appointment-page .spa-stepper{margin:0 0 12px;border-color:#ddd5c8}
.appointment-page .spa-stepper__item{font-size:10px;padding:9px 5px}
.appointment-page .spa-stepper__item b{width:22px;height:22px;font-size:9px}
.appointment-page .spa-booking__panel{border-radius:14px;padding:20px;min-height:340px;box-shadow:none;background:rgba(255,253,248,.94)}
.appointment-page .spa-step__head{margin-bottom:18px}
.appointment-page .spa-step__head>span{font-size:9px}
.appointment-page .spa-step__head h2{font-size:20px;line-height:1.75;font-weight:600;margin:4px 0}
.appointment-page .spa-step__head p{font-size:12px;line-height:1.9;margin:3px 0 0}
.appointment-page .spa-services{gap:8px}
.appointment-page .spa-service{border-radius:10px;padding:13px;min-height:82px;box-shadow:none}
.appointment-page .spa-service__dot{width:6px;height:6px;margin-bottom:9px}
.appointment-page .spa-service strong{font-size:13px;font-weight:600}
.appointment-page .spa-service small{font-size:10px;line-height:1.7;margin-top:4px}
.appointment-page .spa-calendar{max-width:660px}
.appointment-page .spa-calendar__toolbar{margin-bottom:10px}
.appointment-page .spa-calendar__toolbar strong{font-size:14px;font-weight:600}
.appointment-page .spa-calendar__toolbar button{width:34px;height:34px;border-radius:8px;font-size:19px}
.appointment-page .spa-calendar__week span{font-size:9px;padding:4px}
.appointment-page .spa-calendar__days{gap:4px}
.appointment-page .spa-day{border-radius:8px;min-height:51px;aspect-ratio:auto;padding:5px 2px}
.appointment-page .spa-day b{font-size:14px;font-weight:500}
.appointment-page .spa-day small{font-size:7.5px}
.appointment-page .spa-slots{gap:7px}
.appointment-page .spa-slot{border-radius:8px;padding:10px 7px;font-size:12px;min-height:42px}
.appointment-page .spa-fields{gap:12px}
.appointment-page .spa-fields label{gap:6px;font-size:11px}
.appointment-page .spa-fields input{min-height:44px}
.appointment-page .spa-fields input,.appointment-page .spa-fields textarea{border-radius:8px;padding:10px 12px;font-size:12px}
.appointment-page .spa-fields textarea{min-height:86px;resize:vertical}
.appointment-page .spa-summary dl{border-radius:10px}
.appointment-page .spa-summary dl div{padding:12px}
.appointment-page .spa-summary dt{font-size:9px}
.appointment-page .spa-summary dd{font-size:12px;font-weight:600}
.appointment-page .spa-consent{font-size:10.5px}
.appointment-page .spa-booking__actions{margin-top:18px}
.appointment-page .spa-btn{min-width:120px;border-radius:8px;padding:10px 16px;font-size:11px}
.appointment-page .spa-success h2{font-size:20px}

/* Neshan section */
.appointment-location-section{padding:42px 0 48px;background:#0e130e;color:#fff}
.appointment-location-grid{display:grid;grid-template-columns:minmax(260px,.34fr) minmax(0,.66fr);align-items:stretch;gap:28px}
.appointment-location-copy{display:flex;flex-direction:column;justify-content:center;padding:6px 0}
.appointment-location-copy h2{color:#fff;margin-top:8px}
.appointment-location-copy p{color:rgba(255,255,255,.62);font-size:12.5px}
.appointment-location-kicker{color:#d1aa64}
.appointment-location-meta{display:grid;gap:10px;margin-top:20px}
.appointment-location-meta>div{padding-top:9px;border-top:1px solid rgba(255,255,255,.09);display:grid;gap:3px}
.appointment-location-meta small{font-size:9px;color:rgba(255,255,255,.45)}
.appointment-location-meta strong,.appointment-location-meta a{font-size:12px;font-weight:500;color:#fff}
.appointment-neshan-wrap{position:relative;min-height:310px;border-radius:14px;overflow:hidden;background:#181d18;border:1px solid rgba(255,255,255,.08)}
.appointment-neshan-map{width:100%;height:100%;min-height:310px;direction:ltr}
.appointment-map-placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:7px;padding:30px;background:linear-gradient(135deg,#171c17,#101410);color:#fff}
.appointment-map-placeholder strong{font-size:16px;font-weight:600}.appointment-map-placeholder span{max-width:390px;font-size:11px;line-height:1.9;color:rgba(255,255,255,.55)}
.appointment-map-placeholder[hidden]{display:none}
.appointment-neshan-wrap .leaflet-control-attribution{font-size:8px!important}

@media(max-width:900px){
  .appointment-page-hero__inner{align-items:flex-start;display:grid;gap:8px}
  .appointment-page-hero p{max-width:620px}
  .appointment-location-grid{grid-template-columns:1fr;gap:18px}
  .appointment-location-copy{max-width:620px}
  .appointment-neshan-wrap,.appointment-neshan-map{min-height:280px}
}
@media(max-width:767px){
  .appointment-page-hero{padding:20px 0 22px}
  .appointment-page-hero__inner{min-height:auto;gap:5px}
  .appointment-page-hero .breadcrumb{margin-bottom:6px;font-size:9px}
  .appointment-page-hero h1{font-size:21px}
  .appointment-page-hero p{font-size:11.5px;line-height:1.9}
  .appointment-booking-section{padding:26px 0 30px}
  .appointment-booking-head{margin-bottom:14px}
  .appointment-booking-head h2,.appointment-location-copy h2{font-size:19px;margin-top:5px}
  .appointment-booking-head p,.appointment-location-copy p{font-size:11.5px;line-height:1.9}
  .appointment-page .spa-stepper{margin-bottom:8px}
  .appointment-page .spa-booking__panel{padding:13px 11px;border-radius:11px;min-height:320px}
  .appointment-page .spa-step__head{margin-bottom:13px}
  .appointment-page .spa-step__head h2{font-size:17px}
  .appointment-page .spa-services{grid-template-columns:1fr;gap:6px}
  .appointment-page .spa-service{min-height:auto;padding:11px}
  .appointment-page .spa-calendar__days{gap:3px}
  .appointment-page .spa-day{min-height:47px;border-radius:7px}
  .appointment-page .spa-day b{font-size:13px}
  .appointment-page .spa-slots{grid-template-columns:repeat(3,1fr)}
  .appointment-page .spa-fields{grid-template-columns:1fr;gap:9px}
  .appointment-page .spa-fields input{min-height:42px}
  .appointment-page .spa-fields textarea{min-height:74px}
  .appointment-page .spa-booking__actions{bottom:67px;margin-top:13px;padding:7px 0}
  .appointment-page .spa-mobile-summary{bottom:66px;right:10px;left:10px;border-radius:8px;font-size:9px}
  .appointment-location-section{padding:28px 0 86px}
  .appointment-location-meta{margin-top:14px}
  .appointment-neshan-wrap,.appointment-neshan-map{min-height:250px;border-radius:11px}
}
