/* ============================================
   FIGUURISÕBRAD — LIGHT THEME
   ============================================ */

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

:root {
    /* Surfaces */
    --cream: #fef9ee;
    --cream-2: #f5efde;
    --paper: #faf5e6;
    --paper-2: #f0e9d5;
    --midnight: #0d1410;
    --deep: #15201a;
    --deep-2: #1c2a22;

    /* Logo-derived accents */
    --magenta: #a8276f;
    --magenta-bright: #c73583;
    --magenta-deep: #7e1b53;
    --magenta-soft: #f4d5e5;
    --pink: #e58fb1;
    --pink-soft: #f4d5e0;
    --pink-pale: #fbeef3;
    --lime: #c5d54a;
    --lime-bright: #d4e255;
    --lime-deep: #9bb02f;
    --lime-pale: #f3f5d5;

    /* Text */
    --text-dark: #0d1410;
    --text-dark-mute: #5a584d;
    --text-dark-faint: #908d80;
    --text-cream: #fef9ee;
    --text-cream-mute: rgba(254, 249, 238, 0.78);
    --text-cream-faint: rgba(254, 249, 238, 0.5);

    /* Borders */
    --border-light: rgba(13, 20, 16, 0.08);
    --border-light-2: rgba(13, 20, 16, 0.12);

    /* Type */
    --font-display: 'Fraunces', 'Playfair Display', Georgia, serif;
    --font-body: 'Inter', system-ui, -apple-system, sans-serif;

    /* Curves */
    --r-sm: 12px;
    --r-md: 20px;
    --r-lg: 32px;
    --r-xl: 48px;
    --r-pill: 999px;

    --ease: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
}

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-body);
    background: var(--cream);
    color: var(--text-dark);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
svg { display: block; }

/* ============================================
   75% PAGE WIDTH
   ============================================ */

.wrap {
    width: 75%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 16px;
}

.wrap-narrow {
    width: 75%;
    max-width: 980px;
    margin: 0 auto;
    padding: 0 16px;
}

@media (max-width: 1280px) {
    .wrap, .wrap-narrow { width: 88%; }
}

@media (max-width: 768px) {
    .wrap, .wrap-narrow { width: 100%; padding: 0 20px; }
}

/* ============================================
   TYPOGRAPHY
   ============================================ */

.display {
    font-family: var(--font-display);
    font-weight: 500;
    line-height: 0.95;
    letter-spacing: -0.03em;
    font-variation-settings: 'opsz' 144, 'SOFT' 50;
}

.display em { font-style: italic; font-weight: 400; }

.heading {
    font-family: var(--font-display);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.02em;
    font-size: clamp(2.4rem, 5vw, 4rem);
    color: var(--text-dark);
}

.heading em { font-style: italic; font-weight: 400; }

.kicker {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--text-dark-mute);
    max-width: 540px;
}

/* ============================================
   BUTTONS
   ============================================ */

.btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 28px;
    border-radius: var(--r-pill);
    font-size: 0.92rem;
    font-weight: 600;
    transition: all 0.25s var(--ease);
    white-space: nowrap;
    line-height: 1;
}

.btn svg { width: 18px; height: 18px; }

.btn-magenta {
    background: var(--magenta);
    color: var(--cream);
}

.btn-magenta:hover {
    background: var(--magenta-bright);
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(168, 39, 111, 0.35);
}

.btn-lime {
    background: var(--lime);
    color: var(--midnight);
}

.btn-lime:hover {
    background: var(--lime-bright);
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(197, 213, 74, 0.35);
}

.btn-cream {
    background: var(--cream);
    color: var(--midnight);
}

.btn-cream:hover { background: var(--paper); transform: translateY(-2px); }

.btn-soft {
    background: var(--paper);
    color: var(--midnight);
    border: 1px solid var(--border-light);
}

.btn-soft:hover {
    background: var(--cream);
    border-color: var(--magenta);
    color: var(--magenta);
    transform: translateY(-2px);
}

.btn-ghost {
    background: transparent;
    color: currentColor;
    border: 1.5px solid currentColor;
}

.btn-ghost:hover { opacity: 0.7; }

.btn-sm { padding: 12px 22px; font-size: 0.85rem; }

/* ============================================
   PROMO BANNER
   ============================================ */

.promo-banner {
    background: var(--magenta);
    color: var(--cream);
    padding: 12px 0;
    font-size: 0.88rem;
    font-weight: 500;
    position: relative;
    overflow: hidden;
}

.promo-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.18) 50%, transparent 100%);
    animation: shimmer 4s linear infinite;
}

@keyframes shimmer {
    from { transform: translateX(-100%); }
    to { transform: translateX(100%); }
}

.promo-banner-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    position: relative;
    z-index: 2;
}

.promo-banner-inner strong { font-weight: 700; }

.promo-pulse {
    display: inline-block;
    width: 8px;
    height: 8px;
    background: var(--lime);
    border-radius: 50%;
    position: relative;
}

.promo-pulse::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: var(--lime);
    opacity: 0.5;
    animation: pulse 1.8s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 0.5; }
    50% { transform: scale(1.8); opacity: 0; }
}

.promo-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: gap 0.2s;
}

.promo-link:hover { gap: 10px; }
.promo-link svg { width: 14px; height: 14px; }

@media (max-width: 720px) {
    .promo-banner { font-size: 0.78rem; padding: 10px 12px; }
    .promo-banner-inner { gap: 8px; }
}

/* ============================================
   TOPBAR
   ============================================ */

.topbar {
    background: var(--paper);
    color: var(--text-dark-mute);
    font-size: 0.78rem;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}

.topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.topbar-left, .topbar-right {
    display: flex;
    gap: 24px;
    align-items: center;
}

.topbar-inner span,
.topbar-inner a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    color: var(--text-dark-mute);
    transition: color 0.2s;
}

.topbar a:hover, .topbar span:hover { color: var(--magenta); }
.topbar svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--magenta); }

/* ============================================
   HEADER
   ============================================ */

