/* ==========================================================================
   Chandler Mobile Auto Glass — "Carbon Copy" (2026-10-24)
   The page is a mobile technician's triplicate service order: white bond paper,
   canary + rose carbon sheets, black uniform band, the logo's red as stamp ink.
   Tone: crisp / methodical / warm.  Type: Archivo (display, variable width),
   Instrument Sans (body), Courier Prime (typed-in values).
   ========================================================================== */

:root{
  --paper:#fbfaf6; --paper-2:#f3f1ea; --white:#ffffff;
  --canary:#fcf1b8; --canary-2:#f6e48a; --rose:#fbe2dd; --rose-2:#f2c4bc;
  --ink:#161616; --ink-2:#232323; --ink-soft:#4a4946; --ink-mute:#66645f;
  --red:#c8161d; --red-deep:#a5121a; --red-hi:#ff3131; --red-tint:#ff8a80;
  --on-ink:#fbfaf6; --on-ink-soft:#b9b6ae;
  --line:rgba(22,22,22,.14); --line-2:rgba(22,22,22,.28); --line-ink:rgba(251,250,246,.14);
  --ease:cubic-bezier(.16,1,.3,1); --spring:cubic-bezier(.34,1.56,.64,1);
  --f-disp:'Archivo',ui-sans-serif,sans-serif; --f-body:'Instrument Sans',ui-sans-serif,sans-serif;
  --f-type:'Courier Prime','Courier New',monospace;
  --wrap:1240px; --gut:clamp(16px,4vw,40px); --bar-h:84px;
  --sec:clamp(72px,10vw,128px);
}

/* ---------- base ---------- */
html{scroll-behavior:smooth;overflow-x:clip}
body.cm{margin:0;background:var(--paper);color:var(--ink-soft);font:400 17px/1.65 var(--f-body);
  -webkit-font-smoothing:antialiased;overflow-x:clip;text-rendering:optimizeLegibility}
:where(.cm) *,:where(.cm) *::before,:where(.cm) *::after{box-sizing:border-box}
:where(.cm) img{max-width:100%;height:auto;display:block}
:where(.cm) a{color:inherit}
:where(.cm) p{margin:0 0 1em}
:where(.cm) :is(h1,h2,h3){color:var(--ink);margin:0}
:where(.cm) strong{color:var(--ink);font-weight:650}
.cm ::selection{background:var(--red);color:#fff}
a[href^="tel:"]{white-space:nowrap}
a.web{white-space:nowrap}
.cm-wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.cm section[id]{scroll-margin-top:calc(var(--bar-h) + 20px)}
.cm-skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--ink);color:#fff;padding:10px 14px}
.cm-skip:focus{left:8px}
.cm :focus-visible{outline:3px solid var(--red);outline-offset:3px}

