/*
 QRE / KAIQROS / AFIRA
 Phase 1.7F Final Public Nav Hero Consistency - No blur/fog/backdrop-filter on videos. - Text sits on translucent overlay. - Every public page can use same hero layout. - Missing unique video files fall back via PHP resolver.
*/

:root {
 --qre-hero-min-height: 620px;
 --qre-hero-overlay-left: rgba(5, 8, 18, .78);
 --qre-hero-overlay-mid: rgba(5, 8, 18, .32);
 --qre-hero-overlay-right: rgba(5, 8, 18, .72);
 --qre-hero-overlay-bottom: rgba(5, 8, 18, .84);
}

html, body {
 background: #070b16;
}

.site-header {
 position: sticky;
 top: 0;
 z-index: 1000;
 background: rgba(8, 13, 26, .88);
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
 border-bottom: 1px solid rgba(148, 163, 184, .18);
}

.shell-header {
 gap: 20px;
}

.site-nav-toggle {
 display: none;
 border: 1px solid rgba(255,255,255,.20);
 border-radius: 999px;
 background: rgba(124, 131, 255, .18);
 color: #fff;
 padding: 8px 12px;
 cursor: pointer;
 font-weight: 800;
}

.site-nav {
 display: flex;
 align-items: center;
 gap: 14px;
 flex-wrap: wrap;
}

.site-nav a {
 white-space: nowrap;
}

.page-hero,
.qre-crisp-hero {
 position: relative;
 min-height: var(--qre-hero-min-height);
 overflow: hidden;
 background: #060a15;
 isolation: isolate;
 display: flex;
 align-items: center;
}

.qre-crisp-hero-video,
.page-hero video,
.qre-crisp-hero video,
.hero video,
.hero-section video,
.site-hero video,
.video-hero video,
.hero-video video,
.qre-page-video video,
video.hero-bg,
video.qre-hero-video {
 position: absolute;
 inset: 0;
 width: 100% !important;
 height: 100% !important;
 object-fit: cover !important;
 object-position: center center !important;
 filter: none !important;
 -webkit-filter: none !important;
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
 opacity: .98 !important;
 transform: translateZ(0) scale(1.001) !important;
 image-rendering: auto !important;
}

/* Remove legacy blur/fog from earlier hero implementations. */
.page-hero::before,
.page-hero::after,
.hero::before,
.hero::after,
.hero-section::before,
.hero-section::after,
.site-hero::before,
.site-hero::after,
.video-hero::before,
.video-hero::after,
.hero-video::before,
.hero-video::after,
.qre-page-video::before,
.qre-page-video::after,
.qre-page-video-overlay,
.hero-backdrop,
.hero-glass,
.hero-overlay,
.qre-hero-overlay,
.page-hero-overlay,
.video-overlay {
 filter: none !important;
 -webkit-filter: none !important;
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
}

.qre-crisp-hero-overlay {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 radial-gradient(circle at 22% 18%, rgba(124, 131, 255, .17), transparent 34%),
 linear-gradient(90deg, var(--qre-hero-overlay-left), var(--qre-hero-overlay-mid) 52%, var(--qre-hero-overlay-right)),
 linear-gradient(180deg, rgba(5, 8, 18, .10), var(--qre-hero-overlay-bottom));
}

.qre-crisp-hero-content,
.page-hero .shell,
.qre-crisp-hero .shell {
 position: relative;
 z-index: 2;
}

.hero-copy {
 max-width: 820px;
 padding: 72px 0;
}

.hero-kicker {
 display: inline-block;
 color: #c7d2fe;
 border: 1px solid rgba(199,210,254,.36);
 background: rgba(15,23,42,.45);
 border-radius: 999px;
 padding: 7px 12px;
 font-size: 13px;
 font-weight: 800;
 margin-bottom: 16px;
}

.hero-copy h1 {
 font-size: clamp(38px, 6vw, 76px);
 line-height: .98;
 margin: 0 0 20px;
 letter-spacing: -0.055em;
 text-shadow: 0 10px 35px rgba(0,0,0,.42);
}

.hero-lead,
.hero-copy p {
 font-size: clamp(17px, 2vw, 23px);
 line-height: 1.45;
 max-width: 760px;
 color: #dbeafe;
 text-shadow: 0 8px 28px rgba(0,0,0,.45);
}

.hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin-top: 26px;
}

.btn-primary,
.btn-secondary {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 999px;
 padding: 12px 18px;
 text-decoration: none;
 font-weight: 800;
 border: 1px solid rgba(255,255,255,.18);
}

.btn-primary {
 color: #fff;
 background: linear-gradient(90deg, #4f8cff, #8b5cf6);
}

.btn-secondary {
 color: #eaf0ff;
 background: rgba(15,23,42,.58);
}

.notice {
 border: 1px solid rgba(148,163,184,.28);
 border-radius: 14px;
 background: rgba(15,23,42,.66);
 padding: 12px;
}

.notice.error {
 border-color: rgba(248,113,113,.55);
 color: #fecaca;
}

.qre-sou-banner {
 max-width: 1180px;
 margin: 28px auto;
 padding: 0 22px;
}

.qre-sou-banner-inner {
 display: grid;
 grid-template-columns: 1.3fr .9fr;
 gap: 18px;
 align-items: center;
 border: 1px solid rgba(148,163,184,.28);
 border-radius: 18px;
 background: rgba(15,23,42,.76);
 color: #eaf0ff;
 padding: 18px;
 box-shadow: 0 18px 55px rgba(0,0,0,.25);
}

.qre-sou-banner p {
 margin: 8px 0 0;
 color: #cbd5e1;
 line-height: 1.45;
}

.qre-sou-banner-checks {
 display: grid;
 gap: 8px;
}

.qre-sou-banner-checks span {
 display: block;
 border: 1px solid rgba(124,131,255,.36);
 background: rgba(124,131,255,.14);
 border-radius: 999px;
 padding: 9px 12px;
 font-size: 13px;
 font-weight: 800;
}

@media (max-width: 960px) {
 .site-nav-toggle {
 display: inline-flex;
 margin-left: auto;
 }

 .site-nav {
 display: none;
 position: absolute;
 left: 14px;
 right: 14px;
 top: calc(100% + 8px);
 padding: 14px;
 border: 1px solid rgba(148,163,184,.26);
 border-radius: 18px;
 background: rgba(8,13,26,.98);
 box-shadow: 0 20px 70px rgba(0,0,0,.45);
 }

 body.qre-nav-open .site-nav {
 display: grid;
 grid-template-columns: repeat(2, minmax(0,1fr));
 gap: 10px;
 }

 .site-nav a {
 padding: 8px 10px;
 border-radius: 999px;
 background: rgba(255,255,255,.05);
 }
}

@media (max-width: 760px) {
 :root {
 --qre-hero-min-height: 530px;
 }

 .qre-crisp-hero-video,
 .page-hero video,
 .qre-crisp-hero video {
 opacity: .88 !important;
 }

 .hero-copy {
 padding: 50px 0;
 }

 .qre-sou-banner-inner {
 grid-template-columns: 1fr;
 }
}
