/* ===== Reset & Base ===== */
    *, *::before, *::after {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    html {
      font-size: 16px;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      scroll-behavior: smooth;
    }

    body {
      font-family: 'Sohne', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
      color: #000;
      background: #fff;
      line-height: 1.2;
      overflow-x: hidden;
    }

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

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

    ul {
      list-style: none;
    }

    .visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    /* ===== CTA Pill Buttons ===== */
    .cta-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 11px 20px;
      border-radius: 30px;
      font-family: 'Sohne', sans-serif;
      font-size: 16px;
      font-weight: 400;
      cursor: pointer;
      transition: background 0.3s ease, color 0.3s ease, transform 0.2s ease, border-color 0.3s ease;
      text-decoration: none;
      border: none;
      line-height: 1;
    }

    .cta-pill:hover {
      transform: translateY(-1px);
    }

    .cta-pill--white {
      background: #fff;
      color: #000;
    }

    .cta-pill--white:hover {
      background: #e8e8e8;
    }

    .cta-pill--black {
      background: #000;
      color: #fff;
    }

    .cta-pill--black:hover {
      background: #333;
    }

    .cta-pill--outline-white {
      background: transparent;
      color: #fff;
      border: 1px solid #fff;
    }

    .cta-pill--outline-white:hover {
      background: rgba(255,255,255,0.15);
    }

    .cta-pill--outline-black {
      background: transparent;
      color: #000;
      border: 1px solid #000;
    }

    .cta-pill--outline-black:hover {
      background: rgba(0,0,0,0.05);
    }

    .cta-arrow {
      font-size: 18px;
      transition: transform 0.2s ease;
    }

    .cta-pill:hover .cta-arrow {
      transform: translateX(3px);
    }

    /* ===== Section Container ===== */
    .section-container {
      max-width: 1440px;
      margin: 0 auto;
      padding: 0 clamp(24px, 4vw, 60px);
    }


    /* ============================================================
       1. HEADER
       ============================================================ */
    .site-header {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1000;
      height: 80px;
      background: transparent;
      transition: background 0.3s ease, box-shadow 0.3s ease;
    }

    .site-header.scrolled {
      background: #fff;
      box-shadow: 0 1px 0 rgba(0,0,0,0.08);
    }

    .site-header.scrolled .nav-link,
    .site-header.scrolled .region-button,
    .site-header.scrolled .search-button,
    .site-header.scrolled .contact-cta,
    .site-header.scrolled .lang-toggle,
    .site-header.scrolled .search-toggle {
      color: #000;
    }

    /* Top-page hero-overlay header: right-side controls (lang-toggle,
       search-toggle, legacy contact-cta) match the white nav-link color
       and on hover use the same opacity-0.7 fade as `.nav-link:hover`
       instead of swapping to teal — per design, hero-overlay nav
       components never change color. */
    .site-header .contact-cta,
    .site-header .lang-toggle,
    .site-header .search-toggle {
      color: #fff;
      transition: color 0.25s ease, opacity 0.25s ease;
    }
    .site-header .contact-cta:hover,
    .site-header .contact-cta:focus-visible,
    .site-header .lang-toggle:hover,
    .site-header .lang-toggle:focus-visible,
    .site-header .search-toggle:hover,
    .site-header .search-toggle:focus-visible {
      color: #fff;
      opacity: 0.7;
    }
    .site-header.scrolled .contact-cta:hover,
    .site-header.scrolled .contact-cta:focus-visible,
    .site-header.scrolled .lang-toggle:hover,
    .site-header.scrolled .lang-toggle:focus-visible,
    .site-header.scrolled .search-toggle:hover,
    .site-header.scrolled .search-toggle:focus-visible {
      color: #000;
      opacity: 0.7;
    }

    .site-header.scrolled .header-logo img {
      filter: none;
    }

    .header-inner {
      max-width: 1440px;
      margin: 0 auto;
      padding: 0 clamp(24px, 4vw, 60px);
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .header-logo {
      display: flex;
      align-items: center;
      z-index: 10;
    }

    .header-logo img {
      height: 20px;
      width: auto;
      filter: brightness(0) invert(1);
      transition: filter 0.3s ease;
    }

    .site-header.scrolled .header-logo img {
      filter: none;
    }

    .primary-nav {
      display: flex;
      align-items: center;
    }

    .nav-list {
      display: flex;
      align-items: center;
      gap: 32px;
    }

    .nav-link {
      font-family: 'Sohne', sans-serif;
      font-size: 14px;
      font-weight: 400;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: #fff;
      transition: color 0.25s ease, opacity 0.25s ease;
      position: relative;
    }

    .nav-link:hover {
      opacity: 0.7;
    }

    .header-actions {
      display: flex;
      align-items: center;
      gap: 16px;
    }

    .region-button,
    .search-button {
      background: none;
      border: none;
      cursor: pointer;
      font-family: inherit;
      font-size: 13px;
      color: #fff;
      display: flex;
      align-items: center;
      padding: 4px;
      transition: color 0.2s, opacity 0.2s;
    }

    .region-button:hover,
    .search-button:hover {
      opacity: 0.7;
    }

    .search-button svg {
      width: 20px;
      height: 20px;
      stroke: currentColor;
    }

    .hamburger-button {
      display: none;
      background: none;
      border: none;
      cursor: pointer;
      padding: 4px;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 5px;
      /* iOS Safari hit-testing essentials (see css/style.css comment). */
      touch-action: manipulation;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
      -webkit-appearance: none;
      appearance: none;
      -webkit-user-select: none;
      user-select: none;
      min-width: 44px;
      min-height: 44px;
    }

    .hamburger-line {
      display: block;
      width: 24px;
      height: 2px;
      background: #fff;
      transition: transform 0.3s, opacity 0.3s, background 0.3s;
      transform-origin: center;
    }

    .site-header.scrolled .hamburger-line {
      background: #000;
    }

    /* Open state → X close icon (matches .menu-toggle behavior on other pages). */
    .hamburger-button[aria-expanded="true"] .hamburger-line:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }
    .hamburger-button[aria-expanded="true"] .hamburger-line:nth-child(2) {
      opacity: 0;
    }
    .hamburger-button[aria-expanded="true"] .hamburger-line:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }
    /* When overlay sheet is open the header is white → flip lines to black. */
    .hamburger-button[aria-expanded="true"] .hamburger-line {
      background: #1a1a1a;
    }


    /* ============================================================
       2. HERO SECTION
       ============================================================ */
    .hero-section {
      position: relative;
      width: 100%;
      height: 100vh;
      min-height: 600px;
      max-height: 1000px;
      overflow: hidden;
      display: flex;
      align-items: flex-end;
    }

    .hero-background {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
    }

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

    .hero-background::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 60%;
      background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 100%);
    }

    .hero-content {
      position: relative;
      z-index: 2;
      color: #fff;
      padding: 0 clamp(24px, 4vw, 60px) clamp(60px, 8vh, 120px);
      max-width: 1440px;
      width: 100%;
      margin: 0 auto;
    }

    .hero-headline {
      font-family: 'Sohne Wide', 'Sohne', sans-serif;
      font-size: clamp(48px, 8vw, 102px);
      font-weight: 700;
      line-height: 0.9;
      margin-bottom: 20px;
      letter-spacing: -0.02em;
    }

    .hero-subheading {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(20px, 2.5vw, 32px);
      font-weight: 300;
      line-height: 1.2;
      margin-bottom: 28px;
      opacity: 0.95;
    }


    /* ============================================================
       3. PRODUCT CAROUSEL SECTION
       ============================================================ */
    .product-carousel-section {
      padding: clamp(60px, 8vw, 120px) 0;
      background: #fff;
    }

    .product-section-header {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      margin-bottom: 48px;
      flex-wrap: wrap;
      gap: 16px;
    }

    .product-section-heading {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(32px, 4.5vw, 56px);
      font-weight: 300;
      line-height: 1.1;
    }

    .product-carousel-wrapper {
      position: relative;
    }

    .product-carousel {
      display: flex;
      gap: 20px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding-bottom: 8px;
      cursor: grab;
    }

    .product-carousel::-webkit-scrollbar {
      display: none;
    }

    .product-carousel.is-grabbing {
      cursor: grabbing;
    }

    .product-card {
      flex: 0 0 440px;
      min-width: 280px;
      scroll-snap-align: start;
      background: #f0f0f0;
      border-radius: 10px;
      overflow: hidden;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }

    .product-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    }

    .product-card-link {
      display: block;
      color: inherit;
      text-decoration: none;
    }

    .product-card-image {
      aspect-ratio: 1 / 1;
      overflow: hidden;
      background: #f0f0f0;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 30px;
    }

    .product-card-image img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      transition: transform 0.5s ease;
    }

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

    .product-card-info {
      padding: 24px;
    }

    .product-card-title {
      font-family: 'Sohne', sans-serif;
      font-size: 24px;
      font-weight: 500;
      margin-bottom: 8px;
      line-height: 1.2;
    }

    .product-card-description {
      font-size: 16px;
      color: #666;
      line-height: 1.4;
    }

    .carousel-dots {
      display: flex;
      justify-content: center;
      gap: 8px;
      margin-top: 32px;
    }

    .carousel-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      border: none;
      background: #ccc;
      cursor: pointer;
      padding: 0;
      transition: background 0.3s ease;
    }

    .carousel-dot.is-active {
      background: #000;
    }


    /* ============================================================
       4. EVO ONE FEATURE (2-column, row-reverse)
       ============================================================ */
    .evo-feature {
      display: flex;
      flex-direction: row-reverse;
      min-height: 400px;
      overflow: hidden;
    }

    .evo-feature-image {
      flex: 0 0 75%;
      max-width: 75%;
      overflow: hidden;
    }

    .evo-feature-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .evo-feature-text {
      flex: 0 0 25%;
      max-width: 25%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: clamp(30px, 4vw, 60px);
      background: #fff;
    }

    .evo-feature-text h2 {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(32px, 4.5vw, 56px);
      font-weight: 300;
      line-height: 1.1;
      margin-bottom: 20px;
    }

    .evo-feature-text p {
      font-family: 'Sohne', sans-serif;
      font-size: 20px;
      font-weight: 400;
      line-height: 1.5;
      color: #444;
      margin-bottom: 28px;
    }


    /* ============================================================
       5. CAMBRIDGE SELECTS (2-column, normal)
       ============================================================ */
    .selects-feature {
      display: flex;
      min-height: 560px;
      overflow: hidden;
    }

    .selects-feature-image {
      flex: 0 0 75%;
      max-width: 75%;
      overflow: hidden;
    }

    .selects-feature-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .selects-feature-text {
      flex: 0 0 25%;
      max-width: 25%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: clamp(30px, 4vw, 60px);
      background: #fff;
    }

    .selects-feature-text h2 {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(24px, 3vw, 40px);
      font-weight: 300;
      line-height: 1.15;
      margin-bottom: 20px;
    }

    .selects-feature-text p {
      font-family: 'Sohne', sans-serif;
      font-size: 20px;
      font-weight: 400;
      line-height: 1.5;
      color: #444;
      margin-bottom: 28px;
    }


    /* ============================================================
       6. BRAND STORY (beige background)
       ============================================================ */
    .brand-story-section {
      background: #dfded0;
      padding: clamp(50px, 7vw, 100px) 0;
    }

    .brand-story-layout {
      display: flex;
      gap: clamp(30px, 4vw, 60px);
      align-items: flex-end;
    }

    .brand-story-images {
      flex: 0 0 60%;
      max-width: 60%;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      align-items: end;
    }

    .brand-story-image-large {
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 7 / 8;
    }

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

    .brand-story-image-small {
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 3 / 2;
      align-self: end;
    }

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

    .brand-story-text {
      flex: 0 0 40%;
      max-width: 40%;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding-bottom: 20px;
    }

    .brand-story-text h2 {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(32px, 4.5vw, 56px);
      font-weight: 300;
      line-height: 1.1;
      margin-bottom: 24px;
    }

    .brand-story-text p {
      font-family: 'Sohne', sans-serif;
      font-size: 20px;
      font-weight: 400;
      line-height: 1.5;
      color: #333;
      margin-bottom: 32px;
    }


    /* ============================================================
       7. SERIES CAROUSEL (full-screen dark)
       ============================================================ */
    .series-carousel-section {
      position: relative;
      background: #000;
    }

    .series-carousel {
      position: relative;
      width: 100%;
      height: 80vh;
      min-height: 500px;
      max-height: 900px;
      overflow: hidden;
    }

    .series-slide {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      transition: opacity 0.8s ease;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .series-slide.active {
      opacity: 1;
      z-index: 2;
    }

    .series-slide-background {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
    }

    .series-slide-background img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .series-slide-background::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.35);
    }

    .series-slide-top {
      position: relative;
      z-index: 2;
      padding: clamp(80px, 12vh, 160px) clamp(24px, 4vw, 60px) 0;
    }

    .series-display-heading {
      font-family: 'Sohne Wide', 'Sohne', sans-serif;
      font-size: clamp(48px, 8vw, 102px);
      font-weight: 700;
      text-transform: uppercase;
      line-height: 0.9;
      color: #fff;
      letter-spacing: 0.02em;
    }

    .series-slide-bottom {
      position: relative;
      z-index: 2;
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      padding: 0 clamp(24px, 4vw, 60px) clamp(40px, 5vh, 60px);
    }

    .series-slide-info {
      max-width: 500px;
    }

    .series-slide-subheading {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(20px, 2.5vw, 32px);
      font-weight: 300;
      color: #fff;
      margin-bottom: 20px;
      line-height: 1.2;
    }

    .series-nav {
      display: flex;
      align-items: center;
      gap: 16px;
    }

    .series-counter {
      font-family: 'Sohne', sans-serif;
      font-size: 14px;
      color: rgba(255, 255, 255, 0.7);
      font-variant-numeric: tabular-nums;
    }

    .series-prev,
    .series-next {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 1.5px solid rgba(255, 255, 255, 0.7);
      background: transparent;
      color: #fff;
      cursor: pointer;
      transition: background 0.25s ease, border-color 0.25s ease;
    }

    .series-prev:hover,
    .series-next:hover {
      background: rgba(255, 255, 255, 0.15);
      border-color: #fff;
    }

    .series-prev svg,
    .series-next svg {
      stroke: currentColor;
    }


    /* ============================================================
       8. ENGINEERING / PILLARS SECTION
       ============================================================ */
    .engineering-section {
      background: #fff;
      padding: clamp(60px, 8vw, 120px) 0;
    }

    .engineering-heading {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(32px, 4.5vw, 56px);
      font-weight: 300;
      line-height: 1.1;
      margin-bottom: clamp(40px, 6vw, 80px);
      max-width: 700px;
    }

    .engineering-rows {
      display: flex;
      flex-direction: column;
      gap: 36px;
    }

    .engineering-row {
      display: flex;
      align-items: center;
      gap: clamp(24px, 3vw, 40px);
    }

    .engineering-row-image {
      flex: 0 0 25%;
      max-width: 25%;
      border-radius: 10px;
      overflow: hidden;
      aspect-ratio: 3 / 2;
    }

    .engineering-row-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .engineering-row-title {
      flex: 0 0 25%;
      max-width: 25%;
      font-family: 'Sohne', sans-serif;
      font-size: 24px;
      font-weight: 500;
      line-height: 1.2;
    }

    .engineering-row-desc {
      flex: 1;
      font-family: 'Sohne', sans-serif;
      font-size: 20px;
      font-weight: 400;
      line-height: 1.5;
      color: #666;
    }


    /* ============================================================
       9. PODCAST SECTION (very large, dark)
       ============================================================ */
    .podcast-section {
      background: #000;
      color: #fff;
      padding: clamp(60px, 8vw, 100px) 0;
      min-height: 900px;
    }

    .podcast-display-heading {
      font-family: 'Sohne Wide', 'Sohne', sans-serif;
      font-size: clamp(48px, 8vw, 102px);
      font-weight: 700;
      text-transform: uppercase;
      line-height: 0.9;
      color: #fff;
      margin-bottom: clamp(60px, 8vw, 120px);
      letter-spacing: 0.02em;
    }

    .podcast-layout {
      display: flex;
      gap: clamp(30px, 4vw, 60px);
      align-items: flex-end;
    }

    .podcast-info {
      flex: 0 0 40%;
      max-width: 40%;
    }

    .podcast-subheading {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(20px, 2.5vw, 32px);
      font-weight: 300;
      line-height: 1.2;
      margin-bottom: 28px;
      color: #fff;
    }

    .podcast-rating {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 24px;
      color: #fff;
    }

    .podcast-rating-score {
      font-size: 14px;
      font-weight: 700;
    }

    .podcast-rating-stars {
      color: #f5a623;
      font-size: 16px;
      letter-spacing: 2px;
    }

    .podcast-rating-count {
      font-size: 13px;
      color: rgba(255,255,255,0.6);
    }

    .podcast-portrait {
      flex: 0 0 60%;
      max-width: 60%;
      border-radius: 10px;
      overflow: hidden;
      aspect-ratio: 3 / 4;
    }

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


    /* ============================================================
       10. PRESS QUOTES (dark carousel)
       ============================================================ */
    .press-quotes-section {
      background: #000;
      color: #fff;
      padding: clamp(60px, 8vw, 120px) 0;
      min-height: 500px;
    }

    .press-carousel {
      position: relative;
      text-align: center;
    }

    .press-carousel-track {
      position: relative;
      min-height: 260px;
    }

    .press-quote {
      text-align: center;
      padding: 0 clamp(16px, 4vw, 80px);
      transition: opacity 0.6s ease;
    }

    .press-quote:not(.active) {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      opacity: 0;
      pointer-events: none;
    }

    .press-quote.active {
      opacity: 1;
      position: relative;
    }

    .press-quote-text {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(24px, 4vw, 56px);
      font-weight: 300;
      line-height: 1.15;
      margin-bottom: 40px;
      max-width: 1000px;
      margin-left: auto;
      margin-right: auto;
    }

    .press-quote-source {
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .press-quote-source img {
      height: 32px;
      width: auto;
      opacity: 0.6;
    }

    .press-nav {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 16px;
      margin-top: 48px;
    }

    .press-prev,
    .press-next {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 1.5px solid rgba(255, 255, 255, 0.3);
      background: transparent;
      color: #fff;
      cursor: pointer;
      transition: background 0.25s ease, border-color 0.25s ease;
    }

    .press-prev:hover,
    .press-next:hover {
      background: rgba(255, 255, 255, 0.15);
      border-color: #fff;
    }


    /* ============================================================
       11. VINYL SECTION (full-bleed)
       ============================================================ */
    .vinyl-section {
      position: relative;
      width: 100%;
      height: 900px;
      max-height: 90vh;
      min-height: 500px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .vinyl-background {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
    }

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

    .vinyl-background::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.4);
    }

    .vinyl-content {
      position: relative;
      z-index: 2;
      text-align: center;
      color: #fff;
      padding: 0 clamp(24px, 4vw, 60px);
    }

    .vinyl-display-heading {
      font-family: 'Sohne Wide', 'Sohne', sans-serif;
      font-size: clamp(48px, 8vw, 102px);
      font-weight: 700;
      text-transform: uppercase;
      line-height: 0.9;
      margin-bottom: 24px;
      letter-spacing: 0.02em;
    }

    .vinyl-subheading {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(20px, 2.5vw, 32px);
      font-weight: 300;
      line-height: 1.2;
      margin-bottom: 28px;
      opacity: 0.95;
    }


    /* ============================================================
       12. SOCIAL SECTION
       ============================================================ */
    .social-section {
      background: #f5f5f5;
      padding: clamp(60px, 8vw, 120px) 0;
      text-align: center;
    }

    .social-heading {
      font-family: 'Sohne Wide', 'Sohne', sans-serif;
      font-size: clamp(24px, 3vw, 40px);
      font-weight: 700;
      margin-bottom: 16px;
    }

    .social-description {
      font-family: 'Sohne', sans-serif;
      font-size: 20px;
      font-weight: 400;
      color: #666;
      line-height: 1.5;
      max-width: 560px;
      margin: 0 auto;
    }


    /* ============================================================
       13. FOOTER
       ============================================================ */
    .site-footer {
      background: #000;
      color: #fff;
    }

    .footer-newsletter {
      padding: clamp(50px, 6vw, 80px) 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .footer-newsletter-heading {
      font-family: 'Tiempos Headline', Georgia, serif;
      font-size: clamp(24px, 3vw, 40px);
      font-weight: 300;
      margin-bottom: 28px;
      text-align: center;
    }

    .newsletter-form {
      max-width: 520px;
      margin: 0 auto;
    }

    .newsletter-input-group {
      display: flex;
      gap: 8px;
    }

    .newsletter-input-group input {
      flex: 1;
      padding: 14px 16px;
      border: 1px solid rgba(255, 255, 255, 0.3);
      border-radius: 4px;
      background: transparent;
      color: #fff;
      font-size: 14px;
      font-family: inherit;
      outline: none;
      transition: border-color 0.2s;
    }

    .newsletter-input-group input::placeholder {
      color: rgba(255, 255, 255, 0.7);
    }

    .newsletter-input-group input:focus {
      border-color: #fff;
    }

    .newsletter-submit {
      padding: 14px 28px;
      background: #fff;
      color: #000;
      border: none;
      border-radius: 4px;
      font-size: 14px;
      font-weight: 700;
      font-family: inherit;
      cursor: pointer;
      transition: background 0.2s, opacity 0.2s;
      white-space: nowrap;
    }

    .newsletter-submit:hover {
      opacity: 0.85;
    }

    .newsletter-consent {
      margin-top: 16px;
    }

    .checkbox-label {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: 12px;
      color: rgba(255, 255, 255, 0.5);
      line-height: 1.5;
      cursor: pointer;
    }

    .checkbox-label input[type="checkbox"] {
      margin-top: 2px;
      accent-color: #fff;
      flex-shrink: 0;
    }

    .checkbox-label a {
      color: rgba(255,255,255,0.7);
      text-decoration: underline;
    }

    .checkbox-label a:hover {
      color: #fff;
    }

    .footer-links {
      padding: clamp(40px, 4vw, 60px) 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

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

    .footer-column-heading {
      font-size: 14px;
      font-weight: 700;
      margin-bottom: 16px;
      letter-spacing: 0.02em;
    }

    .footer-column-list li {
      margin-bottom: 10px;
    }

    .footer-column-list li a {
      font-size: 13px;
      color: rgba(255, 255, 255, 0.6);
      transition: color 0.2s;
    }

    .footer-column-list li a:hover {
      color: #fff;
    }

    .footer-social {
      padding: 28px 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .social-links {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 24px;
    }

    .social-links a {
      color: rgba(255, 255, 255, 0.6);
      transition: color 0.2s;
      display: flex;
      align-items: center;
    }

    .social-links a:hover {
      color: #fff;
    }

    .social-links svg {
      width: 24px;
      height: 24px;
    }

    .footer-region {
      padding: 20px 0;
      text-align: center;
    }

    .footer-region .region-button {
      color: rgba(255, 255, 255, 0.6);
      font-size: 13px;
    }

    .footer-region .region-button:hover {
      color: #fff;
    }

    .footer-bottom {
      padding: 24px 0;
      border-top: 1px solid rgba(255, 255, 255, 0.12);
    }

    .footer-bottom .section-container {
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 16px;
    }

    .footer-copyright {
      font-size: 12px;
      color: rgba(255, 255, 255, 0.7);
    }

    .footer-legal {
      display: flex;
      gap: 24px;
    }

    .footer-legal a {
      font-size: 12px;
      color: rgba(255, 255, 255, 0.7);
      transition: color 0.2s;
    }

    .footer-legal a:hover {
      color: #fff;
    }


    /* ============================================================
       RESPONSIVE - TABLET (1024px)
       ============================================================ */
    @media (max-width: 1024px) {
      .evo-feature {
        flex-direction: column-reverse;
      }

      .evo-feature-image,
      .evo-feature-text {
        flex: none;
        max-width: 100%;
      }

      .evo-feature-image {
        height: 400px;
      }

      .evo-feature-text {
        padding: 40px clamp(24px, 4vw, 60px);
      }

      .selects-feature {
        flex-direction: column;
      }

      .selects-feature-image,
      .selects-feature-text {
        flex: none;
        max-width: 100%;
      }

      .selects-feature-image {
        height: 400px;
      }

      .selects-feature-text {
        padding: 40px clamp(24px, 4vw, 60px);
      }

      .brand-story-layout {
        flex-direction: column;
      }

      .brand-story-images,
      .brand-story-text {
        flex: none;
        max-width: 100%;
      }

      .engineering-row {
        flex-wrap: wrap;
      }

      .engineering-row-image {
        flex: 0 0 100%;
        max-width: 100%;
      }

      .engineering-row-title {
        flex: 0 0 30%;
        max-width: 30%;
      }

      .engineering-row-desc {
        flex: 1;
      }

      .podcast-layout {
        flex-direction: column;
      }

      .podcast-info,
      .podcast-portrait {
        flex: none;
        max-width: 100%;
      }

      .podcast-portrait {
        max-height: 500px;
      }

      .product-card {
        flex: 0 0 340px;
      }
    }


    /* ============================================================
       RESPONSIVE - MOBILE (768px)
       ============================================================ */
    @media (max-width: 768px) {
      .primary-nav {
        display: none;
      }

      /* Mobile overlay: when the hamburger toggles is-open, render the
         primary nav as a full-screen sheet. This rule was missing on
         index.html (only the products/manuals .header-nav.is-open
         equivalent existed), so the iPhone hamburger appeared dead. */
      .primary-nav.is-open {
        display: flex;
        flex-direction: column;
        position: fixed;
        inset: 0;
        z-index: 9999;
        background: #fff;
        padding: 80px 24px 24px;
        overflow-y: auto;
      }
      .primary-nav.is-open .nav-list {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        width: 100%;
      }
      .primary-nav.is-open .nav-link {
        display: block;
        padding: 16px 0;
        font-size: 18px;
        color: #1a1a1a;
        border-bottom: 1px solid #eee;
        width: 100%;
        text-transform: none;
        letter-spacing: 0.02em;
      }
      .primary-nav.is-open .nav-link:last-child {
        border-bottom: none;
      }

      .hamburger-button {
        display: flex;
      }

      .region-button span {
        display: none;
      }

      .hero-section {
        height: 80vh;
        min-height: 480px;
      }

      .hero-headline {
        font-size: clamp(36px, 10vw, 56px);
      }

      .product-card {
        flex: 0 0 280px;
        min-width: 240px;
      }

      .product-card-title {
        font-size: 18px;
      }

      .evo-feature-image {
        height: 300px;
      }

      .selects-feature-image {
        height: 300px;
      }

      .brand-story-images {
        grid-template-columns: 1fr;
      }

      .brand-story-image-small {
        display: none;
      }

      .series-carousel {
        height: 60vh;
        min-height: 400px;
      }

      .series-display-heading {
        font-size: clamp(36px, 10vw, 56px);
      }

      .engineering-row {
        flex-direction: column;
        align-items: flex-start;
      }

      .engineering-row-image,
      .engineering-row-title,
      .engineering-row-desc {
        flex: none;
        max-width: 100%;
      }

      .engineering-row-image {
        width: 100%;
      }

      .podcast-display-heading {
        font-size: clamp(36px, 10vw, 56px);
      }

      .podcast-portrait {
        aspect-ratio: 1 / 1;
      }

      .press-quote-text {
        font-size: clamp(20px, 5vw, 32px);
      }

      .vinyl-section {
        height: 600px;
      }

      .vinyl-display-heading {
        font-size: clamp(36px, 10vw, 56px);
      }

      .footer-columns {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px;
      }

      .newsletter-input-group {
        flex-direction: column;
      }

      .footer-bottom .section-container {
        flex-direction: column;
        text-align: center;
      }

      .footer-legal {
        justify-content: center;
        flex-wrap: wrap;
      }
    }

    @media (max-width: 480px) {
      .product-card {
        flex: 0 0 240px;
        min-width: 200px;
      }

      .series-slide-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
      }

      .series-nav {
        align-self: flex-end;
      }

      .footer-columns {
        grid-template-columns: 1fr;
      }
    }
