/* V131.6 — sitewide responsive payment-policy modal
   Designed to render cleanly on desktop, iPad/tablet and mobile. */
:root{
  --lmt-policy-navy:#17365f;
  --lmt-policy-rose:#bd5a70;
  --lmt-policy-rose-soft:#f8e8ed;
  --lmt-policy-gold:#c99b52;
  --lmt-policy-ivory:#fffdf8;
  --lmt-policy-ink:#172033;
}

@keyframes lmtPolicyOverlayIn{from{opacity:0}to{opacity:1}}
@keyframes lmtPolicyModalIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes lmtPolicyKickerIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes lmtPolicySweep{from{transform:translateX(-130%)}to{transform:translateX(130%)}}
@keyframes lmtPolicyGlow{0%,100%{box-shadow:0 0 0 0 rgba(189,90,112,0)}50%{box-shadow:0 0 0 6px rgba(189,90,112,.055)}}

.lmt-booking-policy-overlay{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  height:100dvh;
  z-index:2147483647;
  isolation:isolate;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  background:rgba(15,23,42,.62);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  animation:lmtPolicyOverlayIn .28s ease both;
  overscroll-behavior:contain;
}

.lmt-booking-policy-modal{
  position:relative;
  width:min(640px,100%);
  max-width:100%;
  max-height:calc(100vh - 32px);
  max-height:calc(100dvh - max(32px, env(safe-area-inset-top) + env(safe-area-inset-bottom) + 20px));
  min-height:0;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
  overflow:hidden;
  background:var(--lmt-policy-ivory);
  color:var(--lmt-policy-ink);
  border:1px solid rgba(201,155,82,.45);
  border-radius:22px;
  box-shadow:0 28px 80px rgba(15,23,42,.28),0 8px 26px rgba(23,54,95,.08);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  animation:lmtPolicyModalIn .42s cubic-bezier(.22,.61,.36,1) both;
}

.lmt-booking-policy-modal::before{
  content:"";
  position:absolute;
  z-index:2;
  top:0;
  left:28px;
  right:28px;
  height:3px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,transparent,var(--lmt-policy-gold),var(--lmt-policy-rose),transparent);
  opacity:.85;
  pointer-events:none;
}

/* Only this region scrolls. The agreement buttons remain visible. */
.lmt-booking-policy-scroll{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  padding:30px 30px 8px;
}

.lmt-booking-policy-kicker{
  margin:0 0 8px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#8b6b3e;
  animation:lmtPolicyKickerIn .42s .08s ease both;
}

.lmt-booking-policy-modal h2{
  margin:0 0 14px;
  font-family:Poppins,Inter,system-ui,sans-serif;
  font-size:26px;
  line-height:1.2;
  color:var(--lmt-policy-ink);
  text-wrap:balance;
}

.lmt-booking-policy-modal p{
  margin:0 0 13px;
  font-size:15px;
  line-height:1.6;
  color:#3d4657;
}
.lmt-booking-policy-intro{margin-bottom:16px!important}