.header {
    background: var(--cream);
    padding: 18px 0;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid var(--border-light);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.brand {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.brand img {
    height: 42px;
    width: auto;
    display: block;
}

.nav {
    display: flex;
    align-items: center;
    gap: 2px;
    margin: 0 auto;
}

.nav a {
    padding: 10px 16px;
    color: var(--text-dark);
    font-size: 0.9rem;
    font-weight: 500;
    border-radius: var(--r-pill);
    transition: all 0.2s;
    white-space: nowrap;
}

.nav a:hover { color: var(--magenta); }

.nav a.active {
    background: var(--magenta-soft);
    color: var(--magenta);
}

/* ── Cart button ──────────────────────────────────────── */
.cart-btn {
    position: relative;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--cream);
    border: 1.5px solid var(--border-light-2);
    color: var(--midnight);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all .15s;
    flex-shrink: 0;
}
.cart-btn:hover { background: var(--magenta); border-color: var(--magenta); color: #fff; }
.cart-badge {
    position: absolute; top: -5px; right: -5px;
    background: var(--magenta); color: #fff;
    font-size: .6rem; font-weight: 800; line-height: 1;
    min-width: 16px; height: 16px;
    border-radius: 99px; padding: 0 4px;
    display: flex; align-items: center; justify-content: center;
    border: 2px solid #fff;
}

/* ── Cart drawer ──────────────────────────────────────── */
.cart-overlay { position: fixed; inset: 0; background: rgba(13,20,16,.45); z-index: 700; opacity: 0; pointer-events: none; transition: opacity .25s; }
.cart-overlay.show { opacity: 1; pointer-events: all; }

.cart-drawer {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: 380px; max-width: 100vw;
    background: #fff;
    z-index: 710;
    display: flex; flex-direction: column;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.22,1,.36,1);
    box-shadow: -8px 0 48px rgba(0,0,0,.12);
}
.cart-drawer.open { transform: none; }

.cart-drawer-hd { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1.5px solid var(--border-light); flex-shrink: 0; }
.cart-drawer-hd h3 { font-family: var(--font-display); font-size: 1.15rem; font-weight: 500; color: var(--midnight); margin: 0; }
.cart-drawer-close { width: 32px; height: 32px; border-radius: 50%; background: var(--cream); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #aaa; transition: background .15s; }
.cart-drawer-close:hover { background: var(--cream-2); color: var(--midnight); }

.cart-drawer-body { flex: 1; overflow-y: auto; padding: 12px 0; }

.cart-empty { text-align: center; padding: 60px 20px; }
.cart-empty-icon { font-size: 2.5rem; margin-bottom: 12px; }
.cart-empty p { color: #aaa; font-size: .9rem; margin: 0 0 16px; }

.cart-item { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border-bottom: 1px solid var(--border-light); transition: background .12s; }
.cart-item:hover { background: #fafafa; }
.ci-img { width: 44px; height: 44px; border-radius: 8px; background: var(--cream-2); flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; font-size: 1.3rem; }
.ci-img img { width: 100%; height: 100%; object-fit: cover; }
.ci-info { flex: 1; min-width: 0; }
.ci-name { font-size: .82rem; font-weight: 600; color: var(--midnight); line-height: 1.3; margin-bottom: 2px; }
.ci-price { font-size: .72rem; color: #aaa; }
.ci-qty { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.ci-qty-btn { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--border-light-2); background: var(--cream); color: var(--midnight); font-size: .9rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; font-weight: 700; transition: all .12s; }
.ci-qty-btn:hover { background: var(--magenta); border-color: var(--magenta); color: #fff; }
.ci-qty-val { font-size: .82rem; font-weight: 700; color: var(--midnight); min-width: 16px; text-align: center; }
.ci-sub { font-size: .85rem; font-weight: 700; color: var(--midnight); flex-shrink: 0; min-width: 48px; text-align: right; }
.ci-del { width: 24px; height: 24px; border-radius: 50%; background: none; border: none; color: #ddd; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all .12s; }
.ci-del:hover { background: #fff0f0; color: #c0392b; }

.cart-drawer-ft { padding: 16px 20px; border-top: 1.5px solid var(--border-light); flex-shrink: 0; background: #fff; }
.cart-free-bar { height: 5px; background: var(--cream-2); border-radius: 99px; overflow: hidden; margin-bottom: 6px; }
.cart-free-bar-fill { height: 100%; background: var(--lime-deep); border-radius: 99px; transition: width .4s ease; }
.cart-free-msg { font-size: .72rem; color: #aaa; text-align: center; margin-bottom: 12px; }
.cart-totals { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.cart-total-row { display: flex; justify-content: space-between; font-size: .85rem; color: #888; }
.cart-total-row strong { color: var(--midnight); }
.cart-total-row.total { font-size: .95rem; font-weight: 700; color: var(--midnight); border-top: 1.5px solid var(--border-light); padding-top: 10px; margin-top: 4px; }
.cart-total-row.total strong { color: var(--magenta); font-family: var(--font-display); font-size: 1.15rem; }
.cart-checkout-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 13px; border-radius: var(--r-pill); background: var(--magenta); color: #fff; font-family: var(--font-body); font-size: .95rem; font-weight: 700; text-decoration: none; transition: opacity .15s; }
.cart-checkout-btn:hover { opacity: .88; }

/* ── Nav dropdown ─────────────────────────────────────── */
.nav-dropdown { position: relative; }

.nav-dropdown-trigger {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 10px 16px;
    color: var(--text-dark);
    font-size: 0.9rem;
    font-weight: 500;
    border-radius: var(--r-pill);
    background: none;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s;
    font-family: inherit;
}
.nav-dropdown-trigger:hover { color: var(--magenta); }
.nav-dropdown-trigger.active {
    background: var(--magenta-soft);
    color: var(--magenta);
}
.nav-caret { transition: transform .2s; flex-shrink: 0; }
.nav-dropdown.open .nav-caret { transform: rotate(180deg); }

.nav-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 200px;
    background: #fff;
    border: 1px solid var(--border-light-2);
    border-radius: var(--r-md);
    box-shadow: 0 8px 32px rgba(13,20,16,.10);
    padding: 8px;
    z-index: 200;
    flex-direction: column;
    gap: 2px;
}
.nav-dropdown.open .nav-dropdown-menu { display: flex; }

.nav-dropdown-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 12px;
    color: var(--text-dark);
    font-size: 0.88rem;
    font-weight: 500;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.nav-dropdown-menu a svg { flex-shrink: 0; opacity: .55; }
.nav-dropdown-menu a:hover { background: var(--cream-2); color: var(--magenta); }
.nav-dropdown-menu a:hover svg { opacity: 1; }
.nav-dropdown-menu a.active { background: var(--magenta-soft); color: var(--magenta); }
.nav-dropdown-menu a.active svg { opacity: 1; }

.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.btn-login {
    color: var(--text-dark);
    font-size: 0.88rem;
    font-weight: 500;
    padding: 10px 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: color 0.2s;
}

.btn-login svg { width: 16px; height: 16px; }
.btn-login:hover { color: var(--magenta); }

.menu-toggle {
    display: none;
    color: var(--midnight);
    padding: 8px;
}

.menu-toggle svg { width: 26px; height: 26px; }

/* ============================================
   HERO SLIDESHOW
   ============================================ */

.hero {
    background: var(--cream);
    color: var(--text-dark);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.hero-slider {
    position: relative;
    min-height: 640px;
}

.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s var(--ease), visibility 0.8s var(--ease);
    padding: 70px 0 90px;
}

.hero-slide.active {
    opacity: 1;
    visibility: visible;
    position: relative;
}

.hero-slide::before {
    content: '';
    position: absolute;
    top: -10%;
    right: -8%;
    width: 540px;
    height: 540px;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.55;
    z-index: -1;
}

.hero-slide-1::before { background: radial-gradient(circle, var(--lime) 0%, transparent 70%); }
.hero-slide-2::before { background: radial-gradient(circle, var(--magenta) 0%, transparent 70%); opacity: 0.4; }
.hero-slide-3::before { background: radial-gradient(circle, var(--pink) 0%, transparent 70%); opacity: 0.6; }

.hero-slide::after {
    content: '';
    position: absolute;
    bottom: -20%;
    left: -10%;
    width: 580px;
    height: 580px;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.4;
    z-index: -1;
}

.hero-slide-1::after { background: radial-gradient(circle, var(--pink) 0%, transparent 70%); }
.hero-slide-2::after { background: radial-gradient(circle, var(--lime) 0%, transparent 70%); }
.hero-slide-3::after { background: radial-gradient(circle, var(--lime) 0%, transparent 70%); }
.hero-slide-4::before { background: radial-gradient(circle, var(--magenta) 0%, transparent 70%); opacity: 0.4; }
.hero-slide-4::after { background: radial-gradient(circle, var(--lime) 0%, transparent 70%); opacity: 0.5; }

.hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 60px;
    align-items: center;
}

.hero h1 {
    font-size: clamp(2.6rem, 6vw, 5rem);
    margin-bottom: 24px;
    color: var(--text-dark);
}

.hero h1 .accent-lime { color: var(--lime-deep); }
.hero h1 .accent-magenta { color: var(--magenta); }
.hero h1 .accent-pink { color: var(--magenta-bright); }

.hero-text {
    font-size: 1.1rem;
    color: var(--text-dark-mute);
    margin-bottom: 32px;
    max-width: 480px;
    line-height: 1.65;
}

.hero-cta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 36px;
}

.hero-trust {
    display: flex;
    align-items: center;
    gap: 18px;
}

.hero-avatars { display: flex; }

.hero-avatars img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 2.5px solid var(--cream);
    object-fit: cover;
    margin-left: -12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.hero-avatars img:first-child { margin-left: 0; }

.hero-trust-text { font-size: 0.8rem; color: var(--text-dark-mute); line-height: 1.4; }
.hero-trust-text strong { color: var(--midnight); display: block; font-size: 0.92rem; font-weight: 600; }

.hero-stars { display: flex; gap: 2px; margin-bottom: 4px; }
.hero-stars svg { width: 14px; height: 14px; fill: var(--magenta); color: var(--magenta); }
.hero-slide-2 .hero-stars svg { fill: var(--magenta-bright); color: var(--magenta-bright); }
.hero-slide-3 .hero-stars svg { fill: var(--magenta-bright); color: var(--magenta-bright); }
.hero-slide-4 .hero-stars svg { fill: var(--lime-deep); color: var(--lime-deep); }

/* Hero visual */
.hero-visual {
    position: relative;
    aspect-ratio: 1 / 1;
    max-width: 480px;
    margin-left: auto;
    width: 100%;
}

.hero-img-main {
    position: absolute;
    top: 0;
    right: 0;
    width: 80%;
    aspect-ratio: 4 / 5;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(13, 20, 16, 0.18);
}

.hero-img-main img { width: 100%; height: 100%; object-fit: cover; }

.hero-blob {
    position: absolute;
    top: 12%;
    right: -8%;
    width: 60%;
    height: 60%;
    z-index: -1;
    animation: blob-morph 12s ease-in-out infinite;
}

.hero-slide-1 .hero-blob { background: var(--lime); border-radius: 50% 30% 60% 40% / 50% 60% 40% 50%; }
.hero-slide-2 .hero-blob { background: var(--magenta); border-radius: 30% 60% 40% 50% / 60% 40% 50% 60%; }
.hero-slide-3 .hero-blob { background: var(--pink); border-radius: 60% 40% 50% 30% / 40% 50% 60% 50%; }
.hero-slide-4 .hero-blob { background: var(--magenta); border-radius: 40% 50% 30% 60% / 50% 30% 60% 40%; }

@keyframes blob-morph {
    0%, 100% { border-radius: 50% 30% 60% 40% / 50% 60% 40% 50%; }
    50% { border-radius: 30% 60% 40% 50% / 60% 40% 50% 60%; }
}

.hero-tag-card {
    position: absolute;
    background: var(--cream);
    color: var(--midnight);
    padding: 16px 20px;
    border-radius: var(--r-md);
    box-shadow: 0 20px 40px rgba(13, 20, 16, 0.15);
    border: 1px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: 12px;
    z-index: 3;
}

.hero-tag-1 { top: 12%; left: -8%; animation: bob 4s ease-in-out infinite; }
.hero-tag-2 { bottom: 8%; right: -10%; animation: bob 5s ease-in-out infinite 0.5s; }

@keyframes bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.tag-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tag-icon svg { width: 22px; height: 22px; }

.tag-icon-lime { background: var(--lime); color: var(--midnight); }
.tag-icon-magenta { background: var(--magenta); color: var(--cream); }
.tag-icon-pink { background: var(--pink); color: var(--midnight); }
.tag-icon-dark { background: var(--magenta); color: var(--cream); }

.tag-value {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1;
}

.tag-label {
    font-size: 0.7rem;
    color: var(--text-dark-mute);
    margin-top: 3px;
    font-weight: 500;
}

/* Hero controls */
.hero-controls {
    position: absolute;
    bottom: 24px;
    left: 0;
    right: 0;
    z-index: 10;
    display: flex;
    justify-content: space-between;
    align-items: center;
    pointer-events: none;
}

.hero-controls .wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    pointer-events: auto;
}

.hero-dots { display: flex; gap: 8px; align-items: center; }

.hero-dot {
    width: 32px;
    height: 4px;
    background: rgba(13, 20, 16, 0.15);
    border-radius: 2px;
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
}

.hero-dot.active::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--magenta);
    transform-origin: left;
    animation: dot-fill 6s linear forwards;
}

@keyframes dot-fill {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

.hero-counter {
    font-family: var(--font-display);
    font-size: 0.95rem;
    color: var(--text-dark-mute);
    font-style: italic;
}

.hero-counter strong { color: var(--midnight); font-weight: 500; }

.hero-arrows { display: flex; gap: 8px; }

.hero-arrow {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--cream);
    border: 1px solid var(--border-light);
    color: var(--midnight);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    box-shadow: 0 4px 12px rgba(13,20,16,0.06);
}

.hero-arrow:hover {
    background: var(--magenta);
    color: var(--cream);
    border-color: var(--magenta);
}

.hero-arrow svg { width: 18px; height: 18px; }

/* ============================================
   MARQUEE
   ============================================ */

.marquee {
    background: var(--lime);
    color: var(--midnight);
    padding: 22px 0;
    overflow: hidden;
    border-top: 1px solid rgba(0,0,0,0.05);
    border-bottom: 1px solid rgba(0,0,0,0.05);
}

.marquee-track {
    display: flex;
    animation: scroll-left 35s linear infinite;
    gap: 60px;
    white-space: nowrap;
    width: max-content;
}

.marquee-item {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
    font-style: italic;
}

.marquee-dot {
    width: 8px;
    height: 8px;
    background: var(--midnight);
    border-radius: 50%;
    align-self: center;
}

@keyframes scroll-left {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* ============================================
   SECTION BASICS
   ============================================ */

.section { padding: 110px 0; position: relative; }
.section-cream { background: var(--cream); }
.section-paper { background: var(--paper); }
.section-pink { background: var(--pink-pale); }
.section-lime { background: var(--lime-pale); }

.section-head { margin-bottom: 60px; max-width: 720px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head .heading { margin-bottom: 20px; }

.section-head-flex {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 60px;
}

.section-head-flex .heading { flex: 1; max-width: 700px; margin-bottom: 0; }

/* ============================================
   ONLINE PÄEVIK — editorial split
   ============================================ */

.diary-section { background: var(--cream); }

.diary-grid {
    display: grid;
    grid-template-columns: 0.85fr 1fr;
    gap: 80px;
    align-items: center;
}

.diary-phone-wrap {
    position: relative;
    display: flex;
    justify-content: center;
}

.diary-phone-bg {
    position: absolute;
    inset: -10% -5% -10% -5%;
    background: radial-gradient(circle at 30% 30%, var(--pink-soft), transparent 60%),
                radial-gradient(circle at 70% 70%, rgba(197,213,74,0.5), transparent 60%);
    border-radius: 50%;
    filter: blur(40px);
    z-index: 0;
}

.phone-frame {
    background: linear-gradient(180deg, #2a2a2a, #1a1a1a);
    border-radius: 42px;
    padding: 14px;
    max-width: 290px;
    width: 100%;
    box-shadow: 0 30px 60px rgba(13, 20, 16, 0.25);
    position: relative;
    z-index: 2;
}

.phone-screen {
    background: var(--cream);
    color: var(--midnight);
    border-radius: 30px;
    padding: 24px 20px;
    min-height: 520px;
}

.phone-status {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-dark-mute);
    margin-bottom: 18px;
}

.phone-day-label {
    font-size: 0.7rem;
    color: var(--text-dark-mute);
    margin-bottom: 6px;
    font-weight: 500;
    letter-spacing: 0.5px;
}

.phone-day-progress {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 12px;
}

.phone-day-num {
    font-family: var(--font-display);
    font-size: 2.2rem;
    font-weight: 600;
    line-height: 1;
}

.phone-day-total {
    font-size: 0.92rem;
    color: var(--text-dark-mute);
}

.phone-progress-bar {
    height: 7px;
    background: var(--cream-2);
    border-radius: 3.5px;
    overflow: hidden;
    margin-bottom: 16px;
}

.phone-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--lime), var(--magenta));
    border-radius: 3.5px;
}

.phone-meal {
    padding: 12px 0;
    border-top: 1px solid var(--cream-2);
    display: flex;
    align-items: center;
    gap: 10px;
}

.phone-meal-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--cream-2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.phone-meal-icon svg { width: 16px; height: 16px; }
.phone-meal-info { flex: 1; min-width: 0; }
.phone-meal-name { font-size: 0.82rem; font-weight: 600; }
.phone-meal-detail { font-size: 0.7rem; color: var(--text-dark-mute); }
.phone-meal-units { font-size: 0.82rem; font-weight: 700; color: var(--magenta); }

.diary-text-col .heading { margin-bottom: 24px; }

.diary-lead {
    font-size: 1.15rem;
    color: var(--text-dark);
    line-height: 1.6;
    margin-bottom: 40px;
    font-family: var(--font-display);
    font-weight: 400;
    font-style: italic;
}

.diary-lead em { color: var(--magenta); font-style: italic; }

.diary-steps {
    list-style: none;
    counter-reset: step;
    border-top: 1px solid var(--border-light-2);
}

.diary-steps li {
    counter-increment: step;
    padding: 24px 0;
    border-bottom: 1px solid var(--border-light-2);
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 20px;
    align-items: start;
    transition: padding 0.3s var(--ease);
    position: relative;
}

.diary-steps li:hover { padding-left: 12px; }

.diary-steps li::before {
    content: counter(step, decimal-leading-zero);
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 500;
    font-style: italic;
    color: var(--magenta);
    line-height: 1;
}

.diary-steps h4 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1.1;
    margin-bottom: 6px;
    color: var(--midnight);
}

.diary-steps p {
    font-size: 0.92rem;
    color: var(--text-dark-mute);
    line-height: 1.6;
    margin: 0;
}

.diary-statement-strip {
    margin-top: 100px;
    background: var(--magenta);
    color: var(--cream);
    border-radius: var(--r-lg);
    padding: 60px 50px;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.diary-statement-strip::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, var(--lime) 0%, transparent 70%);
    opacity: 0.2;
    border-radius: 50%;
    filter: blur(40px);
}

.diary-statement-quote {
    font-family: var(--font-display);
    font-size: 1.6rem;
    line-height: 1.15;
    font-style: italic;
    position: relative;
}

.diary-statement-quote em {
    color: var(--lime);
    font-weight: 500;
    font-style: italic;
}

.diary-statement-stat {
    text-align: center;
    padding-left: 30px;
    border-left: 1px solid rgba(254, 249, 238, 0.25);
    position: relative;
}

.diary-statement-stat strong {
    display: block;
    font-family: var(--font-display);
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1;
    color: var(--cream);
    margin-bottom: 6px;
}

.diary-statement-stat span {
    font-size: 0.78rem;
    color: rgba(254, 249, 238, 0.75);
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

/* ============================================
   PRICING (PLANS)
   ============================================ */

.plans-section {
    background: var(--pink-pale);
    color: var(--midnight);
    position: relative;
    overflow: hidden;
}

.plans-section::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 700px;
    height: 700px;
    background: radial-gradient(circle, var(--magenta) 0%, transparent 60%);
    opacity: 0.08;
    border-radius: 50%;
    pointer-events: none;
}

.summer-banner {
    background: linear-gradient(90deg, var(--magenta), var(--magenta-bright));
    color: var(--cream);
    padding: 18px 28px;
    border-radius: var(--r-pill);
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-weight: 600;
    font-size: 0.95rem;
    margin-bottom: 32px;
    box-shadow: 0 10px 30px rgba(168, 39, 111, 0.35);
}

.summer-banner svg { width: 18px; height: 18px; }
.summer-banner strong { font-weight: 700; }

.plans-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    position: relative;
    z-index: 2;
}

.plan {
    background: var(--cream);
    border: 1px solid var(--border-light);
    border-radius: var(--r-lg);
    padding: 36px 32px;
    transition: all 0.3s var(--ease);
    display: flex;
    flex-direction: column;
    position: relative;
    color: var(--midnight);
}

.plan:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(13, 20, 16, 0.08);
    border-color: var(--magenta);
}

.plan-featured {
    background: var(--magenta);
    color: var(--cream);
    border-color: var(--magenta);
    transform: scale(1.04);
}

.plan-featured:hover {
    background: var(--magenta-bright);
    border-color: var(--magenta-bright);
    transform: scale(1.04) translateY(-6px);
    box-shadow: 0 20px 40px rgba(168,39,111,0.3);
}

.plan-tag {
    display: inline-block;
    background: var(--cream);
    color: var(--magenta);
    padding: 6px 14px;
    border-radius: var(--r-pill);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    align-self: flex-start;
}

.plan-name {
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 10px;
    color: inherit;
}

.plan-desc {
    font-size: 0.88rem;
    color: var(--text-dark-mute);
    margin-bottom: 28px;
    min-height: 44px;
    line-height: 1.55;
}

.plan-featured .plan-desc { color: rgba(254,249,238,0.85); }

.plan-savings {
    display: inline-block;
    background: var(--lime-pale);
    color: var(--lime-deep);
    padding: 5px 12px;
    border-radius: var(--r-pill);
    font-size: 0.72rem;
    font-weight: 700;
    margin-bottom: 12px;
}

.plan-featured .plan-savings { background: var(--lime); color: var(--midnight); }

.plan-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 28px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--border-light);
}

