/* --- Axioms & Variables --- */
/* --- Axioms & Variables --- */
:root {
    /* Restobit Brand Colors - Refined Dark Mode */
    --brand-blue-accent: #6BA4D8; /* Sophisticated, muted blue for text/links */
    --brand-blue-solid: #0A3663;  /* Original deep blue for solid backgrounds */
    --brand-gold: #C59B27;        /* Original gold */
    
    /* Dark Theme Surfaces & Typography */
    --bg-color: #0b1120;          /* Very dark blue/grey base */
    --surface-color: #151e32;     /* Slightly lighter for raised boxes */
    --border-color: #2a3b5c;      /* Subtle borders */
    --text-main: #f8fafc;         /* Crisp off-white for main text */
    --text-muted: #cbd5e1;        /* Softer grey for paragraphs */

    /* Spacing & Typography Scale */
    --measure: 65ch; /* Maximum optimal line length */
    --s-1: 1rem;
    --s0: 1.5rem;
    --s1: 2rem;
    --s2: 3rem;
}

/* Universal box-sizing axiom */
*, *::before, *::after {
    box-sizing: border-box;
}

body {
    font-family: system-ui, -apple-system, sans-serif;
    line-height: 1.5;
    margin: 0;
    background-color: var(--bg-color);
    color: var(--text-main);
}

p {
    color: var(--text-muted);
}

/* --- Every Layout Primitives --- */

/* The Stack: Manages vertical flow and rhythm */
.stack {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
/* Injects margin only between adjacent sibling elements */
.stack > * + * {
    margin-block-start: var(--space, var(--s0));
}

/* The Center: Constrains line length and centers content */
.center {
    box-sizing: content-box;
    margin-inline: auto;
    max-inline-size: var(--measure);
    padding-inline: var(--s-1);
}

/* The Cluster: Groups items and handles natural wrapping */
.cluster {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-1);
    align-items: center;
}
.cluster.justify-center {
    justify-content: center;
}

/* The Box: Establishes a distinct content area */
.box {
    padding: var(--s0);
    background-color: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: 8px;
}

/* The Switcher: Allows fluid columns that break down into single columns without media queries */
.switcher {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s0);
    /* Threshold wide enough to accommodate 3 columns side-by-side */
    --threshold: 55rem; 
}
.switcher > * {
    flex-grow: 1;
    /* The Every Layout binary switch formula */
    flex-basis: calc((var(--threshold) - 100%) * 999);
}


/* --- Structural Modifiers --- */

/* Dictates the larger rhythm between major page landmarks */
.page-wrapper {
    --space: var(--s2);
    padding-block: var(--s2);
}


/* --- Brand & Presentational Styles --- */

.header-box {
    justify-content: space-between;
    border-bottom: 4px solid var(--brand-blue-accent);
}

.brand-icon {
    height: 2.5rem; /* Keep the icon proportionate to the text */
    width: auto;
    display: block; /* Removes baseline ghost spacing beneath images */
}

.brand-logo {
    font-size: var(--s1);
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.5px;
}

a {
    color: var(--brand-blue-accent);
    text-decoration: none;
    font-weight: 500;
}

h1, h2, h3 {
    color: var(--text-main);
    margin: 0;
}

.text-center {
    text-align: center;
}

.hero {
    padding-block: var(--s2);
    border-top: 4px solid var(--brand-gold);
}

.btn-primary, .btn-secondary {
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

.btn-primary {
    background-color: var(--brand-blue-solid);
    color: var(--text-main);
    border: 1px solid var(--brand-blue-accent);
}

.btn-secondary {
    background-color: var(--brand-gold);
    color: #000; /* Dark text on gold for high contrast */
}

.btn-primary:hover {
    background-color: var(--brand-blue-accent);
    color: #000;
}

.btn-secondary:hover {
    background-color: #dcb33f; /* Slightly lighter gold on hover */
}

.interactive-box {
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.interactive-box:hover {
    transform: translateY(-4px);
    border-color: var(--brand-gold);
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.5); /* Darker shadow for dark mode */
}

/* --- ClearEnglish Pricing Component Specifics --- */

/* Fixes the bottom-heavy feel by adding extra padding at the base */
.tier-card {
    padding-block-end: var(--s1); 
}

/* The Feature List */
.feature-list {
    padding-left: 0;
    list-style: none;
    /* Tightens the gap between checklist items */
    --space: 0.35rem; 
    margin-block-end: var(--s1); 
}

.feature-list li {
    position: relative;
    padding-left: 1.5rem;
}

/* Custom checkmarks using the brand gold */
.feature-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--brand-gold);
    font-weight: bold;
}

/* Forces the purchase button to align at the bottom of the card */
.push-bottom {
    margin-top: auto; 
}