/* grain: the bond paper */
body.cm::before{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.45;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E")}

/* ---------- type ---------- */
.cm-h1{font:800 clamp(32px,3.9vw,52px)/1.04 var(--f-disp);font-stretch:108%;letter-spacing:-.025em;text-wrap:balance}
.cm-h2{font:800 clamp(28px,3.3vw,44px)/1.06 var(--f-disp);font-stretch:104%;letter-spacing:-.022em;margin-bottom:.55em!important;text-wrap:balance}
:where(.cm) h3{font:750 20px/1.2 var(--f-disp);font-stretch:100%;letter-spacing:-.01em}
.cm-kicker{display:flex;align-items:center;gap:12px;margin:0 0 18px!important;
  font:700 12.5px/1 var(--f-disp);font-stretch:75%;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.cm-kicker::before{content:"";width:28px;height:2px;background:currentColor}
.cm-kicker--dark{color:var(--red-tint)}
.cm-label{font:700 11px/1 var(--f-disp);font-stretch:75%;letter-spacing:.18em;text-transform:uppercase}

/* ---------- buttons + links ---------- */
.cm-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;overflow:hidden;isolation:isolate;
  min-height:52px;padding:14px 24px;border-radius:3px;border:2px solid transparent;text-decoration:none;
  font:700 16px/1.1 var(--f-disp);font-stretch:92%;letter-spacing:.01em;cursor:pointer;
  transition:color .25s var(--ease),border-color .25s var(--ease),transform .4s var(--ease)}
.cm-btn strong{color:inherit;font-weight:inherit}
.cm-btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:translateX(-101%);transition:transform .5s var(--ease)}
.cm-btn--red{background:var(--red);color:#fff}
.cm-btn--red::before{background:var(--ink)}
.cm-btn--ink{background:var(--ink);color:#fff}
.cm-btn--ink::before{background:var(--red)}
.cm-btn--line{border-color:var(--ink);color:var(--ink);background:transparent}
.cm-btn--line::before{background:var(--ink)}
@media (hover:hover){
  .cm-btn:hover::before{transform:none}
  .cm-btn--line:hover{color:#fff}
  .cm-btn:hover{transform:translateY(-2px)}
}
.cm-btn:focus-visible::before{transform:none}
.cm-btn--line:focus-visible{color:#fff}
.cm-btn[disabled]{opacity:.55;cursor:default}
.cm-ico{width:18px;height:18px;fill:currentColor;flex:none}
.cm-acts{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

.cm-go{display:inline-flex;align-items:center;gap:8px;color:var(--red);text-decoration:none;
  font:700 15.5px/1.3 var(--f-disp);font-stretch:95%}
.cm-go strong{color:inherit;font-weight:inherit}
.cm-go svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;transition:transform .4s var(--ease)}
.cm-go{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .45s var(--ease)}
@media (hover:hover){.cm-go:hover{background-size:100% 2px}.cm-go:hover svg{transform:translateX(5px)}}
.cm-go:focus-visible{background-size:100% 2px}

/* ---------- utility strip + bar ---------- */
.cm-strip{background:var(--ink);color:var(--on-ink-soft);font-size:13.5px}
.cm-strip__in{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:38px}
.cm-strip p{margin:0}
.cm-strip .cm-label{color:var(--red-tint);margin-right:6px}
.cm-strip__call{display:flex;gap:18px;align-items:center}
.cm-strip a{color:var(--on-ink);text-decoration:none;font-weight:600}
.cm-strip__quote{border-bottom:1px solid var(--red-tint)}
@media (hover:hover){.cm-strip a:hover{color:var(--red-tint)}}

.cm-bar{position:sticky;top:0;z-index:80;background:rgba(251,250,246,.94);backdrop-filter:saturate(1.2) blur(10px);
  -webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.cm-bar__in{display:flex;align-items:center;gap:24px;min-height:var(--bar-h)}
.cm-brand{flex:none;display:block}
.cm-brand img{height:68px;width:auto}
.cm-nav{display:flex;align-items:center;gap:22px;margin-left:auto}
.cm-nav__list{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.cm-nav__list>li{position:relative}
.cm-nav__link{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border:0;background:none;cursor:pointer;
  color:var(--ink);text-decoration:none;font:650 15.5px/1 var(--f-disp);font-stretch:94%;
  background-image:linear-gradient(var(--red),var(--red));background-size:0 2px;background-position:12px calc(100% - 4px);
  background-repeat:no-repeat;transition:background-size .4s var(--ease),color .2s var(--ease)}
.cm-nav__link.is-on{background-size:calc(100% - 24px) 2px}
@media (hover:hover){.cm-nav__link:hover{background-size:calc(100% - 24px) 2px}}
.cm-chev{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);
  transition:transform .35s var(--ease)}
.cm-dd__btn[aria-expanded="true"] .cm-chev{transform:translateY(1px) rotate(-135deg)}
.cm-dd__menu{position:absolute;top:calc(100% + 10px);left:0;min-width:270px;max-height:min(68vh,470px);overflow-y:auto;overscroll-behavior:contain;
  list-style:none;margin:0;padding:8px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--red);
  box-shadow:0 22px 50px -18px rgba(22,22,22,.35);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .25s var(--ease),transform .4s var(--ease),visibility 0s .4s;scrollbar-width:thin}
.cm-dd__menu--wide{min-width:400px}
.cm-dd.is-open>.cm-dd__menu{opacity:1;visibility:visible;transform:none;transition:opacity .25s var(--ease),transform .4s var(--ease)}
.cm-dd__menu a{display:block;padding:9px 12px;color:var(--ink);text-decoration:none;font-size:15px;line-height:1.35;border-radius:2px;
  transition:background-color .2s var(--ease),padding-left .35s var(--ease)}
@media (hover:hover){.cm-dd__menu a:hover{background:var(--paper-2);padding-left:18px}}
.cm-dd__menu a:focus-visible{background:var(--paper-2)}
.cm-tag{display:inline-block;margin-left:6px;padding:3px 6px 2px;border:1px solid var(--red);color:var(--red);vertical-align:2px;
  font:700 10px/1 var(--f-disp);font-stretch:75%;letter-spacing:.14em;text-transform:uppercase}
.cm-tag--dark{border-color:var(--red-tint);color:var(--red-tint)}
.cm-nav__call{min-height:46px;padding:11px 18px;font-size:15px}
.cm-bar__call{display:none;align-items:center;gap:8px;margin-left:auto;padding:10px 14px;min-height:44px;border-radius:3px;
  background:var(--red);color:#fff;text-decoration:none;font:700 15px/1 var(--f-disp);font-stretch:92%;white-space:nowrap}
.cm-bar__call .cm-ico{width:16px;height:16px}
.cm-burger{display:none;margin-left:auto;align-items:center;gap:10px;padding:10px 12px;background:none;border:2px solid var(--ink);border-radius:3px;
  color:var(--ink);font:700 14px/1 var(--f-disp);font-stretch:85%;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.cm-burger__lines,.cm-burger__lines::before,.cm-burger__lines::after{display:block;width:20px;height:2px;background:currentColor;
  transition:transform .35s var(--ease),background-color .2s}
.cm-burger__lines{position:relative}
.cm-burger__lines::before,.cm-burger__lines::after{content:"";position:absolute;left:0}
.cm-burger__lines::before{top:-6px}.cm-burger__lines::after{top:6px}
.cm-burger[aria-expanded="true"] .cm-burger__lines{background:transparent}
.cm-burger[aria-expanded="true"] .cm-burger__lines::before{transform:translateY(6px) rotate(45deg)}
.cm-burger[aria-expanded="true"] .cm-burger__lines::after{transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1180px){
  .cm-nav__link{padding:10px 9px;font-size:15px}
  .cm-nav{gap:14px}
}
@media (max-width:1080px){
  :root{--bar-h:74px}
  .cm-brand img{height:54px}
  /* backdrop-filter makes the bar the containing block of the fixed drawer (it would be squeezed
     into the bar's own height), so below the desktop nav the bar is solid instead of blurred */
  .cm-bar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}
  .cm-bar__in{gap:12px}
  .cm-bar__call{display:inline-flex}
  .cm-burger{display:inline-flex;margin-left:0;min-height:44px}
  /* Phones: the open menu IS the page. Main + footer leave the layout and the menu (moved to the end of
     <body> by site.js) scrolls with the browser's own page scroll: no nested scroll box, no scroll lock,
     nothing for iOS Safari to mis-route a swipe to (2026-10-24, after two iOS scroll failures). */
  .cm-nav{display:none;position:relative;margin:0;padding:12px var(--gut) calc(40px + env(safe-area-inset-bottom));
    min-height:calc(100vh - var(--bar-h));background:var(--paper);font-family:var(--f-body)}
  .cm-nav.is-open{display:block;animation:cmNavIn .4s var(--ease) both}
  @keyframes cmNavIn{from{opacity:0;transform:translateY(-8px)}}
  .cm-nav__list{display:block}
  .cm-nav__list>li{border-bottom:1px solid var(--line)}
  .cm-nav__link{width:100%;justify-content:space-between;padding:17px 2px;font-size:19px;background-image:none}
  .cm-nav__link.is-on{color:var(--red)}
  .cm-dd__menu,.cm-dd__menu--wide{position:static;min-width:0;max-height:none;overflow:visible;overscroll-behavior:auto;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border:0;border-left:2px solid var(--red);margin:0 0 14px;padding:0 0 0 12px;display:none;background:transparent}
  .cm-dd.is-open>.cm-dd__menu{display:block}
  .cm-dd__menu a{padding:11px 4px;font-size:16px}
  .cm-nav__call{margin-top:22px;width:100%;min-height:56px;font-size:17px}
  html.cm-lock main,html.cm-lock .cm-foot,html.cm-lock .cm-strip{display:none}
  /* the hero print's 3D tilt is desktop-only (iOS hit-tests 3D layers oddly) */
  .cm-hero__photo{perspective:none}
  .cm-tilt{transform-style:flat;will-change:auto}
  .cm-nav .cm-nav__list{margin:0;padding:0;list-style:none}
}
@media (max-width:420px){
  .cm-bar__call{padding:10px 10px;font-size:14px;gap:6px}
  .cm-brand img{height:46px!important}
}
@media (max-width:640px){
  .cm-strip__hours{display:none}
  .cm-strip__in{justify-content:center}
  .cm-brand img{height:48px}
  .cm-burger__txt{display:none}
}

/* ---------- shared print furniture ---------- */
.cm-perf{height:16px;margin-top:-8px;position:relative;z-index:2;
  background-image:radial-gradient(circle at 8px 8px,var(--paper) 3.6px,transparent 4.2px);background-size:16px 16px;background-repeat:repeat-x}
.cm-perf::after{content:"";position:absolute;left:0;right:0;top:7px;border-top:1px dashed var(--line-2)}
.cm-perf--light::after{border-color:var(--line-ink)}

.cm-photo{position:relative;margin:0;background:var(--white);padding:10px 10px 0;border:1px solid var(--line);
  box-shadow:0 30px 60px -34px rgba(22,22,22,.45)}
.cm-photo img{width:100%;aspect-ratio:1/1;object-fit:cover}
.cm-photo figcaption{display:flex;gap:10px;align-items:baseline;padding:10px 2px 11px;color:var(--ink-mute);font:400 13.5px/1.35 var(--f-type)}
.cm-photo figcaption span{font:700 10.5px/1 var(--f-disp);font-stretch:75%;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.cm-clip{position:absolute;top:-14px;left:50%;width:74px;height:24px;margin-left:-37px;z-index:3;border-radius:4px 4px 2px 2px;
  background:linear-gradient(180deg,#2c2c2c,#111);box-shadow:0 4px 8px -3px rgba(0,0,0,.5)}
.cm-clip::before{content:"";position:absolute;left:14px;right:14px;top:-15px;height:20px;border:3px solid #8a8a86;border-bottom:0;border-radius:10px 10px 0 0}

.cm-checks{list-style:none;margin:0 0 1.2em;padding:0;display:grid;gap:10px}
.cm-checks li{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start;color:var(--ink);font-weight:500;line-height:1.45}
.cm-tick{width:26px;height:26px;padding:3px;border:2px solid var(--ink);background:var(--white);border-radius:2px;
  fill:none;stroke:var(--red);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.cm-tick path{stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset .6s var(--ease)}
html:not(.js) .cm-tick path,.in .cm-tick path{stroke-dashoffset:0}
.cm-checks li:nth-child(2) .cm-tick path{transition-delay:.12s}
.cm-checks li:nth-child(3) .cm-tick path{transition-delay:.24s}
.cm-checks li:nth-child(4) .cm-tick path{transition-delay:.36s}
.cm-checks li:nth-child(5) .cm-tick path{transition-delay:.48s}
.cm-checks li:nth-child(6) .cm-tick path{transition-delay:.6s}
.cm-list__h{margin-bottom:12px!important}

/* reveal */
.js .ro{opacity:0;transform:translateY(28px);transition:opacity .95s var(--ease),transform .95s var(--ease)}
.js .ro.in{opacity:1;transform:none}
.ro.d1{transition-delay:.09s}.ro.d2{transition-delay:.18s}

/* ---------- 01 hero ---------- */
.cm-hero{padding:clamp(40px,6vw,84px) 0 clamp(64px,8vw,104px)}
.cm-hero__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(36px,5vw,80px);align-items:center}
.cm-hero__copy{order:1}
.cm-hero__photo{order:2;position:relative;padding:14px 0 30px}
.cm-photo--hero{transform:rotate(1.4deg);animation:cmRise 1s var(--ease) .25s both}
.cm-order{display:grid;grid-template-columns:auto 1fr;margin:0 0 28px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line-2);
  animation:cmFade .8s var(--ease) both}
.cm-order>div{padding:11px 18px 10px 0}
.cm-order>div+div{padding-left:18px;border-left:1px solid var(--line-2)}
.cm-order dt{font:700 10.5px/1 var(--f-disp);font-stretch:75%;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:7px}
.cm-order dd{margin:0;font:700 17px/1.2 var(--f-type);color:var(--ink)}
.cm-order dd a{text-decoration:none}
.cm-h1{animation:cmRise 1s var(--ease) .08s both}
.cm-lede{margin:26px 0 30px!important;font-size:clamp(17px,1.35vw,19px);max-width:56ch;animation:cmRise 1s var(--ease) .2s both}
.cm-hero .cm-acts{animation:cmRise 1s var(--ease) .32s both}

/* the stamp */
.cm-stamp{position:absolute;left:-30px;bottom:96px;z-index:4;display:flex;flex-direction:column;align-items:center;
  padding:12px 18px 10px;border:4px solid var(--red-hi);box-shadow:inset 0 0 0 3px rgba(255,255,255,0),inset 0 0 0 5px var(--paper),inset 0 0 0 7px var(--red-hi);
  color:var(--red-hi);background:rgba(251,250,246,.9);transform:rotate(-9deg);opacity:.93;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.75'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.75'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  -webkit-mask-size:300px 140px;mask-size:300px 140px;
  animation:cmStamp .6s var(--spring) .95s both;pointer-events:none}
.cm-stamp__big{font:900 30px/1 var(--f-disp);font-stretch:72%;letter-spacing:.06em;text-transform:uppercase}
.cm-stamp__sm{margin-top:5px;font:700 12px/1 var(--f-disp);font-stretch:80%;letter-spacing:.26em;text-transform:uppercase}

@keyframes cmRise{from{opacity:0;transform:translateY(28px)}}
@keyframes cmFade{from{opacity:0}}
@keyframes cmStamp{0%{opacity:0;transform:scale(1.9) rotate(-2deg)}70%{opacity:.93}100%{opacity:.93;transform:scale(1) rotate(-9deg)}}
.cm-photo--hero{animation-name:cmRiseTilt}
@keyframes cmRiseTilt{from{opacity:0;transform:translateY(28px) rotate(1.4deg)}to{opacity:1;transform:rotate(1.4deg)}}

/* ---------- 02 intake ---------- */
.cm-intake{position:relative;background:var(--paper-2);padding:0 0 var(--sec)}
.cm-intake__grid{display:grid;grid-template-columns:1fr minmax(0,520px);gap:clamp(36px,5vw,80px);align-items:start;padding-top:calc(var(--sec) - 16px)}
.cm-big{font:500 clamp(19px,1.7vw,23px)/1.55 var(--f-body);color:var(--ink);margin-bottom:28px!important;max-width:40ch}
.cm-calltext{margin-top:26px!important;padding-top:20px;border-top:1px dashed var(--line-2);font-size:18px}
.cm-calltext strong{font-weight:700}
.cm-calltext a{color:var(--red);text-decoration-thickness:2px;text-underline-offset:4px}

/* the form sheet: canary carbon copy */
.cm-sheet{position:relative;background:var(--canary);padding:30px clamp(20px,3vw,34px) 24px;border:1px solid rgba(22,22,22,.12);
  box-shadow:0 1px 0 rgba(22,22,22,.06),0 34px 60px -38px rgba(22,22,22,.5)}
.cm-sheetwrap{position:relative;isolation:isolate}
.cm-sheetwrap::before{content:"";position:absolute;left:10px;right:-10px;top:10px;bottom:-10px;z-index:-1;background:var(--rose);border:1px solid rgba(22,22,22,.1);transform:rotate(.8deg)}
.cm-sheet::after{content:"";position:absolute;left:0;right:0;top:-8px;height:16px;
  background-image:radial-gradient(circle at 8px 8px,var(--paper-2) 3.6px,transparent 4.2px);background-size:16px 16px;background-repeat:repeat-x}
.cm-sheet__head{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:18px}
.cm-sheet__kick{display:flex;justify-content:space-between;gap:12px;margin:0 0 8px!important;
  font:700 11px/1 var(--f-disp);font-stretch:75%;letter-spacing:.2em;text-transform:uppercase;color:var(--red-deep)}
.cm-sheet__copy{color:var(--ink-mute)}
.cm-sheet__title{margin:0!important;font:800 clamp(24px,2.4vw,30px)/1.1 var(--f-disp);font-stretch:104%;letter-spacing:-.02em;color:var(--ink)}
.cm-form__row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.cm-fld{display:block;margin-bottom:14px}
.cm-fld__l{display:block;margin-bottom:4px;font:700 11px/1.2 var(--f-disp);font-stretch:75%;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-soft);
  transition:color .2s var(--ease)}
.cm-fld:focus-within .cm-fld__l{color:var(--red-deep)}
.cm-fld input,.cm-fld textarea{width:100%;border:0;border-bottom:1.5px solid var(--ink);border-radius:0;background:transparent;padding:7px 2px 6px;
  color:var(--ink);font:700 18px/1.35 var(--f-type);transition:border-color .2s var(--ease),background-color .2s var(--ease)}
.cm-fld textarea{resize:vertical;min-height:84px;background-image:repeating-linear-gradient(transparent 0 30px,rgba(22,22,22,.18) 30px 31px);line-height:31px;padding-top:0}
.cm-fld input:focus,.cm-fld textarea:focus{outline:none;border-bottom-color:var(--red);background-color:rgba(255,255,255,.4)}
.cm-form__check{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin-top:6px}
.cm-form__check .cm-fld{margin:0}
.cm-fld--cap .qf-q{color:var(--ink);font:700 15px/1 var(--f-type);letter-spacing:0;text-transform:none;white-space:nowrap}
.cm-form .qf-go{min-width:170px}
.cm-form .qf-msg{margin:12px 0 0!important;font-size:15px;color:var(--ink)}
.cm-form .qf-msg:empty{display:none}
.cm-form .qf-msg.err{color:var(--red-deep);font-weight:600}
.cm-form .qf-msg.ok{color:var(--ink);font-weight:700}
.cm-form .qf-done{padding:26px 0 8px;font:700 19px/1.45 var(--f-body);color:var(--ink)}
.qf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cm-sheet__alt{margin:16px 0 0!important;padding-top:12px;border-top:1px dashed rgba(22,22,22,.3);font-size:15px;color:var(--ink-soft)}
.cm-sheet__alt a{color:var(--ink);font-weight:700}

/* ---------- 03 why: the inverted band ---------- */
.cm-why{position:relative;background:var(--ink);color:var(--on-ink-soft);padding:var(--sec) 0;overflow:clip}
.cm-why::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(-45deg,rgba(251,250,246,.025) 0 1px,transparent 1px 11px),
    radial-gradient(min(620px,90vw) 420px at 100% 0,rgba(255,49,49,.12),transparent 70%)}
.cm-why .cm-wrap{position:relative}
.cm-why .cm-h2,.cm-why strong{color:var(--on-ink)}
.cm-why__head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.cm-why__head .cm-h2{margin:0!important;max-width:14ch}
.cm-why__lead p:first-child{color:var(--on-ink);font-size:19px}
.cm-why__years{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin:0!important;padding-top:18px;border-top:1px solid var(--line-ink)}
.cm-why__num{font:900 76px/.8 var(--f-disp);font-stretch:70%;color:var(--red-hi);letter-spacing:-.02em}
.cm-why__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-ink);counter-reset:why}
.cm-why__list li{position:relative;padding:30px 28px 32px 0;border-bottom:1px solid var(--line-ink);counter-increment:why;font-size:16px;line-height:1.6}
.cm-why__list li:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid var(--line-ink)}
.cm-why__list li::before{content:counter(why,decimal-leading-zero);display:block;margin-bottom:16px;font:700 15px/1 var(--f-type);color:var(--red-tint)}
.cm-why__list strong{display:block;margin-bottom:6px;font:750 19px/1.25 var(--f-disp);letter-spacing:-.01em}
.cm-badges{list-style:none;margin:clamp(40px,5vw,60px) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.cm-badges li{display:flex;align-items:center;justify-content:center;height:82px;padding:10px 18px;background:#fff;border-radius:3px}
.cm-badges img{max-height:62px;width:auto}

/* ---------- 04 services ---------- */
.cm-services{padding:var(--sec) 0}
.cm-services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
/* the intro cell stretches to the first ticket's height; its content stays pinned while that ticket scrolls past */
.cm-services__intro{grid-column:span 2}
.cm-services__pin{position:sticky;top:calc(var(--bar-h) + 32px);padding:0 0 10px;max-width:62ch}
.cm-ticket{position:relative;isolation:isolate;display:flex;flex-direction:column;transition:transform .5s var(--ease)}
.cm-ticket__paper{position:relative;display:flex;flex-direction:column;flex:1;background:var(--white);border:1px solid var(--line);
  box-shadow:0 1px 0 rgba(22,22,22,.04);transition:box-shadow .5s var(--ease)}
.cm-ticket__stub{position:relative;display:flex;justify-content:space-between;align-items:center;padding:11px 16px;
  border-bottom:1.5px dashed var(--line-2);font:700 13.5px/1 var(--f-type);color:var(--red)}
.cm-ticket__stub::before,.cm-ticket__stub::after{content:"";position:absolute;bottom:-8px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:1px solid var(--line)}
.cm-ticket__stub::before{left:-9px;clip-path:inset(0 0 0 50%)}
.cm-ticket__stub::after{right:-9px;clip-path:inset(0 50% 0 0)}
.cm-ticket__img{overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);margin:12px 12px 0}
.cm-ticket__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.cm-ticket__img--draw{display:flex;align-items:center;justify-content:center;background-color:var(--paper-2);
  background-image:repeating-linear-gradient(0deg,transparent 0 23px,rgba(22,22,22,.07) 23px 24px),
    repeating-linear-gradient(90deg,transparent 0 23px,rgba(22,22,22,.07) 23px 24px)}
.cm-ticket__img--draw svg{width:62%;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.cm-ticket__img--draw svg path:last-child{stroke:var(--red)}
.cm-ticket__body{display:flex;flex-direction:column;flex:1;padding:20px 20px 22px}
.cm-ticket__body h3{margin-bottom:10px}
.cm-ticket__body p{font-size:16px;line-height:1.6;flex:1}
.cm-ticket .cm-go{align-self:flex-start}
@media (hover:hover){
  .cm-ticket:hover{transform:translateY(-6px)}
  .cm-ticket:hover .cm-ticket__paper{box-shadow:0 28px 50px -30px rgba(22,22,22,.45)}
  .cm-ticket:hover .cm-ticket__img img{transform:scale(1.045)}
}

/* ---------- 05 mobile ---------- */
.cm-mobile{background:var(--paper-2);padding:var(--sec) 0;border-top:1px solid var(--line)}
.cm-mobile__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,96px);align-items:start}
.cm-photo--tilt{transform:rotate(-1.6deg);position:sticky;top:calc(var(--bar-h) + 40px)}
.js .cm-photo--tilt.ro{transform:translateY(28px) rotate(-1.6deg)}
.js .cm-photo--tilt.ro.in{transform:rotate(-1.6deg)}
.cm-list{margin:28px 0 26px;padding:24px 26px 12px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--ink)}
.cm-checks--boxed li{padding-bottom:10px;border-bottom:1px dashed var(--line)}
.cm-checks--boxed li:last-child{border-bottom:0}

/* ---------- 06 cost: the rate card ---------- */
.cm-cost{padding:var(--sec) 0}
.cm-cost__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,96px);align-items:center}
.cm-rate{position:relative;background:var(--canary);padding:26px clamp(20px,3vw,34px) 24px;border:1px solid rgba(22,22,22,.12);
  box-shadow:0 34px 60px -40px rgba(22,22,22,.5)}
