/* Base — reset, typography, utilities */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.65;
    color: var(--text);
    background: var(--bg);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
    /* color intentionally not set here — dark panels need white, light panels need navy */
}

/* Default heading color — navy on light backgrounds */
h1, h2, h3, h4, h5, h6 { color: #0B1B3D; }

/* All headings inside dark panels → white (must beat base rule above) */
.product-panel h1, .product-panel h2, .product-panel h3,
.product-panel h4, .product-panel h5, .product-panel h6 { color: #FFFFFF !important; }

/* Light / gray panels restore navy */
.panel--light h1, .panel--light h2, .panel--light h3,
.panel--light h4, .panel--light h5, .panel--light h6,
.panel--gray  h1, .panel--gray  h2, .panel--gray  h3,
.panel--gray  h4, .panel--gray  h5, .panel--gray  h6 { color: #0B1B3D !important; }
h1 { font-size: clamp(36px, 5vw, 64px); font-weight: 800; letter-spacing: -0.02em; }
h2 { font-size: clamp(28px, 4vw, 48px); }
h3 { font-size: clamp(20px, 2.5vw, 28px); }
h4 { font-size: 20px; }

p { color: var(--text-muted); line-height: 1.7; }

a { color: var(--cyan-dark); text-decoration: none; transition: var(--t-fast); }
a:hover { color: var(--cyan); }

img { max-width: 100%; height: auto; display: block; }

button, input, textarea, select {
    font-family: var(--font);
    font-size: 15px;
}

/* Layout */
.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}
.container--narrow {
    max-width: var(--container-narrow);
    margin: 0 auto;
    padding: 0 24px;
}

/* Section wrapper */
.section {
    padding: 80px 0;
}
.section--sm { padding: 48px 0; }
.section--dark { background: var(--navy); }
.section--gray { background: var(--gray-50); }

/* Section header */
.section-label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cyan-dark);
    margin-bottom: 10px;
}
.section-title {
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 40px);
    font-weight: 700;
    color: var(--text);
    margin-bottom: 6px;
}
.section-title span { color: var(--text-muted); }
.section-sub {
    font-size: 17px;
    color: var(--text-muted);
    margin-bottom: 40px;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font);
    font-size: 15px;
    font-weight: 600;
    padding: 13px 26px;
    border-radius: var(--r-sm);
    border: 2px solid transparent;
    cursor: pointer;
    transition: var(--t);
    text-decoration: none;
    white-space: nowrap;
    line-height: 1;
}
.btn--primary {
    background: var(--cyan);
    color: var(--navy);
    border-color: var(--cyan);
}
.btn--primary:hover {
    background: var(--cyan-dark);
    border-color: var(--cyan-dark);
    color: var(--white);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,194,255,.35);
}
.btn--outline {
    background: transparent;
    color: var(--cyan);
    border-color: rgba(0,194,255,.45);
}
.btn--outline:hover {
    background: rgba(0,194,255,.08);
    border-color: var(--cyan);
    color: var(--cyan);
}
.btn--outline-light {
    background: transparent;
    color: rgba(255,255,255,.85);
    border-color: rgba(255,255,255,.3);
}
.btn--outline-light:hover {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.6);
    color: var(--white);
}
.btn--lg { padding: 16px 36px; font-size: 17px; }

/* Chevron link (Apple/ROG style) */
.chev-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 17px;
    font-weight: 500;
    color: var(--cyan-dark);
    transition: var(--t-fast);
}
.chev-link:hover { color: var(--cyan); gap: 8px; }
.chev-link--light { color: rgba(255,255,255,.75); }
.chev-link--light:hover { color: var(--white); }

/* Utility */
.visually-hidden {
    position: absolute; width: 1px; height: 1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}
.text-center { text-align: center; }
.flex-center { display: flex; align-items: center; justify-content: center; }

/* Responsive grid */
@media (max-width: 768px) {
    .section { padding: 56px 0; }
    .container { padding: 0 16px; }
}
