/* Keep injected ticket UI crisp: avoid synthesised heavy Arial weights. */
:root {
  --esp-font-sans: "Segoe UI Variable Text", "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --esp-font-display: "Segoe UI Variable Display", "Segoe UI", Inter, system-ui, sans-serif;
}

html {
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Local preview has no public reCAPTCHA key; hide the provider's blocking frame/message. */
iframe[src*="recaptcha" i], iframe[title*="recaptcha" i], [class*="recaptcha" i], [id*="recaptcha" i] { display: none !important; }

body,
button,
input,
select,
textarea {
  font-family: var(--esp-font-sans) !important;
}

.__esp-ticket-flow,
.__esp-visit-drawer,
.__esp-cart-panel,
.__esp-cart-toggle {
  font-family: var(--esp-font-sans);
  font-kerning: normal;
}

.__esp-ticket-flow :is(h1, h2, h3, h4, h5, h6),
.__esp-visit-drawer :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--esp-font-display);
  font-weight: 700 !important;
  letter-spacing: -0.012em;
}

.__esp-ticket-flow :is(button, .__esp-visit-card, .__esp-offer-card, .__esp-time-pill, .__esp-time-submit, .__esp-confirm-order),
.__esp-visit-drawer :is(button, .__esp-visit-kicker, .__esp-visit-point h3) {
  font-weight: 700 !important;
}

