/* Prime Trans LLC — base: reset, type, layout, header, footer, buttons, forms */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-400)/1.6 var(--font-body);min-height:100vh}
img,svg{display:inline-block;vertical-align:middle;max-width:100%}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-0.02em;line-height:1.08;margin:0 0 .5em;color:var(--ink);text-wrap:balance}
h1{font-size:var(--fs-900);font-weight:700}
h2{font-size:var(--fs-700);font-weight:700}
h3{font-size:var(--fs-500);font-weight:600;letter-spacing:-0.01em}
p{margin:0 0 1em;max-width:var(--prose)}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 1em;padding-left:1.25rem;max-width:var(--prose)}
li{margin:.3rem 0}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.muted{color:var(--muted)}
.small{font-size:var(--fs-350)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--brand);color:#fff;padding:.5rem .8rem;border-radius:var(--r-ctl);z-index:100}
.skip:focus{left:8px}
.wrap{width:min(100% - 2.5rem,var(--maxw));margin-inline:auto}
.wrap-narrow{width:min(100% - 2.5rem,860px);margin-inline:auto}
::selection{background:var(--brand-soft)}

/* placeholder marker: visible until Dan replaces the value */
.ph{font-family:var(--font-mono);font-size:.92em;background:oklch(0.62 0.14 60 / 0.16);color:oklch(0.45 0.12 60);border:1px dashed oklch(0.55 0.14 60 / 0.9);border-radius:4px;padding:0 .3em;overflow-wrap:break-word}
.cred-bar .ph{white-space:nowrap}
.band .ph{color:oklch(0.9 0.1 80);background:oklch(0.62 0.14 60 / 0.22);border-color:oklch(0.8 0.12 75 / 0.6)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:color-mix(in oklab,var(--paper-2) 92%,transparent);backdrop-filter:blur(8px) saturate(140%);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;gap:1rem;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.7rem;color:var(--ink);white-space:nowrap}
.brand:hover{text-decoration:none}
.brand img{width:36px;height:36px;border-radius:9px}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:var(--fs-500);letter-spacing:-.01em;line-height:1}
.brand-sub{display:block;font-family:var(--font-mono);font-size:.68rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:.2rem}
.nav{display:flex;align-items:center;gap:.15rem;margin-left:auto}
.nav a:not(.btn){padding:.5rem .7rem;border-radius:var(--r-sm);color:var(--ink);font-weight:500;font-size:var(--fs-350)}
.nav a:not(.btn):hover{background:var(--paper-3);text-decoration:none}
.nav a.is-active{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}
.nav .btn{margin-left:.5rem}
.nav-toggle{display:none;appearance:none;border:1px solid var(--line-2);background:var(--paper-2);color:var(--ink);width:42px;height:42px;border-radius:var(--r-ctl);place-items:center;cursor:pointer;margin-left:auto}
.cred-bar{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;align-items:center;padding:.35rem 0;border-top:1px solid var(--line);font-size:var(--fs-300);color:var(--muted)}
.cred-bar b{color:var(--ink);font-weight:600}
.cred-bar .cred-ok,.cred-bar .cred-phone{display:inline-flex;align-items:center;gap:.35rem}
.cred-bar .cred-ok svg{color:var(--signal)}
.cred-bar .cred-phone svg{color:var(--brand)}
.drawer{display:none}

/* ---------- buttons ---------- */
.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.7rem 1.1rem;border-radius:var(--r-ctl);border:1px solid var(--line-2);background:var(--paper-2);color:var(--ink);font:600 var(--fs-350)/1.2 var(--font-display);cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease;text-decoration:none;min-height:44px}
.btn:hover{text-decoration:none;border-color:var(--ink);transform:translateY(-1px)}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-deep);border-color:var(--brand-deep)}
.btn-light{background:transparent;border-color:var(--band-line);color:var(--band-text)}
.btn-light:hover{border-color:var(--band-text)}
.btn-lg{padding:.9rem 1.4rem;font-size:var(--fs-400)}
.btn-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.btn[disabled]{opacity:.6;cursor:progress}

