:root {
  --nutri-vintage-bg: #FDFBF7;
  --nutri-paper-surface: #F4EFE6;
  --nutri-amber-accent: #C86D3B;
  --nutri-forest-tone: #2D4A3E;
  --nutri-forest-hover: #1E342B;
  --nutri-ink-text: #1C2421;
  --nutri-gold-seal: #D4A359;
  --nutri-gradient-warm: linear-gradient(135deg, #FDFBF7 0%, #EFE5D3 100%);
  --font-display: 'Playfair Display', serif;
  --font-body: 'Lato', sans-serif;
}

/* Global Reset & Typography */
body {
  background-color: var(--nutri-vintage-bg);
  color: var(--nutri-ink-text);
  font-family: var(--font-body);
  overflow-x: hidden;
}

/* Header & Nav Styling */
.nutri-header-bar {
  background: var(--nutri-forest-tone);
  color: #FFFFFF;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.nutri-nav-link {
  color: #E2E8F0;
  transition: color 0.2s ease;
}

.nutri-nav-link:hover {
  color: var(--nutri-gold-seal);
}

/* Mobile Hamburger */
.nutri-burger-btn {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  width: 28px;
  height: 24px;
}

.nutri-burger-line {
  width: 100%;
  height: 3px;
  background-color: #FFFFFF;
  border-radius: 2px;
  transition: all 0.3s ease;
}

@media (max-width: 1023px) {
  .nutri-nav-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: var(--nutri-forest-tone);
    padding: 1.5rem;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  }

  .nutri-burger-check:checked ~ .nutri-nav-menu {
    display: flex;
  }
}

/* Scroll Progress Bar CSS-only */
@supports (animation-timeline: scroll()) {
  .nutri-progress-indicator {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--nutri-amber-accent);
    z-index: 100;
    transform-origin: 0 50%;
    animation: nutri-scroll-progress linear;
    animation-timeline: scroll();
  }

  @keyframes nutri-scroll-progress {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
  }
}

/* Hero Section Elements */
.nutri-vintage-filter {
  filter: sepia(25%) brightness(0.85) contrast(1.05);
}

.nutri-hero-overlay {
  background: linear-gradient(180deg, rgba(45, 74, 62, 0.75) 0%, rgba(28, 36, 33, 0.85) 100%);
}

.nutri-badge-tag {
  background-color: var(--nutri-gold-seal);
  color: var(--nutri-ink-text);
  border-radius: 4px;
}

/* SVG Seal Text Animation / Path */
.nutri-seal-text {
  font-family: var(--font-body);
  font-size: 10.5px;
  font-weight: 700;
  fill: var(--nutri-gold-seal);
  letter-spacing: 2px;
}

/* Buttons (Pill Double Border Preset J) */
.nutri-pill-action {
  background-color: var(--nutri-amber-accent);
  color: #FFFFFF;
  border: 2px solid #FFFFFF;
  box-shadow: inset 0 0 0 2px var(--nutri-amber-accent), 0 4px 12px rgba(0,0,0,0.15);
  transition: all 0.3s ease;
  text-decoration: none;
}

.nutri-pill-action:hover {
  background-color: #A8552A;
  box-shadow: inset 0 0 0 2px #A8552A, 0 6px 16px rgba(0,0,0,0.25);
  color: #FFFFFF;
}

/* Stamp Cards (Features Preset J) */
.nutri-stamp-card {
  background-color: #FFFFFF;
  border: 1px solid #E2D9C8;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.nutri-stamp-card::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px dashed #D4A359;
  border-radius: 8px;
  pointer-events: none;
}

.nutri-stamp-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}

.nutri-stamp-icon-wrap {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: 2px double var(--nutri-amber-accent);
  color: var(--nutri-amber-accent);
  background-color: var(--nutri-paper-surface);
}

.nutri-ornament-line {
  width: 60%;
  border-bottom: 1px dotted var(--nutri-gold-seal);
}

/* Vintage Frame (Content Images Preset J) */
.nutri-vintage-frame {
  box-shadow: 6px 6px 0 var(--nutri-amber-accent), inset 0 0 0 4px var(--nutri-vintage-bg);
  border: 2px solid var(--nutri-forest-tone);
}

.nutri-subline {
  color: var(--nutri-amber-accent);
}

/* Double Border Container (CTA Strip) */
.nutri-double-border {
  border: 4px double var(--nutri-gold-seal);
  background: rgba(45, 74, 62, 0.95);
  border-radius: 12px;
}

/* Letters/Testimonials (Preset J) */
.nutri-letter-card {
  background: rgba(255, 252, 235, 0.95);
  border: 1px solid #E2D5BE;
  border-radius: 12px;
  box-shadow: 3px 3px 10px rgba(0,0,0,0.05);
  position: relative;
}

.nutri-letter-card::before, .nutri-letter-card::after {
  content: '✦';
  position: absolute;
  color: var(--nutri-gold-seal);
  font-size: 10px;
}

.nutri-letter-card::before {
  top: 8px;
  left: 8px;
}

.nutri-letter-card::after {
  bottom: 8px;
  right: 8px;
}

/* Form Styling (Vintage Underline Inputs) */
.nutri-form-box {
  background-color: #FFFFFF;
  border: 2px solid var(--nutri-forest-tone);
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  position: relative;
}

.nutri-dashed-input {
  border: none;
  border-bottom: 2px dashed #C8BCA6;
  color: var(--nutri-ink-text);
  transition: border-color 0.3s ease;
}

.nutri-dashed-input:focus {
  border-bottom-color: var(--nutri-amber-accent);
}

/* FAQ Accordion Styling */
.nutri-faq-item {
  border: 1px solid #E2D9C8;
  transition: all 0.3s ease;
}

.nutri-faq-item[open] {
  border-color: var(--nutri-amber-accent);
}

.nutri-faq-num {
  border: 2px solid var(--nutri-gold-seal);
  color: var(--nutri-forest-tone);
  background-color: var(--nutri-paper-surface);
}

/* Scroll-Driven Fade In Section Animations */
@supports (animation-timeline: view()) {
  .nutri-stamp-card, .nutri-article-body, .nutri-frame-container, .nutri-letter-card, .nutri-faq-item {
    animation: nutri-fade-in-view linear forwards;
    animation-timeline: view();
    animation-range: entry 10% cover 30%;
  }

  @keyframes nutri-fade-in-view {
    from {
      opacity: 0.2;
      transform: translateY(20px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}