.lmt-booking-policy-important{
  margin:17px 0;
  padding:16px 17px;
  border-left:4px solid var(--lmt-policy-rose);
  background:var(--lmt-policy-rose-soft);
  border-radius:12px;
  color:#3b2630;
  font-weight:650;
  animation:lmtPolicyGlow 3.8s ease-in-out infinite;
}
.lmt-booking-policy-important strong{color:#7e3047}

.lmt-booking-policy-section{
  margin:14px 0;
  padding:14px 16px;
  border:1px solid rgba(23,54,95,.08);
  border-radius:13px;
  background:rgba(255,255,255,.56);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.lmt-booking-policy-section:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(23,54,95,.07);border-color:rgba(201,155,82,.25)}
.lmt-booking-policy-section h3{
  margin:0 0 7px;
  font-family:Poppins,Inter,system-ui,sans-serif;
  font-size:13px;
  line-height:1.3;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--lmt-policy-navy)
}
.lmt-booking-policy-section ul{margin:0;padding-left:19px;color:#3d4657}
.lmt-booking-policy-section li{margin:5px 0;font-size:14px;line-height:1.5}
.lmt-booking-policy-section li::marker{color:var(--lmt-policy-rose)}

.lmt-booking-policy-agreement{margin-top:16px!important;margin-bottom:7px!important;font-weight:650;color:#26364f!important}
.lmt-booking-policy-note{margin-top:7px!important;font-size:12px!important;line-height:1.5!important;color:#667085!important}

.lmt-booking-policy-actions{
  flex:0 0 auto;
  display:flex;
  gap:12px;
  padding:14px 30px 26px;
  border-top:1px solid rgba(23,54,95,.07);
  background:linear-gradient(to bottom,rgba(255,253,248,.96),var(--lmt-policy-ivory));
  box-shadow:0 -8px 18px rgba(23,54,95,.035);
}

.lmt-booking-policy-btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  flex:1;
  min-width:0;
  min-height:48px;
  border-radius:12px;
  padding:12px 16px;
  font:700 14px/1.25 Inter,system-ui,sans-serif;
  cursor:pointer;
  transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,border-color .22s ease,color .22s ease;
}
.lmt-booking-policy-btn::after{
  content:"";
  position:absolute;
  inset:0;
  width:34%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent);
  transform:translateX(-130%);
  pointer-events:none;
  z-index:-1;
}
.lmt-booking-policy-btn:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(23,54,95,.12)}
.lmt-booking-policy-btn:hover::after{animation:lmtPolicySweep .7s ease}
.lmt-booking-policy-btn:active{transform:translateY(0) scale(.99)}
.lmt-booking-policy-btn:focus-visible{outline:3px solid rgba(47,96,144,.32);outline-offset:2px}
.lmt-booking-policy-agree{border:1px solid var(--lmt-policy-navy);background:var(--lmt-policy-navy);color:#fff;box-shadow:0 8px 18px rgba(32,58,95,.16)}
.lmt-booking-policy-agree:hover{background:#18304f}
.lmt-booking-policy-disagree{border:1px solid #c8cdd5;background:#fff;color:#344054}
.lmt-booking-policy-disagree:hover{background:#f5f6f8}

html.lmt-booking-policy-open,html.lmt-booking-policy-open body{overflow:hidden!important;}

@media (max-width:760px){
  .lmt-booking-policy-overlay{align-items:center;padding:12px}
  .lmt-booking-policy-modal{width:min(640px,100%);max-height:calc(100vh - 24px);
  max-height:calc(100dvh - 24px);border-radius:18px}
  .lmt-booking-policy-modal::before{left:20px;right:20px}
  .lmt-booking-policy-scroll{padding:24px 20px 8px}
  .lmt-booking-policy-modal h2{font-size:22px;line-height:1.22}
  .lmt-booking-policy-modal p{font-size:14px;line-height:1.55}
  .lmt-booking-policy-section{padding:13px 14px}
  .lmt-booking-policy-section li{font-size:13.5px;line-height:1.48}
  .lmt-booking-policy-actions{padding:12px 20px max(18px,env(safe-area-inset-bottom));gap:10px}
  .lmt-booking-policy-btn{width:100%;min-height:50px}
}

@media (max-width:420px){
  .lmt-booking-policy-overlay{padding:8px}
  .lmt-booking-policy-modal{max-height:calc(100vh - 16px);
  max-height:calc(100dvh - 16px);border-radius:16px}
  .lmt-booking-policy-scroll{padding:21px 16px 6px}
  .lmt-booking-policy-modal h2{font-size:20px}
  .lmt-booking-policy-important{padding:14px 14px;margin:14px 0}
  .lmt-booking-policy-section{margin:11px 0;padding:12px 13px}
  .lmt-booking-policy-section li{font-size:13px}
  .lmt-booking-policy-actions{padding-left:16px;padding-right:16px}
}

@media (prefers-reduced-motion:reduce){
  .lmt-booking-policy-overlay,.lmt-booking-policy-modal,.lmt-booking-policy-kicker,.lmt-booking-policy-important{animation:none!important}
  .lmt-booking-policy-btn,.lmt-booking-policy-section{transition:none!important}
  .lmt-booking-policy-btn::after{animation:none!important}
}
