/* HerRide UI MASTER SAFE LOCK — visual only, no flow/logic changes */
:root{--hr-ui-deep:#3b182d;--hr-ui-mid:#6f254f;--hr-ui-pink:#d94f93;--hr-ui-soft:#fff4f9;--hr-ui-line:#ead1df}

/* Keep every service chat visible and structurally untouched; only normalize sizing. */
.academy-page .chat-stage,
.airport-page:not(.daily-page) .chat-stage,
.orders-page .chat-stage,
.longtrip-page .chat-stage{align-items:stretch!important;gap:22px!important}
.academy-page .reem-stage,
.airport-page:not(.daily-page) .reem-stage,
.orders-page .reem-stage,
.longtrip-page .reem-stage,
.academy-page .chat-shell,
.airport-page:not(.daily-page) .chat-shell,
.orders-page .chat-shell,
.longtrip-page .chat-shell{min-height:650px!important;height:auto!important}
.academy-page .reem-stage>img,
.airport-page:not(.daily-page) .reem-stage>img,
.orders-page .reem-stage>img,
.longtrip-page .reem-stage>img{width:100%!important;height:100%!important;min-height:650px!important;object-fit:contain!important;object-position:center bottom!important}

/* The small feature badges under hero: same dark family everywhere. */
.academy-page .airport-mini-features span,
.airport-page:not(.daily-page) .airport-mini-features span,
.orders-page .airport-mini-features span,
.longtrip-page .airport-mini-features span{
  background:linear-gradient(145deg,var(--hr-ui-deep),var(--hr-ui-mid))!important;
  color:#fff!important;border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 10px 24px rgba(74,24,54,.20)!important
}
.academy-page .airport-mini-features span *,
.airport-page:not(.daily-page) .airport-mini-features span *,
.orders-page .airport-mini-features span *,
.longtrip-page .airport-mini-features span *{color:#fff!important}

/* Mobile-first answer controls: use available width, no dead blank column. */
.academy-page #answerArea,
.airport-page:not(.daily-page) #answerArea,
.orders-page #answerArea,
.longtrip-page #answerArea{width:100%!important;box-sizing:border-box!important;display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:stretch!important}
.academy-page #answerArea>.choice,
.airport-page:not(.daily-page) #answerArea>.choice,
.orders-page #answerArea>.choice,
.longtrip-page #answerArea>.choice{flex:1 1 calc(50% - 8px)!important;min-width:min(210px,46%)!important;text-align:center!important}
.academy-page #answerArea>.primary-btn,
.academy-page #answerArea>.location-btn,
.academy-page #answerArea>.back-step-btn,
.airport-page:not(.daily-page) #answerArea>.primary-btn,
.airport-page:not(.daily-page) #answerArea>.location-btn,
.airport-page:not(.daily-page) #answerArea>.back-step-btn,
.orders-page #answerArea>.primary-btn,
.orders-page #answerArea>.location-btn,
.orders-page #answerArea>.back-step-btn,
.longtrip-page #answerArea>.primary-btn,
.longtrip-page #answerArea>.location-btn,
.longtrip-page #answerArea>.back-step-btn{width:100%!important;max-width:none!important;flex:1 0 100%!important;box-sizing:border-box!important}
.academy-page #answerArea>.inline-card,
.academy-page #answerArea>.airport-terms-card,
.academy-page #answerArea>.hr-price-summary,
.airport-page:not(.daily-page) #answerArea>.inline-card,
.airport-page:not(.daily-page) #answerArea>.airport-terms-card,
.airport-page:not(.daily-page) #answerArea>.hr-price-summary,
.orders-page #answerArea>.inline-card,
.orders-page #answerArea>.airport-terms-card,
.orders-page #answerArea>.hr-price-summary,
.longtrip-page #answerArea>.inline-card,
.longtrip-page #answerArea>.airport-terms-card,
.longtrip-page #answerArea>.hr-price-summary{width:100%!important;max-width:none!important;box-sizing:border-box!important;flex:1 0 100%!important}

/* Final consent/checkmark: same clear Zina visual language, visual only. */
.academy-page .hr-master-consent,
.airport-page:not(.daily-page) .hr-master-consent,
.orders-page .hr-master-consent,
.longtrip-page .hr-master-consent{
  display:grid!important;grid-template-columns:32px 1fr!important;align-items:center!important;gap:11px!important;
  width:100%!important;box-sizing:border-box!important;padding:13px!important;border:1px solid #e8c8d9!important;
  border-radius:15px!important;background:#fff!important;cursor:pointer!important
}
.academy-page .hr-master-consent>input[type="checkbox"],
.airport-page:not(.daily-page) .hr-master-consent>input[type="checkbox"],
.orders-page .hr-master-consent>input[type="checkbox"],
.longtrip-page .hr-master-consent>input[type="checkbox"]{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important}
.academy-page .hr-master-check,
.airport-page:not(.daily-page) .hr-master-check,
.orders-page .hr-master-check,
.longtrip-page .hr-master-check{width:30px!important;height:30px!important;min-width:30px!important;display:grid!important;place-items:center!important;border-radius:9px!important;border:2px solid var(--hr-ui-pink)!important;background:#fff!important;color:transparent!important;font-size:21px!important;font-weight:1000!important;line-height:1!important}
.academy-page .hr-master-consent>input:checked+.hr-master-check,
.airport-page:not(.daily-page) .hr-master-consent>input:checked+.hr-master-check,
.orders-page .hr-master-consent>input:checked+.hr-master-check,
.longtrip-page .hr-master-consent>input:checked+.hr-master-check{background:linear-gradient(145deg,#f05aa0,#c9337d)!important;border-color:#c9337d!important;color:#fff!important;box-shadow:0 0 0 5px rgba(217,79,147,.14)!important}

/* Academy course cards: requested dark premium treatment. */
.academy-page .program-card,
.academy-page .program-card.featured{
  background:linear-gradient(155deg,#351827,#652444)!important;
  border:1px solid rgba(255,255,255,.15)!important;
  color:#fff!important;box-shadow:0 18px 38px rgba(65,20,46,.23)!important
}
.academy-page .program-card.featured{background:linear-gradient(155deg,#45172f,#842653)!important;border-color:rgba(255,143,197,.58)!important}
.academy-page .program-card h3,.academy-page .program-card b,.academy-page .program-card strong{color:#fff!important}
.academy-page .program-card p,.academy-page .program-card ul,.academy-page .program-card li,.academy-page .program-card .program-price span{color:#f4dce8!important}
.academy-page .program-card .program-top span{color:#ff9acb!important}
.academy-page .program-card .learn-program{background:linear-gradient(135deg,#d94f93,#b72d70)!important;color:#fff!important;border-color:transparent!important}

/* Phone numbers are always left-to-right in visual UI fields. */
input[type="tel"],.phone-ltr,[data-phone],.phone-value{direction:ltr!important;unicode-bidi:isolate!important;text-align:left!important}

@media(max-width:1100px){
 .academy-page .reem-stage,.airport-page:not(.daily-page) .reem-stage,.orders-page .reem-stage,.longtrip-page .reem-stage,
 .academy-page .chat-shell,.airport-page:not(.daily-page) .chat-shell,.orders-page .chat-shell,.longtrip-page .chat-shell{min-height:0!important}
 .academy-page .reem-stage>img,.airport-page:not(.daily-page) .reem-stage>img,.orders-page .reem-stage>img,.longtrip-page .reem-stage>img{min-height:0!important;height:440px!important}
}
@media(max-width:680px){
 .academy-page #answerArea,.airport-page:not(.daily-page) #answerArea,.orders-page #answerArea,.longtrip-page #answerArea{padding:10px!important;gap:7px!important}
 .academy-page #answerArea>.choice,.airport-page:not(.daily-page) #answerArea>.choice,.orders-page #answerArea>.choice,.longtrip-page #answerArea>.choice{min-width:0!important;flex:1 1 calc(50% - 7px)!important;padding:10px 7px!important;min-height:48px!important;font-size:.86rem!important}
 .academy-page .chat-tools,.airport-page:not(.daily-page) .chat-tools,.orders-page .chat-tools,.longtrip-page .chat-tools{gap:6px!important;padding:8px!important;flex-wrap:wrap!important}
 .academy-page .tool-btn,.airport-page:not(.daily-page) .tool-btn,.orders-page .tool-btn,.longtrip-page .tool-btn{flex:1 1 calc(50% - 6px)!important;min-width:0!important;padding:9px 6px!important;font-size:.82rem!important}
 .academy-page .reem-stage>img,.airport-page:not(.daily-page) .reem-stage>img,.orders-page .reem-stage>img,.longtrip-page .reem-stage>img{height:380px!important}
 .academy-page .program-grid{gap:12px!important}
 .academy-page .program-card{padding:18px!important}
}

/* ===== HerRide VISUAL LOCK v2 — dark premium + character fit =====
   Visual-only. No pricing, routing, chat state, language, or booking logic. */
:root{
  --hr-lock-deep:#1b0a14;
  --hr-lock-deep2:#351326;
  --hr-lock-burg:#5f1d43;
  --hr-lock-burg2:#7a2451;
  --hr-lock-pink:#de3f8c;
  --hr-lock-text:#fff7fb;
  --hr-lock-muted:#f1d9e6;
}

/* Darker premium family for service chat areas without touching the home page. */
body.academy-page .chat-section,
body.airport-page:not(.daily-page) .chat-section,
body.orders-page .chat-section,
body.longtrip-page .chat-section{
  background:
    radial-gradient(circle at 12% 8%,rgba(222,63,140,.18),transparent 30%),
    radial-gradient(circle at 90% 74%,rgba(122,36,81,.20),transparent 30%),
    linear-gradient(160deg,#f3d7e5 0%,#ead0df 45%,#e1c3d4 100%)!important;
}
body.academy-page .chat-stage,
body.airport-page:not(.daily-page) .chat-stage,
body.orders-page .chat-stage,
body.longtrip-page .chat-stage{
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.38fr)!important;
  align-items:stretch!important;
  background:rgba(255,245,251,.56)!important;
  border:1px solid rgba(108,31,72,.18)!important;
  box-shadow:0 28px 75px rgba(62,18,45,.18)!important;
}

/* Character card: full framed background, aligned to top, no low-hanging portrait. */
body.academy-page .reem-stage,
body.airport-page:not(.daily-page) .reem-stage,
body.orders-page .reem-stage,
body.longtrip-page .reem-stage{
  position:relative!important;
  align-self:stretch!important;
  height:auto!important;
  min-height:620px!important;
  overflow:hidden!important;
  border-radius:28px!important;
  background:
    radial-gradient(circle at 50% 26%,rgba(232,50,142,.34),transparent 34%),
    linear-gradient(165deg,var(--hr-lock-deep2),var(--hr-lock-deep))!important;
  border:1px solid rgba(255,113,186,.22)!important;
}
body.academy-page .reem-stage>img,
body.airport-page:not(.daily-page) .reem-stage>img,
body.orders-page .reem-stage>img,
body.longtrip-page .reem-stage>img,
body.airport-page:not(.daily-page) .reem-stage #nourAvatar,
body.orders-page .reem-stage #nourAvatar,
body.longtrip-page .reem-stage #nourAvatar{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center 18%!important;
  padding:0!important;
  margin:0!important;
  border-radius:0!important;
  filter:none!important;
}
body.academy-page .reem-status,
body.airport-page:not(.daily-page) .reem-status,
body.orders-page .reem-status,
body.longtrip-page .reem-status{
  background:rgba(22,7,16,.82)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.14)!important;
  backdrop-filter:blur(10px)!important;
}

/* Chat is the primary surface, slightly larger and clearer than character card. */
body.academy-page .chat-shell,
body.airport-page:not(.daily-page) .chat-shell,
body.orders-page .chat-shell,
body.longtrip-page .chat-shell{
  min-width:0!important;
  width:100%!important;
  background:rgba(255,250,253,.98)!important;
  border-color:rgba(121,34,79,.16)!important;
  box-shadow:0 24px 58px rgba(54,14,39,.16)!important;
}

/* Academy: ALL four program cards use the same dark premium family. */
body.academy-page #programs .program-grid>.program-card,
body.academy-page #programs .program-grid>.program-card.featured{
  background:linear-gradient(155deg,#3b1429 0%,#6d2049 100%)!important;
  border:1px solid rgba(255,133,193,.26)!important;
  box-shadow:0 18px 42px rgba(51,13,36,.24)!important;
  color:var(--hr-lock-text)!important;
}
body.academy-page #programs .program-grid>.program-card:nth-child(even){
  background:linear-gradient(155deg,#321121 0%,#5b193e 100%)!important;
}
body.academy-page #programs .program-card h3,
body.academy-page #programs .program-card b,
body.academy-page #programs .program-card strong,
body.academy-page #programs .program-card .program-price strong{
  color:#fff!important;
}
body.academy-page #programs .program-card p,
body.academy-page #programs .program-card li,
body.academy-page #programs .program-card ul,
body.academy-page #programs .program-card .program-price span{
  color:var(--hr-lock-muted)!important;
  opacity:1!important;
}
body.academy-page #programs .program-card .program-top span,
body.academy-page #programs .program-card .popular{
  color:#ffd5e9!important;
}
body.academy-page #programs .program-card .learn-program{
  background:linear-gradient(135deg,#eb4b99,#c92f79)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 10px 24px rgba(201,47,121,.24)!important;
}

/* Preserve mobile usability: chat first-class, character compact but full-frame. */
@media(max-width:900px){
  body.academy-page .chat-stage,
  body.airport-page:not(.daily-page) .chat-stage,
  body.orders-page .chat-stage,
  body.longtrip-page .chat-stage{
    grid-template-columns:minmax(0,1.35fr) minmax(190px,.65fr)!important;
    gap:12px!important;
    padding:12px!important;
  }
  body.academy-page .reem-stage,
  body.airport-page:not(.daily-page) .reem-stage,
  body.orders-page .reem-stage,
  body.longtrip-page .reem-stage{
    min-height:520px!important;
  }
}
@media(max-width:620px){
  body.academy-page .chat-stage,
  body.airport-page:not(.daily-page) .chat-stage,
  body.orders-page .chat-stage,
  body.longtrip-page .chat-stage{
    grid-template-columns:minmax(0,1.4fr) minmax(145px,.60fr)!important;
    gap:8px!important;
    padding:8px!important;
  }
  body.academy-page .reem-stage,
  body.airport-page:not(.daily-page) .reem-stage,
  body.orders-page .reem-stage,
  body.longtrip-page .reem-stage{
    min-height:430px!important;
    border-radius:22px!important;
  }
  body.academy-page .reem-stage>img,
  body.airport-page:not(.daily-page) .reem-stage>img,
  body.orders-page .reem-stage>img,
  body.longtrip-page .reem-stage>img,
  body.airport-page:not(.daily-page) .reem-stage #nourAvatar,
  body.orders-page .reem-stage #nourAvatar,
  body.longtrip-page .reem-stage #nourAvatar{
    object-position:center 16%!important;
  }
  body.academy-page .reem-status,
  body.airport-page:not(.daily-page) .reem-status,
  body.orders-page .reem-status,
  body.longtrip-page .reem-status{
    left:7px!important;right:7px!important;top:8px!important;padding:7px 8px!important;font-size:.76rem!important;
  }
}

/* FINAL VISUAL LOCK V3 — character full-frame, no side crop. Visual only. */
body.academy-page .reem-stage>img,
body.airport-page:not(.daily-page) .reem-stage>img,
body.orders-page .reem-stage>img,
body.longtrip-page .reem-stage>img,
body.airport-page:not(.daily-page) .reem-stage #nourAvatar,
body.orders-page .reem-stage #nourAvatar,
body.longtrip-page .reem-stage #nourAvatar{
  width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
  min-height:0!important;object-fit:contain!important;object-position:center center!important;
  padding:0!important;margin:0!important;background:#21131d!important;
}
body.academy-page .reem-stage,
body.airport-page:not(.daily-page) .reem-stage,
body.orders-page .reem-stage,
body.longtrip-page .reem-stage{background:#21131d!important}

/* Airport Sedan/SUV dark cards: keep secondary copy readable on dark surfaces. */
body.airport-page:not(.daily-page) .vehicle-showcase-card .vehicle-content,
body.airport-page:not(.daily-page) .vehicle-showcase-card .vehicle-content h3,
body.airport-page:not(.daily-page) .vehicle-showcase-card .vehicle-content b,
body.airport-page:not(.daily-page) .vehicle-showcase-card .vehicle-content strong{color:#fff!important}
body.airport-page:not(.daily-page) .vehicle-showcase-card .vehicle-content p,
body.airport-page:not(.daily-page) .vehicle-showcase-card .vehicle-content span,
body.airport-page:not(.daily-page) .vehicle-showcase-card .hr-vehicle-copy,
body.airport-page:not(.daily-page) .vehicle-showcase-card .hr-vehicle-note{color:#f7dce9!important;opacity:1!important}

/* MOBILE CHAT HARD LOCK — a single full-width column on customer phones.
   This intentionally lives at the very end of this legacy visual file so its
   old two-column mobile rules can never squeeze the conversation again. */
@media(max-width:900px){
  body.academy-page .chat-stage,
  body.airport-page:not(.daily-page) .chat-stage,
  body.orders-page .chat-stage,
  body.longtrip-page .chat-stage{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    gap:14px!important;
    padding:10px!important;
    box-sizing:border-box!important;
  }
  body.academy-page .chat-stage>.reem-stage,
  body.academy-page .chat-stage>.chat-shell,
  body.airport-page:not(.daily-page) .chat-stage>.reem-stage,
  body.airport-page:not(.daily-page) .chat-stage>.chat-shell,
  body.orders-page .chat-stage>.reem-stage,
  body.orders-page .chat-stage>.chat-shell,
  body.longtrip-page .chat-stage>.reem-stage,
  body.longtrip-page .chat-stage>.chat-shell{
    grid-column:1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    position:relative!important;
    inset:auto!important;
    box-sizing:border-box!important;
  }
  body.academy-page .chat-stage>.reem-stage,
  body.airport-page:not(.daily-page) .chat-stage>.reem-stage,
  body.orders-page .chat-stage>.reem-stage,
  body.longtrip-page .chat-stage>.reem-stage{
    height:300px!important;
    min-height:300px!important;
    max-height:300px!important;
  }
  body.academy-page .chat-shell,
  body.airport-page:not(.daily-page) .chat-shell,
  body.orders-page .chat-shell,
  body.longtrip-page .chat-shell{
    overflow:hidden!important;
  }
}
/* Dialog safety: floating page controls must never cover map confirmation. */
.modal:not([hidden])~.hr-service-to-top,
body:has(.modal:not([hidden])) .hr-service-to-top{display:none!important;pointer-events:none!important}
#mapModal{z-index:100000!important}
#mapModal #confirmLocationBtn{position:sticky!important;bottom:0!important;z-index:30!important;min-height:58px!important;touch-action:manipulation!important;pointer-events:auto!important}
