/* J&J Technical Services - site styles. Mobile-first, no frameworks. */
:root{--red:#f80202;--red-d:#c40000;--red-l:#ff3d3d;--ink:#141414;--ink2:#1d1d1d;--mute:#5b5f66;--bg:#fff;--soft:#f5f5f3;--line:#e6e6e3;--r:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;padding-bottom:72px}
a{color:var(--red-d)}img{max-width:100%;height:auto;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
h1,h2,h3{line-height:1.15;margin:0 0 .5em;letter-spacing:-.015em}
h2{font-size:clamp(1.65rem,4.4vw,2.3rem)}h3{font-size:1.15rem}
p{margin:0 0 1em}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:800;color:var(--red);margin:0 0 .6em}
.lead{font-size:clamp(1.05rem,2.4vw,1.2rem);color:var(--mute);max-width:62ch}
section{padding:60px 0}
.soft{background:var(--soft)}
.dark{background:var(--ink);color:#fff}.dark .lead,.dark p{color:#cfcfcf}.dark .eyebrow{color:var(--red-l)}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;padding:8px 12px;border-radius:8px}
/* header */
header.site{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:12px}
.brand img{width:min(240px,calc(100vw - 150px));min-width:140px}
nav.main{display:none;gap:24px}
nav.main a{color:var(--ink);text-decoration:none;font-weight:650;font-size:.95rem}
nav.main a:hover,nav.main a[aria-current=page]{color:var(--red)}
.hdr-call .c-full{display:none}
/* buttons */
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border-radius:10px;font-weight:750;text-decoration:none;border:2px solid transparent;font-size:1rem;cursor:pointer;transition:background .15s,color .15s,transform .1s;font-family:inherit}
.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px;flex:none}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-d)}
.btn-ghost{border-color:rgba(255,255,255,.85);color:#fff}.btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-line{border-color:var(--ink);color:var(--ink)}.btn-line:hover{background:var(--ink);color:#fff}
.btn-sm{padding:9px 14px;font-size:.92rem}
.cta{display:flex;flex-wrap:wrap;gap:12px}
/* hero */
.hero{background:radial-gradient(900px 480px at 90% -10%,rgba(248,2,2,.38),transparent 62%),linear-gradient(160deg,#171717,#060606);color:#fff;padding:48px 0 56px;overflow:hidden}
.hero .wrap{display:grid;gap:36px;align-items:center}
.hero h1{font-size:clamp(2.05rem,7vw,3.4rem);max-width:18ch;margin-bottom:.4em}
.hero h1 span{color:var(--red-l)}
.hero .lead{color:#d6d6d6;margin-bottom:26px}
.ticks{display:flex;flex-wrap:wrap;gap:8px 20px;margin:28px 0 0;padding:0;list-style:none;color:#c4c4c4;font-size:.93rem}
.ticks li::before{content:"✓";color:var(--red-l);font-weight:900;margin-right:7px}
.hero-photo{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);border:1px solid #2a2a2a;max-width:460px;justify-self:center;width:100%}
.hero-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;background:linear-gradient(transparent,rgba(0,0,0,.8));font-size:.85rem;color:#ddd}
.page-hero{background:linear-gradient(160deg,#171717,#070707);color:#fff;padding:44px 0 48px}
.page-hero h1{font-size:clamp(1.9rem,6vw,3rem);max-width:20ch}
.page-hero .lead{color:#d0d0d0}
.crumbs{font-size:.85rem;color:#aaa;margin:0 0 14px}.crumbs a{color:#ddd}
/* grids & cards */
.grid{display:grid;gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.card .ico{width:46px;height:46px;border-radius:12px;background:#feeaea;color:var(--red);display:grid;place-items:center;margin-bottom:14px}
.card .ico svg{width:24px;height:24px}
.card p{color:var(--mute);margin:0 0 10px}
.card ul{margin:0;padding-left:18px}.card li{margin:3px 0}
.card a.more{font-weight:700;text-decoration:none}
.why .item{display:flex;gap:14px;align-items:flex-start}
.why .num{flex:0 0 40px;height:40px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:800}
.why h3{margin-bottom:.25em}.why p{margin:0;color:var(--mute)}
.split{display:grid;gap:32px;align-items:center}
.checks{list-style:none;padding:0;margin:0 0 22px}
.checks li{padding:8px 0 8px 30px;position:relative;border-bottom:1px solid rgba(255,255,255,.1)}
.soft .checks li,.plain .checks li{border-bottom-color:var(--line)}
.checks li::before{content:"";position:absolute;left:0;top:13px;width:18px;height:18px;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat}
.chips{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none;margin:18px 0 0}
.chips li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 15px;font-weight:650;font-size:.95rem}
.chips li.home{background:var(--ink);color:#fff;border-color:var(--ink)}
.corridor{background:var(--ink);color:#fff;border-radius:var(--r);padding:26px}
.corridor ol{list-style:none;margin:0;padding:0 0 0 22px;border-left:3px solid var(--red)}
.corridor li{position:relative;padding:7px 0;color:#ddd}
.corridor li::before{content:"";position:absolute;left:-30px;top:14px;width:13px;height:13px;border-radius:50%;background:#fff;border:3px solid var(--red)}
.corridor li.home{color:#fff;font-weight:800}.corridor li.home::before{background:var(--red)}
.corridor .hwy{display:inline-block;background:#fff;color:#1a3d8f;font-weight:900;border-radius:6px;padding:2px 8px;font-size:.85rem;margin-bottom:12px;border:2px solid #1a3d8f}
.photos{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.photos figure{margin:0;border-radius:12px;overflow:hidden;background:#222}
.photos img{width:100%;aspect-ratio:4/5;object-fit:cover}
.photos figcaption{font-size:.82rem;color:var(--mute);padding:8px 2px 0;background:var(--bg)}
.svc{padding:34px 0;border-bottom:1px solid var(--line)}.svc:last-child{border-bottom:0}
.svc .ico{width:52px;height:52px;border-radius:14px;background:#feeaea;color:var(--red);display:grid;place-items:center;margin-bottom:14px}
.svc .ico svg{width:28px;height:28px}
.svc ul{columns:1;padding-left:18px;margin:0}.svc li{margin:4px 0;break-inside:avoid}
.band{background:var(--red);color:#fff;padding:40px 0}
.band .wrap{display:grid;gap:18px;align-items:center}
.band h2{margin:0;font-size:clamp(1.4rem,4vw,1.9rem)}.band p{margin:.3em 0 0;color:#ffe3e3}
.band .btn-ghost:hover{color:var(--red)}
.band .btn-white{background:#fff;color:var(--red-d)}.band .btn-white:hover{background:#ffeaea}
/* contact */
.contact-list{list-style:none;padding:0;margin:0 0 20px}
.contact-list li{padding:12px 0;border-bottom:1px solid var(--line)}
.contact-list strong{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;color:var(--mute)}
.contact-list a{font-weight:750;font-size:1.1rem;text-decoration:none}
form.quote{display:grid;gap:14px}
form.quote label{font-weight:650;font-size:.92rem;display:grid;gap:6px}
form.quote input,form.quote select,form.quote textarea{font:inherit;padding:12px 14px;border:1px solid #c9c9c4;border-radius:10px;background:#fff;width:100%;color:var(--ink)}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{outline:2px solid var(--red);border-color:transparent}
form.quote textarea{min-height:130px;resize:vertical}
.row2{display:grid;gap:14px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{min-height:1.4em;font-weight:650;margin:0}.form-msg.ok{color:#0f7a3a}.form-msg.err{color:var(--red-d)}
.fine{font-size:.85rem;color:var(--mute);margin:0}
/* footer */
footer.site{background:#0b0b0b;color:#a9a9a9;padding:44px 0 28px;font-size:.92rem}
footer.site a{color:#eee;text-decoration:none}footer.site a:hover{text-decoration:underline}
.fgrid{display:grid;gap:26px}
.foot-logo{display:inline-block;background:#fff;border-radius:10px;padding:8px 12px;margin-bottom:12px}
.foot-logo img{width:220px}
footer.site h3{color:#fff;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 10px}
footer.site ul{list-style:none;margin:0;padding:0}footer.site li{margin:5px 0}
.family{border-top:1px solid #222;margin-top:30px;padding-top:20px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.family .lbl{color:#777;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;flex-basis:100%}
.family a{display:inline-flex;align-items:center;gap:8px;color:#ddd;font-size:.88rem}
.family img{width:22px;height:22px;border-radius:5px}
.family .dot{width:22px;height:22px;border-radius:5px;background:#2b2b2b;color:#fff;display:grid;place-items:center;font-weight:900;font-size:.72rem}
.family small{color:#777}
.legal{margin-top:18px;color:#6f6f6f;font-size:.8rem;display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:space-between}
.legal a{color:#9a9a9a!important}
/* sticky mobile call bar */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(10,10,10,.97);border-top:1px solid #222}
.callbar .btn{flex:1;padding:12px}
@media(min-width:480px){.hdr-call .c-full{display:inline}.hdr-call .c-short{display:none}}
@media(min-width:720px){
  body{padding-bottom:0}.callbar{display:none}
  section{padding:84px 0}
  header.site .wrap{height:80px}.brand img{width:300px}
  .grid.two,.row2,.split{grid-template-columns:1fr 1fr}
  .grid.three{grid-template-columns:repeat(2,1fr)}
  .photos{grid-template-columns:repeat(3,1fr)}
  .svc ul{columns:2}.svc ul.checks{columns:1}
  .fgrid{grid-template-columns:1.4fr 1fr 1fr}
  .band .wrap{grid-template-columns:1fr auto}
  .hero{padding:80px 0 88px}
}
@media(min-width:980px){
  nav.main{display:flex}
  .grid.three{grid-template-columns:repeat(3,1fr)}
  .hero .wrap{grid-template-columns:1.25fr .75fr}
  .hero-photo{justify-self:end}
  .split.wide-left{grid-template-columns:1.2fr .8fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* family of sites */
.fam-grid{display:grid;gap:14px;grid-template-columns:1fr;margin-top:22px}
@media(min-width:700px){.fam-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.fam-grid{grid-template-columns:repeat(4,1fr)}}
.fam-card{display:flex;gap:14px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:#fff;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .1s}
.fam-card:hover{border-color:var(--red);transform:translateY(-1px)}
.fam-card img,.fam-card .dot{width:44px;height:44px;border-radius:10px;flex:none}
.fam-card .dot{display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:800;font-size:.9rem}
.fam-card strong{display:block;font-size:1.05rem}.fam-card span{color:var(--mute);font-size:.92rem}

/* mobile nav strip (10/18/2026) */
@media(max-width:979px){
  header.site .wrap{flex-wrap:wrap;height:auto;padding-top:8px;row-gap:0}
  nav.main{display:flex;order:3;width:100%;gap:20px;overflow-x:auto;white-space:nowrap;padding:6px 0 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  nav.main::-webkit-scrollbar{display:none}
  nav.main a{font-size:.92rem;flex:0 0 auto}
  nav.main a[href="/sentinel.html"]{color:var(--red);order:-1}
}

/* rights strip (header bottom) */
.rights-strip{border-top:1px solid var(--line);background:var(--soft)}
.rights-strip .wrap{display:block;height:auto;padding-top:5px;padding-bottom:6px}
.rights-strip p{margin:0;max-width:1080px;font-size:.78rem;line-height:1.45;color:var(--ink2);font-weight:500}
.rights-strip p::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:8px;vertical-align:1px}
@media(max-width:720px){.rights-strip p{font-size:.7rem;line-height:1.4}.rights-strip .wrap{padding-top:4px;padding-bottom:5px}}
.about-rights{max-width:860px;margin-top:.8em;font-weight:600}