.cm-rate__head{display:flex;justify-content:space-between;margin:0 0 6px!important;padding-bottom:12px;border-bottom:2px solid var(--ink);
  font:700 11px/1 var(--f-disp);font-stretch:75%;letter-spacing:.2em;text-transform:uppercase;color:var(--red-deep)}
.cm-rate__table{width:100%;border-collapse:collapse;margin-bottom:18px}
.cm-rate__table th{padding:12px 0 8px;text-align:left;font:700 11px/1 var(--f-disp);font-stretch:75%;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.cm-rate__table th:last-child,.cm-rate__table td:last-child{text-align:right}
.cm-rate__table td{padding:15px 0;border-top:1px solid rgba(22,22,22,.18);color:var(--ink);font-weight:600;font-size:16.5px;vertical-align:baseline}
.cm-rate__table td:last-child{padding-left:16px;font:700 18px/1.3 var(--f-type);white-space:nowrap}
.cm-rate__foot{margin:0!important;padding-top:16px;border-top:2px solid var(--ink);font-size:16px;color:var(--ink-soft)}
.cm-rate__foot a{color:var(--ink);font-weight:700}

/* ---------- 07 insurance: the rose copy ---------- */
.cm-ins{padding:0 0 var(--sec)}
.cm-ins__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:start;padding-top:clamp(56px,7vw,88px);border-top:1px solid var(--line)}
.cm-rose{background:var(--rose);padding:28px clamp(20px,3vw,34px) 26px;border:1px solid rgba(22,22,22,.1);border-top:3px solid var(--red)}
.cm-rose__call{font-weight:600;color:var(--ink)}
.cm-ins__copy .cm-checks{margin-top:4px}
.cm-rose p:first-child{color:var(--ink);font-size:18px}
.cm-rose .cm-acts{gap:18px 26px;margin-top:6px}