.plan-featured .plan-price { border-color: rgba(254,249,238,0.2); }

.plan-price-amount {
    font-family: var(--font-display);
    font-size: 3rem;
    font-weight: 500;
    line-height: 1;
}

.plan-price-period { font-size: 0.92rem; color: var(--text-dark-mute); }
.plan-featured .plan-price-period { color: rgba(254,249,238,0.7); }

.plan-trial {
    font-size: 0.78rem;
    color: var(--magenta);
    font-weight: 600;
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.plan-featured .plan-trial { color: var(--lime); }
.plan-trial svg { width: 14px; height: 14px; }

.plan-features {
    list-style: none;
    margin-bottom: 32px;
    flex: 1;
}

.plan-features li {
    padding: 10px 0;
    font-size: 0.92rem;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--midnight);
}

.plan-featured .plan-features li { color: var(--cream); }

.plan-check {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--magenta);
    color: var(--cream);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 2px;
}

.plan-featured .plan-check { background: var(--cream); color: var(--magenta); }
.plan-check svg { width: 12px; height: 12px; }

.plan .btn { width: 100%; justify-content: center; }

/* ============================================
   WHY US — stats + success stories
   ============================================ */

.why-section { background: var(--cream); }

.why-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-bottom: 100px;
    border-top: 1px solid var(--border-light-2);
    border-bottom: 1px solid var(--border-light-2);
}

.why-stat-block {
    padding: 36px 24px;
    text-align: center;
    border-right: 1px solid var(--border-light-2);
}

.why-stat-block:last-child { border-right: none; }

.why-stat-num {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    font-weight: 500;
    line-height: 0.95;
    margin-bottom: 6px;
    color: var(--midnight);
}

.why-stat-num em { color: var(--magenta); font-style: italic; }
.why-stat-block:nth-child(2) .why-stat-num em { color: var(--lime-deep); }
.why-stat-block:nth-child(3) .why-stat-num em { color: var(--magenta-bright); }
.why-stat-block:nth-child(4) .why-stat-num em { color: var(--magenta); }

.why-stat-label {
    font-size: 0.78rem;
    color: var(--text-dark-mute);
    text-transform: uppercase;
    letter-spacing: 1.8px;
    font-weight: 500;
}

.story-label {
    display: inline-block;
    font-family: var(--font-display);
    font-style: italic;
    font-size: 1rem;
    color: var(--magenta);
    margin-bottom: 14px;
    padding-left: 20px;
    position: relative;
}

.story-label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 1px;
    background: var(--magenta);
}

.stories {
    display: flex;
    flex-direction: column;
    gap: 100px;
}

.story {
    display: grid;
    grid-template-columns: 0.7fr 1fr;
    gap: 60px;
    align-items: center;
}

.story-reverse { direction: rtl; }
.story-reverse > * { direction: ltr; }

.story-img {
    position: relative;
    aspect-ratio: 4/5;
    border-radius: var(--r-lg);
    overflow: hidden;
}

.story-img img { width: 100%; height: 100%; object-fit: cover; }

.story-img-stat {
    position: absolute;
    bottom: 24px;
    left: 24px;
    right: 24px;
    background: var(--cream);
    color: var(--midnight);
    padding: 16px 22px;
    border-radius: var(--r-md);
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 20px 40px rgba(13, 20, 16, 0.2);
}

.story-img-stat-num {
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--magenta);
    line-height: 1;
}

.story-img-stat-label {
    font-size: 0.75rem;
    color: var(--text-dark-mute);
    text-transform: uppercase;
    letter-spacing: 1.2px;
    text-align: right;
}

.story-content blockquote {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 2.6vw, 2.4rem);
    line-height: 1.2;
    margin-bottom: 28px;
    font-weight: 400;
    color: var(--midnight);
}

.story-content blockquote em { font-style: italic; color: var(--magenta); }
.story-2 blockquote em { color: var(--lime-deep); }
.story-3 blockquote em { color: var(--magenta-bright); }

.story-cite {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-top: 24px;
    border-top: 1px solid var(--border-light-2);
}

.story-cite-name {
    font-weight: 600;
    color: var(--midnight);
    font-size: 1rem;
}

.story-cite-detail {
    font-size: 0.85rem;
    color: var(--text-dark-mute);
}

.story-cite-divider {
    width: 1px;
    height: 40px;
    background: var(--border-light-2);
}

.story-cite-tag {
    background: var(--magenta-soft);
    padding: 6px 14px;
    border-radius: var(--r-pill);
    font-size: 0.78rem;
    color: var(--magenta);
    font-weight: 600;
}

/* ============================================
   RECIPES + TIPS COMBINED
   ============================================ */

.recipes-section { background: var(--paper); }

.recipes-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 24px;
    margin-bottom: 80px;
}

.recipe {
    border-radius: var(--r-lg);
    overflow: hidden;
    background: var(--cream);
    transition: all 0.3s var(--ease);
    display: flex;
    flex-direction: column;
    position: relative;
    border: 1px solid var(--border-light);
}

.recipe:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(13, 20, 16, 0.08);
}

.recipe-img {
    overflow: hidden;
    position: relative;
}

.recipe-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--ease);
}

.recipe:hover .recipe-img img { transform: scale(1.06); }

.recipe-tag {
    position: absolute;
    top: 16px;
    left: 16px;
    background: var(--cream);
    color: var(--midnight);
    padding: 6px 14px;
    border-radius: var(--r-pill);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    z-index: 2;
}

.recipe-tag.tag-magenta { background: var(--magenta); color: var(--cream); }
.recipe-tag.tag-lime { background: var(--lime); color: var(--midnight); }
.recipe-tag.tag-pink { background: var(--pink); color: var(--midnight); }

.recipe-body {
    padding: 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.recipe-meta {
    display: flex;
    gap: 16px;
    font-size: 0.78rem;
    color: var(--text-dark-mute);
    margin-bottom: 12px;
}

.recipe-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.recipe-meta svg { width: 14px; height: 14px; }

.recipe h3 {
    font-family: var(--font-display);
    font-size: 1.3rem;
    line-height: 1.15;
    margin-bottom: 10px;
    flex: 1;
}

.recipe p {
    font-size: 0.88rem;
    color: var(--text-dark-mute);
    line-height: 1.55;
    margin-bottom: 16px;
}

.recipe-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--magenta);
    align-self: flex-start;
}

.recipe-link svg { width: 16px; height: 16px; transition: transform 0.2s; }
.recipe:hover .recipe-link svg { transform: translateX(4px); }

.recipe-featured {
    grid-column: span 4;
    grid-row: span 2;
    flex-direction: row;
}

.recipe-featured .recipe-img { flex: 1.2; min-height: 100%; }
.recipe-featured .recipe-img img { height: 100%; min-height: 460px; }
.recipe-featured .recipe-body { flex: 1; padding: 40px; justify-content: center; }
.recipe-featured h3 { font-size: 2rem; flex: 0; }
.recipe-featured p { font-size: 0.95rem; }

.recipe-small { grid-column: span 2; }
.recipe-small .recipe-img { aspect-ratio: 4/3; }

.recipe-wide { grid-column: span 3; }
.recipe-wide .recipe-img { aspect-ratio: 4/3; }

/* Newsletter */
.newsletter {
    background: var(--lime);
    color: var(--midnight);
    border-radius: var(--r-lg);
    padding: 70px 60px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.newsletter::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, var(--magenta) 0%, transparent 70%);
    opacity: 0.18;
    border-radius: 50%;
    filter: blur(60px);
}

.newsletter::after {
    content: '';
    position: absolute;
    bottom: -50%;
    left: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, var(--pink) 0%, transparent 70%);
    opacity: 0.25;
    border-radius: 50%;
    filter: blur(60px);
}

.newsletter-text { position: relative; z-index: 2; }

.newsletter-eyebrow {
    display: inline-block;
    font-size: 0.78rem;
    color: var(--magenta);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
    margin-bottom: 14px;
    background: var(--cream);
    padding: 6px 14px;
    border-radius: var(--r-pill);
}

.newsletter h3 {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    line-height: 1.05;
    margin-bottom: 14px;
    color: var(--midnight);
}

.newsletter h3 em { font-style: italic; color: var(--magenta); }

.newsletter p {
    color: var(--text-dark);
    font-size: 0.95rem;
    line-height: 1.6;
    opacity: 0.8;
}

.newsletter-form-wrap { position: relative; z-index: 2; }

.newsletter-form {
    background: var(--cream);
    border-radius: var(--r-pill);
    padding: 8px 8px 8px 24px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 20px 50px rgba(13,20,16,0.15);
}

.newsletter-form input {
    flex: 1;
    background: none;
    border: none;
    outline: none;
    font-family: inherit;
    font-size: 0.95rem;
    color: var(--midnight);
    padding: 12px 0;
    min-width: 0;
}

.newsletter-form input::placeholder { color: var(--text-dark-mute); }

