:root{--purple:#35143c;--plum:#4b2056;--orange:#f79527;--gold:#e9ae4f;--ink:#321538;--muted:#65586a;--line:#e8e0e8}
*{box-sizing:border-box}html{font-family:Arial,Helvetica,sans-serif;color:var(--ink)}body{margin:0;min-height:100vh;position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 12%,#54265f 0%,#35143e 52%,#220b2c 100%);}
/* Two halves of the same carnival image flank the checkout card. The image
   is never stretched across the entire background. Each side softly fades
   outward into the original Halloween purple. */
body::before,body::after{content:"";position:fixed;top:0;bottom:0;width:max(0px,calc((100vw - 710px)/2));pointer-events:none;z-index:-1;background-image:url("images/carnival-atmosphere.webp");background-repeat:no-repeat;background-size:100vw auto;opacity:.78;filter:blur(3px);}
body::before{left:0;background-position:left center;-webkit-mask-image:linear-gradient(to left,#000 0%,#000 15%,transparent 100%);mask-image:linear-gradient(to left,#000 0%,#000 15%,transparent 100%);}
body::after{right:0;background-position:right center;-webkit-mask-image:linear-gradient(to right,#000 0%,#000 15%,transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 15%,transparent 100%);}

.page{padding:28px 18px 48px;display:flex;justify-content:center}.checkout-card{width:min(100%,690px);background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 22px 65px #13051d77;border:1px solid #f1d8b8}
.hero{height:255px;display:flex;justify-content:center;align-items:center;overflow:hidden;background:#fff}.hero img{display:block;width:min(100%,540px);height:100%;object-fit:contain;object-position:center center}
.content{padding:0 42px 26px;text-align:center}.eyebrow{margin:0 0 8px;color:#c9750c;font-weight:800;letter-spacing:.16em;font-size:12px}h1{font-family:Georgia,'Times New Roman',serif;font-weight:800;font-size:clamp(29px,4vw,43px);line-height:1.1;margin:0 0 10px;letter-spacing:-.035em}.event-details{margin:0 0 22px;color:var(--muted);font-size:13px;line-height:1.5}.event-details span{margin:0 5px}
.offer{background:linear-gradient(120deg,#4d1e52,#301136);border:2px solid #e8a94e;border-radius:16px;color:#ffdf91;padding:14px 12px 17px;box-shadow:0 5px 12px #32153819}.offer-label{font-weight:800;letter-spacing:.16em;font-size:12px;margin:0}.price{font-family:Georgia,'Times New Roman',serif;font-weight:800;font-size:clamp(70px,10vw,92px);line-height:1.02;letter-spacing:-.07em;color:#fff1c9;text-shadow:2px 3px 0 #bb6d27;margin:4px 0 0}.currency{font-size:.52em;vertical-align:top;position:relative;top:.19em;margin-right:5px}.cents{font-size:.37em;vertical-align:top;position:relative;top:.15em;letter-spacing:-.02em}.offer-caption{margin:2px 0 0;font-size:13px;letter-spacing:.15em;font-weight:800}
.purchase{text-align:left;padding-top:21px}.purchase label{display:block;font-weight:800;font-size:14px;margin-bottom:9px}.quantity-control{height:48px;display:flex;width:260px;max-width:100%;border:1px solid #d9cdd8;border-radius:11px;overflow:hidden}.quantity-control button{width:60px;background:#f6f2f5;border:0;font-size:26px;color:#8a4a18;cursor:pointer}.quantity-control button:last-child{background:var(--orange);color:#fff}.quantity-control button:disabled{opacity:.5;cursor:default}.quantity-control input{width:calc(100% - 120px);text-align:center;font-size:20px;font-weight:800;border:0;outline-offset:-3px;color:var(--ink);-moz-appearance:textfield}.quantity-control input::-webkit-inner-spin-button,.quantity-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.order-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:18px 0 14px;font-weight:800}.order-total strong{font-family:Georgia,serif;font-size:30px}.checkout-button{display:block;width:100%;border:0;border-radius:11px;padding:15px 18px;font-weight:800;font-size:15px;background:linear-gradient(#fbb24b,#ed8428);color:#351536;box-shadow:0 5px 12px #c77d302c;cursor:not-allowed;opacity:.72}.payment-methods{text-align:center;font-size:12px;color:var(--muted);margin:12px 0 5px}.fine-print{text-align:center;color:#726675;font-size:11px;line-height:1.5;margin:0}
footer{padding:16px 24px 19px;text-align:center;border-top:1px solid var(--line);display:flex;align-items:center;flex-direction:column;gap:5px;font-size:11px;color:#746879}footer strong{color:var(--ink);font-size:12px;letter-spacing:.06em}footer nav{display:flex;gap:20px;margin-top:4px}footer a{color:#6c436e;text-decoration:underline}
@media(max-width:600px){.page{padding:12px 10px 24px}.checkout-card{border-radius:16px}.hero{height:200px}.hero img{width:100%;max-width:420px}.content{padding:0 19px 22px}.eyebrow{font-size:10px}h1{font-size:31px}.event-details{font-size:11px;margin-bottom:17px}.offer{padding:12px 8px 14px}.price{font-size:76px}.offer-label{font-size:10px}.offer-caption{font-size:11px}.purchase{padding-top:17px}.order-total strong{font-size:26px}}
@media(max-width:360px){.hero{height:170px}h1{font-size:27px}.price{font-size:68px}.event-details span{margin:0 2px}}



/* On narrow screens the white card is the focus; avoid crowded side imagery. */
@media(max-width:900px){body::before,body::after{opacity:.42;filter:blur(7px)}}
@media(max-width:740px){body::before,body::after{display:none}}

.rides-promo-banner {
  width: 100%;
  margin: 24px auto;
}

.rides-promo-banner img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
}

/* Mobile layout adjustments */
@media screen and (max-width: 767px) {

  html,
  body {
    width: 100%;
    max-width: 100%;
    margin: 0;
    overflow-x: hidden;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  img {
    max-width: 100%;
    height: auto;
  }

  .rides-promo-banner {
    width: 100%;
    max-width: 100%;
    margin: 18px auto;
  }

  .rides-promo-banner img {
    display: block;
    width: 100%;
    height: auto;
  }
}

/* Tighten spacing between promotion and quantity selector */
.rides-promo-banner {
    margin-bottom: 0 !important;
}

.rides-promo-banner + * {
    margin-top: 0 !important;
}

/* Sandbox PayPal controls */
#paypal-button-container{min-height:48px}.checkout-status{font-size:12px;line-height:1.5;color:var(--muted);text-align:center;margin:10px 0}.purchase{min-width:0}

/* Customer delivery details */
.customer-fields{display:grid;gap:9px;margin:18px 0 8px;text-align:left}
.customer-fields label{margin:6px 0 0}
.customer-fields input{width:100%;min-width:0;border:1px solid #d9cdd8;border-radius:10px;padding:13px 12px;font-size:16px;color:var(--ink);background:#fff}
.customer-fields input:focus{outline:2px solid #ed8428;outline-offset:1px}
