/* ============================================
   Clean — Scandinavian Precision
   Brand: precise, calm, airy
   Fonts: Hanken Grotesk (heading) + Atkinson Hyperlegible (body)
   Like: a Muji store meets Arket — maximum whitespace, zero decoration
   ============================================ */

.theme-clean {
  /* --- Overall: more whitespace, tighter typography --- */
  & main {
    max-width: 1200px;
  }

  /* --- Categories: text-only uppercase links --- */
  & .category-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    justify-content: center;
  }

  & .category-card {
    background: transparent;
    border-radius: 0;
    padding: 1rem 2rem;
    border: none;

    & .category-image {
      display: none;
    }

    & h3 {
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      border-block-end: 1px solid transparent;
      padding-block-end: 0.25rem;
      transition: border-color 0.2s;
    }

    &:hover {
      transform: none;
      background: transparent;

      & h3 {
        border-color: currentColor;
      }
    }
  }

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

    & .hero-sub {
      font-size: 0.9375rem;
      letter-spacing: 0.02em;
    }
  }

  /* --- Section heads: thin uppercase --- */
  & .section-head h2 {
    font-weight: 300;
    font-size: 0.8125rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  /* --- Product grid: generous 3-col --- */
  & .product-grid {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: clamp(2rem, 4vw, 3rem);
  }

  /* --- Product cards: zero radius, minimal --- */
  & .product-card {
    border-radius: 0;

    &:hover {
      box-shadow: none;
    }

    & .product-image {
      border-radius: 0;
    }

    & h3 {
      font-weight: 400;
      font-size: 0.875rem;
      letter-spacing: 0.02em;
    }

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

    & .card-action {
      border-radius: 0;
      font-size: 0.6875rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 0.75rem 1rem;
    }
  }

  /* --- Newsletter: ultra-minimal --- */
  & .newsletter {
    background: transparent;
    border-radius: 0;
    border-block-start: 1px solid var(--border);
    padding-block: clamp(3rem, 6vw, 5rem);

    & h2 {
      font-weight: 300;
      font-size: 0.875rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    & p {
      display: none;
    }

    & input {
      border-radius: 0;
    }

    & button {
      border-radius: 0;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      font-size: 0.75rem;
    }
  }

  /* --- PDP: clean, square images --- */
  & .pdp-gallery {
    & .pdp-hero {
      border-radius: 0;
    }

    & nav button {
      border-radius: 0;
    }
  }

  & .pdp-info h1 {
    font-weight: 300;
    letter-spacing: -0.02em;
  }

  & .pdp-add-btn {
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8125rem;
  }

  /* --- Filter sidebar: minimal --- */
  & .filter-group h3 {
    font-size: 0.6875rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 500;
  }

  /* --- Footer: minimal single-line --- */
  & footer {
    background: transparent;
    border-block-start: 1px solid var(--border);

    & nav h3 {
      font-size: 0.625rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      font-weight: 500;
    }
  }

  & .footer-brand .logo-text {
    font-weight: 300;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-size: 0.875rem;
  }

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

  & .cms-content {
    & h2 {
      font-weight: 300;
      letter-spacing: -0.01em;
    }

    & h3 {
      font-size: 0.75rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 500;
    }
  }

  /* --- Breadcrumb: uppercase small --- */
  & .breadcrumb ol {
    font-size: 0.6875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
  }

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

  /* --- Buttons: squared everywhere --- */
  & .hero-actions a {
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.875em 2.5em;
  }

  & .empty-state {
    & a,
    & button {
      border-radius: 0;
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }
  }

  /* --- Catalog: generous whitespace, thin borders --- */
  & .catalog {
    gap: clamp(2.5rem, 5vw, 4rem);
  }

  & .catalog-toolbar {
    border-block-end: 1px solid var(--border);
    padding-block-end: 0.75rem;

    & .result-count {
      font-size: 0.6875rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      font-weight: 500;
    }

    & .filter-toggle {
      border-radius: 0;
      font-size: 0.6875rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }

    & .sort-select select {
      border-radius: 0;
    }
  }

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

  & .active-filters {
    & .active-filter-pill {
      border-radius: 0;
      font-size: 0.6875rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
  }

  /* --- PDP: square everything, generous white --- */
  & .pdp {
    gap: clamp(3rem, 6vw, 5rem);
  }

  & .pdp-gallery .pdp-thumbnails button {
    border-radius: 0;
  }

  & .pdp-info {
    & .pdp-brand {
      font-size: 0.625rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      font-weight: 500;
    }

    & h1 {
      font-weight: 300;
      letter-spacing: -0.02em;
      font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    }

    & .pdp-price {
      font-size: 1.125rem;
      font-weight: 400;
      letter-spacing: 0.01em;
    }

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

  & .pdp-actions {
    gap: 0.75rem;

    & .quantity-selector {
      border-radius: 0;
    }

    & .pdp-add-btn {
      border-radius: 0;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      font-size: 0.8125rem;
      padding: 1rem 2rem;
    }
  }

  & .pdp-trust {
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    opacity: 0.5;
  }

  & .pdp-variants .pdp-variant-btn {
    border-radius: 0;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    font-weight: 500;
  }

  & .pdp-tabs .pdp-tab-nav button {
    font-size: 0.6875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
  }

  /* --- Related: thin rule, generous spacing --- */
  & .related-section {
    border-block-start: 1px solid var(--border);
    padding-block-start: clamp(4rem, 8vw, 6rem);
    margin-block-start: clamp(4rem, 8vw, 6rem);
  }

  & .related-section .section-head h2 {
    font-weight: 300;
    font-size: 0.8125rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }
}