.newsletter-form button {
    background: var(--magenta);
    color: var(--cream);
    padding: 14px 24px;
    border-radius: var(--r-pill);
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.newsletter-form button:hover { background: var(--magenta-bright); }
.newsletter-form button svg { width: 16px; height: 16px; }

.newsletter-fineprint {
    margin-top: 14px;
    font-size: 0.78rem;
    color: rgba(13,20,16,0.6);
    text-align: center;
}

/* ============================================
   FINAL CTA
   ============================================ */

.cta-section {
    background: var(--lime);
    color: var(--midnight);
    padding: 120px 0;
    position: relative;
    overflow: hidden;
}

.cta-section::before {
    content: '';
    position: absolute;
    width: 400px;
    height: 400px;
    top: -150px;
    left: -100px;
    border-radius: 50%;
    background: var(--magenta);
    opacity: 0.08;
}

.cta-section::after {
    content: '';
    position: absolute;
    width: 500px;
    height: 500px;
    bottom: -200px;
    right: -150px;
    border-radius: 50%;
    background: var(--pink);
    opacity: 0.18;
}

.cta-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.cta-inner h2 {
    font-family: var(--font-display);
    font-size: clamp(2.6rem, 5vw, 4.5rem);
    line-height: 0.95;
    letter-spacing: -0.03em;
    margin-bottom: 24px;
}

.cta-inner h2 em { font-style: italic; font-weight: 400; color: var(--magenta); }

.cta-inner p {
    font-size: 1.15rem;
    color: rgba(13,20,16,0.7);
    margin-bottom: 40px;
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
}

.cta-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ============================================
   FOOTER
   ============================================ */

.footer {
    background: var(--paper);
    color: var(--text-dark-mute);
    padding: 80px 0 30px;
    border-top: 1px solid var(--border-light);
}

.footer-grid {
    display: grid;
    grid-template-columns: 2.2fr 1fr 1fr 1.3fr;
    gap: 50px;
    padding-bottom: 60px;
    border-bottom: 1px solid var(--border-light-2);
}

.footer-brand { max-width: 320px; }
.footer-brand .brand { margin-bottom: 18px; }

.footer-brand p {
    font-size: 0.9rem;
    line-height: 1.7;
    margin-bottom: 24px;
    color: var(--text-dark-mute);
}

.footer-social { display: flex; gap: 10px; }

.footer-social a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--cream);
    color: var(--midnight);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    border: 1px solid var(--border-light);
}

.footer-social a:hover {
    background: var(--magenta);
    color: var(--cream);
    border-color: var(--magenta);
    transform: translateY(-2px);
}

.footer-social svg { width: 18px; height: 18px; }

.footer h5 {
    color: var(--midnight);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 22px;
}

.footer-links {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer-links a { font-size: 0.92rem; transition: color 0.2s; color: var(--text-dark-mute); }
.footer-links a:hover { color: var(--magenta); }

.footer-contact-item {
    display: flex;
    gap: 12px;
    margin-bottom: 14px;
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--text-dark-mute);
}

.footer-contact-item svg {
    width: 18px;
    height: 18px;
    color: var(--magenta);
    flex-shrink: 0;
    margin-top: 3px;
}

.footer-bottom {
    padding-top: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8rem;
    color: var(--text-dark-mute);
    flex-wrap: wrap;
    gap: 12px;
}

.footer-bottom a { color: var(--text-dark-mute); }
.footer-bottom a:hover { color: var(--magenta); }

/* ============================================
   PAGE HERO (inner pages)
   ============================================ */

.page-hero {
    background: var(--cream);
    color: var(--midnight);
    padding: 70px 0 110px;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.page-hero::before {
    content: '';
    position: absolute;
    top: -10%;
    right: -8%;
    width: 540px;
    height: 540px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--pink) 0%, transparent 70%);
    filter: blur(80px);
    opacity: 0.5;
    z-index: -1;
}

.page-hero::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: -10%;
    width: 580px;
    height: 580px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--lime) 0%, transparent 70%);
    filter: blur(80px);
    opacity: 0.4;
    z-index: -1;
}

.page-hero-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-dark-mute);
    font-size: 0.88rem;
    margin-bottom: 50px;
    transition: color 0.2s, gap 0.2s;
    font-weight: 500;
}

.page-hero-back:hover { color: var(--magenta); gap: 12px; }
.page-hero-back svg { width: 14px; height: 14px; }

.page-hero-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 80px;
    align-items: end;
}

.page-hero-eyebrow {
    display: inline-block;
    font-family: var(--font-display);
    font-style: italic;
    color: var(--magenta);
    font-size: 1.1rem;
    margin-bottom: 18px;
}

.page-hero h1.display {
    font-size: clamp(3rem, 6vw, 5.4rem);
    margin-bottom: 24px;
    line-height: 0.95;
    color: var(--midnight);
}

.page-hero-text {
    font-size: 1.1rem;
    color: var(--text-dark-mute);
    line-height: 1.7;
    max-width: 560px;
}

.page-hero-stats {
    display: flex;
    gap: 0;
    border-left: 1px solid var(--border-light-2);
}

.page-hero-stat {
    flex: 1;
    padding: 0 28px;
    border-right: 1px solid var(--border-light-2);
}

.page-hero-stat:first-child { padding-left: 28px; }

.page-hero-stat strong {
    font-family: var(--font-display);
    font-size: clamp(2rem, 3vw, 2.8rem);
    display: block;
    line-height: 1;
    font-weight: 500;
    margin-bottom: 8px;
    color: var(--midnight);
}

.page-hero-stat strong em { color: var(--magenta); font-style: italic; }
.page-hero-stat:nth-child(2) strong em { color: var(--lime-deep); }

.page-hero-stat span {
    font-size: 0.74rem;
    color: var(--text-dark-mute);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 600;
}

/* ============================================
   STORY (about page)
   ============================================ */

.story-section { background: var(--cream); }

.story-section-grid {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 80px;
    align-items: center;
}

.story-img-wrap {
    position: relative;
    aspect-ratio: 4/5;
    border-radius: var(--r-lg);
    overflow: hidden;
}

.story-img-wrap img { width: 100%; height: 100%; object-fit: cover; }

.story-img-badge {
    position: absolute;
    bottom: 24px;
    left: 24px;
    background: var(--lime);
    color: var(--midnight);
    padding: 14px 22px;
    border-radius: var(--r-md);
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-style: italic;
    font-weight: 500;
    box-shadow: 0 20px 40px rgba(13,20,16,0.2);
}

.story-text-block .heading { margin-bottom: 28px; }

.story-text-block p {
    font-size: 1.02rem;
    line-height: 1.8;
    color: var(--text-dark);
    margin-bottom: 18px;
}

.story-text-block p.lead {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 1.4rem;
    line-height: 1.4;
    color: var(--midnight);
    margin-bottom: 28px;
    font-weight: 400;
}

.story-text-block p.lead em { color: var(--magenta); }

/* ============================================
   TEAM
   ============================================ */

.team-section { background: var(--paper); }

.team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.team-grid.two-extra { grid-template-columns: repeat(3, 1fr); }

.team-card {
    background: var(--cream);
    border-radius: var(--r-lg);
    overflow: hidden;
    transition: all 0.3s var(--ease);
    border: 1px solid var(--border-light);
}

.team-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(13,20,16,0.08);
}

.team-img {
    aspect-ratio: 4/5;
    overflow: hidden;
    position: relative;
}

.team-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--ease);
}

.team-card:hover .team-img img { transform: scale(1.05); }

.team-tag {
    position: absolute;
    top: 18px;
    left: 18px;
    background: var(--cream);
    color: var(--magenta);
    padding: 5px 12px;
    border-radius: var(--r-pill);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
}

.team-tag.lead { background: var(--magenta); color: var(--cream); }

.team-body { padding: 28px; }

.team-name {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.1;
    margin-bottom: 4px;
    color: var(--midnight);
}

.team-role {
    font-size: 0.82rem;
    color: var(--magenta);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 12px;
}

.team-bio {
    font-size: 0.88rem;
    color: var(--text-dark-mute);
    line-height: 1.6;
}

/* ============================================
   VALUES / PRINCIPLES
   ============================================ */

.values-section { background: var(--cream); }

.values-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 36px;
}

.value-item {
    padding: 32px 0 0;
    border-top: 2px solid var(--midnight);
}

.value-num {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-style: italic;
    color: var(--magenta);
    margin-bottom: 18px;
    display: block;
    font-weight: 500;
}

.value-item h4 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
    margin-bottom: 12px;
    line-height: 1.1;
    color: var(--midnight);
}

.value-item p {
    font-size: 0.92rem;
    line-height: 1.6;
    color: var(--text-dark-mute);
}

/* ============================================
   CONTACT
   ============================================ */

.contact-section { background: var(--cream); }

.contact-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 50px;
    align-items: start;
}

.contact-form-wrap {
    background: var(--paper);
    padding: 50px;
    border-radius: var(--r-lg);
    border: 1px solid var(--border-light);
}

.contact-form-wrap h3 {
    font-family: var(--font-display);
    font-size: 1.9rem;
    margin-bottom: 8px;
    line-height: 1.1;
    font-weight: 500;
    color: var(--midnight);
}

.contact-form-wrap > p {
    color: var(--text-dark-mute);
    margin-bottom: 32px;
    line-height: 1.6;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

.form-group { margin-bottom: 16px; }

.form-group label {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: var(--text-dark-mute);
    margin-bottom: 8px;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    background: var(--cream);
    border: 1.5px solid var(--border-light);
    border-radius: var(--r-sm);
    padding: 14px 18px;
    font-family: inherit;
    font-size: 0.95rem;
    color: var(--midnight);
    transition: border-color 0.2s;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: var(--magenta);
}

.form-group textarea {
    min-height: 140px;
    resize: vertical;
    font-family: inherit;
}

.contact-form-wrap .btn { margin-top: 8px; }

/* Contact info cards (all light) */
.contact-info-stack {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.contact-info-card {
    background: var(--cream);
    color: var(--midnight);
    padding: 28px 30px;
    border-radius: var(--r-lg);
    display: flex;
    gap: 18px;
    align-items: flex-start;
    transition: all 0.3s var(--ease);
    border: 1px solid var(--border-light);
}

.contact-info-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(13,20,16,0.08);
    border-color: var(--magenta);
}

.contact-info-card.lime { background: var(--lime); color: var(--midnight); border-color: var(--lime); }
.contact-info-card.lime:hover { border-color: var(--lime); }

.contact-info-card.magenta { background: var(--magenta); color: var(--cream); border-color: var(--magenta); }
.contact-info-card.magenta:hover { border-color: var(--magenta); }

.contact-info-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--magenta-soft);
    color: var(--magenta);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contact-info-card.lime .contact-info-icon { background: var(--midnight); color: var(--lime); }
.contact-info-card.magenta .contact-info-icon { background: rgba(255,255,255,0.2); color: var(--cream); }

.contact-info-icon svg { width: 22px; height: 22px; }

.contact-info-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    opacity: 0.7;
    margin-bottom: 6px;
    font-weight: 700;
}

.contact-info-value {
    font-family: var(--font-display);
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 500;
}

.contact-info-value a { color: inherit; transition: opacity 0.2s; }
.contact-info-value a:hover { opacity: 0.7; }

/* Map */
.map-strip {
    background: var(--paper);
    padding: 70px 0;
}

.map-placeholder {
    background: linear-gradient(135deg, var(--pink-soft) 0%, var(--cream-2) 100%);
    border-radius: var(--r-lg);
    aspect-ratio: 21/9;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.map-placeholder::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(13,20,16,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(13,20,16,0.04) 1px, transparent 1px);
    background-size: 40px 40px;
}

.map-pin {
    background: var(--magenta);
    color: var(--cream);
    padding: 22px 32px;
    border-radius: var(--r-pill);
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-style: italic;
    font-weight: 500;
    box-shadow: 0 20px 50px rgba(168,39,111,0.4);
    display: flex;
    align-items: center;
    gap: 14px;
    position: relative;
    z-index: 2;
}

.map-pin svg { width: 22px; height: 22px; }

/* ============================================
   FAQ
   ============================================ */

.faq-section { background: var(--cream); }

.faq-list {
    max-width: 880px;
    margin: 0 auto;
    border-top: 1px solid var(--border-light-2);
}

.faq-item {
    border-bottom: 1px solid var(--border-light-2);
    padding: 24px 0;
    cursor: pointer;
}

.faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--midnight);
    transition: color 0.2s;
}

.faq-item:hover .faq-question { color: var(--magenta); }

.faq-toggle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--paper);
    color: var(--midnight);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

.faq-toggle svg { width: 16px; height: 16px; transition: transform 0.3s; }

.faq-item.open .faq-toggle { background: var(--magenta); color: var(--cream); }
.faq-item.open .faq-toggle svg { transform: rotate(45deg); }

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s var(--ease), padding 0.4s var(--ease);
    color: var(--text-dark-mute);
    line-height: 1.7;
    font-size: 0.95rem;
}

.faq-item.open .faq-answer {
    max-height: 400px;
    padding-top: 18px;
}