.__esp-confirm-order.is-loading { opacity: .75; pointer-events: none; }
.__esp-order-success { display: grid; gap: 4px; margin-top: 14px; padding: 14px 16px; border-radius: 12px; background: #ecfdf5; color: #065f46; }
.__esp-order-success span { font-size: 14px; color: #047857; }
.\__esp-native-step-hidden { display: none !important; }
.\__esp-ticket-flow:has(.\__esp-checkout) { width: min(1180px, calc(100% - 32px)) !important; max-width: 1180px !important; margin-left: auto !important; margin-right: auto !important; }
/* Contact information is its own checkout screen: do not leave the previous
   date, ticket-count, visit-choice or promotional blocks underneath it. */
body.__esp-contact-mode main > :not(.__esp-ticket-flow) { display: none !important; }
body.__esp-contact-mode main { width: 100%; max-width: none; }
body.__esp-contact-mode .\__esp-ticket-flow { position: relative; z-index: 1; }

.\__esp-checkout { max-width: 1180px; margin: 0 auto; color: #17353f; background: #fff; }
.\__esp-checkout-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px 34px; border-bottom:1px solid #e7ecee; }
.\__esp-checkout-brand { color:#133e4c; font:700 22px/1.1 var(--esp-font-display); text-decoration:none; max-width:260px; }
.\__esp-checkout-header ol { display:flex; gap:22px; margin:0; padding:0; list-style:none; font-size:14px; color:#6a7b81; }
.\__esp-checkout-header li { display:flex; align-items:center; gap:8px; white-space:nowrap; }
.\__esp-checkout-header b, .\__esp-contact-form h2 span { display:inline-grid; place-items:center; width:25px; height:25px; border-radius:50%; background:#e8edef; color:#3d555d; font-size:13px; }
.\__esp-checkout-header .is-current { color:#17353f; font-weight:700; }.\__esp-checkout-header .is-current b { background:#0c6a72; color:#fff; }
.\__esp-checkout-timer { margin:22px 34px 0; padding:13px 16px; background:#edf8f8; border-left:4px solid #0c6a72; font-size:14px; }
.\__esp-checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:42px; padding:34px; align-items:start; }
.\__esp-contact-form h2, .\__esp-checkout-summary h2, .\__esp-checkout-faq h2 { display:flex; align-items:center; gap:10px; margin:0 0 16px; font:700 23px/1.2 var(--esp-font-display); }.\__esp-contact-form h2:not(:first-child) { margin-top:38px; }
.\__esp-required, .\__esp-contact-note { color:#64777d; font-size:13px; }.\__esp-contact-form label { display:grid; gap:7px; margin:14px 0; font-size:14px; font-weight:700; }.\__esp-contact-form input, .\__esp-contact-form select { width:100%; min-height:46px; border:1px solid #b8c6c9; border-radius:2px; padding:10px 12px; background:#fff; color:#17353f; font:400 16px var(--esp-font-sans); }.\__esp-contact-form input:focus, .\__esp-contact-form select:focus { outline:3px solid #d8edef; border-color:#0c6a72; }
.\__esp-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.\__esp-marketing { grid-template-columns:18px 1fr; align-items:start; font-weight:400 !important; line-height:1.45; }.\__esp-marketing input { min-height:auto; width:16px; margin-top:3px; }
.\__esp-ticket-holder { padding:20px; border:1px solid #dce5e7; background:#f9fbfb; }.\__esp-ticket-holder p { margin:8px 0 2px; color:#61757b; font-size:13px; }.\__esp-contact-continue { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:50px; margin-top:26px; padding:0 22px; border:0; border-radius:2px; background:#0c6a72; color:#fff; font:700 16px var(--esp-font-sans); cursor:pointer; }.\__esp-contact-continue:hover { background:#095a60; }.\__esp-contact-status { min-height:20px; margin:12px 0 0; color:#0c6a72; font-weight:700; }
.\__esp-payment-form { min-width:0; }.\__esp-payment-form h2 { display:flex; align-items:center; gap:10px; margin:0 0 22px; font:700 23px/1.2 var(--esp-font-display); }.\__esp-payment-form h2 span { display:inline-grid; place-items:center; width:25px; height:25px; border-radius:50%; background:#0c6a72; color:#fff; font-size:13px; }.\__esp-payment-option { display:grid !important; grid-template-columns:20px minmax(0,1fr); gap:14px; align-items:center; min-height:82px; margin:12px 0 !important; padding:18px 20px; border:1px solid #ccd9dc; border-radius:4px; background:#fff; cursor:pointer; transition:border-color .16s ease, box-shadow .16s ease; }.\__esp-payment-option:has(input:checked) { border-color:#0c6a72; box-shadow:0 0 0 3px #dff1f1; }.\__esp-payment-option input { position:absolute; opacity:0; pointer-events:none; }.\__esp-payment-radio { width:18px; height:18px; border:1px solid #aebfc3; border-radius:50%; }.\__esp-payment-option:has(input:checked) .\__esp-payment-radio { border:5px solid #0c6a72; }.\__esp-payment-option strong, .\__esp-payment-option small { display:block; }.\__esp-payment-option strong { color:#183b46; font-size:16px; }.\__esp-payment-option small { margin-top:5px; color:#708087; font-size:13px; font-weight:400; }.\__esp-terms { display:grid !important; grid-template-columns:20px minmax(0,1fr); gap:10px; align-items:start; margin:24px 0 12px !important; font-weight:400 !important; }.\__esp-terms input { width:16px !important; min-height:auto !important; margin-top:3px; }.\__esp-terms a { color:#0c6a72; font-weight:700; }.\__esp-payment-legal { margin:0; color:#586e74; font-size:13px; line-height:1.55; }.\__esp-payment-details { margin:0 0 18px; padding:15px 0; border-top:1px solid #e3e9ea; color:#52686e; font-size:14px; }.\__esp-payment-details summary { color:#0c6a72; cursor:pointer; font-weight:700; }.\__esp-payment-details p { margin:10px 0 0; line-height:1.45; }
.\__esp-checkout-summary { position:sticky; top:20px; padding:24px; border:1px solid #d8e2e4; background:#fff; box-shadow:0 8px 22px rgba(22,53,63,.08); }.\__esp-checkout-summary h2 { font-size:21px; }.\__esp-checkout-summary > button { position:absolute; top:25px; right:22px; border:0; background:transparent; color:#0c6a72; font-weight:700; cursor:pointer; }.\__esp-summary-line, .\__esp-summary-ticket { display:grid; gap:5px; padding:16px 0; border-top:1px solid #e3e9ea; font-size:14px; }.\__esp-summary-line span { color:#708087; }.\__esp-summary-ticket b { margin-top:6px; color:#0c6a72; font-size:18px; }.\__esp-summary-total { display:flex; justify-content:space-between; padding-top:18px; border-top:2px solid #17353f; font-size:18px; }.\__esp-summary-total b { color:#0c6a72; }
.\__esp-checkout-faq { margin:0 34px 42px; padding-top:30px; border-top:1px solid #dce5e7; }.\__esp-checkout-faq details { padding:15px 0; border-top:1px solid #e4eaeb; }.\__esp-checkout-faq summary { cursor:pointer; font-weight:700; }.\__esp-checkout-faq p { margin:12px 0 0; color:#546a71; line-height:1.5; }
@media (max-width: 980px) { .\__esp-checkout-layout { grid-template-columns:1fr; } .\__esp-checkout-summary { position:static; grid-row:1; } }
@media (max-width: 760px) { .\__esp-checkout-header { display:block; padding:22px 18px; }.\__esp-checkout-header ol { margin-top:18px; gap:12px; font-size:12px; }.\__esp-checkout-header li:not(.is-current) { display:none; }.\__esp-checkout-timer { margin:16px 18px 0; }.\__esp-checkout-layout { grid-template-columns:1fr; gap:24px; padding:24px 18px; }.\__esp-form-grid { grid-template-columns:1fr; gap:0; }.\__esp-checkout-summary { position:static; grid-row:1; }.\__esp-checkout-faq { margin:0 18px 28px; }.\__esp-contact-form h2 { font-size:20px; } }

/* Palette carried over from the ticket interface: navy #001f45, red #c2273a,
   and the existing Eiffel gold #d69a00.  These rules cover the local steps
   after confirmation without affecting the original booking steps. */
.\__esp-checkout { color:#000; }.\__esp-checkout-header { background:#001f45; border-bottom:0; }.\__esp-checkout-brand, .\__esp-checkout-header ol, .\__esp-checkout-header .is-current { color:#fff; }.\__esp-checkout-header b { width:22px; height:22px; border-radius:0; background:#c2273a !important; color:#fff; transform:rotate(45deg); }.\__esp-checkout-header b i { display:block; font-style:normal; transform:rotate(-45deg); }.\__esp-checkout-timer { background:#f0f0f0; border-left-color:#c2273a; color:#000; }.\__esp-contact-form h2, .\__esp-checkout-summary h2, .\__esp-checkout-faq h2, .\__esp-payment-form h2 { color:#001f45; }.\__esp-contact-form h2 span, .\__esp-payment-form h2 span { border-radius:0; background:#c2273a; color:#fff; transform:rotate(45deg); }.\__esp-contact-form h2 span::first-letter, .\__esp-payment-form h2 span::first-letter { display:inline-block; transform:rotate(-45deg); }.\__esp-contact-form input:focus, .\__esp-contact-form select:focus { outline-color:#f5e4ba; border-color:#d69a00; }.\__esp-contact-continue { background:#d69a00; color:#001f45; }.\__esp-contact-continue:hover { background:#a87300; color:#fff; }.\__esp-contact-status, .\__esp-terms a, .\__esp-payment-details summary, .\__esp-checkout-summary > button, .\__esp-summary-ticket b, .\__esp-summary-total b { color:#d69a00; }.\__esp-checkout-summary > button { text-decoration:underline; }.\__esp-summary-total { border-top-color:#001f45; }
.\__esp-payment-option { grid-template-columns:minmax(0,1fr) auto; min-height:70px; margin:0 0 14px !important; padding:16px; border:1px solid transparent; border-radius:3px; background:#f0f0f0; box-shadow:none; }.\__esp-payment-option-alt { border-color:#c2273a; }.\__esp-payment-option:has(input:checked) { border-color:#c2273a; box-shadow:0 0 0 1px #c2273a inset; }.\__esp-payment-option input, .\__esp-payment-radio { display:none; }.\__esp-payment-copy strong { color:#000; font-size:16px; }.\__esp-payment-copy small { color:#000; font-size:13px; }.\__esp-payment-brands { display:flex; align-items:center; justify-content:flex-end; gap:9px; margin-left:18px; white-space:nowrap; }.\__esp-payment-brands i { display:inline-grid; place-items:center; min-width:26px; height:20px; padding:0 3px; font:900 10px/1 Arial,sans-serif; font-style:normal; letter-spacing:-.4px; }.\__esp-payment-brands-primary i:nth-child(1) { border-radius:2px; background:#158a99; color:#fff; }.\__esp-payment-brands-primary i:nth-child(2) { color:#1a39bd; font-size:16px; }.\__esp-payment-brands-primary i:nth-child(3) { border-radius:2px; background:#147cbe; color:#fff; }.\__esp-payment-brands-primary i:nth-child(4) { width:22px; min-width:22px; overflow:hidden; border-radius:50%; background:linear-gradient(90deg,#ea001b 0 50%,#f5a51b 50%); color:transparent; }.\__esp-payment-brands-alt { gap:5px; }.\__esp-payment-brands-alt i { min-width:30px; height:19px; border:1px solid #aab5bd; border-radius:2px; color:#5c6770; font-size:8px; }.\__esp-payment-brands-alt i:nth-child(2) { color:#758a55; }.\__esp-payment-brands-alt i:nth-child(3) { color:#32699b; }.\__esp-payment-brands-alt i:nth-child(4) { color:#c15d32; }
@media (max-width: 560px) { .\__esp-payment-option { grid-template-columns:1fr; gap:13px; }.\__esp-payment-brands { justify-content:flex-start; margin-left:0; }.\__esp-checkout-header b { width:20px; height:20px; } }
.\__esp-contact-form h2 span, .\__esp-payment-form h2 span { transform:none; border-radius:50%; }

/* Compact payment header and original payment marks. */
.\__esp-payment { background:#fff; }.\__esp-checkout-header-compact { min-height:76px; padding:14px 36px; }.\__esp-payment-back { width:36px; height:36px; flex:0 0 36px; border:0; border-radius:4px; background:#fff; color:#001f45; font:700 34px/27px Arial,sans-serif; cursor:pointer; }.\__esp-checkout-header-compact .\__esp-checkout-brand { display:flex; align-items:center; min-width:0; margin-right:auto; color:#fff; font-size:15px; text-transform:uppercase; letter-spacing:.02em; }.\__esp-checkout-header-compact .\__esp-checkout-brand::before { content:"╫"; margin-right:14px; color:#fff; font-size:37px; font-weight:300; line-height:1; }.\__esp-checkout-header-compact .\__esp-checkout-brand span { max-width:205px; }.\__esp-checkout-header-compact .\__esp-checkout-brand span::first-line { color:#d69a00; }.\__esp-checkout-header-compact ol { gap:22px; font-size:14px; }.\__esp-payment-form h2 > span { width:28px; height:28px; border-radius:0; background:#c2273a; transform:rotate(45deg); }.\__esp-payment-form h2 > span i { display:block; font-style:normal; transform:rotate(-45deg); }.\__esp-payment-option-primary { background:#fff; }.\__esp-payment-brands { align-items:center; gap:8px; }.\__esp-payment-brands img { display:block; width:34px; height:24px; object-fit:contain; object-position:center; }.\__esp-payment-brands-primary img:nth-child(1) { width:29px; }.\__esp-payment-brands-primary img:nth-child(2) { width:42px; }.\__esp-payment-brands-primary img:nth-child(3) { width:27px; }.\__esp-payment-brands-primary img:nth-child(4) { width:31px; }.\__esp-payment-brands-alt img:first-child { width:42px; }.\__esp-payment-brands-alt img { width:35px; height:25px; }
.\__esp-payment-option,
.\__esp-payment-option-primary,
.\__esp-payment-option-alt,
.\__esp-payment-option:has(input:checked) { border-color:#d4d4d4; background:#fff; box-shadow:none; }
.\__esp-payment-option.is-selected:has(input:checked) { border-color:#c2273a; box-shadow:0 0 0 1px #c2273a inset; }
.\__esp-payment-feedback { margin:-3px 0 16px; padding:0 2px; color:#53626a; font-size:14px; line-height:1.45; }
.\__esp-payment-feedback[hidden] { display:none; }
.\__esp-payment-feedback.is-loading::before { content:""; display:inline-block; width:14px; height:14px; margin:0 8px -2px 0; border:2px solid #d8d8d8; border-top-color:#c2273a; border-radius:50%; animation:__esp-payment-spin .65s linear infinite; }
.\__esp-payment-feedback.is-error { color:#9e2937; }
@keyframes __esp-payment-spin { to { transform:rotate(360deg); } }

/* Supplied raster marks may include a white/monochrome canvas.  Multiply lets
   that canvas take the colour of its payment-card background instead of
   rendering as a separate rectangle. */
.\__esp-payment-brands img { mix-blend-mode:multiply; }
.\__esp-payment-brands-alt img:first-child {
  width:54px;
  height:25px;
  object-fit:cover;
  object-position:center;
}
.\__esp-payment-brands-alt img:nth-child(2) {
  width:58px;
  height:25px;
  object-fit:contain;
}
.\__esp-payment-brands-alt img:nth-child(3) { width:36px; }
.\__esp-payment-brand-crop {
  display:block;
  flex:0 0 auto;
  overflow:hidden;
  background:transparent;
}
.\__esp-payment-brand-upi { width:72px; height:25px; }
.\__esp-payment-brand-upi img {
  display:block;
  width:170px !important;
  max-width:none;
  height:51px !important;
  transform:translate(-50px, -12px);
}
.\__esp-payment-brand-diners { width:36px; height:25px; }
.\__esp-payment-brand-diners img {
  display:block;
  width:auto !important;
  max-width:none;
  height:25px !important;
  transform:none;
}

/* Every supplied payment mark uses the same on-screen height.  Aspect ratio
   remains intact, while the white raster canvases blend into the card. */
.\__esp-payment-brands { gap:8px; }
.\__esp-payment-brands img {
  width:auto !important;
  max-width:none;
  height:24px !important;
  object-fit:contain;
  object-position:center;
  transform:none !important;
}
.\__esp-payment-brand-upi-equal {
  display:block;
  width:165px;
  height:24px;
  flex:0 0 165px;
  overflow:hidden;
  background:transparent;
}
.\__esp-payment-brand-upi-equal img {
  display:block;
  width:auto !important;
  max-width:none;
  height:60px !important;
  transform:translate(-10px, -18px) !important;
}

/* Local, non-submitting card-details UI.  The grid-row transition gives the
   selected card method a compact, smooth expansion without shifting the
   other option until the user has selected it. */
.\__esp-payment-card-group {
  margin:0 0 14px;
  border:1px solid #d4d4d4;
  border-radius:3px;
  background:#fff;
  overflow:hidden;
  transition:border-color .16s ease, box-shadow .16s ease;
}
/* The selected card method is one continuous panel: the red treatment belongs
   to the outside edge only, never to the seam above the fields. */
.\__esp-payment-card-group:has(.\__esp-payment-option.is-selected) {
  border-color:#c2273a;
  box-shadow:0 0 0 1px #c2273a inset;
}
.\__esp-payment-card-group .\__esp-payment-option,
.\__esp-payment-card-group .\__esp-payment-option.is-selected:has(input:checked) {
  margin:0 !important;
  border:0 !important;
  border-radius:0;
  box-shadow:none !important;
}
.\__esp-card-details {
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  transform:translateY(-5px);
  transition:grid-template-rows .22s ease, opacity .16s ease, transform .22s ease;
}
.\__esp-card-details.is-open {
  grid-template-rows:1fr;
  opacity:1;
  transform:translateY(0);
}
.\__esp-card-details-inner {
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0, 2fr) minmax(94px, 1fr) minmax(82px, .9fr);
  gap:12px;
  margin:0;
  padding:0 16px;
  border:0;
  border-radius:0 0 3px 3px;
  background:#fff;
  overflow:hidden;
}
.\__esp-card-details.is-open .\__esp-card-details-inner { padding:16px; border:0; }
.\__esp-card-field label {
  display:grid;
  gap:6px;
  color:#253843;
  font-size:12px;
  font-weight:700;
}
.\__esp-card-field input {
  width:100%;
  min-height:42px;
  border:1px solid #cfd5d7;
  border-radius:3px;
  padding:8px 10px;
  background:#fff;
  color:#142c3a;
  font:400 15px/1 var(--esp-font-sans);
  letter-spacing:.03em;
}
.\__esp-card-field input:focus { outline:2px solid #f5e4ba; border-color:#d69a00; }
.\__esp-card-field input.is-highlighted { outline:2px solid #f5e4ba; border-color:#d69a00; box-shadow:0 0 0 3px rgba(214,154,0,.14); }
@media (max-width:560px) {
  .\__esp-card-details-inner { grid-template-columns:1fr 1fr; }
  .\__esp-card-field-number { grid-column:1 / -1; }
}

/* Contact substeps use the same red diamond marker as steps 2 and 3. */
.\__esp-contact-form h2 > span {
  width:28px;
  height:28px;
  border-radius:0;
  background:#c2273a;
  color:#fff;
  transform:rotate(45deg);
}
.\__esp-contact-form h2 > span > i {
  display:block;
  font-style:normal;
  transform:rotate(-45deg);
}
@media (max-width: 760px) { .\__esp-checkout-header-compact { min-height:68px; display:grid; grid-template-columns:36px minmax(0,1fr); gap:12px; padding:12px 18px; }.\__esp-checkout-header-compact .\__esp-checkout-brand { margin:0; font-size:12px; }.\__esp-checkout-header-compact .\__esp-checkout-brand::before { margin-right:8px; font-size:29px; }.\__esp-checkout-header-compact ol { grid-column:1 / -1; grid-row:2; justify-content:flex-end; margin:0; font-size:12px; }.\__esp-checkout-header-compact li { gap:7px; }.\__esp-checkout-header-compact li:not(.is-current) { display:flex; }.\__esp-payment-brands { flex-wrap:wrap; }. }

.__esp-cart-button,
.__esp-cart-toggle,
.__esp-cart-submit,
.__esp-cart-close,
.__esp-cart-qty {
  appearance: none;
  border: 0;
  cursor: pointer;
  font: inherit;
}

.__esp-cart-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  margin-top: 12px;
  border-radius: 8px;
  background: #111827;
  color: #ffffff;
  font-weight: 700;
  line-height: 1.2;
}

.__esp-cart-button:hover,
.__esp-cart-toggle:hover,
.__esp-cart-submit:hover {
  background: #0f766e;
}

.__esp-cart-toggle {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 2147483000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 58px;
  padding: 0 16px;
  border-radius: 999px;
  background: #111827;
  color: #ffffff;
  box-shadow: 0 18px 45px rgba(17, 24, 39, 0.25);
  font-weight: 800;
}

.__esp-cart-panel {
  position: fixed;
  inset: auto 20px 92px auto;
  z-index: 2147483001;
  width: min(420px, calc(100vw - 40px));
  max-height: calc(100vh - 124px);
  display: none;
  overflow: auto;
  border: 1px solid rgba(17, 24, 39, 0.12);
  border-radius: 8px;
  background: #ffffff;
  color: #111827;
  box-shadow: 0 24px 70px rgba(17, 24, 39, 0.25);
}

.__esp-cart-panel.__esp-open {
  display: block;
}

.__esp-cart-head,
.__esp-cart-row,
.__esp-cart-form {
  padding: 16px;
}

.__esp-cart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(17, 24, 39, 0.1);
}

.__esp-cart-title {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
}

.__esp-cart-close {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #f3f4f6;
  color: #111827;
  font-size: 20px;
  line-height: 1;
}

.__esp-cart-empty {
  padding: 24px 16px;
  color: #6b7280;
}

.__esp-cart-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 12px;
  border-bottom: 1px solid rgba(17, 24, 39, 0.08);
}

.__esp-cart-row strong {
  display: block;
  overflow-wrap: anywhere;
}

.__esp-cart-price {
  color: #0f766e;
  font-weight: 800;
}

.__esp-cart-meta {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.__esp-cart-qty {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #f3f4f6;
  color: #111827;
  font-weight: 800;
}

.__esp-cart-form {
  display: grid;
  gap: 10px;
}

.__esp-cart-input,
.__esp-cart-textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(17, 24, 39, 0.18);
  border-radius: 8px;
  padding: 11px 12px;
  color: #111827;
  font: inherit;
}

.__esp-cart-textarea {
  min-height: 74px;
  resize: vertical;
}

.__esp-cart-submit {
  min-height: 44px;
  border-radius: 8px;
  background: #111827;
  color: #ffffff;
  font-weight: 800;
}

.__esp-cart-note {
  margin: 0;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.35;
}

.__esp-ticket-flow,
.__esp-ticket-flow * {
  box-sizing: border-box;
}

.__esp-ticket-flow {
  display: grid;
  gap: 14px;
  width: min(100%, var(--esp-flow-width, 390px));
  max-width: var(--esp-flow-width, 390px);
  margin: 14px auto;
  color: #001b3d;
  font-family: var(--esp-font-sans);
}

.__esp-visit-step,
.__esp-offer-step,
.__esp-time-step,
.__esp-final-step {
  width: 100%;
  padding: 18px;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}

.__esp-visit-step-head,
.__esp-summary-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.__esp-summary-head {
  justify-content: space-between;
}

.__esp-summary-head > .__esp-visit-step-head {
  flex: 1;
}

.__esp-visit-step-head h2 {
  margin: 0;
  color: #001b3d;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.15;
  text-transform: uppercase;
}

.__esp-visit-step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  transform: rotate(45deg);
  background: #c2273a;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
}

.__esp-visit-step-badge::first-line {
  transform: rotate(-45deg);
}

.__esp-visit-step-badge {
  line-height: 30px;
}

.__esp-visit-step-badge,
.__esp-visit-step-badge * {
  text-align: center;
}

.__esp-visit-step-badge {
  text-indent: 0;
}

.__esp-visit-step-badge::after {
  content: "";
}

.__esp-visit-step-badge {
  font-variant-numeric: tabular-nums;
}

.__esp-visit-step-badge {
  overflow: hidden;
}

.__esp-visit-step-badge {
  text-shadow: 0 0 0 #ffffff;
}

.__esp-visit-step-badge {
  writing-mode: horizontal-tb;
}

.__esp-visit-step-badge {
  rotate: 0deg;
}

.__esp-visit-step-badge {
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  transform: none;
}

.__esp-visit-divider {
  height: 1px;
  margin: 18px 0 14px;
  background: #b7b7b7;
}

.__esp-visit-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.__esp-visit-card,
.__esp-offer-card,
.__esp-offer-image-card,
.__esp-time-pill,
.__esp-time-submit,
.__esp-confirm-order,
.__esp-visit-close,
.__esp-visit-choose,
.__esp-summary-head button {
  appearance: none;
  font: inherit;
  cursor: pointer;
}

.__esp-visit-card {
  min-height: 246px;
  display: grid;
  place-items: center;
  gap: 8px;
  border: 1px solid #b9b9b9;
  border-radius: 4px;
  background: #ffffff;
  color: #000000;
  font-size: 12px;
  font-weight: 900;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: border-color 140ms ease, box-shadow 140ms ease;
}

.__esp-visit-card:hover,
.__esp-visit-card:focus-visible,
.__esp-visit-card-active {
  border: 2px solid #c2273a;
  box-shadow: 0 0 0 1px #c2273a inset;
}

.__esp-visit-card > * { position: relative; z-index: 1; }

.__esp-visit-illustration {
  width: 96px;
  height: 178px;
  display: block;
  position: relative;
  flex: none;
}

.__esp-visit-illustration img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* The source icon contains the second-floor pointer.  For Summit we mask that
   pointer on its white canvas and place a matching pointer beside the summit. */
.__esp-source-arrow-mask {
  position: absolute;
  top: 91px;
  right: -1px;
  width: 25px;
  height: 28px;
  background: #fff;
}

.__esp-visit-pointer {
  position: absolute;
  top: 24px;
  left: 68px;
  width: 27px;
  height: 18px;
  background: #c2273a;
  clip-path: polygon(0 50%, 42% 0, 42% 29%, 100% 29%, 100% 71%, 42% 71%, 42% 100%);
}

.__esp-visit-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483010;
  visibility: hidden;
  background: rgba(0, 0, 0, 0);
  opacity: 0;
  transition: opacity 180ms ease, visibility 180ms ease, background 180ms ease;
}

.__esp-visit-open .__esp-visit-overlay {
  visibility: visible;
  background: rgba(0, 0, 0, 0.46);
  opacity: 1;
}

.__esp-visit-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 2147483011;
  width: min(520px, calc(100vw - 44px));
  height: 100vh;
  overflow-y: auto;
  transform: translateX(104%);
  border-left: 1px solid rgba(0, 0, 0, 0.14);
  background: #ffffff;
  color: #000000;
  box-shadow: -20px 0 42px rgba(0, 0, 0, 0.25);
  transition: transform 220ms ease;
  font-family: var(--esp-font-sans);
}

.__esp-visit-open .__esp-visit-drawer {
  transform: translateX(0);
}

.__esp-visit-close {
  position: absolute;
  top: 28px;
  left: 28px;
  z-index: 1;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 6px;
  background: #c2273a;
  color: #ffffff;
  font-size: 32px;
  line-height: 1;
}

.__esp-visit-hero {
  width: 100%;
  height: 290px;
  background-position: center;
  background-size: cover;
}

.__esp-visit-content {
  padding: 38px 36px 52px;
}

.__esp-visit-content h2 {
  margin: 0 0 26px;
  color: #000000;
  font-size: 28px;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: 0;
}

.__esp-visit-kicker {
  margin: -8px 0 28px;
  font-size: 19px;
  font-weight: 900;
}

.__esp-visit-content p {
  color: #000000;
  font-size: 20px;
  line-height: 1.42;
}

.__esp-visit-point {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  margin: 28px 0;
}

.__esp-visit-point h3 {
  margin: 0 0 14px;
  color: #000000;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.25;
}

.__esp-visit-point p {
  margin: 0;
}

.__esp-visit-check {
  width: 28px;
  height: 28px;
  margin-top: 2px;
  transform: rotate(45deg);
  border: 1px solid #d89a00;
}

.__esp-visit-check::after {
  content: "";
  display: block;
  width: 12px;
  height: 7px;
  margin: 7px 0 0 7px;
  transform: rotate(-90deg) skew(-8deg);
  border-left: 3px solid #d89a00;
  border-bottom: 3px solid #d89a00;
}

.__esp-visit-choose,
.__esp-confirm-order,
.__esp-time-submit {
  width: fit-content;
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 28px auto 0;
  padding: 8px 8px 8px 20px;
  border: 0;
  border-radius: 5px;
  background: #001f45;
  color: #ffffff;
  font-size: 16px;
  font-weight: 900;
}

.__esp-visit-choose,
.__esp-time-submit {
  display: flex;
}

.__esp-visit-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 5px;
  background: #c2273a;
  color: #ffffff;
}

.__esp-offer-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.__esp-offer-group {
  width: fit-content;
  margin-top: 6px;
  padding: 3px 7px;
  border-radius: 3px;
  background: #c2273a;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
}

.__esp-offer-group:nth-of-type(even) {
  background: #a87300;
}

.__esp-offer-card {
  width: 100%;
  min-height: 126px;
  display: grid;
  grid-template-columns: 112px 1fr auto;
  gap: 14px;
  align-items: center;
  border: 1px solid #b8b8b8;
  border-radius: 7px;
  padding: 10px;
  background: #ffffff;
  color: #000000;
  text-align: left;
  font-family: var(--esp-font-sans);
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.__esp-offer-card:hover,
.__esp-offer-card:focus-visible {
  border-color: #c2273a;
  box-shadow: 0 0 0 2px #c2273a inset, 0 2px 8px rgba(194, 39, 58, 0.18);
}

.__esp-offer-image-card {
  width: 100%;
  display: block;
  border: 0;
  border-radius: 5px;
  padding: 0;
  background: transparent;
  line-height: 0;
  text-align: left;
}

.__esp-offer-image-card:hover {
  box-shadow: 0 0 0 2px #001f45;
}

.__esp-offer-image-card img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 5px;
}

.__esp-offer-card img {
  width: 112px;
  height: 92px;
  border-radius: 7px;
  object-fit: cover;
}

.__esp-offer-card-body {
  display: grid;
  gap: 9px;
  align-self: stretch;
  align-content: start;
}

.__esp-offer-card strong {
  color: #000000;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.18;
}

.__esp-offer-card em {
  color: #000000;
  font-size: 13px;
  font-weight: 900;
  font-style: normal;
  line-height: 1.28;
}

.__esp-offer-card small {
  font-size: 12px;
  font-weight: 900;
}

.__esp-offer-card-premium-summit {
  min-height: 132px;
  grid-template-columns: 112px 1fr auto;
  align-items: stretch;
  gap: 14px;
  border: 1px solid transparent;
  border-radius: 7px;
  padding: 8px 10px;
  background: #082448;
  color: #ffffff;
  box-shadow: 0 1px 3px rgba(2, 10, 25, 0.28);
  font-family: var(--esp-font-sans);
}

.__esp-offer-card-premium-summit:hover,
.__esp-offer-card-premium-summit:focus-visible {
  border-color: #a87300;
  box-shadow: 0 0 0 2px #a87300 inset, 0 2px 10px rgba(168, 115, 0, 0.34);
}

.__esp-offer-card-premium-summit img {
  width: 112px;
  height: 112px;
  border-radius: 7px;
  object-fit: cover;
}

.__esp-offer-card-premium-summit .__esp-offer-card-body {
  min-width: 0;
  grid-template-rows: auto 1fr auto;
  align-content: stretch;
  gap: 8px;
}

.__esp-offer-card-premium-summit strong {
  color: #ffffff;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.15;
}

.__esp-offer-card-premium-summit em {
  display: none;
}

.__esp-offer-card-premium-summit small {
  align-self: end;
}

.__esp-offer-card-premium-summit b {
  align-self: end;
  padding-bottom: 22px;
  color: #f2bc4b;
  font-size: 17px;
}

.__esp-offer-icons {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #e6b24a;
}

.__esp-offer-icons svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.__esp-offer-icons .__esp-flag-icon {
  width: 42px;
  height: 28px;
  stroke: none;
  border-radius: 1px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18);
}

.__esp-offer-plus {
  color: #e6b24a;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
}

.__esp-offer-card b,
.__esp-summary-value strong,
.__esp-total-row span,
.__esp-price-block strong,
.__esp-price-block b {
  color: #bd1f35;
  font-weight: 900;
}

.__esp-offer-card-premium-summit b {
  color: #f2bc4b;
}

.__esp-summary-head button {
  border: 0;
  border-bottom: 1px solid #000000;
  background: transparent;
  color: #000000;
  font-size: 12px;
  font-weight: 900;
}

.__esp-summary-value {
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
  border: 1px solid #b8b8b8;
  padding: 7px 10px;
  color: #000000;
  font-size: 13px;
  font-weight: 900;
}

.__esp-offer-icon {
  margin-bottom: 28px;
  color: #000000;
  font-size: 22px;
  font-weight: 900;
}

.__esp-offer-alert {
  color: #ef3b45 !important;
  font-weight: 900;
}

.__esp-offer-extra {
  color: #000000;
  font-weight: 900;
}

.__esp-price-block {
  margin-top: 30px;
  border-top: 1px solid #c9c9c9;
  padding-top: 24px;
}

.__esp-price-block p {
  margin: 0 0 9px;
}

.__esp-price-block strong {
  display: block;
  margin-top: 14px;
  font-size: 38px;
  text-align: right;
}

.__esp-offer-note {
  margin: 22px 0;
  border-radius: 5px;
  padding: 16px 18px;
  background: #e8f0ff;
  color: #001f45;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
}

.__esp-time-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px 18px;
}

.__esp-time-pill {
  min-height: 32px;
  border: 1px solid #b8b8b8;
  border-radius: 999px;
  background: #ffffff;
  color: #000000;
  font-size: 13px;
  font-weight: 900;
}

.__esp-time-pill:hover,
.__esp-time-selected {
  border-color: #001f45;
  background: #001f45;
  color: #ffffff;
}

.__esp-time-disabled {
  background: repeating-linear-gradient(-45deg, #eeeeee, #eeeeee 4px, #dddddd 4px, #dddddd 8px);
  color: #777777;
  cursor: not-allowed;
}

.__esp-time-legend {
  margin-top: 18px;
  border-top: 1px solid #b8b8b8;
  border-bottom: 1px solid #b8b8b8;
  padding: 10px 0;
  color: #001b3d;
  font-size: 11px;
}

.__esp-time-legend p {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 5px 0;
}

.__esp-time-last,
.__esp-time-grey {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border: 1px solid #c8c8c8;
  border-radius: 999px;
}

.__esp-time-last {
  position: relative;
}

.__esp-time-last::after {
  content: "x";
  position: absolute;
  top: -7px;
  right: -2px;
  color: #f26b2f;
  font-weight: 900;
}

.__esp-time-grey {
  background: repeating-linear-gradient(-45deg, #eeeeee, #eeeeee 4px, #dddddd 4px, #dddddd 8px);
}

.__esp-time-submit:disabled {
  background: #eeeeee;
  color: #888888;
  cursor: not-allowed;
}

.__esp-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: #000000;
  font-size: 14px;
}

.__esp-total-row span {
  font-size: 30px;
}

.__esp-final-step {
  text-align: center;
}

.__esp-final-step .__esp-total-row {
  text-align: left;
}

@media (max-width: 520px) {
  .__esp-cart-toggle {
    right: 14px;
    bottom: 14px;
  }

  .__esp-cart-panel {
    inset: auto 14px 84px 14px;
    width: auto;
  }

  .__esp-visit-step,
  .__esp-offer-step,
  .__esp-time-step,
  .__esp-final-step {
    padding: 14px;
  }

  .__esp-visit-options {
    gap: 10px;
  }

  .__esp-time-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .__esp-offer-card {
    grid-template-columns: 82px 1fr auto;
    gap: 10px;
  }

  .__esp-offer-card img {
    width: 82px;
    height: 82px;
  }

  .__esp-offer-card strong {
    font-size: 13px;
  }

  .__esp-offer-card em {
    font-size: 11px;
  }

  .__esp-offer-card-premium-summit {
    grid-template-columns: 82px 1fr auto;
    gap: 10px;
  }

  .__esp-offer-card-premium-summit img {
    width: 82px;
    height: 82px;
  }

  .__esp-offer-card-premium-summit strong {
    font-size: 14px;
  }

  .__esp-offer-card-premium-summit b {
    grid-column: 3;
    padding-bottom: 22px;
    font-size: 14px;
  }

  .__esp-offer-icons svg {
    width: 24px;
    height: 24px;
  }

  .__esp-offer-icons .__esp-flag-icon {
    width: 34px;
    height: 22px;
  }

  .__esp-offer-card b {
    grid-column: 3;
    justify-self: end;
  }

  .__esp-offer-card-premium-summit b {
    grid-column: 3;
  }

  .__esp-visit-content {
    padding: 34px 28px 46px;
  }

  .__esp-visit-content h2 {
    font-size: 27px;
  }

  .__esp-visit-content p {
    font-size: 19px;
  }
}

@media (max-width: 767px) {
  html,
  body {
    max-width: 100vw;
    overflow-x: hidden !important;
  }

  body.__esp-visit-open {
    overflow: hidden;
  }

  .__esp-ticket-flow {
    width: min(345px, calc(100vw - 40px)) !important;
    max-width: min(345px, calc(100vw - 40px)) !important;
    margin: 14px auto 28px;
  }

  .__esp-visit-step,
  .__esp-offer-step,
  .__esp-time-step,
  .__esp-final-step {
    border-radius: 4px;
    padding: 14px;
  }

  .__esp-visit-step-head,
  .__esp-summary-head {
    align-items: flex-start;
  }

  .__esp-visit-step-head h2 {
    min-width: 0;
    font-size: 17px;
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  .__esp-visit-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .__esp-visit-card {
    min-height: 247px;
    padding: 10px 8px;
    align-content: center;
    font-size: 12px;
    line-height: 1.15;
    text-align: center;
  }

  .__esp-tower-svg {
    width: min(86px, 100%);
  }

  .__esp-visit-drawer {
    top: 0;
    right: 0;
    left: auto;
    width: 100vw;
    max-width: 390px;
    height: 100svh;
    border-left: 0;
    box-shadow: -14px 0 34px rgba(0, 0, 0, 0.24);
  }

  .__esp-visit-close {
    top: 20px;
    left: 20px;
    width: 32px;
    height: 32px;
    border-radius: 0;
    font-size: 27px;
  }

  .__esp-visit-hero {
    height: 230px;
  }

  .__esp-visit-content {
    padding: 30px 20px 46px;
  }

  .__esp-visit-content h2 {
    margin-bottom: 16px;
    font-size: 25px;
    line-height: 1.12;
  }

  .__esp-visit-kicker {
    margin: -4px 0 20px;
    font-size: 17px;
  }

  .__esp-visit-content p {
    font-size: 16px;
    line-height: 1.42;
  }

  .__esp-visit-point {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    margin: 22px 0;
  }

  .__esp-visit-point h3 {
    margin-bottom: 10px;
    font-size: 17px;
  }

  .__esp-visit-choose,
  .__esp-confirm-order,
  .__esp-time-submit {
    min-height: 45px;
    margin-top: 24px;
    padding: 7px 7px 7px 16px;
    font-size: 14px;
  }

  .__esp-visit-arrow {
    width: 31px;
    height: 31px;
  }

  .__esp-offer-list {
    gap: 10px;
  }

  .__esp-offer-card,
  .__esp-offer-card-premium-summit {
    min-width: 0;
    min-height: 142px;
    grid-template-columns: 82px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 10px;
    border-radius: 6px;
  }

  .__esp-offer-card img,
  .__esp-offer-card-premium-summit img {
    width: 82px;
    height: 82px;
  }

  .__esp-offer-card-body,
  .__esp-offer-card-premium-summit .__esp-offer-card-body {
    min-width: 0;
  }

  .__esp-offer-card strong,
  .__esp-offer-card-premium-summit strong,
  .__esp-offer-card em,
  .__esp-offer-card small {
    overflow-wrap: anywhere;
  }

  .__esp-offer-card strong,
  .__esp-offer-card-premium-summit strong {
    font-size: 13px;
    line-height: 1.18;
  }

  .__esp-offer-card em {
    font-size: 11px;
  }

  .__esp-offer-card b,
  .__esp-offer-card-premium-summit b {
    justify-self: end;
    white-space: nowrap;
    font-size: 14px;
  }

  .__esp-offer-icons {
    max-width: 100%;
    flex-wrap: wrap;
    gap: 5px;
  }

  .__esp-offer-icons svg {
    width: 23px;
    height: 23px;
  }

  .__esp-offer-icons .__esp-flag-icon {
    width: 33px;
    height: 22px;
  }

  .__esp-summary-value {
    gap: 10px;
    align-items: flex-start;
    font-size: 12px;
    line-height: 1.25;
  }

  .__esp-summary-value span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .__esp-summary-value strong {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .__esp-price-block strong {
    font-size: 34px;
  }

  .__esp-time-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .__esp-time-pill {
    min-width: 0;
    min-height: 32px;
    padding-inline: 4px;
    font-size: 13px;
  }

  .__esp-total-row {
    gap: 12px;
    align-items: flex-start;
  }

  .__esp-total-row span {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: 28px;
  }
}

@media (max-width: 360px) {
  .__esp-ticket-flow {
    width: min(320px, calc(100vw - 28px)) !important;
    max-width: min(320px, calc(100vw - 28px)) !important;
  }

  .__esp-visit-options {
    gap: 8px;
  }

  .__esp-visit-card {
    min-height: 220px;
  }

  .__esp-offer-card,
  .__esp-offer-card-premium-summit {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .__esp-offer-card img,
  .__esp-offer-card-premium-summit img {
    width: 72px;
    height: 72px;
  }

  .__esp-offer-card b,
  .__esp-offer-card-premium-summit b {
    grid-column: 2;
    justify-self: start;
    padding-bottom: 0;
  }

  .__esp-time-grid {
    gap: 8px;
  }
}

.\__esp-checkout-header-compact .\__esp-checkout-brand span { display:grid; max-width:205px; }
.\__esp-checkout-header-compact .\__esp-checkout-brand em { color:#d69a00; font-style:normal; }
.\__esp-checkout-header-compact .\__esp-checkout-brand strong { color:#fff; }

/* Local availability replaces remote sold-out overlays. */
.destination_ctr [class*="sold" i], .destination_ctr [class*="unavailable" i], .destination_ctr [class*="availability" i] { display:none !important; }

/* Native date and quantity screens: the original ticket-office structure is
   retained; these rules only make locally available choices actionable. */
.date_choice_ctr label.__esp-native-date-selected > span:first-child {
  display:inline-grid;
  place-items:center;
  min-width:38px;
  min-height:38px;
  border-radius:50%;
  background:#c2273a;
  color:#fff;
  font-weight:700;
}

form.qui-quand li.d-cell {
  position: relative;
}

form.qui-quand .__esp-date-hitbox {
  position: absolute;
  z-index: 5;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 42px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.\__esp-native-ticket-step { padding-bottom:24px; }
.\__esp-native-ticket-list { display:grid; gap:0; margin:8px 0 20px; }
.\__esp-native-ticket-row { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:58px; padding:10px 0; border-bottom:1px solid #d9d9d9; color:#001f45; }
.\__esp-native-ticket-row strong { font-size:16px; }
.\__esp-native-ticket-controls { display:flex; align-items:center; gap:12px; }
.\__esp-native-ticket-controls button { display:grid; place-items:center; width:31px; height:31px; padding:0; border:0; border-radius:5px; background:#c2273a; color:#fff; font:700 21px/1 Arial,sans-serif; cursor:pointer; }
.\__esp-native-ticket-controls button[data-ticket-adjust='-1'] { background:#c8c8c8; color:#fff; }
.\__esp-native-ticket-controls button:hover { filter:brightness(.92); }
.\__esp-native-ticket-controls output { display:grid; place-items:center; width:44px; height:31px; border:1px solid #d8d8d8; border-radius:5px; background:#f4f4f4; color:#001f45; text-align:center; font-weight:700; }
.\__esp-date-summary { padding:24px 34px 27px; }
.\__esp-date-summary .\__esp-summary-head { display:flex; align-items:center; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid #d7d7d7; }
.\__esp-date-summary .\__esp-visit-step-head { display:flex; align-items:center; gap:14px; }
.\__esp-date-summary .\__esp-visit-step-head h2 { margin:0; color:#09264a; font-size:25px; line-height:1.1; }
.\__esp-date-summary .\__esp-summary-head button { display:inline-flex; align-items:center; gap:5px; border:0; border-bottom:1px solid #09264a; padding:2px 0; background:transparent; color:#09264a; font-weight:700; line-height:1; cursor:pointer; }
.\__esp-edit-calendar { position:relative; display:block; width:13px; height:13px; box-sizing:border-box; border:1.5px solid currentColor; border-radius:1px; }
.\__esp-edit-calendar::before { content:""; position:absolute; top:2px; left:-1.5px; width:13px; border-top:1.5px solid currentColor; }
.\__esp-edit-calendar::after { content:""; position:absolute; top:-3px; left:2px; width:6px; height:3px; border-left:1.5px solid currentColor; border-right:1.5px solid currentColor; }
.\__esp-date-summary-month { margin:24px 0 18px; color:#be293c; font-size:20px; font-weight:800; text-align:center; }
.\__esp-date-summary-days { display:grid; grid-template-columns:repeat(7,1fr); gap:14px; margin:0; padding:0; list-style:none; }
.\__esp-date-summary-days li { display:grid; justify-items:center; gap:8px; color:#071f43; font-weight:700; }
.\__esp-date-summary-days small { font-size:15px; text-transform:uppercase; }
.\__esp-date-summary-days span { display:grid; place-items:center; width:45px; height:45px; border:1px solid #d2d2d2; border-radius:50%; }
.\__esp-date-summary-days .is-selected span { border-color:#c2273a; background:#c2273a; color:#fff; }
.\__esp-ticket-confirm { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px; padding:6px 7px 6px 14px; border:0; border-radius:5px; background:#06254a; color:#fff; box-shadow:none; font:700 15px/1.15 Arial,sans-serif; cursor:pointer; }
.\__esp-ticket-confirm:hover { background:#0b315e; }
.\__esp-ticket-confirm i { display:grid; place-items:center; width:31px; height:31px; border-radius:5px; background:#c2273a; color:#fff; font:400 24px/1 Arial,sans-serif; }
@media (max-width:560px) {
  .\__esp-native-ticket-row { gap:10px; min-height:52px; }
  .\__esp-native-ticket-row strong { font-size:14px; }
  .\__esp-native-ticket-controls { gap:8px; }
  .\__esp-native-ticket-controls button { width:30px; height:30px; }
  .\__esp-date-summary { padding:20px 16px; }
  .\__esp-date-summary .\__esp-visit-step-head h2 { font-size:18px; }
  .\__esp-date-summary-days { gap:5px; }
  .\__esp-date-summary-days span { width:36px; height:36px; }
}


/* Never inherit the upstream unavailable treatment on local visit cards. */
.__esp-visit-card,
.__esp-visit-card:disabled {
  opacity:1 !important;
  pointer-events:auto !important;
  cursor:pointer !important;
  color:#000 !important;
  background:#fff !important;
  background-image:none !important;
  filter:none !important;
}
.__esp-visit-card::before,
.__esp-visit-card::after,
.__esp-visit-card:disabled::before,
.__esp-visit-card:disabled::after {
  content:none !important;
  display:none !important;
  opacity:0 !important;
  background:none !important;
}
