/* ============================================================
   Precision Pest Control — "The Inspection Report" design system
   Shared across all pages. Tailwind CDN handles layout utilities;
   this file owns type, color, and the signature field-report + bug system.
   ============================================================ */

:root{
  --paper:#F6F4EF;
  --paper-panel:#EFEBE2;
  --paper-deep:#E7E1D5;
  --ink:#17130F;
  --ink-soft:#4A453E;
  --gray-label:#6E6A62;
  --line:#D9D3C7;
  --line-strong:#C4BCAC;
  --red:#E41824;
  --red-dark:#B3121B;
  --white:#FFFFFF;
  --serif:"Montserrat",system-ui,-apple-system,Segoe UI,sans-serif;      /* headlines — matches the logo wordmark */
  --serif-text:"Montserrat",system-ui,sans-serif;
  --sans:"Libre Franklin",system-ui,-apple-system,Segoe UI,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-weight:400;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip; /* clip not hidden — hidden breaks sticky scroll (memory) */
}

/* ---- Type ---- */
.font-serif{font-family:var(--serif)}
.font-serif-text{font-family:var(--serif-text)}
.font-mono{font-family:var(--mono)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.08;letter-spacing:-.02em;color:var(--ink)}
.display{font-family:var(--serif);font-weight:800;line-height:1.02;letter-spacing:-.03em}
p{margin:0 0 1rem}
a{color:inherit;text-decoration:none}

/* mono micro-label — the field-report voice */
.tag{
  font-family:var(--mono);font-size:.68rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gray-label);
}
.tag--red{color:var(--red)}
.tag-line{display:inline-flex;align-items:center;gap:.6rem}
.tag-line::before{content:"";width:26px;height:1px;background:var(--red)}

/* hairline rules */
.rule{height:1px;background:var(--line);border:0}
.rule-strong{height:1px;background:var(--line-strong);border:0}

/* ---- Reticle / crosshair device ---- */
.reticle{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:2.4rem;height:2.4rem;flex:none;
}
.reticle::before,.reticle::after{content:"";position:absolute;background:var(--red)}
.reticle::before{width:100%;height:1.5px;left:0}
.reticle::after{height:100%;width:1.5px;top:0}
.reticle > span{
  position:relative;z-index:1;width:1.4rem;height:1.4rem;border-radius:50%;
  border:1.5px solid var(--red);background:var(--paper);
  font-family:var(--mono);font-size:.7rem;font-weight:600;color:var(--red);
  display:flex;align-items:center;justify-content:center;letter-spacing:0;
}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;justify-content:center;
  font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:.01em;
  padding:.85rem 1.5rem;border-radius:2px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .12s ease,background .18s ease,color .18s ease,box-shadow .18s ease;
  line-height:1;
}
.btn-red{background:var(--red);color:#fff;box-shadow:0 1px 0 var(--red-dark)}
.btn-red:hover{background:var(--red-dark);transform:translateY(-1px)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:#000;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-1px)}
.btn-lg{padding:1.05rem 1.9rem;font-size:1.02rem}

/* ---- Field-report specimen panel ---- */
.specimen{
  position:relative;background:var(--white);
  border:1px solid var(--line-strong);
  box-shadow:0 1px 0 var(--line);
}
.specimen__corner{position:absolute;width:9px;height:9px;border:1.5px solid var(--red)}
.specimen__corner.tl{top:-1px;left:-1px;border-right:0;border-bottom:0}
.specimen__corner.tr{top:-1px;right:-1px;border-left:0;border-bottom:0}
.specimen__corner.bl{bottom:-1px;left:-1px;border-right:0;border-top:0}
.specimen__corner.br{bottom:-1px;right:-1px;border-left:0;border-top:0}

/* grid-paper texture removed per client — heroes sit on clean warm paper */
.gridpaper{display:none}

/* ---- Header / nav ---- */
.nav-link{position:relative;font-weight:500;font-size:.95rem;color:var(--ink);padding:.25rem 0}
.nav-link::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;background:var(--red);transition:width .2s ease}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{width:100%}
.nav-link[aria-current="page"]{color:var(--red)}

/* sticky Free Inspection bar */
.inspect-bar{transition:background .2s ease}
.inspect-panel{max-height:0;overflow:hidden;transition:max-height .38s cubic-bezier(.4,0,.2,1)}
.inspect-panel.open{max-height:640px}

/* ---- Forms ---- */
.field{
  width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);
  background:var(--white);border:1px solid var(--line-strong);border-radius:2px;
  padding:.8rem .9rem;transition:border-color .15s ease,box-shadow .15s ease;
}
.field::placeholder{color:#9a938a}
.field:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(228,24,36,.14)}
.field-label{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gray-label);margin-bottom:.35rem;display:block}
select.field{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%23E41824' stroke-width='1.6' fill='none'/></svg>");background-repeat:no-repeat;background-position:right .8rem center}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-note{font-family:var(--mono);font-size:.72rem;letter-spacing:.02em}
.form-note.ok{color:#1c7a3f}
.form-note.err{color:var(--red-dark)}

/* ---- Scroll reveal: visible by default, enhanced when JS present (memory gotcha) ---- */
.reveal{opacity:1;transform:none}
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
html.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html.js .reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* ============================================================
   BUG ENGINE — rendered on <canvas id="bug-canvas"> (see site.js).
   Positioning/animation live in JS; only the reduced-motion guard is
   here as a safety net (the engine also checks it before starting).
   ============================================================ */
#bug-canvas{position:fixed;inset:0;pointer-events:none;z-index:35}
@media (prefers-reduced-motion:reduce){
  #bug-canvas{display:none!important}
}

/* extermination tally chip */
.tally{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gray-label);
}
.tally b{color:var(--red);font-weight:600}

/* ============================================================
   "Own This Design" floating tab
   ============================================================ */
#own-tab{
  position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;align-items:stretch;
}
#own-tab .own-handle{
  writing-mode:vertical-rl;transform:rotate(180deg);
  background:var(--ink);color:var(--paper);cursor:pointer;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  padding:1rem .55rem;border-radius:6px 0 0 6px;border:1px solid #000;border-right:0;
  display:flex;align-items:center;gap:.5rem;user-select:none;
  box-shadow:-4px 0 18px rgba(20,16,12,.18);
}
#own-tab .own-handle b{color:var(--red)}
#own-panel{
  width:0;max-width:92vw;overflow:hidden;background:var(--paper);
  border:1px solid var(--line-strong);border-right:0;border-radius:6px 0 0 6px;
  box-shadow:-14px 0 40px rgba(20,16,12,.22);transition:width .34s cubic-bezier(.4,0,.2,1);
}
#own-tab.open #own-panel{width:340px}
.own-inner{width:340px;padding:1.3rem 1.3rem 1.15rem}
#own-tab.open .own-handle{background:var(--red);color:#fff}
#own-tab.open .own-handle b{color:#fff}

/* footer */
.foot-link{color:var(--paper);opacity:.72;font-size:.9rem;transition:opacity .15s}
.foot-link:hover{opacity:1;color:#fff}

/* util */
.container-x{max-width:1180px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}
.link-red{color:var(--red);font-weight:600;text-decoration:none;border-bottom:1.5px solid rgba(228,24,36,.35);transition:border-color .15s}
.link-red:hover{border-color:var(--red)}
.hover-lift{transition:transform .18s ease,box-shadow .18s ease}
.hover-lift:hover{transform:translateY(-3px)}

@media (max-width:640px){
  #own-tab .own-handle{padding:.8rem .45rem;font-size:.62rem}
}
