/* hidden must beat any class that sets display */
[hidden]{display:none !important}

/* ============================================================
   Print.

   Two jobs. First, any page should print sensibly — somebody will print
   the pricing page and put it in front of their husband at the kitchen
   table, and it should not come out as dark grey rectangles and cut-off
   columns.

   Second, the pricing page doubles as a leave-behind: a clean sheet you
   can print, put in a folder, and hand to a contractor at a job site.
   ============================================================ */
@media print {
  /* ---- ink is expensive and dark backgrounds are unreadable ---- */
  :root{
    --surface:#fff; --surface-2:#fff; --surface-3:#fff; --panel:#fff; --deep:#fff;
    --ink:#000; --ink-2:#333; --ink-3:#555;
    --line:#bbb; --line-2:#ddd;
    --accent:#000; --accent-soft:#f2f2f2;
    --shadow:none; --shadow-2:none; --shadow-3:none;
  }
  *{ background:transparent !important; box-shadow:none !important;
     text-shadow:none !important; color:#000 !important; }
  html,body{ background:#fff !important; font-size:11pt; line-height:1.45 }

  /* ---- nothing that only works on a screen ---- */
  .hdr, .dock, footer nav, #heroFx, .scrollbar, .studio, .tri, canvas,
  .chips, .tools, .search, .burger, .langbtn, .demo-tag, video,
  [data-tab], .vw-segs, dialog, .drawer, .scrim, #toast,
  .btn, .row.cta, .marks, .consent{ display:none !important }

  /* ---- let it all flow ---- */
  section{ padding-block:12pt !important; break-inside:avoid }
  .wrap,.wrap-sm,.narrow{ width:100% !important; max-width:none !important; margin:0 !important }
  .split,.grid2,.cards,.plans,.rows{ display:block !important }
  .reveal,.stagger > *{ opacity:1 !important; transform:none !important; animation:none !important }

  /* ---- headings hold together with what follows ---- */
  h1,h2,h3{ break-after:avoid; page-break-after:avoid; color:#000 !important }
  h1{ font-size:22pt; letter-spacing:-.02em }
  h2{ font-size:15pt; margin-top:14pt }
  h3{ font-size:12pt }
  p,li{ orphans:3; widows:3 }
  img,table,.plan,.card{ break-inside:avoid; page-break-inside:avoid }

  /* ---- a link is useless on paper unless you can read where it goes ---- */
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; color:#555 !important;
    word-break:break-all }
  a[href^="/"]::after{ content:" (chenchosbuilt.com" attr(href) ")"; font-size:9pt; color:#555 !important }
  a[href^="#"]::after, a[href^="sms:"]::after, a[href^="tel:"]::after,
  a[href^="mailto:"]::after, nav a::after{ content:"" }

  /* ---- tables print as tables ---- */
  table{ width:100% !important; border-collapse:collapse; font-size:9.5pt }
  th,td{ border:1px solid #ccc !important; padding:5pt 7pt !important; text-align:left }
  th{ background:#f2f2f2 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact;
      font-weight:700 }
  .plan{ border:1px solid #bbb !important; padding:12pt !important; margin-bottom:10pt }
  .plan .price b{ font-size:18pt }

  /* ---- a letterhead and a footer on every sheet ---- */
  @page{ margin:16mm 14mm 18mm; }
  body::before{
    content:"Chenchos Built · Green Bay, Wisconsin · (920) 401-9418 · chenchosbuilt.com";
    display:block; font-size:9pt; letter-spacing:.02em; color:#444 !important;
    border-bottom:1px solid #ccc; padding-bottom:6pt; margin-bottom:14pt;
  }
  body::after{
    content:"We build it before you pay. See it first, then decide.";
    display:block; font-size:9pt; color:#555 !important;
    border-top:1px solid #ccc; padding-top:6pt; margin-top:16pt;
  }

  /* ---- things worth keeping when the page is put in a folder ---- */
  .print-only{ display:block !important }
  .no-print{ display:none !important }
}

/* only visible on paper */
.print-only{ display:none }
