/* ============================================
   Nordic — Serene, Curated, Light
   Brand: Scandinavian interiors, calm, spacious
   Fonts: Manrope (heading) + Atkinson Hyperlegible (body)
   Like: a Scandinavian design magazine — light, airy, warm materials
   Color: cool palette, muted blue-grey
   ============================================ */

.theme-nordic {
  /* --- Hero: generous whitespace --- */
  & .hero-content h1 {
    font-weight: 300;
    font-size: clamp(2.5rem, 5vw, 4rem);
    letter-spacing: -0.03em;
    line-height: 1.05;
  }

  & .hero-content .hero-sub {
    font-size: 1rem;
    font-weight: 300;
    letter-spacing: 0.01em;
    opacity: 0.7;
  }

  & .hero-actions a {
    border-radius: 100px;
    padding: 0.75em 2.5em;
    font-size: 0.8125rem;
    font-weight: 500;
  }

  /* --- Categories: rounded cards with soft bg --- */
  & .category-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
  }

  & .category-card {
    border-radius: 1rem;
    padding: 1.5rem;
    background: var(--surface);
    border: none;

    & .category-image {
      border-radius: 0.75rem;
    }

    & h3 {
      font-weight: 500;
      font-size: 0.9375rem;
      letter-spacing: -0.01em;
    }

    &:hover {
      background: var(--border);
      transform: none;
    }
  }

  /* --- Section heads: light weight, large --- */
  & .section-head h2 {
    font-weight: 300;
    font-size: clamp(1.5rem, 3vw, 2rem);
    letter-spacing: -0.02em;
  }

  /* --- Product grid: generous spacing --- */
  & .product-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: clamp(1.5rem, 3vw, 2.5rem);
  }

  /* --- Product cards: rounded, elevated on hover --- */
  & .product-card {
    border-radius: 0.75rem;
    overflow: hidden;

    & .product-image { border-radius: 0.75rem; }

    & h3 {
      font-weight: 500;
      font-size: 0.9375rem;
      letter-spacing: -0.01em;
    }

    & .product-price {
      font-size: 0.8125rem;
      font-weight: 400;
    }

    & .card-action {
      border-radius: 100px;
      font-size: 0.8125rem;
      font-weight: 500;
    }
  }

  /* --- Newsletter: soft bg, rounded --- */
  & .newsletter {
    border-radius: 1.5rem;
    background: var(--surface);

    & h2 {
      font-weight: 300;
      font-size: clamp(1.25rem, 2.5vw, 1.75rem);
      letter-spacing: -0.01em;
    }

    & input { border-radius: 100px; }
    & button { border-radius: 100px; }
  }

  /* --- PDP --- */
  & .pdp-gallery .pdp-hero { border-radius: 0.75rem; }
  & .pdp-gallery nav button { border-radius: 0.5rem; }
  & .pdp-info h1 {
    font-weight: 300;
    letter-spacing: -0.02em;
  }
  & .pdp-add-btn { border-radius: 100px; }

  /* --- Footer: soft bg --- */
  & footer {
    background: var(--surface);
    border-block-start: none;

    & nav h3 {
      font-weight: 500;
      font-size: 0.8125rem;
      letter-spacing: 0;
    }
  }

  & .footer-brand .logo-text {
    font-weight: 300;
    letter-spacing: -0.01em;
    font-size: 1.125rem;
  }

  /* --- CMS pages --- */
  & .cms-page > h1 { font-weight: 300; letter-spacing: -0.02em; }
  & .cms-content h2 { font-weight: 300; }

  /* --- Category hero --- */
  & .category-hero h1 { font-weight: 300; letter-spacing: -0.02em; }

  /* --- Breadcrumb --- */
  & .breadcrumb ol { font-size: 0.8125rem; }

  /* --- Filter --- */
  & .filter-group h3 {
    font-weight: 500;
    text-transform: none;
    font-size: 0.875rem;
    letter-spacing: 0;
  }

  /* --- Buttons: pill shapes --- */
  & .empty-state a,
  & .empty-state button { border-radius: 100px; }

  /* --- Sort --- */
  & .catalog-toolbar .sort-select select { border-radius: 100px; }

  /* --- Carousel --- */
  & .carousel-track > .product-card { width: 300px; }

  /* --- Cart --- */
  & .empty-state a { border-radius: 100px; }

  /* --- Catalog: airy, generous padding, pill elements --- */
  & .catalog {
    gap: clamp(2rem, 4vw, 3rem);
  }

  & .catalog-toolbar {
    background: var(--surface);
    border-radius: 100px;
    padding: 0.625rem 1.25rem;

    & .result-count {
      font-size: 0.8125rem;
      font-weight: 400;
      opacity: 0.6;
    }

    & .filter-toggle {
      border-radius: 100px;
      font-weight: 500;
    }
  }

  & .catalog .product-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: clamp(1.5rem, 3vw, 2.5rem);
  }

  & .active-filters {
    & .active-filter-pill {
      border-radius: 100px;
      font-size: 0.8125rem;
      font-weight: 500;
    }
  }

  /* --- PDP: airy, generous padding, pill buttons --- */
  & .pdp {
    gap: clamp(2.5rem, 5vw, 4rem);
  }

  & .pdp-gallery .pdp-thumbnails button {
    border-radius: 0.5rem;

    &[aria-pressed="true"] {
      outline: 2px solid var(--primary);
      outline-offset: 2px;
    }
  }

  & .pdp-info {
    & .pdp-brand {
      font-size: 0.8125rem;
      font-weight: 500;
      opacity: 0.6;
    }

    & h1 {
      font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    }

    & .pdp-price {
      font-size: 1.25rem;
      font-weight: 400;
    }

    & .pdp-description {
      font-size: 0.9375rem;
      line-height: 1.75;
      max-width: 50ch;
    }
  }

  & .pdp-actions {
    & .quantity-selector {
      border-radius: 100px;
    }

    & .pdp-add-btn {
      border-radius: 100px;
      font-weight: 500;
      padding: 0.875rem 2.5rem;
    }
  }

  & .pdp-trust {
    font-size: 0.8125rem;
    font-weight: 400;
    opacity: 0.5;
  }

  & .pdp-variants .pdp-variant-btn {
    border-radius: 100px;
    font-weight: 500;
    font-size: 0.8125rem;
  }

  & .pdp-tabs .pdp-tab-nav button {
    border-radius: 100px;
    font-weight: 500;
  }

  /* --- Related: soft surface background --- */
  & .related-section {
    background: var(--surface);
    border-radius: 1.5rem;
    padding: clamp(2rem, 4vw, 3rem);
    margin-block-start: clamp(3rem, 6vw, 5rem);
  }

  & .related-section .section-head h2 {
    font-weight: 300;
    letter-spacing: -0.02em;
  }
}