/* ---------- 08 steps: tear-off stubs ---------- */
.cm-steps{background:var(--ink-2);background:var(--paper-2);padding:var(--sec) 0;border-top:1px solid var(--line)}
.cm-steps__head{max-width:640px;margin-bottom:clamp(36px,4vw,54px)}
.cm-stubs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}
.cm-stub{position:relative;padding:28px 30px 30px;background:var(--white);border:1px solid var(--line)}
.cm-stub+.cm-stub{border-left:2px dashed var(--line-2)}
.cm-stub+.cm-stub::before,.cm-stub+.cm-stub::after{content:"";position:absolute;left:-10px;width:18px;height:18px;border-radius:50%;background:var(--paper-2)}
.cm-stub+.cm-stub::before{top:-10px}.cm-stub+.cm-stub::after{bottom:-10px}
.cm-stub__no{display:block;margin-bottom:20px;font:700 60px/.9 var(--f-type);color:var(--red);letter-spacing:-.04em}
.cm-stub p{margin:0!important;font-size:16.5px}
.cm-stub strong{display:block;margin-bottom:6px;font:750 20px/1.2 var(--f-disp)}

/* ---------- 09 reviews ---------- */
.cm-reviews{padding:var(--sec) 0}
.cm-reviews__head{margin-bottom:clamp(30px,4vw,48px)}
.cm-reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:start}
.cm-review{margin:0;padding:26px 26px 28px;background:var(--white);border:1px solid var(--line);position:relative}
.cm-review:nth-child(2){margin-top:34px}
.cm-review::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px;
  background:linear-gradient(-45deg,transparent 6px,var(--white) 0) 0 0/12px 8px,linear-gradient(45deg,transparent 6px,var(--white) 0) 0 0/12px 8px;
  filter:drop-shadow(0 1px 0 rgba(22,22,22,.14))}