/* ---------- forms ---------- */
.form{display:grid;gap:1rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem}
.field{display:flex;flex-direction:column;gap:.3rem}
.field.span-2{grid-column:1 / -1}
.field label,.field legend{font:600 var(--fs-300)/1.3 var(--font-display);letter-spacing:.02em;color:var(--ink)}
.field .hint{font-weight:400;color:var(--muted);font-family:var(--font-body)}
.field input,.field select,.field textarea{font:inherit;font-size:var(--fs-400);color:var(--ink);background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--r-ctl);padding:.65rem .75rem;min-height:44px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brand-line);outline-offset:0;border-color:var(--brand)}
.field [aria-invalid="true"]{border-color:oklch(0.58 0.17 25)}
fieldset.field{border:0;padding:0;margin:0}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.4rem .8rem}
.check,.radio-row label{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-350);font-weight:400;min-height:32px}
.radio-row{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.check input,.radio-row input{width:18px;height:18px;min-height:0;accent-color:var(--brand)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-status{padding:.75rem 1rem;border-radius:var(--r-ctl);background:var(--paper-3);border-left:3px solid var(--line-2);font-size:var(--fs-350)}
.form-status.is-error{border-left-color:oklch(0.58 0.17 25);background:oklch(0.58 0.17 25 / 0.08)}
.form-status.is-info{border-left-color:var(--brand)}
.form-status.is-ok{border-left-color:var(--signal);background:var(--signal-bg)}
.form-note{font-size:var(--fs-300);color:var(--muted)}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:var(--band-text);margin-top:var(--sp-9);padding:var(--sp-8) 0 var(--sp-6)}
.site-footer a{color:var(--band-text)}
.site-footer .muted,.site-footer .brand-sub{color:var(--band-muted)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.footer-grid h3{color:var(--band-text);font-size:var(--fs-350);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.8rem}
.footer-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:.35rem;font-size:var(--fs-350)}
.footer-brand .brand{color:var(--band-text);margin-bottom:1rem}
.footer-brand p{color:var(--band-muted);font-size:var(--fs-350)}
.contact-lines{list-style:none;padding:0;margin:0;display:grid;gap:.45rem;font-size:var(--fs-350);color:var(--band-muted)}
.contact-lines li{display:flex;gap:.55rem;align-items:flex-start;margin:0}
.contact-lines svg{flex:none;color:oklch(0.74 0.12 258);margin-top:.2rem}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--band-line);font-size:var(--fs-300);color:var(--band-muted)}
.footer-legal .mono{color:var(--band-text)}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .nav{display:none}
  .nav-toggle{display:inline-grid}
  .drawer{display:block;position:fixed;inset:var(--header-h) 0 0 0;background:var(--paper-2);z-index:39;overflow:auto;padding:1.25rem;transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
  .drawer.is-open{opacity:1;transform:none;pointer-events:auto}
  .drawer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}
  .drawer h3{font-size:var(--fs-300);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
  .drawer ul{list-style:none;padding:0;margin:0;display:grid;gap:.2rem}
  .drawer a{display:block;padding:.6rem .4rem;border-bottom:1px solid var(--line);color:var(--ink);font-weight:500}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .form-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .brand-sub{display:none}
  .cred-bar{gap:.3rem .9rem}
  .cred-bar span:nth-child(1),.cred-bar span:nth-child(4){display:none}
}
@media print{
  .site-header,.site-footer,.drawer,.nav-toggle,#__864ai-pill,.cta-band,.sticky-cta{display:none!important}
  body{background:#fff;color:#000}
  .ph{border-color:#999;background:#eee;color:#333}
  /* Print the destination only for inline links inside running prose -- scoped by
     structure (a descendant of a <p>), not by a class list, because every non-prose
     link in this site is structurally NOT inside a <p>: nav/drawer/footer/crumbs links
     sit in <li>, and .need/.door/.card put the <p> INSIDE the <a>, not the
     other way round. That alone excludes nav, footer sitemap, drawer and card-style
     links without having to enumerate their classes. tel:/mailto: hrefs are excluded
     explicitly since their visible text already IS the address or number, and .btn is
     excluded explicitly as a second line of defence in case a button ever ends up
     inside a <p>. u()-relative internal hrefs (site-root paths like /sites/primetrans/…)
     are prefixed with the site's own domain so the printed string is a typeable URL, not
     a path with nothing to resolve it against; hrefs that are already absolute (external
     links) print as-is. Domain literal matches build.py's own SITE_URL placeholder --
     update both together if the real domain changes before launch. */
  p a:not(.btn):not([href^="tel:"]):not([href^="mailto:"])[href^="http"]::after{
    content:" (" attr(href) ")";font-weight:400;font-size:.85em;color:#333}
  p a:not(.btn):not([href^="tel:"]):not([href^="mailto:"])[href^="/"]::after{
    content:" (https://864-ai.com" attr(href) ")";font-weight:400;font-size:.85em;color:#333}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