/* ============================================
   PLACEHOLDER GRID (services, groups, etc.)
   ============================================ */

.placeholder-section { background: var(--cream); }

.placeholder-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.placeholder-card {
    background: var(--paper);
    padding: 40px 36px;
    border-radius: var(--r-lg);
    transition: all 0.3s var(--ease);
    border: 1px solid var(--border-light);
}

.placeholder-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(13,20,16,0.08);
    border-color: var(--magenta);
}

.placeholder-card-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--magenta);
    color: var(--cream);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
}

.placeholder-card:nth-child(3n+2) .placeholder-card-icon { background: var(--lime); color: var(--midnight); }
.placeholder-card:nth-child(3n+3) .placeholder-card-icon { background: var(--pink); color: var(--midnight); }

.placeholder-card-icon svg { width: 26px; height: 26px; }

.placeholder-card h3 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
    margin-bottom: 12px;
    line-height: 1.15;
    color: var(--midnight);
}

.placeholder-card p {
    color: var(--text-dark-mute);
    line-height: 1.65;
    font-size: 0.92rem;
    margin-bottom: 18px;
}

.placeholder-card-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--magenta);
    font-weight: 600;
    font-size: 0.88rem;
    transition: gap 0.2s;
}

.placeholder-card-link:hover { gap: 12px; }
.placeholder-card-link svg { width: 14px; height: 14px; }

/* Coming soon strip */
.coming-soon-strip {
    background: var(--magenta);
    color: var(--cream);
    border-radius: var(--r-lg);
    padding: 50px 60px;
    margin-top: 80px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
}

.coming-soon-strip::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, var(--lime) 0%, transparent 70%);
    opacity: 0.18;
    border-radius: 50%;
    filter: blur(60px);
}

.coming-soon-strip h3 {
    font-family: var(--font-display);
    font-size: 2rem;
    line-height: 1.1;
    font-weight: 500;
    flex: 1;
    min-width: 280px;
    color: var(--cream);
    position: relative;
}

.coming-soon-strip h3 em { color: var(--lime); font-style: italic; }
.coming-soon-strip .btn { position: relative; }

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 1100px) {
    .hero-grid { grid-template-columns: 1fr; gap: 60px; }
    .hero-visual { margin: 0 auto; max-width: 420px; }
    .hero-slide { padding: 50px 0 110px; }
    .diary-grid { grid-template-columns: 1fr; gap: 60px; }
    .diary-statement-strip { grid-template-columns: 1fr 1fr; gap: 30px; padding: 40px; }
    .diary-statement-quote { grid-column: span 2; font-size: 1.4rem; }
    .diary-statement-stat { padding-left: 0; border-left: none; border-top: 1px solid rgba(254,249,238,0.25); padding-top: 24px; }
    .plans-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
    .plan-featured { transform: none; }
    .plan-featured:hover { transform: translateY(-6px); }
    .why-stats-row { grid-template-columns: repeat(2, 1fr); }
    .why-stat-block:nth-child(2) { border-right: none; }
    .why-stat-block:nth-child(1), .why-stat-block:nth-child(2) { border-bottom: 1px solid var(--border-light-2); }
    .story { grid-template-columns: 1fr; gap: 40px; }
    .story-reverse { direction: ltr; }
    .recipes-grid { grid-template-columns: repeat(2, 1fr); }
    .recipe-featured, .recipe-small, .recipe-wide { grid-column: span 1; grid-row: span 1; flex-direction: column; }
    .recipe-featured h3 { font-size: 1.4rem; }
    .recipe-featured .recipe-img img { min-height: auto; }
    .newsletter { grid-template-columns: 1fr; gap: 36px; padding: 50px 36px; }
    .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 40px; }
    .page-hero-grid { grid-template-columns: 1fr; gap: 40px; align-items: start; }
    .story-section-grid { grid-template-columns: 1fr; gap: 50px; }
    .team-grid, .team-grid.two-extra { grid-template-columns: repeat(2, 1fr); }
    .values-grid { grid-template-columns: repeat(2, 1fr); }
    .contact-grid { grid-template-columns: 1fr; }
    .placeholder-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .topbar { display: none; }
    .nav { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--cream); flex-direction: column; padding: 100px 30px 30px; align-items: stretch; gap: 8px; z-index: 99; margin: 0; overflow-y: auto; }
    .nav.open { display: flex; }
    .nav a { font-size: 1.5rem; padding: 16px 20px; font-family: var(--font-display); color: var(--midnight); }
    /* Mobile dropdown: inline expand */
    .nav-dropdown { position: static; width: 100%; }
    .nav-dropdown-trigger { font-size: 1.5rem; padding: 16px 20px; font-family: var(--font-display); color: var(--midnight); width: 100%; justify-content: space-between; }
    .nav-dropdown-menu { display: none; position: static; transform: none; box-shadow: none; border: none; background: var(--cream-2); border-radius: var(--r-md); padding: 4px 0 4px 20px; min-width: 0; margin-top: 4px; }
    .nav-dropdown.open .nav-dropdown-menu { display: flex; }
    .nav-dropdown-menu a { font-size: 1.2rem; font-family: var(--font-display); padding: 14px 20px; }
    .menu-toggle { display: block; }
    .header-actions .btn-login,
    .header-actions .btn { display: none; }
    .header-actions .menu-toggle { display: block; }
    .section { padding: 70px 0; }
    .hero-cta { width: 100%; }
    .hero-cta .btn { flex: 1; justify-content: center; }
    .hero-tag-card { padding: 12px 14px; }
    .tag-icon { width: 36px; height: 36px; }
    .tag-value { font-size: 1.1rem; }
    .tag-label { font-size: 0.65rem; }
    .marquee-item { font-size: 1.1rem; }
    .why-stats-row { grid-template-columns: 1fr; }
    .why-stat-block { border-right: none; border-bottom: 1px solid var(--border-light-2); }
    .why-stat-block:last-child { border-bottom: none; }
    .recipes-grid { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr; }
    .section-head-flex { flex-direction: column; align-items: flex-start; }
    .cta-inner h2 { font-size: 2.2rem; }
    .diary-statement-strip { grid-template-columns: 1fr; }
    .diary-statement-quote { grid-column: span 1; }
    .newsletter-form { padding: 6px 6px 6px 18px; flex-wrap: wrap; }
    .newsletter-form input { width: 100%; padding: 10px 0; }
    .newsletter-form button { width: 100%; justify-content: center; }
    .page-hero { padding: 50px 0 80px; }
    .page-hero-stats { flex-direction: column; border-left: none; gap: 24px; }
    .page-hero-stat { border-right: none; border-bottom: 1px solid var(--border-light-2); padding: 0 0 24px; }
    .page-hero-stat:first-child { padding-left: 0; }
    .page-hero-stat:last-child { border-bottom: none; padding-bottom: 0; }
    .team-grid, .team-grid.two-extra { grid-template-columns: 1fr; }
    .values-grid { grid-template-columns: 1fr; }
    .form-row { grid-template-columns: 1fr; }
    .contact-form-wrap { padding: 32px; }
    .placeholder-grid { grid-template-columns: 1fr; }
    .map-pin { font-size: 1rem; padding: 16px 22px; }
    .coming-soon-strip { padding: 36px; flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
    .hero-controls { padding: 0 16px; }
    .hero-counter { display: none; }
}

/* Reveal */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}
.reveal.in { opacity: 1; transform: translateY(0); }

/* ============================================================
   INNER PAGE ADDITIONS
   ============================================================ */