.cm-review h3{font-size:18px;display:flex;flex-direction:column;gap:10px}
.cm-stars{color:var(--red);font-size:17px;letter-spacing:.06em}
.cm-review h3 a{color:var(--ink);text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:4px}
.cm-review blockquote{margin:16px 0 0;padding:16px 0 0;border-top:1px dashed var(--line-2)}
.cm-review blockquote p{margin:0;font:400 18px/1.5 var(--f-type);color:var(--ink)}

/* ---------- 10 areas ---------- */
.cm-areas{background:var(--paper-2);padding:var(--sec) 0;border-top:1px solid var(--line)}
.cm-areas__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,96px);align-items:start}
.cm-area{padding:22px 0 6px;border-top:1px solid var(--line-2)}
.cm-area h3{margin-bottom:10px}
.cm-area a{color:var(--ink);font-weight:600;text-decoration-color:var(--red);text-underline-offset:3px}
.cm-areas__side{position:sticky;top:calc(var(--bar-h) + 30px)}
.cm-map{background:var(--white);padding:10px;border:1px solid var(--line)}
.cm-map iframe{display:block;width:100%;height:380px}
.cm-weather{margin-top:16px;background:var(--white);padding:10px;border:1px solid var(--line);min-height:120px}

/* ---------- 11 faq ---------- */
.cm-faq{padding:var(--sec) 0}
.cm-faq__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,96px);align-items:start}
.cm-faq__side{position:sticky;top:calc(var(--bar-h) + 30px)}
.cm-photo--faq{margin-top:26px;max-width:400px;transform:rotate(1.2deg)}
.js .cm-photo--faq.ro{transform:translateY(28px) rotate(1.2deg)}.js .cm-photo--faq.ro.in{transform:rotate(1.2deg)}
.cm-photo--faq{padding-bottom:10px}
.cm-faq__list{border-top:2px solid var(--ink)}
.cm-q{border-bottom:1px solid var(--line-2)}
.cm-q summary{display:grid;grid-template-columns:1fr 34px;gap:18px;align-items:center;padding:22px 0;cursor:pointer;list-style:none}
.cm-q summary::-webkit-details-marker{display:none}
.cm-q summary h3{font-size:clamp(18px,1.6vw,21px)}
.cm-q summary i{position:relative;width:34px;height:34px;border:2px solid var(--ink);border-radius:50%;transition:background-color .3s var(--ease),border-color .3s var(--ease),transform .45s var(--ease)}
.cm-q summary i::before,.cm-q summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--ink);transition:background-color .3s}
.cm-q summary i::after{transform:rotate(90deg)}
.cm-q[open] summary i{transform:rotate(45deg);background:var(--red);border-color:var(--red)}
.cm-q[open] summary i::before,.cm-q[open] summary i::after{background:#fff}
@media (hover:hover){.cm-q summary:hover h3{color:var(--red-deep)}}
.cm-q__a{padding:0 52px 20px 0;animation:cmRise .55s var(--ease)}
.cm-q__a p{margin:0!important}

/* ---------- 12 book: the coupon ---------- */
.cm-book{padding:0 0 var(--sec)}
.cm-coupon{position:relative;display:grid;grid-template-columns:1.3fr auto;gap:30px 56px;align-items:center;
  padding:clamp(30px,4vw,52px);border:2px dashed var(--ink);background:var(--white)}
.cm-coupon::before{content:"✂";position:absolute;top:-15px;left:36px;padding:0 8px;background:var(--paper);color:var(--ink);font-size:22px;line-height:1}
.cm-coupon .cm-h2{margin-bottom:.4em!important}
.cm-coupon p{margin:0!important;max-width:60ch}
.cm-coupon__acts{display:flex;flex-direction:column;gap:12px}

/* ---------- footer: the colophon ---------- */
.cm-foot{position:relative;background:var(--ink);color:var(--on-ink-soft);font-size:15.5px}
.cm-foot .cm-perf{background-image:radial-gradient(circle at 8px 8px,var(--paper) 3.6px,transparent 4.2px)}
.cm-foot__grid{display:grid;grid-template-columns:1.1fr 1.35fr .7fr;gap:clamp(32px,4vw,64px);padding-top:clamp(56px,7vw,84px);padding-bottom:clamp(44px,5vw,64px)}
.cm-foot__logo img{width:210px;height:auto}
.cm-foot__tag{margin:18px 0 22px;color:var(--on-ink);max-width:36ch}
.cm-foot__nap{margin:0;display:grid;gap:12px}
.cm-foot__nap div{display:grid;grid-template-columns:64px 1fr;gap:12px}
.cm-foot__nap dt{padding-top:4px;font:700 10.5px/1.2 var(--f-disp);font-stretch:75%;letter-spacing:.18em;text-transform:uppercase;color:var(--red-tint)}
.cm-foot__nap dd{margin:0;color:var(--on-ink)}
.cm-foot a{color:var(--on-ink);text-decoration:none}
.cm-foot__nap a{border-bottom:1px solid rgba(251,250,246,.3)}
.cm-foot__map{display:inline-block;margin-top:4px;font-size:14.5px;color:var(--red-tint)!important;border-color:var(--red-tint)!important}
.cm-foot__h{margin:0 0 18px!important;padding-bottom:12px;border-bottom:1px solid var(--line-ink);
  font:700 12px/1 var(--f-disp);font-stretch:75%;letter-spacing:.22em;text-transform:uppercase;color:var(--on-ink)}
.cm-foot__areas ul{columns:2;column-gap:28px}
.cm-foot ul{list-style:none;margin:0;padding:0}
.cm-foot__areas li,.cm-foot__quick li{break-inside:avoid;padding:5px 0}
.cm-foot__areas a,.cm-foot__quick a{color:var(--on-ink-soft);transition:color .2s var(--ease)}
@media (hover:hover){.cm-foot a:hover{color:var(--red-tint)}}
.cm-foot__bar{border-top:1px solid var(--line-ink)}
.cm-foot__bar-in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 28px;padding-top:20px;padding-bottom:22px;font-size:14px}
.cm-foot__bar p{margin:0}
.cm-foot__bar ul{display:flex;flex-wrap:wrap;gap:8px 22px}
.cm-foot__bar a{color:var(--on-ink-soft)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .cm-services__grid{grid-template-columns:repeat(2,1fr)}
  .cm-services__intro{grid-column:1/-1}
  .cm-services__pin{position:static}
  .cm-why__list{grid-template-columns:repeat(2,1fr)}
  .cm-why__list li:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  .cm-why__list li:nth-child(even){padding-left:28px;border-left:1px solid var(--line-ink)}
}
@media (max-width:980px){
  .cm-hero__grid,.cm-intake__grid,.cm-mobile__grid,.cm-cost__grid,.cm-ins__grid,.cm-areas__grid,.cm-faq__grid,.cm-why__head{grid-template-columns:1fr}
  .cm-hero__photo{order:0;max-width:560px;width:100%;margin:0 auto;padding:18px 18px 34px}
  .cm-hero__copy{order:1}
  .cm-stamp{left:6px;bottom:70px;mix-blend-mode:normal;background:rgba(251,250,246,.9)}
  .cm-photo--tilt,.cm-areas__side,.cm-faq__side{position:static}
  .cm-photo--tilt{max-width:560px}
  .cm-photo--faq{display:none}
  .cm-intake__form{max-width:600px;order:-1}
  .cm-reviews__grid{grid-template-columns:1fr;max-width:640px}
  .cm-review:nth-child(2){margin-top:0}
  .cm-stubs{grid-template-columns:1fr}
  .cm-stub+.cm-stub{border-left:1px solid var(--line);border-top:2px dashed var(--line-2)}
  .cm-stub+.cm-stub::before{top:-10px;left:-10px}
  .cm-stub+.cm-stub::after{top:-10px;bottom:auto;left:auto;right:-10px}
  .cm-coupon{grid-template-columns:1fr}
  .cm-coupon__acts{flex-direction:row;flex-wrap:wrap}
  .cm-foot__grid{grid-template-columns:1fr 1fr}
  .cm-foot__brand{grid-column:1/-1}
}
@media (max-width:640px){
  body.cm{font-size:16.5px}
  .cm-services__grid{grid-template-columns:1fr}
  .cm-why__list{grid-template-columns:1fr}
  .cm-why__list li:nth-child(even){padding-left:0;border-left:0}
  .cm-form__row{grid-template-columns:1fr}
  .cm-form__check{grid-template-columns:1fr}
  .cm-form .qf-go{width:100%}
  .cm-stamp{transform:rotate(-9deg) scale(.82);transform-origin:left bottom}
  .cm-order{grid-template-columns:1fr}
  .cm-order>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line-2)}
  .cm-acts .cm-btn{flex:1 1 100%}
  .cm-coupon__acts .cm-btn{flex:1 1 100%}
  .cm-rate__table td{font-size:15.5px}
  .cm-rate__table td:last-child{font-size:16px;white-space:normal}
  .cm-map iframe{height:300px}
  .cm-foot__grid{grid-template-columns:1fr}
  .cm-q__a{padding-right:0}
}
@keyframes cmStampSm{0%{opacity:0;transform:scale(1.9) rotate(-2deg)}100%{opacity:.93;transform:scale(.82) rotate(-9deg)}}
@media (max-width:640px){.cm-stamp{animation-name:cmStampSm}}

