/* Mobile Bar Orlando — hand-rolled CSS, no build step. Colors match original brand (oklch). */
:root{
  --coral:oklch(0.68 0.2 30); --coral-light:oklch(0.78 0.15 30); --coral-dark:oklch(0.55 0.18 30);
  --teal:oklch(0.75 0.14 180); --teal-dark:oklch(0.6 0.14 180);
  --yellow:oklch(0.88 0.15 90); --navy:oklch(0.25 0.03 250);
  --peach:oklch(0.96 0.02 50); --warm-white:oklch(0.99 0.005 80);
  --muted:oklch(0.5 0.02 250); --border:oklch(0.92 0.01 50);
  --red:oklch(0.577 0.245 27.325); --radius:0.75rem;
}
*{margin:0;padding:0;box-sizing:border-box}
img{max-width:100%;display:block}
body{font-family:'DM Sans',sans-serif;background:var(--warm-white);color:var(--navy);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:'Fredoka',sans-serif;line-height:1.15;font-weight:600}
a{color:inherit;text-decoration:none}
.container{width:100%;margin:0 auto;padding:0 1rem}
@media(min-width:640px){.container{padding:0 1.5rem}}
@media(min-width:1024px){.container{padding:0 2rem;max-width:1280px}}
.accent{color:var(--coral)} .accent-y{color:var(--yellow)}
.muted{color:var(--muted)}

