/* WorkAid for business: the one stylesheet for every page.
   Homepage art direction: "Payday" (the lock screen at different hours of the owner's week), with the job card,
   the drafts folder, the 30/60/90 speed signs and the tally marks grafted in. Palette tokens only. */

:root {
  --navy: #17324D;
  --navy-deep: #10263B;
  --navy-ink: #0B1C2C;
  --blue: #2F6B8A;
  --blue-ink: #285D78;
  --blue-bg: #E6EFF4;
  --teal: #2E7D78;
  --teal-hover: #256A66;
  --teal-ink: #23625E;
  --teal-bg: #E3F1EF;
  --teal-glow: #8AD6CD;
  --page: #F2F5F7;
  --page-deep: #E8EEF2;
  --white: #FFFFFF;
  --border: #D9E1E6;
  --ink: #26313A;
  --muted: #5E6C77;
  --red: #B23B3B;
  --red-deep: #9A3030;
  --red-bg: #F9E8E8;
  --red-soft: #F2A9A3;
  --amber: #B7791F;
  --amber-ink: #8A5A14;
  --amber-bg: #FBF3E4;
  --on-dark: #C8D5DF;
  --paper: #FFFDF7;
  --biro: #22446A;

  --f-head: "Outfit", system-ui, sans-serif;
  --f-body: "Inter", system-ui, sans-serif;
  --f-hand: "Caveat", "Segoe Print", cursive;

  --wrap: 1240px;
  --gutter: 20px;
  --header-h: 64px;
  --sec: 88px;
  --ease: cubic-bezier(.2, .8, .2, 1);
}

@media (min-width: 768px) { :root { --gutter: 32px; --sec: 112px; } }
@media (min-width: 1024px) { :root { --gutter: 48px; --header-h: 76px; --sec: 136px; } }

*, *::before, *::after { box-sizing: border-box; }
/* The hidden attribute always wins: the quote page swaps whole blocks with it (business vs accountant), and a
   component's own display rule (grid, flex) would otherwise show both. */
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font: 400 17px/1.6 var(--f-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
@media (min-width: 1024px) { body { font-size: 18px; } }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { text-wrap: balance; font-family: var(--f-head); font-weight: 500; color: var(--navy); margin: 0; letter-spacing: -.02em; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 6px; }
.stakes :focus-visible, .footer :focus-visible, .cta-panel :focus-visible, .plan-card--feature :focus-visible { outline-color: var(--teal-glow); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -80px; z-index: 100; background: var(--navy); color: #fff; padding: 12px 18px; border-radius: 10px; text-decoration: none; font-weight: 600; }
.skip:focus { top: 12px; }

.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.section { padding: var(--sec) 0; }

.eyebrow {
  font: 500 13px/1.2 var(--f-head);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--teal-ink);
  margin-bottom: 18px;
  display: flex; align-items: center; gap: 10px;
}
.eyebrow::before { content: ""; flex: none; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.eyebrow--on-dark { color: var(--teal-glow); }
@media (min-width: 1024px) { .eyebrow { font-size: 14px; } }

.h2 { font-size: clamp(34px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -.03em; }
.h2--on-dark { color: #fff; }
.h3 { font-size: clamp(24px, 2.3vw, 32px); line-height: 1.15; letter-spacing: -.02em; }
.lede { font-size: 19px; line-height: 1.55; color: var(--ink); }
@media (min-width: 1024px) { .lede { font-size: 21px; } }
.hand { font-family: var(--f-hand); font-weight: 600; letter-spacing: 0; color: var(--biro); }
.hand--red { color: var(--red); }

.section-head { max-width: 860px; margin-bottom: 48px; }
@media (min-width: 1024px) { .section-head { margin-bottom: 72px; } }
.section-head--split { max-width: none; display: grid; gap: 20px; align-items: end; }
@media (min-width: 1024px) { .section-head--split { grid-template-columns: 7fr 5fr; gap: 64px; } .section-head--split .lede { padding-bottom: 8px; color: var(--muted); } }
.section-head--centre { text-align: center; margin-left: auto; margin-right: auto; }
.section-head--centre .eyebrow { justify-content: center; }

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 22px; border-radius: 999px;
  font: 600 16px/1 var(--f-body); text-decoration: none; white-space: nowrap;
  border: 1.5px solid transparent; cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, transform .2s var(--ease), box-shadow .2s;
}
.btn--lg { min-height: 56px; padding: 0 28px; font-size: 17px; }
.btn--sm { min-height: 44px; padding: 0 18px; font-size: 15px; }
.btn--primary { background: var(--teal); color: #fff; box-shadow: 0 10px 24px -12px rgba(46, 125, 120, .8); }
.btn--primary:hover { background: var(--teal-hover); transform: translateY(-1px); }
.btn--ghost { color: var(--navy); border-color: rgba(23, 50, 77, .28); background: transparent; }
.btn--ghost:hover { border-color: var(--navy); background: #fff; }
.btn--light { background: #fff; color: var(--navy); }
.btn--light:hover { background: var(--page-deep); }
.arrow { transition: transform .2s var(--ease); }
.btn:hover .arrow { transform: translateX(3px); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; }
.actions--centre { justify-content: center; align-items: center; }
.text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; color: var(--teal-ink); text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ============ HEADER ============ */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(242, 245, 247, .9);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .2s;
}
.is-scrolled .site-header { border-bottom-color: var(--border); }
.site-header__row { height: var(--header-h); display: flex; align-items: center; gap: 10px; }
.brand { display: inline-flex; align-items: center; gap: 10px; margin-right: auto; padding: 8px 0; text-decoration: none; min-height: 44px; }
.brand img { height: 24px; width: auto; }
.brand__tag { font: 500 11px/1 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-left: 10px; border-left: 1px solid var(--border); white-space: nowrap; }
@media (min-width: 1024px) { .brand img { height: 28px; } .brand__tag { font-size: 12px; } }
.nav { display: none; }
.site-header__cta { padding: 0 14px; font-size: 14px; }
.nav-toggle {
  flex: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--border); background: #fff;
  display: inline-grid; place-items: center; cursor: pointer; padding: 0;
}
.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after {
  display: block; width: 18px; height: 2px; background: var(--navy); border-radius: 2px; position: relative; transition: transform .25s var(--ease), background .2s;
}
.nav-toggle__bars::before, .nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bars::before { top: -6px; }
.nav-toggle__bars::after { top: 6px; }
.nav-open .nav-toggle__bars { background: transparent; }
.nav-open .nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.nav-open .nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }
.nav-open .nav {
  display: grid; position: absolute; left: 0; right: 0; top: var(--header-h);
  background: var(--page); border-bottom: 1px solid var(--border); padding: 4px var(--gutter) 20px;
  box-shadow: 0 24px 40px -24px rgba(16, 38, 59, .35);
}
.nav-open .nav a { padding: 12px 0; min-height: 52px; display: flex; align-items: center; border-bottom: 1px solid var(--border); text-decoration: none; font: 500 20px/1.2 var(--f-head); color: var(--navy); }
@media (max-width: 419px) { .brand__tag { display: none; } }
@media (max-width: 359px) { .site-header__cta { display: none; } }
@media (max-width: 1023px) { .site-header__cta { transition: opacity .2s; } .bar-on .site-header__cta { visibility: hidden; opacity: 0; } }
@media (min-width: 1024px) {
  .nav, .nav-open .nav { display: flex; position: static; gap: 28px; margin-right: 24px; background: none; border: 0; padding: 0; box-shadow: none; }
  .nav a, .nav-open .nav a { font: 500 15px/1 var(--f-body); color: var(--ink); text-decoration: none; padding: 14px 0; min-height: 44px; border: 0; }
  .nav a:hover { color: var(--teal-ink); }
  .nav-toggle { display: none; }
  .site-header__cta { padding: 0 20px; font-size: 15px; }
}

/* ============ HERO ============ */
.hero { padding: 20px 0 64px; overflow: hidden; }
.hero__grid { display: grid; gap: 28px; grid-template-areas: "copy" "scene" "ticks"; }
.hero__copy { grid-area: copy; position: relative; z-index: 2; }
.scene-fig { grid-area: scene; }
.hero__ticks { grid-area: ticks; }
@media (min-width: 1024px) {
  .hero { padding: 40px 0 112px; }
  .hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr); grid-template-rows: auto auto; grid-template-areas: "copy scene" "ticks scene"; column-gap: 56px; row-gap: 28px; }
  .hero__copy { align-self: end; }
  .hero__ticks { align-self: start; }
}
.eyebrow--hero { font-size: 12px; letter-spacing: .1em; margin-bottom: 14px; }
.eyebrow--hero::before { display: none; }
@media (min-width: 480px) { .eyebrow--hero { font-size: 13px; letter-spacing: .14em; } .eyebrow--hero::before { display: block; } }
@media (min-width: 1024px) { .eyebrow--hero { font-size: 14px; margin-bottom: 18px; } }
@media (min-width: 1024px) and (max-width: 1199px) { .eyebrow--hero { font-size: 12px; letter-spacing: .1em; } }
.hero__title {
  font-size: clamp(46px, 12.6vw, 104px);
  line-height: .94; letter-spacing: -.045em; color: var(--navy);
  margin-bottom: 18px;
}
@media (min-width: 768px) and (max-width: 1023px) { .hero__title { font-size: 92px; max-width: 9ch; } }
@media (min-width: 1024px) { .hero__title { font-size: clamp(76px, 6.9vw, 108px); margin-bottom: 30px; } }

/* "overdue" in solid red, never struck through. Its underline fills, red to teal, as the last payment lands
   on the phone (JS adds .anim and then .is-paid to .hero); without JS or with reduced motion it is simply there. */
.cut { position: relative; display: inline-block; color: var(--red); white-space: nowrap; }
.cut__line {
  position: absolute; left: .02em; right: .02em; bottom: -.02em; height: .065em; min-height: 4px; border-radius: 99px;
  background: linear-gradient(90deg, var(--red) 0%, var(--red) 35%, var(--teal) 100%); transform-origin: left center;
}
.hero.anim .cut__line { transform: scaleX(0); transition: transform 1.1s var(--ease); }
.hero.anim.is-paid .cut__line { transform: scaleX(1); }

.hero__lede { font-size: 17px; line-height: 1.5; color: var(--ink); max-width: 33em; margin-bottom: 20px; }
.hero__more { display: none; }
@media (min-width: 600px) { .hero__more { display: inline; } .hero__lede { font-size: 19px; line-height: 1.55; margin-bottom: 28px; } }
@media (min-width: 1024px) { .hero__lede { font-size: 21px; margin-bottom: 32px; } }
.hero__actions { gap: 4px 12px; }
.hero__actions .btn--primary { flex: 1 1 100%; }
.hero__actions .btn--ghost { flex: 1 1 100%; min-height: 48px; border-color: transparent; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(23, 50, 77, .35); }
@media (min-width: 480px) {
  .hero__actions { gap: 12px; }
  .hero__actions .btn--primary, .hero__actions .btn--ghost { flex: 0 0 auto; }
  .hero__actions .btn--ghost { min-height: 56px; border-color: rgba(23, 50, 77, .28); text-decoration: none; }
}
.anchor { display: flex; gap: 10px; align-items: baseline; margin-top: 10px; font-size: 15px; line-height: 1.45; color: var(--muted); max-width: 30em; }
@media (min-width: 480px) { .anchor { margin-top: 22px; } }
.anchor strong { color: var(--navy); font-weight: 600; }
.anchor__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--teal); transform: translateY(-1px); box-shadow: 0 0 0 4px var(--teal-bg); }
.hero__ticks { display: grid; gap: 10px; font-size: 15px; color: var(--ink); }
.hero__ticks li { position: relative; padding-left: 30px; }
.hero__ticks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--teal-bg); }
.hero__ticks li::after { content: ""; position: absolute; left: 6px; top: 8px; width: 8px; height: 4px; border-left: 2px solid var(--teal-ink); border-bottom: 2px solid var(--teal-ink); transform: rotate(-45deg); }
@media (min-width: 1024px) { .hero__ticks { padding-top: 6px; border-top: 1px solid var(--border); padding-top: 22px; max-width: 30em; } }

/* Scene: inside the ute */
.scene-fig { margin: 0; position: relative; }
.scene {
  position: relative; container-type: inline-size; overflow: hidden;
  aspect-ratio: 10 / 14.4; border-radius: 26px; background: var(--navy-ink);
  box-shadow: 0 40px 80px -40px rgba(16, 38, 59, .55);
  --dash: 28cqw;
}
@media (min-width: 560px) { .scene { aspect-ratio: 10 / 11.4; --dash: 34cqw; } }
@media (min-width: 640px) and (max-width: 1023px) { .scene-fig { width: 100%; max-width: 600px; justify-self: center; } }
@media (min-width: 1024px) { .scene { aspect-ratio: 10 / 11.2; border-radius: 30px; } }
.scene__sky {
  position: absolute; inset: 0;
  background:
    radial-gradient(70% 40% at 82% 60%, rgba(251, 243, 228, .95), rgba(251, 243, 228, 0) 70%),
    linear-gradient(180deg, #4F84A0 0%, #7FA9BE 30%, #B9CFD6 52%, #EBDCC3 72%, #F3E2C6 100%);
}
.scene__street { position: absolute; left: 0; width: 100%; height: 34cqw; bottom: calc(var(--dash) - 5cqw); }
.st-far { fill: rgba(23, 50, 77, .34); }
.st-pole { stroke: rgba(16, 38, 59, .5); stroke-width: 2.5; fill: none; vector-effect: non-scaling-stroke; }
.st-wire { stroke: rgba(16, 38, 59, .38); stroke-width: 1; fill: none; vector-effect: non-scaling-stroke; }
.scene__glare {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(118deg, transparent 22%, rgba(255, 255, 255, .22) 30%, transparent 38%),
    linear-gradient(118deg, transparent 44%, rgba(255, 255, 255, .12) 48%, transparent 52%);
}
.scene__frame { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--navy-ink); }
.scene__mirror { position: absolute; top: 3cqw; left: 16cqw; width: 22cqw; height: 9cqw; display: none; }
.scene__mirror::before { content: ""; position: absolute; left: 50%; top: 0; width: 1.4cqw; height: 4cqw; background: var(--navy-ink); transform: translateX(-50%); }
.scene__mirror span {
  position: absolute; left: 0; right: 0; bottom: 0; height: 5.6cqw; border-radius: 2.8cqw;
  background: linear-gradient(180deg, #1b2c3c, #0B1C2C); box-shadow: inset 0 0 0 .5cqw #0B1C2C, inset 0 .9cqw 0 .5cqw rgba(160, 196, 212, .35);
}
@media (min-width: 560px) { .scene__mirror { display: block; } }
.scene__dash {
  position: absolute; left: -12%; right: -12%; bottom: 0; height: var(--dash);
  border-radius: 50% 50% 0 0 / 7cqw 7cqw 0 0;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(255, 255, 255, .08), transparent 70%),
    linear-gradient(180deg, #1c3550 0%, #12273b 30%, #0b1a29 100%);
  box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .16), 0 -12px 30px rgba(11, 28, 44, .25);
}

.pulse { flex: none; display: inline-block; width: .55em; height: .55em; border-radius: 50%; background: var(--teal-glow); }