/* Recipe card */
.recipe-card { background: #fff; border: 1.5px solid var(--border-light); border-radius: var(--r-md); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease); }
.recipe-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.08); }
.recipe-card-img-link { display: block; aspect-ratio: 4/3; overflow: hidden; position: relative; background: var(--warm-gray); }
.recipe-card-img-link img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s var(--ease); }
.recipe-card:hover .recipe-card-img-link img { transform: scale(1.04); }
.recipe-img-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--warm-gray), var(--border-light)); }
.recipe-units { position: absolute; top: 12px; right: 12px; background: var(--magenta); color: #fff; font-size: 0.78rem; font-weight: 600; padding: 4px 10px; border-radius: 20px; }
.recipe-body { padding: 20px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.recipe-meta { font-size: 0.8rem; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.recipe-meta svg { width: 14px; height: 14px; }
.recipe-name { font-family: var(--font-display); font-size: 1.1rem; font-weight: 500; color: var(--midnight); line-height: 1.3; }
.recipe-desc { font-size: 0.85rem; color: var(--muted); line-height: 1.5; }

/* Products grid */
.products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.product-card { background: #fff; border: 1.5px solid var(--border-light); border-radius: var(--r-md); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.2s var(--ease), box-shadow 0.2s; }
.product-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.08); }
.product-img { aspect-ratio: 1; overflow: hidden; background: var(--warm-gray); }
.product-img img { width: 100%; height: 100%; object-fit: cover; }
.product-img--placeholder { background: linear-gradient(135deg, var(--warm-gray), var(--border-light)); }
.product-body { padding: 22px; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.product-name { font-family: var(--font-display); font-size: 1.05rem; font-weight: 500; color: var(--midnight); }
.product-desc { font-size: 0.85rem; color: var(--muted); line-height: 1.5; flex: 1; }
.product-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--border-light); }
.product-price { font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; color: var(--midnight); }
.product-oos { font-size: 0.82rem; color: var(--muted); font-style: italic; }

/* Groups grid */
.groups-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.group-card { background: #fff; border: 1.5px solid var(--border); border-radius: var(--r-md); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.group-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.1); transform: translateY(-3px); }
.group-card-img { aspect-ratio: 16/9; overflow: hidden; background: var(--cream); }
.group-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.group-card:hover .group-card-img img { transform: scale(1.04); }
.group-card-body { padding: 22px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.group-card h4 { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 500; color: var(--midnight); margin: 0; }
.group-meta { display: flex; align-items: center; gap: 8px; font-size: 0.85rem; color: var(--text-muted); flex: 1; }
.group-meta svg { width: 16px; height: 16px; }
.group-footer { margin-top: auto; }

/* Features grid */
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.feature-item { display: flex; flex-direction: column; gap: 16px; }
.feature-icon { width: 52px; height: 52px; border-radius: var(--r-sm); background: var(--warm-gray); display: flex; align-items: center; justify-content: center; color: var(--midnight); }
.feature-icon svg { width: 24px; height: 24px; }
.feature-icon.lime { background: var(--lime); }
.feature-icon.magenta { background: var(--magenta); color: #fff; }
.feature-item h4 { font-family: var(--font-display); font-size: 1.05rem; font-weight: 500; margin: 0; color: var(--midnight); }
.feature-item p { font-size: 0.9rem; color: var(--muted); line-height: 1.6; margin: 0; }

/* Steps grid */
.steps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.step-item { display: flex; flex-direction: column; gap: 14px; }
.step-num { font-family: var(--font-display); font-size: 2.5rem; font-weight: 700; color: var(--magenta); opacity: 0.25; line-height: 1; }
.step-item h5 { font-family: var(--font-display); font-size: 1rem; font-weight: 600; margin: 0; color: var(--midnight); }
.step-item p { font-size: 0.88rem; color: var(--muted); line-height: 1.6; margin: 0; }

/* Info cards */
.info-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.info-card { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; background: #fff; border: 1.5px solid var(--border-light); border-radius: var(--r-md); padding: 32px; }
.info-card svg { width: 28px; height: 28px; color: var(--magenta); }
.info-card h5 { font-family: var(--font-display); font-size: 1rem; font-weight: 600; margin: 0; color: var(--midnight); }
.info-card p { font-size: 0.88rem; color: var(--muted); line-height: 1.6; margin: 0; }

/* Auth pages */
.auth-section { min-height: 80vh; display: flex; align-items: center; justify-content: center; padding: 60px 20px; background: var(--cream); }
.auth-box { background: #fff; border: 1.5px solid var(--border-light); border-radius: var(--r-lg); padding: 48px; width: 100%; max-width: 460px; }
.auth-logo { text-align: center; margin-bottom: 32px; }
.auth-title { font-family: var(--font-display); font-size: 1.8rem; font-weight: 500; color: var(--midnight); margin: 0 0 8px; text-align: center; }
.auth-sub { font-size: 0.9rem; color: var(--muted); text-align: center; margin: 0 0 28px; }
.auth-sub a { color: var(--magenta); font-weight: 600; }
.auth-form { display: flex; flex-direction: column; }
.auth-divider { text-align: center; margin: 24px 0; color: var(--muted); font-size: 0.85rem; position: relative; }
.auth-divider::before { content: ''; position: absolute; left: 0; top: 50%; width: 100%; height: 1px; background: var(--border-light); }
.auth-divider span { background: #fff; padding: 0 14px; position: relative; }
.auth-trust { display: flex; justify-content: center; gap: 24px; margin-top: 24px; flex-wrap: wrap; }
.auth-trust span { display: flex; align-items: center; gap: 6px; font-size: 0.78rem; color: var(--muted); }
.auth-trust svg { width: 14px; height: 14px; color: var(--lime-deep); }

/* Alerts */
.alert { padding: 14px 18px; border-radius: var(--r-sm); margin-bottom: 20px; font-size: 0.9rem; line-height: 1.5; }
.alert-error { background: #fdf2f8; border: 1.5px solid var(--magenta); color: var(--magenta); }
.alert-success { background: #f6fce8; border: 1.5px solid var(--lime-deep); color: var(--lime-deep); }

/* Badges */
.badge { display: inline-block; font-size: 0.75rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; text-transform: uppercase; letter-spacing: 0.04em; }
.badge-full { background: var(--warm-gray); color: var(--muted); }

/* Pagination */
.pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 48px; }
.pagination-info { font-size: 0.9rem; color: var(--muted); }

/* Empty state */
.empty-state { text-align: center; padding: 80px 20px; color: var(--muted); }

/* CTA blocks */
.diary-cta-inner { background: var(--midnight); color: var(--cream); border-radius: var(--r-lg); padding: 60px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.diary-cta-inner .heading { color: var(--cream); margin-bottom: 0; }
.diary-cta-inner p { opacity: 0.75; max-width: 560px; margin: 0; }

/* About page specifics */
.story-text-block { display: flex; flex-direction: column; gap: 18px; justify-content: center; }
.story-text-block p { color: var(--muted); line-height: 1.7; }
.story-text-block .lead { font-size: 1.05rem; color: var(--midnight); }
.story-text-block em { color: var(--magenta); font-style: italic; }
.story-img-wrap { position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4/3; }
.story-img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.story-img-badge { position: absolute; bottom: 20px; left: 20px; background: var(--magenta); color: #fff; font-family: var(--font-display); font-size: 1rem; font-weight: 600; padding: 8px 18px; border-radius: 20px; }
.value-item { display: flex; flex-direction: column; gap: 10px; }
.value-num { font-family: var(--font-display); font-size: 0.75rem; font-weight: 700; color: var(--magenta); letter-spacing: 0.1em; }
.value-item h4 { font-family: var(--font-display); font-size: 1rem; font-weight: 600; margin: 0; color: var(--midnight); }
.value-item p { font-size: 0.88rem; color: var(--muted); line-height: 1.6; margin: 0; }
.team-card { background: #fff; border: 1.5px solid var(--border-light); border-radius: var(--r-md); overflow: hidden; }
.team-img { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--warm-gray); }
.team-img img { width: 100%; height: 100%; object-fit: cover; }
.team-tag { position: absolute; top: 12px; left: 12px; background: var(--lime); color: var(--midnight); font-size: 0.72rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; text-transform: uppercase; letter-spacing: 0.05em; }
.team-tag.lead { background: var(--magenta); color: #fff; }
.team-body { padding: 22px; }
.team-name { font-family: var(--font-display); font-size: 1.05rem; font-weight: 600; color: var(--midnight); }
.team-role { font-size: 0.82rem; color: var(--magenta); font-weight: 600; margin: 4px 0 10px; }
.team-bio { font-size: 0.85rem; color: var(--muted); line-height: 1.5; margin: 0; }

/* Responsive additions */
@media (max-width: 1024px) {
    .features-grid, .steps-grid { grid-template-columns: repeat(2, 1fr); }
    .products-grid, .groups-grid { grid-template-columns: repeat(2, 1fr); }
    .info-cards { grid-template-columns: repeat(2, 1fr); }
    .team-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .features-grid, .steps-grid, .products-grid, .groups-grid, .info-cards { grid-template-columns: 1fr; }
    .team-grid { grid-template-columns: repeat(2, 1fr); }
    .auth-box { padding: 32px 24px; }
    .diary-cta-inner { padding: 40px 28px; }
}
@media (max-width: 480px) {
    .team-grid { grid-template-columns: 1fr; }
}

/* ============================================
   RECIPE LISTING — SEARCH & FILTERS
   ============================================ */

.recipe-search-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.recipe-search-input-wrap {
    position: relative;
    flex: 1;
    min-width: 220px;
}
.recipe-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: var(--text-dark-faint);
    pointer-events: none;
}
.recipe-search-input {
    width: 100%;
    padding: 11px 16px 11px 44px;
    border: 1.5px solid var(--border-light-2);
    border-radius: var(--r-pill);
    font-family: var(--font-body);
    font-size: 0.95rem;
    background: #fff;
    color: var(--text-dark);
    outline: none;
    transition: border-color 0.2s;
}
.recipe-search-input:focus { border-color: var(--magenta); }
.recipe-search-input::placeholder { color: var(--text-dark-faint); }

.category-filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 36px;
}
.cat-pill {
    display: inline-block;
    padding: 6px 16px;
    border-radius: var(--r-pill);
    border: 1.5px solid var(--border-light-2);
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--text-dark-mute);
    background: #fff;
    transition: all 0.15s;
    white-space: nowrap;
}
.cat-pill:hover { border-color: var(--magenta); color: var(--magenta); }
.cat-pill--active { background: var(--magenta); border-color: var(--magenta); color: #fff; }

/* Recipe cards — now <a> tags */
.recipes-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
a.recipe-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1.5px solid var(--border-light);
    border-radius: var(--r-md);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s var(--ease), box-shadow 0.2s, border-color 0.2s;
}
a.recipe-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.08); border-color: var(--magenta-soft); }
.recipe-card-img {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--cream-2);
}
.recipe-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s var(--ease); }
a.recipe-card:hover .recipe-card-img img { transform: scale(1.04); }
.recipe-img-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--cream-2), var(--paper-2)); }
.recipe-units {
    position: absolute;
    bottom: 10px;
    right: 10px;
    background: var(--magenta);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: var(--r-pill);
}
.recipe-cat-tag {
    position: absolute;
    top: 10px;
    left: 10px;
    background: rgba(13,20,16,0.65);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: var(--r-pill);
    text-transform: capitalize;
    backdrop-filter: blur(4px);
}
.recipe-body { padding: 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.recipe-meta-row { display: flex; gap: 12px; font-size: 0.78rem; color: var(--text-dark-faint); }
.recipe-meta-row svg { width: 13px; height: 13px; display: inline; vertical-align: middle; margin-right: 2px; }
.recipe-name { font-family: var(--font-display); font-size: 1rem; font-weight: 500; color: var(--midnight); line-height: 1.3; }
.recipe-desc { font-size: 0.82rem; color: var(--text-dark-mute); line-height: 1.5; flex: 1; }
.recipe-read-more { font-size: 0.8rem; font-weight: 600; color: var(--magenta); display: flex; align-items: center; gap: 4px; margin-top: 6px; }
.recipe-read-more svg { width: 14px; height: 14px; }

/* ============================================
   INDIVIDUAL RECIPE PAGE
   ============================================ */

.recipe-breadcrumb {
    background: var(--cream);
    border-bottom: 1px solid var(--border-light);
    padding: 14px 0;
}
.recipe-breadcrumb nav {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.83rem;
    color: var(--text-dark-mute);
    flex-wrap: wrap;
}
.recipe-breadcrumb a { color: var(--text-dark-mute); transition: color 0.15s; }
.recipe-breadcrumb a:hover { color: var(--magenta); }
.recipe-breadcrumb svg { width: 14px; height: 14px; color: var(--text-dark-faint); flex-shrink: 0; }
.recipe-breadcrumb span { color: var(--text-dark); font-weight: 500; }

.recipe-hero { padding: 56px 0 64px; background: var(--cream); }
.recipe-hero-inner {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 56px;
    align-items: center;
}
.recipe-hero-content { display: flex; flex-direction: column; gap: 20px; }
.recipe-hero-category {
    display: inline-block;
    background: var(--lime-pale);
    color: var(--lime-deep);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: var(--r-pill);
    align-self: flex-start;
}
.recipe-hero-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    color: var(--midnight);
    line-height: 1.15;
    margin: 0;
}
.recipe-hero-punchline {
    font-size: 1.1rem;
    color: var(--text-dark-mute);
    line-height: 1.6;
    max-width: 540px;
    margin: 0;
}
.recipe-stats {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    padding: 24px 0;
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
}
.recipe-stat { display: flex; align-items: center; gap: 10px; }
.recipe-stat-icon {
    width: 38px;
    height: 38px;
    border-radius: var(--r-sm);
    background: var(--cream-2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.recipe-stat-icon svg { width: 18px; height: 18px; }
.recipe-stat--highlight .recipe-stat-icon { background: var(--magenta-soft); color: var(--magenta); }
.recipe-stat-val { font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; color: var(--midnight); line-height: 1; }
.recipe-stat-label { font-size: 0.72rem; color: var(--text-dark-faint); margin-top: 3px; text-transform: uppercase; letter-spacing: 0.05em; }
.recipe-hero-img {
    border-radius: var(--r-lg);
    overflow: hidden;
    aspect-ratio: 4/3;
    box-shadow: 0 24px 80px rgba(0,0,0,0.12);
}
.recipe-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.recipe-hero-img--placeholder { background: linear-gradient(135deg, var(--cream-2) 0%, var(--paper-2) 100%); }

.recipe-body-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 56px;
    align-items: flex-start;
}
.recipe-ingredients-card {
    background: #fff;
    border: 1.5px solid var(--border-light);
    border-radius: var(--r-lg);
    padding: 32px;
    position: sticky;
    top: 24px;
}
.recipe-section-title {
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--midnight);
    margin: 0 0 8px;
}
.recipe-yield-note {
    font-size: 0.82rem;
    color: var(--text-dark-faint);
    margin: 0 0 20px;
}
.recipe-ingredients-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.recipe-ingredients-list li {
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
    font-size: 0.92rem;
    color: var(--text-dark);
    line-height: 1.4;
}
.recipe-ingredients-list li:last-child { border-bottom: none; }
.recipe-method-col { padding-top: 4px; }
.recipe-method-col .recipe-section-title { margin-bottom: 24px; }
.recipe-description { display: flex; flex-direction: column; gap: 16px; }
.recipe-description p {
    font-size: 1rem;
    color: var(--text-dark-mute);
    line-height: 1.8;
    margin: 0;
}
.recipe-published-date {
    margin-top: 32px;
    font-size: 0.8rem;
    color: var(--text-dark-faint);
}

/* Structured ingredient rows */
.recipe-ingredient-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}
.recipe-ingredient-row:last-child { border-bottom: none; }
.ing-name { font-size: 0.9rem; color: var(--text-dark); line-height: 1.4; flex: 1; }
.ing-amount { font-size: 0.82rem; color: var(--text-dark-faint); white-space: nowrap; font-weight: 500; }

/* Nutrition summary */
.recipe-nutrition-summary {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 2px solid var(--border-light-2);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.nutrition-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    color: var(--text-dark-mute);
}
.nutrition-row strong { color: var(--midnight); }
.nutrition-row--highlight { color: var(--magenta); }
.nutrition-row--highlight strong { color: var(--magenta); }

/* Responsive */
@media (max-width: 1100px) {
    .recipes-grid { grid-template-columns: repeat(3, 1fr); }
    .recipe-hero-inner { grid-template-columns: 1fr; }
    .recipe-hero-img { max-width: 500px; }
    .recipe-body-layout { grid-template-columns: 1fr; }
    .recipe-method-col { order: 1; }
    .recipe-ingredients-col { order: 2; }
    .recipe-ingredients-card { position: static; }
}
@media (max-width: 768px) {
    .recipes-grid { grid-template-columns: repeat(2, 1fr); }
    .recipe-stats { gap: 16px; }
}
@media (max-width: 480px) {
    .recipes-grid { grid-template-columns: 1fr; }
    .recipe-search-bar { flex-direction: column; align-items: stretch; }
}

/* ============================================
   INDIVIDUAL RECIPE PAGE — ENHANCED
   ============================================ */

/* Hero: ambient glow blobs */
.recipe-hero {
    padding: 60px 0 80px;
    background: var(--cream);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.recipe-hero::before {
    content: '';
    position: absolute;
    top: -20%;
    right: -6%;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--pink-soft) 0%, transparent 70%);
    filter: blur(70px);
    opacity: 0.75;
    z-index: -1;
    pointer-events: none;
}

.recipe-hero::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: -8%;
    width: 460px;
    height: 460px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--lime-pale) 0%, transparent 70%);
    filter: blur(70px);
    opacity: 0.9;
    z-index: -1;
    pointer-events: none;
}