/* ---- top bar ---- */
.topbar{background:var(--navy);color:#fff;font-size:.85rem;padding:.45rem 0}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.topbar a{display:inline-flex;align-items:center;gap:.35rem;margin-right:1rem;transition:color .2s}
.topbar a:hover{color:var(--coral-light)}
.topbar .tag{display:none;font-weight:600}
@media(min-width:768px){.topbar .tag{display:inline}}
.topbar .hide-sm{display:none}
@media(min-width:640px){.topbar .hide-sm{display:inline}}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:50;background:#fff;transition:box-shadow .3s}
.nav.solid{box-shadow:0 4px 18px rgba(0,0,0,.08)}
.nav .container{display:flex;align-items:center;justify-content:space-between;padding-top:.7rem;padding-bottom:.7rem}
.brand{display:flex;align-items:center;gap:.5rem;font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.25rem;color:var(--navy)}
.brand img{width:40px;height:40px;object-fit:contain}
.brand .accent{color:var(--coral)}
.navlinks{display:none;align-items:center;gap:.15rem}
.navlinks a{padding:.5rem .75rem;border-radius:.6rem;font-size:.9rem;font-weight:500;transition:all .2s}
.navlinks a:hover{color:var(--coral);background:color-mix(in oklab,var(--peach) 55%,transparent)}
.navlinks a.active{color:var(--coral);background:var(--peach)}
.navlinks a.cta{background:var(--coral);color:#fff;margin-left:.5rem;font-weight:700}
.navlinks a.cta:hover{background:var(--coral-light)}
@media(min-width:1024px){.navlinks{display:flex}.navtoggle{display:none}}
.navtoggle{background:none;border:0;padding:.5rem;border-radius:.6rem;cursor:pointer;color:var(--navy)}
.navtoggle:hover{background:var(--peach)}
.mobilenav{display:none;border-top:1px solid var(--border);background:#fff;padding:.5rem 0 1rem}
.mobilenav.open{display:block}
.mobilenav a{display:block;padding:.75rem 1rem;border-radius:.6rem;font-weight:500;margin:0 1rem}
.mobilenav a:hover{background:color-mix(in oklab,var(--peach) 55%,transparent)}
.mobilenav a.active{color:var(--coral);background:var(--peach)}
.mobilenav a.cta{background:var(--coral);color:#fff;text-align:center;margin-top:.5rem;font-weight:700}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 2rem;border-radius:.85rem;font-weight:700;font-size:1.05rem;border:0;cursor:pointer;font-family:'DM Sans',sans-serif;transition:transform .16s cubic-bezier(.23,1,.32,1),box-shadow .16s ease,background .2s}
.btn:hover{transform:scale(1.03)} .btn:active{transform:scale(.97)}
.btn-coral{background:var(--coral);color:#fff;box-shadow:0 10px 24px -6px color-mix(in oklab,var(--coral) 45%,transparent)}
.btn-white{background:#fff;color:var(--coral);box-shadow:0 8px 22px -6px rgba(0,0,0,.25)}
.btn-white.teal{color:var(--teal-dark)}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border:2px solid rgba(255,255,255,.35);font-weight:600}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn-peach{background:var(--peach);color:var(--navy);font-weight:600}
.btn-sm{padding:.7rem 1.4rem;font-size:.92rem}

/* ---- sections & heroes ---- */
section{position:relative}
.sec{padding:4.5rem 0}
.sec-lg{padding:5rem 0}
.hero-dark{background:var(--navy);padding:5rem 0;text-align:center;overflow:hidden}
.hero-dark h1{color:#fff;font-size:clamp(2.2rem,5vw,3.2rem);margin-bottom:1rem}
.hero-dark p{color:rgba(255,255,255,.8);font-size:1.1rem;max-width:42rem;margin:0 auto}
.sec-head{text-align:center;margin-bottom:3rem}
.sec-head h2{font-size:clamp(1.8rem,4vw,2.5rem);margin-bottom:1rem}
.sec-head p{color:var(--muted);font-size:1.1rem;max-width:42rem;margin:0 auto}
.bg-peach{background:var(--peach)} .bg-navy{background:var(--navy)} .bg-coral{background:var(--coral)} .bg-teal{background:var(--teal)} .bg-yellow{background:var(--yellow)}

/* home hero */
.home-hero{position:relative;min-height:85vh;display:flex;align-items:center;overflow:hidden}
.home-hero .bg{position:absolute;inset:0}
.home-hero .bg img{width:100%;height:100%;object-fit:cover}
.home-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,color-mix(in oklab,var(--navy) 85%,transparent),color-mix(in oklab,var(--navy) 65%,transparent) 50%,color-mix(in oklab,var(--navy) 20%,transparent))}
.home-hero .inner{position:relative;z-index:2;padding:5rem 0;max-width:42rem}
.home-hero h1{color:#fff;font-size:clamp(2.4rem,6vw,3.75rem);margin:1.5rem 0}
.home-hero p{color:rgba(255,255,255,.9);font-size:clamp(1.05rem,2vw,1.25rem);margin-bottom:2rem}
.hero-btns{display:flex;flex-direction:column;gap:1rem}
@media(min-width:640px){.hero-btns{flex-direction:row}}

/* price pill */
.pill{display:inline-block;background:var(--yellow);color:var(--navy);font-family:'Fredoka',sans-serif;font-weight:700;padding:.5rem 1.25rem;border-radius:.5rem .5rem .5rem 0;position:relative;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.pill::after{content:'';position:absolute;bottom:-8px;left:0;border-left:8px solid color-mix(in oklab,var(--yellow) 60%,black);border-bottom:8px solid transparent}

/* ---- confetti ---- */
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.dot{position:absolute;border-radius:50%;opacity:.5;animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media(prefers-reduced-motion:reduce){.dot{animation:none}}
.z1{position:relative;z-index:1}

/* ---- cards & grids ---- */
.grid{display:grid;gap:1.5rem}
.g2{grid-template-columns:1fr} .g3{grid-template-columns:1fr} .g4{grid-template-columns:1fr}
@media(min-width:640px){.g2{grid-template-columns:repeat(2,1fr)}.g4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:768px){.g3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.card{background:#fff;border:1px solid var(--border);border-radius:1rem;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.card-lift{transition:transform .2s cubic-bezier(.23,1,.32,1),box-shadow .2s ease}
.card-lift:hover{transform:translateY(-4px);box-shadow:0 12px 32px -8px color-mix(in oklab,var(--navy) 15%,transparent)}
.card .imgwrap{aspect-ratio:16/10;overflow:hidden}
.card .imgwrap img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .imgwrap img{transform:scale(1.05)}
.card .pad{padding:1.25rem}
.card h3{font-size:1.25rem;margin-bottom:.5rem}
.card p{color:var(--muted);font-size:.92rem}

/* trust bar */
.trustbar{background:var(--yellow);padding:1.2rem 0}
.trustbar .container{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem 3rem}
.trustbar span{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.9rem;color:var(--navy)}

/* checklist */
.checklist{list-style:none}
.checklist li{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.6rem}
.checklist .tick{color:var(--teal);font-weight:700;flex-shrink:0}
.checklist .cross{color:var(--red);font-weight:700;flex-shrink:0}
.dotlist{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.dotlist li{display:flex;align-items:center;gap:.5rem;font-size:.92rem}
.dotlist li::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--teal);flex-shrink:0}

/* steps */
.stepnum{width:4rem;height:4rem;border-radius:50%;color:#fff;font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.5rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;box-shadow:0 8px 20px rgba(0,0,0,.15)}

/* ---- ticket / pricing ---- */
.ticket{position:relative;background:#fff;border-radius:1rem;box-shadow:0 20px 50px -12px rgba(0,0,0,.18);border:2px solid color-mix(in oklab,var(--coral) 20%,transparent);overflow:hidden}
.notch{position:absolute;width:2rem;height:2rem;border-radius:50%;background:var(--warm-white)}
.notch.peach{background:var(--peach)} .notch.coral{background:var(--coral)}
.bigprice{display:inline-block;background:var(--yellow);color:var(--navy);font-family:'Fredoka',sans-serif;font-weight:700;font-size:3.5rem;padding:.75rem 2rem;border-radius:.85rem;box-shadow:0 8px 20px rgba(0,0,0,.12);line-height:1.1}
.pricetable{width:100%;border-collapse:collapse}
.pricetable th{background:color-mix(in oklab,var(--yellow) 30%,transparent);text-align:left;padding:1rem;font-family:'Fredoka',sans-serif}
.pricetable td{padding:1rem;border-top:1px solid var(--border)}
.pricetag-sm{display:inline-block;background:color-mix(in oklab,var(--coral) 10%,transparent);color:var(--coral);font-weight:700;padding:.25rem .75rem;border-radius:.5rem;font-size:.85rem}

/* calculator */
.calc-box{background:#fff;border-radius:.85rem;border:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,.05);padding:1.5rem;margin-bottom:1.5rem}
.calc-box label.head{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.1rem;display:block;margin-bottom:.75rem}
.calc-box .val{color:var(--coral);font-size:1.5rem;font-weight:700}
input[type=range]{width:100%;height:12px;border-radius:99px;appearance:none;-webkit-appearance:none;background:var(--border);cursor:pointer}
input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--coral);border:4px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--coral);border:4px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.stepper{display:flex;align-items:center;gap:1rem}
.stepper button{width:3rem;height:3rem;border-radius:.85rem;background:var(--coral);color:#fff;font-weight:700;font-size:1.3rem;border:0;cursor:pointer;box-shadow:0 4px 12px color-mix(in oklab,var(--coral) 35%,transparent)}
.stepper .n{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.9rem;width:3rem;text-align:center}
.addon{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:.85rem;cursor:pointer;border:2px solid transparent;background:color-mix(in oklab,var(--peach) 40%,transparent);transition:all .2s;margin-bottom:.7rem}
.addon:hover{border-color:var(--border)}
.addon.on{background:color-mix(in oklab,var(--coral) 5%,white);border-color:color-mix(in oklab,var(--coral) 40%,transparent)}
.addon input{width:1.25rem;height:1.25rem;accent-color:var(--coral)}
.addon .cost{background:var(--yellow);color:var(--navy);font-weight:700;font-size:.85rem;padding:.25rem .5rem;border-radius:.5rem;display:none}
.addon.on .cost{display:inline-block}
.estimate{position:sticky;top:6rem}
.est-row{display:flex;justify-content:space-between;font-size:.92rem;margin-bottom:.65rem}
.est-row .l{color:var(--muted)} .est-row .r{font-weight:600}
.est-total{border-top:2px dashed var(--border);padding-top:1rem;margin-top:1rem;display:flex;justify-content:space-between;align-items:center}
.est-total .amt{font-family:'Fredoka',sans-serif;font-weight:700;font-size:2.2rem;color:var(--coral);background:color-mix(in oklab,var(--yellow) 30%,transparent);padding:.15rem 1rem;border-radius:.6rem}
.note-box{display:flex;gap:.5rem;padding:.85rem;background:color-mix(in oklab,var(--yellow) 20%,transparent);border:1px solid color-mix(in oklab,var(--yellow) 40%,transparent);border-radius:.6rem;font-size:.8rem;color:color-mix(in oklab,var(--navy) 70%,transparent)}
.badge-2bt{background:color-mix(in oklab,var(--yellow) 30%,transparent);border-radius:.6rem;padding:.5rem;font-size:.8rem;font-weight:600;text-align:center;margin-bottom:.75rem;display:none}

/* compare cards */
.vs-card{background:#fff;border-radius:1rem;padding:2rem;position:relative}
.vs-card.us{border:2px solid var(--teal);box-shadow:0 10px 30px -10px rgba(0,0,0,.12)}
.vs-card.them{border:1px solid var(--border);opacity:.85}
.vs-tag{position:absolute;top:-1rem;left:1.5rem;font-weight:700;font-size:.85rem;padding:.35rem 1rem;border-radius:99px}
.vs-tag.us{background:var(--teal);color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.15)}
.vs-tag.them{background:var(--peach);color:var(--muted)}
.vs-price{font-family:'Fredoka',sans-serif;font-weight:700;font-size:3rem}
.cmp-row{display:grid;gap:1rem;margin-bottom:1rem}
@media(min-width:768px){.cmp-row{grid-template-columns:1fr 2fr 2fr}}
.cmp-cat{display:flex;align-items:center;gap:.5rem;font-family:'Fredoka',sans-serif;font-weight:600}
.cmp-us{background:color-mix(in oklab,var(--teal) 5%,white);border:1px solid color-mix(in oklab,var(--teal) 20%,transparent);border-radius:.85rem;padding:1rem;font-size:.9rem;display:flex;gap:.5rem;align-items:flex-start}
.cmp-them{background:color-mix(in oklab,var(--red) 5%,white);border:1px solid color-mix(in oklab,var(--red) 10%,transparent);border-radius:.85rem;padding:1rem;font-size:.9rem;color:var(--muted);display:flex;gap:.5rem;align-items:flex-start}
.cmp-head{font-family:'Fredoka',sans-serif;font-weight:700;text-align:center;padding:.85rem;border-radius:.85rem}

/* byob calc */
.byob-grid{display:grid;gap:1rem;margin-bottom:1.5rem}
@media(min-width:640px){.byob-grid{grid-template-columns:1fr 1fr}}
.byob-side{border-radius:.85rem;padding:1.25rem}
.byob-side.us{background:color-mix(in oklab,var(--teal) 5%,white);border:1px solid color-mix(in oklab,var(--teal) 20%,transparent)}
.byob-side.them{background:color-mix(in oklab,var(--red) 5%,white);border:1px solid color-mix(in oklab,var(--red) 20%,transparent)}
.byob-side .hd{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem}
.byob-side.us .hd{color:var(--teal-dark)} .byob-side.them .hd{color:var(--red)}
.byob-total{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.6rem}
.byob-side.us .byob-total{color:var(--teal-dark)} .byob-side.them .byob-total{color:var(--red)}
.savings{background:color-mix(in oklab,var(--yellow) 30%,transparent);border:1px solid color-mix(in oklab,var(--yellow) 50%,transparent);border-radius:.85rem;padding:1.25rem;text-align:center}
.savings .big{font-family:'Fredoka',sans-serif;font-weight:700;font-size:2.4rem}

/* faq */
.faq-item{background:#fff;border:1px solid var(--border);border-radius:.85rem;overflow:hidden;margin-bottom:.75rem}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem;cursor:pointer;font-family:'Fredoka',sans-serif;font-weight:600;transition:background .2s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{background:color-mix(in oklab,var(--peach) 30%,transparent)}
.faq-item summary::after{content:'▾';color:var(--coral);transition:transform .2s;flex-shrink:0}
.faq-item[open] summary::after{transform:rotate(180deg)}
.faq-item .body{padding:0 1.25rem 1.25rem;color:var(--muted);border-top:1px solid var(--border);padding-top:1rem}

/* forms */
.field{margin-bottom:1rem}
.field label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.4rem}
.field input,.field select,.field textarea{width:100%;padding:.8rem 1rem;border-radius:.85rem;border:1px solid var(--border);background:color-mix(in oklab,var(--peach) 30%,transparent);font-family:'DM Sans',sans-serif;font-size:1rem;color:var(--navy);transition:all .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px color-mix(in oklab,var(--coral) 25%,transparent)}
.field textarea{resize:vertical;min-height:7rem}
.f2{display:grid;gap:1rem}
@media(min-width:640px){.f2{grid-template-columns:1fr 1fr}}
.hp{position:absolute;left:-9999px;opacity:0;height:0}

/* blog */
.prose{max-width:46rem;margin:0 auto;font-size:1.05rem}
.prose h2{font-size:1.7rem;margin:2.2rem 0 .9rem}
.prose h3{font-size:1.3rem;margin:1.8rem 0 .7rem}
.prose p{margin-bottom:1rem;color:color-mix(in oklab,var(--navy) 85%,transparent)}
.prose ul,.prose ol{margin:0 0 1rem 1.4rem}
.prose li{margin-bottom:.4rem}
.prose a{color:var(--coral);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.prose table{width:100%;border-collapse:collapse;margin:1.2rem 0;font-size:.95rem;background:#fff;border-radius:.6rem;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.prose th{background:color-mix(in oklab,var(--yellow) 30%,transparent);text-align:left;padding:.7rem .9rem;font-family:'Fredoka',sans-serif;font-weight:600}
.prose td{padding:.7rem .9rem;border-top:1px solid var(--border)}
.prose strong{color:var(--navy)}
.post-meta{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem;margin-bottom:1rem}
.post-hero{aspect-ratio:16/7;overflow:hidden;border-radius:1rem;margin-bottom:2rem}
.post-hero img{width:100%;height:100%;object-fit:cover}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}
.chip{padding:.5rem 1rem;border-radius:99px;font-size:.88rem;font-weight:500;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#fff;transition:background .2s}
.chip:hover{background:rgba(255,255,255,.3)}
.chip-light{background:#fff;color:var(--navy);border:1px solid var(--border)}
.chip-light:hover{border-color:var(--coral);color:var(--coral);background:#fff}

/* services alternating */
.svc{display:flex;flex-direction:column;gap:2rem;align-items:center;margin-bottom:4rem}
.svc:last-child{margin-bottom:0}
@media(min-width:1024px){.svc{flex-direction:row}.svc.rev{flex-direction:row-reverse}.svc>div{width:50%}}
.svc img{border-radius:1rem;box-shadow:0 15px 40px -12px rgba(0,0,0,.2);aspect-ratio:16/10;object-fit:cover;width:100%}
.svc h2{font-size:1.9rem;margin-bottom:.75rem;display:flex;align-items:center;gap:.6rem}

/* footer */
footer{background:var(--navy);color:#fff}
footer .cols{display:grid;gap:2rem;padding:3rem 0 2.5rem;grid-template-columns:1fr}
@media(min-width:768px){footer .cols{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){footer .cols{grid-template-columns:repeat(4,1fr)}}
footer h4{font-size:1.1rem;margin-bottom:1rem}
footer ul{list-style:none}
footer li{margin-bottom:.5rem}
footer a{color:rgba(255,255,255,.7);font-size:.9rem;transition:color .2s}
footer a:hover{color:var(--coral-light)}
footer p{color:rgba(255,255,255,.7);font-size:.9rem}
.footbottom{border-top:1px solid rgba(255,255,255,.1);padding:1.5rem 0;display:flex;flex-direction:column;gap:1rem;justify-content:space-between;align-items:center;font-size:.85rem;color:rgba(255,255,255,.5)}
@media(min-width:640px){.footbottom{flex-direction:row}}
.footbottom a{color:rgba(255,255,255,.5)} .footbottom a:hover{color:var(--coral-light)}

/* reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .4s cubic-bezier(.23,1,.32,1),transform .4s cubic-bezier(.23,1,.32,1)}
.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
.no-js .reveal{opacity:1;transform:none}

/* misc */
.center{text-align:center}
.mt1{margin-top:1rem}.mt2{margin-top:2rem}.mb1{margin-bottom:1rem}.mb2{margin-bottom:2rem}
.maxw{max-width:48rem;margin-left:auto;margin-right:auto}
.white{color:#fff} .white-80{color:rgba(255,255,255,.85)}
.success-box{text-align:center;max-width:32rem;margin:0 auto;padding:6rem 0}