/* ---------- motion gates ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-delay:0s!important;transition-duration:.001s!important;transition-delay:0s!important}
  .ro{opacity:1!important;transform:none!important}
  html{scroll-behavior:auto}
}

/* ---------- legacy pages (old Bootstrap markup until each is rebuilt) ---------- */
.cm-legacy .cm-bar a,.cm-legacy .cm-foot a{text-decoration:none}
.cm-legacy .cm-nav__list,.cm-legacy .cm-dd__menu{padding-left:0}
.cm-legacy .cm-dd__menu{padding:8px}
.cm-legacy #header,.cm-legacy #topbar{display:none}

/* ==========================================================================
   Signature effects layer (2026-10-24, "wow" round). Everything here is
   additive: no JS / reduced motion = the plain page above.
   ========================================================================== */

/* scroll progress: a red hairline under the bar */
.cm-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--red-hi);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}

/* 1. hero photo = a real glossy print: 3D tilt + cursor glare (desktop only, JS) */
.cm-hero__photo{perspective:1100px}
.cm-tilt{transform-style:preserve-3d;will-change:transform}
.cm-photo__glass{position:relative;overflow:hidden}
.cm-glare{position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:soft-light;
  background:radial-gradient(circle at var(--gx,30%) var(--gy,20%),rgba(255,255,255,.95),rgba(255,255,255,0) 46%);
  transition:opacity .45s var(--ease)}
