:root { color-scheme: dark; --black:#3c4149; --ink:#24282e; --charcoal:#08090a; --charcoal-light:#121419; --red:#d9292f; --red-dark:#a9171c; --white:#f4f5f7; --muted:#c3c7ce; --line:rgba(255,255,255,.26); --display:"Barlow Condensed","Arial Narrow",sans-serif; --body:Inter,Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:6rem; }
body { margin:0; background:var(--black); color:var(--white); font-family:var(--body); font-size:1rem; line-height:1.7; }
a { color:inherit; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:100; background:var(--white); color:var(--black); padding:.75rem 1rem; }
.skip-link:focus { top:1rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:absolute; inset:0 0 auto; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:2rem; width:min(100% - 3rem,92rem); margin-inline:auto; padding-block:1rem; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; flex:0 0 auto; text-decoration:none; }
.brand img { display:block; width:8.25rem; height:auto; border-radius:.2rem; }
nav { display:flex; justify-content:flex-end; gap:clamp(.8rem,1.5vw,1.65rem); }
nav a { position:relative; color:#d9dce2; font-size:clamp(.72rem,.9vw,.86rem); font-weight:600; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; white-space:nowrap; }
nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-.4rem; height:2px; background:var(--red); transition:right .2s ease; }
nav a:hover::after,nav a:focus-visible::after { right:0; }
.nav-toggle { display:none; }
.hero { min-height:48rem; display:grid; grid-template-columns:minmax(0,1.4fr) minmax(18rem,.6fr); align-items:end; gap:clamp(3rem,8vw,8rem); position:relative; isolation:isolate; overflow:hidden; width:100%; margin-inline:auto; padding:12rem max(1.5rem,calc((100vw - 88rem)/2)) 6rem; background-image:linear-gradient(90deg,rgba(8,9,10,.96) 0%,rgba(8,9,10,.83) 46%,rgba(8,9,10,.34) 100%),url("CDS-Journey-to-Light.webp"); background-position:center; background-size:cover; }
.hero::before { content:""; position:absolute; z-index:-2; width:42rem; height:42rem; top:5rem; right:-12rem; background:radial-gradient(circle,rgba(217,41,47,.16),rgba(217,41,47,0) 68%); }
.hero-lines { position:absolute; z-index:-1; inset:0; opacity:.45; background-image:linear-gradient(110deg,transparent 0 67%,rgba(255,255,255,.07) 67% 67.15%,transparent 67.15% 76%,rgba(217,41,47,.18) 76% 76.2%,transparent 76.2%); }
.eyebrow { margin:0 0 1.25rem; color:var(--red); font-size:.82rem; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
h1,h2,h3 { font-family:var(--display); line-height:.98; text-transform:uppercase; }
h1 { max-width:12ch; margin:0; font-size:clamp(4rem,8vw,7.6rem); letter-spacing:-.035em; }
h1 span { color:var(--red); }
.hero-copy { max-width:43rem; margin:2rem 0 0; color:#c9cdd3; font-size:clamp(1.05rem,1.6vw,1.2rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.25rem; }
.button { display:inline-flex; min-height:3.35rem; align-items:center; justify-content:center; padding:.8rem 1.35rem; border:1px solid transparent; font-size:.86rem; font-weight:700; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--red); }
.button-primary:hover { background:#e63b41; }
.button-secondary { border-color:rgba(255,255,255,.5); }
.button-secondary:hover { border-color:var(--white); }
.readiness-panel { align-self:end; border-top:3px solid var(--red); background:linear-gradient(145deg,rgba(8,9,10,.9),rgba(14,16,19,.94)); padding:2rem; box-shadow:0 1.5rem 4rem rgba(0,0,0,.3); }
.panel-number { margin:0; color:#707680; font:600 3rem/1 var(--display); }
.panel-label { margin:1.5rem 0 .45rem; color:var(--muted); font-size:.76rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.readiness-panel blockquote { margin:0; font:600 2rem/1.05 var(--display); text-transform:uppercase; }
.panel-rule { width:3rem; height:2px; margin:1.4rem 0; background:var(--red); }
.readiness-panel>p:last-child { margin:0; color:var(--muted); font-size:.94rem; line-height:1.65; }
.mission,.content-section,.contact-section,footer { width:min(100% - 3rem,88rem); margin-inline:auto; }
.mission { padding:7rem 0; border-top:1px solid var(--line); }
.section-label { display:flex; align-items:center; gap:1rem; margin-bottom:3rem; color:var(--red); font-size:.78rem; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.section-label::after { content:""; width:5rem; height:1px; background:var(--red); }
.mission-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,9vw,9rem); }
.mission h2,.section-heading h2,.section-intro h2,.contact-section h2 { margin:0; font-size:clamp(2.8rem,5vw,4.8rem); }
.mission-copy { color:#c1c5cc; font-size:1.05rem; }
.mission-copy p:first-child { margin-top:0; }
.mission-copy p:last-child { margin-bottom:0; }
.front-page-tools { width:min(100% - 3rem,88rem); margin:0 auto; padding:0 0 7rem; }
.course-overview { display:grid; grid-template-columns:minmax(18rem,.72fr) minmax(26rem,1.28fr); gap:clamp(2rem,5vw,5rem); align-items:center; padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--line); border-top:3px solid var(--red); background:linear-gradient(135deg,rgba(8,9,10,.92),rgba(27,30,36,.9)); }
.course-overview-copy h2,.pathfinder-intro h2 { margin:0; font-size:clamp(2.5rem,4.5vw,4.25rem); }
.course-overview-copy>p:not(.eyebrow),.pathfinder-intro>p:not(.eyebrow) { margin:1.25rem 0 0; color:var(--muted); }
.course-overview-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.course-overview-preview { display:block; border:1px solid var(--line); box-shadow:0 1.5rem 3.5rem rgba(0,0,0,.28); transition:transform .2s ease,border-color .2s ease; }
.course-overview-preview:hover,.course-overview-preview:focus-visible { border-color:var(--red); transform:translateY(-.2rem); }
.course-overview-preview img { display:block; width:100%; height:auto; }
.pathfinder { margin-top:2rem; padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--line); background:rgba(8,9,10,.68); }
.pathfinder-intro { display:grid; grid-template-columns:minmax(18rem,.8fr) minmax(20rem,1.2fr); column-gap:clamp(2rem,5vw,5rem); align-items:end; }
.pathfinder-intro .eyebrow { grid-column:1/-1; }
.pathfinder-intro>div>p { margin:0; color:var(--muted); }
.pathfinder-skip { margin-top:1rem!important; padding-left:1rem; border-left:3px solid var(--red); color:var(--white)!important; font-weight:600; }
.pathfinder-skip a { color:var(--white); text-decoration-color:var(--red); text-underline-offset:.25em; }
.pathfinder-assessment { margin-top:2.25rem; }
.section-directory { width:100%; padding:7rem max(1.5rem,calc((100vw - 88rem)/2)); background:var(--charcoal); }
.section-heading { display:grid; grid-template-columns:1.35fr .65fr; gap:4rem; align-items:end; margin-bottom:3.5rem; }
.section-heading>p { margin:0; color:var(--muted); }
.directory-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.directory-grid>a { position:relative; min-height:19rem; display:flex; flex-direction:column; padding:1.65rem; overflow:hidden; background:linear-gradient(145deg,rgba(18,20,24,.96),rgba(36,40,48,.78)); text-decoration:none; transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
.directory-grid>a::before { content:""; position:absolute; top:0; left:0; width:100%; height:3px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.directory-grid>a:hover,.directory-grid>a:focus-visible { z-index:1; background:linear-gradient(145deg,rgba(42,46,55,.98),rgba(22,24,29,.96)); transform:translateY(-.2rem); box-shadow:0 1rem 2rem rgba(0,0,0,.2); }
.directory-grid>a:hover::before,.directory-grid>a:focus-visible::before { transform:scaleX(1); }
.directory-number { color:var(--red); font:600 .92rem/1 var(--display); letter-spacing:.1em; }
.directory-grid strong { max-width:14ch; margin-top:1.8rem; color:var(--white); font:600 1.55rem/1.05 var(--display); text-transform:uppercase; }
.directory-grid p { margin:.85rem 0 1.4rem; color:var(--muted); font-size:.9rem; line-height:1.65; }
.directory-action { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:auto; padding-top:1rem; border-top:1px solid var(--line); color:var(--white); font-size:.72rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.directory-action span { color:var(--red); font-size:1rem; transition:transform .2s ease; }
.directory-grid>a:hover .directory-action span,.directory-grid>a:focus-visible .directory-action span { transform:translateX(.25rem); }
.content-section { padding:7rem 0; }
.section-dark { width:100%; max-width:none; padding:7rem max(1.5rem,calc((100vw - 88rem)/2)); background:linear-gradient(135deg,#08090a,#0e1013); }
.section-intro { display:grid; grid-template-columns:7rem 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; width:100vw; margin:0 0 3.5rem calc(50% - 50vw); padding:clamp(1.5rem,4vw,3rem) max(1.5rem,calc((100vw - 88rem)/2)); border:1px solid var(--line); border-left:4px solid var(--red); background-image:linear-gradient(90deg,rgba(8,9,10,.95),rgba(8,9,10,.7)),url("wesley-brown-classroom.webp"); background-size:cover; box-shadow:0 1.25rem 3rem rgba(0,0,0,.18); }
#instructors .section-intro,#medical-training .section-intro { background-position:center 38%; }
#family-defense .section-intro,#products .section-intro { background-position:center 50%; }
#workplace-defense .section-intro,#who-we-serve .section-intro { background-position:center 62%; }
#church-security .section-intro,#training .section-intro { background-position:center 74%; }
.section-number { margin:0; color:rgba(255,255,255,.14); font:700 clamp(4rem,7vw,7rem)/.8 var(--display); }
.section-intro>div>p:last-child { max-width:44rem; margin:1.25rem 0 0; color:var(--muted); font-size:1.05rem; }
.instructor-standard { margin:0 0 3.5rem; padding:clamp(1.75rem,4vw,3rem); border:1px solid var(--line); border-top:3px solid var(--red); background:linear-gradient(145deg,rgba(8,9,10,.82),rgba(26,29,35,.82)); }
.standard-intro { display:grid; grid-template-columns:minmax(15rem,.7fr) minmax(20rem,1.3fr); column-gap:clamp(2rem,5vw,5rem); align-items:start; }
.standard-intro .eyebrow { grid-column:1/-1; margin-bottom:1rem; }
.standard-intro h3 { margin:0; font-size:clamp(2.1rem,4vw,3.6rem); line-height:.98; }
.standard-intro>p:last-child { margin:0; color:var(--muted); }
.checklist-lead { margin:2.5rem 0 1rem; color:var(--white); font-weight:600; }
.instructor-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:0; padding:1px; list-style:none; counter-reset:instructor-quality; background:var(--line); }
.instructor-checklist li { position:relative; min-height:10rem; padding:1.5rem 1.5rem 1.5rem 4.4rem; counter-increment:instructor-quality; background:rgba(14,16,19,.94); }
.instructor-checklist li::before { content:counter(instructor-quality,decimal-leading-zero); position:absolute; top:1.45rem; left:1.4rem; color:var(--red); font:700 1.05rem/1 var(--display); letter-spacing:.08em; }
.instructor-checklist strong,.instructor-checklist span { display:block; }
.instructor-checklist strong { margin-bottom:.55rem; color:var(--white); font:600 1.18rem/1.15 var(--display); letter-spacing:.025em; }
.instructor-checklist span { color:var(--muted); font-size:.92rem; line-height:1.55; }
.standard-closing { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(1.5rem,4vw,4rem); align-items:start; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.standard-closing p { margin:0; }
.standard-closing>p:first-child { color:var(--white); font-weight:600; }
.source-note { color:var(--muted); font-size:.82rem; line-height:1.55; }
.source-note a { color:var(--white); text-decoration-color:var(--red); text-underline-offset:.2em; }
.source-note a:hover,.source-note a:focus-visible { color:var(--red); }
.instructor-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; align-items:start; }
.instructor-profile { padding:clamp(1.75rem,3vw,2.5rem); border:1px solid var(--line); border-top:3px solid var(--red); background:rgba(8,9,10,.72); }
.instructor-profile h3 { margin:.35rem 0 1.6rem; font-size:clamp(2rem,3.5vw,3rem); letter-spacing:.01em; }
.instructor-profile p:not(.profile-role) { margin:0; color:var(--muted); font-size:.98rem; }
.instructor-profile p:not(.profile-role)+p { margin-top:1.25rem; }
.profile-photo { margin:0 0 1.8rem; border:1px solid var(--line); border-bottom:3px solid var(--red); background:var(--charcoal); overflow:hidden; }
.profile-photo img { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; }
.profile-role { margin:0; color:var(--red); font-size:.76rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.faith-statement { margin-top:1.8rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.faith-statement h4 { margin:0 0 .75rem; color:var(--white); font:600 1.35rem/1.1 var(--display); letter-spacing:.04em; text-transform:uppercase; }
.instructor-profile .faith-statement p { margin:0; }
.biography-heading { margin:1.8rem 0 .85rem; padding-top:1.5rem; border-top:1px solid var(--line); color:var(--white); font:600 1.35rem/1.1 var(--display); letter-spacing:.04em; text-transform:uppercase; }
.subsection-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.subsection-grid article { min-height:14rem; padding:2rem; border:1px solid var(--line); border-top:3px solid var(--red); background:rgba(8,9,10,.68); }
.section-dark .subsection-grid article { background:rgba(36,40,48,.72); }
.subsection-grid h3 { margin:0 0 1.1rem; font-size:1.65rem; letter-spacing:.015em; }
.subsection-grid p { margin:0; color:var(--muted); font-size:.95rem; }
.training-course-intro { display:grid; grid-template-columns:minmax(18rem,.75fr) minmax(20rem,1.25fr); gap:clamp(2rem,5vw,5rem); align-items:end; margin-bottom:1.75rem; }
.course-registration { margin:3rem 0 0; padding:clamp(1.5rem,4vw,2.5rem); border:1px solid var(--line); border-top:4px solid var(--red); background:linear-gradient(145deg,rgba(36,40,48,.86),rgba(8,9,10,.96)); box-shadow:0 1.25rem 3rem rgba(0,0,0,.18); scroll-margin-top:8rem; }
.course-registration-intro { display:grid; grid-template-columns:minmax(18rem,.8fr) minmax(20rem,1.2fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.course-registration-intro .eyebrow { margin-bottom:.7rem; }
.course-registration-intro h3 { margin:0; font-size:clamp(2rem,3.7vw,3.15rem); }
.course-registration-intro>div:last-child p { margin:0 0 .9rem; color:var(--muted); }
.course-registration-grid { display:grid; grid-template-columns:minmax(16rem,.7fr) minmax(22rem,1.3fr); gap:1rem; margin-top:1.5rem; }
.course-registration-grid article { padding:1.5rem; border:1px solid var(--line); background:rgba(8,9,10,.62); }
.course-registration-grid h4 { margin:.45rem 0 .8rem; font-family:"Barlow Condensed",sans-serif; font-size:1.65rem; line-height:1.05; }
.course-registration-grid p:not(.path-label) { margin:.7rem 0 0; color:var(--muted); }
.registration-form-card { border-left:3px solid var(--red)!important; }
.registration-form-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.25rem; }
.registration-form-note { font-size:.8rem; }
.training-course-intro .eyebrow { margin-bottom:.7rem; }
.training-course-intro h3 { margin:0; font-size:clamp(2rem,3.5vw,3rem); }
.training-course-intro>p { margin:0; color:var(--muted); }
.training-course-grid { grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); margin-bottom:1.25rem; }
.training-course-grid article { display:flex; min-height:0; flex-direction:column; }
.training-course-grid .path-label { margin-bottom:.65rem; color:var(--red); font-size:.76rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.training-course-grid h3 { font-size:1.5rem; }
.course-register-link { display:inline-flex; align-items:center; gap:.45rem; margin-top:1.4rem; color:var(--white); font-size:.76rem; font-weight:700; letter-spacing:.08em; text-decoration-color:var(--red); text-transform:uppercase; text-underline-offset:.25em; }
.training-course-grid .course-register-link { margin-top:auto; padding-top:1.4rem; }
.course-register-link:hover,.course-register-link:focus-visible { color:var(--red); }
.course-register-inline { margin-left:1.25rem; }
.program-partner-card { display:grid; grid-template-columns:minmax(13rem,.38fr) minmax(20rem,1.62fr); gap:clamp(1.5rem,4vw,3.5rem); align-items:center; margin:1.5rem 0 2rem; padding:clamp(1.5rem,3vw,2rem); border:1px solid var(--line); border-top:3px solid var(--red); background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(8,9,10,.82)); }
.program-partner-card h3 { margin:.35rem 0 .85rem; font-size:clamp(1.75rem,3vw,2.45rem); }
.program-partner-card p:not(.eyebrow) { margin:0; color:var(--muted); }
.program-logo-link { display:grid; min-height:10rem; place-items:center; padding:1.25rem; border:1px solid rgba(255,255,255,.12); background:#fff; }
.program-logo-link img { display:block; width:min(100%,11rem); height:auto; }
.uscca-program-card .program-logo-link img { width:min(100%,12rem); }
.official-program-link { display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem; color:var(--white); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-decoration-color:var(--red); text-transform:uppercase; text-underline-offset:.25em; }
.official-program-link+.official-program-link { margin-left:1.25rem; }
.official-program-link:hover,.official-program-link:focus-visible { color:var(--red); }
.program-link-list { display:flex; flex-wrap:wrap; column-gap:1.25rem; }
.program-link-list .official-program-link+.official-program-link { margin-left:0; }
.program-partner-card .program-resource-note { margin-top:1rem!important; }
.cds-seminar-card { grid-template-columns:minmax(16rem,.6fr) minmax(22rem,1.4fr); }
.seminar-format-panel { display:grid; grid-template-columns:auto 1fr; gap:.65rem 1rem; align-content:center; padding:clamp(1.5rem,3vw,2.25rem); border-right:1px solid var(--line); background:linear-gradient(145deg,rgba(36,40,48,.96),rgba(8,9,10,.92)); }
.seminar-format-panel .eyebrow { grid-column:1/-1; margin-bottom:.5rem; }
.seminar-format-panel strong { color:var(--red); font:700 2.3rem/.9 var(--display); }
.seminar-format-panel span { align-self:center; color:var(--white); font-size:.82rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.cds-seminar-card>div:last-child { padding:clamp(1.5rem,3vw,2.25rem); }
.cds-seminar-card h3 { margin:.35rem 0 .85rem; font-size:clamp(1.9rem,3vw,2.6rem); }
.cds-seminar-card p:not(.eyebrow) { margin:.75rem 0 0; color:var(--muted); }
.avirt-program-card,.uscca-program-card,.hsi-program-card { grid-template-columns:minmax(18rem,.75fr) minmax(20rem,1.25fr); padding:0; overflow:hidden; }
.program-video { align-self:stretch; display:flex; flex-direction:column; justify-content:center; background:#0b0d10; }
.program-video video,.program-video iframe { display:block; width:100%; aspect-ratio:16/9; border:0; background:#0b0d10; }
.program-video>p { margin:0!important; padding:.7rem 1rem; border-top:1px solid var(--line); color:#aeb3bb!important; font-size:.72rem!important; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.hsi-video-library { gap:1px; background:var(--line); }
.embedded-video { background:#0b0d10; }
.embedded-video>p { margin:0!important; padding:.7rem 1rem; color:#aeb3bb!important; font-size:.72rem!important; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.embedded-video a { color:inherit; text-decoration-color:var(--red); text-underline-offset:.2em; }
.embedded-video a:hover,.embedded-video a:focus-visible { color:var(--white); }
.medical-course-catalog { margin:2.5rem 0 3rem; }
.medical-catalog-intro { display:grid; grid-template-columns:minmax(18rem,.72fr) minmax(22rem,1.28fr); gap:clamp(2rem,5vw,5rem); align-items:end; margin-bottom:1.5rem; }
.medical-catalog-intro h3 { margin:.35rem 0 0; font-size:clamp(2rem,3.5vw,3rem); }
.medical-catalog-intro>p { margin:0; color:var(--muted); }
.medical-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.medical-course-grid article { display:flex; min-height:26rem; flex-direction:column; padding:1.65rem; border:1px solid var(--line); border-top:3px solid var(--red); background:linear-gradient(150deg,rgba(36,40,48,.96),rgba(8,9,10,.92)); }
.medical-course-grid .course-type { margin:0 0 .55rem; color:var(--red); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.medical-course-grid h4 { margin:0 0 .85rem; color:var(--white); font:600 1.65rem/1.05 var(--display); letter-spacing:.02em; }
.medical-course-grid article>p:not(.course-type):not(.course-audience) { margin:0; color:var(--muted); font-size:.92rem; }
.medical-course-grid ul { margin:1.15rem 0 1.35rem; padding-left:1.15rem; color:#d9dde3; font-size:.86rem; }
.medical-course-grid li+li { margin-top:.4rem; }
.medical-course-grid li::marker { color:var(--red); }
.medical-course-grid .course-audience { margin:auto 0 0; padding-top:1rem; border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; }
.medical-course-grid .course-audience strong { color:var(--white); }
.medical-catalog-note { margin:1rem 0 0; padding:1rem 1.2rem; border-left:3px solid var(--red); background:rgba(8,9,10,.62); color:var(--muted); font-size:.84rem; }
.medical-catalog-note strong { color:var(--white); }
.avirt-program-card>div,.uscca-program-card>div,.hsi-program-card>div { padding:clamp(1.5rem,3vw,2.25rem) clamp(1.5rem,3vw,2.5rem) clamp(1.5rem,3vw,2.25rem) 0; }
.avirt-program-card>.program-video,.uscca-program-card>.program-video,.hsi-program-card>.program-video { padding:0; }
.program-heading-with-logo { display:flex; gap:1.25rem; align-items:flex-start; justify-content:space-between; margin-bottom:.85rem; }
.program-heading-with-logo h3 { margin-bottom:0; }
.program-heading-with-logo>img { width:5.25rem; height:auto; padding:.55rem; border:1px solid rgba(255,255,255,.12); background:#fff; }
.program-heading-with-logo>.avirt-logo { width:min(45%,15rem); padding:.7rem; }
.program-heading-logo-link { display:block; flex:0 0 auto; width:min(32%,8rem); padding:.55rem; border:1px solid rgba(255,255,255,.12); background:#fff; }
.program-heading-logo-link img { display:block; width:100%; height:auto; }
.hsi-program-card { margin-top:2rem; }
.training-source-note { margin:0 0 2.5rem; padding:1.25rem 1.4rem; border:1px solid var(--line); border-left:4px solid var(--red); background:rgba(36,40,48,.5); }
.training-source-note p { margin:0; color:var(--muted); font-size:.88rem; }
.training-source-note a { color:var(--white); text-underline-offset:.2em; }
.training-source-note a:hover,.training-source-note a:focus-visible { color:var(--red); }
.family-offerings .path-label { margin:0 0 .85rem; color:var(--red); font-size:.72rem; }
.family-program-copy,.workplace-program-copy,.church-program-copy { max-width:58rem; margin:0 0 2.25rem 12rem; padding-left:2rem; border-left:3px solid var(--red); }
.family-program-copy .eyebrow,.workplace-program-copy .eyebrow,.church-program-copy .eyebrow { margin-bottom:.8rem; }
.family-program-copy h3,.workplace-program-copy h3,.church-program-copy h3 { margin:0 0 1rem; font-size:clamp(2rem,4vw,3.25rem); }
.family-program-copy>p:not(.eyebrow),.workplace-program-copy>p:not(.eyebrow),.church-program-copy>p:not(.eyebrow) { margin:.85rem 0 0; color:var(--muted); }
.family-program-copy>h3+p,.workplace-program-copy>h3+p,.church-program-copy>h3+p { margin-top:0; }
.workplace-offerings { margin-top:1rem; }
.workplace-offerings .path-label,.church-offerings .path-label { margin:0 0 .85rem; color:var(--red); font-size:.72rem; }
.workplace-medical-note { display:grid; grid-template-columns:minmax(16rem,.75fr) minmax(20rem,1.25fr); gap:clamp(2rem,5vw,5rem); align-items:center; margin-top:1rem; padding:1.5rem 1.75rem; border:1px solid var(--line); background:rgba(8,9,10,.52); }
.workplace-medical-note .eyebrow { margin-bottom:.65rem; }
.workplace-medical-note h3 { margin:0; font-size:clamp(1.7rem,3vw,2.4rem); }
.workplace-medical-note>p { margin:0; color:var(--muted); }
.workplace-medical-note a { color:var(--white); text-decoration-color:var(--red); text-underline-offset:.2em; }
.product-category-strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; margin-bottom:1.5rem; padding:1px; background:var(--line); }
.product-category-strip article { min-height:12rem; padding:1.35rem; background:rgba(8,9,10,.78); }
.product-category-strip article.active { box-shadow:inset 0 3px 0 var(--red); background:rgba(36,40,48,.88); }
.product-category-strip span { color:var(--red); font:700 .78rem/1 var(--display); letter-spacing:.12em; }
.product-category-strip h3 { margin:.8rem 0 .65rem; font-size:1.25rem; }
.product-category-strip p { margin:0; color:var(--muted); font-size:.85rem; }
.product-catalog { margin-top:2rem; padding:clamp(1.5rem,4vw,2.5rem); border:1px solid var(--line); background:rgba(8,9,10,.58); }
.product-catalog-intro { display:grid; grid-template-columns:minmax(16rem,.7fr) auto minmax(20rem,1.3fr); gap:clamp(1.5rem,4vw,3rem); align-items:center; margin-bottom:2rem; }
.product-catalog-intro .eyebrow { margin-bottom:.65rem; }
.product-catalog-intro h3 { margin:0; font-size:clamp(2rem,3.7vw,3.1rem); }
.product-catalog-intro>p { margin:0; color:var(--muted); }
.manufacturer-logo { display:grid; width:9rem; min-height:4.5rem; place-items:center; padding:.8rem; border:1px solid var(--line); background:#111317; }
.manufacturer-logo img { display:block; width:100%; height:auto; }
.manufacturer-logo-badge { width:8rem; background:#fff; }
.product-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.product-card { display:grid; grid-template-rows:auto 1fr; overflow:hidden; border:1px solid var(--line); border-top:3px solid var(--red); background:rgba(36,40,48,.72); }
.product-image { display:block; background:#fff; }
.product-image img { display:block; width:100%; aspect-ratio:1/1; object-fit:contain; }
.product-card-body { display:flex; flex-direction:column; padding:1.5rem; }
.product-type { margin:0; color:var(--red); font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.product-card h4 { margin:.65rem 0 1rem; color:var(--white); font:600 clamp(1.55rem,2.4vw,2rem)/1.05 var(--display); text-transform:uppercase; }
.product-card-body>p:not(.product-type):not(.product-legal-note) { margin:0; color:var(--muted); }
.product-facts { display:grid; gap:0; margin:1.25rem 0; border-top:1px solid var(--line); }
.product-facts div { display:grid; grid-template-columns:9rem 1fr; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); }
.product-facts dt { color:var(--white); font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.product-facts dd { margin:0; color:var(--muted); font-size:.9rem; }
.product-legal-note { margin:0 0 1.25rem; color:#c8ccd2; font-size:.82rem; line-height:1.55; }
.product-alert { margin:0 0 1rem; padding:.9rem 1rem; border:1px solid rgba(255,177,92,.5); border-left:4px solid #ffb15c; background:rgba(255,177,92,.08); color:#f3dbc1; font-size:.84rem; line-height:1.55; }
.product-action { display:inline-flex; align-items:center; gap:.45rem; margin-top:auto; color:var(--white); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-decoration-color:var(--red); text-transform:uppercase; text-underline-offset:.25em; }
.product-action:hover,.product-action:focus-visible { color:var(--red); }
.product-price-note { margin:1.25rem 0 0; color:var(--muted); font-size:.78rem; }
.manufacturer-video-section { display:grid; grid-template-columns:minmax(16rem,.35fr) minmax(24rem,1.65fr); gap:1.5rem; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.manufacturer-video-section h4 { margin:.55rem 0 .75rem; color:var(--white); font:600 clamp(1.6rem,3vw,2.25rem)/1 var(--display); text-transform:uppercase; }
.manufacturer-video-section>div:first-child>p:last-child { margin:0; color:var(--muted); font-size:.9rem; }
.product-video-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); }
.product-video-grid article { background:#0b0d10; }
.product-video-grid iframe { display:block; width:100%; aspect-ratio:16/9; border:0; }
.product-video-grid p { display:flex; justify-content:space-between; gap:1rem; margin:0; padding:.75rem 1rem; color:#cdd1d7; font-size:.76rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.product-video-grid p span { flex:0 0 auto; color:var(--red); }
.taser-catalog { background:linear-gradient(145deg,rgba(36,40,48,.68),rgba(8,9,10,.82)); }
.product-catalog-intro-simple { grid-template-columns:minmax(16rem,.7fr) minmax(24rem,1.3fr); }
.product-variant-images { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); }
.product-variant-images .product-image { position:relative; }
.product-variant-images .product-image span { position:absolute; right:.75rem; bottom:.75rem; padding:.35rem .55rem; background:rgba(8,9,10,.88); color:var(--white); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.edc-catalog { background:linear-gradient(145deg,rgba(36,40,48,.72),rgba(8,9,10,.86)); scroll-margin-top:8rem; }
.edc-catalog .product-grid { grid-template-columns:1fr; }
.edc-product-card { grid-template-rows:auto 1fr; }
.edc-variant-images { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); }
.edc-variant-images figure { position:relative; margin:0; overflow:hidden; background:#111317; }
.edc-variant-images img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.edc-variant-images figcaption { position:absolute; right:.85rem; bottom:.85rem; padding:.4rem .65rem; border:1px solid rgba(255,255,255,.4); background:rgba(8,9,10,.9); color:var(--white); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.workplace-checks { margin-top:2rem; padding:clamp(1.25rem,3vw,2rem); border:1px solid var(--line); background:rgba(8,9,10,.48); }
.check-suite-intro { max-width:58rem; margin-bottom:1.5rem; }
.check-suite-intro .eyebrow { margin-bottom:.65rem; }
.check-suite-intro h3 { margin:0 0 .8rem; font-size:clamp(2rem,3.5vw,3rem); }
.check-suite-intro>p:last-child { margin:0; color:var(--muted); }
.workplace-checks .assessment { margin-top:.75rem; }
.family-paths { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1rem; }
.family-paths article { padding:1.5rem 1.75rem; border:1px solid var(--line); background:rgba(8,9,10,.52); }
.family-paths h3 { margin:.35rem 0 .7rem; font-size:1.45rem; }
.family-paths p:last-child { margin:0; color:var(--muted); font-size:.92rem; }
.path-label,.resource-source { margin:0; color:var(--red); font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.family-resource-section { margin-top:2rem; padding:clamp(1.5rem,4vw,2.5rem); border:1px solid var(--line); background:rgba(8,9,10,.68); }
.resource-intro { display:grid; grid-template-columns:minmax(18rem,.75fr) minmax(20rem,1.25fr); gap:clamp(2rem,5vw,5rem); align-items:end; margin-bottom:1.75rem; }
.resource-intro .eyebrow { margin-bottom:.7rem; }
.resource-intro h3 { margin:0; font-size:clamp(2rem,3.5vw,3rem); }
.resource-intro>p { margin:0; color:var(--muted); }
.resource-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.resource-intro-secondary { margin-top:2.5rem; padding-top:2rem; border-top:1px solid var(--line); }
.resource-source-note { margin-top:2rem; padding:1.25rem 1.4rem; border:1px solid var(--line); border-left:4px solid var(--red); background:rgba(36,40,48,.5); }
.resource-source-note p { margin:0; color:var(--muted); font-size:.88rem; }
.resource-source-note .eyebrow { margin-bottom:.55rem; color:var(--red); }
.resource-source-note a { color:var(--white); text-underline-offset:.2em; }
.resource-card { display:flex; min-height:18rem; flex-direction:column; padding:1.5rem; border:1px solid var(--line); border-top:3px solid var(--red); background:rgba(36,40,48,.76); }
.resource-card h4 { margin:.75rem 0; color:var(--white); font:600 1.35rem/1.1 var(--display); letter-spacing:.02em; text-transform:uppercase; }
.resource-card>p:not(.resource-source) { margin:0 0 1.25rem; color:var(--muted); font-size:.9rem; }
.resource-link { margin-top:auto; color:var(--white); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-decoration-color:var(--red); text-transform:uppercase; text-underline-offset:.25em; }
.resource-link:hover,.resource-link:focus-visible { color:var(--red); }
.assessment { margin-top:2rem; }
.assessment details { border:1px solid var(--line); background:rgba(36,40,48,.72); }
.section-dark .assessment details { background:rgba(8,9,10,.8); }
.assessment summary { display:grid; grid-template-columns:auto 1fr auto; gap:1rem; align-items:center; min-height:5.25rem; padding:1.15rem 1.4rem; cursor:pointer; list-style:none; }
.assessment summary::-webkit-details-marker { display:none; }
.assessment summary:focus-visible { outline:3px solid rgba(217,41,47,.6); outline-offset:3px; }
.assessment-kicker { color:var(--red); font:700 .76rem/1 var(--body); letter-spacing:.14em; text-transform:uppercase; }
.assessment-title { font:600 1.55rem/1.05 var(--display); text-transform:uppercase; }
.assessment-toggle { display:inline-flex; align-items:center; gap:.55rem; color:#dfe2e7; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.assessment-toggle::after { content:"+"; display:grid; width:1.75rem; height:1.75rem; place-items:center; border:1px solid var(--line); color:var(--red); font:600 1.15rem/1 var(--body); }
.assessment details[open] .assessment-toggle::after { content:"−"; }
.assessment-body { padding:0 1.4rem 1.5rem; border-top:1px solid var(--line); }
.assessment-intro { display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:start; padding:1.5rem 0; }
.assessment-intro p { max-width:52rem; margin:0; color:var(--muted); }
.privacy-note { white-space:nowrap; color:#d5d8dd!important; font-size:.8rem; font-weight:600; }
.privacy-note::before { content:""; display:inline-block; width:.55rem; height:.55rem; margin-right:.5rem; border:2px solid var(--red); border-radius:50%; vertical-align:-.05rem; }
.question-list { display:grid; gap:.8rem; counter-reset:assessment; }
.question { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1.5rem; align-items:center; padding:1rem 1.1rem; border:1px solid var(--line); background:rgba(255,255,255,.025); counter-increment:assessment; }
.question-text { margin:0; color:#e4e6ea; font-size:.96rem; line-height:1.5; }
.question-text::before { content:counter(assessment,decimal-leading-zero); margin-right:.8rem; color:var(--red); font:600 .83rem/1 var(--display); letter-spacing:.08em; }
.choices { display:flex; flex-wrap:wrap; gap:.45rem; border:0; padding:0; margin:0; }
.choice { position:relative; }
.choice input { position:absolute; opacity:0; pointer-events:none; }
.choice span { display:inline-flex; min-height:2.45rem; align-items:center; justify-content:center; padding:.45rem .8rem; border:1px solid rgba(255,255,255,.32); color:#c8ccd2; cursor:pointer; font-size:.78rem; font-weight:700; letter-spacing:.04em; }
.choice input:focus-visible+span { outline:3px solid rgba(217,41,47,.55); outline-offset:2px; }
.choice input:checked+span { border-color:var(--red); background:var(--red); color:var(--white); }
.assessment-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.25rem; }
.assessment button { font-family:var(--body); cursor:pointer; }
.assessment-reset { background:transparent; border-color:rgba(255,255,255,.45); color:var(--white); }
.assessment-result { display:none; margin-top:1.25rem; padding:1.25rem 1.35rem; border-left:3px solid var(--red); background:rgba(217,41,47,.08); }
.assessment-result.visible { display:block; }
.assessment-result h4 { margin:0 0 .4rem; font:600 1.5rem/1 var(--display); text-transform:uppercase; }
.assessment-result p { margin:.4rem 0 0; color:#c9cdd3; }
.assessment-result .score { color:var(--red); font-weight:700; }
.category-breakdown { margin:1.15rem 0; padding:1rem; border:1px solid var(--line); background:rgba(8,9,10,.48); }
.category-breakdown h5 { margin:0; color:var(--white); font:600 1.1rem/1.1 var(--display); letter-spacing:.04em; text-transform:uppercase; }
.category-breakdown>p { margin:.5rem 0 .85rem; font-size:.9rem; }
.category-breakdown ul { display:grid; gap:.45rem; margin:0; padding:0; list-style:none; }
.category-breakdown li { display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0; border-top:1px solid rgba(255,255,255,.09); }
.category-breakdown li span { color:#dfe2e7; }
.category-breakdown li strong { flex:0 0 auto; color:#dfe2e7; font-size:.82rem; letter-spacing:.03em; }
.category-breakdown .category-priority { color:#ff696e; }
.category-breakdown .category-developing { color:#ffb15c; }
.category-breakdown .category-established { color:#d7dce3; }
.category-breakdown .category-strong { color:#9fd5b0; }
.pathway-link { display:inline-flex; align-items:center; gap:.65rem; color:var(--white); font-weight:700; letter-spacing:.05em; text-decoration-color:var(--red); text-transform:uppercase; text-underline-offset:.25em; }
.pathway-link span { color:var(--red); }
.pathway-secondary a { color:var(--white); text-decoration-color:var(--red); text-underline-offset:.2em; }
.pathway-score-list { margin:1.15rem 0; padding:1rem; border:1px solid var(--line); background:rgba(8,9,10,.48); }
.pathway-score-list h5 { margin:0; color:var(--white); font:600 1.1rem/1.1 var(--display); letter-spacing:.04em; text-transform:uppercase; }
.pathway-score-list>p { margin:.5rem 0 .85rem; font-size:.9rem; }
.pathway-score-list ul { display:grid; gap:.45rem; margin:0; padding:0; list-style:none; }
.pathway-score-list li { display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0; border-top:1px solid rgba(255,255,255,.09); }
.pathway-score-list a { color:#dfe2e7; text-decoration-color:var(--red); text-underline-offset:.2em; }
.pathway-score-list strong { flex:0 0 auto; color:var(--red); }
.assessment-disclaimer { margin:1rem 0 0; color:#858b95; font-size:.78rem; line-height:1.55; }
.assessment-followup { margin-top:1.4rem; padding:clamp(1.15rem,2.5vw,1.75rem); border:1px solid var(--line); border-top:3px solid var(--red); background:rgba(8,9,10,.58); }
.assessment-followup[hidden] { display:none; }
.assessment-followup-intro { display:grid; grid-template-columns:minmax(15rem,.75fr) minmax(20rem,1.25fr); gap:2rem; align-items:end; margin-bottom:1.4rem; }
.assessment-followup-intro h4 { margin:.35rem 0 0; color:var(--white); font:600 clamp(1.65rem,3vw,2.25rem)/1 var(--display); text-transform:uppercase; }
.assessment-followup-intro>p { margin:0; color:var(--muted); font-size:.9rem; line-height:1.6; }
.assessment-followup-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.assessment-followup-form label { display:grid; gap:.45rem; color:#dfe2e7; font-size:.84rem; font-weight:700; line-height:1.4; }
.assessment-followup-form label small { color:#969ca6; font-size:.74rem; font-weight:400; }
.assessment-followup-form input:not([type="checkbox"]),.assessment-followup-form select { width:100%; min-height:2.9rem; padding:.7rem .8rem; border:1px solid rgba(255,255,255,.32); border-radius:0; outline:none; background:#111317; color:var(--white); font:inherit; }
.assessment-followup-form input:focus,.assessment-followup-form select:focus { border-color:var(--red); box-shadow:0 0 0 2px rgba(217,41,47,.18); }
.assessment-consent { grid-template-columns:auto 1fr!important; gap:.75rem!important; align-items:start; margin-top:1.2rem; padding:1rem; border:1px solid rgba(255,255,255,.24); background:rgba(255,255,255,.025); font-weight:500!important; }
.assessment-consent input { width:1.1rem; height:1.1rem; margin:.15rem 0 0; accent-color:var(--red); }
.assessment-privacy-warning { margin:1rem 0 0; padding:.85rem 1rem; border-left:3px solid var(--red); background:rgba(217,41,47,.08); color:#c9cdd3; font-size:.8rem; line-height:1.55; }
.assessment-followup-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.2rem; }
.assessment-delivery-note { margin:1rem 0 0; color:#989ea7; font-size:.78rem; line-height:1.55; }
.assessment-followup-status { min-height:1.35rem; margin:.65rem 0 0; color:#dfe2e7; font-size:.82rem; font-weight:600; }
.testimonial-intake { margin-top:2.5rem; padding:clamp(1.35rem,3vw,2.25rem); border:1px solid var(--line); border-top:3px solid var(--red); background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(8,9,10,.8)); }
.testimonial-intro { display:grid; grid-template-columns:minmax(16rem,.8fr) minmax(20rem,1.2fr); gap:2rem; align-items:end; margin-bottom:2rem; }
.testimonial-intro h3 { margin:.35rem 0 0; font-size:clamp(2rem,4vw,3rem); }
.testimonial-intro>p { margin:0; color:var(--muted); }
.testimonial-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(16rem,.55fr); gap:2rem; align-items:start; }
.testimonial-form { padding:clamp(1.15rem,2.5vw,1.75rem); border:1px solid var(--line); background:rgba(8,9,10,.58); }
.testimonial-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.testimonial-form label { display:grid; gap:.45rem; color:#dfe2e7; font-size:.86rem; font-weight:700; line-height:1.45; }
.testimonial-form label>span { letter-spacing:.03em; }
.testimonial-form small { color:#9298a2; font-size:.74rem; font-weight:400; line-height:1.45; }
.testimonial-form input,.testimonial-form select,.testimonial-form textarea { width:100%; min-height:2.9rem; padding:.7rem .8rem; border:1px solid rgba(255,255,255,.32); border-radius:0; outline:none; background:#111317; color:var(--white); font:inherit; }
.testimonial-form textarea { min-height:9rem; resize:vertical; }
.testimonial-form input:focus,.testimonial-form select:focus,.testimonial-form textarea:focus { border-color:var(--red); box-shadow:0 0 0 2px rgba(217,41,47,.18); }
.testimonial-message { grid-column:1/-1; }
.testimonial-consent { grid-template-columns:auto 1fr!important; gap:.75rem!important; align-items:start; margin-top:1.15rem; font-weight:400!important; }
.testimonial-consent input { width:1.1rem; min-height:1.1rem; margin-top:.2rem; accent-color:var(--red); }
.testimonial-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.25rem; }
.testimonial-reset,.testimonial-copy { border-color:rgba(255,255,255,.45); background:transparent; color:var(--white); }
.testimonial-privacy { margin:1rem 0 0; color:#858b95; font-size:.78rem; line-height:1.55; }
.testimonial-process { padding:1.5rem; border-left:3px solid var(--red); background:rgba(217,41,47,.07); }
.testimonial-process h4,.testimonial-prepared h4 { margin:.35rem 0 1rem; font:600 1.55rem/1.05 var(--display); text-transform:uppercase; }
.testimonial-process ol { display:grid; gap:.75rem; margin:1.15rem 0; padding-left:1.25rem; color:#d4d8de; }
.testimonial-process>p:last-child { margin-bottom:0; color:var(--muted); font-size:.88rem; }
.testimonial-prepared { margin-top:1.25rem; padding:1.25rem; border:1px solid var(--line); background:#0b0d10; }
.testimonial-prepared pre { max-height:22rem; overflow:auto; padding:1rem; border:1px solid rgba(255,255,255,.22); white-space:pre-wrap; word-break:break-word; color:#dfe2e7; font:400 .84rem/1.55 var(--body); }
.testimonial-prepared>p:last-child { margin:.8rem 0 0; color:#9fd5b0; }
.section-return { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.75rem; margin-top:2.5rem; }
.back-to-top { display:inline-flex; min-height:2.75rem; align-items:center; gap:.65rem; padding:.55rem .9rem; border:1px solid rgba(255,255,255,.4); color:#dfe2e7; font-size:.76rem; font-weight:700; letter-spacing:.09em; text-decoration:none; text-transform:uppercase; transition:color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease; }
.back-to-top span { color:var(--red); font-size:1rem; line-height:1; }
.back-to-top:hover,.back-to-top:focus-visible { border-color:var(--red); background:rgba(217,41,47,.08); color:var(--white); transform:translateY(-2px); }
.contact-section { display:block; margin-top:0; padding:7rem 0; }
.contact-section .section-intro { background-position:center 66%; }
.contact-section .section-return { margin-top:2.5rem; }
.contact-note { display:grid; gap:1rem; padding:2rem; border:1px solid var(--line); }
.contact-note span { color:var(--red); font:600 1rem/1 var(--display); }
.contact-note strong { padding-bottom:1rem; border-bottom:1px solid var(--line); font:600 1.3rem/1.15 var(--display); text-transform:uppercase; }
.contact-note strong:last-child { padding-bottom:0; border-bottom:0; }
footer { display:grid; grid-template-columns:1fr 1.2fr auto; gap:2rem; align-items:center; padding:4rem 0; color:#8e949e; font-size:.78rem; line-height:1.5; }
.footer-brand img { width:8rem; }
.copyright { text-align:right; }
@media(max-width:1050px){nav{gap:.85rem}nav a{font-size:.72rem}.directory-grid{grid-template-columns:repeat(3,1fr)}.directory-grid>a{min-height:20rem;padding:1.4rem}.product-category-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.nav-toggle{display:grid;gap:5px;width:2.9rem;height:2.9rem;place-content:center;border:1px solid var(--line);background:rgba(8,9,10,.85);color:var(--white)}.nav-toggle>span:not(.sr-only){width:1.25rem;height:2px;background:currentColor}nav{display:none;position:absolute;top:7.1rem;left:0;right:0;flex-direction:column;gap:0;padding:.75rem 1rem;border:1px solid var(--line);background:#111317}nav.open{display:flex}nav a{padding:.75rem;font-size:.82rem}nav a::after{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding-top:12rem}.readiness-panel{max-width:34rem}.mission-grid,.section-heading,.contact-section,.standard-intro,.standard-closing,.resource-intro,.training-course-intro,.course-registration-intro,.course-registration-grid,.workplace-medical-note,.course-overview,.pathfinder-intro,.program-partner-card,.testimonial-intro,.testimonial-layout,.product-catalog-intro,.manufacturer-video-section{grid-template-columns:1fr;gap:2.5rem}.avirt-program-card>div,.uscca-program-card>div,.hsi-program-card>div{padding:0 1.5rem 1.75rem}.avirt-program-card>.program-video,.uscca-program-card>.program-video,.hsi-program-card>.program-video{padding:0}.directory-grid{grid-template-columns:repeat(2,1fr)}.instructor-grid,.instructor-checklist,.subsection-grid,.resource-grid,.product-grid{grid-template-columns:1fr}.instructor-checklist li{min-height:auto}.subsection-grid article,.resource-card{min-height:auto}.family-program-copy,.workplace-program-copy,.church-program-copy{margin-left:0}.question{grid-template-columns:1fr}.assessment-intro{grid-template-columns:1fr;gap:.75rem}.privacy-note{white-space:normal}.course-register-inline{margin-left:0}footer{grid-template-columns:1fr}.copyright{text-align:left}}
@media(max-width:650px){.site-header{width:min(100% - 2rem,88rem)}.brand img{width:7.2rem}nav{top:6.5rem}.mission,.content-section,.contact-section,footer,.front-page-tools{width:min(100% - 2rem,88rem)}.hero{gap:3rem;padding:12rem 1.25rem 4rem}h1{font-size:clamp(3.35rem,16vw,5rem)}.mission,.content-section,.contact-section{padding:5rem 0}.front-page-tools{padding-bottom:5rem}.course-overview,.pathfinder,.course-registration,.product-catalog{padding:1.25rem}.course-overview-actions .button,.registration-form-actions .button{width:100%}.section-directory,.section-dark{width:100%;padding:5rem 1rem}.directory-grid,.family-paths,.product-category-strip,.product-video-grid{grid-template-columns:1fr}.directory-grid>a{min-height:17rem}.product-category-strip article{min-height:auto}.section-intro{grid-template-columns:1fr;gap:1.5rem;padding:1.25rem max(1rem,calc((100vw - 88rem)/2))}.section-number{font-size:4rem}.family-program-copy,.workplace-program-copy,.church-program-copy{padding-left:1.25rem}.family-resource-section,.workplace-checks,.testimonial-intake{padding:1.25rem}.product-facts div{grid-template-columns:1fr;gap:.35rem}.product-variant-images{grid-template-columns:1fr}.assessment summary{grid-template-columns:1fr auto;padding:1rem}.assessment-kicker{grid-column:1/-1}.assessment-title{font-size:1.3rem}.assessment-body{padding:0 1rem 1.1rem}.question,.testimonial-fields{grid-template-columns:1fr}.testimonial-message{grid-column:auto}.choices{width:100%}.choice{flex:1}.choice span{width:100%;padding:.4rem .55rem}.assessment-actions .button,.testimonial-actions .button{width:100%}.official-program-link{display:flex}.official-program-link+.official-program-link{margin-left:0}.section-return{flex-direction:column;justify-content:stretch}.back-to-top{width:100%;justify-content:center}}
@media(max-width:650px){.category-breakdown li{display:grid;gap:.2rem}}
@media(max-width:650px){.edc-variant-images{grid-template-columns:1fr}}
@media(max-width:900px){.assessment-followup-intro{grid-template-columns:1fr;gap:1rem}}
@media(max-width:650px){.assessment-followup-fields{grid-template-columns:1fr}.assessment-followup-actions .button{width:100%}}
@media(max-width:900px){.medical-catalog-intro{grid-template-columns:1fr;gap:1.25rem}.medical-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.medical-course-grid article{min-height:0}}
@media(max-width:650px){.medical-course-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important}}

/* Launch-safe placeholders for resources not included in the master project */
.resource-unavailable{opacity:.65;cursor:default;pointer-events:none;}
.media-coming-soon{font-style:italic;opacity:.75;}


/* CDS homepage visual restoration — preserves Wes's original imagery in the multi-page layout */
.home-visuals,.home-products{padding:clamp(3.5rem,7vw,6rem) clamp(1.25rem,5vw,5rem);border-top:1px solid rgba(255,255,255,.12)}
.home-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:2rem}
.home-feature-card{display:flex;flex-direction:column;overflow:hidden;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.12);text-decoration:none;color:inherit;min-height:100%;transition:transform .2s ease,border-color .2s ease}
.home-feature-card:hover{transform:translateY(-3px);border-color:rgba(220,38,38,.65)}
.home-feature-wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,.9fr) 1.1fr}
.home-feature-wide>img{width:100%;height:100%;min-height:340px;object-fit:cover}
.home-feature-card>div:last-child{padding:clamp(1.4rem,3vw,2.4rem)}
.home-feature-card h3{font-size:clamp(1.45rem,2.5vw,2.2rem);margin:.4rem 0 .8rem;line-height:1.08}
.program-logo-row{min-height:210px;padding:2rem;display:flex;align-items:center;justify-content:center;gap:2rem;background:#fff}
.program-logo-row img{max-width:42%;max-height:125px;object-fit:contain}
.program-logo-row.single img{max-width:55%;max-height:145px}
.home-product-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:2rem}
.home-product-gallery a{display:flex;flex-direction:column;background:#fff;text-decoration:none;color:#111;border:1px solid rgba(255,255,255,.12);overflow:hidden;transition:transform .2s ease}
.home-product-gallery a:hover{transform:translateY(-3px)}
.home-product-gallery img{width:100%;height:210px;object-fit:contain;padding:.8rem;background:#fff}
.home-product-gallery span{padding:.8rem 1rem 1rem;font-weight:700;text-align:center}
.home-products-action{text-align:center;margin:2rem 0 0}
@media(max-width:900px){.home-feature-wide{grid-template-columns:1fr}.home-product-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.home-feature-grid{grid-template-columns:1fr}.home-feature-wide{grid-column:auto}.home-product-gallery{grid-template-columns:1fr 1fr}.home-product-gallery img{height:160px}.program-logo-row{min-height:170px}}
/* ===== CDS HOMEPAGE HERO - ORIGINAL PROPORTIONS ===== */

@media (min-width: 901px) {

  .hero {
    min-height: 48rem;
    grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .6fr);
    gap: clamp(3rem, 6vw, 6rem);
    padding-top: 12rem;
    padding-bottom: 6rem;
  }

  .hero-content {
    max-width: 46rem;
  }

  .hero h1 {
    max-width: 10.5ch;
    font-size: clamp(4rem, 5.2vw, 5.5rem);
    line-height: .92;
    letter-spacing: -.035em;
  }

  .hero-copy {
    max-width: 43rem;
    margin-top: 1.75rem;
    font-size: 1rem;
    line-height: 1.65;
  }

  .hero-actions {
    margin-top: 1.75rem;
  }

  .readiness-panel {
    max-width: 22rem;
    padding: 1.75rem;
  }

  .readiness-panel blockquote {
    font-size: 1.7rem;
  }
}

/* ===== LifeVac Image Gallery ===== */

.lifevac-image-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    width: 100%;
    margin: 24px 0;
    align-items: start;
}

.lifevac-image-gallery figure {
    margin: 0;
    min-width: 0;
    width: 100%;
}

.lifevac-image-gallery a {
    display: block;
    width: 100%;
}

.lifevac-image-gallery img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

/* The 4th LifeVac image spans the entire row */
.lifevac-image-gallery figure:nth-child(4) {
    grid-column: 1 / -1;
}

.lifevac-image-gallery figcaption {
    margin-top: 6px;
    font-size: 0.85rem;
}

/* Mobile */
@media (max-width: 700px) {
    .lifevac-image-gallery {
        grid-template-columns: 1fr;
    }

    .lifevac-image-gallery figure:nth-child(4) {
        grid-column: auto;
    }
}




/* =========================================================
   CDS STANDARD TUNNEL HERO
   About, Products, Who We Serve, Contact
   ========================================================= */
@media (min-width:901px){
#instructors .section-intro,
#products .section-intro,
#who-we-serve .section-intro,
#contact .section-intro{
    background-color:#08090a;
    background-image:
        linear-gradient(90deg,rgba(8,9,10,.99) 0%,rgba(8,9,10,.96) 39%,rgba(8,9,10,.72) 50%,rgba(8,9,10,.25) 67%,rgba(8,9,10,.08) 100%),
        url("medical-training-tunnel.png");
    background-repeat:no-repeat,no-repeat;
    background-size:100% 100%,cover;
    background-position:center,center 58%;
}
}

@media (max-width:900px){
#instructors .section-intro,
#products .section-intro,
#who-we-serve .section-intro,
#contact .section-intro{
    background-image:linear-gradient(90deg,rgba(8,9,10,.96),rgba(8,9,10,.68)),url("medical-training-tunnel.png");
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center;
}
}

/* =========================================================
   FAMILY / WORKPLACE / CHURCH BANNERS — WES REFERENCE MATCH
   Exact page images retrieved from Wes's live site.
   ========================================================= */
@media (min-width:901px){
#family-defense .section-intro,
#workplace-defense .section-intro,
#church-security .section-intro{
    position:relative;
    min-height:23rem;
    width:100vw;
    margin:0 0 3.5rem calc(50% - 50vw);
    padding:2rem max(1.5rem,calc((100vw - 78rem)/2));
    display:grid;
    grid-template-columns:5.5rem minmax(0,36rem);
    gap:1.5rem;
    align-items:center;
    overflow:hidden;
    border:0;
    border-bottom:2px solid #c9a227;
    box-shadow:none;
    background-color:#000;
    background-repeat:no-repeat,no-repeat;
    background-size:100% 100%,auto 100%;
    background-position:center,right center;
}

#family-defense .section-intro{
    background-image:linear-gradient(90deg,#000 0%,#000 35%,rgba(0,0,0,.98) 40%,rgba(0,0,0,.78) 46%,rgba(0,0,0,.28) 54%,rgba(0,0,0,0) 64%),url("dts-home-banner.webp");
}
#workplace-defense .section-intro{
    background-image:linear-gradient(90deg,#000 0%,#000 35%,rgba(0,0,0,.98) 40%,rgba(0,0,0,.78) 46%,rgba(0,0,0,.28) 54%,rgba(0,0,0,0) 64%),url("dts-cityscape-banner.webp");
}
#church-security .section-intro{
    background-image:linear-gradient(90deg,#000 0%,#000 35%,rgba(0,0,0,.98) 40%,rgba(0,0,0,.78) 46%,rgba(0,0,0,.28) 54%,rgba(0,0,0,0) 64%),url("dts-church-banner.webp");
}

#family-defense .section-number,
#workplace-defense .section-number,
#church-security .section-number{
    position:relative;
    z-index:2;
    margin:0;
    color:rgba(238,224,181,.20);
    font-size:5.2rem;
    line-height:.8;
    -webkit-text-stroke:1px rgba(238,224,181,.42);
}

#family-defense .section-intro>div,
#workplace-defense .section-intro>div,
#church-security .section-intro>div{
    position:relative;
    z-index:2;
    width:36rem;
    max-width:36rem;
}

#family-defense .section-intro .eyebrow,
#workplace-defense .section-intro .eyebrow,
#church-security .section-intro .eyebrow{
    margin-bottom:1.15rem;
    color:#c9a227;
    font-size:.72rem;
    letter-spacing:.19em;
    white-space:nowrap;
}

#family-defense .section-intro h2,
#workplace-defense .section-intro h2,
#church-security .section-intro h2{
    margin:0;
    font-size:3.65rem;
    line-height:.98;
}

#family-defense .section-intro>div>p:last-child,
#workplace-defense .section-intro>div>p:last-child,
#church-security .section-intro>div>p:last-child{
    width:36rem;
    max-width:36rem;
    margin-top:1.15rem;
    color:#c3c7ce;
    font-size:.95rem;
    line-height:1.65;
}
}

@media (max-width:900px){
#family-defense .section-intro,
#workplace-defense .section-intro,
#church-security .section-intro{
    border-bottom:2px solid #c9a227;
    background-repeat:no-repeat,no-repeat;
    background-size:100% 100%,cover;
    background-position:center,center;
}
#family-defense .section-intro{background-image:linear-gradient(90deg,rgba(0,0,0,.96),rgba(0,0,0,.70)),url("dts-home-banner.webp");}
#workplace-defense .section-intro{background-image:linear-gradient(90deg,rgba(0,0,0,.96),rgba(0,0,0,.70)),url("dts-cityscape-banner.webp");}
#church-security .section-intro{background-image:linear-gradient(90deg,rgba(0,0,0,.96),rgba(0,0,0,.70)),url("dts-church-banner.webp");}
#family-defense .section-intro .eyebrow,
#workplace-defense .section-intro .eyebrow,
#church-security .section-intro .eyebrow{color:#c9a227;}
}

/* =========================================================
   MEDICAL TRAINING PAGE — WES REFERENCE MATCH
   ========================================================= */
@media (min-width:901px){
#medical-training.content-section{
    width:min(100% - 3rem,88rem);
    padding:7rem 0;
}
#medical-training .section-intro{
    min-height:256px;
    width:100vw;
    margin:0 0 3.5rem calc(50% - 50vw);
    padding:2rem max(1.5rem,calc((100vw - 72rem)/2));
    display:grid;
    grid-template-columns:7rem minmax(0,36rem);
    gap:2rem;
    align-items:center;
    border:0;
    box-shadow:none;
    background-color:#08090a;
    background-image:
        linear-gradient(
            90deg,
            rgba(8,9,10,.99) 0%,
            rgba(8,9,10,.96) 39%,
            rgba(8,9,10,.72) 50%,
            rgba(8,9,10,.25) 67%,
            rgba(8,9,10,.08) 100%
        ),
        url("medical-training-tunnel.png");
    background-repeat:no-repeat,no-repeat;
    background-size:100% 100%,cover;
    background-position:center,center 58%;
}
#medical-training .section-number{
    margin:0;
    font-size:5.2rem;
    line-height:.8;
}
#medical-training .section-intro>div{
    position:relative;
    z-index:2;
    width:36rem;
    max-width:36rem;
}
#medical-training .section-intro .eyebrow{
    margin-bottom:1.15rem;
    font-size:.72rem;
    letter-spacing:.19em;
    white-space:nowrap;
}
#medical-training .section-intro h2{
    margin:0;
    font-size:3.65rem;
    line-height:.98;
}
#medical-training .section-intro>div>p:last-child{
    width:36rem;
    max-width:36rem;
    margin-top:1.15rem;
    font-size:.95rem;
    line-height:1.65;
}
}
@media (max-width:900px){
#medical-training .section-intro{
    background-image:
        linear-gradient(90deg,rgba(8,9,10,.96),rgba(8,9,10,.68)),
        url("medical-training-tunnel.png");
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center;
}
}

/* =========================================================
   TRAINING PAGE — WES REFERENCE MATCH
   ========================================================= */
@media (min-width:901px){
#training.content-section{width:min(100% - 3rem,88rem);padding:7rem 0;}
#training .section-intro{min-height:280px;width:100vw;margin:0 0 3.5rem calc(50% - 50vw);padding:2rem max(1.5rem,calc((100vw - 78rem)/2));display:grid;grid-template-columns:5.5rem minmax(0,34rem);gap:1.5rem;align-items:center;border:0;box-shadow:none;background-color:#000;background-image:linear-gradient(90deg,#000 0%,#000 36%,rgba(0,0,0,.98) 39%,rgba(0,0,0,.72) 44%,rgba(0,0,0,.22) 50%,rgba(0,0,0,0) 56%),url("training-red-armor.png");background-repeat:no-repeat,no-repeat;background-size:100% 100%,64% 100%;background-position:center,right center;}
#training .section-number{margin:0;font-size:5.2rem;line-height:.8;}
#training .section-intro>div{position:relative;z-index:2;width:34rem;max-width:34rem;}
#training .section-intro .eyebrow{margin-bottom:1.15rem;font-size:.72rem;letter-spacing:.19em;white-space:nowrap;}
#training .section-intro h2{margin:0;font-size:3.65rem;line-height:.98;}
#training .section-intro>div>p:last-child{width:34rem;max-width:34rem;margin-top:1.15rem;font-size:.95rem;line-height:1.65;}
#training .training-course-intro{grid-template-columns:minmax(18rem,.82fr) minmax(22rem,1.18fr);gap:4rem;margin:0 0 1.75rem;padding:0;}
#training .training-course-intro h3{font-size:2.65rem;}
#training .training-course-intro>p{font-size:.95rem;line-height:1.65;}
}
@media (max-width:900px){#training .section-intro{background-image:linear-gradient(90deg,rgba(0,0,0,.96),rgba(0,0,0,.72)),url("training-red-armor.png");background-repeat:no-repeat;background-size:100% 100%,auto 100%;background-position:center,right center;}}
