:root{
  --bg-overlay: rgba(0,0,0,0.35);
  --max-width: 960px;
  --accent: #0b73ff;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial; color:#fff;background:#0b1220}
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:visible}
/* use a fixed background image (parallax-like) but clip it to the hero viewport area via CSS vars
  JS will update --clip-* so the fixed layers only show where the hero is visible. */
.hero::before{content:'';position:fixed;inset:0;background-size:cover;background-position:center center;background-repeat:no-repeat;opacity:1;z-index:0;filter:brightness(1.03);pointer-events:none;background-attachment:fixed;clip-path:inset(var(--clip-top,0px) var(--clip-right,0px) var(--clip-bottom,0px) var(--clip-left,0px));will-change:clip-path,transform}
.hero::after{content:'';position:fixed;inset:0;background:var(--bg-overlay);z-index:1;pointer-events:none;clip-path:inset(var(--clip-top,0px) var(--clip-right,0px) var(--clip-bottom,0px) var(--clip-left,0px));will-change:clip-path,opacity}
.content{position:relative;z-index:2;max-width:var(--max-width);padding:48px}
h1{margin:0 0 8px;font-size:2rem}
.tagline{margin:0 0 20px;color:#d7e3ff}
.modules ul{padding-left:1.2rem}
.modules li{margin:8px 0}
.security .small{font-size:.9rem;opacity:.85}
.footer{margin-top:36px;font-size:.9rem;opacity:.9}

/* Responsive */
@media (min-width:720px){h1{font-size:2.6rem}}

/* helper classes */
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* Night/day background classes are applied by JS to the .hero::before pseudo-element via data attributes */
.hero[data-bg='day']::before{background-image:url('datnavi_bckgnd_v-day.jpeg');opacity:.75}
.hero[data-bg='night']::before{background-image:url('datnavi_bckgnd_v-night.jpeg');opacity:.75}

/* ensure header and footer are above the fixed background */
.header{position:relative;z-index:2}
.footer{position:relative;z-index:2}

/* Make section headings and body text match hero saturation and center everything */
main, section{text-align:center}
.container{margin-left:auto;margin-right:auto}
.container.content{display:flex;flex-direction:column;align-items:center;justify-content:center}
section h2{color:#ffffff;font-size:2rem;margin:0 0 12px;font-weight:700}
section p{color:#d7e3ff;font-size:1.15rem;margin:0 auto 18px;max-width:900px}
.tagline{font-size:1.15rem;color:#d7e3ff;text-align:center}
.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;justify-items:center;align-items:stretch}
.product-card{background-color:rgba(255,255,255,0.95);border-radius:8px;padding:30px;text-align:center;color:#021018;display:flex;flex-direction:column;align-items:center;height:100%}
/* Darken headings and descriptions inside product cards */
.product-card h3{color:#011217;margin:0 0 8px}
.product-card .description{color:#09222a;margin:0 0 12px}
.product-card .links{margin-top:auto}
.product-card .links a{color:var(--accent);text-decoration:none}

