/* Approved visual reference pass for Cypress River Oasis booking.
   Presentation only: no booking logic, prices, totals, API calls or form behavior changed. */

/* Make the Add Ons step feel like the approved pool-party reference. */
body .step[data-step="3"]{
  isolation:isolate;
  position:relative!important;
  padding-top:30px!important;
  background:
    radial-gradient(circle at 14% 8%,rgba(255,255,255,.96) 0 11%,transparent 28%),
    radial-gradient(circle at 84% 7%,rgba(69,211,209,.22),transparent 23%),
    repeating-radial-gradient(ellipse at 50% -18%,rgba(255,255,255,.55) 0 1px,transparent 2px 15px),
    linear-gradient(180deg,#dffbfc 0%,#f8ffff 25%,#fff 58%,#f6ffff 100%)!important;
  overflow:hidden!important;
}
body .step[data-step="3"]::before{content:"🌺";position:absolute;left:-18px;top:54px;z-index:-1;font-size:76px;transform:rotate(-12deg);filter:saturate(1.08)}
body .step[data-step="3"]::after{content:"🌴";position:absolute;right:-26px;top:-8px;z-index:-1;font-size:88px;transform:rotate(8deg);opacity:.92}
body .step[data-step="3"]>.eyebrow{text-align:center!important;letter-spacing:.24em!important;color:#1ba9b7!important;margin-bottom:10px!important}
body .step[data-step="3"]>h1{text-align:center!important;margin-inline:auto!important;max-width:680px!important}
body .step[data-step="3"]>h1:before{content:"Cypress River Oasis";display:block;margin:0 auto 14px;font-family:"Brush Script MT","Segoe Script","Snell Roundhand",cursive;font-size:clamp(2rem,7vw,3.35rem);line-height:1;font-weight:700;letter-spacing:-.04em;color:#087f9e;text-shadow:0 2px 0 rgba(255,255,255,.7)}
body .step[data-step="3"]>h1:after{display:block!important;font-size:clamp(2.4rem,6vw,4rem)!important;line-height:.95!important;text-align:center!important;text-wrap:balance}
body .step[data-step="3"]>.lead{max-width:670px!important;margin:14px auto 24px!important;text-align:center!important;color:#607182!important;font-weight:760!important}
body .step[data-step="3"] #addonGrid:before{margin:0 0 8px!important;padding-left:14px!important;font-size:.8rem!important;letter-spacing:.18em!important;color:#ed3c95!important;text-shadow:0 1px 0 #fff}

body .step[data-step="3"] .addon{overflow:hidden!important;border-radius:24px!important;border:1px solid rgba(255,255,255,.9)!important;box-shadow:0 9px 22px rgba(11,45,69,.12),inset 0 0 0 1px rgba(11,45,69,.07)!important}
body .step[data-step="3"] .addon:nth-of-type(4n+1){background:linear-gradient(110deg,#d8f9fb,#c9f3f7 72%,#e4fcff)!important}
body .step[data-step="3"] .addon:nth-of-type(4n+2){background:linear-gradient(110deg,#ffe2ec,#ffd5e4 72%,#fff0f5)!important}
body .step[data-step="3"] .addon:nth-of-type(4n+3){background:linear-gradient(110deg,#fff0bd,#ffe5a2 72%,#fff6d9)!important}
body .step[data-step="3"] .addon:nth-of-type(4n){background:linear-gradient(110deg,#e6ddff,#d9d0fb 72%,#f0ebff)!important}
body .step[data-step="3"] #addonGrid .addon-pick,body .step[data-step="3"] #moreAddonGrid .addon-pick{display:grid!important;grid-template-columns:42px minmax(0,1fr) 72px!important;grid-template-rows:auto auto!important;grid-template-areas:"check copy icon" "check price icon"!important;align-items:center!important;gap:5px 12px!important;padding:17px 18px 14px!important}
body .step[data-step="3"] .addon-copy{grid-area:copy!important}
body .step[data-step="3"] .addon-copy strong{display:block!important;color:#092f4c!important;font-size:1.12rem!important;line-height:1.12!important;font-weight:950!important}
body .step[data-step="3"] .addon-copy small{display:block!important;color:#687685!important;font-size:.82rem!important;line-height:1.3!important;font-weight:780!important}
body .step[data-step="3"] .addon-pick>b{grid-area:price!important;justify-self:start!important;padding:7px 14px!important;min-width:82px!important;text-align:center!important;border-radius:999px!important;background:linear-gradient(135deg,#083d61,#092b4b)!important;color:#fff!important;font-size:.87rem!important;font-weight:1000!important;box-shadow:0 5px 14px rgba(11,45,69,.18)!important}
body .step[data-step="3"] .addon-pick:before{grid-area:icon!important;justify-self:center!important;align-self:center!important;width:58px!important;height:58px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:rgba(255,255,255,.18)!important;font-size:33px!important;line-height:1!important;opacity:.96;filter:none!important}
body .step[data-step="3"] .addon:has(input[value*="birthday" i]) .addon-pick:before{content:"🎉"!important}
body .step[data-step="3"] .addon:has(input[value*="30-minute" i]) .addon-pick:before{content:"◷"!important;color:#08a8bd;font-family:Georgia,serif;font-size:46px!important}
body .step[data-step="3"] .addon:has(input[value*="1-hour" i]) .addon-pick:before{content:"☀"!important;color:#f6ae00;font-size:46px!important}
body .step[data-step="3"] .addon:has(input[value*="hot tub" i]) .addon-pick:before{content:"♨"!important;color:#0aa6c1;font-size:42px!important}
body .step[data-step="3"] .addon:has(input[value*="grill" i]) .addon-pick:before{content:"🔥"!important;color:#f05f25;font-size:39px!important}
body .step[data-step="3"] .addon:has(input[value*="ac" i]) .addon-pick:before{content:"❄"!important;color:#2aaad2;font-size:42px!important}
body .step[data-step="3"] .addon:has(input[value*="tiki" i]) .addon-pick:before{content:"🔥"!important;color:#7b4fde;font-size:38px!important}
body .step[data-step="3"] .addon:has(input[value*="towel" i]) .addon-pick:before{content:"▤"!important;color:#ec3f91;font-size:38px!important}
body .step[data-step="3"] .addon:has(input[value*="warming" i]) .addon-pick:before{content:"♨"!important;color:#0c6c8a;font-size:42px!important}
body .step[data-step="3"] .addon:has(input[value*="congrats" i]) .addon-pick:before{content:"✦"!important;color:#0aa5b2;font-size:39px!important}
body .step[data-step="3"] .addon:has(input[value*="wifi" i]) .addon-pick:before{content:"⌁"!important;color:#0aa5b2;font-size:42px!important}
body .step[data-step="3"] .addon:has(input[value*="basket" i]) .addon-pick:before{content:"🏀"!important}
body .step[data-step="3"] .addon:has(input[value*="poker" i]) .addon-pick:before{content:"♠"!important;color:#7b4fde;font-size:40px!important}
body .step[data-step="3"] .addon:has(input[value*="jenga" i]) .addon-pick:before{content:"▥"!important;color:#f09f2b;font-size:39px!important}
body .step[data-step="3"] .addon:has(input[value*="mermaid" i]) .addon-pick:before{content:"🧜‍♀️"!important}
body .step[data-step="3"] .addon:has(input[value*="clean" i]) .addon-pick:before{content:"🧹"!important}
body .step[data-step="3"] .addon:has(input[value*="refrigerator" i]) .addon-pick:before{content:"❄"!important;color:#24a8ca;font-size:40px!important}

/* iPhone-safe checkbox with unmistakable check. */
body .step[data-step="3"] #addonGrid .addon-pick>input[type="checkbox"],body .step[data-step="3"] #moreAddonGrid .addon-pick>input[type="checkbox"]{grid-area:check!important;appearance:none!important;-webkit-appearance:none!important;width:38px!important;height:38px!important;border-radius:11px!important;border:2px solid #aeb9c3!important;background:#fff!important;box-shadow:0 2px 5px rgba(11,45,69,.08)!important;position:relative!important;z-index:5!important}
body .step[data-step="3"] .addon-pick>input[type="checkbox"]:checked{border:2px solid #fff!important;background-color:#f23593!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='3.8' stroke-linecap='round' stroke-linejoin='round' d='M4.8 12.6l4.2 4.1L19.4 6.9'/%3E%3C/svg%3E")!important;background-position:center!important;background-repeat:no-repeat!important;background-size:24px 24px!important;box-shadow:0 0 0 4px rgba(242,53,147,.16),0 0 14px rgba(242,53,147,.28)!important;animation:none!important}
body .step[data-step="3"] .addon-pick>input[type="checkbox"]:checked::after{content:none!important;display:none!important}

/* Static magical selected state. */
body .step[data-step="3"] .addon:has(input[type="checkbox"]:checked){transform:none!important;border:3px solid transparent!important;background:linear-gradient(108deg,#ffe3f0 0%,#f7dfff 45%,#dffcff 100%) padding-box,linear-gradient(105deg,#ff2f9a,#ff78d3,#45e4f0,#8f65ff,#ffe55e,#ff2f9a) border-box!important;box-shadow:0 0 0 2px rgba(255,255,255,.92),0 0 13px rgba(255,47,154,.62),0 0 26px rgba(69,228,240,.54),0 0 38px rgba(143,101,255,.30),0 16px 28px rgba(11,45,69,.16)!important;animation:none!important;z-index:3!important}
body .step[data-step="3"] .addon:has(input:checked):after{content:"ADDED ✓"!important;top:12px!important;right:14px!important;padding:8px 13px!important;border-radius:999px!important;background:#f23593!important;color:#fff!important;border:0!important;box-shadow:0 6px 14px rgba(242,53,147,.24)!important;font-size:.68rem!important;font-weight:1000!important;letter-spacing:.07em!important}
body .step[data-step="3"] .addon:has(input:checked)>.addon-pick:after{content:"✦   ✧   ✨   ✦"!important;position:absolute!important;left:7px!important;top:8px!important;right:auto!important;bottom:auto!important;color:#fff9b8!important;font-size:18px!important;letter-spacing:4px!important;filter:drop-shadow(0 0 5px #ff43a4) drop-shadow(0 0 8px #37deeb)!important;animation:none!important;pointer-events:none!important}
body .step[data-step="3"] .addon:has(input:checked)>.addon-details:before{content:"✦"!important;position:absolute!important;right:12px!important;bottom:12px!important;left:auto!important;top:auto!important;color:#ffe352!important;font-size:26px!important;filter:drop-shadow(0 0 4px #ff4ea9) drop-shadow(0 0 7px #52def0)!important;animation:none!important}
body .step[data-step="3"] .addon:has(input:checked) .addon-pick>b{background:#092f4c!important;color:#fff!important}

body .step[data-step="3"] #addonGrid .addon:has(input[value*="birthday" i]){background:linear-gradient(108deg,#ffe7f1,#f2e3ff)!important}
body .step[data-step="3"] #addonGrid .addon:has(input[value*="birthday" i]):before{content:"BEST VALUE FOR BIRTHDAYS"!important;margin:13px 15px -3px!important;padding:7px 12px!important;border-radius:999px!important;background:#083b5b!important;color:#fff!important;font-size:.62rem!important;letter-spacing:.09em!important}
body .step[data-step="3"] #addonGrid .addon:has(input[value*="birthday" i]):has(input:checked){background:linear-gradient(108deg,#ffe1ef,#f1dcff 52%,#dffcff) padding-box,linear-gradient(105deg,#ff2f9a,#ff78d3,#45e4f0,#8f65ff,#ffe55e,#ff2f9a) border-box!important}
body .step[data-step="3"] .addon-details{position:relative!important;margin:0 16px 12px!important;border-top:1px solid rgba(8,59,91,.11)!important}
body .step[data-step="3"] .addon-details summary{padding:10px 0 4px!important;color:#087f8f!important;font-weight:1000!important}

/* ---------------------------------------------------------
   UNIFIED STEPS 1–4 — same tropical/water visual language
   --------------------------------------------------------- */
body .step[data-step="1"],body .step[data-step="2"],body .step[data-step="4"]{isolation:isolate;position:relative!important;overflow:hidden!important;background:radial-gradient(circle at 12% 7%,rgba(255,255,255,.96) 0 10%,transparent 26%),radial-gradient(circle at 88% 9%,rgba(69,211,209,.18),transparent 23%),repeating-radial-gradient(ellipse at 50% -20%,rgba(255,255,255,.5) 0 1px,transparent 2px 15px),linear-gradient(180deg,#ddfbfc 0%,#f8ffff 28%,#fff 62%,#f6ffff 100%)!important}
body .step[data-step="1"]::before,body .step[data-step="2"]::before,body .step[data-step="4"]::before{content:"🌺";position:absolute;left:-23px;top:62px;z-index:-1;font-size:70px;transform:rotate(-14deg);opacity:.9}
body .step[data-step="1"]::after,body .step[data-step="2"]::after,body .step[data-step="4"]::after{content:"🌴";position:absolute;right:-28px;top:-8px;z-index:-1;font-size:84px;transform:rotate(7deg);opacity:.9}
body .step[data-step="1"]>.eyebrow,body .step[data-step="2"]>.eyebrow,body .step[data-step="4"]>.eyebrow{text-align:center!important;letter-spacing:.22em!important;color:#1aa9b8!important;font-weight:1000!important}
body .step[data-step="1"]>h1,body .step[data-step="2"]>h1,body .step[data-step="4"]>h1{text-align:center!important;margin-inline:auto!important;color:#092f4c!important;font-family:Georgia,"Times New Roman",serif!important;font-size:clamp(2.25rem,5vw,3.6rem)!important;line-height:.98!important}
body .step[data-step="1"]>h1::before,body .step[data-step="2"]>h1::before,body .step[data-step="4"]>h1::before{content:"Cypress River Oasis";display:block;margin:0 auto 12px;font-family:"Brush Script MT","Segoe Script","Snell Roundhand",cursive;font-size:clamp(2rem,6vw,3.2rem);line-height:1;font-weight:700;letter-spacing:-.04em;color:#087f9e;text-shadow:0 2px 0 rgba(255,255,255,.7)}
body .step[data-step="1"]>.lead,body .step[data-step="2"]>.lead,body .step[data-step="4"]>.lead{max-width:680px!important;margin:14px auto 24px!important;text-align:center!important;color:#607182!important;font-weight:760!important}

/* Step 1 cards */
body .step[data-step="1"] .form-grid{border:1px solid rgba(255,255,255,.9)!important;border-radius:24px!important;background:linear-gradient(120deg,#d8f9fb,#fff 58%,#ffe6ef)!important;box-shadow:0 12px 28px rgba(11,45,69,.10)!important}
body .step[data-step="1"] .field input,body .step[data-step="1"] .field select{border-radius:16px!important;border:2px solid rgba(8,127,158,.18)!important;background:#fff!important;box-shadow:0 4px 12px rgba(11,45,69,.06)!important}
body .step[data-step="1"] #availability{border-radius:18px!important}
body .step[data-step="1"] .datetime-tip{border-radius:18px!important;background:linear-gradient(120deg,#fff1bd,#fff8e1)!important}

/* Step 2 guest/pricing cards */
body .step[data-step="2"] .guest-control{border-radius:24px!important;background:linear-gradient(120deg,#d9f9fb,#efffff)!important;border:1px solid rgba(255,255,255,.92)!important;box-shadow:0 10px 24px rgba(11,45,69,.10)!important}
body .step[data-step="2"] .rate-card{border-radius:24px!important;background:linear-gradient(135deg,#083b5b,#0d7a8f 58%,#18a8b4)!important;box-shadow:0 14px 30px rgba(11,45,69,.18)!important}
body .step[data-step="2"] .guest-tier-chip{border-radius:16px!important;min-height:58px!important;display:grid!important;place-items:center!important;box-shadow:0 6px 14px rgba(11,45,69,.08)!important}

/* Step 4 review/checkout cards */
body .step[data-step="4"] .checkout-reassurance .trust-item,body .step[data-step="4"] .agreement-card,body .step[data-step="4"] .id-upload-card,body .step[data-step="4"] .promo-field,body .step[data-step="4"] .checkout-payment-note{border-radius:22px!important;border:1px solid rgba(255,255,255,.92)!important;box-shadow:0 8px 20px rgba(11,45,69,.08)!important}
body .step[data-step="4"] .field input,body .step[data-step="4"] .field select,body .step[data-step="4"] .field textarea{border-radius:15px!important;border:2px solid rgba(8,127,158,.16)!important;background:#fff!important}
body .step[data-step="4"] .checkout-section-label{color:#ed3c95!important;letter-spacing:.12em!important;font-weight:1000!important}

/* Progress 1–4: colorful, same visual language on every step. */
body .progress{gap:8px!important;background:rgba(246,255,255,.94)!important;border-bottom:1px solid rgba(8,127,158,.10)!important;box-shadow:0 5px 16px rgba(11,45,69,.05)!important}
body .progress-step{border-radius:16px!important;background:#fff!important;border:1px solid rgba(8,59,91,.10)!important;font-weight:900!important}
body .progress-step:nth-child(1){background:linear-gradient(135deg,#dbfafa,#eefeff)!important}
body .progress-step:nth-child(2){background:linear-gradient(135deg,#fff1bf,#fff8df)!important}
body .progress-step:nth-child(3){background:linear-gradient(135deg,#ffe2ec,#fff0f5)!important}
body .progress-step:nth-child(4){background:linear-gradient(135deg,#e8e0ff,#f4f0ff)!important}
body .progress-step.active{box-shadow:0 0 0 2px rgba(255,255,255,.95),0 8px 18px rgba(11,45,69,.10)!important;transform:translateY(-1px)}
body .progress-step.active b{background:#083b5b!important;color:#fff!important}

/* Concierge must never block booking controls on phones. */
@media(max-width:620px){
  body .cro-concierge-launcher{right:12px!important;bottom:92px!important;width:52px!important;height:52px!important;min-width:52px!important;max-width:52px!important;padding:7px!important;border-radius:50%!important;overflow:hidden!important;display:grid!important;place-items:center!important;z-index:18!important}
  body .cro-concierge-launcher span{display:none!important}
  body .cro-concierge-launcher b{width:34px!important;height:34px!important;margin:0!important}
  body .flow-actions{z-index:22!important}

  body .step[data-step="1"],body .step[data-step="2"],body .step[data-step="3"],body .step[data-step="4"]{padding:26px 14px 32px!important}
  body .step[data-step="1"]::before,body .step[data-step="2"]::before,body .step[data-step="3"]::before,body .step[data-step="4"]::before{font-size:58px!important;left:-23px!important;top:76px!important}
  body .step[data-step="1"]::after,body .step[data-step="2"]::after,body .step[data-step="3"]::after,body .step[data-step="4"]::after{font-size:70px!important;right:-24px!important;top:-4px!important}
  body .step[data-step="1"]>h1::before,body .step[data-step="2"]>h1::before,body .step[data-step="3"]>h1::before,body .step[data-step="4"]>h1::before{font-size:2.25rem!important;margin-bottom:10px!important}
  body .step[data-step="1"]>h1,body .step[data-step="2"]>h1,body .step[data-step="4"]>h1,body .step[data-step="3"]>h1:after{font-size:2.38rem!important;line-height:.94!important;padding-inline:18px!important}
  body .step[data-step="1"]>.lead,body .step[data-step="2"]>.lead,body .step[data-step="3"]>.lead,body .step[data-step="4"]>.lead{font-size:.92rem!important;line-height:1.45!important;margin:12px auto 20px!important;padding-inline:8px!important}

  body .step[data-step="3"] #addonGrid,body .step[data-step="3"] #moreAddonGrid{gap:12px!important}
  body .step[data-step="3"] #addonGrid .addon-pick,body .step[data-step="3"] #moreAddonGrid .addon-pick{grid-template-columns:42px minmax(0,1fr) 62px!important;grid-template-areas:"check copy icon" "check price icon"!important;padding:15px 14px 12px!important;gap:5px 10px!important}
  body .step[data-step="3"] .addon-copy strong{font-size:1.02rem!important}
  body .step[data-step="3"] .addon-copy small{font-size:.77rem!important}
  body .step[data-step="3"] .addon-pick:before{width:50px!important;height:50px!important;font-size:29px!important}
  body .step[data-step="3"] .addon-pick>b{grid-column:auto!important;font-size:.82rem!important;padding:7px 12px!important;min-width:78px!important}
  body .step[data-step="3"] .addon:has(input:checked):after{top:10px!important;right:11px!important;font-size:.59rem!important;padding:7px 9px!important}
  body .step[data-step="3"] .addon:has(input:checked)>.addon-pick:after{top:4px!important;left:5px!important;font-size:14px!important;letter-spacing:2px!important}

  body .progress{padding:7px 8px!important;gap:6px!important}
  body .progress-step{min-width:0!important;padding:6px 4px!important;font-size:.72rem!important}
  body .progress-step b{width:27px!important;height:27px!important}
}