/* Wider image column */
.recipe-hero-inner {
    grid-template-columns: 1fr 480px;
    gap: 64px;
}

/* Image wrapper with decorative blob */
.recipe-hero-img-wrap {
    position: relative;
}

.recipe-hero-img-wrap::before {
    content: '';
    position: absolute;
    inset: 5% -4% -4% 4%;
    background: var(--lime);
    border-radius: var(--r-xl);
    z-index: 0;
    opacity: 0.55;
}

/* Square, dramatic image */
.recipe-hero-img {
    aspect-ratio: 1 / 1;
    border-radius: var(--r-xl);
    box-shadow: 0 32px 80px rgba(13,20,16,0.18);
    position: relative;
    z-index: 1;
}

/* Category tag: use brand lime */
.recipe-hero-category {
    background: var(--lime);
    color: var(--midnight);
    font-size: 0.72rem;
    letter-spacing: 0.10em;
}

/* Tighter display title */
.recipe-hero-title {
    font-size: clamp(2.2rem, 4.5vw, 3.4rem);
    letter-spacing: -0.025em;
    line-height: 1.05;
}

/* Punchline */
.recipe-hero-punchline {
    font-size: 1.08rem;
    color: var(--text-dark-mute);
    line-height: 1.65;
}

/* Stats bar */
.recipe-stats {
    gap: 20px;
    padding: 22px 0;
}

/* Alternate icon backgrounds */
.recipe-stat:nth-child(1) .recipe-stat-icon { background: var(--cream-2); }
.recipe-stat:nth-child(2) .recipe-stat-icon { background: var(--lime-pale); color: var(--lime-deep); }
.recipe-stat:nth-child(3) .recipe-stat-icon { background: var(--pink-pale); color: var(--magenta); }
.recipe-stat:nth-child(4) .recipe-stat-icon { background: var(--lime-pale); color: var(--lime-deep); }
.recipe-stat--highlight .recipe-stat-icon { background: var(--magenta); color: var(--cream); }
.recipe-stat-val { font-size: 1.15rem; }

/* Body layout: slightly wider ingredients column */
.recipe-body-layout {
    grid-template-columns: 1fr 340px;
    align-items: flex-start;
}

/* Description prose */
.recipe-description {
    gap: 20px;
}

.recipe-description p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--text-dark);
}

/* Section title */
.recipe-section-title {
    font-size: 1.55rem;
    letter-spacing: -0.01em;
}

/* Ingredients card: lime accent + warm bg */
.recipe-ingredients-card {
    background: var(--cream);
    border: 1.5px solid var(--border-light-2);
    border-top: 3px solid var(--lime);
    border-radius: var(--r-lg);
    padding: 28px 28px 24px;
}

.recipe-ingredients-card .recipe-section-title {
    font-size: 1.3rem;
    margin-bottom: 4px;
}

/* Ingredient rows */
.recipe-ingredient-row {
    padding: 12px 0;
}

.ing-name {
    font-size: 0.92rem;
    color: var(--midnight);
}

.ing-amount {
    font-size: 0.83rem;
    color: var(--text-dark-mute);
    font-weight: 600;
    background: var(--cream-2);
    padding: 2px 8px;
    border-radius: var(--r-pill);
}

/* Nutrition summary */
.recipe-nutrition-summary {
    margin-top: 16px;
    padding: 16px;
    background: var(--cream-2);
    border-radius: var(--r-md);
    border: none;
    gap: 10px;
}

.nutrition-row {
    font-size: 0.88rem;
}

.nutrition-row--highlight {
    color: var(--magenta);
    font-weight: 600;
    padding-top: 10px;
    border-top: 1px solid var(--border-light);
}

/* Published date */
.recipe-published-date {
    margin-top: 36px;
    font-size: 0.8rem;
    color: var(--text-dark-faint);
    padding-top: 24px;
    border-top: 1px solid var(--border-light);
}

/* CTA section */
.diary-cta-section {
    background: var(--paper);
}

.diary-cta-inner {
    background: var(--magenta);
    color: var(--cream);
    border-radius: var(--r-xl);
    padding: 64px 72px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.diary-cta-inner::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -5%;
    width: 360px;
    height: 360px;
    background: radial-gradient(circle, var(--lime) 0%, transparent 70%);
    opacity: 0.22;
    border-radius: 50%;
    filter: blur(50px);
    pointer-events: none;
}

.diary-cta-inner .heading {
    color: var(--cream);
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    margin-bottom: 10px;
}

.diary-cta-inner p {
    opacity: 0.80;
    max-width: 480px;
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.65;
}

/* Responsive enhancements */
@media (max-width: 1100px) {
    .recipe-hero-inner { grid-template-columns: 1fr; }
    .recipe-hero-img-wrap { max-width: 520px; }
    .recipe-hero-img { aspect-ratio: 4/3; border-radius: var(--r-lg); }
    .recipe-hero-img-wrap::before { border-radius: var(--r-lg); }
    .recipe-body-layout { grid-template-columns: 1fr; gap: 40px; }
    .diary-cta-inner { grid-template-columns: 1fr; padding: 48px; }
    .diary-cta-inner .btn { align-self: flex-start; }
}

@media (max-width: 768px) {
    .recipe-hero { padding: 40px 0 56px; }
    .recipe-hero-img-wrap { max-width: 100%; }
    .recipe-hero-img { aspect-ratio: 4/3; border-radius: var(--r-lg); }
    .recipe-hero-img-wrap::before { display: none; }
    .recipe-hero-title { font-size: 2rem; }
    .diary-cta-inner { padding: 36px 28px; gap: 24px; }
}

/* ── Shop ──────────────────────────────────────────────────── */
.shop-hero {
    background: linear-gradient(135deg, var(--midnight) 0%, #1e2e24 100%);
    color: #fff;
    padding: 72px 0 56px;
    text-align: center;
}
.shop-hero h1 { font-family: var(--font-serif); font-size: clamp(2rem, 5vw, 3.2rem); margin-bottom: 12px; }
.shop-hero p  { font-size: 1.1rem; opacity: .75; max-width: 560px; margin: 0 auto; }

.shop-section { padding: 64px 0 100px; }

.shop-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 40px;
}
.shop-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border: 2px solid var(--border);
    border-radius: 99px;
    background: transparent;
    color: var(--text-muted);
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}
.shop-tab:hover { border-color: var(--magenta); color: var(--magenta); }
.shop-tab.active { background: var(--magenta); border-color: var(--magenta); color: #fff; }
.shop-tab-count {
    background: rgba(0,0,0,.12);
    border-radius: 99px;
    padding: 1px 7px;
    font-size: .75rem;
}
.shop-tab.active .shop-tab-count { background: rgba(255,255,255,.25); }

.shop-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
}

.shop-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;
}
.shop-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.1); transform: translateY(-3px); }

.shop-card-img {
    position: relative;
    aspect-ratio: 1 / 1;
    background: var(--cream);
    overflow: hidden;
}
.shop-card-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}
.shop-card:hover .shop-card-img img { transform: scale(1.04); }
.shop-card-img-placeholder {
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 100%;
    font-size: 3rem; opacity: .4;
}

.shop-badge {
    position: absolute; top: 10px; left: 10px;
    background: var(--magenta); color: #fff;
    font-size: .7rem; font-weight: 700; letter-spacing: .04em;
    padding: 3px 10px; border-radius: 99px;
    text-transform: uppercase;
}

.shop-card-body {
    padding: 16px 18px 18px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 6px;
}
.shop-card-cat {
    font-size: .72rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: var(--magenta); margin: 0;
}
.shop-card-name {
    font-size: .95rem; font-weight: 600; line-height: 1.35;
    color: var(--midnight); margin: 0; flex: 1;
}
.shop-card-footer {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; margin-top: 10px;
}
.shop-card-price {
    font-size: 1.2rem; font-weight: 800; color: var(--midnight);
}
.shop-add-btn { white-space: nowrap; }

.shop-empty { text-align: center; color: var(--text-muted); padding: 80px 0; font-size: 1.1rem; }