.cm-tilt.is-live .cm-glare{opacity:1}
/* touch / first load: one sun glint sweeps across the glass */
.cm-photo__glass::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:38%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-14deg) translateX(0);
  animation:cmGlint 1.5s var(--ease) 1.7s both}
@keyframes cmGlint{from{transform:skewX(-14deg) translateX(0);opacity:1}to{transform:skewX(-14deg) translateX(520%);opacity:1}}

/* 2. the stamp thud: the print jolts, ink flies; click the photo to stamp again */
.cm-hero__photo{cursor:pointer}
.cm-photo--hero{animation:cmRiseTilt 1s var(--ease) .25s both,cmJolt .42s var(--ease) 1.28s}
@keyframes cmJolt{0%{translate:0 0}25%{translate:3px 4px}55%{translate:-2px -1px}100%{translate:0 0}}
.cm-ink{position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3px;border-radius:50%;background:var(--red-hi);opacity:0;
  animation:cmInk .7s var(--ease) 1.25s both}
.cm-ink:nth-child(odd){width:4px;height:4px;margin:-2px}
@keyframes cmInk{0%{opacity:.9;transform:rotate(var(--a)) translateX(10px) scale(1.4)}100%{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(.6)}}
.cm-hero__photo.restamp .cm-stamp{animation:cmStamp .55s var(--spring) both}
.cm-hero__photo.restamp .cm-ink{animation:cmInk .7s var(--ease) .3s both}
.cm-hero__photo.restamp .cm-photo--hero{animation:cmJolt .42s var(--ease) .33s}
@media (max-width:640px){.cm-hero__photo.restamp .cm-stamp{animation-name:cmStampSm}}

