html{scroll-behavior:smooth}
body{font-family:'Poppins',sans-serif;color:#1c1917;-webkit-tap-highlight-color:transparent}
.ticker{display:inline-block;white-space:nowrap;padding-left:100%;animation:tick 22s linear infinite}
@keyframes tick{to{transform:translateX(-100%)}}
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 16px 16px;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start;flex:none}
.hide-scrollbar::-webkit-scrollbar{display:none}
.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
details[open] .chev{transform:rotate(90deg)}
.chev{transition:transform .25s}
details[open] .chev-down{transform:rotate(180deg)}
.chev-down{transition:transform .25s}
.tl::before{content:"";position:absolute;left:34px;top:70px;bottom:-12px;width:4px;background:#D9506A;opacity:.8}
.tl:last-child::before{display:none}
.payment-badge{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:4px;padding:2px 6px;height:24px}
.package-card{transition:all .2s ease;border:2px solid transparent}
.package-card.selected{border-color:#B01E2F;background-color:#FFF5F6;box-shadow:0 4px 12px rgba(176,30,47,.1)}
.package-card .radio-circle{display:flex;align-items:center;justify-content:center}
.package-card.selected .radio-circle{border-color:#B01E2F;background-color:#B01E2F}
.package-card.selected .radio-circle::after{content:'';width:8px;height:8px;background:#fff;border-radius:50%;display:block}
.pulse-ring{animation:ring .9s ease}
@keyframes ring{0%,100%{box-shadow:0 0 0 0 rgba(176,30,47,0)}40%{box-shadow:0 0 0 6px rgba(176,30,47,.35)}}
.field{width:100%;border:1.5px solid #e7e5e4;border-radius:12px;padding:.75rem 1rem;font-size:.9rem;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.field:focus{border-color:#B01E2F;box-shadow:0 0 0 3px rgba(176,30,47,.12)}
.field:invalid:not(:placeholder-shown):not(:focus){border-color:#dc2626}
.lbl{display:block;font-size:.8rem;font-weight:600;color:#44403c;margin-bottom:.35rem}
@media(prefers-reduced-motion:reduce){.ticker{animation:none;padding-left:0}html{scroll-behavior:auto}}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #FFB800;outline-offset:2px}
