@import url('fonts.css');
@import url('tokens.css');

/* CSS Reset */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    background-color: var(--c-void);
    color: var(--c-paper);
    font-family: var(--font-body);
}
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

/* Typography Basics */
h1, h2, h3, h4, h5 {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: var(--space-s);
}
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-2); }
h4 { font-size: var(--step-1); }

p { margin-bottom: var(--space-s); font-size: var(--step-0); max-width: var(--content-width); }
a { color: var(--c-accent); text-decoration: none; transition: color 0.2s ease; }
a:hover { color: var(--c-accent-hover); }

/* Technical Text */
.tech-text, .price, code {
    font-family: var(--font-tech);
}

/* Layout Primitives */
.container {
    width: 100%;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--space-m);
}
.section {
    padding: var(--space-2xl) 0;
}
.grid {
    display: grid;
    gap: var(--grid-gap);
}
.flex {
    display: flex;
    gap: var(--grid-gap);
}

/* Header & Nav */
.site-header {
    border-bottom: var(--border-thin);
    position: sticky;
    top: 0;
    background-color: rgba(9, 9, 11, 0.95);
    backdrop-filter: blur(10px);
    z-index: 100;
}
.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-s) var(--space-m);
    max-width: var(--max-width);
    margin: 0 auto;
}
.logo {
    font-family: var(--font-display);
    font-size: var(--step-1);
    font-weight: 700;
    color: var(--c-pure);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.main-nav ul {
    list-style: none;
    display: flex;
    gap: var(--space-m);
}
.main-nav a {
    color: var(--c-ash);
    font-family: var(--font-tech);
    font-size: var(--step--1);
    text-transform: uppercase;
}
.main-nav a:hover, .main-nav a.active {
    color: var(--c-pure);
}

/* Hero Section */
.hero {
    padding: var(--space-3xl) 0 var(--space-2xl);
    border-bottom: var(--border-thin);
}
.hero-content {
    max-width: 60ch;
}
.hero h1 {
    font-size: var(--step-5);
    margin-bottom: var(--space-m);
    color: var(--c-pure);
}
.hero-lead {
    font-size: var(--step-1);
    color: var(--c-ash);
    margin-bottom: var(--space-l);
}

/* Specific Blocks */
.editorial-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-l);
}
@media (min-width: 768px) {
    .editorial-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
    .editorial-grid { grid-template-columns: 2fr 1fr 1fr; }
}

.card {
    border: var(--border-thin);
    padding: var(--space-m);
    background: var(--c-charcoal);
    display: flex;
    flex-direction: column;
}
.card h3 {
    font-size: var(--step-1);
    border-bottom: var(--border-thin);
    padding-bottom: var(--space-2xs);
    margin-bottom: var(--space-s);
}

/* Footer */
.site-footer {
    border-top: var(--border-thick);
    padding: var(--space-xl) 0;
    margin-top: var(--space-3xl);
    background-color: var(--c-charcoal);
}
.footer-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--space-m);
    display: flex;
    flex-direction: column;
    gap: var(--space-m);
}
@media (min-width: 768px) {
    .footer-inner {
        flex-direction: row;
        justify-content: space-between;
    }
}
.site-footer nav {
    display: flex;
    gap: var(--space-m);
}

/* Tools / Calculators UI */
.tool-container {
    background: var(--c-charcoal);
    border: var(--border-thin);
    padding: var(--space-l);
    margin: var(--space-l) 0;
}
.tool-group {
    margin-bottom: var(--space-m);
}
.tool-group label {
    display: block;
    font-family: var(--font-tech);
    font-size: var(--step--1);
    margin-bottom: var(--space-3xs);
    color: var(--c-ash);
}
.tool-group input, .tool-group select {
    width: 100%;
    padding: var(--space-xs);
    background: var(--c-slate);
    border: var(--border-thin);
    color: var(--c-pure);
    font-family: var(--font-tech);
}
.tool-group input:focus {
    outline: 1px solid var(--c-accent);
    border-color: var(--c-accent);
}
button.btn {
    background: var(--c-pure);
    color: var(--c-void);
    border: none;
    padding: var(--space-xs) var(--space-m);
    font-family: var(--font-tech);
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s;
}
button.btn:hover {
    background: var(--c-accent);
}
.tool-result {
    margin-top: var(--space-l);
    padding: var(--space-m);
    background: var(--c-slate);
    border-left: 4px solid var(--c-accent);
}
.tool-result-value {
    font-size: var(--step-2);
    font-family: var(--font-tech);
    color: var(--c-pure);
}

/* Utilities */
.text-accent { color: var(--c-accent); }
.bg-slate { background-color: var(--c-slate); }
.border-top { border-top: var(--border-thin); }
.pt-l { padding-top: var(--space-l); }
.mt-l { margin-top: var(--space-l); }

/* Tables */
.data-table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--space-l) 0;
    font-family: var(--font-body);
}
.data-table th, .data-table td {
    padding: var(--space-s);
    border-bottom: var(--border-thin);
    text-align: left;
}
.data-table th {
    font-family: var(--font-tech);
    color: var(--c-ash);
    font-weight: normal;
}
