/* =====================================================================
   B&L WINDOW CLEANING — royal-blue cinematic site
   "Less dark" blue (the hero-image blue), liquid-glass, blue/cyan CTA accent
   ===================================================================== */
:root{
  --blue:#1565ED;
  --blue-2:#2f86ff;
  --blue-deep:#0D47A1;
  --cyan:#00BCD4;
  --cyan-2:#6fe6ff;
  --orange:#FF6B00;       /* warm accent — primary CTAs only */
  --orange-2:#FF9A3D;
  --gold:#FFC400;
  --ink:#eef5ff;
  --ink-soft:#b6cdf0;
  --line:rgba(255,255,255,.16);
  --glass:rgba(255,255,255,.09);
  --glass-2:rgba(255,255,255,.14);
  --radius:30px;
  --radius-hero:38px;
  --maxw:1180px;
  --grad-blue:linear-gradient(118deg,#1f6dff 0%,#00c2dd 100%);
  --grad-text:linear-gradient(118deg,#8fd0ff 0%,#5ff0e0 100%);
  --shadow-soft:0 30px 70px -30px rgba(0,10,40,.7);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scrollbar-width:none;-webkit-text-size-adjust:100%}
html::-webkit-scrollbar{display:none}
body{
  color:var(--ink);
  font-family:"Inter","Poppins",system-ui,-apple-system,sans-serif;
  line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1100px 720px at 86% -4%, rgba(0,188,212,.28), transparent 55%),
    radial-gradient(1000px 820px at 6% 16%, rgba(47,134,255,.32), transparent 55%),
    radial-gradient(1200px 900px at 50% 108%, rgba(21,101,237,.5), transparent 60%),
    linear-gradient(180deg,#1a4aa6 0%,#123c8d 58%,#103678 100%);
  background-attachment:fixed;
}
::selection{background:var(--cyan);color:#012}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:"Poppins",system-ui,sans-serif;line-height:1.06;letter-spacing:-.02em;font-weight:800;color:#fff}
.grad{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:"Poppins",sans-serif;font-weight:600;font-size:15px;padding:14px 28px;border-radius:100px;
  border:1px solid transparent;cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,background .25s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-orange{background:linear-gradient(135deg,var(--orange),var(--orange-2));color:#fff;box-shadow:0 14px 30px -10px rgba(255,107,0,.62)}
.btn-orange:hover{background:linear-gradient(135deg,#ff7e1a,#ffaa52);box-shadow:0 18px 38px -10px rgba(255,107,0,.74)}
.btn-blue{background:var(--grad-blue);color:#fff;box-shadow:0 12px 28px -10px rgba(0,194,221,.6)}
.btn-ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.42);color:#fff;backdrop-filter:blur(12px)}
.btn-ghost:hover{background:rgba(255,255,255,.22)}
.btn-outline-orange{background:rgba(255,107,0,.08);border-color:#ffb56b;color:#ffb56b;backdrop-filter:blur(12px)}
.btn-outline-orange:hover{background:rgba(255,107,0,.18);border-color:var(--orange-2);color:#fff}
.btn-lg{padding:18px 38px;font-size:17px}

/* ---------- Nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:16px clamp(16px,3.5vw,36px);transition:background .4s,backdrop-filter .4s,box-shadow .4s,padding .4s,top .4s,left .4s,right .4s,border-radius .4s}
/* Qleen-style floating rounded bar on scroll, with the logo kept in a white panel */
.nav.scrolled{top:12px;left:clamp(12px,2.6vw,28px);right:clamp(12px,2.6vw,28px);align-items:center;min-height:60px;
  padding:9px clamp(14px,2vw,20px);background:#0c84c5;backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid rgba(255,255,255,.18);border-radius:22px;box-shadow:0 16px 40px -16px rgba(0,8,30,.5)}
.nav.scrolled .nav-logo{background:transparent;border-radius:0;padding:0;opacity:1;pointer-events:auto}
.nav.scrolled .nav-logo img{height:38px;filter:drop-shadow(0 2px 7px rgba(0,8,30,.35))}
.nav-call-btn{display:none;font-size:14px;padding:10px 18px}
.nav.scrolled .nav-call-btn{display:inline-flex}
.nav-logo{display:flex;align-items:center}
.nav-logo img{height:58px;width:auto;filter:drop-shadow(0 3px 10px rgba(0,0,0,.4))}
.nav-links{display:flex;justify-content:center;gap:32px;position:absolute;top:52px;left:calc(clamp(316px,28vw,378px) + 20px);right:clamp(16px,3.5vw,40px);transform:none}
.nav-links a{font-family:"Poppins";font-size:18.5px;font-weight:500;color:rgba(255,255,255,.92);transition:color .2s}
.nav.scrolled .nav-links{top:50%;left:0;right:0;transform:translateY(-50%)}
.nav.scrolled .nav-links a{font-size:15px}
.nav-links a:hover{color:var(--cyan-2)}

/* ---------- Cinematic scrub stage (hero + home) ---------- */
.scrub{position:relative}
.hero{height:210vh}
.feature{height:175vh}
.sticky{position:sticky;top:0;height:100vh;width:100%;padding:14px;background:transparent}
/* hero sits as a soft rounded panel (Qleen-style) on a WHITE backdrop */
.hero{background:#fff}
.hero>.sticky{padding:clamp(14px,2.2vw,28px)}
.hero .cine-box{border-radius:var(--radius-hero);box-shadow:none;background:#fff;overflow:visible}
.hero .cine-box canvas{border-radius:72px var(--radius-hero) var(--radius-hero) var(--radius-hero);background:#061633 url("frames/round/frame_0001.jpg") center/cover no-repeat}
.feature .cine-box canvas{background:#7fb0d8 url("clips/key-home.png") center/cover no-repeat}
.round-scrub{height:160vh;background:#fff}
.round-scrub .sticky{padding:clamp(14px,2.2vw,28px)}
.round-scrub .cine-box{border-radius:var(--radius-hero);border:1px solid rgba(255,255,255,.14);
  box-shadow:0 34px 70px -42px rgba(0,15,50,.45)}
.round-scrub .cine-box canvas{background:radial-gradient(110% 120% at 98% 62%, rgba(30,144,108,.92) 0%, rgba(30,144,108,.5) 38%, transparent 68%),linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#86c9e8 100%)}
.hero .scrim-hero{border-radius:72px var(--radius-hero) var(--radius-hero) var(--radius-hero)}

/* Qleen-style white logo notch with concave corners, tucked into the hero top-left */
.nav .nav-logo{transition:opacity .3s}
.nav:not(.scrolled) .nav-logo{opacity:0;pointer-events:none}
.hero-cutout-tl{position:absolute;top:-1px;left:-1px;z-index:20;display:flex;align-items:center;
  width:clamp(316px,28vw,378px);height:100px;background:#fff;border-radius:var(--radius-hero) 0 2.5rem 0;padding-left:clamp(20px,2.4vw,30px)}
.hero-cutout-tl .cutout-logo{height:clamp(48px,4.7vw,60px);width:auto;max-width:none;flex:none}
.hero-cutout-tl::after{content:"";position:absolute;top:0;right:-30px;width:30px;height:30px;background:#fff;
  -webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzMyOF82NikiPgo8cGF0aCBkPSJNMy41Nzc0NmUtMDcgMEwwIDMwTDMwIDMwQzEzLjQzMjUgMzAgMS42MDE4MWUtMDcgMTYuNTY3NSAzLjU3NzQ2ZS0wNyAwWiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8zMjhfNjYiPgo8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMwKSByb3RhdGUoLTkwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzMyOF82NikiPgo8cGF0aCBkPSJNMy41Nzc0NmUtMDcgMEwwIDMwTDMwIDMwQzEzLjQzMjUgMzAgMS42MDE4MWUtMDcgMTYuNTY3NSAzLjU3NzQ2ZS0wNyAwWiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8zMjhfNjYiPgo8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMwKSByb3RhdGUoLTkwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=");
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:rotate(90deg)}
.hero-cutout-tl::before{content:"";position:absolute;bottom:-30px;left:0;width:30px;height:30px;background:#fff;
  -webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzMyOF82NikiPgo8cGF0aCBkPSJNMy41Nzc0NmUtMDcgMEwwIDMwTDMwIDMwQzEzLjQzMjUgMzAgMS42MDE4MWUtMDcgMTYuNTY3NSAzLjU3NzQ2ZS0wNyAwWiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8zMjhfNjYiPgo8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMwKSByb3RhdGUoLTkwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzMyOF82NikiPgo8cGF0aCBkPSJNMy41Nzc0NmUtMDcgMEwwIDMwTDMwIDMwQzEzLjQzMjUgMzAgMS42MDE4MWUtMDcgMTYuNTY3NSAzLjU3NzQ2ZS0wNyAwWiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8zMjhfNjYiPgo8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMwKSByb3RhdGUoLTkwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=");
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:rotate(90deg)}
/* bottom-right white notch with trusted badge (concave corners) */
.hero-trusted-cutout{position:absolute;right:-1px;bottom:-1px;z-index:22;display:flex;align-items:center;gap:11px;
  background:#fff;border-radius:2.2rem 0 var(--radius-hero) 0;padding:13px clamp(20px,2.1vw,26px)}
.hero-trusted-cutout::before{content:"";position:absolute;bottom:0;left:-30px;width:30px;height:30px;background:#fff;
  -webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMzBMMzAgMzBMMzAgMEMzMCAxNi41Njc1IDE2LjU2NzUgMzAgMCAzMFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMzBMMzAgMzBMMzAgMEMzMCAxNi41Njc1IDE2LjU2NzUgMzAgMCAzMFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=");
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.hero-trusted-cutout::after{content:"";position:absolute;top:-30px;right:0;width:30px;height:30px;background:#fff;
  -webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzMyOF82NikiPgo8cGF0aCBkPSJNMy41Nzc0NmUtMDcgMEwwIDMwTDMwIDMwQzEzLjQzMjUgMzAgMS42MDE4MWUtMDcgMTYuNTY3NSAzLjU3NzQ2ZS0wNyAwWiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8zMjhfNjYiPgo8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMwKSByb3RhdGUoLTkwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzMyOF82NikiPgo8cGF0aCBkPSJNMy41Nzc0NmUtMDcgMEwwIDMwTDMwIDMwQzEzLjQzMjUgMzAgMS42MDE4MWUtMDcgMTYuNTY3NSAzLjU3NzQ2ZS0wNyAwWiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8zMjhfNjYiPgo8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMwKSByb3RhdGUoLTkwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=");
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:rotate(-90deg)}
.hero-trusted-cutout .stars{display:flex;gap:2px}
.hero-trusted-cutout .stars svg{width:15px;height:15px;fill:#FFC400;color:#FFC400}
.hero-trusted-text{font-family:"Poppins";font-size:13px;font-weight:600;line-height:1.22;color:#15233b}
@media (max-width:920px){.hero-trusted-cutout{display:none}}

.cine-box{position:relative;width:100%;height:100%;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft),inset 0 0 0 1px rgba(255,255,255,.08)}
.cine-box canvas{position:absolute;inset:0;width:100%;height:100%}
.scrim{position:absolute;inset:0;pointer-events:none}
.scrim-hero{background:radial-gradient(58% 80% at 56% 62%,rgba(46,184,143,.5) 0%,rgba(46,184,143,.18) 42%,transparent 68%),linear-gradient(90deg,rgba(0,119,190,.97) 0%,rgba(2,120,189,.95) 32%,rgba(20,124,185,.7) 48%,rgba(49,130,179,.34) 64%,transparent 82%),linear-gradient(180deg,rgba(0,110,178,.30) 0%,transparent 22%,transparent 78%,rgba(0,92,156,.40) 100%)}
.scrim-home{background:linear-gradient(0deg,rgba(7,26,66,.85) 0%,rgba(7,26,66,.2) 45%,transparent 75%)}
.scrim-round{background:linear-gradient(0deg,rgba(0,70,150,.72) 0%,rgba(0,90,160,.22) 42%,transparent 70%)}
.scroll-hint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:14;font-family:"Poppins";font-size:11px;letter-spacing:.4em;color:rgba(255,255,255,.8);animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}

/* ---------- On the round (van feature) ---------- */
.flow-feature{position:relative;padding:0 clamp(14px,2.2vw,28px) clamp(40px,7vh,96px);background:linear-gradient(180deg,#fff 0%,#fff 22%,rgba(255,255,255,0) 60%)}
.flow-panel{position:relative;border-radius:40px;overflow:hidden;
  background:
    radial-gradient(110% 120% at 98% 62%, rgba(30,144,108,.92) 0%, rgba(30,144,108,.5) 38%, transparent 68%),
    linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#86c9e8 100%);
  box-shadow:var(--shadow-soft),inset 0 0 0 1px rgba(255,255,255,.16);
  padding:clamp(30px,4.4vw,62px);
  display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(26px,3.6vw,56px);align-items:center}
.flow-panel::before{content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;background-image:
    linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(130% 120% at 50% 0%,black,transparent 80%)}
.flow-text{position:relative;z-index:2}
.flow-text h2{font-size:clamp(2.1rem,3.8vw,3.6rem);margin:10px 0 14px;text-shadow:0 10px 34px rgba(0,18,60,.38)}
.flow-text>p{font-size:clamp(15px,1.3vw,17.5px);color:rgba(255,255,255,.9);max-width:46ch;margin-bottom:26px}
.flow-steps{list-style:none;display:grid;gap:12px}
.flow-step{display:flex;gap:15px;align-items:flex-start;border-radius:18px;padding:15px 18px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(20px)}
.flow-step b{flex:none;display:inline-flex;width:36px;height:36px;border-radius:50%;align-items:center;justify-content:center;
  font-family:"Poppins";font-weight:800;font-size:14px;color:#07315d;background:#fff}
.flow-step h3{font-size:16.5px;margin-bottom:3px}
.flow-step p{font-size:13.5px;color:rgba(255,255,255,.82);line-height:1.5}
.flow-photo{position:relative;z-index:2;margin:0;border-radius:22px;overflow:hidden;
  border:6px solid #fff;box-shadow:0 36px 70px rgba(0,12,40,.5);transform:rotate(-1.4deg)}
.flow-photo img{display:block;width:100%;height:auto}
.flow-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;color:#fff;
  font-family:"Poppins";font-weight:600;font-size:13.5px;letter-spacing:.01em;
  background:linear-gradient(0deg,rgba(2,16,44,.85),transparent)}

/* ---------- Hero content ---------- */
.hero-grid{position:relative;z-index:10;height:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,4vw,54px);
  display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:40px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:"Poppins";font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:#fff;padding:7px 15px;border:1px solid rgba(255,255,255,.4);border-radius:100px;background:rgba(255,255,255,.12);backdrop-filter:blur(10px);margin-bottom:20px}
.hero-copy h1{color:#fff;font-size:clamp(3rem,12vw,6.2rem);font-weight:900;line-height:1;letter-spacing:-.02em;text-transform:lowercase;text-shadow:0 2px 20px rgba(0,0,0,.3);-webkit-text-stroke:1px rgba(255,255,255,.5);margin-bottom:0}
.hero-copy .hero-subtext{display:flex;justify-content:space-between;width:100%;padding-left:34%;position:relative;left:-90px;top:0;font-family:"Poppins";font-size:clamp(1.2rem,3.4vw,2rem);font-weight:500;color:rgba(255,255,255,.55);text-transform:lowercase;letter-spacing:0;margin-top:-.3rem;margin-bottom:22px;-webkit-text-stroke:0;text-shadow:none}
.hero-copy .hero-subtext span{display:inline-block}
.hero-copy h1 .lo{color:rgba(255,255,255,.6)}
.hero-sub{color:rgba(255,255,255,.92);font-size:clamp(15px,1.5vw,18px);max-width:36ch;margin-bottom:26px;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.hero-cta{display:flex;gap:13px;flex-wrap:wrap;margin-bottom:16px}
.hero-areas{color:rgba(255,255,255,.92);font-size:clamp(13.5px,1.25vw,15.5px);font-weight:500;max-width:42ch;margin-bottom:24px;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.hero-trust{display:flex;align-items:center;gap:10px;color:#fff}
.hero-trust .stars{color:var(--gold);font-size:16px;letter-spacing:1px}

/* ---------- Hero cinematic intro: giant "clean windows" on load, folds into place on scroll ----------
   Driven by --hp (0→1) set from scroll progress in scroll-cinematic.js. At load --hp=0:
   the title is large and anchored at its own top-left (so it shrinks back into the exact
   place it sits now), and every other hero element is hidden until you start scrolling. */
.hero.intro-armed .hero-copy h1{--ht:clamp(0, calc(var(--hp,0) / .32), 1);transform-origin:left top;transform:scale(calc(1 + (1 - var(--ht)) * .4));will-change:transform}
.hero.intro-armed .hero-copy > *:not(h1){
  --rv:clamp(0, calc((var(--hp,0) - var(--st,.4)) / var(--sp,.42)), 1);
  opacity:var(--rv);
  translate:0 calc((1 - var(--rv)) * 24px);
  will-change:opacity,translate}
/* everytime: waits for the title to finish shrinking (.32), then floats up slowly on its own */
.hero.intro-armed .hero-copy > .hero-subtext{--st:.34;--sp:.34;translate:0 calc((1 - var(--rv)) * 52vh)}
/* the rest hold until everytime has fully settled (.68), then cascade in */
.hero.intro-armed .hero-copy > .eyebrow{--st:.68;--sp:.14}
.hero.intro-armed .hero-copy > .hero-sub{--st:.72;--sp:.14}
.hero.intro-armed .hero-copy > .hero-cta{--st:.78;--sp:.12}
.hero.intro-armed .hero-copy > .hero-areas{--st:.82;--sp:.12}
/* Get a Quick Estimate: present from the start, slides in from the right as the page loads */
@keyframes quoteSlideIn{from{opacity:0;transform:translateX(72px)}to{opacity:1;transform:translateX(0)}}
.hero.intro-armed .quote-card{animation:quoteSlideIn 1s cubic-bezier(.22,1,.36,1) .45s both}
@media (max-width:920px){
  .hero.intro-armed .hero-copy h1{transform:none}
  .hero.intro-armed .hero-copy > *:not(h1){opacity:1;translate:none}
  /* the subtext's own rule (.hero-copy > .hero-subtext) outranks the generic
     reset above (4 classes vs 3+:not), and --hp defaults to 0 here since the
     heroIntro JS that drives it is skipped on mobile — without this, its
     translate formula evaluates at --hp:0, pushing "everytime" down 52vh */
  .hero.intro-armed .hero-copy > .hero-subtext{translate:none}
  .hero.intro-armed .quote-card{animation:none}
}
@media (prefers-reduced-motion:reduce){
  .hero.intro-armed .hero-copy h1{transform:none}
  .hero.intro-armed .hero-copy > *:not(h1){opacity:1;translate:none}
  .hero.intro-armed .hero-copy > .hero-subtext{translate:none}
  .hero.intro-armed .quote-card{animation:none;opacity:1;transform:none}
}
.hero-trust span{font-size:13.5px;color:rgba(255,255,255,.9)}

/* quote form card (glass) */
.quote-card{position:relative;z-index:6;background:rgba(255,255,255,.14);backdrop-filter:blur(34px) saturate(1.3);
  border:1px solid rgba(255,255,255,.4);border-radius:32px;padding:30px 28px;box-shadow:0 24px 60px -24px rgba(0,8,30,.6),inset 0 1px 0 rgba(255,255,255,.25);justify-self:end;width:100%;max-width:400px}
.quote-card h3{color:#fff;font-size:1.6rem;margin-bottom:4px}
.quote-card .qsub{color:rgba(255,255,255,.85);font-size:14px;margin-bottom:18px}
.qfield{margin-bottom:13px}
.qfield label{display:block;font-family:"Poppins";font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:6px}
.qfield input,.qfield textarea{width:100%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);border-radius:13px;
  padding:12px 14px;font-family:"Inter";font-size:14.5px;color:#fff;outline:none;transition:box-shadow .2s,background .2s,border-color .2s}
.qfield input:focus,.qfield textarea:focus{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.6);box-shadow:0 0 0 3px rgba(0,188,212,.4)}
.qfield input::placeholder,.qfield textarea::placeholder{color:rgba(255,255,255,.55)}
.qfield textarea{resize:vertical;min-height:64px}
.quote-card .btn{width:100%;margin-top:6px}
.quote-done{text-align:center;padding:18px 6px}
.quote-done-ic{width:58px;height:58px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;font-size:30px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--orange),var(--orange-2));box-shadow:0 14px 30px -10px rgba(255,107,0,.7)}
.quote-done h3{color:#fff;font-size:1.5rem;margin-bottom:8px}
.quote-done p{color:rgba(255,255,255,.9);font-size:14.5px;line-height:1.6}
.quote-done a{color:var(--cyan-2);font-weight:600}

/* ---------- Trust strip (inset blue panel — matches the round card width above) ---------- */
.trust-strip{position:relative;--trust-round:38px;background:#fff;padding:clamp(12px,1.6vh,20px) clamp(14px,2.2vw,28px)}
.trust-band{background:linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#0077b0 100%);border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 62px -36px rgba(0,15,50,.44),inset 0 1px 0 rgba(255,255,255,.08);border-radius:var(--trust-round);padding:22px clamp(16px,4vw,40px)}
.trust-inner{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.trust-inner div{display:flex;align-items:center;gap:10px;font-family:"Poppins";font-weight:600;font-size:14.5px;color:#fff}
.trust-inner .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.1);border:1px solid var(--line);color:var(--cyan-2);font-size:17px}

/* ---------- Generic band ---------- */
.band{position:relative;padding:clamp(70px,9vw,120px) clamp(20px,4vw,40px)}
.band-inner{max-width:var(--maxw);margin:0 auto}
.band-tint{background:rgba(255,255,255,.04);border-block:1px solid rgba(255,255,255,.06)}
#why{background:linear-gradient(180deg,rgba(0,117,175,0) 0%,#0077b0 30%)}
#how{background:
    radial-gradient(110% 120% at 98% 62%, rgba(30,144,108,.92) 0%, rgba(30,144,108,.5) 38%, transparent 68%),
    linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#86c9e8 100%)}
/* white-framed rounded card — same inset width as the hero panel */
.band-curve{position:relative;z-index:2;background:#fff;
  padding:clamp(30px,4.5vh,64px) clamp(14px,2.2vw,28px) clamp(38px,5vh,74px)}
.curve-card{position:relative;overflow:visible;min-height:540px;
  padding:clamp(46px,6vw,90px) clamp(26px,4vw,56px)}
.curve-bg{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(85% 100% at 56% 64%, rgba(30,144,108,.92) 0%, rgba(30,144,108,.5) 38%, transparent 72%),
    linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#86c9e8 100%);
  filter:drop-shadow(0 30px 50px rgba(0,15,50,.4))}
.section-head{max-width:680px;margin:0 auto 56px;text-align:center}
.kicker{display:inline-block;font-family:"Poppins";font-size:12.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--cyan-2);margin-bottom:14px}
.section-head h2{font-size:clamp(2rem,4.3vw,3.4rem);margin-bottom:16px}
.section-head p{color:var(--ink-soft);font-size:clamp(15px,1.5vw,18px)}

/* glass card */
.glass{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(16px) saturate(1.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 30px 60px -34px rgba(0,8,30,.7)}

/* services grid */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc{border-radius:26px;padding:32px 28px;transition:transform .35s,box-shadow .35s,background .35s}
.svc:hover{transform:translateY(-6px);background:var(--glass-2)}
.svc .ic{width:62px;height:62px;border-radius:17px;display:grid;place-items:center;font-size:30px;margin-bottom:18px;
  background:var(--grad-blue);color:#fff;box-shadow:0 14px 26px -12px rgba(0,150,200,.7)}
.svc h3{font-size:20px;margin-bottom:9px}
.svc p{color:var(--ink-soft);font-size:14.5px}

/* how it works */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:step}
.step{position:relative;border-radius:26px;padding:34px 28px}
.step .num{counter-increment:step;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  font-family:"Poppins";font-weight:800;font-size:19px;color:#fff;background:var(--orange);margin-bottom:16px;box-shadow:0 12px 24px -10px rgba(255,107,0,.8)}
.step .num::before{content:counter(step)}
.step h3{font-size:20px;margin-bottom:9px}
.step p{color:var(--ink-soft);font-size:14.5px}

/* SMS proof */
.sms-proof{position:relative;z-index:1;display:flex;align-items:center;min-height:460px}
.sms-copy{align-self:center;max-width:30%}
.proof-stage{position:absolute;top:0;bottom:0;left:34%;right:0;z-index:2;pointer-events:none}
.proof-figure{position:absolute;right:30px;bottom:0;width:553px;height:730px}
.proof-stage .device{position:absolute;left:0;top:159px;width:282px;height:562px;margin:0;animation:none;justify-self:auto;z-index:1}
.worker{position:absolute;left:46px;top:0;height:760px;width:auto;max-width:none;z-index:2;pointer-events:none;filter:drop-shadow(0 26px 30px rgba(0,10,36,.34))}
.sms-copy h2{font-size:clamp(1.8rem,3.6vw,2.8rem);margin-bottom:16px}
.sms-copy p{color:var(--ink-soft);margin-bottom:24px;max-width:46ch;font-size:16px}
.device{position:relative;width:300px;height:600px;border-radius:46px;background:linear-gradient(160deg,#1a2233,#0a0f1a);
  padding:11px;border:1px solid rgba(255,255,255,.14);box-shadow:0 50px 90px -30px rgba(0,8,30,.7);justify-self:center;animation:float 7s ease-in-out infinite;will-change:transform}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
.device-glow{position:absolute;inset:-26px;border-radius:60px;z-index:-1;background:radial-gradient(60% 50% at 50% 40%,rgba(0,188,212,.5),transparent 70%);filter:blur(28px)}
.device-screen{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;background:#0b1422;display:flex;flex-direction:column}
.rr-statusbar{display:flex;justify-content:space-between;align-items:center;padding:13px 20px 6px;font-size:12px;font-weight:600;color:#fff}
.sms-head{display:flex;align-items:center;gap:11px;padding:13px 16px;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08)}
.sms-head img{height:30px;width:auto}
.sms-head b{display:block;font-size:14.5px;color:#eaf2ff;font-family:"Poppins"}
.sms-head span{font-size:11px;color:#7e90ad}
.sms-thread{padding:16px 14px;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.bubble{max-width:84%;padding:11px 14px;border-radius:18px;font-size:13.5px;line-height:1.5}
.bubble.in{align-self:flex-start;background:#243348;color:#eaf2ff;border-bottom-left-radius:5px}
.bubble.out{align-self:flex-end;background:var(--grad-blue);color:#fff;border-bottom-right-radius:5px}
.bubble.invoice{background:#fff;color:#15233b;width:88%;max-width:88%;padding:0;overflow:hidden;border-radius:16px}
.inv-top{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;background:#f3f7fc;border-bottom:1px solid #e7edf5}
.inv-top span{font-size:11px;color:#7d8ba3;font-weight:600}.inv-top b{font-family:"Poppins";font-size:18px;color:var(--blue)}
.inv-rows{padding:11px 15px;font-size:13px;color:#41526e}
.inv-rows div{display:flex;justify-content:space-between}
.inv-pay{margin:4px 15px 10px;text-align:center;background:var(--orange);color:#fff;font-weight:700;font-size:14px;padding:11px;border-radius:12px}
.inv-opts{display:flex;gap:6px;padding:0 15px 14px}
.inv-opts span{flex:1;text-align:center;font-size:10.5px;color:#54668a;background:#f3f7fc;padding:6px 4px;border-radius:8px;border:1px solid #e7edf5}

/* feature (home) overlay copy */
.feature-copy{position:relative;z-index:10;height:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,5vw,60px);
  display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:14vh}
.feature-copy>*{max-width:30ch}
.feature-copy .kicker{color:var(--cyan-2)}
.feature-copy h2{color:#fff;font-size:clamp(2.2rem,5vw,4rem);margin-bottom:16px;text-shadow:0 6px 30px rgba(0,0,0,.4)}
.feature-copy p{color:rgba(255,255,255,.92);font-size:clamp(15px,1.5vw,18px);text-shadow:0 2px 12px rgba(0,0,0,.3);
  background:rgba(6,20,45,.34);backdrop-filter:blur(2px);border-radius:12px;padding:10px 14px;display:inline-block}
.reveal-line{opacity:0;will-change:opacity,transform}

/* payment */
.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pay{border-radius:24px;padding:30px 26px;text-align:center}
.pay .ic{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;font-size:26px;background:rgba(255,255,255,.1);border:1px solid var(--line);color:var(--cyan-2)}
.pay h3{font-size:19px;margin-bottom:8px}.pay p{color:var(--ink-soft);font-size:14px}

/* stats */
.stats-band{background:rgba(255,255,255,.05);border-block:1px solid rgba(255,255,255,.1);padding:clamp(48px,6vw,72px) clamp(20px,4vw,40px)}
.stats-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.stat b{display:block;font-family:"Poppins";font-weight:800;font-size:clamp(2.3rem,5vw,3.4rem);line-height:1;
  background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{font-size:13.5px;color:var(--ink-soft);margin-top:6px;display:block}

/* reviews */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.review{border-radius:26px;padding:30px 28px}
.review .stars{color:var(--gold);font-size:18px;letter-spacing:2px;margin-bottom:14px}
.review blockquote{font-size:15.5px;line-height:1.65;margin-bottom:16px;color:#fff}
.review figcaption{color:var(--ink-soft);font-weight:600;font-size:14px}

/* areas */
.areas-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}
.area{border-radius:16px;padding:20px 14px;text-align:center;font-family:"Poppins";font-weight:600;font-size:15.5px;color:#fff;transition:transform .3s,background .3s,color .3s}
.area:hover{transform:translateY(-4px);background:var(--glass-2);color:var(--cyan-2)}
.areas-foot{text-align:center;color:var(--ink-soft)}.areas-foot a{color:var(--cyan-2);font-weight:600}

/* faq */
.faq-wrap{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:rgba(255,255,255,.05)}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-family:"Poppins";font-weight:600;font-size:16.5px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;color:var(--cyan-2);transition:transform .3s;flex-shrink:0}
.faq[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 24px 20px;color:var(--ink-soft);font-size:15px}

/* CTA banner */
/* ---- CTA white gutter wrapper ---- */
#contact-wrap{background:#fff;padding:clamp(12px,1.6vh,20px) clamp(14px,2.2vw,28px) clamp(20px,2.5vh,36px)}
.cta-banner{margin:0;border-radius:var(--radius-hero);padding:clamp(54px,7vw,92px) 30px;text-align:center;
  background:var(--grad-blue);position:relative;overflow:hidden;box-shadow:var(--shadow-soft)}
.cta-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 90% at 80% 10%,rgba(255,255,255,.22),transparent 60%)}
.cta-inner{position:relative;max-width:680px;margin:0 auto}
.cta-banner h2{color:#fff;font-size:clamp(2rem,4.4vw,3.4rem);margin-bottom:14px}
.cta-banner p{color:rgba(255,255,255,.95);font-size:18px;margin-bottom:30px}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* footer */
.footer{background:#0c84c5;padding:60px clamp(20px,4vw,40px) 28px;border-radius:var(--radius-hero) var(--radius-hero) 0 0}
.footer-gutter{background:#fff;padding:clamp(14px,2.2vw,28px) clamp(14px,2.2vw,28px) 0}
.footer-inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}
.footer-brand img{height:48px;margin-bottom:16px}
.footer-brand p{color:var(--ink-soft);font-size:14px;max-width:34ch}
.footer-sister{margin-top:10px;font-size:13.5px;color:rgba(255,255,255,.8)}
.footer-sister a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.footer-sister a:hover{color:var(--cyan-2)}
.footer-col h4{font-family:"Poppins";font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:#fff;margin-bottom:14px}
.footer-col a,.footer-col span{display:block;color:var(--ink-soft);font-size:14.5px;margin-bottom:8px;transition:color .2s}
.footer-col a:hover{color:var(--cyan-2)}
.footer-base{max-width:var(--maxw);margin:40px auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5);font-size:13px;text-align:center}

/* icons (clean inline SVG line set) */
.ico{display:block;flex:none}
.eyebrow svg{width:15px;height:15px}
.btn svg{width:17px;height:17px;margin-right:1px}
.trust-inner .ic svg{width:19px;height:19px}
.svc .ic svg{width:28px;height:28px}
.pay .ic svg{width:26px;height:26px}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(28px) scale(.975);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--si,0) * 85ms)}
.reveal.in{opacity:1;transform:none}
/* ---- interaction polish: staggered cascades use --si above; hover lift, icon pop, photo entrance, faq ---- */
.step,.pay,.review{transition:transform .35s cubic-bezier(.2,.8,.2,1),background .35s,box-shadow .35s}
.step:hover,.pay:hover,.review:hover{transform:translateY(-6px);background:var(--glass-2);box-shadow:0 32px 64px -34px rgba(0,8,30,.8)}
.svc .ic,.pay .ic,.step .num{transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.svc:hover .ic,.pay:hover .ic{transform:translateY(-3px) scale(1.08) rotate(-4deg)}
.step:hover .num{transform:scale(1.1) rotate(6deg)}
.flow-step{transition:transform .35s cubic-bezier(.2,.8,.2,1),background .35s,border-color .35s}
.flow-step:hover{transform:translateX(6px);background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.42)}
.flow-photo.reveal{transform:rotate(-5deg) scale(.92) translateY(36px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1),box-shadow .5s}
.flow-photo.reveal.in{opacity:1;transform:rotate(-1.4deg) scale(1) translateY(0)}
.flow-photo.reveal.in:hover{transform:rotate(0deg) scale(1.02);box-shadow:0 48px 92px rgba(0,12,40,.6)}
.faq summary{transition:background .25s}
.faq summary:hover{background:rgba(255,255,255,.06)}
.faq[open] p{animation:faqIn .42s cubic-bezier(.22,1,.36,1)}
@keyframes faqIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* ---- phone + worker cinematic entrance (mirrored), composes with the position tuner via --rev* vars ---- */
.proof-stage .device,.proof-figure .worker{transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .9s cubic-bezier(.22,1,.36,1)}
.proof-stage .device{--revY:52px;--revS:.9;--revR:-6deg;opacity:0}
.proof-figure .worker{--revY:52px;--revS:.9;--revR:6deg;opacity:0;transition-delay:.12s}
.proof-figure.in .device{--revY:0px;--revS:1;--revR:0deg;opacity:1}
.proof-figure.in .worker{--revY:0px;--revS:1;--revR:0deg;opacity:1}
.proof-figure.tuning .device,.proof-figure.tuning .worker{transition:none}
/* how-it-works step cards: drop in from above one-by-one with a bounce.
   No ancestor in the selector — the card-mover tool relocates these elements
   out of .how-grid, so an ancestor-scoped rule would lose to the generic
   .step hover-transition rule below. Plain .step.reveal (2 classes) outranks
   that rule's single .step class regardless of where the element lives. */
.step.reveal{transform:translateY(-46px) scale(.97);transition:opacity var(--steps-fade,1.2s) ease,transform var(--steps-rise,1.6s) cubic-bezier(.34,1.4,.64,1);transition-delay:calc(var(--si,0) * var(--steps-stagger,380ms))}
.step.reveal.in{opacity:1;transform:none}
/* #home ("reliable, regular, friendly") copy fades up slower */
#home .feature-copy .reveal{transition-duration:2.4s}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  .nav-links{display:none}
  /* matches .hero-cutout-tl's height so this invisible pre-scroll spacer centers
     the call button + hamburger at the same height as the visible logo notch */
  .nav-logo img{height:68px}
  .hero{height:auto}
  .hero .sticky{position:relative;height:auto;min-height:100vh}
  .hero .cine-box{min-height:calc(100vh - 28px)}
  .hero-grid{grid-template-columns:1fr;gap:28px;padding-top:96px;padding-bottom:60px;align-content:center}
  .hero-copy{text-align:center}
  .hero-cta,.hero-trust{justify-content:center}
  .quote-card{justify-self:center;max-width:420px}
  .hero-copy .hero-subtext{padding-left:0;left:0;justify-content:center}
  /* tablet range: centered text reads jagged at this width (lines of very
     different lengths) — left-align like desktop, just within a comfortable
     max-width, while keeping it centered at narrow phone widths below */
  @media (min-width:600px){
    .hero-copy{text-align:left}
    .hero-cta,.hero-trust{justify-content:flex-start}
    /* span exactly from under the "i" to under the "s" of "windows" (measured via
       character rects, not h1's full bounding box — "clean" on the line above is
       wider than "windows", so h1's own box extends well past the "s") */
    .hero-copy .hero-subtext{justify-content:space-between;padding-left:0;margin-left:12%;width:51%}
    /* SMS-proof: the worker photo is hidden at narrow phone widths (no room beside
       the phone), but tablet has plenty — show both side by side instead of just
       the phone alone. The position tuner sets its own inline transform on both
       elements unconditionally (desktop-tuned x/y/scale) — !important strips that
       back to just the reveal-animation vars so our sizing here isn't fought. */
    .proof-figure{position:relative !important;width:498px !important;height:657px !important;margin:40px auto 0 !important;display:block !important}
    .proof-stage .device{position:absolute !important;left:0 !important;top:143px !important;width:254px !important;height:506px !important;margin:0 !important;transform:translate(var(--tpDevX,0px),calc(var(--revY,0) + var(--tpDevY,0px))) scale(calc(var(--revS,1) * var(--tpDevS,1))) rotate(var(--revR,0deg)) !important}
    .worker{display:block !important;position:absolute !important;left:41px !important;top:0 !important;height:684px !important;width:auto !important;transform:translate(var(--tpWkX,0px),calc(var(--revY,0) + var(--tpWkY,0px))) scale(calc(var(--revS,1) * var(--tpWkS,1))) rotate(var(--revR,0deg)) !important}
  }
  .flow-feature{padding:16px 12px}
  .flow-panel{grid-template-columns:1fr;gap:24px;padding:26px 20px;text-align:center}
  .flow-text>p{margin-left:auto;margin-right:auto}
  .flow-steps{text-align:left}
  .flow-photo{order:-1;transform:none}
  .feature{height:auto}
  .feature .sticky{position:relative;height:auto;min-height:90vh}
  .round-scrub{height:auto}
  .round-scrub .sticky{position:relative;height:auto;min-height:90vh}
  .svc-grid,.how-grid,.pay-grid,.rev-grid{grid-template-columns:1fr}
  .sms-proof{display:block;min-height:0}
  .sms-copy{max-width:none}
  .proof-stage{position:static;left:auto;right:auto}
  .proof-figure{position:static;width:auto;height:auto}
  .proof-stage .device{position:relative;top:0;left:0;width:260px;height:520px;margin:54px auto 0}
  .worker{display:none}
  .curve-bg{-webkit-clip-path:none;clip-path:none;border-radius:26px}
  .curve-shelf{display:none}
  .band-curve{padding:12px 12px 16px;background:#fff}
  .curve-card{border-radius:26px;padding:clamp(42px,9vw,70px) clamp(18px,5vw,26px)}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:30px}
  .areas-grid{grid-template-columns:repeat(2,1fr)}
  .trust-inner{justify-content:center;gap:14px 26px}
  .footer-inner{grid-template-columns:1fr;gap:28px}
}
@media (max-width:480px){
  .device{width:272px;height:560px}
  .hero-copy h1{font-size:clamp(2.6rem,13vw,3.4rem)}
  .btn-lg{width:100%}
}
@media (prefers-reduced-motion:reduce){.device{animation:none}.reveal{transition:none;opacity:1;transform:none}.proof-stage .device,.proof-figure .worker{transition:none;opacity:1;--revY:0px;--revS:1;--revR:0deg}}


/* ---------- "Just cleaned" window glint (hero — JS-tracked to the window pixel) ---------- */
.win-glint{position:absolute;left:0;top:0;transform-origin:0 0;opacity:0;width:0;height:0;z-index:9;pointer-events:none;will-change:transform,opacity}
.glint-star{position:absolute;left:0;top:0;width:var(--s,64px);height:var(--s,64px);opacity:0;
  transform:translate(-50%,-50%) scale(.2);
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.95) 0%,rgba(255,255,255,0) 24%);
  filter:drop-shadow(0 0 5px rgba(111,230,255,.55));
  animation:winGlint 5s ease-in-out var(--delay,0s) infinite}
.glint-star::before,.glint-star::after{content:"";position:absolute;inset:0;margin:auto;
  background:radial-gradient(50% 50% at 50% 50%,rgba(255,255,255,.96) 0%,rgba(255,255,255,0) 72%)}
.glint-star::before{width:13%;height:100%}
.glint-star::after{width:100%;height:13%}
.glint-star--main{--s:66px;--delay:.2s}
.glint-star--mini{--s:34px;--delay:1.15s;left:30px;top:-23px}
/* each glint gets its own tilt + out-of-phase twinkle so they never sparkle in unison */
.win-glint--1{--rot:12deg}
.win-glint--2{--rot:-28deg}
.win-glint--3{--rot:46deg}
.win-glint--1 .glint-star--main{animation-duration:5s;animation-delay:0s}
.win-glint--1 .glint-star--mini{animation-duration:5s;animation-delay:1.1s}
.win-glint--2 .glint-star--main{animation-duration:6.3s;animation-delay:1.7s}
.win-glint--2 .glint-star--mini{animation-duration:6.3s;animation-delay:3.2s}
.win-glint--3 .glint-star--main{animation-duration:4.4s;animation-delay:3s}
.win-glint--3 .glint-star--mini{animation-duration:4.4s;animation-delay:.7s}
@keyframes winGlint{
  0%,38%,100%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(var(--rot,0deg))}
  5%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(calc(var(--rot,0deg) + 8deg))}
  11%{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(calc(var(--rot,0deg) + 15deg))}
  17%{opacity:.9;transform:translate(-50%,-50%) scale(.82) rotate(calc(var(--rot,0deg) + 22deg))}
  24%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(calc(var(--rot,0deg) + 30deg))}
}
@media (prefers-reduced-motion:reduce){
  .glint-star{animation:none;opacity:.7;transform:translate(-50%,-50%) scale(.9) rotate(var(--rot,0deg))}
}

/* ---------- Baked text positions ---------- */
.hero-sub{position:relative;left:13px}
.hero-areas{position:relative;left:8px}

#home .feature-copy{width:clamp(480px,52%,780px)}
#home .feature-copy>*{max-width:none}

#home{background:linear-gradient(180deg,#0077b0 0%,#fff 50%)}
#home>.sticky{padding:clamp(14px,2.2vw,28px)}
#home .cine-box{border-radius:var(--radius-hero);border:1px solid rgba(255,255,255,.14);box-shadow:0 34px 70px -42px rgba(0,15,50,.45)}
#home-cards-area{counter-reset:step}

/* ---- Easy payments: white background ---- */
#payment{background:#fff}
#payment .section-head h2{color:#0c3060}
#payment .section-head p{color:#1a4a7a}
#payment .kicker{color:#0077be}
#payment .glass{background:linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#0077b0 100%)}
#payment .ic{background:transparent;border:2px solid var(--orange-2);color:var(--orange-2)}

#why .svc .ic{background:var(--orange);color:#fff;box-shadow:none}
#areas{background:#fff;padding:clamp(20px,2.5vh,36px) clamp(14px,2.2vw,28px) 0}
#areas .band-inner{max-width:none;border-radius:var(--radius-hero) var(--radius-hero) 0 0;padding:clamp(40px,5vw,70px) clamp(26px,4vw,56px);
  background:#fff;
  box-shadow:none;
  display:flex;flex-direction:row;gap:clamp(32px,5vw,64px);align-items:flex-start;justify-content:center}
.areas-left{flex:0 0 clamp(220px,28%,300px);display:flex;flex-direction:column;gap:16px}
.areas-right{flex:0 1 auto;min-width:0}
#areas .areas-grid{grid-template-columns:1fr 1fr;width:100%}
#areas .areas-foot{font-size:.9rem;color:#555;margin:0}
#areas .section-head h2{color:#fff}
#areas .section-head p{color:rgba(255,255,255,.9)}
#areas .kicker{color:var(--cyan-2)}
#areas .glass.area{display:none}

/* ---- Area cards (reference style: large rounded, emoji+text+arrow) ---- */
.areas-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.area-card{position:relative;border-radius:20px;padding:14px 16px;min-height:54px;display:flex;flex-direction:column;justify-content:center;gap:8px;overflow:hidden;cursor:pointer;transform:translateY(-3px);box-shadow:0 16px 40px rgba(0,0,0,.25);transition:transform .18s,box-shadow .18s}
.area-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(0,0,0,.32)}
/* Alternating per column: col1 O→B→O, col2 B→O→B */
.area-card:nth-child(4n+1){background:#FF6B00}
.area-card:nth-child(4n+2){background:#0077be}
.area-card:nth-child(4n+3){background:#0077be}
.area-card:nth-child(4n){background:#FF6B00}
.area-emoji{font-size:2.4rem;line-height:1;margin-bottom:4px}
.area-name{font-family:Poppins,sans-serif;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:700;color:#fff;line-height:1.2;text-align:center;width:100%}
.area-arrow{position:absolute;bottom:12px;right:12px;width:38px;height:38px;background:#FF6B00;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;text-decoration:none;font-weight:700;transition:transform .18s}
.area-card:hover .area-arrow{transform:scale(1.12)}
#areas .areas-foot{color:rgba(255,255,255,.9)}
#areas .areas-foot a{color:var(--cyan-2)}

/* ---- Areas: dark text on white bg ---- */
#areas .kicker{color:#FF6B00}
#areas .section-head h2{color:#111}
#areas .section-head p{color:#444}
#faq{background:#fff;padding:clamp(12px,1.6vh,20px) clamp(14px,2.2vw,28px) clamp(20px,2.5vh,36px);border:none}
#faq .band-inner{max-width:none;border-radius:var(--radius-hero);padding:clamp(40px,5vw,70px) clamp(26px,4vw,56px);
  background:radial-gradient(80% 50% at 96% 8%, rgba(30,144,108,.55) 0%, transparent 60%),linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#0077b0 100%);
  box-shadow:0 34px 70px -42px rgba(0,15,50,.45)}
#faq .section-head h2{color:#fff}
#faq .kicker{color:var(--orange-2)}
#faq details summary::after{color:var(--orange-2)}
#faq details summary{color:#fff}
#faq details p{color:rgba(255,255,255,.88)}
#faq .faq{background:rgba(255,255,255,.05);border-color:var(--line)}

/* ---- Temporarily hidden sections ---- */
.stats-band{display:none}
#reviews{display:none}
#how{display:none}

/* ---- Staggered slow reveal for how-steps — delay driven by general .how-grid rule via --si ---- */
#why .how-steps{margin-top:clamp(36px,5vw,60px)}
#why .how-steps .glass{transition-duration:1.4s}

/* ---- Cerulean theme: Easy payments → CTA ---- */
section.band-tint:not(#how):not(#reviews):not(#faq){background:
    radial-gradient(110% 120% at 98% 62%, rgba(30,144,108,.92) 0%, rgba(30,144,108,.5) 38%, transparent 68%),
    linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#0077b0 100%)}
.cta-banner{background:
    radial-gradient(110% 120% at 98% 62%, rgba(30,144,108,.92) 0%, rgba(30,144,108,.5) 38%, transparent 68%),
    linear-gradient(100deg,#0077be 0%,#0c84c5 36%,#2f9bd0 68%,#0077b0 100%)}
/* ---- #round — split rails framing the pole animation ---- */
#round .round-overlay{position:absolute;inset:0;z-index:10;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:clamp(96px,13vh,156px) clamp(28px,4.5vw,68px) clamp(20px,4vh,46px);pointer-events:none}
#round .round-rail{pointer-events:auto;display:flex;flex-direction:column;gap:14px;width:min(32vw,360px);position:relative;z-index:10;transform:translate(var(--rx,0),calc(var(--ry,0px) + var(--rEnter,0px) + var(--rExit,0px))) scale(var(--rs,1));will-change:transform,opacity}
#round .round-rail--right{margin-top:clamp(2px,4vh,54px)}
#round .round-overlay .kicker{color:var(--cyan-2);text-shadow:0 2px 14px rgba(0,20,50,.5);margin-bottom:3px}
#round .round-overlay h2{color:#fff;font-size:clamp(3rem,7vw,5.8rem);font-weight:900;line-height:1;letter-spacing:-.03em;text-transform:lowercase;text-shadow:0 4px 40px rgba(0,0,0,.55),0 0 80px rgba(0,180,220,.4);-webkit-text-stroke:1px rgba(255,255,255,.1);margin-bottom:0;display:block;text-align:center}
#round .round-center{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);text-align:center;z-index:6;pointer-events:none;width:min(44%,480px)}
#round .round-center .kicker{display:block;margin-bottom:14px;color:var(--orange)}
#round .round-card{position:relative;background:linear-gradient(162deg,rgba(13,54,116,.5),rgba(7,30,74,.46));border:1px solid rgba(255,255,255,.2);border-radius:22px;padding:30px 26px;-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 28px 56px -32px rgba(0,8,30,.8);transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s}
#round .round-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.32)}
#round .round-card--accent{border-color:rgba(111,230,255,.34);background:linear-gradient(162deg,rgba(11,74,128,.54),rgba(7,38,86,.5));padding:44px 28px}
#round .round-list--num{gap:30px}
#round .round-list--num li{font-size:17px;line-height:1.65}
#round .round-card--accent:hover{border-color:rgba(111,230,255,.55)}
#round .round-eyebrow{display:block;font-family:"Poppins";font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-2);margin-bottom:10px}
#round .round-card-title{font-family:"Poppins";font-weight:700;font-size:17px;line-height:1.25;color:#fff;letter-spacing:-.01em;margin-bottom:16px}
#round .round-list{list-style:none;display:flex;flex-direction:column;gap:17px}
#round .round-list li{display:flex;gap:10px;align-items:flex-start;font-size:16px;line-height:1.58;color:rgba(238,245,255,.86)}
#round .round-list b{color:#fff;font-weight:700}
#round .rl-ic{flex:none;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;margin-top:1px;color:#fff;background:linear-gradient(135deg,var(--orange),var(--orange-2));box-shadow:0 8px 16px -8px rgba(255,107,0,.85)}
#round .rl-ic svg{width:13px;height:13px}
#round .rl-num{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;margin-top:1px;font-family:"Poppins";font-weight:700;font-size:11.5px;color:#04263a;background:linear-gradient(135deg,var(--cyan-2),#39c6e6);box-shadow:0 8px 16px -8px rgba(0,160,200,.85)}
#round .round-rail .btn-orange{align-self:flex-start;margin-top:20px}
@media (max-width:920px){
  #round .cine-box{height:auto}
  /* the shadow tuner sets #round .cine-box to a zero-blur "gutter" shadow (an inline
     style) that reads as a hard grey rectangle below the compact card — kill it here
     (needs !important to beat the inline style); desktop keeps its intended gutter. */
  #round .cine-box{box-shadow:none !important}
  #round .round-overlay{position:relative;inset:auto;flex-direction:column;align-items:stretch;padding:96px 18px 46px;gap:18px}
  #round .round-rail{width:100%}
  #round .round-rail--right{margin-top:0}
  #round .round-overlay h2{font-size:clamp(2rem,8.5vw,2.9rem)}
}
@media (max-height:620px) and (min-width:921px){
  #round .round-overlay{padding-top:52px;padding-bottom:16px}
  #round .round-overlay h2{font-size:2.6rem;margin-bottom:0;line-height:1}
  #round .round-overlay .kicker{margin-bottom:2px}
  #round .round-rail{gap:9px}
  #round .round-card{padding:11px 13px}
  #round .round-card-title{margin-bottom:8px}
  #round .round-list{gap:6px}
  #round .round-list li{font-size:12.7px;line-height:1.4}
  #round .round-rail .btn-orange{margin-top:8px}
  #round .round-card--accent{padding:11px 13px}
  #round .round-card-title{font-size:14px;margin-bottom:7px}
  #round .round-eyebrow{margin-bottom:5px}
  #round .round-list--num{gap:6px}
  #round .round-list--num li{font-size:12.7px;line-height:1.4}
}

/* =====================================================================
   MOBILE PASS — desktop layout above is untouched. Hero + #round keep their
   visible canvas frame sequences on phones/tablets/foldables. Text/card reveals
   keep working via the same .reveal/IntersectionObserver system.
   ===================================================================== */

/* #round's canvas had only a plain gradient as its pre-JS fallback — give it
   a real poster (the same water/pole shot used as the loading frame) since
   the frame sequence has a strong first-paint poster before images finish. */
.round-scrub .cine-box canvas{background:#0a3a66 url("clips/key-hero.png") center/cover no-repeat}

/* ---------- Nav: hamburger menu ---------- */
.nav-right{display:flex;align-items:center;gap:10px}
.nav-burger{display:none;flex:none;width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.14);backdrop-filter:blur(10px);position:relative;cursor:pointer;padding:0}
.nav-burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;border-radius:2px;transition:transform .25s,opacity .25s}
.nav-burger span:nth-child(1){top:14px}
.nav-burger span:nth-child(2){top:20px}
.nav-burger span:nth-child(3){top:26px}
.nav.menu-open .nav-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav.menu-open .nav-burger span:nth-child(2){opacity:0}
.nav.menu-open .nav-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:920px){
  .nav-right{transform:translateY(8px)}
  /* the 8px nudge centers it against the tall pre-scroll logo notch; the scrolled
     pill bar is already flex-centered, so drop the nudge there or it sits low */
  .nav.scrolled .nav-right{transform:none}
  .nav-burger{display:flex;align-items:center;justify-content:center}
  .nav-call-btn{display:inline-flex !important;font-size:13px;padding:9px 14px}
  .nav-links{
    display:none;position:absolute;top:calc(100% + 10px);left:16px;right:16px;
    flex-direction:column;gap:3px;background:#0c84c5;backdrop-filter:blur(22px) saturate(1.3);
    border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:10px;
    box-shadow:0 24px 56px -20px rgba(0,8,30,.55);
  }
  .nav.menu-open .nav-links{display:flex}
  .nav-links a{padding:14px 16px;border-radius:12px;font-size:16.5px}
  .nav-links a:active{background:rgba(255,255,255,.14)}

  /* the logo notch was forced to a 316px+ minimum width — far too dominant on a phone */
  .hero-cutout-tl{width:clamp(180px,54vw,230px);height:68px;border-radius:26px 0 1.6rem 0;padding-left:16px}
  .hero-cutout-tl .cutout-logo{height:38px}
  .hero-cutout-tl::after,.hero-cutout-tl::before{width:20px;height:20px}
  .hero-cutout-tl::after{right:-20px}
  .hero-cutout-tl::before{bottom:-20px}
}
/* narrow phones only (tablet range above now carries its own device transform,
   including the tablet tuner vars — this would otherwise win there too since
   it shares the same selector+specificity and comes later in the file) */
@media (max-width:599px){
  .proof-stage .device{transform:translateY(var(--revY,0)) scale(var(--revS,1)) rotate(var(--revR,0deg)) !important}
}

/* ---------- #home: fix text-width overflow + restack the step cards below the copy ----------
   (the cards live inside #home .cine-box, absolutely positioned via inline styles set by the
   card-mover/layout tuner dev tools — !important is required to win over those on mobile) */
@media (max-width:920px){
  /* !important shorthand required: a "Home layout" dev tool sets this element's padding
     (left/bottom) and transform via inline style on every load — longhand rules without
     !important lose to that inline style regardless of specificity. */
  #home .feature-copy{width:100% !important;max-width:none !important;margin:0 !important;
    padding:120px 24px 28px 24px !important;min-height:58vh;justify-content:flex-end;transform:none !important}
  #home .feature-copy>*{max-width:34ch}
  #home .feature-copy p{width:100% !important;max-width:34ch !important}
  /* keep the poster on the box as first paint, then let the canvas frame sequence
     draw over it once the responsive animation frames load. */
  #home .cine-box{height:auto;display:flex;flex-direction:column;
    background:#7fb0d8 url("clips/key-home.png") center/cover no-repeat}
  #home-cards-area{
    position:relative !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important;
    width:100% !important;grid-template-columns:1fr !important;gap:14px !important;
    padding:0 clamp(24px,5vw,60px) 28px;z-index:10}
  /* on mobile the #home cards' scroll-driven reveal path is skipped; the scroll-based
     reveal in site.js adds .in as they enter view so they animate in (see there). */
}

/* ---------- #round: neutralize desktop-only float/fly transforms + tuned inline offsets ---------- */
@media (max-width:920px){
  #round .round-rail{transform:none !important;opacity:1 !important}
  #round .round-center{
    position:relative !important;left:auto !important;top:auto !important;transform:none !important;
    width:100% !important;max-width:none !important;margin-bottom:6px}
  #round .round-center h2{font-size:clamp(2rem,8.5vw,2.9rem) !important}
  #round .round-rail--left .btn-orange{transform:none !important}
  #round .round-overlay{padding-top:96px !important}
}

/* ---------- #areas: stack the intro column above the grid; neutralize inline px widths ---------- */
@media (max-width:920px){
  #areas .band-inner{flex-direction:column;gap:28px;align-items:stretch}
  .areas-left{flex:none;width:100%}
  .areas-right{width:100%}
  #areas .section-head{max-width:none;margin:0}
  #areas .section-head h2{width:100% !important;max-width:100% !important}
  #areas .areas-grid{grid-template-columns:repeat(2,1fr) !important;width:100% !important}
  .area-card{width:100% !important}
}
@media (max-width:480px){
  #areas .areas-grid{grid-template-columns:1fr !important;gap:12px}
  .area-card{padding:16px 18px !important;text-align:center;align-items:center}
}

/* ---------- Short desktop viewports (e.g. 1366×768 laptops) ----------
   .hero-grid centers its content vertically, and the round-rail cards carry
   user-tuned --ry pixel pushes + a fixed padding-top — all calibrated at a
   taller desktop height. On a short viewport those same fixed values eat a
   much bigger share of the available space, pushing the hero eyebrow (and,
   during the load intro, the oversized title) up into the fixed nav, and
   the round-rail cards down too low. Scoped to min-width so phones/tablets
   (handled above) are untouched, and only kicks in below ~820px tall so the
   normal, taller desktop view is unaffected. */
@media (max-height:820px) and (min-width:921px){
  .hero-grid{align-items:start;padding-top:max(120px,15vh)}
  .hero.intro-armed .hero-copy h1{transform:translateY(calc((1 - var(--ht)) * 6vh)) scale(calc(1 + (1 - var(--ht)) * .4)) !important}
  /* the full hero-copy stack (title + everytime + paragraph + buttons + coverage line) is
     taller than this viewport leaves room for once top-anchored — tighten line-height and
     a few margins so the coverage line at the bottom stops clipping */
  .eyebrow{margin-bottom:14px}
  .hero-copy .hero-subtext{margin-bottom:14px}
  .hero-sub{line-height:1.35;margin-bottom:16px}
  .hero-cta{margin-bottom:10px}
  #round .round-overlay{padding-top:64px !important}
  #round .round-rail--left{--ry:50px !important}
  #round .round-rail--right{--ry:30px !important}
  /* #home step cards: narrow + tall (cWidth tuned at a taller resolution) wrap their text
     to 3 lines and stack taller than this viewport — widening them wraps to fewer lines,
     plus trim gap/padding, so card 1 stops poking above the top */
  #home-cards-area{width:42% !important;right:5% !important;gap:12px !important}
  #home-cards-area .step{padding:16px 24px !important}
}

/* ---------- Phone-only (narrow portrait, e.g. 390×844) ----------
   Hide the orange call button in the top nav before scroll — the un-scrolled
   hero nav is tall/roomy but crowded on a narrow phone; it still appears once
   the bar collapses to its scrolled pill state. Tablet/foldable keep it. */
@media (max-width:600px){
  .nav-call-btn{display:none !important}
  .nav.scrolled .nav-call-btn{display:inline-flex !important}
}

/* ---------- Foldable / short landscape (e.g. 717×512) ----------
   The tall single-column mobile stack overflows a short viewport, so restore a
   compact TWO-COLUMN hero (copy | quote form) sized to fit within one screen.
   Uniquely targets short + narrow: phones (844 tall), tablets (1024 tall) and
   desktop (>920 wide) all fail one of these conditions, so they're untouched. */
@media (max-width:920px) and (max-height:600px){
  .hero .cine-box{min-height:calc(100vh - 28px)}
  .hero-grid{grid-template-columns:1.08fr .92fr;gap:22px;align-content:center;
    padding:60px clamp(20px,4vw,40px) 22px}
  .hero-copy{text-align:left}
  .hero-copy h1{font-size:40px;line-height:1.02;margin-bottom:6px}
  .eyebrow{margin-bottom:8px}
  /* reset the tablet-range "under the i…s" spread — the column is far narrower
     here; a simple left-aligned inline row reads better at this size */
  .hero-copy .hero-subtext{margin-left:0;width:auto;justify-content:flex-start;
    font-size:15px;letter-spacing:.02em;margin-bottom:8px}
  .hero-sub{font-size:12.5px;line-height:1.3;max-width:34ch;margin-bottom:9px}
  .hero-cta{justify-content:flex-start;gap:9px;margin-bottom:8px}
  .hero-cta .btn{padding:9px 15px;font-size:13px}
  .hero-areas{font-size:11px;max-width:none;margin-bottom:0;line-height:1.35}
  .hero-trust{gap:8px}

  /* compact quote form so the whole card fits the short height beside the copy */
  .quote-card{justify-self:end;max-width:290px;padding:14px 15px;border-radius:20px}
  .quote-card h3{font-size:1.12rem;margin-bottom:2px}
  .quote-card .qsub{font-size:11px;margin-bottom:9px}
  .qfield{margin-bottom:7px}
  .qfield label{font-size:9px;margin-bottom:3px}
  .qfield input,.qfield textarea{padding:7px 11px;font-size:12px;border-radius:9px}
  .qfield textarea{min-height:36px}
  .quote-card .btn{margin-top:2px;padding:9px;font-size:13px}
}

/* ---------- Foldable / short landscape — SMS-proof ("No need to guess") ----------
   The mobile stack (copy on top, huge figure below) runs 1096px tall and overflows
   the short viewport. Restore the desktop-style side-by-side — copy left, phone +
   worker overlapping on the right — at a compact scale so the whole card fits one
   screen. Same short+narrow gate, so phones/tablet/desktop are untouched. */
@media (max-width:920px) and (max-height:600px){
  .band-curve{padding:14px 12px 18px}
  .curve-card{min-height:0;padding:30px 30px}
  .sms-proof{display:flex !important;align-items:center;min-height:380px}
  .sms-copy{max-width:46% !important;align-self:center}
  .sms-copy .kicker{margin-bottom:6px}
  .sms-copy h2{font-size:1.5rem;margin-bottom:9px}
  .sms-copy p{font-size:12px !important;line-height:1.4;margin-bottom:14px;width:auto !important;max-width:none}
  .sms-copy .btn{padding:10px 16px;font-size:13px}
  .proof-stage{position:absolute !important;top:0 !important;bottom:0 !important;left:46% !important;right:0 !important}
  .proof-figure{position:absolute !important;right:6px !important;bottom:0 !important;left:auto !important;top:auto !important;width:300px !important;height:410px !important;margin:0 !important;display:block !important}
  .proof-stage .device{position:absolute !important;left:0 !important;top:86px !important;width:152px !important;height:304px !important;margin:0 !important;transform:translateY(var(--revY,0)) scale(var(--revS,1)) rotate(var(--revR,0deg)) !important}
  .worker{display:block !important;position:absolute !important;left:14px !important;top:14px !important;height:410px !important;width:auto !important;transform:translateY(var(--revY,0)) scale(var(--revS,1)) rotate(var(--revR,0deg)) !important}
}

/* ---------- Foldable / short landscape — #round ("streak free windows") ----------
   The mobile column stack (title over list card over CTA card) runs 1022px tall.
   Put the title full-width on top, then the two cards SIDE BY SIDE (50/50) and
   compacted, so the whole section fits one short screen. Short+narrow gate only. */
@media (max-width:920px) and (max-height:600px){
  #round .round-overlay{flex-direction:row !important;flex-wrap:wrap;align-items:flex-start;justify-content:center;padding:44px 20px 18px !important;gap:12px 16px}
  #round .round-center{width:100% !important;flex:0 0 100%;margin-bottom:0 !important}
  #round .round-center .kicker{margin-bottom:3px}
  #round .round-center h2{font-size:2.1rem !important}
  #round .round-rail{width:calc(50% - 8px) !important;gap:9px}
  #round .round-rail--right{margin-top:0 !important}
  #round .round-card{padding:13px 14px}
  #round .round-card--accent{padding:13px 14px}
  #round .round-card-title{font-size:13.5px;margin-bottom:8px}
  #round .round-eyebrow{margin-bottom:5px;font-size:10px}
  #round .round-list{gap:7px}
  #round .round-list li{font-size:11.5px;line-height:1.34}
  #round .round-list--num{gap:7px}
  #round .round-list--num li{font-size:11px;line-height:1.32}
  #round .rl-ic{width:16px;height:16px;margin-top:1px}
  #round .rl-num{width:17px;height:17px;font-size:10px}
  #round .round-rail .btn-orange{margin-top:6px;padding:9px 14px;font-size:12.5px}
}

/* ---------- Foldable / short landscape — #home ("come home to glass") ----------
   Copy over the poster fills the first screen; the 3 step cards were stacking in a
   tall column below (2-screen section). Lay them in a compact 3-across row and trim
   the copy so the whole section is close to one screen. */
@media (max-width:920px) and (max-height:600px){
  #home .feature-copy{padding:70px 24px 14px 24px !important;min-height:auto !important}
  #home .feature-copy .hero-sub,#home .feature-copy p{font-size:12.5px !important;line-height:1.4}
  #home-cards-area{grid-template-columns:repeat(3,1fr) !important;gap:10px !important;
    padding:0 20px 20px !important}
  #home-cards-area .step{padding:12px 13px !important}
  #home-cards-area .step h3{font-size:13.5px;margin-bottom:5px}
  #home-cards-area .step p{font-size:11px;line-height:1.34}
}

/* ---------- Foldable / short landscape — Areas grid ----------
   The 2-column grid only fills the left half of the wide foldable screen. Use the
   full width with 4 columns (10 badges → 4+4+2). Badge height/style unchanged. */
@media (max-width:920px) and (max-height:600px){
  #areas .areas-grid{grid-template-columns:repeat(4,1fr) !important}
}
