
  /* Repair It Right visual system (brand-voice.md): #FCFCFB, #161719, #6E7378, #E4E3DF, steel blue #345D6E,
     Arimo. One weight throughout. Color added (Rockie 10/25) as solid steel blue bands and buttons only.
     No gradients, no shadows, no icons. */
  :root { --paper:#FCFCFB; --ink:#161719; --grey:#6E7378; --rule:#E4E3DF; --accent:#345D6E; --white:#FFFFFF;
    --row:14px; /* space between every hairline and its text */ --inset:8px; /* text inset from line ends */ }
  * { box-sizing:border-box; margin:0; padding:0; }
  html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
  body { background:var(--paper); color:var(--ink); font-family:'Arimo','Liberation Sans',Arial,sans-serif;
    font-weight:400; font-size:17px; line-height:1.55; padding-bottom:76px; }
  b, strong, h1, h2, h3, summary { font-weight:400; }
  img, video { display:block; max-width:100%; }
  a { color:inherit; }
  .wrap { max-width:1040px; margin:0 auto; padding:0 24px; }
  h1 { font-size:clamp(34px, 8.6vw, 56px); line-height:1.08; letter-spacing:-0.5px; }
  h1 em { font-style:normal; }
  h2 { font-size:clamp(28px, 6.4vw, 38px); line-height:1.15; letter-spacing:-0.3px; }
  h3 { font-size:20px; line-height:1.25; }
  .eyebrow { font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--grey); margin-bottom:14px; }
  section { padding:52px 0; border-top:1px solid var(--rule); }
  .lead { font-size:clamp(18px, 4.6vw, 21px); color:var(--grey); margin-top:14px; max-width:640px; line-height:1.4; }

  .btn { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:14px 24px;
    border-radius:2px; font-size:17px; text-decoration:none; text-align:center; }
  .btn-gold, .btn-dark { background:var(--accent); color:#fff; }
  .btn-ghost { border:1px solid var(--ink); color:var(--ink); }
  .btn:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }

  /* Header */
  .strip { font-size:13px; color:var(--grey); text-align:center; padding:8px 24px; border-bottom:1px solid var(--rule); }
  .strip b { color:var(--ink); }
  .hero { padding:0 0 44px; }
  .brand { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:var(--row) 0;
    border-bottom:1px solid var(--rule); margin-bottom:30px; }
  .brand .name { letter-spacing:2px; text-transform:uppercase; font-size:12px; }
  .brand .tag { font-size:14px; color:var(--grey); white-space:nowrap; }
  .hero-grid { display:grid; gap:22px; }

  .ctas { display:grid; gap:12px; }
  /* Phone: the ad promised a download, so the buttons come before the video. */
  .hero .ctas { order:2; } .hero .media { order:3; }
  .ctas .note { font-size:14px; color:var(--grey); text-align:center; }
  .rating { text-align:center; font-size:15px; color:var(--grey); }
  .stars { display:none; }

  /* Offer */
  .offer { background:var(--white); border:1px solid var(--rule); border-top:3px solid var(--accent); padding:24px; }
  .offer ul { list-style:none; margin:16px 0 0; border-top:1px solid var(--rule); }
  .offer li { padding:var(--row) var(--inset); border-bottom:1px solid var(--rule); }
  .bonus { margin-top:var(--row); padding:var(--row) 16px; background:var(--accent); color:#fff; }
  .guarantee { margin-top:var(--row); font-size:15px; color:var(--grey); }
  .offer .btn { width:100%; margin-top:20px; }
  .offer .small, .small { font-size:14px; color:var(--grey); margin-top:10px; }
  .offer .small { text-align:center; }

  /* Lists */
  .worries { list-style:none; margin-top:24px; border-top:1px solid var(--rule); max-width:720px; }
  .worries li { padding:var(--row) var(--inset); border-bottom:1px solid var(--rule); }
  .reframe { margin-top:22px; font-size:19px; max-width:680px; }

  /* Steel blue bands */
  .choice, .closer { background:var(--accent); color:#fff; border-top:0; }
  .choice .eyebrow, .closer .eyebrow, .choice p, .closer .lead { color:#fff; }
  .choice .big { font-size:clamp(34px, 9vw, 58px); line-height:1.05; margin:4px 0 18px; }
  .choice p { max-width:640px; }
  .choice p + p { margin-top:12px; }
  .closer { text-align:center; }
  .closer .ctas { max-width:420px; margin:24px auto 0; }
  .closer .btn-gold { background:#fff; color:var(--ink); }
  .closer .btn-ghost { border-color:#fff; color:#fff; }

  /* Repair process */
  .process { list-style:none; margin-top:24px; display:grid; grid-template-columns:1fr 1fr; gap:24px 12px; }
  .process img { width:100%; aspect-ratio:4/3; object-fit:cover; }
  .process span { display:block; margin-top:var(--row); padding:calc(var(--row) + 2px) var(--inset) 0; border-top:1px solid var(--rule); font-size:15px; line-height:1.3; }
  .process b { display:block; color:var(--accent); }
  .booksteps { list-style:none; margin-top:24px; counter-reset:b; max-width:560px; border-top:1px solid var(--rule); }
  .booksteps li { counter-increment:b; padding:var(--row) var(--inset) var(--row) 48px; position:relative; border-bottom:1px solid var(--rule); }
  .booksteps li::before { content:counter(b, decimal-leading-zero); position:absolute; left:var(--inset); top:var(--row); color:var(--accent); }

  /* Shop tour */
  .tour video { width:100%; margin-top:24px; aspect-ratio:16/9; object-fit:cover; background:var(--rule); }
  .gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px 12px; margin-top:24px; }
  .gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; }
  .gallery figcaption { margin-top:var(--row); padding:calc(var(--row) + 1px) var(--inset) 0; border-top:1px solid var(--rule); font-size:14px; color:var(--grey); }

  /* Proof */
  .proof-grid { display:grid; margin-top:24px; border-top:1px solid var(--rule); }
  .proof-card { padding:calc(var(--row) + 2px) var(--inset) calc(var(--row) + 4px); border-bottom:1px solid var(--rule); display:grid; grid-template-columns:100px 1fr; gap:12px; align-items:start; }
  .proof-card .num { font-size:24px; line-height:1.25; color:var(--accent); }
  .proof-card p { font-size:15px; }
  .brands { margin-top:14px; font-size:14px; color:var(--grey); }
  .cert-photo { margin-top:24px; width:100%; aspect-ratio:16/9; object-fit:cover; }

  /* Booking */
  .scheduler { margin:24px 0 14px; min-height:160px; }
  .fallback { border:1px solid var(--rule); padding:22px; color:var(--grey); }
  .call-line { font-size:16px; }

  /* Booster scheduler: match its own colors to the brand (it renders in the page, not an iframe). */
  #bb-scheduler .boost-snippet-button { background:var(--accent) !important; border-color:var(--accent) !important; border-radius:2px !important; }
  #bb-scheduler a { color:var(--accent) !important; }
  #bb-scheduler .boost-snippet-form-label { color:var(--grey) !important; }
  #bb-scheduler .boost-snippet-form-control { border-color:var(--rule) !important; color:var(--ink) !important; }
  #bb-scheduler .boost-snippet-input-icon-left { color:var(--grey) !important; }
  #bb-scheduler h1, #bb-scheduler h2, #bb-scheduler h3, #bb-scheduler label, #bb-scheduler button { font-weight:400 !important; }

  /* Reviews */
  .review-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; }
  .review-head .score { font-size:44px; line-height:1; color:var(--accent); }
  .reviews { display:grid; margin-top:24px; border-top:1px solid var(--rule); }
  .review { padding:var(--row) var(--inset) calc(var(--row) + 4px); border-bottom:1px solid var(--rule); }
  .review .who { margin-top:8px; font-size:14px; color:var(--grey); }
  .fine { font-size:13px; color:var(--grey); margin-top:14px; }

  /* FAQ */
  .faq { margin-top:24px; border-top:1px solid var(--rule); }
  details { border-bottom:1px solid var(--rule); }
  summary { cursor:pointer; list-style:none; padding:var(--row) 40px var(--row) var(--inset); position:relative; }
  summary::-webkit-details-marker { display:none; }
  summary::after { content:'+'; position:absolute; right:var(--inset); top:calc(var(--row) - 4px); font-size:22px; color:var(--accent); }
  details[open] summary::after { content:'\2013'; }
  details p { padding:0 var(--inset) var(--row); color:var(--grey); }

  footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 16px; padding:var(--row) 0 30px; border-top:1px solid var(--rule); font-size:14px; }
  footer .contact { color:var(--grey); }

  /* Sticky bar on phones */
  .sticky { position:fixed; left:0; right:0; bottom:0; z-index:20; display:grid; grid-template-columns:1fr 1.4fr; gap:8px;
    padding:10px 24px calc(10px + env(safe-area-inset-bottom)); background:var(--paper); border-top:1px solid var(--rule); }
  .sticky .btn { min-height:48px; font-size:16px; padding:10px 12px; }

  @media (min-width:860px) {
    .wrap { padding:0 32px; }
    body { padding-bottom:0; }
    .sticky { display:none; }
    .hero-grid { grid-template-columns:1fr 1fr; grid-template-areas:"text media" "ctas media"; column-gap:56px; align-items:start; }
    .hero .text { grid-area:text; }
    .hero .media { grid-area:media; order:0; }
    .hero .ctas { grid-area:ctas; max-width:440px; order:0; }
    .ctas .note, .rating { text-align:left; }
    .two { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
    .process { grid-template-columns:repeat(3, 1fr); }
    .gallery.four { grid-template-columns:repeat(4, 1fr); }
    .reviews { grid-template-columns:repeat(3, 1fr); column-gap:32px; }
  }

  /* v3 additions */
  .hero .media video, .hero .media img { width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--rule); }
  .gallery figure { margin:0; }
  table.drive { width:100%; border-collapse:collapse; margin-top:20px; font-size:16px; }
  table.drive th { text-align:left; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--grey); padding:0 var(--inset) 10px; }
  table.drive td { padding:var(--row) var(--inset); border-top:1px solid var(--rule); }
  table.drive tr:last-child td { border-bottom:1px solid var(--rule); }
  .map { width:100%; aspect-ratio:4/3; border:0; margin-top:24px; background:var(--rule); }
  @media (min-width:860px) { .gallery { grid-template-columns:repeat(3, 1fr); } .map { margin-top:0; } }

  .prose p + p { margin-top:12px; }
  .prose { max-width:680px; }
