/* =====================================================================
   SARGOS BOOKING PRO UI
   Dedicated stylesheet loaded only on booking.php. Mobile-first, premium,
   resilient selectors so the booking never falls back to browser defaults.
   ===================================================================== */
.booking-pro-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  min-height:clamp(250px,34vw,390px)!important;
  display:flex;
  align-items:center;
  padding:clamp(38px,6vw,74px) 0!important;
  background:
    linear-gradient(105deg,rgba(0,42,65,.84) 0%,rgba(0,91,123,.58) 48%,rgba(0,145,184,.26) 100%),
    url('/assets/img/pro/hero-boat.webp') center 54%/cover no-repeat!important;
  color:#fff;
}
.booking-pro-hero:before{display:none!important}
.booking-pro-hero .eyebrow{color:#f4c457!important;text-shadow:0 2px 8px rgba(0,0,0,.24)}
.booking-pro-hero h1{color:#fff!important;font-size:clamp(2.05rem,7vw,4.2rem)!important;max-width:850px!important;line-height:1.02!important;text-shadow:0 12px 36px rgba(0,30,48,.36)}
.booking-pro-hero p{color:#eafaff!important;max-width:680px!important;font-weight:700;text-shadow:0 6px 22px rgba(0,30,48,.28)}
.booking-page-pro{
  background:
    radial-gradient(circle at 12% 0%,rgba(244,196,87,.16),transparent 24rem),
    radial-gradient(circle at 92% 18%,rgba(0,151,194,.12),transparent 26rem),
    linear-gradient(180deg,#f3fbff 0%,#fff 62%,#f7fcff 100%)!important;
}
.booking-page-pro .booking-studio-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:clamp(18px,3vw,34px)!important;
  align-items:start!important;
}
.booking-page-pro .booking-studio,
.booking-page-pro .booking-summary-card{
  position:relative;
  background:rgba(255,255,255,.97)!important;
  border:1px solid rgba(2,47,73,.10)!important;
  border-radius:clamp(22px,4vw,34px)!important;
  box-shadow:0 26px 70px rgba(2,47,73,.12)!important;
  padding:clamp(18px,4vw,34px)!important;
  overflow:hidden;
}
.booking-page-pro .booking-studio:before,
.booking-page-pro .booking-summary-card:before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:5px;
  background:linear-gradient(90deg,#007fa8,#f4c457,#007fa8);
}
.booking-page-pro .booking-card-head span,
.booking-page-pro .summary-badge{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  width:auto!important;
  margin:0 0 10px!important;
  padding:8px 12px!important;
  border-radius:999px!important;
  border:1px solid rgba(218,160,42,.28)!important;
  background:linear-gradient(135deg,rgba(244,196,87,.18),rgba(0,127,168,.08))!important;
  color:#a87309!important;
  font-size:clamp(.68rem,2.3vw,.76rem)!important;
  font-weight:1000!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
}
.booking-page-pro .booking-card-head h2,
.booking-page-pro .booking-summary-card h2{
  margin:8px 0 8px!important;
  color:#00334f!important;
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:clamp(1.75rem,6vw,3rem)!important;
  line-height:1.04!important;
  letter-spacing:-.04em!important;
}
.booking-page-pro .booking-card-head p{
  margin:0 0 20px!important;
  color:#506c7d!important;
  font-size:clamp(.95rem,2.5vw,1.05rem)!important;
  line-height:1.55!important;
}
.booking-page-pro .booking-progress{
  counter-reset:bookingstep;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
  margin:22px 0 24px!important;
}
.booking-page-pro .booking-progress span{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-height:42px!important;
  padding:9px 8px!important;
  border-radius:999px!important;
  border:1px solid rgba(0,65,92,.11)!important;
  background:#eef9fd!important;
  color:#416577!important;
  font-size:clamp(.68rem,2.2vw,.78rem)!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
  white-space:nowrap!important;
}
.booking-page-pro .booking-progress span b{
  width:22px;height:22px;min-width:22px;
  border-radius:50%;
  display:grid;place-items:center;
  background:#d8edf5;
  color:#00334f;
  font-size:.72rem;
}
.booking-page-pro .booking-progress span.active{
  background:linear-gradient(135deg,#c98f1e,#f4c457)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 12px 28px rgba(218,160,42,.22)!important;
}
.booking-page-pro .booking-progress span.active b{background:rgba(255,255,255,.25);color:#fff}
.booking-page-pro .booking-block{
  margin:0 0 18px!important;
}
.booking-page-pro label,
.booking-page-pro .field-title{
  display:block!important;
  margin:0!important;
  color:#00334f!important;
  font-size:clamp(.9rem,2.5vw,.98rem)!important;
  font-weight:1000!important;
  line-height:1.25!important;
}
.booking-page-pro input:not([type="checkbox"]),
.booking-page-pro select,
.booking-page-pro textarea{
  appearance:none;
  width:100%!important;
  min-height:56px!important;
  margin:9px 0 0!important;
  padding:15px 16px!important;
  border:1px solid rgba(0,65,92,.16)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#fff,#f8fdff)!important;
  color:#0b3247!important;
  box-shadow:0 8px 22px rgba(2,47,73,.055)!important;
  font:800 clamp(.95rem,2.5vw,1.03rem)/1.2 system-ui,-apple-system,'Segoe UI',sans-serif!important;
  outline:none!important;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease!important;
}
.booking-page-pro select{
  background-image:linear-gradient(45deg,transparent 50%,#007fa8 50%),linear-gradient(135deg,#007fa8 50%,transparent 50%),linear-gradient(180deg,#fff,#f8fdff)!important;
  background-position:calc(100% - 21px) 52%,calc(100% - 15px) 52%,0 0!important;
  background-size:6px 6px,6px 6px,100% 100%!important;
  background-repeat:no-repeat!important;
  padding-right:42px!important;
}
.booking-page-pro input:focus,
.booking-page-pro select:focus,
.booking-page-pro textarea:focus{
  border-color:#008fc0!important;
  box-shadow:0 0 0 5px rgba(0,143,192,.14),0 12px 26px rgba(2,47,73,.08)!important;
}
.booking-page-pro .two-fields{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
}
.booking-page-pro .slot-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  margin-top:11px!important;
}
.booking-page-pro .slot-card{
  position:relative!important;
  display:grid!important;
  align-content:start!important;
  gap:5px!important;
  width:100%!important;
  min-height:112px!important;
  text-align:left!important;
  border:1px solid rgba(0,65,92,.13)!important;
  border-radius:20px!important;
  padding:16px 16px 15px!important;
  background:linear-gradient(180deg,#ffffff,#f5fbff)!important;
  box-shadow:0 14px 32px rgba(2,47,73,.075)!important;
  color:#00334f!important;
  cursor:pointer!important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease!important;
}
.booking-page-pro .slot-card strong{
  display:block!important;
  color:#00334f!important;
  font-size:clamp(.98rem,2.6vw,1.06rem)!important;
  font-weight:1000!important;
}
.booking-page-pro .slot-card span{
  display:inline-flex!important;
  width:max-content!important;
  margin:2px 0 4px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  background:rgba(0,127,168,.10)!important;
  color:#007fa8!important;
  font-weight:1000!important;
  font-size:.9rem!important;
}
.booking-page-pro .slot-card small{
  display:block!important;
  color:#5b7483!important;
  font-size:.84rem!important;
  line-height:1.38!important;
  font-weight:750!important;
}
.booking-page-pro .slot-card.available:hover,
.booking-page-pro .slot-card.selected{
  transform:translateY(-2px)!important;
  border-color:#d99a24!important;
  box-shadow:0 20px 42px rgba(218,160,42,.18)!important;
}
.booking-page-pro .slot-card.selected:after{
  content:'✓';
  position:absolute!important;
  top:13px;right:13px;
  width:30px;height:30px;
  border-radius:50%;
  display:grid;place-items:center;
  background:linear-gradient(135deg,#c98f1e,#f4c457)!important;
  color:#fff!important;
  font-weight:1000!important;
}
.booking-page-pro .slot-card:disabled,
.booking-page-pro .slot-card.unavailable{
  opacity:.58!important;
  filter:grayscale(.1)!important;
  cursor:not-allowed!important;
  background:#f4f7f9!important;
}
.booking-page-pro .availability-message{
  margin:12px 0 0!important;
  padding:11px 13px!important;
  border-radius:14px!important;
  background:#eef9fd!important;
  color:#496b7a!important;
  font-weight:900!important;
  font-size:.92rem!important;
}
.booking-page-pro .availability-message.ok{background:#ecfdf5!important;color:#067246!important}
.booking-page-pro .availability-message.bad{background:#fff1f2!important;color:#9f1239!important}
.booking-page-pro .availability-message.checking{background:#eff6ff!important;color:#0b6f91!important}
.booking-page-pro .booking-consent{
  display:flex!important;
  align-items:flex-start!important;
  gap:10px!important;
  margin:10px 0 18px!important;
  padding:13px 14px!important;
  border:1px solid rgba(0,65,92,.10)!important;
  border-radius:16px!important;
  background:#f7fcff!important;
  color:#4c6777!important;
  font-weight:850!important;
  line-height:1.42!important;
}
.booking-page-pro .booking-consent input{width:18px;height:18px;margin-top:2px;accent-color:#d99a24;flex:0 0 auto}
.booking-page-pro .booking-submit-btn{
  width:100%!important;
  min-height:58px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  border-radius:17px!important;
  border:0!important;
  background:linear-gradient(135deg,#c98f1e,#f4c457)!important;
  color:#fff!important;
  box-shadow:0 18px 38px rgba(218,160,42,.26)!important;
  font-size:clamp(.95rem,2.8vw,1.05rem)!important;
  font-weight:1000!important;
  letter-spacing:.02em!important;
  text-transform:uppercase!important;
}
.booking-page-pro .booking-submit-btn:hover{filter:saturate(1.03) brightness(1.02);transform:translateY(-1px)}
.booking-page-pro .booking-feedback{
  margin:16px 0!important;
  border-radius:18px!important;
  padding:15px 16px!important;
  font-weight:900!important;
  line-height:1.5!important;
}
.booking-page-pro .booking-feedback.error{background:#fff1f2!important;color:#9f1239!important;border:1px solid rgba(190,18,60,.20)!important}
.booking-page-pro .booking-feedback.success{background:#ecfdf5!important;color:#065f46!important;border:1px solid rgba(5,150,105,.22)!important}
.booking-page-pro .booking-summary-card{
  background:linear-gradient(180deg,#ffffff 0%,#f5fcff 100%)!important;
}
.booking-page-pro .booking-benefits{
  list-style:none!important;
  margin:18px 0!important;
  padding:0!important;
}
.booking-page-pro .booking-benefits li{
  position:relative!important;
  margin:0!important;
  padding:12px 0 12px 34px!important;
  border-bottom:1px solid rgba(0,65,92,.09)!important;
  color:#4b6878!important;
  font-weight:850!important;
  line-height:1.42!important;
}
.booking-page-pro .booking-benefits li:last-child{border-bottom:0!important}
.booking-page-pro .booking-benefits li:before{
  content:'✓';
  position:absolute;left:0;top:10px;
  width:24px;height:24px;
  border-radius:50%;
  display:grid;place-items:center;
  background:rgba(218,160,42,.16);
  color:#a87309;
  font-weight:1000;
}
.booking-page-pro .live-summary{
  margin:18px 0!important;
  padding:17px!important;
  border:1px solid rgba(0,65,92,.10)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:0 12px 30px rgba(2,47,73,.07)!important;
}
.booking-page-pro .live-summary strong{display:block!important;margin-bottom:7px!important;color:#00334f!important;font-size:1rem!important}
.booking-page-pro .live-summary span{display:block!important;color:#5d7483!important;font-weight:850!important;line-height:1.45!important}
.booking-page-pro .full-width{width:100%!important;justify-content:center!important}
.booking-page-pro .honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;height:0!important;overflow:hidden!important}
@media (min-width:640px){
  .booking-page-pro .two-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .booking-page-pro .slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .booking-page-pro .booking-progress{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media (min-width:1040px){
  .booking-page-pro .booking-studio-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,.82fr)!important;gap:32px!important}
  .booking-page-pro .slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .booking-page-pro .slot-card{min-height:154px!important}
  .booking-page-pro .booking-summary-card{position:sticky!important;top:126px!important}
}
@media (max-width:520px){
  .booking-page-pro{padding-top:34px!important}
  .booking-page-pro .booking-studio,
  .booking-page-pro .booking-summary-card{border-radius:22px!important;padding:16px!important}
  .booking-page-pro .booking-progress span{justify-content:flex-start!important;padding-left:10px!important;white-space:normal!important;text-align:left!important}
  .booking-page-pro .slot-card{min-height:auto!important}
}

.booking-guarantee-note{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(14px,2.4vw,22px);
  align-items:center;
  padding:clamp(16px,2.2vw,22px);
  margin:18px 0 20px;
  border:1px solid rgba(224,166,43,.34);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,248,229,.92));
  box-shadow:0 18px 48px rgba(1,57,85,.08);
}
.booking-guarantee-note > div{
  min-width:112px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:14px 18px;
  border-radius:20px;
  background:linear-gradient(145deg,#e0a62b,#f7c95b);
  color:#05324d;
  box-shadow:0 12px 26px rgba(224,166,43,.25);
}
.booking-guarantee-note span{
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.booking-guarantee-note strong{
  font-family:var(--font-display, Georgia, serif);
  font-size:clamp(2rem,5vw,3.15rem);
  line-height:1;
}
.booking-guarantee-note p{
  margin:0;
  color:#335b70;
  font-size:clamp(.94rem,1.6vw,1.03rem);
  line-height:1.65;
}
@media (max-width:640px){
  .booking-guarantee-note{grid-template-columns:1fr;text-align:center;border-radius:20px;}
  .booking-guarantee-note > div{width:100%;}
}

.booking-page-pro .slot-card .slot-price{
  display:inline-flex!important;
  width:max-content!important;
  margin-top:4px!important;
  padding:6px 10px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,rgba(217,154,36,.16),rgba(244,196,87,.26))!important;
  color:#9a6507!important;
  font-style:normal!important;
  font-weight:1000!important;
  font-size:.86rem!important;
}
.booking-page-pro .slot-card .slot-badge{
  display:inline-flex!important;
  width:max-content!important;
  margin-top:3px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  background:#00334f!important;
  color:#fff!important;
  font-size:.72rem!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
.booking-page-pro .slot-card .slot-badge[hidden]{display:none!important}
.booking-page-pro .summary-price-lines{display:grid;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,65,92,.1)}
.booking-page-pro .summary-price-lines span{display:flex!important;justify-content:space-between!important;gap:14px!important;color:#0b344d!important;font-weight:900!important}
.booking-page-pro .summary-price-lines b{color:#607687!important}

/* Discount code UI */
.booking-page-pro .coupon-block{padding:18px;border:1px solid rgba(0,127,168,.18);border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(239,250,255,.95));box-shadow:0 14px 34px rgba(1,57,85,.06)}
.booking-page-pro .coupon-field-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:8px}.booking-page-pro .coupon-field-row input{text-transform:uppercase;letter-spacing:.04em;font-weight:900}.booking-page-pro .coupon-apply-btn{border:0;border-radius:14px;padding:0 18px;background:#00334f;color:#fff;font-weight:1000;cursor:pointer;box-shadow:0 10px 22px rgba(0,51,79,.16)}.booking-page-pro .coupon-apply-btn:hover{background:#005f86}.booking-page-pro .coupon-message{display:block;margin-top:8px;color:#607687;font-size:.88rem;font-weight:800}.booking-page-pro .coupon-message.ok{color:#08783a}.booking-page-pro .coupon-message.bad{color:#b42318}.booking-page-pro .summary-price-lines .discount-line{color:#08783a!important}.booking-page-pro .summary-price-lines .original-line del{color:#8aa1af}.booking-page-pro .slot-price del{opacity:.72;margin-right:5px;color:#7c8b96}@media(max-width:520px){.booking-page-pro .coupon-field-row{grid-template-columns:1fr}.booking-page-pro .coupon-apply-btn{min-height:46px}}
