/* Freshfold Laundry: clean and bubbly */
:root {
  --sky: #2D8CFF; --sky-d: #1668D6; --sky-l: #E3F0FF; --bubble: #F5FAFF; --navy: #0E2A47; --navy-2: #1B3E63; --mint: #7DE2C3; --mint-d: #1E8E6E; --mint-l: #E2F8F1;
  --text: #0E2A47; --muted: #4A6178; --line: #D6E6F7;
  --head: 'Quicksand', 'Trebuchet MS', sans-serif; --body: 'Inter', system-ui, sans-serif;
  --wrap: 1240px; --r: 28px; --r-sm: 18px;
  --shadow: 0 18px 40px -22px rgba(14, 42, 71, .35);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 150px; }
body { margin: 0; background: var(--bubble); color: var(--text); font: 400 1rem/1.65 var(--body); overflow-x: hidden; }
img { max-width: 100%; display: block; color: transparent; }
a { color: var(--sky-d); text-underline-offset: 3px; }
h1, h2, h3 { font-family: var(--head); font-weight: 700; line-height: 1.12; margin: 0 0 1rem; letter-spacing: -.01em; }
h1 { font-size: clamp(2.4rem, 5.6vw, 4.4rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.8rem); }
h3 { font-size: clamp(1.15rem, 1.8vw, 1.35rem); }
p { margin: 0 0 1rem; }
:focus-visible { outline: 3px solid var(--sky); outline-offset: 3px; border-radius: 10px; }
.skip { position: absolute; left: 16px; top: -100px; z-index: 100; background: var(--navy); color: #fff; padding: 12px 18px; border-radius: 999px; }
.skip:focus { top: 60px; }
main:focus { outline: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.narrow { max-width: 860px; }
.center { text-align: center; }
.ic { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 50px; padding: 0 1.5rem; border-radius: 999px; font: 700 1rem/1 var(--head); text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s; }
.btn .ic { width: 18px; height: 18px; }
.btn:hover { transform: translateY(-2px); }
.btn-blue { background: var(--sky); color: #fff; box-shadow: 0 10px 24px -12px rgba(45, 140, 255, .8); }
.btn-blue:hover { background: var(--sky-d); color: #fff; }
.btn-mint { background: var(--mint); color: var(--navy); }
.btn-white { background: #fff; color: var(--navy); }
.btn-soft { background: var(--sky-l); color: var(--sky-d); }
.btn-ghost-w { border-color: rgba(255, 255, 255, .7); color: #fff; }
.btn-ghost-w:hover { background: rgba(255, 255, 255, .15); color: #fff; }
.btn-lg { min-height: 58px; padding: 0 2rem; font-size: 1.08rem; }
.btn-full { width: 100%; margin-top: 10px; }
.btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.6rem; }

/* Header: floating pill */
.hdr { position: sticky; top: 0; z-index: 50; padding: 14px 16px 0; transition: padding .25s; }
.hdr-pill { max-width: var(--wrap); margin: 0 auto; background: #fff; border-radius: 999px; box-shadow: 0 10px 30px -16px rgba(14, 42, 71, .35); display: flex; align-items: center; gap: 16px; padding: 10px 10px 10px 18px; transition: padding .25s, box-shadow .25s; position: relative; }
.hdr.is-condensed { padding-top: 8px; }
.hdr.is-condensed .hdr-pill { padding-top: 6px; padding-bottom: 6px; box-shadow: 0 14px 36px -16px rgba(14, 42, 71, .45); }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--navy); font: 700 1.45rem/1 var(--head); margin-right: auto; }
.mark { width: 40px; height: 40px; }
.nav ul { list-style: none; display: flex; gap: 2px; margin: 0; padding: 0; }
.nav a { display: block; padding: 10px 13px; border-radius: 999px; text-decoration: none; color: var(--navy); font: 600 .95rem/1 var(--head); }
.nav a:hover { background: var(--sky-l); }
.nav a[aria-current=page] { background: var(--sky-l); color: var(--sky-d); }
.nav-foot { display: none; }
.burger { display: none; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--sky-l); cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 4px; }
.burger span { width: 20px; height: 2px; border-radius: 2px; background: var(--navy); transition: transform .2s, opacity .2s; }
.burger[aria-expanded=true] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.burger[aria-expanded=true] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded=true] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 1120px) {
  .burger { display: flex; }
  .nav { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 10px); background: #fff; border-radius: 26px; box-shadow: var(--shadow); padding: 14px; max-height: calc(100vh - 150px); overflow-y: auto; }
  .nav.is-open { display: block; }
  .nav ul { flex-direction: column; }
  .nav a { font-size: 1.2rem; padding: 14px 16px; }
  .nav-foot { display: block; padding: 12px 6px 4px; }
  .nav-foot .btn { width: 100%; }
  .nav-foot p { color: var(--muted); font-size: .9rem; margin: 12px 4px 0; }
}
@media (max-width: 520px) { .hdr-cta { display: none; } .hdr { padding: 10px 12px 0; } .logo { font-size: 1.3rem; } }

.chip { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; background: var(--mint-l); color: var(--mint-d); font: 700 .8rem/1 var(--head); letter-spacing: .04em; margin-bottom: 1rem; }
.chip::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--mint-d); }
.lede { font-size: clamp(1.05rem, 1.5vw, 1.2rem); color: var(--muted); max-width: 60ch; }
.sec { padding: clamp(60px, 8vw, 110px) 0; position: relative; }
.sec-soft { background: #EAF3FE; }
.sec-blue { background: linear-gradient(160deg, var(--sky), #1F6FE0); color: #fff; overflow: hidden; }
.sec-blue h2, .sec-blue h3 { color: #fff; }
.sec-blue p, .sec-blue .lede { color: #E6F1FF; }
.sec-blue .chip { background: rgba(255, 255, 255, .18); color: #fff; }
.sec-blue .chip::before { background: var(--mint); }
.sec-blue a:not(.btn) { color: #fff; }
.sec-head { margin-bottom: 2.8rem; max-width: 720px; }
.sec-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.sec-head.center .lede { margin: 0 auto; }
.demo-note { font-size: .82rem; color: var(--muted); margin-top: 1rem; }
.sec-blue .demo-note { color: #D2E6FF; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.split > *, .hero-card > *, .phero-in > *, .calc > *, .sched > *, .faq-wrap > * { min-width: 0; }
.ticks { list-style: none; padding: 0; margin: 1.2rem 0; display: grid; gap: 10px; }
.ticks li { display: flex; gap: 10px; align-items: flex-start; }
.ticks .ic { color: var(--mint-d); background: var(--mint-l); border-radius: 50%; padding: 3px; width: 24px; height: 24px; }
.sec-blue .ticks .ic { background: rgba(255,255,255,.2); color: #fff; }

/* Photos and bubbles */
.ph { margin: 0; position: relative; overflow: hidden; border-radius: var(--r); background: radial-gradient(circle at 30% 30%, #fff 0 6%, transparent 7%), radial-gradient(circle at 70% 60%, rgba(255,255,255,.7) 0 4%, transparent 5%), linear-gradient(150deg, #CFE5FF, #A9D0FF); }
.ph img { width: 100%; height: 100%; object-fit: cover; }
.blob { border-radius: 42% 58% 54% 46% / 48% 42% 58% 52%; }
.bub { position: absolute; border-radius: 50%; pointer-events: none; background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .95), rgba(255, 255, 255, .25) 40%, rgba(125, 226, 195, .25) 70%, rgba(45, 140, 255, .15)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6); animation: float 9s ease-in-out infinite; }
@keyframes float { 50% { transform: translateY(-14px); } }

/* Hero */
.hero { padding: 26px 0 40px; }
.hero-card { position: relative; overflow: hidden; border-radius: 44px; background: linear-gradient(140deg, #3B97FF, var(--sky) 40%, #1B6FDE); color: #fff; padding: clamp(36px, 6vw, 80px); display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px, 5vw, 64px); align-items: center; }
.hero-card h1 { color: #fff; }
.hero-card .lede { color: #E6F1FF; }
.hero-card .chip { background: rgba(255, 255, 255, .18); color: #fff; }
.hero-card .chip::before { background: var(--mint); }
.h1b { width: 220px; height: 220px; right: -60px; top: -60px; }
.h2b { width: 90px; height: 90px; left: 44%; bottom: 30px; animation-delay: -3s; }
.h3b { width: 40px; height: 40px; left: 6%; top: 18%; animation-delay: -6s; }
.hero-ticks { list-style: none; padding: 0; margin: 1.6rem 0 0; display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: .95rem; }
.hero-ticks li { display: flex; align-items: center; gap: 8px; }
.hero-ticks .ic { color: var(--mint); }
.hero-m { position: relative; }
.hero-m .ph { box-shadow: 0 30px 60px -30px rgba(14, 42, 71, .7); }
.float { position: absolute; display: flex; align-items: center; gap: 12px; background: #fff; color: var(--navy); border-radius: 20px; padding: 12px 16px; box-shadow: var(--shadow); }
.float strong { display: block; font: 700 .98rem/1.2 var(--head); }
.float small { color: var(--muted); }
.f1 { left: -24px; top: 18%; }
.f2 { right: -12px; bottom: 12%; }
.f-ic { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--sky-l); color: var(--sky-d); }
.f-ic.mint { background: var(--mint-l); color: var(--mint-d); }

/* Steps */
.steps3 { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.steps3 li { position: relative; background: #fff; border-radius: var(--r); padding: 34px 28px; box-shadow: var(--shadow); }
.s-ic { width: 60px; height: 60px; border-radius: 22px; display: grid; place-items: center; background: var(--sky-l); color: var(--sky-d); margin-bottom: 18px; }
.s-ic .ic { width: 28px; height: 28px; }
.s-n { position: absolute; top: 24px; right: 26px; font: 700 3rem/1 var(--head); color: var(--sky-l); }
.steps3 p { color: var(--muted); margin: 0; }

/* Services grid */
.svc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.svc { background: #fff; color: var(--navy); border-radius: var(--r); overflow: hidden; text-decoration: none; transition: transform .25s; }
.svc:hover { transform: translateY(-5px); color: var(--navy); }
.svc .ph { border-radius: var(--r) var(--r) 0 0; }
.svc-t { padding: 20px 22px 24px; }
.svc-t h3 { color: var(--navy) !important; }
.svc-t p { color: var(--muted) !important; margin: 0; font-size: .95rem; }

/* Mini calc */
.mini-calc { background: #fff; border-radius: var(--r); padding: 22px; box-shadow: var(--shadow); margin-top: 1.4rem; }
.mc-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--line); font-weight: 600; }
.mc-total { margin: 16px 0; font-size: 1rem; }
.mc-total strong { font: 700 1.5rem/1 var(--head); color: var(--sky-d); }
.qty { display: inline-flex; align-items: center; gap: 6px; background: var(--bubble); border-radius: 999px; padding: 4px; }
.qty button { width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: var(--sky-d); cursor: pointer; display: grid; place-items: center; box-shadow: 0 2px 6px rgba(14, 42, 71, .1); }
.qty button:hover { background: var(--sky); color: #fff; }
.qty .ic { width: 18px; height: 18px; }
.qty output { min-width: 28px; text-align: center; font: 700 1.05rem/1 var(--head); }

/* Stats */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.stat { background: #fff; border-radius: var(--r); padding: 28px 24px; text-align: center; }
.stat strong { display: block; font: 700 clamp(2rem, 4vw, 3rem)/1 var(--head); color: var(--sky); margin-bottom: 8px; }
.stat span { color: var(--muted); }

/* Quotes */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.quote { margin: 0; background: #fff; border-radius: 28px 28px 28px 6px; padding: 30px; box-shadow: var(--shadow); position: relative; }
.quote blockquote { margin: 0 0 16px; }
.quote blockquote p { font-size: 1.05rem; }
.quote figcaption { font: 700 .92rem/1 var(--head); color: var(--sky-d); }
.quote-w { background: rgba(255, 255, 255, .14); box-shadow: none; margin-top: 1.6rem; }
.quote-w blockquote p { color: #fff; }
.quote-w figcaption { color: var(--mint); }

/* Track mini */
.track-mini { display: flex; gap: 10px; background: rgba(255, 255, 255, .16); padding: 8px; border-radius: 999px; max-width: 480px; margin-top: 1.4rem; }
.track-mini input { border: 0; background: #fff; border-radius: 999px; }

/* Biz strip */
.biz-strip { display: flex; align-items: center; gap: 28px; background: #fff; border-radius: var(--r); padding: 30px 36px; box-shadow: var(--shadow); }
.biz-strip > div { flex: 1; }
.biz-strip h2 { font-size: clamp(1.4rem, 2.6vw, 2rem); margin-bottom: 6px; }
.biz-strip p { margin: 0; color: var(--muted); }
.biz-ic { width: 72px; height: 72px; border-radius: 26px; background: var(--mint-l); color: var(--mint-d); display: grid; place-items: center; flex: none; }
.biz-ic .ic { width: 34px; height: 34px; }

/* CTA */
.cta { padding: 0 0 clamp(60px, 8vw, 100px); }
.cta-in { position: relative; overflow: hidden; background: var(--navy); color: #fff; border-radius: 40px; padding: clamp(36px, 5vw, 60px); display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.cta-in h2 { color: #fff; margin-bottom: 6px; }
.cta-in p { color: #C9DAEC; margin: 0; max-width: 50ch; }
.cta-in .btns { margin: 0; }
.c1 { width: 180px; height: 180px; right: 18%; top: -90px; opacity: .5; }
.c2 { width: 70px; height: 70px; right: 6%; bottom: -20px; opacity: .6; }

/* Page hero */
.phero { padding: 30px 0 clamp(40px, 5vw, 72px); }
.phero-in { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.phero-m { position: relative; }
.phero-m .b1 { width: 110px; height: 110px; left: -30px; bottom: -10px; }
.phero-m .b2 { width: 46px; height: 46px; right: 8%; top: -14px; animation-delay: -4s; }
.phero h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); }

/* Service rows */
.svc-rows { display: grid; gap: clamp(48px, 7vw, 96px); }
.svc-row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; scroll-margin-top: 150px; }
.svc-row > * { min-width: 0; }
.svc-row.rev .svc-row-m { order: 2; }
.from { font: 700 1.3rem/1 var(--head); color: var(--sky-d); }
.speed { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.sp { background: #fff; border-radius: var(--r); padding: 30px; text-align: center; }
.sp-t { font: 700 2.4rem/1 var(--head); color: var(--sky); margin: 4px 0 12px; }
.sp p:last-child { color: var(--muted); margin: 0; }
.sp-hot { background: var(--navy); color: #fff; }
.sp-hot h3 { color: #fff; } .sp-hot .sp-t { color: var(--mint); } .sp-hot p:last-child { color: #C9DAEC; }
.promise { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
.promise li { display: flex; gap: 16px; background: #fff; padding: 22px; border-radius: var(--r-sm); box-shadow: var(--shadow); }
.promise .ic { width: 32px; height: 32px; color: var(--sky); }
.promise h3 { font-size: 1.1rem; margin-bottom: 4px; }
.promise p { margin: 0; color: var(--muted); }

/* Calculator */
.calc { display: grid; grid-template-columns: 1.5fr 1fr; gap: 32px; align-items: start; }
.tablist { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
[role=tab] { display: inline-flex; align-items: center; gap: 8px; min-height: 50px; padding: 0 18px; border-radius: 999px; border: 0; background: #fff; color: var(--navy); font: 700 .98rem/1 var(--head); cursor: pointer; box-shadow: 0 2px 8px rgba(14, 42, 71, .06); }
[role=tab] .ic { width: 20px; height: 20px; color: var(--sky); }
[role=tab][aria-selected=true] { background: var(--navy); color: #fff; }
[role=tab][aria-selected=true] .ic { color: var(--mint); }
.calc-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.calc-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; background: #fff; border-radius: var(--r-sm); padding: 16px 18px; }
.calc-row h3 { font-size: 1.08rem; margin-bottom: 2px; }
.calc-row p { margin: 0; color: var(--muted); font-size: .92rem; }
.calc-sum { position: sticky; top: 140px; background: #fff; border-radius: var(--r); padding: 28px; box-shadow: var(--shadow); }
.calc-sum h2 { font-size: 1.6rem; }
.sum-lines { list-style: none; padding: 0; margin: 0 0 16px; max-height: 220px; overflow-y: auto; }
.sum-lines li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: .94rem; }
.sum-empty { color: var(--muted); justify-content: flex-start !important; }
.opt-set { border: 0; padding: 0; margin: 0 0 12px; display: grid; gap: 6px; }
.opt-set legend { font-weight: 700; margin-bottom: 6px; font-family: var(--head); }
.radio, .switch { display: flex; align-items: center; gap: 10px; min-height: 40px; cursor: pointer; }
.radio input, .switch input { width: 20px; height: 20px; accent-color: var(--sky); }
.totals { margin: 10px 0 0; }
.totals div { display: flex; justify-content: space-between; padding: 6px 0; color: var(--muted); }
.totals dd { margin: 0; color: var(--navy); font-weight: 600; }
.grand { display: flex; justify-content: space-between; align-items: baseline; margin: 12px 0 10px; padding-top: 12px; border-top: 2px solid var(--navy); font: 700 1.1rem/1 var(--head); }
.grand strong { font-size: 2rem; color: var(--sky-d); }
.free-bar { height: 10px; border-radius: 999px; background: var(--sky-l); overflow: hidden; }
.free-bar span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--sky), var(--mint)); border-radius: 999px; transition: width .4s; }
.free-note { font-size: .9rem; color: var(--muted); margin: 8px 0 6px; }
.bundles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bundle { background: #fff; border-radius: var(--r); padding: 30px; position: relative; }
.b-hot { background: var(--navy); color: #fff; }
.b-hot h3 { color: #fff; }
.b-tag { position: absolute; top: 20px; right: 20px; background: var(--mint); color: var(--navy); border-radius: 999px; padding: 6px 12px; font: 700 .78rem/1 var(--head); margin: 0; }
.b-p { font: 700 2.2rem/1 var(--head); color: var(--sky); margin: 8px 0 18px; }
.b-hot .b-p { color: var(--mint); }
.b-p span { font-size: 1rem; color: var(--muted); }
.b-hot .b-p span { color: #C9DAEC; }
.bundle ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.bundle li { display: flex; gap: 10px; }
.bundle .ic { color: var(--mint-d); }
.b-hot .ic { color: var(--mint); }

/* Tables */
.tbl-wrap { overflow-x: auto; border-radius: var(--r); background: #fff; box-shadow: var(--shadow); }
.tbl { width: 100%; border-collapse: collapse; min-width: 560px; }
.tbl th, .tbl td { padding: 15px 20px; text-align: left; border-bottom: 1px solid var(--line); }
.tbl thead th { background: var(--navy); color: #fff; font: 700 .9rem/1.2 var(--head); }
.tbl tbody th { font-weight: 600; }
.tbl td { color: var(--muted); }
.tbl tr:last-child th, .tbl tr:last-child td { border-bottom: 0; }
.tbl .ic { color: var(--mint-d); }
.tbl-c td { text-align: center; } .tbl-c thead th:not(:first-child) { text-align: center; }
.tbl-w { color: var(--navy); }

/* Forms */
.field { display: flex; flex-direction: column; gap: 8px; border: 0; padding: 0; margin: 0; min-width: 0; }
.field label, .field legend { font: 700 .95rem/1.2 var(--head); }
.field legend { padding: 0; margin-bottom: 10px; }
input, select, textarea { font: inherit; color: var(--navy); background: var(--bubble); border: 2px solid var(--line); border-radius: 16px; padding: 12px 16px; min-height: 52px; width: 100%; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--sky); box-shadow: 0 0 0 4px rgba(45, 140, 255, .18); }
input[type=range] { padding: 0; min-height: 44px; border: 0; background: transparent; accent-color: var(--sky); box-shadow: none; }
input[aria-invalid=true], select[aria-invalid=true], textarea[aria-invalid=true] { border-color: #D93848; background: #FFF5F6; }
output { font: 700 1.2rem/1 var(--head); color: var(--sky-d); }
.err { color: #B4232F; font-weight: 600; font-size: .9rem; margin: 4px 0 0; }
.err:empty { display: none; }
.hint { color: var(--muted); font-size: .92rem; margin: 0; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.card-form { display: grid; gap: 18px; background: #fff; border-radius: 32px; padding: clamp(22px, 4vw, 40px); box-shadow: var(--shadow); }
.sec-blue .card-form { color: var(--navy); }
.form-step { display: flex; align-items: center; gap: 12px; margin-top: 8px; }
.form-step h2 { font-size: 1.4rem; margin: 0; }
.fs-n { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--sky); color: #fff; font: 700 1rem/1 var(--head); flex: none; }
.pills { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.pills legend { width: 100%; }
.pills label { position: relative; }
.pills input { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 0; }
.pills span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 18px; border-radius: 999px; background: var(--bubble); border: 2px solid var(--line); cursor: pointer; font-weight: 600; }
.pills input:checked + span { background: var(--sky); border-color: var(--sky); color: #fff; }
.pills input:focus-visible + span { outline: 3px solid var(--navy); outline-offset: 2px; }
.days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.day { min-height: 74px; border-radius: 20px; border: 2px solid var(--line); background: var(--bubble); color: var(--navy); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-family: var(--head); }
.day span { font-size: .78rem; font-weight: 600; color: var(--muted); }
.day strong { font-size: 1.4rem; }
.day[aria-pressed=true] { background: var(--sky); border-color: var(--sky); color: #fff; }
.day[aria-pressed=true] span { color: #E6F1FF; }
.day:disabled { opacity: .4; cursor: not-allowed; }
.win-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.win { position: relative; }
.win input { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 0; }
.win span { display: flex; flex-direction: column; gap: 2px; padding: 12px; border-radius: 18px; border: 2px solid var(--line); background: var(--bubble); cursor: pointer; min-height: 64px; justify-content: center; }
.win strong { font: 700 .95rem/1.2 var(--head); }
.win small { color: var(--muted); }
.win input:checked + span { background: var(--mint-l); border-color: var(--mint-d); }
.win input:focus-visible + span { outline: 3px solid var(--sky); outline-offset: 2px; }
.win.is-off span { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.sched { display: grid; grid-template-columns: 1.6fr 1fr; gap: 32px; align-items: start; }
.sched-side { position: sticky; top: 140px; display: grid; gap: 16px; }
.side-card { background: #fff; border-radius: var(--r); padding: 26px; box-shadow: var(--shadow); }
.side-card h2 { font-size: 1.4rem; }
.side-card dl { margin: 0; }
.side-card dl div { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--line); }
.side-card dt { color: var(--muted); }
.side-card dd { margin: 0; font-weight: 600; text-align: right; }
.side-calc { margin: 14px 0 0; padding: 12px 14px; border-radius: 14px; background: var(--sky-l); color: var(--sky-d); font-weight: 600; font-size: .92rem; }
.side-mint { background: var(--mint-l); box-shadow: none; }
.side-mint h3 { display: flex; align-items: center; gap: 8px; color: var(--mint-d); }
.side-mint ul { margin: 0; padding-left: 18px; display: grid; gap: 8px; color: var(--navy); }
.areas { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.areas li { display: flex; align-items: center; gap: 8px; background: #fff; padding: 12px 18px; border-radius: 999px; font-weight: 600; }
.areas .ic { color: var(--sky); width: 18px; height: 18px; }
.thanks { background: #fff; border-radius: 32px; padding: 36px; box-shadow: var(--shadow); color: var(--navy); }
.thanks:focus { outline: none; }
.th-bub { width: 64px; height: 64px; border-radius: 50%; background: var(--mint); color: var(--navy); display: grid; place-items: center; margin-bottom: 16px; }
.th-bub .ic { width: 30px; height: 30px; }
.thanks-sm { padding: 16px; border-radius: 18px; background: rgba(255, 255, 255, .1); color: #fff; box-shadow: none; }
.thanks-sm p { margin: 0; }

/* Timeline */
.tl { list-style: none; padding: 0; margin: 0; position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
.tl li { position: relative; }
.tl-dot { width: 52px; height: 52px; border-radius: 50%; background: var(--sky); color: #fff; display: grid; place-items: center; margin-bottom: -26px; margin-left: 24px; position: relative; z-index: 1; box-shadow: 0 0 0 6px var(--bubble); }
.tl-card { background: #fff; border-radius: var(--r); padding: 40px 24px 26px; box-shadow: var(--shadow); }
.tl-card .ph { margin-bottom: 16px; border-radius: 18px; }
.tl-n { font: 700 .8rem/1 var(--head); color: var(--mint-d); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; }
.tl-card p:last-child { color: var(--muted); margin: 0; }

/* Business */
.biz { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.bz { background: #fff; border-radius: var(--r); padding: 28px; }
.bz .ic { width: 36px; height: 36px; color: var(--sky); margin-bottom: 14px; }
.bz p { color: var(--muted); margin: 0; }
.biz-est { display: grid; gap: 18px; margin-top: 1.2rem; background: #fff; border-radius: var(--r); padding: 24px; }
.biz-out { background: var(--navy); color: #fff; border-radius: 36px; padding: 34px; }
.biz-out > p:first-child { color: #C9DAEC; margin: 0; }
.bo-total { font: 700 clamp(2.4rem, 5vw, 3.4rem)/1.1 var(--head); color: var(--mint); margin: 6px 0 16px !important; }
#bo-lines { list-style: none; padding: 0; margin: 0; }
#bo-lines li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, .15); }
.biz-out .demo-note { color: #C9DAEC; }

/* Tracker */
.track-row { display: flex; gap: 10px; }
.demo-no { border: 0; background: var(--sky-l); color: var(--sky-d); font: 700 .9rem/1 var(--head); padding: 10px 14px; border-radius: 999px; cursor: pointer; margin: 4px 6px 0 0; min-height: 40px; }
.demo-no:hover { background: var(--sky); color: #fff; }
.track-out { margin-top: 24px; background: #fff; border-radius: 32px; padding: clamp(22px, 4vw, 40px); box-shadow: var(--shadow); }
.track-out:focus { outline: none; }
.to-head { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.to-head p:last-child { color: var(--muted); }
.to-eta { background: var(--mint-l); border-radius: 20px; padding: 14px 18px; align-self: flex-start; }
.to-eta span { display: block; font-size: .85rem; color: var(--mint-d); font-weight: 600; }
.to-eta strong { font: 700 1.15rem/1.2 var(--head); }
.to-bar { height: 12px; border-radius: 999px; background: var(--sky-l); margin: 20px 0 26px; overflow: hidden; }
.to-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--sky), var(--mint)); border-radius: 999px; transition: width .6s; }
.stages { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.st { display: flex; gap: 16px; padding: 0 0 22px; position: relative; }
.st::before { content: ""; position: absolute; left: 11px; top: 24px; bottom: 0; width: 2px; background: var(--line); }
.st:last-child::before { display: none; }
.st-dot { width: 24px; height: 24px; border-radius: 50%; border: 3px solid var(--line); background: #fff; flex: none; position: relative; z-index: 1; }
.st-done .st-dot { background: var(--mint-d); border-color: var(--mint-d); }
.st-done::before { background: var(--mint-d); }
.st-now .st-dot { background: var(--sky); border-color: var(--sky-l); box-shadow: 0 0 0 6px rgba(45, 140, 255, .2); }
.st strong { display: block; font: 700 1.05rem/1.2 var(--head); }
.st small { color: var(--muted); }
.st-todo strong { color: var(--muted); }
.stage-key { display: grid; grid-template-columns: repeat(7, 1fr); gap: 12px; }
.sk { background: #fff; border-radius: 22px; padding: 20px 16px; text-align: center; }
.sk-n { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 10px; background: var(--sky-l); color: var(--sky-d); font: 700 1rem/1 var(--head); }
.sk h3 { font-size: 1rem; }
.sk p { margin: 0; color: var(--muted); font-size: .88rem; }

/* Locations */
.filters { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-bottom: 2rem; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips button { min-height: 46px; padding: 0 18px; border-radius: 999px; border: 2px solid var(--line); background: #fff; color: var(--navy); font: 700 .95rem/1 var(--head); cursor: pointer; }
.chips button[aria-pressed=true] { background: var(--navy); border-color: var(--navy); color: #fff; }
.count { margin: 0; color: var(--muted); }
.locs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.loc { background: #fff; border-radius: var(--r); padding: 26px; box-shadow: var(--shadow); }
.loc[hidden] { display: none; }
.loc-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.open-tag { flex: none; font: 700 .78rem/1 var(--head); padding: 7px 10px; border-radius: 999px; background: var(--sky-l); color: var(--sky-d); }
.open-tag.is-open { background: var(--mint-l); color: var(--mint-d); }
.open-tag.is-closed { background: #FDECEE; color: #A3202D; }
.loc-a, .loc-h { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 8px; font-weight: 500; }
.loc-a .ic, .loc-h .ic { width: 18px; height: 18px; color: var(--sky); margin-top: 3px; }
.loc p:last-child { color: var(--muted); margin: 0; }
.map { position: relative; aspect-ratio: 4/3; border-radius: 36px; overflow: hidden; background: #DCEBFC; }
.lagoon { position: absolute; left: -10%; right: -10%; top: 12%; height: 26%; background: #A9D0FF; border-radius: 50%; transform: rotate(-6deg); }
.road { position: absolute; background: #fff; border-radius: 8px; }
.rd1 { left: 0; right: 0; top: 62%; height: 12px; transform: rotate(-4deg); }
.rd2 { left: 22%; width: 10px; top: 30%; bottom: 0; transform: rotate(18deg); }
.mp { position: absolute; width: 22px; height: 22px; border-radius: 50%; background: var(--sky); box-shadow: 0 0 0 6px rgba(45, 140, 255, .25); }
.mp0 { left: 18%; top: 48%; } .mp1 { left: 34%; top: 56%; } .mp2 { left: 48%; top: 60%; } .mp3 { left: 74%; top: 66%; } .mp4 { left: 14%; top: 26%; background: var(--mint-d); } .mp5 { left: 26%; top: 22%; background: var(--mint-d); }
.ml { position: absolute; font: 700 .9rem/1 var(--head); background: #fff; padding: 6px 12px; border-radius: 999px; }
.ml1 { left: 8%; top: 8%; } .ml2 { left: 34%; top: 74%; } .ml3 { right: 8%; top: 80%; }

/* FAQ */
.faq-wrap { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: start; }
.faq-side { position: sticky; top: 140px; }
.faq-filters { flex-direction: column; align-items: stretch; background: #fff; padding: 20px; border-radius: var(--r); box-shadow: var(--shadow); }
.chips-col { flex-direction: column; }
.chips-col button { text-align: left; justify-content: flex-start; width: 100%; }
.search-box { position: relative; }
.search-box .ic { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.search-box input { padding-left: 44px; }
.faq-g { background: #fff; border-radius: var(--r); padding: 26px 28px; margin-bottom: 20px; box-shadow: var(--shadow); }
.faq-g h2 { font-size: 1.5rem; }
.faq-g[hidden] { display: none; }
.empty { text-align: center; padding: 40px; background: #fff; border-radius: var(--r); }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.tip { background: #fff; border-radius: var(--r); padding: 28px; }
.tip .ic { width: 34px; height: 34px; color: var(--sky); margin-bottom: 12px; }
.tip p { color: var(--muted); margin: 0; }

/* Accordion */
.acc-item { border-bottom: 1px solid var(--line); }
.acc-item[hidden] { display: none; }
.acc-item:last-child { border-bottom: 0; }
.acc-item h3 { margin: 0; font-size: 1.05rem; }
.acc-btn { width: 100%; min-height: 60px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; background: none; border: 0; color: inherit; font: 700 1.05rem/1.35 var(--head); text-align: left; cursor: pointer; }
.acc-ic { width: 32px; height: 32px; border-radius: 50%; background: var(--sky-l); position: relative; flex: none; }
.acc-ic::before, .acc-ic::after { content: ""; position: absolute; left: 10px; right: 10px; top: 15px; height: 2px; border-radius: 2px; background: var(--sky-d); transition: transform .25s; }
.acc-ic::after { transform: rotate(90deg); }
.acc-btn[aria-expanded=true] .acc-ic { background: var(--sky); }
.acc-btn[aria-expanded=true] .acc-ic::before, .acc-btn[aria-expanded=true] .acc-ic::after { background: #fff; }
.acc-btn[aria-expanded=true] .acc-ic::after { transform: rotate(0); }
.acc-panel p { color: var(--muted); padding-bottom: 16px; margin: 0; }
.sec-soft .narrow .acc, .sec .narrow .acc { background: #fff; border-radius: var(--r); padding: 6px 24px; box-shadow: var(--shadow); }

/* About */
.years { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.years li { background: #fff; border-radius: var(--r); padding: 24px; }
.years span { display: inline-block; font: 700 1.1rem/1 var(--head); color: #fff; background: var(--sky); padding: 8px 14px; border-radius: 999px; margin-bottom: 14px; }
.years p { color: var(--muted); margin: 0; }
.team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.mem { background: #fff; border-radius: var(--r); padding: 28px; text-align: center; }
.av { width: 88px; height: 88px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 16px; background: var(--sky-l); color: var(--sky-d); font: 700 1.5rem/1 var(--head); }
.av-m { background: var(--mint-l); color: var(--mint-d); }
.role { color: var(--sky-d); font-weight: 600; font-size: .9rem; }
.mem p:last-child { color: var(--muted); margin: 0; }
.ccards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.cc { background: #fff; border-radius: var(--r); padding: 30px; box-shadow: var(--shadow); }
.cc h2 { font-size: 1.35rem; }
.cc p { margin: 0; color: var(--muted); }

/* Lightbox (not used) and footer */
.ftr { position: relative; overflow: hidden; background: var(--navy); color: #C9DAEC; padding: 64px 0 28px; margin-top: 0; }
.ftr-bubbles span { position: absolute; border-radius: 50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.25), rgba(45,140,255,.08)); }
.ftr-bubbles span:nth-child(1) { width: 260px; height: 260px; right: -80px; top: -80px; }
.ftr-bubbles span:nth-child(2) { width: 90px; height: 90px; left: 8%; top: 40%; }
.ftr-bubbles span:nth-child(3) { width: 40px; height: 40px; left: 46%; top: 20px; }
.ftr-bubbles span:nth-child(4) { width: 140px; height: 140px; left: -40px; bottom: -40px; }
.ftr .wrap { position: relative; }
.ftr-cta { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; padding-bottom: 40px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.ftr-cta h2 { color: #fff; margin: 0; font-size: clamp(2rem, 4.4vw, 3.4rem); }
.ftr-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1.2fr; gap: 36px; padding: 40px 0; }
.logo-w { color: #fff; margin-bottom: 14px; }
.ftr-h { font: 700 1rem/1 var(--head); color: var(--mint); margin-bottom: 16px; }
.ftr p { font-size: .95rem; }
.ftr a { color: #fff; }
.ftr-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ftr-list a { text-decoration: none; display: inline-block; min-height: 30px; color: #C9DAEC; }
.ftr-list a:hover { color: #fff; text-decoration: underline; }
.ftr .demo-note { color: #9FB6CE; }
.nl { display: grid; gap: 10px; }
.nl label { color: #C9DAEC; font-size: .85rem; }
.nl input { background: var(--navy-2); color: #fff; border-color: rgba(255, 255, 255, .2); }
.ftr .err { color: #FFB3BA; }
.ftr-base { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 22px; }
.ftr-base p { margin: 0; font-size: .86rem; color: #9FB6CE; }

/* Reveal */
.js-reveal .reveal { opacity: 0; transform: translateY(24px) scale(.98); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .8, .2, 1.2); }
.js-reveal .reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Responsive */
@media (max-width: 1080px) {
  .svc-grid, .biz, .team { grid-template-columns: 1fr 1fr; }
  .calc, .sched, .faq-wrap { grid-template-columns: 1fr; }
  .calc-sum, .sched-side, .faq-side { position: static; }
  .tl { grid-template-columns: 1fr 1fr; }
  .stage-key { grid-template-columns: repeat(4, 1fr); }
  .years { grid-template-columns: repeat(3, 1fr); }
  .ftr-grid { grid-template-columns: 1fr 1fr; }
  .win-grid { grid-template-columns: repeat(3, 1fr); }
  .chips-col { flex-direction: row; } .chips-col button { width: auto; }
}
@media (max-width: 860px) {
  .hero-card, .phero-in, .split, .svc-row { grid-template-columns: 1fr; }
  .svc-row.rev .svc-row-m { order: 0; }
  .hero-m { max-width: 460px; }
  .steps3, .quotes, .speed, .bundles, .locs, .grid3, .ccards { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .biz-strip { flex-direction: column; align-items: flex-start; }
  .phero-m { max-width: 460px; }
}
@media (max-width: 560px) {
  .wrap { padding-left: 16px; padding-right: 16px; }
  .hero { padding-top: 16px; }
  .hero-card { border-radius: 32px; padding: 32px 20px; }
  .hero-card .btn { width: 100%; }
  .f1 { left: 4px; top: 8%; } .f2 { right: 4px; }
  .float { padding: 8px 12px; } .f-ic { width: 34px; height: 34px; }
  .svc-grid, .biz, .team, .field-row, .ftr-grid, .tl, .years { grid-template-columns: 1fr; }
  .stage-key { grid-template-columns: 1fr 1fr; }
  .days { grid-template-columns: repeat(4, 1fr); }
  .win-grid { grid-template-columns: 1fr 1fr; }
  .calc-row { flex-wrap: wrap; }
  .track-row { flex-direction: column; }
  .track-mini { border-radius: 26px; flex-direction: column; }
  .cta-in { border-radius: 30px; }
  .cta-in .btn { width: 100%; }
  [role=tab] { flex: 1 1 calc(50% - 8px); justify-content: center; padding: 0 10px; font-size: .9rem; }
}
.sec-tight-b { padding-bottom: 0; }
.pstrip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pstrip-3 { grid-template-columns: repeat(3, 1fr); }
.pstrip .ph:nth-child(odd) { border-radius: 50% 50% 28px 28px; }
.pstrip .ph:nth-child(even) { border-radius: 28px 28px 50% 50%; }
@media (max-width: 560px) { .pstrip, .pstrip-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .phero-m { max-width: 280px; margin: 0 auto; } .phero { padding-bottom: 24px; } }