/* The steering wheel: the top of the rim, bottom left, in front of the dash */
.scene__wheel { position: absolute; z-index: 2; width: 84cqw; height: 84cqw; left: -30cqw; bottom: -58cqw; overflow: visible; }
.wheel__rim { fill: none; stroke: #0A1825; stroke-width: 34; }
.wheel__edge { fill: none; stroke: rgba(160, 196, 212, .16); stroke-width: 2; }
.wheel__shine { fill: none; stroke: rgba(160, 196, 212, .22); stroke-width: 3; stroke-linecap: round; }
.wheel__grip { fill: none; stroke: #050E17; stroke-width: 38; stroke-linecap: round; }
@media (min-width: 560px) { .scene__wheel { width: 70cqw; height: 70cqw; left: -22cqw; bottom: -44cqw; } }

/* Rhea V., docked under the scene as part of its caption */
.scene__cap { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; font-size: 14px; color: var(--muted); }
.who-chip {
  display: inline-flex; align-items: center; gap: 10px; padding: 5px 16px 5px 5px; border-radius: 999px;
  background: #fff; border: 1px solid var(--border); box-shadow: 0 10px 24px -16px rgba(11, 28, 44, .5);
  font: 400 14px/1.25 var(--f-body); color: var(--ink);
}
.who-chip img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.who-chip b { color: var(--navy); font-weight: 600; }
.scene__when { flex: 1 1 16em; }

/* Sticky notes */
.note {
  position: absolute; z-index: 5;
  background: linear-gradient(180deg, #F8E7B0, #F3DC98);
  color: #3A2E14; font-family: var(--f-hand); font-weight: 600;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .05), 0 16px 24px -14px rgba(0, 0, 0, .55);
}
.note::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 18%; background: rgba(0, 0, 0, .04); }
.note--dash {
  left: 4cqw; top: 9cqw; width: 30cqw; aspect-ratio: 1; padding: 6cqw 3cqw 3cqw;
  font-size: 5.6cqw; line-height: 1; transform: rotate(-7deg);
}
@media (min-width: 560px) { .note--dash { left: 6cqw; top: 17cqw; width: 25cqw; font-size: 4.5cqw; padding: 5cqw 2.6cqw 2.6cqw; } }
.note__text { position: relative; display: block; }
.note__strike {
  position: absolute; left: 7%; width: 84%; top: 37%; height: .9cqw; min-height: 3px; background: var(--red); border-radius: 2px;
  transform: rotate(-6deg); transform-origin: left center; transition: transform .45s var(--ease);
}
.note__paid {
  position: absolute; right: 7%; bottom: 8%; color: var(--teal-ink); font-size: 1.15em;
  transform: rotate(-8deg); transition: opacity .4s .3s, transform .5s .3s var(--ease);
}
.scene.anim .note__strike { transform: rotate(-6deg) scaleX(0); }
.scene.anim .note__paid { opacity: 0; transform: rotate(-8deg) scale(1.5); }
.scene.anim.is-paid .note__strike { transform: rotate(-6deg) scaleX(1); }
.scene.anim.is-paid .note__paid { opacity: 1; transform: rotate(-8deg) scale(1); }


/* ============ PHONE (a brand-neutral lock screen) ============ */
.phone {
  position: relative; width: 18em; height: 37.4em; border-radius: 3em; padding: .46em;
  background: linear-gradient(145deg, #4a5560 0%, #161c22 22%, #0b0f13 60%, #2b333b 100%);
  box-shadow: inset 0 0 0 .08em rgba(255, 255, 255, .18), 0 2.4em 3.6em -1.6em rgba(5, 15, 25, .65), 0 .6em 1.2em -.4em rgba(5, 15, 25, .4);
  font-family: var(--f-body); text-align: left;
}
.phone::before, .phone::after { content: ""; position: absolute; width: .22em; border-radius: .1em; background: #232a31; }
.phone::before { right: -.18em; top: 9em; height: 5em; }
.phone::after { left: -.18em; top: 7.6em; height: 2.6em; box-shadow: 0 3.6em 0 #232a31, 0 6.8em 0 #232a31; }
.phone__screen { position: relative; height: 100%; border-radius: 2.56em; overflow: hidden; color: #fff; }
.phone__screen--day {
  background:
    radial-gradient(90% 55% at 15% 8%, rgba(95, 160, 186, .9), transparent 60%),
    radial-gradient(80% 50% at 100% 95%, rgba(46, 125, 120, .95), transparent 62%),
    linear-gradient(170deg, #24506c 0%, #17324D 50%, #10263B 100%);
}
.phone__screen--night {
  background:
    radial-gradient(70% 40% at 80% 10%, rgba(47, 107, 138, .45), transparent 60%),
    linear-gradient(175deg, #13222f 0%, #0a141d 70%, #070e15 100%);
}
.phone__island { position: absolute; top: .62em; left: 50%; width: 5.3em; height: 1.55em; margin-left: -2.65em; background: #000; border-radius: 1em; z-index: 2; }
.phone__status { position: absolute; top: .98em; right: 1.35em; display: flex; align-items: center; gap: .32em; font-size: .7em; }
.phone__status b { font-weight: 600; letter-spacing: .02em; }
.sig { display: inline-block; width: 1.25em; height: .8em; background: #fff; clip-path: polygon(0 75%, 18% 75%, 18% 100%, 0 100%, 0 75%, 27% 50%, 45% 50%, 45% 100%, 27% 100%, 27% 50%, 54% 25%, 72% 25%, 72% 100%, 54% 100%, 54% 25%, 81% 0, 100% 0, 100% 100%, 81% 100%); }
.sig--dark { background: #111; }
.bat { position: relative; width: 1.9em; height: .9em; border: .1em solid rgba(255, 255, 255, .55); border-radius: .28em; }
.bat::before { content: ""; position: absolute; inset: .1em; right: 22%; background: #fff; border-radius: .12em; }
.bat::after { content: ""; position: absolute; right: -.28em; top: .22em; width: .14em; height: .3em; background: rgba(255, 255, 255, .55); border-radius: 0 .1em .1em 0; }
.bat--low::before { right: 82%; background: #FF5F57; }
.phone__lock { position: absolute; top: 2.9em; left: 50%; width: .62em; height: .5em; margin-left: -.31em; background: #fff; border-radius: .1em; }
.phone__lock::before { content: ""; position: absolute; left: .1em; right: .1em; top: -.34em; height: .44em; border: .09em solid #fff; border-bottom: 0; border-radius: .3em .3em 0 0; }
.phone__date { position: absolute; top: 3.9em; left: 0; right: 0; text-align: center; font-size: .96em; font-weight: 500; color: rgba(255, 255, 255, .88); }
.phone__widget { top: 3.2em; font-size: 1.1em; display: flex; justify-content: center; align-items: center; gap: .4em; color: var(--teal-glow); }
.phone__widget b { color: #fff; font-weight: 600; font-variant-numeric: tabular-nums; }
.phone__clock { position: absolute; top: .92em; left: 0; right: 0; text-align: center; font: 500 5.3em/1 var(--f-head); letter-spacing: -.03em; color: rgba(255, 255, 255, .96); font-variant-numeric: tabular-nums; }
.notifs { position: absolute; top: 11.3em; left: .62em; right: .62em; display: flex; flex-direction: column; }
.notif { font-size: .84em; margin-bottom: .5em; max-height: 9em; }
.phone--hero .notif { margin-bottom: .42em; }
.notif__in {
  display: flex; gap: .72em; align-items: flex-start; padding: .82em .85em .86em;
  border-radius: 1.5em; background: rgba(240, 243, 246, .84);
  -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5);
  color: #10161c;
}
.phone__screen--night .notif__in { background: rgba(232, 236, 240, .8); }
.notif__body { flex: 1; min-width: 0; display: grid; grid-template-columns: 1fr auto; column-gap: .5em; line-height: 1.28; }
.notif__body b { font-weight: 600; font-size: 1em; color: #0c1116; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notif__body em { font-style: normal; font-size: .86em; color: rgba(40, 48, 58, .7); }
.notif__body > span { grid-column: 1 / -1; color: #1a2128; }

.phone__btn { position: absolute; bottom: 2.1em; width: 2.85em; height: 2.85em; border-radius: 50%; background: rgba(20, 30, 40, .5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.phone__btn--l { left: 2.4em; }
.phone__btn--r { right: 2.4em; }
.phone__btn--l::after { content: ""; position: absolute; left: 50%; top: 50%; width: .5em; height: 1.05em; margin: -.52em 0 0 -.25em; border: .1em solid #fff; border-radius: .14em .14em .2em .2em; }
.phone__btn--r::after { content: ""; position: absolute; left: 50%; top: 50%; width: 1.1em; height: .8em; margin: -.4em 0 0 -.55em; border: .1em solid #fff; border-radius: .2em; background: radial-gradient(circle, transparent .16em, #fff .17em .25em, transparent .26em); }
.phone__bar { position: absolute; bottom: .55em; left: 50%; width: 7em; height: .3em; margin-left: -3.5em; border-radius: .2em; background: rgba(255, 255, 255, .9); }

/* App icons: brand-neutral */
.app { flex: none; width: 2.55em; height: 2.55em; border-radius: .62em; position: relative; }
.app--bank { background: linear-gradient(160deg, #3BA197, #23625E); }
.app--bank::before { content: ""; position: absolute; left: 22%; right: 22%; top: 22%; height: 18%; background: #fff; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.app--bank::after { content: ""; position: absolute; left: 22%; right: 22%; bottom: 22%; height: 40%; background: linear-gradient(90deg, #fff 0 16%, transparent 16% 28%, #fff 28% 44%, transparent 44% 56%, #fff 56% 72%, transparent 72% 84%, #fff 84%); border-bottom: .14em solid #fff; }
.app--mail { background: linear-gradient(160deg, #4F8DB0, #2F6B8A); }
.app--mail::before { content: ""; position: absolute; left: 20%; right: 20%; top: 28%; bottom: 28%; border: .12em solid #fff; border-radius: .14em; }
.app--mail::after { content: ""; position: absolute; top: 18%; left: 32%; right: 32%; height: 38%; border-right: .12em solid #fff; border-bottom: .12em solid #fff; transform: rotate(45deg) scale(.75); }
.app--alert { background: linear-gradient(160deg, #D25757, #B23B3B); }
.app--alert::before { content: "!"; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font: 700 1.4em/1 var(--f-body); }
.app--cal { background: #fff; overflow: hidden; }
.app--cal::before { content: "MON"; position: absolute; left: 0; right: 0; top: .2em; text-align: center; font: 700 .5em/1 var(--f-body); color: #B23B3B; letter-spacing: .04em; }
.app--cal::after { content: "9"; position: absolute; left: 0; right: 0; bottom: .1em; text-align: center; font: 400 1.35em/1 var(--f-body); color: #111; }

/* Hero phone placement */
.mount { position: absolute; right: 13cqw; bottom: calc(var(--dash) - 15cqw); width: 30cqw; height: 9cqw; border-radius: 2cqw 2cqw 4cqw 4cqw; background: linear-gradient(180deg, #0a1520, #050b11); z-index: 2; }
.mount::before { content: ""; position: absolute; left: 50%; bottom: -5cqw; width: 6cqw; height: 6cqw; margin-left: -3cqw; background: #050b11; border-radius: 1cqw; }
.phone--hero { position: absolute; z-index: 3; font-size: calc(59cqw / 18); right: 4cqw; bottom: 4cqw; transform: rotate(-2.2deg); }
@media (max-width: 559px) {
  .phone--hero { font-size: calc(66cqw / 18); right: 2cqw; bottom: 3cqw; }
  .phone--hero .notif__in { padding: .7em .75em .74em; gap: .6em; }
  .phone--hero .notif__body b, .phone--hero .notif__body > span { font-size: max(13px, 1em); }
  .phone--hero .notif__body em, .phone--hero .notif--promise, .phone--hero .phone__btn { display: none; }
}
@media (min-width: 560px) { .phone--hero { font-size: calc(49cqw / 18); right: 8cqw; bottom: 7cqw; } .mount { right: 17cqw; } }

/* Notification arrival (JS adds .anim; without JS everything shows) */
.scene.anim .notif { max-height: 0; margin-bottom: 0; opacity: 0; transform: translateY(-1.2em) scale(.94); }
.scene.anim .notif.is-in { max-height: 9em; margin-bottom: .42em; opacity: 1; transform: none; }
.scene.anim .notif { transition: max-height .75s var(--ease), margin .75s var(--ease), opacity .45s ease .12s, transform .75s var(--ease); }

/* ============ STAKES ============ */
.stakes {
  background:
    radial-gradient(60% 50% at 75% 20%, rgba(47, 107, 138, .28), transparent 70%),
    var(--navy-deep);
  color: var(--on-dark); padding: var(--sec) 0 0;
}
.stakes__grid { display: grid; gap: 48px; }
@media (min-width: 1024px) { .stakes__grid { grid-template-columns: 5fr 6fr; gap: 72px; align-items: center; } }
.stakes__lede { font-size: 19px; line-height: 1.6; margin: 22px 0 28px; color: var(--on-dark); max-width: 32em; }
@media (min-width: 1024px) { .stakes__lede { font-size: 21px; } }
.feel li {
  position: relative; padding: 15px 0 15px 34px; border-top: 1px solid rgba(255, 255, 255, .12);
  color: #fff; font-size: 17px; line-height: 1.45;
}
.feel li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.feel li::before { content: ""; position: absolute; left: 0; top: 26px; width: 16px; height: 2px; background: var(--red-soft); }
@media (min-width: 1024px) { .feel li { font-size: 18px; } }

/* Kitchen table at night, with tonight's job card on top */
.table {
  margin: 0; position: relative; container-type: inline-size; overflow: hidden;
  border-radius: 26px; padding: 30cqw 6cqw 18cqw;
  background:
    repeating-linear-gradient(92deg, rgba(255, 255, 255, .025) 0 2px, transparent 2px 11px),
    repeating-linear-gradient(90deg, rgba(0, 0, 0, .06) 0 1px, transparent 1px 47px),
    linear-gradient(160deg, #2a3a4a, #1a2836 60%, #121e2a);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}
@media (min-width: 600px) { .table { padding: 120px 48px 72px; } }
.table::before { content: ""; position: absolute; inset: 0; background: radial-gradient(55% 50% at 45% 48%, rgba(251, 236, 205, .2), transparent 75%); pointer-events: none; z-index: 1; }
.table::after { content: ""; position: absolute; inset: 0; background: radial-gradient(95% 85% at 45% 45%, transparent 55%, rgba(5, 12, 20, .55)); pointer-events: none; z-index: 8; }
.paper {
  position: absolute; z-index: 2; width: 54cqw; padding: 4.4cqw 4.4cqw 14cqw; display: grid; gap: 1.8cqw;
  background: #FBFBF8; color: var(--ink); border-radius: .6cqw;
  box-shadow: 0 2cqw 4cqw -1.4cqw rgba(0, 0, 0, .55);
}
.paper__kicker { font: 600 max(9px, 2.6cqw)/1.2 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.paper__from { font: 500 max(14px, 4.4cqw)/1.1 var(--f-head); color: var(--navy); }
.paper__lines { display: grid; gap: 1.4cqw; margin: 1cqw 0; }
.paper__lines i { display: block; height: 1.2cqw; background: #E3E9ED; border-radius: 1cqw; }
.paper__lines i:nth-child(2n) { width: 72%; }
.paper--a { left: 1cqw; top: 3cqw; transform: rotate(-6deg); }
.paper--b { right: -5cqw; top: 1cqw; transform: rotate(7deg); width: 50cqw; }
.stamp {
  position: absolute; right: 4cqw; top: 17cqw; padding: 1cqw 2cqw; border: .6cqw solid currentColor; border-radius: 1.2cqw;
  font: 600 max(10px, 3.2cqw)/1 var(--f-head); letter-spacing: .06em; text-transform: uppercase; transform: rotate(-10deg);
  background: rgba(255, 255, 255, .85);
}
.stamp--red { color: var(--red); }
.stamp--amber { color: var(--amber-ink); }
@container (min-width: 520px) {
  .paper { width: 44cqw; padding: 3.2cqw 3.2cqw 12cqw; gap: 1.4cqw; }
  .paper--b { width: 42cqw; }
  .paper__kicker { font-size: 1.9cqw; }
  .paper__from { font-size: 3.4cqw; }
  .stamp { font-size: 2.4cqw; top: 12.5cqw; }
}

.jobcard {
  position: relative; z-index: 4; max-width: 470px; margin: 0 auto;
  background: var(--paper); color: var(--ink); border-radius: 3px 3px 8px 8px; padding: 22px 20px 18px;
  box-shadow: 0 30px 50px -24px rgba(0, 0, 0, .7), 0 2px 0 rgba(0, 0, 0, .1);
  transform: rotate(-2deg);
  background-image:
    radial-gradient(circle at 9px 7px, rgba(16, 38, 59, .22) 2.2px, transparent 2.7px);
  background-size: 18px 14px; background-repeat: repeat-x;
}
@media (min-width: 600px) { .jobcard { padding: 28px 28px 22px; } }
.jobcard__head { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0 10px; border-bottom: 2px solid var(--navy); }
.jobcard__title { font: 500 20px/1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--navy); }
.jobcard__no { font: 500 13px/1 var(--f-body); color: var(--red); }
.jobcard__no b { font-size: 19px; font-variant-numeric: tabular-nums; }
.jobcard__fields { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.jobcard__fields div { padding: 8px 0 4px; border-bottom: 1px solid var(--border); min-width: 0; }
.jobcard__fields div:nth-child(odd) { padding-right: 12px; border-right: 1px solid var(--border); }
.jobcard__fields div:nth-child(even) { padding-left: 12px; }
.jobcard__fields dt, .jobcard__sub, .jobcard__foot > span:first-child { font: 500 11px/1.2 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--blue-ink); }
.jobcard__fields dd { margin: 2px 0 0; font-size: 23px; line-height: 1.15; }
@container (max-width: 620px) {
  .jobcard__fields div:nth-child(1), .jobcard__fields div:nth-child(4) { grid-column: 1 / -1; padding-left: 0; padding-right: 0; border-right: 0; }
  .jobcard__fields div:nth-child(2) { padding-right: 12px; border-right: 1px solid var(--border); }
  .jobcard__fields div:nth-child(3) { padding-left: 12px; padding-right: 0; border-right: 0; }
  .jobcard__fields div:nth-child(4) { display: flex; align-items: baseline; gap: 12px; }
}
@media (max-width: 599px) {
  .table { padding-left: 4cqw; padding-right: 4cqw; max-height: 500px; -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent); mask-image: linear-gradient(180deg, #000 78%, transparent); }
  .table .note--table, .table .mug { display: none; }
  .drafts { margin-top: 48px; }
  .drafts .drafts__art { display: none; }
}
.jobcard__sub { margin-top: 14px; }
.jobcard__list { margin-top: 2px; }
.jobcard__list li { display: flex; gap: 10px; align-items: center; min-height: 36px; padding: 4px 0; border-bottom: 1px solid var(--border); }
.jobcard__list .hand { font-size: 20px; line-height: 1.15; }
.box { flex: none; width: 14px; height: 14px; border: 1.5px solid var(--blue-ink); border-radius: 2px; }
.jobcard__foot { margin-top: 10px; padding-top: 10px; border-top: 2px solid var(--navy); display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.jobcard__foot .hand { font-size: 23px; }
@media (min-width: 600px) { .jobcard__title { font-size: 24px; } .jobcard__fields dd { font-size: 26px; } .jobcard__list .hand { font-size: 22px; } }

.note--table { right: 2cqw; bottom: 5cqw; width: 30cqw; padding: 5cqw 2.6cqw 3cqw; font-size: max(17px, 5cqw); line-height: 1.02; transform: rotate(6deg); z-index: 6; }
.note--table small { font-size: .8em; color: #6b5420; }
@container (min-width: 520px) { .note--table { right: 3cqw; bottom: 3cqw; width: 21cqw; font-size: 3.6cqw; padding: 3.6cqw 2cqw 2.2cqw; } }
.mug { position: absolute; z-index: 3; left: -6cqw; bottom: -7cqw; width: 26cqw; height: 26cqw; border-radius: 50%; background: radial-gradient(circle, #2b1d14 0 50%, #3a2a1f 51% 52%, #EEF2F5 53% 66%, #CBD5DC 67% 70%, #E2E8EC 71%); box-shadow: 0 2cqw 4cqw rgba(0, 0, 0, .5); }
.mug span { position: absolute; right: -6cqw; top: 8cqw; width: 8cqw; height: 8cqw; border: 2cqw solid #E2E8EC; border-left: 0; border-radius: 0 5cqw 5cqw 0; }
@container (min-width: 520px) { .mug { width: 18cqw; height: 18cqw; left: -3cqw; bottom: -5cqw; } .mug span { right: -4cqw; top: 5cqw; width: 5.5cqw; height: 6cqw; border-width: 1.4cqw; } }

/* The drafts folder: the internal problem */
.drafts { display: grid; gap: 36px; margin-top: 88px; align-items: center; }
@media (min-width: 900px) { .drafts { grid-template-columns: 5fr 6fr; gap: 72px; margin-top: 120px; } .drafts__art { order: 0; } }
.drafts__copy { max-width: 32em; }
.drafts__title { color: #fff; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.08; letter-spacing: -.03em; margin-bottom: 18px; }
.drafts__copy p { font-size: 18px; line-height: 1.6; }
@media (min-width: 1024px) { .drafts__copy p { font-size: 20px; } }
.drafts__art { position: relative; display: flex; justify-content: center; padding-bottom: 40px; }
@media (max-width: 899px) { .drafts__art { order: 2; } }
.drafts__crop { height: 29em; font-size: min(15.5px, 4vw); overflow: hidden; padding: .6em 1em 0; -webkit-mask-image: linear-gradient(180deg, #000 82%, transparent); mask-image: linear-gradient(180deg, #000 82%, transparent); }
.phone--mail { transform: rotate(-3deg); }
.phone__screen--mail { background: #fff; color: var(--ink); }
.mail-status { position: absolute; top: .95em; left: 2em; right: 1.6em; display: flex; justify-content: space-between; align-items: center; font-size: .78em; color: #111; }
.mail-status b { font-weight: 600; }
.mail-head { position: absolute; top: 3em; left: 0; right: 0; padding: 0 1.2em .7em; display: grid; border-bottom: 1px solid var(--page-deep); }
.mail-head__back { font-size: .82em; color: var(--blue); }
.mail-head__title { font: 500 1.9em/1.15 var(--f-head); color: var(--navy); }
.mail-head__count { font-size: .78em; font-weight: 600; color: var(--red); }
.mail { position: absolute; top: 9.6em; left: 0; right: 0; }
.mail li { display: grid; grid-template-columns: 1fr auto; gap: .05em .6em; padding: .75em 1.2em; border-bottom: 1px solid var(--page-deep); }
.mail__to { font-weight: 600; color: var(--navy); font-size: .88em; }
.mail__when { font-size: .74em; color: var(--muted); align-self: center; }
.mail__subj { grid-column: 1 / -1; font-size: .8em; color: var(--ink); }
.mail__prev { grid-column: 1 / -1; font-size: .76em; color: var(--muted); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.scrawl { position: absolute; right: max(0px, calc(50% - 250px)); bottom: 0; font: 600 30px/1 var(--f-hand); color: #FF8F86; transform: rotate(-6deg); text-align: left; }
.scrawl svg { display: block; width: 64px; height: 42px; margin: 0 0 4px -8px; }
@media (max-width: 899px) { .drafts__art { padding-bottom: 72px; } .scrawl { right: max(0px, calc(50% - 230px)); bottom: -6px; } }
@media (min-width: 900px) { .scrawl { right: -40px; bottom: -4px; font-size: 34px; } .drafts__crop { font-size: 17px; } }
@media (min-width: 1200px) { .scrawl { right: 0; } }

/* The verdict: red, full bleed */
.verdict { margin-top: 88px; background: var(--red); color: #fff; padding: 64px 0 72px; }
@media (min-width: 1024px) { .verdict { margin-top: 120px; padding: 88px 0; } }
.verdict__in { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1024px) { .verdict__in { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; } }
.verdict__line { font: 500 clamp(32px, 4.2vw, 60px)/1.04 var(--f-head); letter-spacing: -.03em; text-wrap: balance; }
.verdict__line span { display: inline-block; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 8px; }
.verdict__sub { margin-top: 18px; font-size: 19px; color: #FBE3E1; }
.drift__cap { font: 500 13px/1.3 var(--f-head); letter-spacing: .14em; text-transform: uppercase; color: #FBE3E1; margin-bottom: 18px; }
.drift { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 10px; }
.drift li { display: flex; align-items: center; gap: 10px; }
.drift li:nth-child(-n+2)::after { content: ""; width: 18px; height: 2px; background: rgba(255, 255, 255, .7); }
.sign {
  display: inline-grid; place-items: center; width: 2.25em; height: 2.25em; border-radius: 50%;
  background: #fff; color: var(--navy); font: 500 1em/1 var(--f-head); letter-spacing: -.03em;
  box-shadow: inset 0 0 0 .07em #fff, inset 0 0 0 .3em var(--red), 0 0 0 .05em rgba(255, 255, 255, .9);
}
.drift .sign { font-size: clamp(26px, 7vw, 40px); }
.drift .sign--30 { font-size: clamp(22px, 5.8vw, 32px); }
.drift .sign--90 { font-size: clamp(30px, 8vw, 46px); }
.drift .sign { box-shadow: inset 0 0 0 .07em #fff, inset 0 0 0 .3em var(--red-deep), 0 10px 20px -10px rgba(0, 0, 0, .5); }
.drift__end { margin-left: 4px; font: 600 clamp(18px, 4.6vw, 26px)/1 var(--f-head); text-transform: uppercase; letter-spacing: .08em; border: 3px solid #fff; border-radius: 8px; padding: 10px 12px 8px; transform: rotate(-5deg); white-space: nowrap; }

/* ============ VALUE ============ */
.value__title { font-size: clamp(40px, 5.4vw, 80px); line-height: .98; letter-spacing: -.04em; }
.bento { display: grid; gap: 16px; }
@media (min-width: 900px) {
  .bento { grid-template-columns: repeat(12, 1fr); gap: 20px; }
  .tile--paid { grid-column: span 7; }
  .tile--night { grid-column: span 5; }
  .tile--bill { grid-column: span 5; }
  .tile--report { grid-column: span 7; }
}
.tile { background: #fff; border-radius: 24px; padding: 16px 16px 26px; display: flex; flex-direction: column; border: 1px solid rgba(217, 225, 230, .7); }
@media (min-width: 768px) { .tile { padding: 22px 22px 34px; } }
.tile__art { flex: 1 1 auto; background: var(--page); border-radius: 16px; min-height: 220px; padding: 22px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 10px; margin-bottom: 22px; overflow: hidden; }
.was { font: 500 15px/1.35 var(--f-body); color: var(--red-deep); margin: 0 0 8px; padding: 0 8px; }
.was s { text-decoration-thickness: 1.5px; }
.was--on-dark { color: var(--red-soft); }
.tile__title { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.15; margin: 0 0 10px; padding: 0 8px; }
.tile > p:not(.was) { color: var(--muted); padding: 0 8px; max-width: 34em; }
@media (min-width: 768px) { .tile__title, .tile > p { padding: 0 12px; } }
.tile--night { background: var(--navy); border-color: var(--navy); }
.tile--night .tile__title { color: #fff; }
.tile--night > p:not(.was) { color: var(--on-dark); }
.tile__art--clock { background: linear-gradient(180deg, #10263B, #0B1C2C); align-items: flex-start; justify-content: flex-end; padding: 26px; }
.bigtime { font: 500 clamp(72px, 9vw, 120px)/.9 var(--f-head); color: #fff; letter-spacing: -.05em; }
.bigtime small { font-size: .32em; letter-spacing: 0; margin-left: .2em; color: var(--teal-glow); }
.bigtime__sub { font: 500 17px/1.35 var(--f-body); color: var(--teal-glow); text-wrap: balance; margin-top: 10px; }

.mini-notif {
  width: 100%; max-width: 420px; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 18px;
  background: #fff; box-shadow: 0 10px 30px -18px rgba(16, 38, 59, .5), 0 0 0 1px rgba(217, 225, 230, .6); font-size: 14px; line-height: 1.3;
}
.mini-notif .app { font-size: 14px; }
.mini-notif > span:nth-child(2) { flex: 1; min-width: 0; display: grid; }
.mini-notif b { color: #0c1116; font-weight: 600; }
.mini-notif em { font-style: normal; color: var(--muted); font-size: 12px; align-self: flex-start; }
.mini-notif:nth-child(2) { transform: scale(.96); }
.mini-notif:nth-child(3) { transform: scale(.92); }

.flag { justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 999px; font: 600 13px/1.2 var(--f-body); }
.flag::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.flag--amber { background: var(--amber-bg); color: var(--amber-ink); box-shadow: inset 0 0 0 1px rgba(183, 121, 31, .35); }

.report { width: 100%; max-width: 520px; background: #fff; border-radius: 14px; box-shadow: 0 16px 34px -22px rgba(16, 38, 59, .5); overflow: hidden; font-size: 13px; }
.report__head { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; background: var(--navy); color: #fff; font-weight: 600; }
.report__head span:last-child { font-weight: 400; color: var(--on-dark); white-space: nowrap; }
.report__row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; padding: 11px 16px; border-top: 1px solid var(--page-deep); }
.report__row span:first-child { color: var(--ink); font-weight: 500; }
.report__row span:nth-child(2) { color: var(--muted); font-variant-numeric: tabular-nums; }
.report__row .pill { grid-column: 1 / -1; justify-self: start; }
.report__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 12px 16px; background: var(--page); border-top: 1px solid var(--page-deep); color: var(--muted); }
.report__foot b { color: var(--navy); font-weight: 600; font-variant-numeric: tabular-nums; margin-left: 4px; }
@media (min-width: 480px) { .report__row { grid-template-columns: 1fr auto auto; } .report__row .pill { grid-column: auto; justify-self: end; } .report { font-size: 14px; } }
.pill { display: inline-block; padding: 4px 10px; border-radius: 999px; font: 600 12px/1.3 var(--f-body); white-space: nowrap; }
.pill--amber { background: var(--amber-bg); color: var(--amber-ink); }
.pill--red { background: var(--red-bg); color: var(--red); }
.pill--blue { background: var(--blue-bg); color: var(--blue-ink); }
.pill--teal { background: var(--teal-bg); color: var(--teal-ink); }
.value__cta { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; }
.value__cta .btn { width: 100%; }
@media (min-width: 560px) { .value__cta .btn { width: auto; } }

/* ============ GUIDE ============ */
.guide { background: #fff; }
.guide__grid { display: grid; gap: 52px; }
@media (min-width: 1024px) { .guide__grid { grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; } }
.guide__copy .h2 { margin-bottom: 24px; }
.guide__copy .lede { margin-bottom: 18px; }
.guide__p { color: var(--muted); max-width: 34em; }
.facts { display: grid; grid-template-columns: 1fr 1fr; margin: 32px 0 36px; border-top: 1px solid var(--border); }
.facts div { padding: 20px 14px 20px 0; border-bottom: 1px solid var(--border); }
.facts div:nth-child(2n) { padding-left: 18px; border-left: 1px solid var(--border); }
.facts dt { font: 500 clamp(26px, 2.6vw, 34px)/1.05 var(--f-head); color: var(--navy); letter-spacing: -.02em; margin-bottom: 6px; }
.facts dd { margin: 0; font-size: 14px; line-height: 1.45; color: var(--muted); }
.guide__cta { width: 100%; }
@media (min-width: 560px) { .guide__cta { width: auto; } }

.team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 12px; }
.person { margin: 0; }
.person img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; background: var(--page-deep); margin-bottom: 12px; }
.person figcaption { display: grid; gap: 1px; font-size: 14px; line-height: 1.35; }
.person b { color: var(--navy); font-weight: 600; font-size: 15px; }
.person span { color: var(--muted); }
.person em { font-style: normal; color: var(--teal-ink); font-weight: 500; margin-top: 4px; }
.person--lead { grid-column: 1 / -1; position: relative; }
.person--lead img { aspect-ratio: 4 / 3.4; object-position: 50% 20%; border-radius: 22px; margin: 0; }
.person--lead figcaption { position: absolute; left: 14px; right: 14px; bottom: 14px; justify-self: start; background: rgba(255, 255, 255, .95); padding: 12px 16px; border-radius: 14px; }
.person--lead b { font-size: 16px; }
@media (max-width: 767px) {
  .person--desk { display: none; }
  .person:not(.person--lead) img { border-radius: 14px; margin-bottom: 8px; }
  .person:not(.person--lead) figcaption { font-size: 13px; }
  .person:not(.person--lead) b { font-size: 14px; }
  .person:not(.person--lead) span { display: none; }
  .person em { margin-top: 2px; }
}
@media (min-width: 768px) {
  .team { gap: 20px 14px; }
  .person--lead { grid-column: 1 / 3; grid-row: 1 / 3; }
  .person--lead img { height: 100%; aspect-ratio: auto; min-height: 100%; }
}

/* ============ PLAN ============ */
.plan__head { margin-bottom: 48px; max-width: 760px; }
.plan__head .lede { margin-top: 20px; color: var(--muted); }
.steps { display: grid; gap: 14px; }
.step { position: relative; display: grid; grid-template-columns: 1fr; gap: 0; padding: 26px 24px 28px; border-radius: 22px; background: #fff; border: 1px solid rgba(217, 225, 230, .8); }
.step__n { font: 400 72px/.8 var(--f-head); color: var(--teal); letter-spacing: -.06em; margin-bottom: 14px; }
.step__who { position: absolute; top: 24px; right: 22px; }
.step:first-child { background: var(--navy-deep); border-color: var(--navy-deep); }
.step:first-child h3 { color: #fff; }
.step:first-child p { color: var(--on-dark); }
.step:first-child .step__n { color: var(--teal-glow); }
.step:first-child .step__who--you { color: var(--red-soft); }
.step__who { justify-self: start; font: 600 12px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--blue-ink); padding: 6px 11px; border: 1.5px solid currentColor; border-radius: 999px; margin-bottom: 6px; }
.step__who--you { color: var(--red); }
.step h3 { font-size: 24px; line-height: 1.15; }
.step p { color: var(--muted); max-width: 26em; margin-top: 6px; }
@media (min-width: 900px) {
  .steps { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .step { grid-template-columns: 1fr; align-content: start; padding: 36px 34px 38px; gap: 0; }
  .step__n { font-size: clamp(100px, 10vw, 150px); margin-bottom: 18px; }
  .step__who { top: 34px; right: 30px; }
  .step h3 { font-size: clamp(26px, 2.4vw, 32px); margin-bottom: 4px; }
}
.plan__cta { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; }
.plan__cta .btn { width: 100%; }
.plan__note { color: var(--muted); font-size: 16px; }
.plan__note strong { color: var(--navy); font-weight: 600; }
@media (min-width: 560px) { .plan__cta .btn { width: auto; } }

/* ============ HOW ============ */
.how { background: #fff; }
.chase { display: grid; gap: 0; position: relative; }
@media (min-width: 1024px) { .chase { grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; } }
.chase__aside { position: sticky; top: calc(var(--header-h) + 8px); z-index: 5; margin: 0 calc(var(--gutter) * -1) 8px; padding: 8px var(--gutter) 16px; background: linear-gradient(180deg, #fff 82%, rgba(255, 255, 255, 0)); }
@media (min-width: 1024px) { .chase__aside { top: calc(var(--header-h) + 40px); margin: 0; padding: 0; background: none; } }

.inv {
  --tc: var(--blue-ink); --tb: var(--blue-bg);
  position: relative; display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: end;
  padding: 14px 18px; border-radius: 18px; background: #fff; overflow: hidden;
  border: 1px solid var(--border); box-shadow: 0 18px 40px -26px rgba(16, 38, 59, .55);
}
.inv[data-tone="amber"] { --tc: var(--amber-ink); --tb: var(--amber-bg); }
.inv[data-tone="teal"] { --tc: var(--teal-ink); --tb: var(--teal-bg); }
.inv__top { display: contents; }
.inv__kicker { display: none; white-space: nowrap; }
.inv__status { grid-column: 2; grid-row: 1 / 3; align-self: center; padding: 7px 12px; border-radius: 999px; background: var(--tb); color: var(--tc); font: 600 13px/1.2 var(--f-body); transition: background .3s, color .3s; white-space: nowrap; }
.inv__to { grid-column: 1; font: 500 17px/1.2 var(--f-head); color: var(--navy); }
.inv__job { display: none; }
.inv__amt { grid-column: 1; font: 500 26px/1.1 var(--f-head); color: var(--navy); letter-spacing: -.02em; }
.inv__meter { grid-column: 1 / -1; height: 5px; border-radius: 5px; background: var(--page-deep); margin-top: 10px; overflow: hidden; }
.inv__meter span { display: block; height: 100%; width: 18%; background: var(--tc); border-radius: 5px; transition: width .6s var(--ease), background .3s; }
.inv__stamp {
  position: absolute; right: 18px; top: 50%; padding: 4px 12px; border: 3px solid var(--teal); color: var(--teal); border-radius: 8px;
  font: 600 22px/1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; transform: translateY(-50%) rotate(-10deg) scale(1.6); opacity: 0;
  transition: opacity .3s, transform .45s var(--ease); background: rgba(255, 255, 255, .94);
}
.inv[data-tone="teal"] .inv__stamp { opacity: 1; transform: translateY(-50%) rotate(-10deg) scale(1); }
@media (min-width: 1024px) {
  .inv { display: block; padding: 32px 32px 30px; border-radius: 24px; }
  .inv__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; gap: 12px; }
  .inv__kicker { display: block; white-space: nowrap; font: 600 12px/1.2 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
  .inv__status { font-size: 14px; padding: 8px 14px; }
  .inv__to { display: block; font-size: 30px; margin-bottom: 4px; }
  .inv__job { display: block; color: var(--muted); font-size: 15px; margin-bottom: 26px; }
  .inv__amt { display: block; font-size: 64px; letter-spacing: -.04em; margin-bottom: 24px; }
  .inv__meter { height: 8px; margin: 0; }
  .inv__stamp { right: 28px; top: 92px; font-size: 30px; padding: 6px 16px; transform: rotate(-10deg) scale(1.6); }
  .inv[data-tone="teal"] .inv__stamp { transform: rotate(-10deg) scale(1); }
}

.chase__steps { position: relative; }
.cstep { position: relative; display: grid; grid-template-columns: 18px 1fr; column-gap: 16px; padding: 26px 0 30px; border-top: 1px solid var(--border); }
.cstep:last-child { border-bottom: 1px solid var(--border); }
@media (min-width: 1024px) { .cstep { grid-template-columns: 22px 1fr; column-gap: 24px; padding: 44px 0 52px; min-height: 30vh; align-content: start; } }
.cstep__dot { grid-row: 1 / 3; margin-top: clamp(14px, 1.6vw, 22px); width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--border); background: #fff; transition: background .3s, border-color .3s, box-shadow .3s; }
@media (min-width: 1024px) { .cstep__dot { width: 18px; height: 18px; } }
.cstep[data-tone="blue"] .cstep__dot { border-color: var(--blue); }
.cstep[data-tone="amber"] .cstep__dot { border-color: var(--amber); }
.cstep[data-tone="teal"] .cstep__dot { border-color: var(--teal); }
.cstep.is-active .cstep__dot { background: var(--blue); box-shadow: 0 0 0 5px var(--blue-bg); }
.cstep[data-tone="amber"].is-active .cstep__dot { background: var(--amber); box-shadow: 0 0 0 5px var(--amber-bg); }
.cstep[data-tone="teal"].is-active .cstep__dot { background: var(--teal); box-shadow: 0 0 0 5px var(--teal-bg); }
@media (min-width: 1024px) and (max-width: 1279px) {
  .chase { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
  .inv__to { font-size: 26px; }
  .inv__amt { font-size: 56px; }
  .inv__stamp { top: 96px; right: 22px; font-size: 26px; }
}
.cstep__title { font-size: clamp(30px, 3.4vw, 48px); line-height: 1.05; letter-spacing: -.03em; margin: 4px 0 12px; }
.cstep__p { color: var(--muted); max-width: 32em; }
.cstep--paid .cstep__title { color: var(--teal-ink); }

/* Bills ready to pay: the bank card in the "never twice" tile */
.bank { width: 100%; max-width: 360px; display: grid; background: #fff; border-radius: 20px; padding: 18px 18px 20px; box-shadow: 0 24px 44px -28px rgba(16, 38, 59, .55); transform: rotate(-1.5deg); }
.bank__top { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; color: var(--muted); margin-bottom: 14px; }
.bank__top .app { font-size: 12px; }
.bank__k { font-size: 14px; color: var(--muted); }
.bank__v { font: 500 20px/1.2 var(--f-head); color: var(--navy); margin: 2px 0 12px; }
.bank__v b { display: block; font-weight: 500; font-size: 34px; letter-spacing: -.03em; }
.bank__list { border-top: 1px solid var(--page-deep); margin-bottom: 14px; }
.bank__list li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--page-deep); font-size: 14px; }
.bank__list b { font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; }
.bank__more span, .bank__more b { color: var(--muted); font-weight: 500; }
.bank .flag { margin-bottom: 14px; }
.bank__go { display: flex; justify-content: center; align-items: center; min-height: 44px; border-radius: 999px; background: var(--navy); color: #fff; font-weight: 600; font-size: 15px; }

/* ============ KINDS: a light "that's me" ============ */
.kinds { padding-top: calc(var(--sec) * .7); padding-bottom: calc(var(--sec) * .7); }
.kinds__title { font-size: clamp(28px, 3.2vw, 44px); line-height: 1.1; letter-spacing: -.025em; max-width: 19em; margin-bottom: 32px; }
.kinds__grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 960px) { .kinds__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; } }
.kind { display: flex; gap: 16px; align-items: flex-start; padding: 26px 22px 22px; border-radius: 24px; background: #fff; border: 1px solid rgba(217, 225, 230, .9); text-decoration: none; color: inherit; transition: transform .3s var(--ease), box-shadow .3s, border-color .3s; }
@media (min-width: 768px) { .kind { padding: 34px 34px 28px; gap: 26px; } }
.kind:hover { transform: translateY(-3px); border-color: var(--teal); box-shadow: 0 26px 50px -34px rgba(16, 38, 59, .5); }
.sign--card { flex: none; font-size: 22px; transform: rotate(-6deg); box-shadow: inset 0 0 0 .07em #fff, inset 0 0 0 .3em var(--red), 0 0 0 1px var(--border), 0 12px 20px -12px rgba(16, 38, 59, .5); }
@media (min-width: 768px) { .sign--card { font-size: 32px; } }
.kind__body { display: grid; gap: 8px; min-width: 0; }
.kind__q { font: 500 clamp(26px, 2.6vw, 34px)/1.1 var(--f-head); color: var(--navy); letter-spacing: -.02em; }
.kind__line { color: var(--muted); font-size: 17px; }
.kind__link { display: block; margin-top: 4px; padding: 10px 0; font-weight: 600; color: var(--teal-ink); }
.kind__link span { display: inline-block; margin-left: 4px; transition: transform .2s var(--ease); }
.kind:hover .kind__link span { transform: translateX(3px); }

/* ============ PRICES ============ */
.prices { background: #fff; }
.plans { display: grid; gap: 28px; }
@media (min-width: 1000px) { .plans { grid-template-columns: 1fr 1.1fr 1fr; gap: 20px; align-items: stretch; } }
.plan-card { position: relative; display: flex; flex-direction: column; padding: 32px 24px 28px; border-radius: 24px; background: var(--page); border: 1px solid var(--page-deep); }
@media (min-width: 768px) { .plan-card { padding: 40px 36px 36px; } }
.plan-card__name { font-size: 28px; margin-bottom: 4px; }
.plan-card__for { color: var(--muted); margin-bottom: 22px; }
.plan-card__price { white-space: nowrap; font: 500 clamp(36px, 3.1vw, 44px)/1 var(--f-head); color: var(--navy); letter-spacing: -.03em; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--border); }
.plan-card__price span { display: block; margin: 10px 0 0; font: 400 16px/1 var(--f-body); color: var(--muted); letter-spacing: 0; }
.ticks__lead { font-weight: 600; color: var(--navy); margin-bottom: 12px; font-size: 15px; }
.ticks { display: grid; gap: 12px; margin-bottom: 26px; }
.ticks li { position: relative; padding-left: 30px; font-size: 16px; line-height: 1.45; }
.ticks li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 13px; height: 7px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); transform: rotate(-45deg); }
.plan-card__note { font-size: 14px; color: var(--muted); padding: 12px 14px; background: #fff; border-radius: 12px; margin-bottom: 18px; }
.plan-card .btn { margin-top: auto; width: 100%; }
.plan-card--feature { background: var(--navy-deep); border-color: var(--navy-deep); color: var(--on-dark); box-shadow: 0 40px 70px -40px rgba(16, 38, 59, .8); }
@media (min-width: 1000px) { .plan-card--feature { margin: -16px 0; padding-top: 60px; padding-bottom: 52px; } }
.plan-card--feature .plan-card__name, .plan-card--feature .plan-card__price { color: #fff; }
.plan-card--feature .plan-card__for { color: var(--teal-glow); }
.plan-card--feature .plan-card__price { border-color: rgba(255, 255, 255, .14); }
.plan-card--feature .plan-card__price span { color: var(--on-dark); }
.plan-card--feature .ticks__lead { color: #fff; }
.plan-card--feature .ticks li { color: #fff; }
.plan-card--feature .ticks li::before { border-color: var(--teal-glow); }
.plan-card--feature .plan-card__note { background: rgba(255, 255, 255, .08); color: #fff; }
.plan-card__stamp {
  position: absolute; top: -16px; right: 18px; padding: 8px 14px 7px; border: 3px solid var(--teal); border-radius: 8px;
  background: #fff; color: var(--teal-ink); font: 600 14px/1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; transform: rotate(-4deg);
  box-shadow: 0 10px 20px -12px rgba(16, 38, 59, .6);
}
@media (min-width: 768px) { .plan-card__stamp { right: 28px; font-size: 15px; } }

.price-notes { display: grid; gap: 16px; margin-top: 40px; align-items: start; }
@media (min-width: 900px) { .price-notes { grid-template-columns: 1fr 1.2fr; gap: 20px; margin-top: 56px; } }
.pnote { padding: 26px 24px; border-radius: 22px; border: 1px solid var(--border); }
@media (min-width: 768px) { .pnote { padding: 34px; } }
.pnote__title { font-size: 22px; margin-bottom: 12px; }
.pnote p { color: var(--muted); font-size: 16px; }
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 8px; border-radius: 16px; overflow: hidden; }
.compare__col { padding: 18px 16px; background: var(--page); display: grid; gap: 4px; align-content: start; }
.compare__col--us { background: var(--teal-bg); }
.compare__k { font: 600 12px/1.2 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.compare__col--us .compare__k { color: var(--teal-ink); }
.compare__v { font: 500 clamp(26px, 2.4vw, 32px)/1.1 var(--f-head); color: var(--navy); letter-spacing: -.02em; }
.compare__v small { font: 400 15px/1 var(--f-body); color: var(--muted); letter-spacing: 0; white-space: nowrap; }
.compare__s { font-size: 14px; color: var(--muted); line-height: 1.45; margin-top: 4px; }
.meter-hand { font: 600 23px/1.1 var(--f-hand); color: var(--red); transform: rotate(-2deg); transform-origin: left center; }
@media (max-width: 559px) { .compare { grid-template-columns: 1fr; } .compare__col + .compare__col { border-top: 1px solid var(--border); } }

.promises { margin-top: 48px; padding: 30px 24px; border-radius: 24px; background: var(--teal-bg); }
@media (min-width: 768px) { .promises { padding: 44px 48px; margin-top: 64px; } }
.promises__title { font-size: 24px; margin-bottom: 24px; }
.promises__list { display: grid; gap: 20px; }
@media (min-width: 768px) { .promises__list { grid-template-columns: 1fr 1fr; gap: 24px 40px; } }
@media (min-width: 1100px) { .promises__list { grid-template-columns: repeat(4, 1fr); } }
.promises__list li { position: relative; padding-left: 52px; color: var(--ink); font-size: 16px; line-height: 1.45; }
@media (min-width: 1100px) { .promises__list li { padding: 50px 0 0; } }
.promises__list li::before { content: ""; position: absolute; left: 0; top: 0; width: 36px; height: 36px; border-radius: 50%; background: var(--teal); }
.promises__list li::after { content: ""; position: absolute; left: 11px; top: 11px; width: 13px; height: 7px; border-left: 2.5px solid #fff; border-bottom: 2.5px solid #fff; transform: rotate(-45deg); }
.promises__list b { display: block; color: var(--navy); font: 500 19px/1.25 var(--f-head); margin-bottom: 4px; }
.quiet { margin-top: 26px; font-size: 14px; color: var(--muted); }

/* ============ FORK ============ */
.fork__grid { display: grid; gap: 16px; }
@media (min-width: 900px) { .fork__grid { grid-template-columns: 1fr 1fr; gap: 20px; } }
.fork__side { border-radius: 28px; padding: 28px 20px 30px; display: flex; flex-direction: column; align-items: center; overflow: hidden; }
@media (min-width: 768px) { .fork__side { padding: 44px 48px 48px; } }
.fork__side--bad { background: #E2E6EA; }
.fork__side--good { background: var(--teal-bg); }
.fork__head { align-self: stretch; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
.fork__label { font: 500 clamp(24px, 2.4vw, 32px)/1.15 var(--f-head); color: var(--navy); letter-spacing: -.02em; }
.fork__time { font: 500 14px/1.2 var(--f-body); letter-spacing: 0; padding: 6px 12px; border-radius: 999px; }
.fork__side--bad .fork__time { background: var(--red-bg); color: var(--red); }
.fork__side--good .fork__time { background: #fff; color: var(--teal-ink); }
.fork__crop { height: 26.5em; font-size: min(15px, 3.9vw); overflow: hidden; margin-bottom: 24px; padding: .6em 1.2em 0; -webkit-mask-image: linear-gradient(180deg, #000 84%, transparent); mask-image: linear-gradient(180deg, #000 84%, transparent); }
.phone--fork { font-size: 1em; }
.fork__side--bad .phone--fork { transform: rotate(-2deg); }
.fork__side--good .phone--fork { transform: rotate(2deg); }
.fork__list { align-self: stretch; display: grid; gap: 0; }
.fork__list li { position: relative; padding: 13px 0 13px 32px; border-top: 1px solid rgba(23, 50, 77, .12); font-size: 16px; color: var(--ink); }
.fork__side--bad .fork__list li::before, .fork__side--bad .fork__list li::after { content: ""; position: absolute; left: 4px; top: 24px; width: 14px; height: 2px; background: var(--red); transform: rotate(45deg); }
.fork__side--bad .fork__list li::after { transform: rotate(-45deg); }
.fork__side--good .fork__list li::before { content: ""; position: absolute; left: 3px; top: 20px; width: 13px; height: 7px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); transform: rotate(-45deg); }

.cta-panel {
  margin-top: 56px; padding: 52px 22px; border-radius: 28px; text-align: center; color: var(--on-dark);
  background:
    radial-gradient(60% 80% at 50% 120%, rgba(46, 125, 120, .55), transparent 70%),
    var(--navy-deep);
}
@media (min-width: 768px) { .cta-panel { padding: 88px 56px; border-radius: 32px; } }
.cta-panel__eyebrow { justify-content: center; }
.cta-panel__title { color: #fff; font-size: clamp(36px, 5.2vw, 72px); line-height: 1.02; letter-spacing: -.035em; max-width: 13em; margin: 0 auto 22px; }
.cta-panel__p { max-width: 36em; margin: 0 auto 34px; font-size: 18px; }
.cta-panel__mail { color: #fff; text-decoration: underline; text-underline-offset: 4px; min-height: 44px; display: inline-flex; align-items: center; padding: 0 8px; }
.cta-panel .btn { width: 100%; }
@media (min-width: 480px) { .cta-panel .btn { width: auto; } }

/* ============ FAQ ============ */
.faq { background: #fff; }
.faq__grid { display: grid; gap: 28px; }
@media (min-width: 1024px) { .faq__grid { grid-template-columns: 4fr 7fr; gap: 80px; } .faq__head { position: sticky; top: calc(var(--header-h) + 40px); align-self: start; } }
.faq__mail { margin-top: 20px; color: var(--muted); }
.faq__mail a, .faq details a { color: var(--teal-ink); font-weight: 600; display: inline-block; padding: 11px 0; margin: -11px 0; }
.faq__list { border-top: 1px solid var(--border); }
.faq details { border-bottom: 1px solid var(--border); }
.faq summary {
  list-style: none; cursor: pointer; position: relative; padding: 20px 48px 20px 0; min-height: 44px;
  font: 500 clamp(19px, 1.6vw, 22px)/1.3 var(--f-head); color: var(--navy);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 2px; background: var(--teal); border-radius: 2px; transition: transform .25s var(--ease); }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0); }
.faq details p { padding: 0 32px 24px 0; color: var(--muted); max-width: 40em; }
.referral {
  margin-top: 56px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px;
  padding: 16px 22px; border-radius: 18px; background: var(--page); text-decoration: none; color: var(--ink); border: 1px solid var(--page-deep);
  transition: border-color .2s;
}
.referral:hover { border-color: var(--teal); }
.referral b { color: var(--navy); }
.referral__go { gap: 8px; font-weight: 600; color: var(--teal-ink); white-space: nowrap; min-height: 44px; display: inline-flex; align-items: center; }

/* ============ FOOTER ============ */
.footer { background: var(--navy-deep); color: var(--on-dark); padding: 72px 0 40px; font-size: 15px; }
.footer__grid { display: grid; gap: 36px; }
@media (min-width: 900px) { .footer__grid { grid-template-columns: 2fr 1fr 1.2fr 1fr; gap: 48px; } }
.footer__brand img { height: 30px; width: auto; margin-bottom: 18px; }
.footer__brand p { max-width: 28em; margin-bottom: 22px; }
.footer__col { display: grid; align-content: start; }
.footer__col h2 { font: 500 13px/1.2 var(--f-head); letter-spacing: .14em; text-transform: uppercase; color: #fff; margin-bottom: 6px; }
.footer__col a { color: var(--on-dark); text-decoration: none; min-height: 44px; display: flex; align-items: center; }
.footer__col a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer__base { margin-top: 44px; font-size: 14px; }
.footer__base p { padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .12); }

/* ============ STICKY CTA (phones and tablets) ============ */
.stickybar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-top: 1px solid var(--border); box-shadow: 0 -12px 30px -18px rgba(16, 38, 59, .45);
  transform: translateY(110%); visibility: hidden; transition: transform .3s var(--ease), visibility 0s linear .3s;
}
.stickybar.is-on { transform: none; visibility: visible; transition: transform .3s var(--ease), visibility 0s; }
.stickybar__txt { font-size: 14px; line-height: 1.3; color: var(--muted); }
.stickybar__txt b { color: var(--navy); font-weight: 600; }
.stickybar .btn { flex: none; }
@media (max-width: 359px) { .stickybar__txt { display: none; } .stickybar .btn { width: 100%; } }
@media (min-width: 1024px) { .stickybar { display: none; } }
@media (max-width: 1023px) { .footer { padding-bottom: 104px; } }

/* Reveal */
.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }
.bento .reveal:nth-child(2), .steps .reveal:nth-child(2), .plans .reveal:nth-child(2) { transition-delay: .08s; }
.bento .reveal:nth-child(3), .steps .reveal:nth-child(3), .plans .reveal:nth-child(3) { transition-delay: .16s; }
.bento .reveal:nth-child(4) { transition-delay: .24s; }
@media (max-width: 767px) { .js .bento .reveal { transition-delay: 0s; transition-duration: .45s; } }

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

.nowrap { white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1279px) { .hero__actions .btn--lg { padding: 0 20px; font-size: 16px; } }

/* =====================================================================================
   THE OTHER PAGES: /plumbing, /trading, /get-your-price, 404. Same tokens, same parts.
   Everything above this line is the homepage and is shared; nothing below restyles it.
   ===================================================================================== */
.nav a[aria-current="page"] { color: var(--teal-ink); }
@media (min-width: 1024px) { .nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--teal); } }
.site-header__cta[aria-current="page"] { box-shadow: none; }

/* ---------- Niche hero: same grid as the homepage, a longer headline ---------- */
.hero__title--long { font-size: clamp(44px, 11.4vw, 92px); line-height: .96; letter-spacing: -.04em; }
@media (min-width: 768px) and (max-width: 1023px) { .hero__title--long { font-size: 80px; max-width: 11ch; } }
@media (min-width: 1024px) { .hero__title--long { font-size: clamp(64px, 5.7vw, 88px); } }
/* An underline under the promise; it fills red to teal as the last row on the clipboard is paid */
.uline { background: linear-gradient(90deg, var(--red) 0%, var(--red) 35%, var(--teal) 100%) left 100% / 100% .07em no-repeat; padding-bottom: .02em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.hero.anim .uline { background-size: 0 .07em; transition: background-size 1.1s var(--ease); }
.hero.anim.is-paid .uline { background-size: 100% .07em; }

/* ---------- The clipboard: jobs done (or pallets out), turning from overdue to paid ---------- */
.board {
  position: relative; container-type: inline-size; overflow: hidden; border-radius: 26px;
  padding: 44px 14px 30px;
  background:
    radial-gradient(70% 55% at 85% 0%, rgba(47, 107, 138, .5), transparent 70%),
    radial-gradient(60% 50% at 0% 100%, rgba(46, 125, 120, .35), transparent 70%),
    var(--navy-deep);
  box-shadow: 0 40px 80px -40px rgba(16, 38, 59, .55);
}
@media (min-width: 560px) { .board { padding: 64px 40px 40px; } }
@media (min-width: 1024px) { .board { border-radius: 30px; padding: 72px 44px 44px; } }
.clip {
  position: relative; max-width: 560px; margin: 0 auto; padding: 30px 16px 16px;
  background: var(--paper); color: var(--ink); border-radius: 6px 6px 12px 12px;
  box-shadow: 0 2px 0 rgba(0, 0, 0, .08), 0 40px 60px -30px rgba(0, 0, 0, .75);
  transform: rotate(-1.4deg);
}
@media (min-width: 560px) { .clip { padding: 38px 26px 20px; } }
.clip::before {
  content: ""; position: absolute; left: 50%; top: -18px; width: 132px; height: 34px; margin-left: -66px; border-radius: 10px 10px 6px 6px;
  background: linear-gradient(180deg, #E8EEF2 0%, #B7C4CD 55%, #8C9BA6 100%);
  box-shadow: inset 0 1px 0 #fff, 0 6px 10px -4px rgba(0, 0, 0, .5);
}
.clip::after { content: ""; position: absolute; left: 50%; top: -10px; width: 46px; height: 12px; margin-left: -23px; border-radius: 8px; background: var(--navy-deep); }
.clip__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 10px; border-bottom: 2px solid var(--navy); }
.clip__title { font: 500 17px/1.1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--navy); }
.clip__hand { font: 600 20px/1 var(--f-hand); color: var(--biro); white-space: nowrap; }
@media (min-width: 560px) { .clip__title { font-size: 20px; } .clip__hand { font-size: 23px; } }
.lrow {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "who amt" "who state";
  column-gap: 12px; row-gap: 6px; align-items: center; padding: 11px 0; border-bottom: 1px dashed #C9D4DB;
}
.lrow__who { grid-area: who; display: grid; gap: 1px; min-width: 0; }
.lrow__who b { font: 600 15px/1.25 var(--f-body); color: var(--navy); }
.lrow__who span { font-size: 13px; line-height: 1.3; color: var(--muted); }
.lrow__amt { grid-area: amt; justify-self: end; font: 500 16px/1 var(--f-head); color: var(--navy); font-variant-numeric: tabular-nums; }
.lrow__state { grid-area: state; justify-self: end; position: relative; display: grid; justify-items: end; min-width: 92px; }
.lrow__state > * { grid-area: 1 / 1; }
.lrow__late { font: 600 12px/1 var(--f-body); color: var(--red); background: var(--red-bg); padding: 6px 9px; border-radius: 999px; white-space: nowrap; opacity: 0; transform: scale(.9); }
.lrow__paid {
  font: 600 13px/1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap;
  color: var(--teal-ink); border: 2.5px solid var(--teal); border-radius: 6px; padding: 4px 8px 3px; background: rgba(255, 253, 247, .94);
  transform: rotate(-7deg); transition: opacity .3s, transform .45s var(--ease);
}
.lrow__paid--amber { color: var(--amber-ink); border-color: var(--amber); letter-spacing: .04em; }
@container (min-width: 500px) {
  .lrow { grid-template-columns: minmax(0, 1fr) auto 118px; grid-template-areas: "who amt state"; padding: 13px 0; }
  .lrow__who b { font-size: 16px; }
  .lrow__amt { font-size: 18px; }
}
/* Animated (JS adds .anim to the clipboard, then .is-done to each row): overdue first, then paid */
.clip.anim .lrow:not(.is-done) .lrow__late { opacity: 1; transform: none; }
.clip.anim .lrow:not(.is-done) .lrow__paid { opacity: 0; transform: rotate(-7deg) scale(1.7); }
.clip.anim .lrow__late { transition: opacity .25s .1s, transform .25s .1s; }
.clip__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 6px 16px; padding-top: 14px; }
.clip__k { display: block; font: 500 11px/1.2 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--blue-ink); margin-bottom: 4px; }
.clip__v { font: 500 clamp(28px, 8cqw, 40px)/1 var(--f-head); letter-spacing: -.03em; color: var(--teal-ink); font-variant-numeric: tabular-nums; }
.clip__v--amber { font-size: clamp(20px, 5cqw, 24px); color: var(--amber-ink); }
.board__note { margin: 18px auto 0; max-width: 560px; text-align: right; font: 600 24px/1.1 var(--f-hand); color: var(--teal-glow); transform: rotate(-2deg); }
@media (min-width: 560px) { .board__note { font-size: 28px; margin-top: 22px; } }

/* ---------- The wall calendar: the days since the job was done ---------- */
.cal-fig { margin: 0; display: grid; justify-items: center; }
.cal {
  position: relative; width: 100%; max-width: 540px; padding: 34px 14px 18px;
  background: var(--paper); color: var(--ink); border-radius: 8px 8px 12px 12px;
  box-shadow: 0 2px 0 rgba(0, 0, 0, .1), 0 40px 60px -30px rgba(0, 0, 0, .8);
  transform: rotate(1.4deg);
}
@media (min-width: 560px) { .cal { padding: 42px 26px 24px; } }
.cal::before {
  content: ""; position: absolute; left: 18px; right: 18px; top: -9px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #6E7E8A 0 4px, #2A3A48 4.5px 6px, transparent 6.5px) 0 0 / 26px 24px repeat-x;
}
.cal__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 10px; border-bottom: 2px solid var(--navy); }
.cal__title { font: 500 18px/1.1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--navy); }
.cal__who { font: 600 19px/1 var(--f-hand); color: var(--biro); white-space: nowrap; }
.cal__dow, .cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal__dow span { padding: 8px 0 6px; text-align: center; font: 500 10px/1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--blue-ink); }
.cal__grid { border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.cal__grid > span { position: relative; aspect-ratio: 1 / .8; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 3px 5px; }
.cal__grid b { position: relative; z-index: 1; font: 500 12px/1 var(--f-head); color: var(--ink); }
.cal__grid small { display: none; font-size: 9px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
@media (min-width: 560px) { .cal__grid small { display: inline; } .d-job small { display: none; } }
.cal__grid em { position: absolute; z-index: 2; left: 4px; bottom: 1px; font: 600 14px/1 var(--f-hand); font-style: normal; white-space: nowrap; color: var(--biro); }
@media (min-width: 560px) { .cal__grid b { font-size: 14px; } .cal__grid em { font-size: 17px; left: 6px; bottom: 2px; } .cal__dow span { font-size: 11px; } }
.d-off b { color: #A9B6BF; }
.d-x::after {
  content: ""; position: absolute; inset: 18% 14%;
  background:
    linear-gradient(to top right, transparent calc(50% - 1.1px), rgba(178, 59, 59, .62) calc(50% - 1.1px) calc(50% + 1.1px), transparent calc(50% + 1.1px)),
    linear-gradient(to bottom right, transparent calc(50% - 1.1px), rgba(178, 59, 59, .62) calc(50% - 1.1px) calc(50% + 1.1px), transparent calc(50% + 1.1px));
}
.d-job::before { content: ""; position: absolute; inset: 6% 4% 10%; border: 2px solid var(--biro); border-radius: 50%; transform: rotate(-8deg); }
.d-due { background: var(--amber-bg); }
.d-due em { color: var(--amber-ink); }
.d-today { background: var(--red-bg); }
.d-today::before { content: ""; position: absolute; inset: 4% 3% 8%; border: 2.5px solid var(--red); border-radius: 46% 54% 50% 50%; transform: rotate(6deg); }
.d-today b { color: var(--red); }
.d-today em { color: var(--red); }
.cal__foot { margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; }
.cal__big { font: 600 clamp(26px, 7vw, 36px)/1 var(--f-hand); color: var(--red); transform: rotate(-2deg); }
.cal__sum { font-size: 14px; color: var(--muted); }
.cal__sum b { color: var(--navy); font-weight: 600; font-variant-numeric: tabular-nums; }

/* ---------- Value tiles only the niche pages use ---------- */
.flag--red { background: var(--red-bg); color: var(--red); box-shadow: inset 0 0 0 1px rgba(178, 59, 59, .3); }
.tile__tag { align-self: flex-start; margin: 0 8px 10px; }
@media (min-width: 768px) { .tile__tag { margin: 0 12px 10px; } }
@media (min-width: 900px) {
  .tile--order { grid-column: span 5; }
  .tile--cash { grid-column: span 7; }
  .tile--wide { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: 36px; align-content: center; }
  .tile--wide .tile__art { grid-column: 1; grid-row: 1 / span 5; margin-bottom: 0; }
  .tile--wide > :not(.tile__art) { grid-column: 2; }
  .tile--wide .tile__tag { margin-top: 24px; }
}

/* A new order from a customer who is behind: the decision is the owner's */
.order { width: 100%; max-width: 360px; display: grid; gap: 4px; background: #fff; border-radius: 20px; padding: 16px 18px 18px; box-shadow: 0 24px 44px -28px rgba(16, 38, 59, .55); transform: rotate(1.5deg); }
.order__top { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; color: var(--muted); margin-bottom: 10px; }
.order__top .app { font-size: 12px; }
.order__top em { margin-left: auto; font-style: normal; font-weight: 400; }
.order__who { font: 500 22px/1.15 var(--f-head); color: var(--navy); }
.order__amt { font: 500 30px/1.1 var(--f-head); letter-spacing: -.03em; color: var(--navy); margin-bottom: 10px; }
.order__amt small { font: 400 14px/1 var(--f-body); letter-spacing: 0; color: var(--muted); margin-left: 6px; }
.order .flag { margin-bottom: 14px; }
.order__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.order__btn { display: flex; justify-content: center; align-items: center; min-height: 42px; border-radius: 999px; font-weight: 600; font-size: 15px; border: 1.5px solid rgba(23, 50, 77, .3); color: var(--navy); }
.order__hand { justify-self: end; margin-top: 6px; font: 600 24px/1 var(--f-hand); color: var(--biro); transform: rotate(-4deg); }

/* Where the cash stands, this week */
.cash { width: 100%; max-width: 480px; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 16px 34px -22px rgba(16, 38, 59, .5); }
.cash__head { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; background: var(--navy); color: #fff; font-size: 14px; font-weight: 600; }
.cash__head span:last-child { font-weight: 400; color: var(--on-dark); white-space: nowrap; }
.cash__row { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: baseline; padding: 14px 16px; border-top: 1px solid var(--page-deep); }
.cash__row:first-of-type { border-top: 0; }
.cash__k { font-size: 14px; color: var(--muted); }
.cash__v { font: 500 24px/1.1 var(--f-head); letter-spacing: -.02em; color: var(--navy); font-variant-numeric: tabular-nums; }
.cash__row--in .cash__v { color: var(--teal-ink); }
.cash__row .pill { grid-column: 1 / -1; justify-self: start; margin-top: 4px; }
.cash__foot { padding: 12px 16px; background: var(--red-bg); color: var(--red-deep); font-size: 14px; font-weight: 600; }

/* What one job really made (Scale) */
.jobcost { width: 100%; max-width: 460px; background: var(--paper); border-radius: 6px 6px 12px 12px; padding: 20px 20px 18px; box-shadow: 0 24px 44px -28px rgba(16, 38, 59, .55); transform: rotate(-1.2deg); }
.jobcost__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 10px; border-bottom: 2px solid var(--navy); }
.jobcost__title { font: 500 15px/1.2 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--navy); }
.jobcost__no { font: 500 13px/1 var(--f-body); color: var(--red); white-space: nowrap; }
.jobcost__job { margin: 12px 0 8px; font: 500 20px/1.2 var(--f-head); color: var(--navy); }
.jobcost__job span { display: block; font: 400 14px/1.3 var(--f-body); color: var(--muted); }
.jobcost__row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 14px; }
.jobcost__row b { font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; }
.jobcost__bar { display: flex; height: 12px; border-radius: 6px; overflow: hidden; margin: 14px 0 10px; }
.jobcost__bar i { display: block; }
.jobcost__bar .m { background: var(--blue); }
.jobcost__bar .l { background: #8FB0C2; }
.jobcost__bar .p { background: var(--teal); }
.jobcost__made { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.jobcost__made span { font: 500 11px/1.2 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--teal-ink); }
.jobcost__made b { font: 500 30px/1 var(--f-head); letter-spacing: -.03em; color: var(--teal-ink); font-variant-numeric: tabular-nums; }
.jobcost__made small { font: 500 15px/1 var(--f-body); letter-spacing: 0; color: var(--muted); margin-left: 6px; }

/* ---------- GET YOUR PRICE ---------- */
.quote { padding: 28px 0 96px; }
@media (min-width: 1024px) { .quote { padding: 56px 0 136px; } }
.quote__grid { display: grid; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .quote__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 64px; } .quote__aside { position: sticky; top: calc(var(--header-h) + 32px); } }
.quote__title { font-size: clamp(44px, 6vw, 80px); line-height: .98; letter-spacing: -.04em; margin-bottom: 18px; }
.quote__lede { font-size: 19px; color: var(--ink); max-width: 32em; margin-bottom: 32px; }
@media (min-width: 1024px) { .quote__lede { font-size: 21px; } }

.form-card { background: #fff; border: 1px solid rgba(217, 225, 230, .9); border-radius: 26px; padding: 22px 18px 28px; box-shadow: 0 30px 60px -44px rgba(16, 38, 59, .5); }
@media (min-width: 768px) { .form-card { padding: 40px 44px 44px; } }
.fs { border: 0; margin: 0 0 30px; padding: 0; min-width: 0; }
.fs[hidden] { display: none; }
.fs__title { display: block; font: 500 22px/1.2 var(--f-head); color: var(--navy); letter-spacing: -.01em; padding: 0; margin-bottom: 18px; }
.row { display: grid; gap: 0 18px; }
@media (min-width: 640px) { .row { grid-template-columns: 1fr 1fr; } }
.field { display: block; margin-bottom: 20px; min-width: 0; }
.field__label, .group__label { display: block; font-size: 15px; font-weight: 600; color: var(--navy); line-height: 1.4; margin-bottom: 7px; padding: 0; }
.opt { font-weight: 400; color: var(--muted); }
.input, .select, .textarea {
  display: block; width: 100%; min-height: 50px; padding: 12px 14px; border-radius: 12px;
  border: 1.5px solid #8C9BA6; background-color: #fff; color: var(--ink); font: 400 16px/1.4 var(--f-body);
  transition: border-color .2s, box-shadow .2s;
}
.select { appearance: none; -webkit-appearance: none; padding-right: 44px; background-image: linear-gradient(45deg, transparent 50%, var(--navy) 50%), linear-gradient(135deg, var(--navy) 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.textarea { min-height: 120px; resize: vertical; }
.input:focus-visible, .select:focus-visible, .textarea:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-color: var(--blue); }
.input[aria-invalid="true"], .select[aria-invalid="true"], .textarea[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.field__err { margin-top: 7px; display: flex; gap: 8px; align-items: flex-start; font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--red); }
.field__err::before { content: "!"; flex: none; display: grid; place-items: center; width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; background: var(--red); color: #fff; font: 700 12px/1 var(--f-body); }
.field__err:empty { display: none; }

/* Who's asking: a two-way segmented control (real radios underneath) */
.seg { border: 0; margin: 0 0 30px; padding: 0; min-width: 0; }
.seg__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 16px; background: var(--page-deep); }
.seg__opt { position: relative; display: flex; align-items: center; justify-content: center; text-align: center; min-height: 56px; padding: 8px 10px; border-radius: 12px; cursor: pointer; font: 600 15px/1.25 var(--f-body); color: var(--navy); transition: background .2s, box-shadow .2s, color .2s; }
@media (min-width: 560px) { .seg__opt { font-size: 16px; padding: 8px 16px; } }
.seg__opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.seg__opt:hover { background: rgba(255, 255, 255, .55); }
.seg__opt:has(input:checked) { background: #fff; color: var(--teal-ink); box-shadow: 0 8px 18px -12px rgba(16, 38, 59, .6), inset 0 0 0 1.5px var(--teal); }
.seg__opt:has(input:focus-visible) { outline: 3px solid var(--blue); outline-offset: 2px; }
.seg__hint { margin-top: 10px; font-size: 15px; color: var(--muted); }

.choices { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
@media (min-width: 560px) { .choices--2 { grid-template-columns: 1fr 1fr; } }
.choice { position: relative; display: flex; align-items: flex-start; gap: 12px; min-height: 52px; padding: 13px 16px; border-radius: 14px; border: 1.5px solid #8C9BA6; background: #fff; cursor: pointer; font-size: 16px; line-height: 1.35; transition: border-color .2s, background .2s; }
.choice input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--teal); }
.choice:hover { border-color: var(--navy); }
.choice:has(input:checked) { border-color: var(--teal); background: var(--teal-bg); }
.choice__t { display: grid; gap: 2px; }
.choice__t b { font-weight: 600; color: var(--navy); }
.choice__t span { font-size: 14px; color: var(--muted); }
.choices-wrap { border: 0; padding: 0; margin: 0 0 4px; min-width: 0; }
.hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form-foot { display: grid; gap: 12px; padding-top: 26px; border-top: 1px solid var(--page-deep); }
.form-foot .btn { width: 100%; }
@media (min-width: 560px) { .form-foot .btn { width: auto; justify-self: start; } }
.form-foot__note { font-size: 14px; line-height: 1.45; color: var(--muted); }
.btn[disabled] { opacity: .7; cursor: progress; transform: none; }
.form-msg { margin-top: 20px; padding: 14px 16px; border-radius: 12px; font-size: 16px; line-height: 1.5; background: var(--red-bg); color: var(--red-deep); }
.form-msg:empty { display: none; }
.form-msg a { color: inherit; font-weight: 600; }
.noscript { padding: 16px 18px; border-radius: 14px; background: var(--amber-bg); color: var(--amber-ink); margin-bottom: 24px; }
.noscript a { color: inherit; font-weight: 600; }

.thanks[hidden] { display: none; }
.thanks__stamp { display: inline-block; margin-bottom: 22px; padding: 8px 16px 7px; border: 3px solid var(--teal); color: var(--teal-ink); border-radius: 10px; font: 600 18px/1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; transform: rotate(-4deg); }
.thanks h2 { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.05; margin-bottom: 16px; }
.thanks h2:focus { outline: none; }
.thanks p { color: var(--ink); max-width: 32em; margin-bottom: 14px; }
.thanks__email { font-weight: 600; color: var(--navy); overflow-wrap: anywhere; }
.thanks__ref { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 18px 0 20px; padding: 14px 16px; border-radius: 14px; background: var(--page); border: 1px dashed #B7C4CD; }
.thanks__ref[hidden] { display: none; }
.thanks__ref span { font: 500 11px/1.2 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--blue-ink); }
.thanks__ref b { font: 600 15px/1.3 ui-monospace, "SFMono-Regular", Consolas, monospace; color: var(--navy); overflow-wrap: anywhere; }
.thanks .actions { margin-top: 26px; }
.thanks a:not(.btn) { color: var(--teal-ink); font-weight: 600; }

.aside-card { border-radius: 24px; padding: 28px 22px 30px; background: var(--navy-deep); color: var(--on-dark); }
@media (min-width: 768px) { .aside-card { padding: 34px 32px 36px; } }
.aside-card h2 { color: #fff; font-size: 26px; line-height: 1.15; margin-bottom: 22px; }
.aside-card h3 { color: #fff; font: 500 13px/1.2 var(--f-head); letter-spacing: .14em; text-transform: uppercase; margin: 0 0 6px; }
.next { counter-reset: n; display: grid; gap: 20px; margin-bottom: 30px; }
.next li { position: relative; padding-left: 46px; font-size: 16px; line-height: 1.5; }
.next li::before { counter-increment: n; content: counter(n); position: absolute; left: 0; top: -2px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: rgba(138, 214, 205, .16); color: var(--teal-glow); font: 500 17px/1 var(--f-head); }
.next b { display: block; color: #fff; font-weight: 600; }
.pricelist { border-top: 1px solid rgba(255, 255, 255, .14); }
.pricelist li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, .14); font-size: 15px; }
.pricelist b { color: #fff; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pricelist small { display: block; color: var(--on-dark); font-size: 13px; }
.aside-promises { margin-top: 16px; padding: 24px; border-radius: 22px; background: var(--teal-bg); display: grid; gap: 12px; }
.aside-promises li { position: relative; padding-left: 30px; font-size: 15px; line-height: 1.45; color: var(--ink); }
.aside-promises li::before { content: ""; position: absolute; left: 3px; top: 6px; width: 12px; height: 6px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); transform: rotate(-45deg); }
.aside-promises b { color: var(--navy); }
.aside-mail { margin-top: 16px; font-size: 15px; color: var(--muted); }
.aside-mail a { color: var(--teal-ink); font-weight: 600; display: inline-block; padding: 11px 0; margin: -11px 0; }

/* ---------- 404: one ledger line that doesn't balance ---------- */
.lost { padding: 48px 0 112px; }
@media (min-width: 1024px) { .lost { padding: 88px 0 152px; } }
.lost__grid { display: grid; gap: 44px; align-items: center; }
@media (min-width: 1024px) { .lost__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; } }
.lost h1 { font-size: clamp(42px, 6vw, 80px); line-height: .98; letter-spacing: -.04em; margin-bottom: 18px; }
.lost__lede { font-size: 19px; color: var(--muted); margin-bottom: 30px; max-width: 30em; }
.lost .actions .btn { flex: 1 1 100%; }
@media (min-width: 480px) { .lost .actions .btn { flex: 0 0 auto; } }
.ledger404 { margin: 0; background: var(--paper); border-radius: 6px 6px 12px 12px; padding: 26px 18px 18px; box-shadow: 0 2px 0 rgba(0, 0, 0, .06), 0 40px 70px -40px rgba(16, 38, 59, .6); transform: rotate(-1.2deg); }
@media (min-width: 560px) { .ledger404 { padding: 32px 30px 24px; } }
.ledger404__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding-bottom: 10px; border-bottom: 2px solid var(--navy); font: 500 12px/1.2 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--blue-ink); }
.ledger404__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 52px; padding: 8px 0; border-bottom: 1px dashed #C9D4DB; }
.ledger404__row > span:first-child { display: grid; gap: 1px; min-width: 0; font-size: 15px; color: var(--navy); font-weight: 600; }
.ledger404__row small { font-size: 13px; font-weight: 400; color: var(--muted); overflow-wrap: anywhere; }
.ledger404__ok { font: 600 12px/1 var(--f-body); color: var(--teal-ink); background: var(--teal-bg); padding: 6px 10px; border-radius: 999px; white-space: nowrap; }
.ledger404__row--miss { min-height: 72px; }
.ledger404__row--miss > span:first-child { color: var(--red); }
.ledger404__stamp { font: 600 15px/1 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: var(--red); border: 3px solid var(--red); border-radius: 8px; padding: 6px 10px 5px; background: rgba(255, 253, 247, .9); transform: rotate(-8deg); white-space: nowrap; }
@media (min-width: 560px) { .ledger404__stamp { font-size: 19px; } }
.ledger404__hand { margin-top: 14px; text-align: right; font: 600 24px/1 var(--f-hand); color: var(--biro); transform: rotate(-2deg); }

/* ---------- Fixes from the page review (7 Oct 2026) ---------- */
/* Calendar: the days before the due date were not late yet, so they are only shaded, never crossed out */
.d-wait { background: rgba(232, 238, 242, .55); }
@media (max-width: 559px) { .cal__grid em { display: none; } }

/* Guide on a phone: empathy, authority, the faces, then the button (the homepage keeps its one button) */
.guide__cta--after { display: none; }
@media (max-width: 1023px) {
  .guide__cta--copy { display: none; }
  .guide__cta--after { display: flex; width: 100%; }
}
@media (min-width: 560px) and (max-width: 1023px) { .guide__cta--after { width: auto; justify-self: start; } }

/* Job card on a phone: the label above the figure, on one line */
@media (max-width: 599px) {
  .jobcost__made { flex-direction: column; align-items: flex-start; gap: 6px; }
  .jobcost__made span { white-space: nowrap; }
}

/* Weekly list (trading): the owner's decision under the debt */
.order__ask { margin: 2px 0 8px; font-size: 14px; font-weight: 600; color: var(--muted); }

/* The quote page's header: a quiet way out instead of a button to the page you are on */
.site-header__mail { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 600; font-size: 15px; color: var(--teal-ink); text-decoration: none; white-space: nowrap; }
.site-header__mail:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-header__mail-k { color: var(--muted); font-weight: 400; }
@media (max-width: 767px) { .site-header__mail-k { display: none; } }
@media (max-width: 419px) { .site-header__mail { font-size: 14px; } }

/* 404: the pages that exist are links */
.ledger404 { display: block; }
a.ledger404__row { margin: 0 -10px; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: inherit; transition: background .15s; }
a.ledger404__row:hover, a.ledger404__row:focus-visible { background: var(--page); }
a.ledger404__row:hover .ledger404__ok, a.ledger404__row:focus-visible .ledger404__ok { background: var(--teal); color: #fff; }


/* =====================================================================================
   HI-VIS DOCKET (7 Oct 2026): the homepage, body.hv. The trade's paperwork made loud, over real photographs of
   the owner's world. Everything here is scoped to .hv or carries an hv- class, so the other pages keep their
   look until they move over. Hi-vis yellow is the ONE action colour (navy text on it); red only for overdue;
   teal only for paid. One hard offset-shadow card style (the Growth card and the "Who owes you" list), one
   slanted band (the red 30/60/90 band).
   ===================================================================================== */
.hv {
  --hv-paper: #F5F0E6;
  --hv-paper-deep: #ECE4D2;
  --hv-yellow: #FFCE1F;
  --hv-yellow-hover: #FFD94D;
  --hv-yellow-soft: #FFF1BF;
  --hv-red-ink: #A33434;
  --hv-rule: rgba(23, 50, 77, .16);
  --page: var(--hv-paper);
  --muted: #5A6772;
  --f-head: "Bricolage Grotesque", "Outfit", system-ui, sans-serif;
  --hv-hard: 8px 8px 0 var(--navy);
  --hv-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 2.6'/%3E%3C/filter%3E%3Crect width='120' height='60' filter='url(%23n)'/%3E%3C/svg%3E");
  --sec: 80px;
  background: var(--hv-paper);
}
.hv figure, .hv dl, .hv dd { margin: 0; }
.hv h1, .hv h2, .hv h3 { font-family: var(--f-head); font-optical-sizing: auto; }
.hv :focus-visible { outline-color: var(--navy); }
.hv .hv-problem :focus-visible, .hv .hv-promises :focus-visible, .hv .hv-kinds :focus-visible, .hv .hv-fork :focus-visible,
.hv .footer :focus-visible, .hv .hv-hero__photo :focus-visible { outline-color: var(--hv-yellow); }
.hv-sec { padding: var(--sec) 0; }
@media (min-width: 768px) { .hv { --sec: 100px; } }
@media (min-width: 1024px) { .hv { --sec: 116px; } }

/* ---------- Type ---------- */
.hv-h1 {
  font-weight: 800; color: var(--navy);
  font-size: clamp(54px, 15vw, 84px); line-height: .9; letter-spacing: -.035em;
}
@media (min-width: 768px) { .hv-h1 { font-size: 104px; } }
@media (min-width: 1024px) { .hv-h1 { font-size: clamp(76px, 6.9vw, 118px); } }
.hv-h2 { font-weight: 800; font-size: clamp(38px, 9.6vw, 50px); line-height: .98; letter-spacing: -.03em; color: var(--navy); }
@media (min-width: 768px) { .hv-h2 { font-size: clamp(50px, 5.6vw, 80px); } }
.hv-h2--dark, .hv-h3--dark { color: #fff; }
.hv-h3 { font-weight: 700; font-size: clamp(26px, 3vw, 36px); line-height: 1.05; letter-spacing: -.03em; }
.hv-dim { color: #8394A3; }
.hv-h2:not(.hv-h2--dark) .hv-dim { color: #6E7C88; }
.hv-lede { font-size: 19px; line-height: 1.55; color: var(--ink); }
@media (min-width: 1024px) { .hv-lede { font-size: 21px; } }
.hv-mark {
  color: var(--navy);
  background: linear-gradient(176deg, transparent 6%, var(--hv-yellow) 6%, var(--hv-yellow) 90%, transparent 90%);
  -webkit-box-decoration-break: clone; box-decoration-break: clone; padding: 0 .1em; margin: 0 -.04em;
}
.hv-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px;
  font: 700 13px/1.2 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--navy);
}
.hv-eyebrow::before { content: ""; width: 12px; height: 12px; background: var(--hv-yellow); box-shadow: 0 0 0 2px var(--navy); transform: rotate(45deg); }
.hv-eyebrow--dark { color: var(--hv-yellow); }
.hv-eyebrow--dark::before { box-shadow: none; }
.hv-hand { font-family: var(--f-hand); font-weight: 600; letter-spacing: 0; color: var(--biro); }
.hv-hand--red { color: var(--red); }

/* A handwritten aside, always with a drawn arrow */
.hv-aside { position: absolute; font: 600 25px/1 var(--f-hand); color: var(--navy); transform: rotate(-4deg); pointer-events: none; white-space: nowrap; }
.hv-aside svg { position: absolute; width: 64px; height: 44px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
@media (min-width: 1024px) { .hv-aside { font-size: 29px; } }

/* ---------- Buttons: hi-vis, navy-edged ---------- */
.hv .btn { border-radius: 12px; font-weight: 700; letter-spacing: -.005em; }
.hv .btn--primary {
  background: var(--hv-yellow); color: var(--navy); border: 2px solid var(--navy);
  box-shadow: 0 4px 0 var(--navy);
}
.hv .btn--primary:hover { background: var(--hv-yellow-hover); transform: translateY(-2px); box-shadow: 0 6px 0 var(--navy); }
.hv .btn--primary:active { transform: translateY(3px); box-shadow: 0 1px 0 var(--navy); }
.hv .btn--ink { background: var(--navy); color: var(--hv-yellow); border: 2px solid var(--navy); box-shadow: 0 4px 0 var(--navy-ink); }
.hv .btn--ink:hover { background: var(--navy-deep); transform: translateY(-2px); box-shadow: 0 6px 0 var(--navy-ink); }
.hv .btn--outline { background: transparent; color: var(--navy); border: 2px solid var(--navy); }
.hv .btn--outline:hover { background: var(--navy); color: #fff; }
.hv-textlink { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; color: var(--navy); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; text-decoration-color: var(--hv-yellow); }
.hv-textlink:hover { text-decoration-color: var(--navy); }

/* ---------- Rubber stamps ---------- */
.hv-stamp {
  --r: -6deg; --c: var(--red);
  display: inline-block; position: relative; white-space: nowrap; font-style: normal;
  font: 800 15px/1 var(--f-head); letter-spacing: .08em; text-transform: uppercase; color: var(--c);
  padding: 7px 11px 6px; border: 3px solid currentColor; border-radius: 7px;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .0);
  transform: rotate(var(--r));
  -webkit-mask-image: var(--hv-grain); mask-image: var(--hv-grain);
}
.hv-stamp--red { --c: var(--red); }
.hv-stamp--teal { --c: var(--teal); }
.hv-stamp--navy { --c: var(--navy); }
.hv-stamp--paper { --c: #fff; }
.hv-stamp--sm { font-size: 12px; padding: 5px 8px 4px; border-width: 2.5px; border-radius: 6px; }
.hv-stamp--lg { font-size: clamp(20px, 2.4vw, 30px); padding: 10px 16px 8px; border-width: 4px; border-radius: 10px; }
/* Stamps thump in once, when scrolled into view (business.js adds .in); still under reduced motion */
.js .hv-slam { opacity: 0; }
.js .hv-slam.in { opacity: 1; animation: hv-slam .46s cubic-bezier(.2, .9, .25, 1.15) both; }
@keyframes hv-slam {
  0% { opacity: 0; transform: rotate(var(--r)) scale(2.1); }
  55% { opacity: 1; transform: rotate(var(--r)) scale(.92); }
  100% { opacity: 1; transform: rotate(var(--r)) scale(1); }
}

/* ---------- Header ---------- */
.hv .site-header { background: rgba(245, 240, 230, .92); }
.hv.is-scrolled .site-header, .is-scrolled .hv .site-header { border-bottom-color: var(--hv-rule); }
.hv .brand__tag { border-left-color: var(--hv-rule); color: var(--navy); font-family: var(--f-body); font-weight: 700; }
.hv .nav-toggle { background: #fff; border: 2px solid var(--navy); }
.hv.nav-open .nav { background: var(--hv-paper); }
.hv.nav-open .nav a { font-weight: 700; border-bottom-color: var(--hv-rule); }
@media (min-width: 1024px) {
  .hv .nav a, .hv.nav-open .nav a { font-weight: 600; color: var(--navy); }
  .hv .nav a:hover { color: var(--navy); text-decoration: underline; text-decoration-color: var(--hv-yellow); text-decoration-thickness: 3px; text-underline-offset: 6px; }
}
.hv .site-header__cta { box-shadow: 0 3px 0 var(--navy); }

/* =========================== 1. HERO =========================== */
.hv-hero { position: relative; z-index: 3; }
.hv-hero__grid { display: grid; grid-template-areas: "copy" "photo" "act"; }
.hv-hero__copy { grid-area: copy; padding: 22px var(--gutter) 20px; }
.hv-hero__photo { grid-area: photo; position: relative; }
.hv-hero__act { grid-area: act; padding: 26px var(--gutter) 56px; }
.hv-tag {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; padding: 7px 11px 6px;
  font: 700 11.5px/1.2 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--navy);
  background: #fff; border: 2px solid var(--navy); border-radius: 6px;
}
.hv-tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--hv-yellow); box-shadow: 0 0 0 2px var(--navy); }
@media (min-width: 420px) { .hv-tag { font-size: 12.5px; } }

/* "overdue": red, with a "cut here" perforation under it and the scissors at the end of the cut */
.hv-cut { position: relative; display: inline-block; color: var(--red); white-space: nowrap; padding-bottom: .1em; }
.hv-cut__line { position: absolute; left: 0; right: .1em; bottom: -.02em; width: calc(100% - .1em); height: .13em; overflow: visible; }
.hv-cut__line path { fill: none; stroke: var(--navy); stroke-width: 6; stroke-dasharray: 14 10; vector-effect: non-scaling-stroke; }
.hv-cut__snip { position: absolute; left: 100%; bottom: -.12em; width: .32em; height: .32em; margin-left: -.06em; transform: rotate(0deg); fill: none; stroke: var(--navy); stroke-width: 2.4; stroke-linecap: round; }
@media (min-width: 1024px) { .hv-cut__line path { stroke-width: 8; stroke-dasharray: 18 12; } }

/* The photo, with the good news landing on it */
.hv-hero__photo picture, .hv-hero__photo > picture img { display: block; width: 100%; height: 100%; }
.hv-hero__photo img { height: clamp(320px, 88vw, 520px); object-fit: cover; object-position: 66% 40%; }
.hv-hero__chips { position: absolute; inset: 0; font-size: 12.5px; pointer-events: none; }
.hv-chip {
  position: absolute; display: flex; gap: .8em; align-items: center; width: 21.5em; max-width: calc(100% - 20px);
  padding: .8em 1em .8em .8em; border-radius: 1.1em; background: rgba(255, 255, 255, .96); color: var(--ink);
  box-shadow: 0 1.2em 2.4em -1em rgba(10, 25, 40, .55), 0 0 0 1px rgba(23, 50, 77, .08);
}
.hv-chip__icon { flex: none; width: 2.8em; height: 2.8em; border-radius: .7em; display: grid; place-items: center; }
.hv-chip__icon .app { font-size: 1.1em; }
.hv-chip__icon--call { background: var(--hv-yellow); box-shadow: inset 0 0 0 2px var(--navy); }
.hv-chip__icon--call svg { width: 1.35em; height: 1.35em; fill: var(--navy); }
.hv-chip__body { flex: 1; min-width: 0; display: grid; grid-template-columns: 1fr auto; column-gap: .6em; line-height: 1.3; }
.hv-chip__body b { font-weight: 700; color: var(--navy); }
.hv-chip__body em { font-style: normal; color: var(--muted); font-size: .9em; }
.hv-chip__body > span { grid-column: 1 / -1; font-weight: 600; color: var(--ink); }
.hv-chip--paid { left: 10px; top: 12px; }
@media (max-width: 559px) {
  .hv-chip { width: max-content; padding: .7em .9em .7em .7em; }
  .hv-chip__body b, .hv-chip__body > span { white-space: nowrap; }
  .hv-chip__body em { display: none; }
  .hv-chip__icon { width: 2.5em; height: 2.5em; }
}
.hv-chip--paid .hv-chip__body > span { color: var(--teal-ink); }
.hv-chip--call { left: 10px; bottom: 14px; }

.hv-sticky {
  position: absolute; display: none; width: 9.4em; padding: .9em .9em 1em; transform: rotate(-6deg);
  background: linear-gradient(180deg, #FFE47A, #FFD84D); color: var(--biro);
  box-shadow: 0 1em 1.6em -.8em rgba(10, 25, 40, .6); font: 600 1.7em/1.05 var(--f-hand); font-size: 1.75em;
}
.hv-sticky::before { content: ""; position: absolute; left: 30%; right: 30%; top: -.35em; height: .7em; background: rgba(255, 255, 255, .55); transform: rotate(3deg); }
.hv-sticky__text { display: block; }
.hv-sticky__strike { position: absolute; left: .4em; right: .5em; top: .55em; width: calc(100% - .9em); height: 1.9em; fill: none; stroke: var(--red); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 200; stroke-dashoffset: 0; }
.hv-sticky__paid { display: flex; align-items: center; gap: .2em; justify-content: flex-end; margin-top: .15em; color: var(--teal); font-size: 1.05em; }
.hv-sticky__paid svg { width: .9em; height: .75em; fill: none; stroke: var(--teal); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 60; stroke-dashoffset: 0; }

/* The round stamp: what you can hold us to */
.hv-seal { position: absolute; z-index: 4; right: 12px; top: 12px; width: 92px; height: 92px; border-radius: 50%; display: block; transform: rotate(-12deg); pointer-events: auto; }
.hv-seal svg { width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 10px 14px rgba(10, 25, 40, .35)); }
.hv-seal__o { fill: var(--hv-yellow); stroke: var(--navy); stroke-width: 4; }
.hv-seal__i { fill: none; stroke: var(--navy); stroke-width: 2.5; stroke-dasharray: 4 4; }
.hv-seal__ring { font: 800 12.6px var(--f-body); letter-spacing: .1em; fill: var(--navy); }
.hv-seal__n { font: 800 44px/1 var(--f-head); fill: var(--navy); }
.hv-seal__s { font: 800 11px var(--f-body); letter-spacing: .14em; fill: var(--navy); }

.hv-hero__lede { font-size: 18px; line-height: 1.5; color: var(--ink); max-width: 33em; margin-bottom: 24px; }
.hv-hero__buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
.hv-hero__buttons .btn { flex: 1 1 100%; }
.hv-pricetag {
  position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px 8px 12px;
  border: 2px dashed var(--navy); border-radius: 10px; background: #fff; color: var(--navy); transform: rotate(-2deg);
  line-height: 1.15;
}
.hv-pricetag__k { font: 700 12px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }
.hv-pricetag b { font: 800 34px/1 var(--f-head); letter-spacing: -.03em; background: var(--hv-yellow); padding: 2px 6px 3px; border-radius: 4px; }
.hv-pricetag__v { font-size: 14px; font-weight: 600; }
.hv-hero__act .hv-textlink { margin-top: 10px; }
.hv-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.hv-pills li {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px 7px 9px; border-radius: 999px;
  background: rgba(23, 50, 77, .06); border: 1px solid var(--hv-rule); font-size: 14px; font-weight: 600; color: var(--navy);
}
.hv-pills li::before { content: ""; width: 14px; height: 8px; margin-top: -3px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); transform: rotate(-45deg); }

@media (min-width: 560px) {
  .hv-hero__chips { font-size: 14px; }
  .hv-chip--paid { left: 20px; top: 22px; }
  .hv-chip--call { left: 20px; bottom: 24px; }
  .hv-sticky { display: block; right: 22px; bottom: 26px; font-size: 1.3em; }
  .hv-seal { width: 118px; height: 118px; right: 18px; top: 18px; }
  .hv-hero__buttons .btn { flex: 0 0 auto; }
}
@media (min-width: 768px) {
  .hv-hero__copy { padding-top: 40px; }
  .hv-hero__photo img { height: 560px; }
  .hv-sticky { right: auto; left: 44%; bottom: 30px; }
}
@media (min-width: 1024px) {
  .hv-hero__grid {
    grid-template-columns: minmax(0, 1fr) 50vw;
    grid-template-rows: 1fr auto;
    grid-template-areas: "copy photo" "act photo";
    min-height: min(calc(100vh - var(--header-h)), 860px);
  }
  .hv-hero__copy, .hv-hero__act { padding-left: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); padding-right: 56px; }
  .hv-hero__copy { align-self: end; padding-top: 48px; padding-bottom: 26px; }
  .hv-hero__act { align-self: start; padding-top: 0; padding-bottom: 72px; }
  .hv-hero__photo img { position: absolute; inset: 0; height: 100%; object-position: 62% 40%; border-bottom-left-radius: 28px; }
  .hv-hero__photo picture { position: absolute; inset: 0; }
  .hv-hero__chips { font-size: 15px; }
  .hv-chip { width: 23em; }
  .hv-chip--paid { left: -64px; top: 15%; }
  .hv-chip--call { left: 7%; top: 39%; bottom: auto; }
  .hv-sticky { left: 9%; bottom: 12%; font-size: 1.32em; }
  .hv-seal { top: auto; right: 7%; bottom: -66px; width: 156px; height: 156px; }
  .hv-hero__lede { font-size: 20px; }
}
@media (min-width: 1280px) { .hv-hero__lede { font-size: 21px; } }

/* The hero sequence: the chips land one by one, the note is struck out and ticked paid, the stamp thumps.
   About four seconds, once. CSS only, so nothing waits on a script; nothing under reduced motion. */
@keyframes hv-land { from { opacity: 0; transform: translateY(22px) scale(.94); } }
@keyframes hv-land-r { from { opacity: 0; transform: translateY(22px) rotate(-6deg) scale(.94); } to { transform: rotate(-6deg); } }
@keyframes hv-draw { from { stroke-dashoffset: 200; } }
@keyframes hv-draw-s { from { stroke-dashoffset: 60; } }
@keyframes hv-fade { from { opacity: 0; } }
@keyframes hv-thump { 0% { opacity: 0; transform: rotate(-12deg) scale(2); } 60% { opacity: 1; transform: rotate(-12deg) scale(.92); } 100% { transform: rotate(-12deg) scale(1); } }
@keyframes hv-snip { from { left: 0; } }
@keyframes hv-perf { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
.hv-chip--paid { animation: hv-land .7s var(--ease) .5s both; }
.hv-chip--call { animation: hv-land .7s var(--ease) 1.3s both; }
.hv-sticky { animation: hv-land-r .7s var(--ease) 2s both; }
.hv-sticky__strike path { stroke-dasharray: 200; animation: hv-draw .5s ease-out 2.7s both; }
.hv-sticky__paid { animation: hv-fade .3s ease 3.15s both; }
.hv-sticky__paid path { stroke-dasharray: 60; animation: hv-draw-s .4s ease-out 3.2s both; }
.hv-seal { animation: hv-thump .5s cubic-bezier(.2, .9, .25, 1.15) 3.6s both; }
.hv-cut__line { animation: hv-perf .9s cubic-bezier(.6, 0, .3, 1) .2s both; }
.hv-cut__snip { animation: hv-snip .9s cubic-bezier(.6, 0, .3, 1) .2s both; }

/* =========================== 2. PROBLEM =========================== */
.hv-problem { position: relative; overflow: hidden; background: var(--navy-deep); color: #D3DEE7; padding: 0 0 var(--sec); }
.hv-problem__photo { position: relative; height: 300px; }
.hv-problem__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; }
.hv-problem__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 38, 59, .15) 0%, rgba(16, 38, 59, .4) 55%, var(--navy-deep) 100%); }
.hv-problem__grid { position: relative; display: grid; gap: 48px; margin-top: -40px; }
.hv-problem__lede { font-size: 19px; line-height: 1.55; color: #E3EAF0; margin: 22px 0 26px; max-width: 32em; }
.hv-feel li { position: relative; padding: 14px 0 14px 34px; border-top: 1px dashed rgba(255, 255, 255, .22); font-size: 17px; color: #D3DEE7; }
.hv-feel li::before { content: ""; position: absolute; left: 2px; top: 22px; width: 18px; height: 3px; background: var(--red-soft); box-shadow: 0 0 0 0 transparent; }
.hv-feel li:last-child { border-bottom: 1px dashed rgba(255, 255, 255, .22); }
@media (min-width: 1024px) {
  .hv-problem { padding-top: 0; }
  .hv-problem__photo { position: absolute; top: 0; right: 0; width: 62%; height: 900px; }
  .hv-problem__photo::after { background: linear-gradient(90deg, var(--navy-deep) 0%, rgba(16, 38, 59, .55) 30%, rgba(16, 38, 59, .15) 70%), linear-gradient(180deg, transparent 60%, var(--navy-deep) 100%); }
  .hv-problem__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; margin-top: 0; padding-top: var(--sec); align-items: start; }
  .hv-problem__lede { font-size: 21px; }
}

/* The desk: an invoice under a carbon-copy job card */
.hv-desk { position: relative; container-type: inline-size; max-width: 560px; justify-self: center; width: 100%; padding: 30px 0 10px; }
.hv-inv {
  position: absolute; top: 0; left: 2%; width: 62%; padding: 16px 18px 18px; transform: rotate(-6deg);
  background: #fff; color: var(--ink); border-radius: 3px; box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .6);
  display: grid; gap: 6px;
}
.hv-inv__k { font: 700 11px/1.2 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.hv-inv__to { font: 700 20px/1.1 var(--f-head); color: var(--navy); }
.hv-inv__lines { display: grid; gap: 6px; margin: 4px 0; }
.hv-inv__lines i { height: 6px; border-radius: 3px; background: #E7ECEF; }
.hv-inv__lines i:nth-child(2) { width: 80%; }
.hv-inv__lines i:nth-child(3) { width: 55%; }
.hv-inv__amt { font: 800 22px/1 var(--f-head); color: var(--navy); }
.hv-inv .hv-stamp { position: absolute; right: 12px; top: 66px; font-size: 14px; background: #fff; }
@media (max-width: 599px) {
  .hv-inv { width: 74%; }
  .hv-inv .hv-stamp { top: 62px; right: 10px; font-size: 12px; }
  .hv-jobcard { margin-top: 150px; }
}
.hv-jobcard {
  position: relative; margin: 120px 0 0 auto; width: 88%; padding: 30px 20px 22px; transform: rotate(2.2deg);
  background: #FBF1C9; color: var(--navy); border-radius: 2px 2px 6px 6px;
  box-shadow: 0 30px 50px -24px rgba(0, 0, 0, .7);
}
.hv-jobcard::before { /* the perforated tear at the top of a docket book */
  content: ""; position: absolute; left: 0; right: 0; top: -6px; height: 12px;
  background: radial-gradient(circle at 7px 6px, var(--navy-deep) 3.6px, transparent 4.2px) 0 0 / 14px 12px repeat-x;
}
.hv-jobcard__head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 8px; border-bottom: 2px solid var(--navy); font: 800 22px/1 var(--f-head); letter-spacing: .02em; text-transform: uppercase; }
.hv-jobcard__head span:last-child { font: 700 13px/1 var(--f-body); color: var(--red); letter-spacing: .04em; }
.hv-jobcard__head b { font: 800 20px/1 var(--f-head); }
.hv-jobcard__fields { display: grid; grid-template-columns: 1fr 1fr; }
.hv-jobcard__fields > div { padding: 8px 0 6px; border-bottom: 1px solid rgba(23, 50, 77, .25); }
.hv-jobcard__fields > div:nth-child(3) { padding-left: 12px; border-left: 1px solid rgba(23, 50, 77, .25); }
.hv-jobcard__wide { grid-column: 1 / -1; }
.hv-jobcard__fields dt, .hv-jobcard__sub, .hv-jobcard__foot > span:first-child { font: 700 10.5px/1.2 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: rgba(23, 50, 77, .75); }
.hv-jobcard__fields dd { font-size: 25px; line-height: 1.1; }
.hv-jobcard__sub { margin: 14px 0 4px; }
.hv-jobcard__list li { position: relative; padding: 5px 0 5px 26px; border-bottom: 1px solid rgba(23, 50, 77, .18); font-size: 20px; line-height: 1.15; }
.hv-jobcard__list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 14px; height: 14px; border: 1.5px solid var(--navy); border-radius: 2px; }
.hv-jobcard__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 8px; border-top: 2px solid var(--navy); }
.hv-jobcard__foot .hv-hand { font-size: 23px; }
@media (min-width: 600px) { .hv-jobcard { padding: 34px 28px 26px; } .hv-jobcard__fields dd { font-size: 28px; } .hv-jobcard__list li { font-size: 22px; } }
@media (min-width: 1024px) { .hv-desk { padding-top: 40px; } }

/* Drafts: all written, none sent */
.hv-drafts { display: grid; gap: 36px; margin-top: 72px; align-items: center; }
.hv-drafts__card {
  position: relative; background: #fff; color: var(--ink); border-radius: 12px 12px 0 0; padding: 18px 18px 26px; max-width: 520px;
  -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 18px 100%;
  mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 18px 100%;
}
.hv-drafts { position: relative; }
.hv-drafts__art { position: relative; max-width: 520px; width: 100%; }
.hv-drafts__head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 10px; border-bottom: 2px solid var(--navy); }
.hv-drafts__head b { font: 800 24px/1 var(--f-head); color: var(--navy); }
.hv-drafts__head span { font-size: 13px; font-weight: 700; color: var(--red); text-transform: uppercase; letter-spacing: .08em; }
.hv-drafts__list li { display: grid; grid-template-columns: 1fr auto; column-gap: 10px; padding: 10px 0; border-bottom: 1px solid #E5E9EC; font-size: 14px; line-height: 1.35; }
.hv-drafts__list b { color: var(--navy); }
.hv-drafts__list em { font-style: normal; font-size: 12.5px; color: var(--red); font-weight: 600; }
.hv-drafts__list span { grid-column: 1 / -1; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hv-drafts__copy p { margin-top: 16px; font-size: 18px; line-height: 1.55; color: #D3DEE7; max-width: 30em; }
.hv-aside--drafts { color: var(--hv-yellow); right: 6px; bottom: -66px; transform: rotate(-5deg); }
.hv-aside--drafts svg { left: -66px; top: -30px; transform: scaleY(-1) rotate(20deg); }
@media (max-width: 559px) { .hv-drafts__list li:nth-child(n+4) { display: none; } }
.hv-drafts__art { margin-bottom: 56px; }
@media (min-width: 1024px) {
  .hv-drafts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; margin-top: 96px; }
  .hv-drafts__art { justify-self: start; }
  .hv-drafts__art { margin-bottom: 60px; }
  .hv-drafts__copy p { font-size: 19px; }
}

.hv-reframe {
  margin-top: 104px; max-width: 22em; font: 800 clamp(32px, 7.6vw, 64px)/1.04 var(--f-head); letter-spacing: -.035em; color: #fff;
}
.hv-reframe__a { display: block; margin-bottom: .08em; }
.hv-reframe .hv-mark { display: inline; }
@media (min-width: 1024px) { .hv-reframe { margin-top: 128px; } }

/* =========================== 3. THE RED BAND (the one slant) =========================== */
.hv-red { position: relative; z-index: 2; background: linear-gradient(180deg, var(--navy-deep) 50%, var(--hv-paper) 50%); }
.hv-red__in { background: var(--red); color: #fff; transform: skewY(-3deg); padding: 76px 0; }
.hv-red__grid { transform: skewY(3deg); display: grid; gap: 40px; align-items: center; }
.hv-red__line { font: 800 clamp(32px, 7.4vw, 64px)/1.02 var(--f-head); letter-spacing: -.035em; color: #fff; max-width: 15em; }
.hv-red__line span { color: var(--hv-yellow); }
.hv-red__sub { margin-top: 16px; font-size: 19px; color: #FBE9E9; }
.hv-drift__cap { font: 700 12.5px/1.2 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: #FBE9E9; margin-bottom: 16px; }
.hv-drift__row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hv-drift__row > li { display: flex; align-items: center; gap: 12px; }
.hv-drift__row > li:not(:last-child)::after { content: ""; width: 18px; height: 3px; background: rgba(255, 255, 255, .6); }
.hv-drift__row > li:nth-child(3)::after { display: none; }
.hv-drift__end { flex-basis: 100%; margin-top: 8px; }
.hv-sign {
  display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
  background: #fff; box-shadow: inset 0 0 0 6px var(--navy-deep); color: var(--navy-deep);
  font: 800 26px/1 var(--f-head); letter-spacing: -.04em;
}
.hv-drift__row > li:nth-child(2) .hv-sign { width: 74px; height: 74px; font-size: 30px; }
.hv-drift__row > li:nth-child(3) .hv-sign { width: 86px; height: 86px; font-size: 35px; }
.hv-drift__end .hv-stamp { font-size: 17px; margin-left: 6px; }
@media (min-width: 1024px) {
  .hv-red__in { padding: 112px 0; }
  .hv-red__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 64px; }
  .hv-sign { width: 78px; height: 78px; font-size: 30px; }
  .hv-drift__row > li:nth-child(2) .hv-sign { width: 92px; height: 92px; font-size: 36px; }
  .hv-drift__row > li:nth-child(3) .hv-sign { width: 108px; height: 108px; font-size: 44px; }
  .hv-drift__end .hv-stamp { font-size: 20px; }
}

/* =========================== 4. THE CALL =========================== */
.hv-call__grid { display: grid; gap: 56px; align-items: center; }
.hv-call__copy .hv-lede { margin: 24px 0 30px; max-width: 30em; }
.hv-call__copy .btn { width: 100%; }
@media (min-width: 560px) { .hv-call__copy .btn { width: auto; } }
.hv-callsheet { position: relative; max-width: 560px; width: 100%; justify-self: center; }
.hv-callsheet__paper {
  position: relative; background: #fff; padding: 0 0 30px; border-radius: 10px 10px 0 0;
  box-shadow: 0 30px 60px -36px rgba(16, 38, 59, .55);
  -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 20px 100%;
  mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 20px 100%;
}
.hv-callsheet__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; background: var(--navy); color: #fff; border-radius: 10px 10px 0 0; font: 800 19px/1.1 var(--f-head); }
.hv-callsheet__head span:last-child { font: 700 13px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--hv-yellow); }
.hv-callsheet__list li { position: relative; display: grid; grid-template-columns: 70px 1fr; column-gap: 12px; row-gap: 2px; padding: 16px 20px 16px; border-bottom: 1px dashed var(--hv-rule); }
.hv-callsheet__list time { grid-row: span 2; font: 700 13px/1.4 var(--f-body); color: var(--muted); font-variant-numeric: tabular-nums; }
.hv-callsheet__list b { font: 700 18px/1.2 var(--f-head); color: var(--navy); padding-right: 74px; }
.hv-callsheet__list span { font-size: 15px; color: var(--ink); padding-right: 74px; }
.hv-callsheet__list .hv-stamp { position: absolute; right: 16px; top: 50%; margin-top: -14px; background: #fff; }
.hv-aside--call { left: 24px; bottom: -70px; transform: rotate(-3deg); color: var(--navy); }
.hv-aside--call svg { left: 150px; top: -40px; transform: rotate(10deg); }
.hv-call .hv-callsheet { margin-bottom: 70px; }
@media (min-width: 1024px) {
  .hv-call__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 72px; }
  .hv-callsheet { transform: rotate(1.5deg); }
}

/* A reminder app vs WorkAid */
.hv-vs { margin-top: 64px; border-top: 3px solid var(--navy); }
.hv-vs__row { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "k k" "them us"; border-bottom: 1px dashed var(--hv-rule); }
.hv-vs__row > * { padding: 14px 14px; font-size: 15.5px; line-height: 1.4; }
.hv-vs__k { grid-area: k; padding-bottom: 0 !important; font: 800 19px/1.2 var(--f-head) !important; color: var(--navy); }
.hv-vs__them { grid-area: them; color: var(--muted); }
.hv-vs__them b { color: var(--navy); font-weight: 700; }
.hv-vs__us { grid-area: us; background: var(--navy); color: #E3EAF0; }
.hv-vs__us b { color: #fff; }
.hv-vs__row--head > :first-child { display: none; }
.hv-vs__row--head { grid-template-areas: "them us"; border-bottom: 0; }
.hv-vs__row--head > * { font: 800 14px/1.2 var(--f-body) !important; letter-spacing: .1em; text-transform: uppercase; padding-top: 12px; padding-bottom: 12px; }
.hv-vs__row--head .hv-vs__us { color: var(--hv-yellow); border-radius: 10px 10px 0 0; }
.hv-vs__row:last-child .hv-vs__us { border-radius: 0 0 10px 10px; }
.hv-vs__row:last-child { border-bottom: 0; }
@media (min-width: 768px) {
  .hv-vs__row, .hv-vs__row--head { grid-template-columns: 1fr 1.15fr 1.4fr; grid-template-areas: "k them us"; }
  .hv-vs__row--head > :first-child { display: block; }
  .hv-vs__row > * { padding: 20px 22px; font-size: 17px; }
  .hv-vs__k { padding-bottom: 20px !important; font-size: 22px !important; }
  .hv-vs__row--head > * { padding-top: 16px; padding-bottom: 16px; }
}

/* =========================== 5. WHAT YOU CAN HOLD US TO =========================== */
.hv-promises { background: var(--navy); background-image: radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1.2px); background-size: 22px 22px; }
.hv-docket {
  position: relative; max-width: 1040px; margin: 0 auto; background: #FFFDF7; color: var(--ink);
  padding: 40px 22px 34px; border-radius: 4px;
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .7);
}
.hv-docket::before, .hv-docket::after { content: ""; position: absolute; left: 0; right: 0; height: 14px; }
.hv-docket::before { top: -7px; background: radial-gradient(circle at 9px 7px, var(--navy) 4.6px, transparent 5.2px) 0 0 / 18px 14px repeat-x; }
.hv-docket::after { bottom: -7px; background: radial-gradient(circle at 9px 7px, var(--navy) 4.6px, transparent 5.2px) 0 0 / 18px 14px repeat-x; }
.hv-docket__head { position: relative; padding-bottom: 22px; border-bottom: 3px solid var(--navy); }
.hv-docket__no { font: 700 12.5px/1.2 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--navy); margin-bottom: 12px; }
.hv-docket__no span { color: var(--muted); }
.hv-docket__title { max-width: 10em; }
.hv-docket__head .hv-stamp { position: absolute; right: -4px; top: -6px; }
.hv-docket__list { display: grid; }
.hv-docket__list li { position: relative; padding: 24px 0 22px 66px; border-bottom: 2px dashed var(--hv-rule); }
.hv-docket__n {
  position: absolute; left: 0; top: 24px; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 8px;
  background: transparent; color: var(--navy); font: 800 22px/1 var(--f-head); letter-spacing: -.03em; box-shadow: inset 0 0 0 2.5px var(--navy);
}
.hv-docket__list h3 { font-weight: 800; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.08; letter-spacing: -.03em; }
.hv-docket__list p { margin-top: 8px; font-size: 17px; color: var(--ink); }
.hv-docket__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; padding-top: 22px; font-size: 15px; color: var(--muted); }
.hv-docket__sign { display: inline-block; min-width: 190px; padding: 0 6px 2px; border-bottom: 1.5px solid var(--navy); text-align: center; }
.hv-docket__sign .hv-hand { font-size: 28px; font-style: normal; color: var(--biro); }
@media (max-width: 559px) { .hv-docket__head .hv-stamp { position: relative; right: auto; top: auto; margin-top: 16px; } }
@media (min-width: 900px) {
  .hv-docket { padding: 56px 56px 44px; }
  .hv-docket__list { grid-template-columns: repeat(3, 1fr); }
  .hv-docket__list li { padding: 30px 28px 34px; border-bottom: 0; border-left: 2px dashed var(--hv-rule); }
  .hv-docket__list li:first-child { border-left: 0; padding-left: 0; }
  .hv-docket__n { position: static; margin-bottom: 18px; width: 58px; height: 58px; font-size: 26px; }
  .hv-docket__foot { border-top: 2px dashed var(--hv-rule); }
  .hv-docket__head .hv-stamp { right: 0; top: 10px; }
}

/* =========================== 6. SUCCESS =========================== */
.hv-value { background: #fff; }
.hv-value__photo { position: relative; height: clamp(440px, 62vw, 780px); overflow: hidden; }
.hv-value__photo picture, .hv-value__photo img { width: 100%; height: 100%; }
.hv-value__photo img { object-fit: cover; object-position: 72% 50%; }
.hv-value__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(16, 38, 59, .94) 0%, rgba(16, 38, 59, .72) 32%, rgba(16, 38, 59, .2) 58%, transparent 72%); }
.hv-value__over { position: absolute; left: 0; right: 0; bottom: 40px; z-index: 1; }
.hv-value__title { font: 800 clamp(50px, 13vw, 140px)/.92 var(--f-head); letter-spacing: -.035em; color: #fff; }
.hv-value__title .hv-mark { display: inline-block; margin-top: .06em; }
.hv-value__grid { display: grid; gap: 56px; padding-top: 56px; padding-bottom: var(--sec); }
.hv-outcomes { display: grid; gap: 30px 40px; }
.hv-outcomes li { padding-top: 18px; border-top: 3px solid var(--navy); }
.hv-was { display: block; margin-bottom: 10px; font: 600 21px/1.1 var(--f-hand); color: var(--muted); text-decoration: line-through; text-decoration-color: var(--red); text-decoration-thickness: 2px; }
.hv-outcomes h3 { font-weight: 800; font-size: 26px; line-height: 1.05; letter-spacing: -.03em; margin-bottom: 8px; }
.hv-outcomes p { font-size: 16.5px; color: var(--ink); }
@media (min-width: 640px) { .hv-outcomes { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
  .hv-value__over { bottom: 72px; }
  .hv-value__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 72px; align-items: start; }
  .hv .hv-owes { margin-top: -230px; position: relative; z-index: 2; }
}

/* Who owes you: the hard offset-shadow card */
.hv-owes__card { background: #fff; border: 2px solid var(--navy); border-radius: 12px; box-shadow: var(--hv-hard); overflow: hidden; }
.hv-owes__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 18px; background: var(--navy); border-bottom: 2px solid var(--navy); color: #fff; }
.hv-owes__head b { font: 800 19px/1.1 var(--f-head); letter-spacing: -.02em; }
.hv-owes__head span { font: 700 12.5px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; color: var(--hv-yellow); }
@media (max-width: 419px) { .hv-owes__head b { font-size: 17px; } .hv-owes__head { padding: 12px 14px; } .hv-owes__rows li, .hv-owes__foot { padding-left: 14px; padding-right: 14px; } }
.hv-owes__rows li { display: grid; grid-template-columns: 1fr auto; column-gap: 10px; row-gap: 6px; align-items: center; padding: 12px 18px; border-bottom: 1px dashed var(--hv-rule); font-size: 15px; }
.hv-owes__rows li > span:first-child { font-weight: 600; color: var(--navy); }
.hv-owes__rows li > span:nth-child(2) { font-variant-numeric: tabular-nums; font-weight: 600; text-align: right; }
.hv-owes__rows .hv-pill { grid-column: 1 / -1; justify-self: start; }
.hv-owes__paid > span { text-decoration: line-through; text-decoration-color: rgba(38, 49, 58, .45); color: var(--muted) !important; }
.hv-owes__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; padding: 14px 18px; font-size: 14px; color: var(--muted); }
.hv-owes__foot b { display: block; font: 800 22px/1.1 var(--f-head); color: var(--navy); }
@media (min-width: 420px) {
  .hv-owes__rows li { grid-template-columns: 1fr auto auto; }
  .hv-owes__rows .hv-pill { grid-column: auto; justify-self: end; order: 3; }
}
.hv-pill { display: inline-block; font: 700 12px/1 var(--f-body); font-style: normal; padding: 6px 9px; border-radius: 6px; white-space: nowrap; min-width: 98px; text-align: center; }
.hv-pill--amber { background: #FBF3E4; color: #8A5A12; box-shadow: inset 0 0 0 1.5px #E9C98F; }
.hv-pill--blue { background: #E4EAF0; color: var(--navy); }
.hv-pill--red { background: var(--red-bg); color: var(--red-deep); box-shadow: inset 0 0 0 1.5px var(--red); }
.hv-pill--teal { background: var(--teal-bg); color: var(--teal-ink); }

/* =========================== 7. THE GUIDE =========================== */
.hv-guide__grid { display: grid; gap: 56px; }
.hv-guide__copy .hv-lede { margin: 24px 0 16px; }
.hv-guide__p { font-size: 17px; line-height: 1.6; color: var(--ink); max-width: 34em; }
.hv-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 32px; }
.hv-facts > div { padding-top: 14px; border-top: 3px solid var(--navy); }
.hv-facts dt { font: 800 clamp(38px, 4.4vw, 58px)/1 var(--f-head); letter-spacing: -.035em; color: var(--navy); margin-bottom: 8px; }
.hv-facts dd { font-size: 15px; line-height: 1.45; color: var(--ink); }
.hv-team { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-content: start; }
.hv-person { position: relative; background: #fff; border-radius: 12px; padding: 10px 10px 14px; box-shadow: 0 1px 0 var(--hv-rule), 0 18px 30px -24px rgba(16, 38, 59, .5); }
.hv-person::before { /* the lanyard slot of a staff tag */
  content: ""; position: absolute; left: 50%; top: 6px; width: 36px; height: 7px; margin-left: -18px; border-radius: 4px;
  background: var(--hv-paper); box-shadow: inset 0 1px 2px rgba(0, 0, 0, .18); z-index: 1;
}
.hv-person img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.hv-person figcaption { padding: 12px 4px 0; display: grid; gap: 2px; font-size: 14px; line-height: 1.35; }
.hv-person b { font: 800 18px/1.15 var(--f-head); color: var(--navy); letter-spacing: -.02em; }
.hv-person span { color: var(--muted); font-weight: 600; }
.hv-person em { font-style: normal; color: var(--ink); }
.hv-person--lead { grid-column: 1 / -1; display: grid; grid-template-columns: 42% 1fr; gap: 16px; align-items: center; background: var(--navy); padding: 12px; }
.hv-person--lead::before { display: none; }
.hv-person--lead figcaption { padding: 0; }
.hv-person--lead b { color: #fff; font-size: 22px; }
.hv-aside--team { display: none; }
@media (max-width: 767px) {
  .hv-team { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .hv-person { padding: 6px 6px 10px; }
  .hv-person::before { top: 3px; width: 24px; margin-left: -12px; height: 5px; }
  .hv-person figcaption { padding: 8px 2px 0; font-size: 12.5px; }
  .hv-person b { font-size: 15px; }
  .hv-person em { display: none; }
  .hv-person--lead { padding: 10px; }
  .hv-person--lead figcaption { padding: 0; }
  .hv-person--lead b { font-size: 19px; }
}
@media (min-width: 768px) {
  .hv-team { grid-template-columns: repeat(3, 1fr); }
  .hv-person--lead { grid-column: auto; display: block; padding: 10px 10px 16px; }
  .hv-person--lead figcaption { padding: 12px 4px 0; }
  .hv-person--lead b { font-size: 18px; }
}
@media (min-width: 1024px) {
  .hv-guide__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 72px; align-items: start; }
  .hv-team { padding-top: 40px; }
  .hv-aside--team { display: block; left: 37%; top: -14px; transform: rotate(-4deg); }
  .hv-aside--team svg { left: 120px; top: 10px; transform: rotate(-60deg) scaleY(-1); }
}

/* =========================== 8. THE PLAN: the yellow strip =========================== */
.hv-plan { position: relative; background: var(--hv-yellow); color: var(--navy); padding: calc(var(--sec) * .8) 0; }
.hv-plan::before, .hv-plan::after { content: ""; position: absolute; left: 0; right: 0; height: 16px; }
.hv-plan::before { top: -8px; background: radial-gradient(circle at 10px 8px, var(--hv-paper) 5px, transparent 5.6px) 0 0 / 20px 16px repeat-x; }
.hv-plan::after { bottom: -8px; background: radial-gradient(circle at 10px 8px, var(--hv-paper) 5px, transparent 5.6px) 0 0 / 20px 16px repeat-x; }
.hv-plan__head { display: grid; gap: 14px; margin-bottom: 40px; }
.hv-plan__head p { font-size: 18px; font-weight: 500; max-width: 26em; }
.hv-steps { display: grid; }
.hv-steps li { position: relative; display: grid; grid-template-columns: auto 1fr; column-gap: 18px; padding: 22px 0; border-top: 3px dotted var(--navy); }
.hv-steps__n { grid-row: span 2; font: 800 84px/.8 var(--f-head); letter-spacing: -.045em; color: var(--navy); }
.hv-steps h3 { font-weight: 800; font-size: 26px; line-height: 1.05; letter-spacing: -.03em; align-self: end; }
.hv-steps p { margin-top: 6px; font-size: 16.5px; line-height: 1.5; color: var(--navy-deep); }
.hv-plan__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 30px; }
.hv-plan__cta .btn { width: 100%; }
.hv-plan__cta p { font-size: 16px; }
@media (min-width: 560px) { .hv-plan__cta .btn { width: auto; } }
@media (min-width: 900px) {
  .hv-plan__head { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: end; gap: 48px; margin-bottom: 56px; }
  .hv-steps { grid-template-columns: repeat(3, 1fr); }
  .hv-steps li { display: block; padding: 0 32px 0 28px; border-top: 0; border-left: 3px dotted var(--navy); }
  .hv-steps li:first-child { border-left: 0; padding-left: 0; }
  .hv-steps__n { display: block; font-size: clamp(110px, 11vw, 170px); margin-bottom: 18px; }
  .hv-steps h3 { font-size: clamp(26px, 2.4vw, 32px); }
  .hv-plan__cta { margin-top: 56px; }
}

/* =========================== 9. HOW IT WORKS =========================== */
.hv-how__head { margin-bottom: 40px; max-width: 980px; }
.hv-how__head .hv-h2 { max-width: none; }
.hv-how__grid { display: grid; gap: 26px; }
.hv-how__aside { position: sticky; top: calc(var(--header-h) + 10px); z-index: 2; }
.hv-ticket {
  position: relative; background: #fff; color: var(--ink); border-radius: 12px; padding: 16px 18px 16px 30px; max-width: 520px;
  box-shadow: 0 1px 0 var(--hv-rule), 0 24px 40px -26px rgba(16, 38, 59, .55);
  display: grid; grid-template-columns: 1fr; row-gap: 2px;
}
.hv-ticket::before { /* the stub's perforation */
  content: ""; position: absolute; left: 12px; top: 10px; bottom: 10px; width: 6px;
  background: radial-gradient(circle, #DCD2BE 2.6px, transparent 3px) 0 0 / 6px 12px repeat-y;
}
.hv-ticket__top { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.hv-ticket__k { font: 700 11px/1.2 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.hv-ticket__state > span { display: none; font: 700 13px/1 var(--f-body); padding: 7px 10px; border-radius: 6px; white-space: nowrap; }
.hv-ticket[data-state="1"] [data-for="1"] { display: inline-block; background: #E4EAF0; color: var(--navy); }
.hv-ticket[data-state="2"] [data-for="2"] { display: inline-block; background: var(--hv-yellow); color: var(--navy); }
.hv-ticket[data-state="3"] [data-for="3"] { display: inline-block; background: var(--teal-bg); color: var(--teal-ink); }
.hv-ticket__to { font: 800 22px/1.1 var(--f-head); color: var(--navy); }
.hv-ticket__job { font-size: 13.5px; color: var(--muted); }
.hv-ticket__amt { margin-top: 10px; font: 800 30px/1 var(--f-head); letter-spacing: -.03em; color: var(--navy); font-variant-numeric: tabular-nums; }
.hv-ticket__track { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 14px; }
.hv-ticket__track li { position: relative; padding-top: 10px; font-size: 12px; font-weight: 700; color: var(--muted); letter-spacing: .04em; text-transform: uppercase; }
.hv-ticket__track li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; border-radius: 3px; background: #E4EAF0; transition: background .35s; }
.hv-ticket[data-state="1"] .hv-ticket__track li:nth-child(-n+1)::before,
.hv-ticket[data-state="2"] .hv-ticket__track li:nth-child(-n+2)::before { background: var(--navy); }
.hv-ticket[data-state="3"] .hv-ticket__track li::before { background: var(--teal); }
.hv-ticket[data-state="1"] .hv-ticket__track li:nth-child(1),
.hv-ticket[data-state="2"] .hv-ticket__track li:nth-child(-n+2),
.hv-ticket[data-state="3"] .hv-ticket__track li { color: var(--navy); }
.hv-ticket__stamp {
  position: absolute; left: 74%; top: 58%;
  font: 800 44px/1 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--teal);
  padding: 10px 18px 8px; border: 5px solid currentColor; border-radius: 12px;
  -webkit-mask-image: var(--hv-grain); mask-image: var(--hv-grain);
  opacity: 0; transform: translate(-50%, -50%) rotate(-14deg) scale(2); transition: opacity .15s, transform .4s cubic-bezier(.2, .9, .25, 1.2);
  pointer-events: none;
}
.hv-ticket[data-state="3"] .hv-ticket__stamp { opacity: .92; transform: translate(-50%, -50%) rotate(-14deg) scale(1); }
.hv-beats { display: grid; }
.hv-beat { padding: 34px 0 30px; border-top: 3px solid var(--navy); transition: opacity .35s; }
.hv-beat__n { display: inline-block; margin-bottom: 14px; padding: 7px 10px 6px; border-radius: 6px; font: 700 13px/1 var(--f-body); letter-spacing: .06em; text-transform: uppercase; transition: background .3s, color .3s; }
.hv-beat[data-state="1"] .hv-beat__n { background: #E4EAF0; color: var(--navy); }
.hv-beat[data-state="2"] .hv-beat__n { background: var(--hv-yellow); color: var(--navy); }
.hv-beat[data-state="3"] .hv-beat__n { background: var(--teal-bg); color: var(--teal-ink); }
.hv-beat h3 { font-weight: 800; font-size: clamp(32px, 4.4vw, 60px); line-height: .98; letter-spacing: -.03em; margin-bottom: 14px; }
.hv-beat p { font-size: 17.5px; line-height: 1.6; color: var(--ink); max-width: 32em; }
/* The beat you are reading is marked by its rule and number; the others keep full-contrast body text */
.hv-beat { transition: border-color .3s; }
.hv-beat h3 { transition: color .3s; }
.js .hv-beat:not(.is-active) { border-top-color: rgba(23, 50, 77, .2); }
.js .hv-beat:not(.is-active) .hv-beat__n { background: var(--hv-paper-deep); color: var(--muted); }
@media (max-width: 1023px) {
  .hv-ticket { padding: 12px 14px 12px 26px; }
  .hv-ticket__to { font-size: 19px; }
  .hv-ticket__amt { font-size: 28px; margin-top: 4px; }
  .hv-ticket__stamp { font-size: 34px; border-width: 4px; }
  .hv-ticket__track { margin-top: 10px; }

  .hv-beat { min-height: 36vh; }
}
@media (min-width: 1024px) {
  .hv-how__head { margin-bottom: 64px; }
  .hv-how__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 80px; align-items: start; }
  .hv-how__aside { top: calc(var(--header-h) + 15vh); }
  .hv-ticket { padding: 30px 34px 28px 50px; transform: rotate(-1.5deg); }
  .hv-ticket::before { left: 20px; }
  .hv-ticket__to { font-size: 36px; }
  .hv-ticket__amt { font-size: 52px; margin-top: 18px; }
  .hv-ticket__track { margin-top: 22px; }
  .hv-ticket__stamp { font-size: 54px; }
  .hv-ticket__k { font-size: 12px; }
  .hv-beat { min-height: 40vh; padding: 36px 0; }
  .hv-beat:last-child { min-height: 32vh; }
}

/* =========================== 10. PLUMBER OR WHOLESALER =========================== */
.hv-kinds { background: var(--navy-deep); }
.hv-kinds__title { max-width: 18em; margin-bottom: 40px; font-size: clamp(32px, 7.4vw, 56px); }
.hv-kinds__grid { display: grid; gap: 18px; }
.hv-kind { position: relative; display: block; overflow: hidden; border-radius: 16px; aspect-ratio: 4 / 4.6; text-decoration: none; color: #fff; isolation: isolate; }
.hv-kind picture, .hv-kind img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hv-kind img { object-fit: cover; transition: transform .6s var(--ease); z-index: -2; }
.hv-kind::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(11, 28, 44, .96) 0%, rgba(11, 28, 44, .8) 40%, rgba(11, 28, 44, .1) 72%); }
.hv-kind:hover img { transform: scale(1.04); }
.hv-kind__sign { position: absolute; top: 16px; left: 16px; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 7px var(--red); color: var(--navy-ink); font: 800 26px/1 var(--f-head); letter-spacing: -.04em; }
.hv-kind__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; display: grid; gap: 8px; }
.hv-kind__q { font: 800 clamp(30px, 3.4vw, 46px)/1 var(--f-head); letter-spacing: -.03em; }
.hv-kind__line { font-size: 17px; line-height: 1.45; color: #E3EAF0; max-width: 26em; }
.hv-kind__go { display: inline-flex; align-items: center; gap: 8px; justify-self: start; margin-top: 8px; min-height: 44px; padding: 0 16px; border-radius: 10px; background: var(--hv-yellow); color: var(--navy); font-weight: 700; font-size: 15px; }
@media (min-width: 640px) { .hv-kinds__grid { grid-template-columns: 1fr 1fr; } .hv-kind { aspect-ratio: 4 / 5; } .hv-kind__body { padding: 20px; } }
@media (min-width: 900px) {
  .hv-kinds__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .hv-kind { aspect-ratio: 4 / 3.3; }
  .hv-kind__body { padding: 32px; }
  .hv-kind__sign { top: 24px; left: 24px; width: 80px; height: 80px; font-size: 32px; box-shadow: inset 0 0 0 8px var(--red); }
}

/* =========================== 11. PRICES =========================== */
.hv-prices__head { display: grid; gap: 18px; margin-bottom: 40px; }
.hv-prices__logic { font: 700 clamp(20px, 2.2vw, 28px)/1.25 var(--f-head); letter-spacing: -.02em; color: var(--navy); max-width: 22em; }
.hv-prices__logic b { font-weight: 800; background: linear-gradient(176deg, transparent 10%, var(--hv-yellow) 10% 88%, transparent 88%); padding: 0 .08em; }
@media (min-width: 1024px) { .hv-prices__head { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: end; gap: 64px; margin-bottom: 56px; } }

/* The big-number strip: facts WorkAid controls */
.hv-numbers { display: grid; grid-template-columns: 1fr 1fr; border-top: 3px solid var(--navy); border-bottom: 3px solid var(--navy); margin-bottom: 48px; }
.hv-numbers > div { padding: 18px 14px 20px 0; }
.hv-numbers > div:nth-child(even) { padding-left: 16px; border-left: 2px dashed var(--hv-rule); }
.hv-numbers > div:nth-child(n+3) { border-top: 2px dashed var(--hv-rule); }
.hv-numbers dt { font: 800 clamp(48px, 13vw, 64px)/.9 var(--f-head); letter-spacing: -.035em; color: var(--navy); margin-bottom: 14px; white-space: nowrap; }
.hv-numbers dt small { font-size: .38em; letter-spacing: -.01em; }
.hv-numbers > div:first-child dt b { display: inline-block; background: var(--hv-yellow); padding: .06em .08em 0; line-height: .86; }
.hv-numbers dt b { font-weight: 800; }
.hv-numbers dd { font-size: 14.5px; line-height: 1.4; color: var(--ink); max-width: 15em; }
@media (min-width: 900px) {
  .hv-numbers { grid-template-columns: 1.3fr 1fr 1fr 1fr; }
  .hv-numbers > div { padding: 26px 24px 28px; border-left: 2px dashed var(--hv-rule); border-top: 0 !important; }
  .hv-numbers > div:first-child { padding-left: 0; border-left: 0; }
  .hv-numbers dt { font-size: clamp(64px, 7vw, 108px); }
  .hv-numbers dd { font-size: 15.5px; }
}

/* The needs picker */
.hv-needs { display: grid; gap: 14px; margin-bottom: 36px; padding: 20px; background: #fff; border: 2px dashed var(--navy); border-radius: 14px; }
.hv-needs__q { font: 800 22px/1.15 var(--f-head); letter-spacing: -.025em; color: var(--navy); }
.hv-needs__opts { display: flex; flex-wrap: wrap; gap: 10px; }
.hv-need {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 18px; border-radius: 999px;
  border: 2px solid var(--navy); background: #fff; color: var(--navy); font-weight: 700; font-size: 16px; line-height: 1.2; text-decoration: none; cursor: pointer;
  transition: background .15s, transform .15s var(--ease);
}
.hv-need::before { content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--navy); background: #fff; }
.hv-need:hover { background: var(--hv-yellow-soft); }
.hv-need[aria-pressed="true"] { background: var(--hv-yellow); box-shadow: 0 3px 0 var(--navy); }
.hv-need[aria-pressed="true"]::before { background: var(--navy); box-shadow: inset 0 0 0 3px var(--hv-yellow); }
.hv-needs__out { font-size: 16px; font-weight: 600; color: var(--navy); min-height: 24px; }
.hv-needs__out a { color: var(--navy); font-weight: 800; text-decoration: underline; text-decoration-color: var(--hv-yellow); text-decoration-thickness: 3px; text-underline-offset: 4px; }
@media (max-width: 559px) { .hv-need { width: 100%; } }
@media (min-width: 1024px) {
  .hv-needs { grid-template-columns: 11em 1fr; align-items: center; column-gap: 28px; padding: 22px 26px; }
  .hv-needs__out { grid-column: 1 / -1; }
}

/* The cards */
.hv-plans { display: grid; gap: 24px; align-items: start; }
.hv-card { position: relative; background: #fff; border-radius: 14px; padding: 28px 24px 26px; display: flex; flex-direction: column; box-shadow: 0 0 0 1px var(--hv-rule); transition: opacity .25s, transform .3s var(--ease), box-shadow .25s; scroll-margin-top: calc(var(--header-h) + 24px); }
.hv-card__name { font: 800 30px/1 var(--f-head); letter-spacing: -.035em; color: var(--navy); }
.hv-card__for { margin-top: 8px; font-size: 16px; color: var(--muted); }
.hv-card__price { margin: 20px 0 20px; font: 800 clamp(40px, 4vw, 52px)/1 var(--f-head); letter-spacing: -.035em; color: var(--navy); white-space: nowrap; }
.hv-card__price span { display: block; margin-top: 6px; font: 600 14px/1 var(--f-body); letter-spacing: 0; color: var(--muted); }
.hv-ticks__lead { font-size: 14px; font-weight: 700; color: var(--navy); margin-bottom: 6px; }
.hv-ticks li { position: relative; padding: 8px 0 8px 30px; font-size: 16px; line-height: 1.4; border-top: 1px dashed var(--hv-rule); }
.hv-ticks li::before { content: ""; position: absolute; left: 3px; top: 14px; width: 13px; height: 7px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); transform: rotate(-45deg); }
.hv-card__note { margin: 14px 0 22px; font-size: 14px; color: var(--muted); }
.hv-card .btn { margin-top: auto; width: 100%; }
.hv-card--feature { border: 2px solid var(--navy); box-shadow: var(--hv-hard); padding-top: 32px; }
.hv-card--feature .hv-card__price { margin-left: -24px; margin-right: -24px; padding: 16px 24px 14px; background: var(--hv-yellow); border-top: 2px solid var(--navy); border-bottom: 2px solid var(--navy); font-size: clamp(46px, 5vw, 64px); }
.hv-card--feature .hv-card__price span { color: var(--navy); }
.hv-card__stamp { position: absolute; top: -16px; right: 14px; background: #fff; }
.hv-plans.has-match .hv-card:not(.is-match) { opacity: .5; }
.hv-card.is-match { transform: translateY(-6px); }
.hv-card:not(.hv-card--feature).is-match { box-shadow: 0 0 0 3px var(--navy), 0 0 0 9px var(--hv-yellow); }
.hv-card--feature.is-match { box-shadow: 0 0 0 6px var(--hv-yellow), 12px 12px 0 var(--navy); }
@media (min-width: 1024px) {
  .hv-plans { grid-template-columns: 1fr 1.12fr 1fr; gap: 28px; }
  .hv-card { padding: 34px 30px 30px; }
  .hv-card--feature { margin-top: -14px; padding-top: 40px; }
  .hv-card--feature .hv-card__price { margin-left: -30px; margin-right: -30px; padding: 18px 30px 16px; }
}

/* Onboarding and the comparison */
.hv-pnotes { display: grid; gap: 20px; margin-top: 44px; }
.hv-pnote { background: #fff; border-radius: 14px; padding: 24px; box-shadow: 0 0 0 1px var(--hv-rule); }
.hv-pnote h3 { font: 800 22px/1.15 var(--f-head); letter-spacing: -.025em; color: var(--navy); margin-bottom: 10px; }
.hv-pnote p { font-size: 16px; color: var(--ink); }
.hv-meter { display: grid; gap: 14px; }
.hv-meter > div { position: relative; display: grid; gap: 4px; padding: 16px; border-radius: 10px; background: var(--hv-paper); }
.hv-meter__k { font: 700 12px/1.2 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.hv-meter__v { font: 800 30px/1.05 var(--f-head); letter-spacing: -.035em; color: var(--navy); }
.hv-meter__v small { font: 600 15px/1 var(--f-body); color: var(--muted); letter-spacing: 0; }
.hv-meter__s { font-size: 14.5px; line-height: 1.45; color: var(--ink); }
.hv-meter__us { background: var(--navy) !important; }
.hv-meter__us .hv-meter__k { color: var(--hv-yellow); }
.hv-meter__us .hv-meter__v { color: #fff; }
.hv-meter__us .hv-meter__s { color: #E3EAF0; }
.hv-aside--meter { position: static; display: block; margin-top: 4px; font-size: 23px; color: var(--red); transform: rotate(-3deg); }
.hv-aside--meter svg { display: none; }
@media (min-width: 640px) { .hv-meter { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
  .hv-pnotes { grid-template-columns: 1fr 1.6fr; gap: 28px; }
  .hv-pnote { padding: 30px; }
}
.hv-quiet { margin-top: 28px; font-size: 14.5px; color: var(--muted); }

/* =========================== 12. TWO WAYS NEXT MONTH CAN GO =========================== */
.hv-fork { background: var(--navy-deep); padding: var(--sec) var(--gutter); }
.hv-fork__title { max-width: var(--wrap); margin: 0 auto 40px; font: 800 clamp(40px, 9.6vw, 104px)/.95 var(--f-head); letter-spacing: -.035em; color: #fff; text-align: center; }
.hv-fork__title span:last-child { color: var(--hv-yellow); }
.hv-fork__grid { display: grid; gap: 18px; max-width: var(--wrap); margin: 0 auto; }
.hv-fork__side { position: relative; border-radius: 18px; padding: 24px 18px 26px; display: flex; flex-direction: column; align-items: center; overflow: hidden; }
.hv-fork__side--bad { background: #0A1A29; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); color: #C9D5DF; }
.hv-fork__side--good { background: var(--hv-paper); color: var(--ink); }
.hv-fork__head { align-self: stretch; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 22px; }
.hv-fork__head h3 { font: 800 clamp(26px, 2.6vw, 36px)/1.05 var(--f-head); letter-spacing: -.035em; }
.hv-fork__side--bad h3 { color: #fff; }
.hv-fork__head p { font: 700 13px/1 var(--f-body); letter-spacing: .06em; text-transform: uppercase; padding: 8px 11px; border-radius: 6px; }
.hv-fork__side--bad .hv-fork__head p { background: var(--red); color: #fff; }
.hv-fork__side--good .hv-fork__head p { background: var(--hv-yellow); color: var(--navy); }
.hv-fork__crop { height: 26.5em; font-size: min(15px, 3.9vw); overflow: hidden; margin-bottom: 22px; padding: .6em 1.2em 0; -webkit-mask-image: linear-gradient(180deg, #000 84%, transparent); mask-image: linear-gradient(180deg, #000 84%, transparent); }
.hv-fork__side--bad .phone--fork { transform: rotate(-2deg); }
.hv-fork__side--good .phone--fork { transform: rotate(2deg); }
.hv-fork__list { align-self: stretch; }
.hv-fork__list li { position: relative; padding: 12px 0 12px 32px; border-top: 1px dashed currentColor; border-top-color: rgba(127, 140, 152, .4); font-size: 16px; }
.hv-fork__side--bad .hv-fork__list li::before, .hv-fork__side--bad .hv-fork__list li::after { content: ""; position: absolute; left: 4px; top: 23px; width: 14px; height: 2.5px; background: var(--red-soft); transform: rotate(45deg); }
.hv-fork__side--bad .hv-fork__list li::after { transform: rotate(-45deg); }
.hv-fork__side--good .hv-fork__list li::before { content: ""; position: absolute; left: 3px; top: 18px; width: 13px; height: 7px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); transform: rotate(-45deg); }
@media (min-width: 900px) {
  .hv-fork__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .hv-fork__side { padding: 40px 44px 44px; }
  .hv-fork__title { margin-bottom: 56px; }
}

/* =========================== 13. FINAL CTA: yellow =========================== */
.hv-cta { position: relative; background: var(--hv-yellow); color: var(--navy); padding: calc(var(--sec) * .85) 0; }
.hv-cta::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 16px; background: radial-gradient(circle at 10px 8px, var(--navy-deep) 5px, transparent 5.6px) 0 0 / 20px 16px repeat-x; }
.hv-cta__in { display: grid; gap: 28px; }
.hv-cta__title { font: 800 clamp(42px, 10vw, 104px)/.94 var(--f-head); letter-spacing: -.035em; color: var(--navy); }
.hv-cta__title span { display: block; color: var(--navy-deep); -webkit-text-stroke: 0; }
.hv-cta__side p { font-size: 18px; line-height: 1.55; color: var(--navy-deep); max-width: 30em; margin-bottom: 26px; }
.hv-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.hv-cta__actions .btn { width: 100%; }
.hv-cta__mail { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--navy); text-underline-offset: 4px; }
@media (min-width: 560px) { .hv-cta__actions .btn { width: auto; } }
@media (min-width: 1024px) { .hv-cta__in { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 72px; align-items: end; } }

/* =========================== 14. FAQ =========================== */
.hv-faq__grid { display: grid; gap: 36px; }
.hv-faq__mail { margin-top: 18px; font-size: 16px; color: var(--muted); }
.hv-faq__mail a { color: var(--navy); font-weight: 700; }
.hv-faq__list { border-top: 3px solid var(--navy); }
.hv-faq__list details { border-bottom: 1.5px dashed var(--hv-rule); }
.hv-faq__list summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px;
  min-height: 64px; padding: 16px 0; font: 700 19px/1.25 var(--f-head); letter-spacing: -.02em; color: var(--navy);
}
.hv-faq__list summary::-webkit-details-marker { display: none; }
.hv-faq__list summary::after {
  content: "+"; flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px;
  background: #fff; box-shadow: inset 0 0 0 2px var(--navy); font: 700 22px/1 var(--f-body); color: var(--navy);
}
.hv-faq__list details[open] summary::after { content: "\2212"; background: var(--hv-yellow); }
.hv-faq__list details:nth-child(-n+4) summary { font-weight: 800; }
.hv-faq__list details p { padding: 0 48px 22px 0; font-size: 16.5px; line-height: 1.6; color: var(--ink); }
.hv-faq__list details p a { color: var(--navy); font-weight: 700; }
@media (min-width: 1024px) {
  .hv-faq__grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 80px; align-items: start; }
  .hv-faq__head { position: sticky; top: calc(var(--header-h) + 32px); }
  .hv-faq__list summary { font-size: 22px; min-height: 76px; }
}
.hv-referral {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 56px;
  padding: 18px 20px; border: 2px dashed var(--navy); border-radius: 12px; text-decoration: none; color: var(--ink); font-size: 16px; background: #fff;
}
.hv-referral b { color: var(--navy); }
.hv-referral__go { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 10px; background: var(--navy); color: var(--hv-yellow); font-weight: 700; }
.hv-referral:hover .hv-referral__go { background: var(--navy-deep); }

/* ---------- Footer and the phone's sticky bar ---------- */
.hv .footer .btn--primary { border-color: var(--hv-yellow); box-shadow: none; }
.hv .stickybar { background: rgba(245, 240, 230, .97); border-top: 2px solid var(--navy); }
.hv .stickybar .btn--primary { box-shadow: 0 3px 0 var(--navy); }

/* Reduced motion: every hv sequence lands in its final state */
@media (prefers-reduced-motion: reduce) {
  .js .hv-slam { opacity: 1; }
  .hv-ticket__stamp { transition: none; }
}

/* ---------- Fixes from the 1024 pass ---------- */
.hv-plans > *, .hv-hero__grid > *, .hv-guide__grid > *, .hv-call__grid > * { min-width: 0; }
@media (min-width: 1024px) {
  .hv-card__price { font-size: clamp(34px, 3.1vw, 46px); }
  .hv-card--feature .hv-card__price { font-size: clamp(42px, 3.9vw, 58px); }
}
@media (min-width: 1024px) and (max-width: 1279px) { .hv-tag { font-size: 11px; letter-spacing: .08em; } }
.hv-value__over .hv-eyebrow--dark::before { background: var(--hv-yellow); }
@media (min-width: 1024px) {
  .hv-value__title { font-size: clamp(84px, 9.4vw, 140px); }
  .hv-value__over { bottom: 120px; }
  .hv-value__photo::after {
    background: linear-gradient(0deg, rgba(16, 38, 59, .95) 0%, rgba(16, 38, 59, .82) 30%, rgba(16, 38, 59, .6) 50%, rgba(16, 38, 59, .28) 68%, transparent 84%),
      linear-gradient(90deg, rgba(16, 38, 59, .6) 0%, rgba(16, 38, 59, .25) 45%, transparent 65%);
  }
  .hv .hv-owes { margin-top: -100px; }
  .hv-team { padding-top: 70px; }
  .hv-aside--team { left: calc(33.3% + 64px); top: -8px; transform: rotate(-3deg); }
  .hv-aside--team svg { left: -46px; top: 24px; transform: rotate(-104deg); }
}

/* ---------- Fixes from the buyer and critic review (7 Oct 2026) ---------- */
/* Hero, phones: the price on the first screen. A yellow price stamp on the photo below 560px; from 560px the
   round "3 promises" seal takes over (its ring text is too small to read on a phone). */
.hv-pricestamp {
  position: absolute; z-index: 4; right: 10px; top: 14px; display: grid; justify-items: center; width: 104px;
  padding: 8px 8px 9px; background: var(--hv-yellow); color: var(--navy); border: 2px solid var(--navy); border-radius: 8px;
  font: 800 28px/1 var(--f-head); letter-spacing: -.04em; text-decoration: none; transform: rotate(-6deg);
  box-shadow: 0 4px 0 var(--navy), 0 14px 22px -10px rgba(10, 25, 40, .5);
  animation: hv-thump6 .5s cubic-bezier(.2, .9, .25, 1.15) .9s both;
}
.hv-pricestamp small { font: 700 11px/1.1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; }
.hv-pricestamp small:first-child { margin-bottom: 3px; }
.hv-pricestamp small + small, .hv-pricestamp small:nth-of-type(2) { margin-top: 4px; letter-spacing: .06em; }
@keyframes hv-thump6 { 0% { opacity: 0; transform: rotate(-6deg) scale(2); } 60% { opacity: 1; transform: rotate(-6deg) scale(.92); } 100% { transform: rotate(-6deg) scale(1); } }
@media (max-width: 559px) {
  .hv-seal { display: none; }
  .hv-hero__copy { padding-top: 14px; padding-bottom: 16px; }
  .hv-tag { margin-bottom: 12px; }
  .hv-hero__lede { font-size: 17px; }
}
@media (min-width: 560px) { .hv-pricestamp { display: none; } }
.hv-hero__lede b { font-weight: 700; color: var(--navy); }
/* The stamps thump in from twice their size; the hero clips sideways so that never widens the page */
.hv-hero, .hv main { overflow-x: clip; }

/* Hero, desktop: the chips keep off his face and the note keeps off his hands and phone. The reassurances read as
   one ticked line, not pills that wrap two-and-one. */
@media (min-width: 1024px) {
  .hv-chip--call { left: -40px; top: 61%; }
  .hv-sticky { left: auto; right: 7%; bottom: 30%; }
  .hv-pills { gap: 8px 22px; margin-top: 20px; }
  .hv-pills li { padding: 0; background: none; border: 0; border-radius: 0; font-size: 15px; }
}
@media (min-width: 1280px) { .hv-hero__photo img { object-position: 50% 40%; } }
@media (min-width: 1024px) and (max-width: 1279px) {
  .hv-hero__photo img { object-position: 44% 50%; }
  .hv-hero__chips { font-size: 14px; }
  .hv-chip { width: 21em; }
  .hv-chip__body em { display: none; }
  .hv-chip--call { left: -48px; top: 46%; }
  .hv-sticky { right: auto; left: 6%; bottom: 31%; }
}

/* Problem, desktop: the kitchen-night photo as a band across the top, as on a phone, instead of hidden behind
   the job card */
@media (min-width: 1024px) {
  .hv-problem__photo { position: relative; top: auto; right: auto; width: 100%; height: 480px; }
  .hv-problem__photo img { object-position: 50% 52%; }
  .hv-problem__photo::after { background: linear-gradient(180deg, rgba(16, 38, 59, .08) 0%, rgba(16, 38, 59, .35) 50%, var(--navy-deep) 100%); }
  .hv-problem__grid { padding-top: 0; margin-top: -150px; }
}

/* The red band: the run ends in the write-off on one line from 768px */
@media (min-width: 768px) {
  .hv-drift__row { flex-wrap: nowrap; }
  .hv-drift__end { flex-basis: auto; margin-top: 0; }
  .hv-drift__row > li:nth-child(3)::after { display: block; }
  .hv-drift__end .hv-stamp { margin-left: 0; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .hv-drift__row { flex-wrap: wrap; }
  .hv-drift__end { flex-basis: 100%; margin-top: 8px; }
  .hv-drift__row > li:nth-child(3)::after { display: none; }
}
@media (min-width: 1024px) {
  .hv-drift__row, .hv-drift__row > li { gap: 8px; }
  .hv-drift__row > li:not(:last-child)::after { width: 12px; }
  .hv-sign { width: 62px; height: 62px; font-size: 25px; }
  .hv-drift__row > li:nth-child(2) .hv-sign { width: 72px; height: 72px; font-size: 29px; }
  .hv-drift__row > li:nth-child(3) .hv-sign { width: 84px; height: 84px; font-size: 34px; }
  .hv-drift__end .hv-stamp { font-size: 16px; }
}

/* Success: a call to action at the emotional peak */
.hv-value__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; padding-top: 32px; border-top: 2px dashed var(--hv-rule); }
.hv-value__cta .btn { width: 100%; }
.hv-value__cta p { font-size: 16px; color: var(--ink); }
@media (min-width: 560px) { .hv-value__cta .btn { width: auto; } }
@media (min-width: 1024px) { .hv-value__cta { grid-column: 1 / -1; } }

/* The guide: a team grid with no empty cell and the outcome line shown on phones */
.hv .hv-facts { margin-top: 32px; }
.hv-guide__also { margin-top: 22px; font-size: 14.5px; line-height: 1.5; color: var(--muted); max-width: 34em; }
@media (max-width: 767px) {
  .hv-team { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .hv-person em { display: block; margin-top: 3px; font-size: 13px; line-height: 1.35; }
  .hv-person--bert { grid-column: 1 / -1; display: grid; grid-template-columns: 34% 1fr; gap: 14px; align-items: center; padding: 10px; }
  .hv-person--bert::before { display: none; }
  .hv-person--bert figcaption { padding: 0; }
}
@media (min-width: 560px) and (max-width: 767px) {
  .hv-team { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hv-person--lead { grid-template-columns: 28% 1fr; }
  .hv-person--bert { grid-template-columns: 22% 1fr; }
}

/* How it works: the PAID stamp sits beside the amount, clear of the track and its own PAID label */
.hv-ticket__stamp { left: 76%; top: 50%; }
@media (min-width: 1024px) { .hv-ticket__stamp { top: 55%; } }

/* The numbers strip: "from" sits above the figure */
.hv-numbers > div:first-child dt small { display: block; margin-bottom: .45em; font: 700 13px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; }

/* Prices on phones and tablets: the package the headline promise lives in comes first */
@media (max-width: 1023px) { .hv-card--feature { order: -1; } }

/* ---------- Fixes from the second critic round (7 Oct 2026) ---------- */
/* Good news is stamped in hi-vis or navy, never in the overdue red */
.hv-stamp--yellow { --c: var(--navy); background: var(--hv-yellow); }
.hv-pill--navy { background: var(--navy); color: #fff; }

/* Hero: one action colour. The note goes Post-it pale, the seal goes navy, so the button owns the hi-vis. */
.hv-sticky { background: linear-gradient(180deg, #FFF6D2, #FBEDB8); }
.hv-seal__o { fill: var(--navy); stroke: var(--hv-yellow); }
.hv-seal__i { stroke: rgba(255, 255, 255, .5); }
.hv-seal__ring, .hv-seal__s { fill: #fff; }
.hv-seal__n { fill: var(--hv-yellow); }
/* What the tap costs: said right under the button */
.hv-hero__after { margin-top: 12px; font-size: 14.5px; line-height: 1.45; font-weight: 500; color: var(--ink); max-width: 30em; }
.hv-hero__act .hv-hero__after + .hv-textlink { margin-top: 2px; }
/* Phones: the price is the stamp on the photo, on the first screen; the tag by the button would say it twice */
@media (max-width: 559px) {
  .hv-pricetag { display: none; }
  .hv-hero__act { padding-top: 18px; }
  .hv-hero__lede { line-height: 1.45; margin-bottom: 20px; }
}
/* Tablets: the lede, the button and the price straight under the headline, the photo after them */
@media (min-width: 560px) and (max-width: 1023px) {
  .hv-hero__grid { grid-template-areas: "copy" "act" "photo"; }
  .hv-hero__copy { padding-bottom: 6px; }
  .hv-hero__act { padding-top: 14px; padding-bottom: 40px; }
  .hv .hv-hero__photo > picture img { height: 440px; }
  .hv-sticky { left: auto; right: 3%; bottom: 18px; } /* on the van seat, clear of his hands */
}
/* Desktop: the seal sits inside the photo, in the top corner of the window, so it lands on the first screen
   (the hero runs taller than a laptop viewport, so anything pinned to the photo's foot is below the fold) */
@media (min-width: 1024px) {
  .hv-seal { top: 24px; bottom: auto; right: 24px; width: 132px; height: 132px; }
  .hv-hero__after { max-width: none; }
}
/* Laptops: the note goes up into the window, right above the payment it crosses off, so his hands and phone
   stay in view; the seal takes the other corner */
@media (min-width: 1024px) and (max-width: 1279px) {
  .hv-sticky { left: 4%; right: auto; top: 14px; bottom: auto; }
  .hv-chip--paid { top: 150px; }
  .hv-seal { top: 20px; right: 20px; width: 112px; height: 112px; }
}

/* Problem: a shorter, brighter band so the headline arrives sooner */
.hv-problem__photo img { filter: brightness(1.12) contrast(1.05); }
@media (max-width: 1023px) { .hv-problem__photo img { object-position: 30% 60%; } }
@media (min-width: 1024px) {
  .hv-problem__photo { height: 360px; }
  .hv-problem__photo img { object-position: 38% 60%; }
  .hv-problem__grid { margin-top: -110px; }
}

/* The red band: the drift is the picture. Each sign bigger and lower than the last, ending in the write-off. */
@media (min-width: 1024px) {
  .hv-red__in { padding: 104px 0 72px; }
  .hv-drift__row { flex-wrap: wrap; align-items: flex-start; }
  .hv-drift__row > li { align-items: center; }
  .hv-drift__row > li:nth-child(2) { transform: translateY(18px); }
  .hv-drift__row > li:nth-child(3) { transform: translateY(36px); }
  .hv-drift__row > li:nth-child(3)::after { display: none; }
  .hv-sign { width: 80px; height: 80px; font-size: 32px; }
  .hv-drift__row > li:nth-child(2) .hv-sign { width: 100px; height: 100px; font-size: 40px; }
  .hv-drift__row > li:nth-child(3) .hv-sign { width: 124px; height: 124px; font-size: 50px; box-shadow: inset 0 0 0 8px var(--navy-deep); }
  .hv-drift__end { flex-basis: 100%; justify-content: flex-end; margin-top: 30px; }
  .hv-drift__end .hv-stamp { font-size: 30px; border-width: 4px; padding: 9px 14px 7px; }
}
@media (min-width: 1280px) {
  .hv-sign { width: 96px; height: 96px; font-size: 38px; }
  .hv-drift__row > li:nth-child(2) .hv-sign { width: 120px; height: 120px; font-size: 48px; }
  .hv-drift__row > li:nth-child(3) .hv-sign { width: 148px; height: 148px; font-size: 60px; }
}

/* Success: the "before" lines in the body face, and left off on phones, where the page is longest */
.hv-was { font: 500 14px/1.3 var(--f-body); letter-spacing: .02em; }
@media (max-width: 559px) { .hv-was { display: none; } }

/* The guide: a tear line where the white success grid meets the paper; the team on the left from 1024px */
.hv-guide { position: relative; }
.hv-guide::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 16px; background: radial-gradient(circle at 10px 8px, #fff 5px, transparent 5.6px) 0 0 / 20px 16px repeat-x; }
@media (min-width: 1024px) {
  .hv-guide__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
  .hv-guide__grid > .hv-team { order: -1; }
}

/* How it works: its own white room between the yellow plan and the navy kinds, and tighter beats */
.hv-how { background: #fff; }
.hv-plan::after { background: radial-gradient(circle at 10px 8px, #fff 5px, transparent 5.6px) 0 0 / 20px 16px repeat-x; }
.hv-beat { min-height: 26vh; }
.hv-beat:last-child { min-height: 22vh; }

/* Plumber or wholesaler: the photos breathe; the shade covers only the words */
.hv-kind::after { background: linear-gradient(180deg, transparent 30%, rgba(11, 28, 44, .62) 56%, rgba(11, 28, 44, .94) 100%); }
.hv-kind[href="/plumbing"] img { filter: saturate(1.1) brightness(1.06); object-position: 60% 30%; }

/* Prices: the handwritten aside gets its arrow back, top right of the box, pointing at the hourly rate */
.hv-aside--meter { position: absolute; right: 14px; top: 12px; margin: 0; font-size: 22px; line-height: .95; text-align: right; transform: rotate(-4deg); }
.hv-aside--meter svg { display: block; left: -46px; top: 22px; width: 44px; height: 30px; transform: scaleY(-1) rotate(-8deg); }
@media (max-width: 639px) { .hv-aside--meter svg { left: -6px; top: 40px; width: 38px; height: 26px; } }

/* The close: "next month can go." on its own line, so the yellow never splits across lines */
.hv-fork__title span { display: block; }

/* =====================================================================================
   HI-VIS DOCKET, THE REST OF THE SITE (7 Oct 2026): /plumbing and /trading (body.hv.hv--niche), the quote page
   (body.hv.hv--quote) and the 404 (body.hv.hv--lost). The niche pages reuse the homepage's hv- sections; what
   follows is only what differs: a longer headline, the chips placed for each photo, the wall calendar on navy,
   the guide with a photo of the owner's world, and the "How it works" photo band.
   ===================================================================================== */

/* ---------- Niche hero: a longer headline, the chips placed for each photo ---------- */
.hv-hero--niche .hv-h1 { font-size: clamp(46px, 12.6vw, 66px); line-height: .92; }
.hv-hero--niche .hv-h1 .hv-mark { padding: 0 .06em; }
@media (min-width: 768px) { .hv-hero--niche .hv-h1 { font-size: 88px; } }
@media (min-width: 1024px) { .hv-hero--niche .hv-h1 { font-size: clamp(64px, 5.6vw, 98px); } }

.hv-hero--plumb .hv-hero__photo img { object-position: 64% 40%; }
.hv-hero--trade .hv-hero__photo img { object-position: 70% 30%; }
@media (min-width: 1024px) {
  .hv-hero--plumb .hv-hero__photo img { object-position: 56% 50%; }
  .hv-hero--trade .hv-hero__photo img { object-position: 66% 40%; }
  .hv-hero--niche .hv-chip--paid { left: -64px; top: 20%; }
  .hv-hero--niche .hv-chip--call { left: -40px; top: 58%; }
  .hv-hero--niche .hv-sticky { left: auto; right: 5%; top: auto; bottom: 7%; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .hv-hero--niche .hv-chip--paid { top: 150px; }
  .hv-hero--niche .hv-chip--call { left: -48px; top: 52%; }
  .hv-hero--niche .hv-sticky { left: auto; right: 4%; top: auto; bottom: 5%; }
}
@media (min-width: 560px) and (max-width: 1023px) {
  .hv-hero--niche .hv-sticky { left: auto; right: 3%; bottom: 18px; }
}

/* ---------- The wall calendar, on the navy problem band ---------- */
.hv-calfig { justify-self: center; width: 100%; max-width: 560px; padding-top: 12px; }
.hv .cal__title { font: 800 21px/1 var(--f-head); letter-spacing: .02em; }
.hv .cal__who { font-size: 22px; }
.hv .cal__dow span { font: 700 10.5px/1 var(--f-body); letter-spacing: .08em; color: var(--muted); }
.hv .cal__grid b { font-family: var(--f-body); font-weight: 600; }
.hv .cal__foot { align-items: center; margin-top: 18px; }
.hv .cal__foot .hv-stamp { font-size: 14px; background: #fff; }
@media (min-width: 560px) { .hv .cal__foot .hv-stamp { font-size: 17px; } }
@media (min-width: 1024px) { .hv-calfig { padding-top: 56px; } }

/* ---------- The guide with a photo of the owner's world, then the team in one row ---------- */
.hv-guide--photo .hv-guide__grid { gap: 40px; }
.hv-guide__photo { position: relative; margin-bottom: 64px; }
.hv-guide__photo picture, .hv-guide__photo img { display: block; width: 100%; }
.hv-guide__photo img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; }
.hv-aside--photo { left: 18px; bottom: -66px; transform: rotate(-3deg); }
.hv-aside--photo svg { left: 136px; top: -40px; transform: rotate(10deg); }
.hv-team--row { margin-top: 48px; }
@media (min-width: 1024px) {
  .hv-guide--photo .hv-guide__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
  .hv-guide__photo { margin-bottom: 40px; }
  .hv-guide__photo img { aspect-ratio: 5 / 4.4; transform: rotate(1.2deg); }
  .hv-aside--photo { left: 28px; bottom: -70px; }
  .hv-team--row { margin-top: 80px; padding-top: 0; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
  .hv-team--row .hv-person--lead b { font-size: 17px; }
}

/* ---------- How it works opens on a full-bleed photo with the headline on it ---------- */
.hv-how--band { padding: 0 0 var(--sec); }
.hv-band { position: relative; height: clamp(400px, 60vw, 680px); overflow: hidden; margin-bottom: 48px; background: var(--navy-deep); }
.hv-band picture, .hv-band img { display: block; width: 100%; height: 100%; }
.hv-band img { object-fit: cover; object-position: 60% 62%; }
.hv-band--dispatch img { object-position: 50% 55%; }
.hv-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(16, 38, 59, .95) 0%, rgba(16, 38, 59, .7) 34%, rgba(16, 38, 59, .15) 66%, transparent 82%); }
.hv-band__over { position: absolute; left: 0; right: 0; bottom: 34px; z-index: 1; }
.hv-band__title { font: 800 clamp(42px, 11vw, 120px)/.92 var(--f-head); letter-spacing: -.035em; color: #fff; max-width: 11em; }
.hv-band__title span { display: block; color: var(--hv-yellow); }
.hv-band .hv-eyebrow--dark::before { background: var(--hv-yellow); }
@media (min-width: 1024px) {
  .hv-band { margin-bottom: 88px; }
  .hv-band__over { bottom: 72px; }
  .hv-band::after { background: linear-gradient(0deg, rgba(16, 38, 59, .95) 0%, rgba(16, 38, 59, .72) 30%, rgba(16, 38, 59, .2) 62%, transparent 80%), linear-gradient(90deg, rgba(16, 38, 59, .55) 0%, transparent 60%); }
}
/* the yellow plan sits straight on the photo: no torn white edge into a picture */
.hv--niche .hv-plan::after { display: none; }

/* ---------- The quote page: the form is the docket you fill in ---------- */
.hv--quote .quote { padding-top: 36px; }
@media (min-width: 1024px) { .hv--quote .quote { padding-top: 64px; } }
.hv .quote__title { font-weight: 800; font-size: clamp(46px, 12vw, 104px); line-height: .92; letter-spacing: -.035em; margin-bottom: 22px; max-width: 10em; }
.hv .quote__lede { color: var(--ink); }
.hv .site-header__mail { color: var(--navy); font-weight: 700; text-decoration: underline; text-decoration-color: var(--hv-yellow); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.hv .form-card { position: relative; border: 2px solid var(--navy); border-radius: 14px; box-shadow: var(--hv-hard); padding-top: 30px; }
@media (min-width: 768px) { .hv .form-card { padding: 44px 44px 44px; } }
.hv .fs__title { font: 800 25px/1.1 var(--f-head); letter-spacing: -.025em; margin-bottom: 16px; }
.hv .fs { padding-bottom: 28px; border-bottom: 2px dashed var(--hv-rule); }
.hv .fs:last-of-type { border-bottom: 0; padding-bottom: 0; }
.hv .field__label, .hv .group__label { font-weight: 700; }
.hv .input, .hv .select, .hv .textarea { border: 2px solid #7F8E99; border-radius: 10px; }
.hv .input:hover, .hv .select:hover, .hv .textarea:hover { border-color: var(--navy); }
.hv .input:focus-visible, .hv .select:focus-visible, .hv .textarea:focus-visible { outline: 0; border-color: var(--navy); box-shadow: 0 0 0 4px var(--hv-yellow); }
.hv .input[aria-invalid="true"], .hv .select[aria-invalid="true"], .hv .textarea[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.hv .seg__opts { background: var(--hv-paper); border: 2px solid var(--navy); border-radius: 14px; }
.hv .seg__opt { border-radius: 10px; font-weight: 700; }
.hv .seg__opt:hover { background: var(--hv-yellow-soft); }
.hv .seg__opt:has(input:checked) { background: var(--hv-yellow); color: var(--navy); box-shadow: inset 0 0 0 2px var(--navy), 0 3px 0 var(--navy); }
.hv .seg__opt:has(input:focus-visible) { outline: 3px solid var(--navy); }
.hv .choice { border: 2px solid #A9B5BE; border-radius: 10px; }
.hv .choice input { accent-color: var(--navy); }
.hv .choice:hover { border-color: var(--navy); }
.hv .choice:has(input:checked) { border-color: var(--navy); background: var(--hv-yellow-soft); box-shadow: inset 4px 0 0 var(--hv-yellow); }
.hv .choice:has(input:focus-visible) { outline: 3px solid var(--navy); outline-offset: 2px; }
.hv .choice__t b { font-weight: 700; }
.hv .form-foot { border-top: 2px dashed var(--hv-rule); }
.hv .thanks__stamp { margin-bottom: 26px; font-size: 22px; }
.hv .thanks h2 { font-weight: 800; letter-spacing: -.03em; }
.hv .thanks__ref { background: var(--hv-paper); border: 2px dashed var(--navy); border-radius: 10px; }
.hv .thanks__ref span { font: 700 11px/1.2 var(--f-body); color: var(--muted); }
.hv .thanks a:not(.btn), .hv .form-msg a { color: var(--navy); font-weight: 700; }

/* What happens next: a carbon-copy docket, torn along the top */
.hv .aside-card {
  position: relative; background: #FFFDF7; color: var(--ink); border-radius: 4px 4px 10px 10px; padding: 0 20px 24px;
  box-shadow: 0 1px 0 var(--hv-rule), 0 30px 50px -30px rgba(16, 38, 59, .55);
}
.hv .aside-card::before { /* the perforation where it tore off the book */
  content: ""; position: absolute; left: 0; right: 0; top: -6px; height: 12px; z-index: 1;
  background: radial-gradient(circle at 8px 6px, var(--hv-paper) 3.6px, transparent 4.2px) 0 0 / 16px 12px repeat-x;
}
.hv .aside-card h2 {
  margin: 0 -20px 22px; padding: 22px 20px 16px; border-radius: 4px 4px 0 0; background: var(--navy); color: #fff;
  font: 800 26px/1.05 var(--f-head); letter-spacing: -.025em;
}
.hv .aside-card h3 { margin: 4px 0 8px; font: 700 12.5px/1.2 var(--f-body); letter-spacing: .12em; color: var(--navy); }
.hv .next { gap: 18px; margin-bottom: 28px; }
.hv .next li { padding-left: 50px; color: var(--ink); }
.hv .next li::before { top: -1px; width: 36px; height: 36px; border-radius: 8px; background: transparent; box-shadow: inset 0 0 0 2.5px var(--navy); color: var(--navy); font: 800 18px/1 var(--f-head); }
.hv .next b { color: var(--navy); font-weight: 700; }
.hv .pricelist { border-top: 3px solid var(--navy); }
.hv .pricelist li { border-bottom: 1.5px dashed var(--hv-rule); color: var(--navy); font-weight: 700; }
.hv .pricelist small { color: var(--muted); font-weight: 500; }
.hv .pricelist b { color: var(--navy); font: 800 19px/1 var(--f-head); letter-spacing: -.02em; padding: 3px 5px; border-radius: 3px; }
.hv .pricelist li:nth-child(2) b { background: var(--hv-yellow); }
@media (min-width: 768px) { .hv .aside-card { padding: 0 28px 28px; } .hv .aside-card h2 { margin: 0 -28px 24px; padding: 26px 28px 18px; } }

/* The promises, stamped */
.hv-qpromises { margin-top: 26px; padding: 18px 20px 20px; background: #fff; border: 2px dashed var(--navy); border-radius: 12px; }
.hv-qpromises__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; font: 800 19px/1.1 var(--f-head); letter-spacing: -.02em; color: var(--navy); }
.hv .aside-promises { margin: 0; padding: 0; background: none; border-radius: 0; gap: 10px; }
.hv .aside-promises li { color: var(--ink); }
.hv .aside-mail a { color: var(--navy); font-weight: 700; }

/* ---------- 404: a page check that doesn't balance ---------- */
.hv--lost .lost { padding: 40px 0 104px; }
@media (min-width: 1024px) { .hv--lost .lost { padding: 88px 0 140px; } }
.hv .lost__title { font-size: clamp(48px, 12vw, 104px); margin-bottom: 22px; }
.hv .lost__lede { color: var(--ink); }
.hv .lost .hv-tag { margin-bottom: 22px; }
.hv .ledger404 {
  background: #FFFDF7; border-radius: 4px; padding: 0 18px 34px; overflow: hidden; transform: rotate(-1.4deg);
  box-shadow: 0 1px 0 var(--hv-rule), 0 40px 70px -40px rgba(16, 38, 59, .6);
  -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 20px 100%;
  mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 20px 100%;
}
.ledger404__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 -18px 14px; padding: 16px 18px; background: var(--navy); color: #fff; font: 800 20px/1 var(--f-head); }
.ledger404__top span:last-child { font: 700 12.5px/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--hv-yellow); }
@media (min-width: 560px) { .hv .ledger404 { padding: 0 30px 40px; } .ledger404__top { margin: 0 -30px 18px; padding: 18px 30px; } }
.hv .ledger404__head { font: 700 11.5px/1.2 var(--f-body); color: var(--muted); }
.hv .ledger404__row { border-bottom: 1.5px dashed var(--hv-rule); }
.hv .ledger404__row > span:first-child { font-weight: 700; }
.hv a.ledger404__row:hover, .hv a.ledger404__row:focus-visible { background: var(--hv-yellow-soft); }
.hv .ledger404__ok { font-weight: 700; }
.hv .ledger404__row--miss .hv-stamp { font-size: 15px; background: #fff; }
@media (min-width: 560px) { .hv .ledger404__row--miss .hv-stamp { font-size: 18px; } }
.hv .ledger404__hand { color: var(--red); font-size: 27px; }

/* ---------- Fixes from the pages review (7 Oct 2026) ---------- */
/* A marked phrase in a big headline: its yellow sits under the line above, never over its descenders */
.hv-h1, .hv .quote__title { position: relative; z-index: 0; }
.hv-h1 .hv-mark { position: relative; z-index: -1; }
.hv .lost__title .hv-mark { white-space: nowrap; }
@media (min-width: 1024px) { .hv .lost__title { font-size: clamp(64px, 6.2vw, 92px); } }
/* Plumbing hero on a phone: the plumber clear of the price stamp */
@media (max-width: 559px) { .hv-hero--plumb .hv-hero__photo img { object-position: 84% 40%; } }
/* The quote page: "(optional)" in a fieldset title is a quiet note, not a second headline; the header link
   underlines only on hover */
.hv .fs__title .opt { font: 500 16px/1 var(--f-body); letter-spacing: 0; }
.hv .site-header__mail { text-decoration: none; }
.hv .site-header__mail:hover { text-decoration: underline; text-decoration-color: var(--hv-yellow); }
/* The guide photo's handwritten note needs its own room under the photo ("figure" margins are reset in .hv) */
.hv .hv-guide__photo { margin-bottom: 80px; }
@media (min-width: 1024px) { .hv .hv-guide__photo { margin-bottom: 76px; } .hv-team--row { margin-top: 56px; } }
/* Wholesale hero, desktop: the note sits on the racking, off his vest */
@media (min-width: 1024px) { .hv-hero--trade .hv-sticky { left: 5%; right: auto; bottom: 6%; } }

/* ---------- Fixes from the buyers' and pages reviews, round 2 (7 Oct 2026) ----------
   Scoped to /plumbing and /trading (.hv--niche) and the quote page (.hv--quote) unless a rule says otherwise:
   the homepage's look is not changed here. */

/* Words on a photo band: a navy chip under the eyebrow at every width, and on phones and tablets a taller
   photo with a scrim that stays dark as high as the words go (the sky and the ute were bright under them) */
.hv-value__over .hv-eyebrow--dark,
.hv--niche .hv-band__over .hv-eyebrow--dark { background: rgba(16, 38, 59, .9); padding: 6px 11px 6px 9px; border-radius: 4px; }
@media (max-width: 1023px) {
  .hv--niche .hv-value__photo { height: clamp(520px, 132vw, 640px); }
  .hv--niche .hv-band { height: clamp(500px, 128vw, 620px); }
  .hv--niche .hv-value__photo::after,
  .hv--niche .hv-band::after {
    background: linear-gradient(0deg, rgba(16, 38, 59, .97) 0%, rgba(16, 38, 59, .92) 40%, rgba(16, 38, 59, .82) 56%,
      rgba(16, 38, 59, .5) 72%, rgba(16, 38, 59, .16) 88%, transparent 100%);
  }
  .hv--niche .hv-value__title, .hv--niche .hv-band__title { text-shadow: 0 2px 18px rgba(10, 25, 40, .55); }
  .hv--niche .hv-value__title .hv-mark { text-shadow: none; }
}

/* The wall calendar keeps its story on a phone: done or shipped, due, today, and the month markers */
@media (max-width: 559px) {
  .hv .cal__grid > span { aspect-ratio: 1 / 1; }
  .hv .cal__grid em { display: block; font-size: 13.5px; bottom: 2px; }
  .hv .cal__grid small { display: block; margin-top: 1px; font-size: 8px; line-height: 1; letter-spacing: .04em; }
  .hv .d-x:has(small)::after { inset: 48% 10% 6% 44%; }
}
/* The circled start day: its word sits inside the circle, and a crossed day with a month name keeps the name clear */
.hv .d-job em, .hv .d-today em { left: 50%; bottom: 7px; transform: translateX(-50%) rotate(-4deg); }
@media (min-width: 560px) { .hv .d-job em, .hv .d-today em { bottom: 10px; } }
@media (max-width: 559px) { .hv .d-job small { display: none; } .hv .d-job em, .hv .d-today em { font-size: 12px; bottom: 8px; } }
@media (min-width: 560px) { .hv .d-x:has(small)::after { inset: 38% 10% 8% 38%; } }

/* What changes: the struck-out "before" lines are the "that's me" moment, so they show on phones too */
.hv--niche .hv-was { display: block; font: 500 15px/1.35 var(--f-body); letter-spacing: 0; color: var(--ink); text-decoration-thickness: 2px; }

/* Sharon P.'s card sells too: her line in white on the navy card */
.hv-person--lead em { color: rgba(255, 255, 255, .86); }
@media (max-width: 767px) { .hv--niche .hv-person--lead em { display: block; margin-top: 4px; font-size: 13px; line-height: 1.35; } }

/* The team on a phone: one swipe row instead of six stacked cards (the row scrolls, the page never does) */
@media (max-width: 559px) {
  .hv-team--row {
    display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
    margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1);
    padding: 4px var(--gutter) 18px; scroll-padding-left: var(--gutter);
  }
  .hv-team--row .hv-person { flex: 0 0 44%; scroll-snap-align: start; }
  .hv-team--row .hv-person--lead { flex-basis: 50%; display: block; padding: 6px 6px 12px; }
  .hv-team--row .hv-person--lead figcaption { padding: 8px 2px 0; }
  .hv-team--row .hv-person--lead b { font-size: 16px; }
  .hv-team--row .hv-person--bert { display: block; padding: 6px 6px 10px; }
  .hv-team--row .hv-person--bert figcaption { padding: 8px 2px 0; }
}
.hv-team--row:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; border-radius: 12px; }

/* Plumbing on a phone: the close-up of a plumber at work, his face clear of the price stamp, which moves down */
@media (max-width: 559px) {
  .hv-hero--plumb .hv-hero__photo img { object-position: 60% 40%; }
  .hv-hero--plumb .hv-pricestamp { top: auto; bottom: 14px; }
  .hv--niche .hv-guide__photo img[src*="plumber"] { object-position: 74% 50%; }
}

/* The invoice ticket on a phone: the PAID stamp clear of the job line */
@media (max-width: 559px) { .hv--niche .hv-ticket__stamp { top: auto; bottom: 40px; left: auto; right: 10px; font-size: 30px; transform: rotate(-14deg) scale(2); } .hv--niche .hv-ticket[data-state="3"] .hv-ticket__stamp { transform: rotate(-14deg) scale(1); } }

/* The quote page header from 1024 to 1199px: the email link drops its "Rather email?" so the nav never wraps */
.hv--quote .nav a { white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1199px) { .hv--quote .site-header__mail-k { display: none; } }

/* The quote page: three promises up top on phones (the aside with them comes after the form there) */
.qpills { margin: -4px 0 22px; }
@media (min-width: 1024px) { .qpills { display: none; } }
/* ...and the people who look after the books, so nobody fills in a form with nobody behind it */
.qteam { display: flex; align-items: center; gap: 14px; margin: 0 0 28px; max-width: 40em; }
.qteam__faces { display: flex; flex: none; padding-left: 8px; }
.qteam__faces img { width: 44px; height: 44px; margin-left: -8px; border-radius: 50%; object-fit: cover; border: 2px solid var(--hv-paper); background: var(--page-deep, #E8EEF2); }
.qteam p { font-size: 14.5px; line-height: 1.45; color: var(--ink); }
.qteam b { color: var(--navy); font-weight: 700; }
@media (max-width: 419px) { .qteam { align-items: flex-start; } .qteam__faces img { width: 38px; height: 38px; } }
.hv-qpromises__foot { margin-top: 12px; padding-top: 12px; border-top: 1.5px dashed var(--hv-rule); font-size: 14px; color: var(--muted); }

/* The quote form's "your month" questions as tap pills (quote.js turns each select into a row of radios) */
.field--picks .field__label { display: block; margin-bottom: 10px; }
.pickgroup { display: flex; flex-wrap: wrap; gap: 8px; border-radius: 12px; }
.pick { position: relative; display: inline-flex; cursor: pointer; }
.pick input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.pick span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 2px solid #A9B5BE; border-radius: 999px;
  background: #fff; font: 600 16px/1.2 var(--f-body); color: var(--navy); transition: border-color .15s, background .15s;
}
.pick:hover span { border-color: var(--navy); }
.pick input:checked + span { background: var(--hv-yellow); border-color: var(--navy); box-shadow: 0 3px 0 var(--navy); }
.pick input:focus-visible + span { outline: 3px solid var(--navy); outline-offset: 2px; }
.pickgroup[aria-invalid="true"] .pick span { border-color: var(--red); }
.hv--quote .row:has(.field--picks) { grid-template-columns: 1fr; }
@media (prefers-reduced-motion: reduce) { .pick span { transition: none; } }

/* The niche problem band opens on the wall calendar, with no kitchen photo above it to tuck under */
.hv--niche .hv-problem__grid { margin-top: 0; padding-top: var(--sec); }
/* The PAID stamp on the ticket, desktop: a little further right, clear of the amount */
@media (min-width: 1024px) { .hv--niche .hv-ticket__stamp { left: 80%; } }
/* How it works on a phone: the ute or the loading dock in full, then the headline on navy beneath it, so the
   words never sit on the white ute body or the yellow forklift */
@media (max-width: 559px) {
  .hv--niche .hv-band { height: auto; }
  .hv--niche .hv-band picture { height: 300px; }
  .hv--niche .hv-band::after { inset: 0 0 auto 0; height: 300px; background: linear-gradient(180deg, transparent 58%, var(--navy-deep) 100%); }
  .hv--niche .hv-band__over { position: relative; bottom: auto; margin-top: -30px; padding-bottom: 44px; }
  .hv--niche .hv-band__title { text-shadow: none; }
}