/* 3. typewriter: monospace, so each character is exactly 1ch */
.cm-type__t{display:inline-block;vertical-align:bottom;white-space:nowrap}
.js .cm-type:not(.done) .cm-type__t{width:0;overflow:hidden}
.js .cm-type.go:not(.done) .cm-type__t{border-right:2px solid var(--red);
  animation:cmType calc(var(--n) * 55ms) steps(var(--n)) forwards,cmCaret .5s steps(1) infinite}
@keyframes cmType{to{width:calc(var(--n) * 1ch + 2px)}}
@keyframes cmCaret{50%{border-right-color:transparent}}
.cm-rate__table .cm-type__t{white-space:inherit}
.js .cm-rate__table .cm-type:not(.done) .cm-type__t{white-space:nowrap}

/* 4a. carbon copies fan out behind a service ticket */
.cm-ticket::before,.cm-ticket::after{content:"";position:absolute;inset:-1px;z-index:-1;border:1px solid rgba(22,22,22,.12);
  transition:transform .55s var(--ease);transform-origin:50% 100%}
.cm-ticket::before{background:var(--canary)}
.cm-ticket::after{background:var(--rose);z-index:-2}
@media (hover:hover){
  .cm-ticket:hover::before{transform:rotate(-3deg) translate(-8px,2px)}
  .cm-ticket:hover::after{transform:rotate(3.5deg) translate(10px,4px)}
}

/* 4b. tear-off stubs settle as they are laid down */
.js .cm-stub.in{transition:opacity .95s var(--ease),transform .9s var(--spring)}
.js .cm-stub.in:nth-child(1){transform:rotate(-.8deg)}
.js .cm-stub.in:nth-child(2){transform:rotate(.6deg) translateY(6px)}
.js .cm-stub.in:nth-child(3){transform:rotate(-.4deg)}
@media (max-width:980px){.js .cm-stub.in:nth-child(n){transform:none}}

/* 16 years counts up */
.cm-why__num{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){
  .cm-photo__glass::after,.cm-ink{display:none}
  .js .cm-type .cm-type__t{width:auto!important;border:0!important}
  .cm-tilt{transform:none!important}
}

/* ---------- logo strip (homepage doc image row): two identical tracks slide left forever ---------- */
.cm-logos{position:relative;background:var(--paper-2);padding:0 0 clamp(40px,5vw,64px);overflow:hidden}
.cm-logos__view{display:flex;width:max-content;border-top:1px dashed var(--line-2);border-bottom:1px dashed var(--line-2);padding:18px 0}
.cm-logos__track{list-style:none;margin:0;padding:0 7px;display:flex;gap:14px;flex:none;animation:cmLogos 60s linear infinite}
.cm-logos__track li{display:flex;align-items:center;justify-content:center;width:150px;height:92px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:3px;box-shadow:0 1px 0 var(--line)}
.cm-logos__track img{max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain}
.cm-logos__view:hover .cm-logos__track{animation-play-state:paused}
@keyframes cmLogos{to{transform:translateX(-100%)}}
@media (max-width:640px){
  .cm-logos__track li{width:118px;height:76px;padding:10px 12px}
  .cm-logos__track img{max-height:52px}
}
@media (prefers-reduced-motion:reduce){
  .cm-logos__view{width:auto;justify-content:center;padding:18px var(--gut)}
  .cm-logos__track{animation:none;flex-wrap:wrap;justify-content:center}
  .cm-logos__track[aria-hidden]{display:none}
}
.cm-intake:has(+ .cm-logos){padding-bottom:clamp(32px,4vw,48px)}