@media (max-width: 1100px) { .shop-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 780px)  { .shop-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@media (max-width: 480px)  { .shop-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
    .shop-tabs { gap: 6px; }
    .shop-tab  { padding: 6px 14px; font-size: .8rem; }
    .shop-hero { padding: 48px 0 40px; }
}

/* ══════════════════════════════════════════════════
   FORUM
══════════════════════════════════════════════════ */
.forum-layout { min-height: 60vh; }

/* Hero */
.forum-hero { background: linear-gradient(135deg, var(--midnight) 0%, #1e3028 100%); color: #fff; padding: 64px 0 52px; text-align: center; }
.forum-hero h1 { font-family: var(--font-serif); font-size: clamp(2rem,5vw,3rem); margin-bottom: 10px; }
.forum-hero p  { opacity: .7; font-size: 1.05rem; margin-bottom: 28px; }
.forum-stats { display: flex; justify-content: center; gap: 40px; }
.forum-stat { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.forum-stat strong { font-family: var(--font-serif); font-size: 1.8rem; font-weight: 500; color: var(--lime); }
.forum-stat span   { font-size: .78rem; opacity: .6; letter-spacing: .06em; text-transform: uppercase; }

/* Home grid */
.forum-home-grid { display: grid; grid-template-columns: 1fr 340px; gap: 40px; padding: 48px 0 80px; align-items: start; }
.forum-main {}
.forum-sidebar {}

/* Section heading */
.forum-section-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.forum-section-hd h2 { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 500; color: var(--midnight); margin: 0; }

/* Category cards */
.forum-categories { display: flex; flex-direction: column; gap: 2px; border: 1.5px solid var(--border); border-radius: var(--r-md); overflow: hidden; }
.forum-cat-card { display: flex; align-items: center; gap: 14px; padding: 14px 18px; background: #fff; text-decoration: none; color: var(--midnight); transition: background .15s; border-bottom: 1px solid var(--border); }
.forum-cat-card:last-child { border-bottom: none; }
.forum-cat-card:hover { background: var(--cream); }
.forum-cat-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.forum-cat-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.forum-cat-info strong { font-size: .9rem; font-weight: 600; }
.forum-cat-info span   { font-size: .75rem; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.forum-cat-count { font-size: .78rem; font-weight: 700; color: var(--text-muted); background: var(--cream); padding: 3px 9px; border-radius: 99px; flex-shrink: 0; }

/* Recent topics list */
.forum-recent-list { display: flex; flex-direction: column; gap: 2px; border: 1.5px solid var(--border); border-radius: var(--r-md); overflow: hidden; }
.forum-recent-row { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: #fff; text-decoration: none; color: var(--midnight); border-bottom: 1px solid var(--border); transition: background .15s; }
.forum-recent-row:last-child { border-bottom: none; }
.forum-recent-row:hover { background: var(--cream); }
.forum-recent-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.forum-recent-title { font-size: .88rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.forum-recent-meta  { font-size: .73rem; color: var(--text-muted); }
.forum-recent-replies { font-size: .78rem; font-weight: 700; color: var(--text-muted); background: var(--cream); width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* Avatar */
.forum-avatar { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-weight: 700; letter-spacing: -.02em; flex-shrink: 0; }

/* ── Topic list (category view) ────────────────────────────── */
.forum-topics-list { border: 1.5px solid var(--border); border-radius: var(--r-md); overflow: hidden; margin-bottom: 28px; }
.forum-topic-row { display: flex; align-items: center; gap: 14px; padding: 14px 18px; background: #fff; text-decoration: none; color: var(--midnight); border-bottom: 1px solid var(--border); transition: background .15s; }
.forum-topic-row:last-child { border-bottom: none; }
.forum-topic-row:hover { background: var(--cream); }
.forum-topic-row.pinned { background: #fefaf5; }
.forum-topic-avatar { position: relative; flex-shrink: 0; }
.forum-pin-badge { position: absolute; bottom: -2px; right: -2px; background: var(--magenta); color: #fff; border-radius: 50%; width: 16px; height: 16px; display: flex; align-items: center; justify-content: center; }
.forum-topic-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.forum-topic-title { font-size: .9rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.forum-topic-meta  { font-size: .73rem; color: var(--text-muted); }
.forum-topic-stats { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
.forum-topic-stats span { display: flex; align-items: center; gap: 4px; font-size: .75rem; color: var(--text-muted); font-weight: 600; }
.forum-topic-last { font-size: .72rem; color: #bbb; font-weight: 400 !important; }

/* Breadcrumb */
.forum-breadcrumb { display: flex; align-items: center; gap: 8px; margin: 24px 0 16px; font-size: .82rem; color: var(--text-muted); flex-wrap: wrap; }
.forum-breadcrumb a { color: var(--magenta); text-decoration: none; }
.forum-breadcrumb a:hover { text-decoration: underline; }

/* Topic view */
.forum-topic-wrap { padding: 0 0 80px; }
.forum-topic-heading { font-family: var(--font-serif); font-size: clamp(1.4rem,3vw,2.2rem); font-weight: 500; color: var(--midnight); margin: 0 0 28px; line-height: 1.3; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.forum-pin-inline  { font-size: .7rem; font-weight: 700; background: var(--lime); color: var(--midnight); padding: 3px 10px; border-radius: 99px; text-transform: uppercase; letter-spacing: .05em; }
.forum-lock-inline { font-size: .7rem; font-weight: 700; background: #fee2e2; color: #dc2626; padding: 3px 10px; border-radius: 99px; text-transform: uppercase; letter-spacing: .05em; }

/* Posts */
.forum-posts { display: flex; flex-direction: column; gap: 16px; margin-bottom: 40px; }
.forum-post { display: flex; gap: 16px; background: #fff; border: 1.5px solid var(--border); border-radius: var(--r-md); padding: 20px 22px; }
.forum-post-op { border-color: var(--magenta); border-width: 2px; }
.forum-post-aside { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; width: 52px; }
.forum-post-author { font-size: .68rem; font-weight: 600; color: var(--text-muted); text-align: center; word-break: break-word; }
.forum-post-op-badge { font-size: .6rem; font-weight: 800; background: var(--magenta); color: #fff; padding: 2px 7px; border-radius: 99px; letter-spacing: .05em; }
.forum-post-body { flex: 1; min-width: 0; }
.forum-post-content { font-size: .9rem; line-height: 1.7; color: var(--midnight); }
.forum-post-content blockquote { border-left: 3px solid var(--magenta); padding-left: 12px; margin: 12px 0; color: var(--text-muted); font-style: italic; }
.forum-post-footer { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--border); }
.forum-post-time { font-size: .72rem; color: var(--text-muted); flex: 1; }
.forum-quote-btn { background: none; border: none; cursor: pointer; color: #bbb; display: flex; align-items: center; gap: 4px; font-size: .75rem; padding: 4px 8px; border-radius: var(--r-sm); transition: color .15s, background .15s; }
.forum-quote-btn:hover { background: var(--cream); color: var(--magenta); }

/* Reply form */
.forum-reply-form { background: #fff; border: 1.5px solid var(--border); border-radius: var(--r-md); padding: 24px; }
.forum-reply-form h3 { font-family: var(--font-serif); font-size: 1.1rem; font-weight: 500; margin: 0 0 16px; }
.forum-quote-preview { background: var(--cream); border-left: 3px solid var(--magenta); padding: 8px 12px; border-radius: 0 var(--r-sm) var(--r-sm) 0; font-size: .8rem; color: var(--text-muted); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.forum-textarea { width: 100%; border: 1.5px solid var(--border); border-radius: var(--r-sm); padding: 12px 14px; font-family: var(--font-body); font-size: .9rem; color: var(--midnight); resize: vertical; outline: none; box-sizing: border-box; transition: border-color .15s; }
.forum-textarea:focus { border-color: var(--magenta); }
.forum-form-actions { margin-top: 12px; }
.forum-form-error { background: #fff0f0; border: 1.5px solid #fca5a5; border-radius: var(--r-sm); padding: 10px 14px; font-size: .85rem; color: #dc2626; margin-bottom: 16px; }

/* New topic form */
.forum-new-form { display: flex; flex-direction: column; gap: 18px; }
.forum-field { display: flex; flex-direction: column; gap: 6px; }
.forum-field label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #999; }
.forum-input, .forum-select { border: 1.5px solid var(--border); border-radius: var(--r-sm); padding: 10px 14px; font-family: var(--font-body); font-size: .9rem; color: var(--midnight); background: var(--cream); outline: none; width: 100%; box-sizing: border-box; transition: border-color .15s; }
.forum-input:focus, .forum-select:focus { border-color: var(--magenta); background: #fff; }

/* Login prompt / empty */
.forum-login-prompt { background: var(--cream); border: 1.5px solid var(--border); border-radius: var(--r-md); padding: 20px 24px; font-size: .9rem; display: flex; align-items: center; gap: 10px; color: var(--text-muted); }
.forum-login-prompt a { color: var(--magenta); font-weight: 600; }
.forum-empty { padding: 48px 24px; text-align: center; color: var(--text-muted); font-size: .9rem; }

/* Pagination */
.forum-pagination { display: flex; gap: 6px; justify-content: center; }
.forum-page-btn { padding: 7px 13px; border: 1.5px solid var(--border); border-radius: var(--r-sm); font-size: .82rem; font-weight: 600; color: var(--text-muted); text-decoration: none; transition: all .15s; }
.forum-page-btn.active, .forum-page-btn:hover { background: var(--magenta); border-color: var(--magenta); color: #fff; }

/* ── Live chat widget ───────────────────────────────────────── */
.fchat-wrap { background: #fff; border: 1.5px solid var(--border); border-radius: var(--r-md); overflow: hidden; display: flex; flex-direction: column; height: 520px; position: sticky; top: 90px; }

.fchat-hd { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--midnight); color: #fff; flex-shrink: 0; }
.fchat-hd-left { display: flex; align-items: center; gap: 8px; }
.fchat-hd-left strong { font-size: .88rem; }
.fchat-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; animation: fchat-blink 1.8s ease-in-out infinite; }
@keyframes fchat-blink { 0%,100%{opacity:1} 50%{opacity:.3} }
.fchat-online { font-size: .72rem; opacity: .7; display: flex; align-items: center; gap: 4px; }

.fchat-messages { flex: 1; overflow-y: auto; padding: 12px 12px 6px; display: flex; flex-direction: column; gap: 10px; scroll-behavior: smooth; }
.fchat-messages::-webkit-scrollbar { width: 4px; }
.fchat-messages::-webkit-scrollbar-thumb { background: #ddd; border-radius: 2px; }

.fchat-loading { display: flex; justify-content: center; padding: 24px; }
.fchat-dot-loader { display: flex; gap: 5px; }
.fchat-dot-loader span { width: 7px; height: 7px; border-radius: 50%; background: #ccc; animation: fchat-dots 1.2s ease-in-out infinite; }
.fchat-dot-loader span:nth-child(2) { animation-delay: .18s; }
.fchat-dot-loader span:nth-child(3) { animation-delay: .36s; }
@keyframes fchat-dots { 0%,60%,100%{transform:translateY(0)} 30%{transform:translateY(-6px)} }

.fchat-empty { text-align: center; color: var(--text-muted); font-size: .82rem; padding: 24px; }

.fchat-msg { display: flex; align-items: flex-end; gap: 8px; animation: fchat-msg-in .25s ease both; }
@keyframes fchat-msg-in { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
.fchat-msg-new { animation: fchat-msg-in .25s ease both; }
.fchat-msg-mine { flex-direction: row-reverse; }
.fchat-msg-content { display: flex; flex-direction: column; gap: 2px; max-width: 200px; }
.fchat-name { font-size: .68rem; font-weight: 700; color: var(--text-muted); padding-left: 2px; }
.fchat-bubble { background: #f4f4f5; color: var(--midnight); border-radius: 14px 14px 14px 4px; padding: 8px 12px; font-size: .82rem; line-height: 1.45; word-break: break-word; }
.fchat-bubble-mine { background: var(--magenta); color: #fff; border-radius: 14px 14px 4px 14px; }
.fchat-time { font-size: .65rem; color: #bbb; padding: 0 2px; }
.fchat-msg-mine .fchat-time { text-align: right; }

.fchat-input-wrap { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--border); flex-shrink: 0; background: #fafafa; }
.fchat-input { flex: 1; border: 1.5px solid var(--border); border-radius: 99px; padding: 8px 14px; font-family: var(--font-body); font-size: .85rem; outline: none; background: #fff; }
.fchat-input:focus { border-color: var(--magenta); }
.fchat-send-btn { width: 34px; height: 34px; border-radius: 50%; background: var(--magenta); border: none; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: opacity .15s; }
.fchat-send-btn:hover { opacity: .85; }
.fchat-login-prompt { padding: 12px 16px; text-align: center; font-size: .8rem; color: var(--text-muted); border-top: 1px solid var(--border); background: #fafafa; flex-shrink: 0; }
.fchat-login-prompt a { color: var(--magenta); font-weight: 600; text-decoration: none; }

@media (max-width: 1000px) {
    .forum-home-grid { grid-template-columns: 1fr; }
    .fchat-wrap { position: static; height: 400px; }
}
@media (max-width: 640px) {
    .forum-post { flex-direction: column; gap: 10px; }
    .forum-post-aside { flex-direction: row; width: auto; }
    .forum-topic-stats { display: none; }
}

/* ── Notification Bell ──────────────────────────────────────── */
.notif-wrap { position: relative; }

.notif-btn {
    position: relative;
    background: none;
    border: none;
    cursor: pointer;
    width: 40px;
    height: 40px;
    border-radius: var(--r-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-2);
    transition: background .15s, color .15s;
}
.notif-btn:hover,
.notif-btn.active { background: var(--cream-2); color: var(--magenta); }

.notif-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    background: var(--magenta);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    animation: notif-pop .25s cubic-bezier(.4,0,.2,1.6);
}
@keyframes notif-pop {
    from { transform: scale(0); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}

.notif-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 340px;
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r-md);
    box-shadow: 0 8px 32px rgba(0,0,0,.12);
    display: none;
    flex-direction: column;
    overflow: hidden;
    z-index: 4000;
}
.notif-dropdown.open { display: flex; }

.notif-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--border);
}
.notif-hd strong { font-size: .9rem; color: var(--text); }

.notif-mark-all {
    background: none;
    border: none;
    cursor: pointer;
    font-size: .78rem;
    color: var(--magenta);
    font-weight: 600;
    padding: 0;
    transition: opacity .15s;
}
.notif-mark-all:hover { opacity: .7; }

.notif-list { max-height: 380px; overflow-y: auto; }

.notif-empty {
    padding: 28px 20px;
    text-align: center;
    color: var(--text-3);
    font-size: .85rem;
}

.notif-loading {
    display: flex;
    justify-content: center;
    gap: 5px;
    padding: 24px;
}
.notif-loading span {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--border-2);
    animation: notif-dots .9s infinite;
}
.notif-loading span:nth-child(2) { animation-delay: .15s; }
.notif-loading span:nth-child(3) { animation-delay: .3s; }
@keyframes notif-dots { 0%,80%,100%{transform:scale(.6);opacity:.4} 40%{transform:scale(1);opacity:1} }

.notif-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    text-decoration: none;
    color: var(--text);
    border-bottom: 1px solid var(--border);
    transition: background .12s;
}
.notif-item:last-child { border-bottom: none; }
.notif-item:hover { background: var(--cream); }
.notif-item.unread { background: var(--pink-pale); }
.notif-item.unread:hover { background: var(--magenta-soft); }

.notif-item-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--magenta);
    flex-shrink: 0;
    margin-top: 5px;
    opacity: 0;
    transition: opacity .15s;
}
.notif-item-dot.visible { opacity: 1; }

.notif-item-body { flex: 1; min-width: 0; }

.notif-item-text {
    font-size: .83rem;
    line-height: 1.4;
    color: var(--text);
}
.notif-item-text strong { font-weight: 600; }
.notif-item-text em { font-style: normal; color: var(--magenta); }

.notif-item-time {
    font-size: .75rem;
    color: var(--text-3);
    margin-top: 3px;
}

/* ── Forum subscribe button ──────────────────────────────────── */
.forum-topic-hd-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}
.forum-topic-hd-row .forum-topic-heading { margin-bottom: 0; flex: 1; min-width: 0; }

.forum-sub-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: var(--r-sm);
    border: 1.5px solid var(--border-2);
    background: #fff;
    color: var(--text-2);
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s;
    flex-shrink: 0;
    margin-top: 4px;
}
.forum-sub-btn:hover { border-color: var(--magenta); color: var(--magenta); background: var(--pink-pale); }
.forum-sub-btn.subscribed { background: var(--magenta); color: #fff; border-color: var(--magenta); }
.forum-sub-btn.subscribed:hover { background: var(--magenta-deep); border-color: var(--magenta-deep); }
.forum-sub-btn:disabled { opacity: .6; cursor: not-allowed; }

@media (max-width: 600px) {
    .notif-dropdown { width: calc(100vw - 24px); right: -60px; }
    .forum-topic-hd-row { flex-direction: column; gap: 10px; }
}
