/* ==========================================================================
   SAKURA EDITORIAL — WARM ROSE / BLUSH / CREAM DESIGN SYSTEM
   ========================================================================== */

:root {
    --bg: #faf6f0;
    --bg-strong: #f3ece3;
    --surface: #fffdf9;
    --surface-alt: #f7f1ea;
    --surface-card: #fffdf9;
    --card-border: rgba(194, 109, 132, 0.12);
    --card-border-hover: rgba(194, 109, 132, 0.38);
    --primary: #6d4a4e;
    --primary-deep: #3b2f31;
    --primary-soft: #f5e9ec;
    --accent: #c26d84;
    --accent-strong: #9d5669;
    --accent-gradient: linear-gradient(135deg, #c26d84 0%, #e8b7c3 50%, #d98fa0 100%);
    --text: #2d2527;
    --text-heading: #3b2f31;
    --muted: #8a7a7c;
    --line: rgba(194, 109, 132, 0.1);
    --shadow-soft: 0 18px 45px rgba(109, 74, 78, 0.08);
    --shadow-card: 0 10px 28px -4px rgba(59, 47, 49, 0.06), 0 4px 10px -2px rgba(59, 47, 49, 0.03);
    --shadow-card-hover: 0 22px 45px -8px rgba(109, 74, 78, 0.14), 0 8px 18px -4px rgba(109, 74, 78, 0.06);
    --radius-xl: 28px;
    --radius-lg: 20px;
    --radius-md: 14px;
    --radius-sm: 10px;
    --container: 1200px;
    --navbar-height: 78px; /* measured & overridden at runtime from the real header */
}

body.dark-mode {
    --bg: #171013;
    --bg-strong: #221a1d;
    --surface: #20181b;
    --surface-alt: #2a2124;
    --surface-card: #241d20;
    --card-border: rgba(255, 255, 255, 0.08);
    --card-border-hover: rgba(232, 183, 195, 0.38);
    --primary: #f5e8e4;
    --primary-deep: #fbf5f2;
    --primary-soft: #2d2326;
    --accent: #e8b7c3;
    --accent-strong: #d98fa0;
    --accent-gradient: linear-gradient(135deg, #d98fa0 0%, #e8b7c3 50%, #c26d84 100%);
    --text: #eadfd8;
    --text-heading: #f8f0ed;
    --muted: #b09497;
    --line: rgba(255, 255, 255, 0.08);
    --shadow-soft: 0 18px 45px rgba(0, 0, 0, 0.5);
    --shadow-card: 0 10px 30px -4px rgba(0, 0, 0, 0.4);
    --shadow-card-hover: 0 22px 48px -6px rgba(0, 0, 0, 0.65), 0 0 20px rgba(232, 183, 195, 0.15);
}

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

html {
    scroll-behavior: smooth;
    /* Keep anchored sections clear of the sticky navbar (anchor scrolling) */
    scroll-padding-top: calc(var(--navbar-height) + 1rem);
}

body {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background-color: var(--bg);
    background-image:
        radial-gradient(circle at 10% 0%, rgba(194, 109, 132, 0.12), transparent 32%),
        radial-gradient(circle at 90% 20%, rgba(217, 143, 160, 0.08), transparent 35%),
        linear-gradient(180deg, var(--bg) 0%, var(--bg) 100%);
    color: var(--text);
    line-height: 1.65;
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto; /* navbar / content / footer */
    transition: background 0.3s ease, color 0.3s ease;
    overflow-x: hidden;
}

body.dark-mode {
    background-image:
        radial-gradient(circle at 10% 0%, rgba(232, 183, 195, 0.08), transparent 30%),
        radial-gradient(circle at 90% 20%, rgba(194, 109, 132, 0.06), transparent 32%),
        linear-gradient(180deg, #171013 0%, #1a1416 100%);
}

a, button, input, textarea {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    cursor: pointer;
    font-weight: 600;
}

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

main {
    width: min(100%, var(--container));
    margin: 0 auto;
    /* Navbar now occupies its own layout row (sticky), so we no longer need
       a huge top padding to clear a fixed overlay navbar. */
    padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.2rem, 3vw, 2.5rem) clamp(1.2rem, 3vw, 2.5rem);
    display: flex;
    flex-direction: column;
    min-height: 0;
}
