/* ===== FreshStep Carpet Cleaning — light/neutral theme ===== */
* { -webkit-tap-highlight-color: transparent; }
html, body { scroll-behavior: smooth; overflow-x: hidden; }
::selection { background: #1565d8; color: #fff; }

body::-webkit-scrollbar { width: 10px; }
body::-webkit-scrollbar-track { background: #f1f5f9; }
body::-webkit-scrollbar-thumb { background: linear-gradient(#1565d8, #2eb6f5); border-radius: 99px; }

/* ---------- Buttons ---------- */
.btn-primary {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .8rem 1.5rem; border-radius: 999px; font-weight: 700; color: #fff;
  background: linear-gradient(120deg, #1565d8, #2eb6f5);
  box-shadow: 0 12px 30px -10px rgba(21,101,216,.55);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 20px 44px -12px rgba(46,182,245,.6); filter: brightness(1.05); }
.btn-primary:active { transform: translateY(-1px) scale(.98); }

.btn-ghost {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .8rem 1.5rem; border-radius: 999px; font-weight: 600; color: #0f172a;
  background: #fff; border: 1px solid #e2e8f0;
  transition: transform .25s ease, background .25s ease, border-color .25s, box-shadow .25s;
}
.btn-ghost:hover { transform: translateY(-3px); border-color: #1565d8; color: #1565d8; box-shadow: 0 12px 30px -14px rgba(15,23,42,.25); }

.btn-white {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .85rem 1.5rem; border-radius: 999px; font-weight: 800; color: #1565d8;
  background: #fff; transition: transform .25s ease, filter .25s;
}
.btn-white:hover { transform: translateY(-3px); filter: brightness(.98); box-shadow: 0 14px 30px -12px rgba(0,0,0,.3); }

/* ---------- Nav ---------- */
#nav.scrolled { background: rgba(255,255,255,.85); backdrop-filter: blur(16px); border-bottom: 1px solid #eef2f7; box-shadow: 0 6px 24px -16px rgba(15,23,42,.3); }
.nav-link { position: relative; transition: color .2s; }
.nav-link::after { content:""; position:absolute; left:0; bottom:-6px; height:2px; width:0; background:linear-gradient(90deg,#1565d8,#2eb6f5); transition:width .3s; }
.nav-link:hover { color:#0f172a; } .nav-link:hover::after { width:100%; }
.mobile-link { display:block; padding:.6rem 0; color:#0f172a; transition:color .2s, transform .2s; }
.mobile-link:hover { transform: translateX(6px); color:#1565d8; }

/* ---------- Typography helpers ---------- */
.eyebrow { display:inline-flex; align-items:center; gap:.5rem; font-size:.75rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:#1565d8; }
.eyebrow::before { content:""; height:1px; width:28px; background:#1565d8; display:inline-block; }
.section-title { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:clamp(1.7rem,3.4vw,2.4rem); line-height:1.1; margin-top:.6rem; letter-spacing:-.02em; color:#0f172a; }

/* ---------- Hero ---------- */
.dot-grid { background-image: radial-gradient(#cbd5e1 1.1px, transparent 1.1px); background-size: 26px 26px; mask-image: radial-gradient(circle at 50% 35%, #000, transparent 72%); }
.float-badge { animation: floaty 5s ease-in-out infinite; }
.float-badge:nth-of-type(2) { animation-delay: -2.5s; }
@keyframes floaty { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-14px); } }
.tilt { transform-style: preserve-3d; transition: transform .3s ease; will-change: transform; }

/* ---------- Marquee ---------- */
.marquee { animation: marquee 28s linear infinite; }
@keyframes marquee { from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* ---------- Service cards ---------- */
.service-card {
  position: relative; padding: 1.25rem; border-radius: 1.25rem; overflow: hidden; background: #fff;
  border: 1px solid #eef2f7; box-shadow: 0 10px 40px -22px rgba(15,23,42,.25);
  transition: transform .4s cubic-bezier(.2,.7,.3,1), border-color .4s, box-shadow .4s;
}
.service-card:hover { transform: translateY(-10px); border-color: #bfe3fb; box-shadow: 0 30px 60px -28px rgba(21,101,216,.35); }
.service-card .img-wrap { height: 140px; border-radius: .9rem; overflow: hidden; margin-bottom: 1rem; }
.service-card .img-wrap img { width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.service-card:hover .img-wrap img { transform: scale(1.08); }
.service-card .icon-chip { display:grid; place-items:center; height:42px; width:42px; border-radius:12px; color:#fff; background:linear-gradient(135deg,#1565d8,#2eb6f5); box-shadow:0 12px 26px -10px rgba(21,101,216,.6); margin-bottom:.75rem; }
.service-card h3 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:1.15rem; color:#0f172a; }
.service-card p { margin-top:.5rem; color:#64748b; font-size:.92rem; line-height:1.6; }

/* ---------- Pricing ---------- */
.price-card {
  position: relative; display:flex; flex-direction:column; padding: 1.6rem; border-radius: 1.5rem; background:#fff;
  border: 1px solid #eef2f7; box-shadow: 0 16px 50px -26px rgba(15,23,42,.25); transition: transform .4s, box-shadow .4s;
}
.price-card:hover { transform: translateY(-8px); box-shadow: 0 34px 70px -30px rgba(15,23,42,.35); }
.price-card.featured { background: linear-gradient(155deg,#1565d8,#2b7bf0 55%,#2eb6f5); border-color: transparent; transform: scale(1.04); box-shadow: 0 40px 80px -30px rgba(21,101,216,.6); }
.price-card.featured:hover { transform: scale(1.04) translateY(-8px); }
.plan-name { font-size:.85rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#64748b; }
.price { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:2.7rem; line-height:1; color:#0f172a; }
.ribbon { position:absolute; top:1.5rem; right:1.5rem; background:#0f172a; color:#fff; font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.35rem .8rem; border-radius:999px; }
.price-list { margin-top:1.1rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.price-list li { display:flex; align-items:center; gap:.6rem; font-size:.95rem; color:#475569; }
.price-list li i { color:#1565d8; flex-shrink:0; }
.featured-list li { color:rgba(255,255,255,.92); }
.featured-list li i { color:#fff; }
.mini-price { display:flex; flex-direction:column; align-items:center; gap:.25rem; padding:1.1rem; border-radius:1rem; background:#fff; border:1px solid #eef2f7; text-align:center; transition:transform .3s, border-color .3s, box-shadow .3s; }
.mini-price:hover { transform:translateY(-5px); border-color:#bfe3fb; box-shadow:0 18px 40px -26px rgba(21,101,216,.4); }
.mini-price span { font-size:.82rem; color:#64748b; }
.mini-price strong { font-family:'Bricolage Grotesque',sans-serif; font-size:1.5rem; color:#0f172a; }

/* ---------- Service cards v2 ---------- */
.service-card-v2 {
  position: relative; border-radius: 1.25rem; overflow: hidden; background: #fff;
  border: 1px solid #eef2f7; box-shadow: 0 10px 40px -22px rgba(15,23,42,.25);
  transition: transform .4s cubic-bezier(.2,.7,.3,1), border-color .4s, box-shadow .4s;
}
.service-card-v2:hover { transform: translateY(-8px); border-color: #bfe3fb; box-shadow: 0 30px 60px -28px rgba(21,101,216,.35); }
.service-card-v2 .svc-img { height: 200px; overflow: hidden; }
.service-card-v2 .svc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.service-card-v2:hover .svc-img img { transform: scale(1.08); }
.service-card-v2 .svc-body { padding: 1.25rem 1.25rem 1.5rem; }
.service-card-v2 .svc-head { display: flex; align-items: center; gap: .65rem; margin-bottom: .65rem; }
.service-card-v2 .svc-icon { display: grid; place-items: center; height: 38px; width: 38px; border-radius: 10px; flex-shrink: 0; color: #fff; background: linear-gradient(135deg, #1565d8, #2eb6f5); box-shadow: 0 10px 24px -10px rgba(21,101,216,.55); }
.service-card-v2 .svc-head h3 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.1rem; color: #0f172a; line-height: 1.3; }
.service-card-v2 .svc-body p { color: #64748b; font-size: .9rem; line-height: 1.6; }
.service-card-v2 .svc-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .85rem; padding: 0; list-style: none; }
.service-card-v2 .svc-tags li { font-size: .75rem; font-weight: 600; color: #1565d8; background: #eef5ff; padding: .3rem .7rem; border-radius: 999px; }

/* ---------- Pricing v2 ---------- */
/* Package cards */
.pkg-card { position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid #d0e6f5; border-radius:16px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, border-color .25s; box-shadow:0 2px 12px rgba(21,101,216,.06); }
.pkg-card:hover { transform:translateY(-6px); box-shadow:0 12px 32px rgba(46,158,229,.15); border-color:#2eb6f5; }
.pkg-stripe { height:5px; width:100%; background:linear-gradient(90deg,#1565d8,#2eb6f5); }
.pkg-stripe-gold { height:7px; width:100%; background:linear-gradient(90deg,#f5c518,#ffd84d); }
.pkg-body { padding:1.25rem 1.1rem .75rem; flex:1; display:flex; flex-direction:column; }
.pkg-num { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:#94a3b8; }
.pkg-name { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:1.25rem; color:#0f172a; margin-top:.25rem; }
.pkg-sub { font-size:.78rem; font-style:italic; color:#64748b; margin-top:.2rem; line-height:1.4; }
.pkg-list { margin-top:.85rem; display:flex; flex-direction:column; gap:.45rem; }
.pkg-list li { display:flex; align-items:center; gap:.5rem; font-size:.85rem; font-weight:600; color:#334155; }
.pkg-list li i { color:#1565d8; flex-shrink:0; }
.pkg-price-bar { background:#e8f4fd; padding:1rem; display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.pkg-price { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:2.5rem; line-height:1; color:#1565d8; }
.pkg-was { font-size:.85rem; color:#999; text-decoration:line-through; }
.pkg-save { font-size:.72rem; font-weight:700; background:#1565d8; color:#fff; padding:.2rem .7rem; border-radius:999px; }
.pkg-cta { padding:.85rem 1.1rem; }
.pkg-btn { display:flex; align-items:center; justify-content:center; width:100%; padding:.65rem 1rem; border:1.5px solid #1565d8; border-radius:.7rem; font-size:.82rem; font-weight:700; color:#1565d8; background:#fff; transition:all .2s; text-align:center; }
.pkg-btn:hover { background:#1565d8; color:#fff; }

/* Featured card */
.pkg-featured { background:#e8f4fd; border-color:#2eb6f5; box-shadow:0 12px 40px -12px rgba(21,101,216,.25); transform:scale(1.03); z-index:2; }
.pkg-featured:hover { transform:scale(1.03) translateY(-6px); box-shadow:0 20px 50px -12px rgba(21,101,216,.3); }
.pkg-ribbon { position:absolute; top:0; right:0; background:#f5c518; color:#0f172a; font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:.3rem .7rem; border-bottom-left-radius:10px; z-index:3; }
.pkg-body-featured { padding:1.4rem 1.1rem .75rem; flex:1; display:flex; flex-direction:column; }
.pkg-num-featured { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:#1565d8; opacity:.7; }
.pkg-name-featured { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:1.4rem; color:#0f172a; margin-top:.25rem; }
.pkg-sub-featured { font-size:.78rem; font-style:italic; color:#475569; margin-top:.2rem; line-height:1.4; }
.pkg-list-featured { margin-top:.85rem; display:flex; flex-direction:column; gap:.45rem; }
.pkg-list-featured li { display:flex; align-items:center; gap:.5rem; font-size:.85rem; font-weight:600; color:#334155; }
.pkg-list-featured li i { color:#1565d8; flex-shrink:0; }
.pkg-price-bar-featured { background:#fff; padding:1.1rem; display:flex; flex-direction:column; align-items:center; gap:.25rem; border-top:1px solid #d0e6f5; }
.pkg-was-featured { font-size:.85rem; color:#999; text-decoration:line-through; }
.pkg-price-featured { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:3rem; line-height:1; color:#1565d8; }
.pkg-save-featured { font-size:.72rem; font-weight:700; background:#f5c518; color:#0f172a; padding:.2rem .7rem; border-radius:999px; }
.pkg-cta-featured { padding:.85rem 1.1rem; }
.pkg-btn-featured { display:flex; align-items:center; justify-content:center; width:100%; padding:.65rem 1rem; border-radius:.7rem; font-size:.82rem; font-weight:700; color:#fff; background:#1565d8; transition:all .2s; text-align:center; }
.pkg-btn-featured:hover { background:#2eb6f5; }

/* Price tables */
.price-table-wrap { background:#fff; border:1px solid #d0e6f5; border-radius:16px; overflow:hidden; box-shadow:0 2px 12px rgba(21,101,216,.06); }
.price-table-head { background:#e8f4fd; color:#1565d8; font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; padding:.85rem 1.1rem; display:flex; align-items:center; gap:.5rem; border-bottom:1px solid #d0e6f5; }
.price-table { width:100%; border-collapse:collapse; }
.price-table td { padding:.7rem 1.1rem; font-size:.9rem; color:#334155; }
.price-table td:last-child { text-align:right; font-weight:700; color:#1565d8; }
.price-table tr:nth-child(even) td { background:#f5fafe; }
.price-table-note { padding:.7rem 1.1rem; font-size:.8rem; font-style:italic; color:#94a3b8; display:flex; align-items:center; gap:.4rem; border-top:1px solid #eef2f7; }

/* Bundle banner */
.bundle-banner { display:flex; align-items:center; gap:1rem; background:linear-gradient(135deg,#1565d8,#2eb6f5); border-radius:999px; padding:.85rem 1.5rem; color:#fff; flex-wrap:wrap; box-shadow:0 6px 20px rgba(21,101,216,.2); }
.bundle-cta { font-weight:800; font-size:.9rem; white-space:nowrap; border-bottom:2px solid #fff; padding-bottom:1px; }

/* Rug & Mattress cards */
.rm-card { background:#fff; border:1px solid #d0e6f5; border-radius:16px; overflow:hidden; position:relative; box-shadow:0 2px 12px rgba(21,101,216,.06); }
.rm-head { background:#e8f4fd; color:#1565d8; font-weight:700; font-size:.9rem; padding:.85rem 1.1rem; display:flex; align-items:center; gap:.5rem; border-bottom:1px solid #d0e6f5; }
.rm-badge { margin-left:auto; background:#f5c518; color:#0f172a; font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:.2rem .55rem; border-radius:999px; }

/* Add-on treatment tiles */
.addon-tile { background:#fff; border:1px solid #d0e6f5; border-radius:12px; padding:1.25rem; display:flex; flex-direction:column; align-items:center; text-align:center; transition:transform .25s, box-shadow .25s, border-color .25s; box-shadow:0 2px 8px rgba(21,101,216,.05); }
.addon-tile:hover { transform:translateY(-4px); box-shadow:0 8px 24px rgba(46,158,229,.12); border-color:#2eb6f5; }
.addon-tile i { color:#1565d8; margin-bottom:.6rem; }
.addon-tile h4 { font-weight:700; font-size:.95rem; color:#0f172a; }
.addon-tile p { font-size:.8rem; color:#64748b; margin-top:.3rem; line-height:1.4; flex:1; }
.addon-tile-price { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:1.5rem; color:#1565d8; margin-top:.6rem; }

/* Eco bar */
.eco-bar { background:#28a745; border-radius:10px; padding:.85rem 1.5rem; display:flex; align-items:center; justify-content:center; gap:.6rem; color:#fff; font-weight:600; font-size:.9rem; text-align:center; }

/* Stain protection */
.stain-protect-card { display:flex; flex-direction:row; background:#e8f4fd; border:1px solid #d0e6f5; border-radius:20px; overflow:hidden; box-shadow:0 4px 20px rgba(21,101,216,.08); }
.stain-protect-left { padding:2rem; flex:1; display:flex; flex-direction:column; }
.stain-protect-label { font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#1565d8; }
.stain-protect-title { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:1.75rem; color:#0f172a; margin-top:.4rem; }
.stain-protect-desc { font-size:.88rem; color:#475569; line-height:1.6; margin-top:.6rem; }
.stain-protect-benefits { margin-top:1.2rem; display:flex; flex-direction:column; gap:.85rem; }
.stain-protect-benefits li { display:flex; gap:.6rem; align-items:flex-start; }
.stain-protect-benefits li i { color:#1565d8; flex-shrink:0; margin-top:.1rem; }
.stain-protect-benefits li strong { color:#0f172a; font-size:.9rem; }
.stain-protect-benefits li p { font-size:.78rem; color:#64748b; margin-top:.1rem; }
.stain-protect-price-box { margin-top:1.2rem; display:flex; flex-direction:column; gap:.15rem; padding:1rem 1.25rem; background:#fff; border:1.5px solid #2eb6f5; border-radius:12px; color:#0f172a; }
.stain-protect-btn { margin-top:1rem; display:flex; align-items:center; justify-content:center; padding:.75rem 1.5rem; background:#1565d8; color:#fff; border-radius:.7rem; font-weight:700; font-size:.9rem; transition:background .2s; }
.stain-protect-btn:hover { background:#2eb6f5; }
.stain-protect-right { flex:1; background:#fff; padding:2rem; }
.sp-step { display:flex; gap:.8rem; margin-bottom:1rem; }
.sp-num { flex-shrink:0; width:28px; height:28px; border-radius:50%; background:#1565d8; color:#fff; font-size:.8rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
.sp-step strong { color:#0f172a; font-size:.9rem; }
.sp-step p { font-size:.8rem; color:#64748b; margin-top:.1rem; }
.sp-flow { margin-top:1.2rem; display:flex; align-items:center; justify-content:center; gap:.6rem; flex-wrap:wrap; }
.sp-flow-item { display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.sp-flow-item i { color:#1565d8; }
.sp-flow-item span { font-size:.72rem; font-weight:600; color:#334155; text-align:center; }
.stain-protect-strip { display:flex; align-items:center; justify-content:center; gap:1.5rem; flex-wrap:wrap; background:#e8f4fd; border:1px solid #d0e6f5; border-top:none; border-radius:0 0 12px 12px; padding:.85rem 1.5rem; color:#334155; font-size:.82rem; font-weight:600; }
.stain-protect-strip span { display:flex; align-items:center; gap:.4rem; }
.stain-protect-strip i { color:#1565d8; }

/* Trust signals bar */
.trust-bar { background:#fff; border:1px solid #d0e6f5; border-top:3px solid #2eb6f5; border-radius:12px; padding:1.25rem; box-shadow:0 2px 12px rgba(21,101,216,.06); }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.trust-item { display:flex; align-items:center; gap:.5rem; font-size:.82rem; font-weight:600; color:#334155; }
.trust-item i { color:#1565d8; flex-shrink:0; }

/* Pricing CTA block */
.pricing-cta-block { background:linear-gradient(135deg,#e8f4fd,#f5fafe); border:1px solid #d0e6f5; border-radius:20px; padding:2.5rem 1.5rem; text-align:center; box-shadow:0 4px 20px rgba(21,101,216,.08); }
.pricing-cta-title { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:1.75rem; color:#0f172a; }
.pricing-cta-sub { font-size:.95rem; color:#475569; margin-top:.5rem; }
.pricing-cta-btns { display:flex; gap:1rem; justify-content:center; margin-top:1.5rem; flex-wrap:wrap; }
.pricing-cta-areas { font-size:.78rem; font-style:italic; color:#94a3b8; margin-top:1.5rem; }
.pricing-cta-tagline { font-size:.9rem; font-weight:800; letter-spacing:.1em; color:#1565d8; margin-top:.75rem; }

/* ---------- Before / After ---------- */
.ba-slider { position:relative; width:100%; aspect-ratio:16/11; border-radius:1.5rem; overflow:hidden; user-select:none; box-shadow:0 30px 60px -28px rgba(15,23,42,.45); border:1px solid #eef2f7; cursor:ew-resize; background:#0f172a; }
.ba-slider img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.ba-before { clip-path: inset(0 50% 0 0); border-right:3px solid #fff; }
.ba-handle { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); height:46px; width:46px; border-radius:999px; background:#fff; display:grid; place-items:center; box-shadow:0 6px 20px rgba(0,0,0,.3); z-index:3; }
.ba-tag { position:absolute; bottom:1rem; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; padding:.3rem .7rem; border-radius:999px; color:#fff; background:rgba(15,23,42,.65); backdrop-filter:blur(6px); }
.ba-tag-before { left:1rem; } .ba-tag-after { right:1rem; }
.result-point { display:flex; gap:1rem; align-items:flex-start; }

/* ---------- Why / Areas ---------- */
.why-item { display:flex; align-items:center; gap:.6rem; padding:.7rem .9rem; border-radius:.85rem; background:#fff; border:1px solid #eef2f7; font-size:.88rem; color:#334155; transition:transform .3s, border-color .3s; }
.why-item:hover { transform:translateX(6px); border-color:#bfe3fb; }
.area-chip { padding:.6rem 1.2rem; border-radius:999px; background:#fff; border:1px solid #e2e8f0; font-weight:600; font-size:.9rem; color:#334155; transition:all .3s; }
.area-chip:hover { background:linear-gradient(120deg,#1565d8,#2eb6f5); border-color:transparent; color:#fff; transform:translateY(-4px); box-shadow:0 14px 30px -12px rgba(21,101,216,.6); }

/* ---------- Reviews ---------- */
.review-card { padding:1.6rem; border-radius:1.25rem; background:#fff; border:1px solid #eef2f7; box-shadow:0 12px 44px -26px rgba(15,23,42,.25); transition:transform .4s, border-color .4s; }
.review-card:hover { transform:translateY(-8px); border-color:#bfe3fb; }
.review-card blockquote { color:#334155; line-height:1.7; font-size:.98rem; }
.review-card figcaption { margin-top:1.25rem; display:flex; flex-direction:column; }
.review-card figcaption strong { font-family:'Bricolage Grotesque',sans-serif; color:#0f172a; }
.review-card figcaption span { color:#94a3b8; font-size:.85rem; }

/* ---------- Contact ---------- */
.contact-row { display:flex; align-items:center; gap:1rem; padding:1rem 1.25rem; border-radius:1.25rem; background:#fff; border:1px solid #eef2f7; transition:transform .3s, border-color .3s, box-shadow .3s; }
.contact-row:hover { transform:translateX(6px); border-color:#bfe3fb; box-shadow:0 16px 40px -28px rgba(21,101,216,.4); }
.contact-row .ico { display:grid; place-items:center; height:46px; width:46px; border-radius:14px; flex-shrink:0; }
.contact-row .label { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:#94a3b8; }
.contact-row .value { font-weight:600; color:#0f172a; word-break:break-all; }
.social-btn { display:grid; place-items:center; height:46px; width:46px; border-radius:14px; background:#fff; border:1px solid #e2e8f0; color:#334155; transition:all .3s; }
.social-btn:hover { background:linear-gradient(135deg,#1565d8,#2eb6f5); color:#fff; border-color:transparent; transform:translateY(-4px); }

.quote-form { padding:1.6rem; border-radius:1.5rem; background:#fff; border:1px solid #eef2f7; box-shadow:0 30px 60px -30px rgba(15,23,42,.3); }
.field label { display:block; font-size:.8rem; font-weight:600; color:#475569; margin-bottom:.4rem; }
.field input, .field select, .field textarea { width:100%; padding:.8rem 1rem; border-radius:.9rem; background:#f8fafc; border:1px solid #e2e8f0; color:#0f172a; font-size:.95rem; transition:border-color .25s, box-shadow .25s, background .25s; }
.field input::placeholder, .field textarea::placeholder { color:#94a3b8; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; background:#fff; border-color:#2eb6f5; box-shadow:0 0 0 3px rgba(46,182,245,.2); }

/* ---------- Footer ---------- */
.footer-h { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:.95rem; margin-bottom:1rem; }
.footer-links { display:flex; flex-direction:column; gap:.6rem; }
.footer-links a { color:rgba(255,255,255,.55); font-size:.9rem; transition:color .2s, padding-left .2s; }
.footer-links a:hover { color:#5cc8f7; padding-left:4px; }

/* ---------- Floating WhatsApp ---------- */
.fab { position:fixed; bottom:1.5rem; right:1.5rem; z-index:50; display:grid; place-items:center; height:60px; width:60px; border-radius:999px; color:#fff; background:linear-gradient(135deg,#25d366,#128c7e); box-shadow:0 12px 30px -6px rgba(37,211,102,.5); animation: pulse 2.5s infinite; transition:transform .3s; }
.fab:hover { transform:scale(1.1); }
@keyframes pulse { 0%{ box-shadow:0 0 0 0 rgba(37,211,102,.5); } 70%{ box-shadow:0 0 0 18px rgba(37,211,102,0); } 100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); } }

/* ---------- Reveal ---------- */
.reveal { opacity:0; transform:translateY(40px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.3,1); }
.reveal.in { opacity:1; transform:none; }

/* ---------- Mobile responsive ---------- */
@media (max-width: 640px) {
  .section-title { font-size: 1.5rem; }
  .eyebrow { font-size: .68rem; letter-spacing: .15em; }
  .eyebrow::before { width: 20px; }

  /* Buttons */
  .btn-primary, .btn-ghost { padding: .7rem 1.25rem; font-size: .9rem; }

  /* Service cards */
  .service-card-v2 .svc-img { height: 170px; }
  .service-card-v2 .svc-body { padding: 1rem 1rem 1.25rem; }
  .service-card-v2 .svc-head h3 { font-size: 1rem; }
  .service-card-v2 .svc-body p { font-size: .85rem; }
  .service-card-v2 .svc-tags li { font-size: .68rem; padding: .25rem .55rem; }

  /* Pricing */
  .pkg-card { border-radius: 14px; }
  .pkg-body { padding: 1rem .9rem .65rem; }
  .pkg-name { font-size: 1.1rem; }
  .pkg-sub { font-size: .72rem; }
  .pkg-list li { font-size: .8rem; gap: .45rem; }
  .pkg-price { font-size: 2rem; }
  .pkg-price-featured { font-size: 2.5rem; }
  .pkg-btn { font-size: .78rem; padding: .55rem .8rem; }
  .pkg-featured { transform: scale(1); }
  .pkg-featured:hover { transform: translateY(-6px); }
  .pkg-ribbon { font-size: .58rem; padding: .25rem .55rem; }
  .price-table td { padding: .6rem .85rem; font-size: .85rem; }
  .price-table-head { font-size: .78rem; padding: .7rem .85rem; }
  .addon-tile { padding: 1rem .75rem; }
  .addon-tile h4 { font-size: .85rem; }
  .addon-tile p { font-size: .75rem; }
  .addon-tile-price { font-size: 1.25rem; }
  .stain-protect-card { flex-direction: column; }
  .stain-protect-left { padding: 1.25rem; }
  .stain-protect-right { padding: 1.25rem; }
  .stain-protect-title { font-size: 1.35rem; }
  .trust-grid { grid-template-columns: repeat(2,1fr); gap: .75rem; }
  .trust-item { font-size: .78rem; }
  .pricing-cta-block { padding: 1.75rem 1.25rem; }
  .pricing-cta-title { font-size: 1.35rem; }
  .bundle-banner { border-radius: 12px; padding: .75rem 1rem; }

  /* Before/After */
  .ba-slider { border-radius: 1rem; }

  /* Why items */
  .why-item { padding: .6rem .75rem; font-size: .82rem; }

  /* Area chips */
  .area-chip { padding: .5rem 1rem; font-size: .82rem; }

  /* Reviews */
  .review-card { padding: 1.25rem; }
  .review-card blockquote { font-size: .9rem; line-height: 1.6; }

  /* Contact */
  .contact-row { padding: .85rem 1rem; gap: .75rem; }
  .contact-row .ico { height: 40px; width: 40px; }
  .contact-row .value { font-size: .9rem; }
  .quote-form { padding: 1.25rem; }

  /* Footer */
  .footer-h { font-size: .9rem; }

  /* FAB */
  .fab { height: 52px; width: 52px; bottom: 1rem; right: 1rem; }

  /* Float badges - smaller on mobile */
  .float-badge { animation: floaty 5s ease-in-out infinite; }
}

@media (max-width: 380px) {
  .section-title { font-size: 1.35rem; }
  .pkg-price { font-size: 1.75rem; }
  .pkg-price-featured { font-size: 2.1rem; }
  .hero-copy h1 { font-size: 1.5rem; }
  .hero-card .font-display.font-bold.text-xl { font-size: 1rem; }
  .addon-tile { padding: .85rem .6rem; }
  .addon-tile-price { font-size: 1.1rem; }
  .trust-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
}
