/* OVERALL & VARIABLES */

  :root {
    /* Brand Colors */
    --brand-pink: #D368AC;
    --brand-green: #228340;
    --brand-gold: #D4AF37;
    --brand-pink-rgb: 211, 104, 172;
    --brand-gold-rgb: 212, 175, 55;

    /* Neutrals */
    --dark-grey: #161616;
    --mid-grey: #383838;
    --mid-light-grey: #7e7e7e;
    --light-grey: #aaaaaa;
    --grey-bg: #e8e8e8;

    /* Rainbow border */
    --rainbow-grad: linear-gradient(135deg, #D368AC, #be1e2e, #f15a29, #228340, #f5c043, #204963);

    /* Layout */
    --container-x-margin-xs: 2rem;
    --container-x-margin-sm: 2rem;
    --container-x-margin-md: 2rem;
    --container-x-margin-lg: 3rem;
    --container-x-margin-xl: 4rem;
    --container-x-margin-xxl: 6rem;
    --container-x-margin-xxxl: 8rem;
    --container-x-margin: 2rem;
    --footer-block-max: 460px;


    /* Fonts */
    --body-font: 'Montserrat', Arial, sans-serif;

    /* Cookie consent */
    --cc-font-family: var(--body-font);
    --cc-modal-border-radius: 8px;
    --cc-btn-border-radius: 999px;
    --cc-bg: #242424;
    --cc-primary-color: #ffffff;
    --cc-secondary-color: #d7d7d7;
    --cc-btn-primary-bg: var(--brand-pink);
    --cc-btn-primary-color: #000000;
    --cc-btn-primary-border-color: var(--brand-pink);
    --cc-btn-primary-hover-bg: #ffffff;
    --cc-btn-primary-hover-color: #000000;
    --cc-btn-primary-hover-border-color: #ffffff;
    --cc-btn-secondary-bg: #191919;
    --cc-btn-secondary-color: #d7d7d7;
    --cc-btn-secondary-border-color: #343434;
    --cc-btn-secondary-hover-bg: #2f2f2f;
    --cc-btn-secondary-hover-color: #ffffff;
    --cc-btn-secondary-hover-border-color: var(--brand-pink);
    --cc-separator-border-color: #303030;
    --cc-toggle-on-bg: var(--brand-pink);
    --cc-toggle-off-bg: #6a6a6a;
    --cc-toggle-readonly-bg: #383838;
    --cc-cookie-category-block-bg: #2a2a2a;
    --cc-cookie-category-block-border: #3a3a3a;
    --cc-cookie-category-block-hover-bg: #333333;
    --cc-cookie-category-block-hover-border: var(--brand-pink);
    --cc-cookie-category-expanded-block-hover-bg: #303030;
    --cc-footer-bg: #111111;
    --cc-footer-color: #d7d7d7;
    --cc-footer-border-color: #303030;
  }

  html,
  body {
    background-color: black;
    color: white;
    font-family: 'Montserrat', Arial, sans-serif;
    overflow-x: clip;
  }

  @supports not (overflow: clip) {
    html, body { overflow-x: hidden; }
  }

  /* Default hover/interaction transition for interactive elements only
     (not a global * selector, to avoid animating things that were never
     meant to transition). Anything with its own transition-duration /
     transition-timing-function / transition shorthand overrides this
     normally, since those rules are always more specific than this list. */
  a, button, .btn, input, select, textarea {
    transition-duration: 0.15s;
    transition-timing-function: ease-in-out;
  }

/* TYPOGRAPHY */

  @font-face {
    font-family: 'FedDSPHeader';
    src: url('/assets/fonts/FedDSPCustomFont.otf') format('opentype');
    font-display: swap;
  }

  h1, h2, h3, h4, h5,
  .font-header {
    font-family: 'FedDSPHeader', sans-serif;
    line-height: 0.9;
    letter-spacing: 0.02em;
  }

  .font-body {
    font-family: 'Montserrat', Arial, sans-serif;
  }

  h1 { font-size: 5rem; }
  h2 { font-size: 5rem; }
  h3 { font-size: 3.5rem; }
  h4 { font-size: 3rem; }
  h5 { font-size: 2.5rem; }
  p { font-size: 0.9rem; }

  /* Gradient Text Utilities */
  .gradient-text, .gradient-text2, .gradient-text3, .gradient-text4 {
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
  }

  .gradient-text {
    background-image: var(--hero-gradient-primary);
  }

  .gradient-text2 {
    background-image: var(--hero-gradient-secondary);
  }

  .gradient-text3 {
    background-image: var(--hero-gradient-tertiary);
  }

  .gradient-text4 {
    background-image: var(--hero-gradient-quaternary);
  }

  .gradient-text-features {
    background-image: var(--hero-gradient-features);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
  }

  .product-page--solid-headings :where(h2.gradient-text, h2.gradient-text2, h2.gradient-text3, h2.gradient-text4, h2.gradient-text-features, h2.gradient-text-audio) {
    background-image: none;
    color: var(--product-page-color-primary, var(--brand-pink));
    -webkit-text-fill-color: currentColor;
  }

  .text-brand-pink { color: var(--brand-pink) !important; }
  .brand-green { color: var(--brand-green) !important; }

  a {
    color: var(--brand-pink);
  }

  a:hover, a:active {
    color: black;
  }

/* LAYOUT UTILITIES */

  .restrict-width {
    padding-left: var(--container-x-margin-xs);
    padding-right: var(--container-x-margin-xs);
    max-width: 1500px;
    margin: auto;
  }

  @media (min-width: 576px) { .restrict-width { padding-left: var(--container-x-margin-sm); padding-right: var(--container-x-margin-sm); } }
  @media (min-width: 768px) { .restrict-width { padding-left: var(--container-x-margin-md); padding-right: var(--container-x-margin-md); } }
  @media (min-width: 992px) { .restrict-width { padding-left: var(--container-x-margin-lg); padding-right: var(--container-x-margin-lg); } }
  @media (min-width: 1200px) { .restrict-width { padding-left: var(--container-x-margin-xl); padding-right: var(--container-x-margin-xl); } }
  @media (min-width: 1400px) { .restrict-width { padding-left: var(--container-x-margin-xxl); padding-right: var(--container-x-margin-xxl); } }
  @media (min-width: 2000px) { .restrict-width { padding-left: var(--container-x-margin-xxxl); padding-right: var(--container-x-margin-xxxl); } }

  /* Background Utilities */
    .bg-light-grey { background-color: var(--grey-bg); color: var(--dark-grey); }
    .bg-white { background-color: white; color: black; }
    .bg-dark-grey { background-color: var(--dark-grey); color: white; }

    /* White section grain texture — same grain image already used (inverted)
       on dark sections via .audio-experience-bg::before. Scoped to `section`
       so it doesn't reach smaller white surfaces like .contact-card. */
    section.bg-white {
      background-color: white;
      background-image: url('/assets/images/backgrounds/fedZEP-amps-grain-seamless.webp');
      background-repeat: repeat;
      background-size: auto;
    }

    .shingle-overlap { /* for hairline cracks between sections on iOS - apply to upper section). NB if multiple consecutive sections need fixing, then have to apply inline z-index, such that the sections higher up the page always have higher z-index than those lower. */
    position: relative;
    margin-bottom: -2px !important;
    z-index: 10;
    }

    .seamless-section {
      position: relative;
      isolation: isolate;
      --seam-fill: #000;
    }

    .seamless-section::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -2px;
      height: 3px;
      background: var(--seam-fill);
      pointer-events: none;
      z-index: 5;
    }

    .seamless-section-mid {
      --seam-fill: var(--mid-grey);
    }

/* ANIMATIONS */

  .reveal-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease, transform 1s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
  }

  .reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  .delay-100 { transition-delay: 0.1s; }
  .delay-200 { transition-delay: 0.15s; }
  .delay-300 { transition-delay: 0.3s; }

/* UI ELEMENTS (BUTTONS & CARDS) */

  .waitlist-product-logo {
    width: min(580px, 70vw);
    height: auto;
  }

  /* Buttons */
    .btn-pill {
      border-radius: 999px;
      padding: 0.5rem 2rem;
      font-weight: 700;
      text-transform: uppercase;
      border: none;
      transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
    }

    .btn-brand-solid {
      background-color: var(--buy-button-accent, var(--brand-pink)) !important;
      color: var(--buy-button-text, #ffffff) !important;
      border: 2px solid var(--buy-button-accent, var(--brand-pink)) !important;
    }

    .btn-brand-solid:hover,
    .btn-brand-solid:focus-visible {
      background-color: white !important;
      color: var(--buy-button-accent, var(--brand-pink)) !important;
      border-color: var(--buy-button-accent, var(--brand-pink)) !important;
      transform: translateY(-2px);
    }

    .btn-outline-white {
      background-color: transparent !important;
      color: #ffffff !important;
      border: 2px solid #ffffff !important;
    }

    .btn-outline-white:hover,
    .btn-outline-white:focus-visible {
      background-color: #ffffff !important;
      color: var(--buy-button-accent, var(--brand-pink)) !important;
      border-color: #ffffff !important;
      transform: translateY(-2px);
    }

    .text-product-page-primary {
      color: var(--product-page-color-primary, var(--brand-pink)) !important;
    }

    .btn-grey-solid {
      background-color: #e9ecef;
      color: var(--dark-grey);
      border: 1px solid #e9ecef;
    }

    .btn-grey-solid:hover {
      background-color: #dde0e3;
      color: black;
      transform: translateY(-2px);
    }

  /* Cards */
    .card-v2 {
      padding: 2.5rem 2rem;
      border-radius: 1.5rem;
      height: 100%;
      transition: transform 0.15s ease;
      text-align: left;
      display: flex;
      flex-direction: column;
    }

    .card-v2:hover {
      transform: translateY(-5px);
    }

    .card-white {
      background-color: white;
      color: var(--dark-grey);
      box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    }

    .card-grey {
      background-color: var(--grey-bg);
      color: var(--dark-grey);
    }

    .card-black {
      background-color: black;
      color: white;
    }

/* NAVBAR & FOOTER */

  /* Sticky header (announcement bar + navbar stack as one unit) */

    .site-header-sticky {
      position: sticky;
      top: 0;
      z-index: 1021;
    }

  /* Announcement bar */

    .announcement-bar {
      position: relative;
      z-index: 1020;
      width: 100%;
      background: linear-gradient(90deg, var(--brand-pink)20%, #9c3071 60%, var(--brand-pink) 100%);
      background-size: 300% 300%;
      animation: announcementGradient 12s ease-in-out infinite;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      text-align: center;
      padding-block: 0.6rem;
    }

    @keyframes announcementGradient {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }

    .announcement-bar-text {
      margin: 0;
      color: white;
      font-size: 0.85rem;
      font-weight: 500;
      letter-spacing: 0.01em;
      transition: 0.2s ease-in-out;
    }


    .announcement-bar-product,
    .announcement-bar-link {
      color: inherit;
      text-decoration: none;
      transition: opacity 150ms ease, color 150ms ease;
    }

    .announcement-bar-product:hover,
    .announcement-bar-product:focus-visible,
    .announcement-bar-link:hover,
    .announcement-bar-link:focus-visible {
      color: inherit;
      opacity: 0.82;
    }


    .announcement-bar.is-hidden {
      display: none;
    }

    .announcement-bar-countdown {
      display: inline-block;
      margin-inline-start: .65em;
      padding: 0.15rem 1rem;
      border-radius: 999px;
      background: rgba(0, 0, 0, 0.22);
      font-variant-numeric: tabular-nums;
      font-weight: 700;
      white-space: nowrap;
      font-size: 1rem;
    }

    .announcement-bar-founders {
      /*color: var(--brand-gold);*/
      color: #161616;
      font-weight: 700;
      text-decoration: none;
      display: inline-block;
      transition: scale 0.15s ease;
    }

    .announcement-bar-founders:hover,
    .announcement-bar-founders:focus-visible {
      scale: 1.02;
    }

  /* Navbar */

    @media (min-width: 992px) {
      :root { --container-x-margin: var(--container-x-margin-lg); }
    }
    @media (min-width: 1200px) {
      :root { --container-x-margin: var(--container-x-margin-xl); }
    }
    @media (min-width: 1400px) {
      :root { --container-x-margin: var(--container-x-margin-xxl); }
    }
    @media (min-width: 2000px) {
      :root { --container-x-margin: var(--container-x-margin-xxxl); }
    }

    .navbar-wrapper {
      position: relative;
      z-index: 1020;
      width: 100%;
      background: rgba(0, 0, 0, 0.7);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
    }

    .navbar {
      background-color: transparent;
      border-bottom: none;
    }

    ul.navbar-nav { margin-bottom: 0 !important; }

    .navbar-brand {
      position: relative;
      display: inline-flex;
      align-items: center;
      text-decoration: none;
    }

    .nav-logo {
      max-height: 26px;
      position: relative;
      filter: brightness(0) invert(1);
      transition: opacity 0.15s ease;
    }

    .navbar-brand::after {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--brand-pink);
      opacity: 0;
      transition: opacity 0.15s ease;
      pointer-events: none;
      -webkit-mask-image: url('/assets/images/icons/fedDSP_logo_text_small_WonB.png');
      mask-image: url('/assets/images/icons/fedDSP_logo_text_small_WonB.png');
      -webkit-mask-size: contain;
      mask-size: contain;
      -webkit-mask-repeat: no-repeat;
      mask-repeat: no-repeat;
      -webkit-mask-position: center;
      mask-position: center;
    }

    .navbar-brand:hover .nav-logo,
    .navbar-brand:focus .nav-logo,
    .navbar-brand:active .nav-logo {
      opacity: 0;
    }

    .navbar-brand:hover::after,
    .navbar-brand:focus::after,
    .navbar-brand:active::after {
      opacity: 1;
    }

    .navbar .nav-item { margin: 0 0.5rem; }

    .navbar .nav-link {
      color: white;
      font-weight: 500;
      display: flex;
      align-items: center;
      position: relative;
    }

    .navbar .nav-link::after {
      content: '';
      position: absolute;
      bottom: 4px;
      left: 0;
      right: 0;
      height: 2px;
      background: white;
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 0.25s ease;
    }

    .navbar .nav-link:hover::after,
    .nav-mega-item.is-active .nav-link::after {
      transform: scaleX(1);
    }

    .navbar .nav-link.account-icon::after { display: none; }

    .navbar .nav-link--accent {
      color: var(--brand-gold) !important;
    }

    .navbar .nav-link.account-icon {
      background-color: var(--brand-pink);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      transition: background-color 0.15s ease;
    }

    .navbar .nav-link.account-icon i {
      color: black;
      font-size: 1.5rem;
      transition: color 0.15s ease;
    }

    .navbar .nav-link.account-icon:hover {
      background-color: white;
    }

    .navbar-toggler {
      border: none;
      padding: 0.5rem;
      background-color: transparent;
      opacity: 0;
      pointer-events: none;
    }

  /* Mega menu */

    .mega-panel {
      position: absolute;
      top: 100%;
      left: 0;
      width: 100%;
      background: rgba(0, 0, 0, 0.7);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-top: 1px solid rgba(255, 255, 255, 0.07);
      transform-origin: top center;
      transform: scaleY(0);
      opacity: 0;
      pointer-events: none;
      transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.22s ease;
      z-index: 1020;
    }

    .mega-panel.is-open {
      transform: scaleY(1);
      opacity: 1;
      pointer-events: auto;
    }

    .mega-panel-inner {
      display: flex;
      padding: 1.5rem 0 1.5rem;
    }

    .mega-section {
      display: none;
      flex-direction: row;
      gap: 0;
    }

    .mega-section.is-active {
      display: flex;
    }

    .mega-col {
      display: flex;
      flex-direction: column;
      min-width: 180px;
      padding-right: 2rem;
    }

    .mega-col-title {
      font-size: 0.65rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.35);
      text-transform: uppercase;
      letter-spacing: 0.12em;
      margin-bottom: 0.5rem;
    }

    .mega-item {
      color: rgba(255, 255, 255, 0.85);
      font-size: 0.9rem;
      font-weight: 500;
      text-decoration: none;
      padding: 0.25rem 0;
      transition: color 0.15s ease;
    }

    .mega-item:hover {
      color: var(--brand-pink);
    }

    .mega-backdrop {
      position: fixed;
      inset: 0;
      z-index: 1015;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      background: rgba(0, 0, 0, 0.25);
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.22s ease;
    }

    .mega-backdrop.is-visible {
      opacity: 1;
      pointer-events: auto;
    }

    @media (max-width: 991px) {
      .mega-panel,
      .mega-backdrop { display: none !important; }
    }

  /* Mobile nav FAB */

    .mobile-nav-fab {
      position: fixed;
      top: var(--announcement-height, 0px);
      right: var(--container-x-margin, 2rem);
      z-index: 1070;
      height: 56px;
      width: 44px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 5px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 0;
    }

    .mobile-nav-fab__line {
      display: block;
      width: 22px;
      height: 2px;
      background: white;
      border-radius: 1px;
      transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
      transform-origin: center;
    }

    /* The overlay is `inset: 0`, so it covers the announcement bar that the
       FAB is offset below while the menu is closed. Without resetting that
       offset the X keeps it and hangs below the overlay's own 56px topbar
       instead of sitting inside it. Both are 56px tall from the same origin,
       so this also lines the X up with the sub-panels' back button. */
    body.mobile-nav-open .mobile-nav-fab {
      top: 0;
    }

    body.mobile-nav-open .mobile-nav-fab__line:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }
    body.mobile-nav-open .mobile-nav-fab__line:nth-child(2) {
      opacity: 0;
      transform: scaleX(0);
    }
    body.mobile-nav-open .mobile-nav-fab__line:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }

    @media (min-width: 992px) {
      .mobile-nav-overlay,
      .mobile-nav-fab { display: none !important; }
    }

  /* Mobile nav overlay */

    @keyframes mobile-overlay-in {
      0%   { transform: translateY(-100%); animation-timing-function: cubic-bezier(0.3, 0, 0.4, 1); }
      35%  { transform: translateY(1.5%);  animation-timing-function: ease-in-out; }
      52%  { transform: translateY(-1%);   animation-timing-function: ease-in-out; }
      68%  { transform: translateY(0.4%);  animation-timing-function: ease-in-out; }
      82%  { transform: translateY(0%); }
      100% { transform: translateY(0%); }
    }

    .mobile-nav-overlay {
      position: fixed;
      inset: 0;
      z-index: 1060;
      background: var(--dark-grey);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      transform: translateY(-100%);
      visibility: hidden;
      pointer-events: none;
      transition: transform 0.3s ease-in, visibility 0s linear 0.3s;
    }

    .mobile-nav-overlay.is-open {
      visibility: visible;
      pointer-events: auto;
      transition: visibility 0s linear 0s;
      animation: mobile-overlay-in 0.55s forwards;
    }

    .mobile-nav-panel {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      overflow-y: auto;
      transform: translateX(100%);
      z-index: 1;
      pointer-events: none;
      transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .mobile-nav-panel.is-active {
      transform: translateX(0);
      z-index: 2;
      pointer-events: auto;
    }

    .mobile-nav-panel.is-under {
      transform: translateX(-100%);
      z-index: 1;
      pointer-events: none;
      transition: none;
    }

    .mobile-nav-panel.is-entering-back {
      transform: translateX(-25%);
      transition: none;
    }

    .mobile-nav-panel.no-transition {
      transition: none !important;
    }

    .mobile-nav-topbar {
      height: 56px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      padding: 0 var(--container-x-margin, 2rem);
    }

    .mobile-nav-topbar--left {
      justify-content: flex-start;
    }

    .mobile-nav-back {
      background: none;
      border: none;
      color: rgba(255, 255, 255, 0.7);
      font-size: 0.9rem;
      font-weight: 600;
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0;
    }

    .mobile-nav-back:hover {
      color: white;
    }

    .mobile-nav-list {
      list-style: none;
      margin: 0;
      padding: 0 var(--container-x-margin, 2rem);
    }

    .mobile-nav-item {
      border-bottom: 1px solid #1a1a1a;
    }

    .mobile-nav-link {
      display: block;
      width: 100%;
      background: none;
      border: none;
      text-align: left;
      color: white;
      font-size: 1.75rem;
      font-weight: 600;
      font-family: var(--body-font);
      padding: 0.75rem 0;
      text-decoration: none;
      cursor: pointer;
    }

    .mobile-nav-link:hover,
    .mobile-nav-link:focus {
      color: white;
    }

    .mobile-nav-link--sub {
      font-size: 1.4rem;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.85);
    }

    .mobile-nav-link--sub:hover,
    .mobile-nav-link--sub:focus {
      color: rgba(255, 255, 255, 0.85);
    }

    .mobile-nav-link--accent,
    .mobile-nav-link--accent:hover,
    .mobile-nav-link--accent:focus,
    .mobile-nav-link--accent:active {
      color: var(--brand-gold);
    }

    .mobile-nav-link:active,
    .mobile-nav-link--sub:active {
      color: var(--brand-pink);
    }

    .mobile-nav-section-title {
      font-size: 0.7rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.35);
      text-transform: uppercase;
      letter-spacing: 0.12em;
      padding: 1.5rem 0 0.4rem;
      list-style: none;
    }

    .mobile-nav-section-title:first-child {
      padding-top: 0;
    }


  /* Footer */
    .site-footer {
      position: relative;
      z-index: 1; /* keeps the footer above page-level fixed background layers, e.g. the /start dust overlay */
    }

    .footer-block {
      text-align: left;
      display: inline-block;
      max-width: var(--footer-block-max);
    }

    .site-footer .col-lg-6,
    .site-footer .col-lg-3 {
      text-align: center;
    }

    .site-footer h6 {
      margin-bottom: 0.75rem;
      font-size: 1.4rem;
    }

    .footer-logo-wrap {
      position: relative;
      display: inline-flex;
      align-items: center;
    }

    .footer-logo {
      max-height: 50px;
      transition: opacity 0.15s ease;
      filter: brightness(0) invert(1);
    }

    .footer-logo-wrap::after {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--brand-pink);
      opacity: 0;
      transition: opacity 0.15s ease;
      pointer-events: none;
      -webkit-mask-image: url('/assets/images/icons/fedDSP_logo_text_small_WonB.png');
      mask-image: url('/assets/images/icons/fedDSP_logo_text_small_WonB.png');
      -webkit-mask-size: contain;
      mask-size: contain;
      -webkit-mask-repeat: no-repeat;
      mask-repeat: no-repeat;
      -webkit-mask-position: center;
      mask-position: center;
    }

    .footer-logo-wrap:hover .footer-logo,
    .footer-logo-wrap:focus .footer-logo {
      opacity: 0;
    }

    .footer-logo-wrap:hover::after,
    .footer-logo-wrap:focus::after {
      opacity: 1;
    }

    .footer-blurb {
      font-size: 0.8rem;
      line-height: 1.4;
      color: var(--light-grey);
    }

    .footer-socials a {
      display: inline-flex;
      justify-content: center;
      align-items: center;
      width: 50px;
      height: 50px;
      border-radius: 50%;
      background: white;
      color: black;
      font-size: 1.2rem;
      transition: transform 0.15s ease, background 0.15s ease;
    }

    .footer-socials a:hover {
      background: var(--brand-pink);
      color: black;
      transform: scale(1.1);
    }

    .footer-links a {
      color: white;
      font-size: 1.2rem;
      text-decoration: none;
      display: inline-block;
      padding: 0.25rem 0;
    }

    .footer-links a:hover {
      color: var(--brand-pink);
    }

    .footer-link-button {
      appearance: none;
      background: none;
      border: 0;
      color: white;
      display: inline-block;
      font: inherit;
      font-size: 1.2rem;
      padding: 0.25rem 0;
      text-align: left;
      transition: color 0.25s ease;
    }

    .footer-link-button:hover,
    .footer-link-button:focus-visible {
      color: var(--brand-pink);
    }

    #cc-main .cm__btn,
    #cc-main .pm__btn {
      min-height: 38px;
      padding: 0.42em 1em;
    }

    #cc-main .cm__btn + .cm__btn,
    #cc-main .cm__btn-group + .cm__btn-group,
    #cc-main .pm__btn + .pm__btn,
    #cc-main .pm__btn-group + .pm__btn-group {
      margin-left: 0.7rem;
      margin-top: 0.7rem;
    }

    p.footer-bottom {
      font-size: 0.7rem;
      color: var(--light-grey);
    }

/* HOMEPAGE / INDEX */
  [id^="product-showcase-"],
  #samples,
  #irs,
  #about,
  .index-bundle-anchor {
    scroll-margin-top: 50px;
  }
  /* index hero */

    .index-hero-section {
      min-height: min(100vh, 880px);
      overflow: hidden;
      padding-top: 4rem;
      padding-bottom: 0;
    }

    .hero-bg-layer {
      position: absolute;
      inset: 0;
      z-index: 0;
    }

    .hero-bg-video {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .hero-overlay-layer {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(to top, rgba(0,0,0,1) 0%, rgba(0,0,0,0.5) 100%);
    }

    .index-hero-inner {
      position: relative;
      z-index: 2;
      min-height: min(calc(100vh - 4rem), 816px);
      display: flex;
      align-items: center;
      width: 100%;
    }

    .hero-headline {
      line-height: 0.9;
      font-size: clamp(4rem, 9vw, 7rem);
    }

    .hero-sub-subtext {
      opacity: 0.6 !important;
    }

    .hero-subtext,
    .product-showcase-description {
      max-width: 600px;
    }

    .hero-subtext p,
    .product-showcase-description {
      font-size: 1rem;
      opacity: 0.8 !important;
    }

    @media (max-width: 768px) {
      .hero-headline {
        line-height: 1;
      }

      .hero-subtext p,
      .product-showcase-description {
        font-size: 0.8rem;
      }
    }

  /* product showcase */

    .product-showcase-section {
      position: relative;
      min-height: min(70vh, 620px);
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      text-align: center;
      background-color: black; /* Prevents white flashes */
      padding-top: var(--product-section-padding-top, 3rem);
      padding-bottom: var(--product-section-padding-y, 6rem);
    }

    .product-showcase-section .container picture {
      position: relative;
      width: auto;
      height: auto;
      z-index: auto;
    }

    .showcase-bg-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    /* LAYER 2: The Video Wrapper */
    .showcase-video-layer {
      position: absolute;
      inset: 0;
      z-index: 2;
      pointer-events: none;
      background: transparent !important; /* Safety: Force no background color */
    }

    /* Hide PiP button on all background videos */
    video::-webkit-media-controls-picture-in-picture-button {
      display: none !important;
    }

    /* The Video Itself */
    .dust-video {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      mix-blend-mode: screen;
      opacity: 0.8 !important;
    }

    /* LAYER 3: The Gradient Overlay */
    .showcase-overlay-layer {
      position: absolute;
      inset: 0;
      z-index: 3;
      pointer-events: none;
      background: linear-gradient(
        180deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,0) 50%,
        rgba(0,0,0,0) 80%,
        var(--seam-fill) 100%
      );
    }

    /* LAYER 4: Content */
    .product-showcase-section .container {
      position: relative;
      z-index: 4 !important;
    }

    .product-showcase-section .hero-logo-img {
      margin-bottom: 3rem !important;
    }

    /* Whole-strip click target. A plain (non-.btn) link so
       animate-reveal.js's auto-selector doesn't tag it with
       reveal-on-scroll — that class adds `transform`, which would hijack
       the containing block of an absolutely positioned overlay/pseudo
       and shrink it down to the transformed element's own box instead of
       filling .container. Sits above the static text/logo but below the
       LEARN MORE button so the button keeps its own hover/focus state. */
    .product-showcase-link-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
    }

    .product-showcase-actions {
      position: relative;
      z-index: 2;
    }

    .pedal-carousel-section {
      position: relative;
      background: #000;
      overflow: hidden;
      padding-block: 2rem 2.5rem;
    }

    .pedal-swiper {
      position: relative;
      width: 100%;
      overflow: hidden;
      padding: 0 !important;
    }

    .pedal-slide {
      height: auto;
      overflow: hidden;
    }

    .pedal-panel {
      position: relative;
      min-height: 500px;
      overflow: hidden;
      width: 100%;
      background: linear-gradient(135deg, var(--pedal-bg-accent) 0%, var(--pedal-bg) 26%, var(--pedal-bg) 100%);
    }

    .pedal-panel--snapper .pedal-subhead,
    .pedal-panel--snapper .pedal-headline {
      color: rgba(0, 0, 0, 0.88);
    }

    .pedal-panel-inner {
      position: relative;
      z-index: 1;
    }

    .pedal-panel::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.16), transparent 32%),
        radial-gradient(circle at 82% 78%, rgba(0, 0, 0, 0.16), transparent 24%);
      pointer-events: none;
      opacity: 0.9;
    }

    .pedal-visual,
    .pedal-copy {
      position: relative;
      z-index: 2;
    }

    .pedal-visual {
      min-height: 500px;
      display: flex;
      align-items: flex-end;
      justify-content: center;
      padding: 2.2rem 2rem 3.6rem;
    }

    .pedal-visual-link {
      display: block;
      line-height: 0;
      position: relative;
      z-index: 2;
    }

    .pedal-visual-link picture,
    .pedal-media {
      display: block;
      position: relative;
    }

    .pedal-media {
      width: min(100%, 430px);
    }

    .pedal-media::after {
      content: '';
      position: absolute;
      bottom: 4px;
      left: 50%;
      width: 48%;
      height: 22px;
      background: rgba(0, 0, 0, 0.4);
      filter: blur(18px);
      border-radius: 50%;
      transform: translateX(-50%) perspective(120px) rotateX(75deg);
      pointer-events: none;
    }

    .pedal-gif,
    .pedal-still {
      width: min(100%, 430px);
      height: auto;
      display: block;
      filter: drop-shadow(0 28px 40px rgba(0, 0, 0, 0.24));
    }

    .pedal-copy {
      max-width: 430px;
      color: rgba(255, 255, 255, 0.94);
      padding: 2.7rem 1rem 2.7rem 0;
    }

    .pedal-name {
      color: rgba(0, 0, 0, 0.9);
      font-size: clamp(3.4rem, 7vw, 5.8rem);
      line-height: 0.88;
      letter-spacing: 0.02em;
    }

    .pedal-subhead {
      font-size: 0.95rem;
      line-height: 1.45;
      font-weight: 400;
      color: rgba(255, 255, 255, 0.95);
      margin: 0;
      max-width: 24rem;
    }

    .pedal-headline {
      font-size: 1.35rem;
      line-height: 1.12;
      font-weight: 700;
      margin: 0;
      color: rgba(255, 255, 255, 0.95);
      max-width: 20rem;
    }

    .pedal-actions {
      display: flex;
      align-items: center;
      gap: 1rem;
    }

    .pedal-btn {
      background: #050505 !important;
      border: 2px solid #050505 !important;
      color: #fff !important;
      letter-spacing: 0.03em;
    }

    .pedal-btn:hover,
    .pedal-btn:focus-visible {
      background: rgba(255, 255, 255, 0.95) !important;
      border-color: rgba(255, 255, 255, 0.95) !important;
      color: #050505 !important;
      transform: translateY(-2px);
    }

    .pedal-carousel-controls {
      display: none;
    }

    .pedal-carousel-pagination-wrap {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 1.75rem !important;
      z-index: 3;
      display: flex;
      justify-content: center;
      pointer-events: none;
    }

    .pedal-carousel-pagination {
      position: relative !important;
      left: auto !important;
      right: auto !important;
      top: auto !important;
      bottom: auto !important;
      width: auto !important;
      transform: none !important;
      margin-top: 0;
      pointer-events: auto;
    }

    .pedal-carousel-section .swiper-button-prev,
    .pedal-carousel-section .swiper-button-next {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      margin-top: 0;
      color: var(--light-grey);
      transition: color 0.15s ease, transform 0.15s ease;
      width: 30px;
      height: 30px;
      z-index: 3;
    }

    .pedal-carousel-section .swiper-button-prev {
      left: max(1rem, calc(50vw - min(1180px, 100vw) / 2));
    }

    .pedal-carousel-section .swiper-button-next {
      right: max(1rem, calc(50vw - min(1180px, 100vw) / 2));
    }

    .pedal-carousel-section .swiper-button-prev::after,
    .pedal-carousel-section .swiper-button-next::after {
      font-size: 1.5rem;
      font-weight: bold;
    }

    .pedal-carousel-section .swiper-button-prev:hover,
    .pedal-carousel-section .swiper-button-next:hover {
      color: white !important;
      transform: translateY(-50%) scale(1.1);
    }

    @media (max-width: 991.98px) {
      .pedal-carousel-section .swiper-button-prev {
        left: 1rem;
      }

      .pedal-carousel-section .swiper-button-next {
        right: 1rem;
      }
    }

    @media (max-width: 767.98px) {
      .pedal-carousel-section {
        padding-block: 1.75rem 4.75rem;
      }

      .pedal-swiper {
        padding-block: 0.5rem 1.6rem !important;
      }

      .pedal-carousel-pagination-wrap {
        bottom: 5rem !important;
      }

      .pedal-panel {
        min-height: auto;
      }

      .pedal-visual {
        min-height: 300px;
        padding: 2.7rem 1rem 2.9rem;
      }

      .pedal-visual-link,
      .pedal-media {
        display: flex;
        justify-content: center;
      }

      .pedal-gif {
        width: min(100%, 285px);
      }

      .pedal-still {
        width: 150px;
        max-width: 52vw;
        margin-inline: auto;
      }

      .pedal-copy {
        padding: 0 2.5rem 6.8rem;
        max-width: 100%;
        text-align: center;
        margin: 0 auto;
      }

      .pedal-name {
        font-size: clamp(2.8rem, 16vw, 4.1rem);
      }

      .pedal-subhead {
        font-size: 0.88rem;
      }

      .pedal-headline {
        font-size: 1.08rem;
      }

      .pedal-subhead,
      .pedal-headline {
        margin-left: auto;
        margin-right: auto;
      }

      .pedal-actions {
        justify-content: center;
      }

      .pedal-carousel-pagination-wrap {
        left: 0;
        right: 0;
      }
    }

  /* carousels */

    .sample-carousel-section,
    .ir-carousel-section,
    .free-carousel-section {
      min-height: 70vh;
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: center;
      background-color: #000;
      overflow-x: clip;
    }

    .sample-carousel-section h2,
    .ir-carousel-section h2,
    .free-carousel-section h2 {
      font-size: 4rem;
      line-height: 3rem;
    }

    @media (max-width: 991.98px) {
      .sample-carousel-section h2,
      .ir-carousel-section h2,
      .free-carousel-section h2 {
        font-size: 3.5rem;
      }
    }

    @media (max-width: 767.98px) {
      .sample-carousel-section h2,
      .ir-carousel-section h2,
      .free-carousel-section h2 {
        font-size: 3rem;
      }
    }

    .sample-card {
      display: block;
      position: relative;
      width: 100%;
      max-width: 300px;
      margin: 0 auto;
      text-decoration: none;
      transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      transform-origin: center center;
      z-index: 1;
    }

    .sample-card-img-wrap {
      position: relative;
      overflow: hidden;
      border-radius: var(--bs-border-radius-xl);
      aspect-ratio: 1 / 1;
      width: 100%;
    }

    .sample-card-img-wrap-free {
      border: 3px solid rgba(34, 131, 64, 0.6);
    }

    .sample-card-img-wrap img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.6s cubic-bezier(0.2, 1, 0.3, 1);
    }

    .sample-card:hover {
      transform: scale(1.1);
      z-index: 10;
    }

    .index-carousel-description {
      color: var(--light-grey);
      font-size: 0.9rem;
      transition: color 0.15s ease;
    }

    .sample-card:hover .index-carousel-description {
      color: white !important;
    }

    .sample-swiper,
    .ir-swiper,
    .free-swiper {
      width: 100%;
      padding-top: 60px !important;
      padding-bottom: 60px !important;
      overflow: visible !important;
    }

    @media (min-width: 768px) {
        .sample-swiper,
        .ir-swiper,
        .free-swiper {
            padding-left: 40px !important;
            padding-right: 40px !important;
        }

        .free-swiper .swiper-wrapper {
            justify-content: center !important;
        }

        .free-swiper {
            max-width: 1000px;
            margin: 0 auto;
        }
    }

    @media (max-width: 767.98px) {
        .sample-swiper,
        .ir-swiper,
        .free-swiper {
            padding-left: 15px !important;
            padding-right: 15px !important;
        }
    }

    .video-bg-layer {
      position: absolute;
      top: 0; left: 0;
      width: 100%; height: 100%;
      z-index: 0;
    }

    .bg-video {
      width: 100%; height: 100%;
      object-fit: cover;
    }

    .sample-carousel-section .video-overlay {
       background: linear-gradient(
        180deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,0.4) 50%,
        rgba(0,0,0,1) 100%
      );
      z-index: 1;
      opacity: 1;
    }

    .ir-carousel-section .video-overlay {
       background: linear-gradient(
        180deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,0.5) 50%,
        rgba(0,0,0,1) 100%
      );
      z-index: 1;
      opacity: 1;
    }

    .custom-indicators {
      display: flex !important;
      width: fit-content !important;
      background: #222;
      padding: 0.8rem 1.2rem;
      border-radius: 999px;
      align-items: center;
      line-height: 0;
      gap: 10px;
      left: 0 !important;
      right: 0 !important;
      margin-left: auto !important;
      margin-right: auto !important;
    }

    .custom-indicators .swiper-pagination-bullet {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background-color: var(--brand-pink);
      opacity: 0.4;
      margin: 0 !important;
      transition: width 0.15s ease, opacity 0.15s ease, border-radius 0.15s ease;
      flex-shrink: 0;
      display: block;
      transform: translateZ(0);
      -webkit-transform: translateZ(0);
    }

    .custom-indicators .swiper-pagination-bullet-active {
      width: 30px; /* The "Dash" effect */
      border-radius: 5px;
      opacity: 1;
    }

    .sample-swiper .swiper-button-prev,
    .sample-swiper .swiper-button-next,
    .ir-swiper .swiper-button-prev,
    .ir-swiper .swiper-button-next {
      color: var(--light-grey);
      transition: color 0.15s ease, transform 0.15s ease;
      width: 30px;
      height: 30px;
    }

    .sample-swiper .swiper-button-prev::after,
    .sample-swiper .swiper-button-next::after,
    .ir-swiper .swiper-button-prev::after,
    .ir-swiper .swiper-button-next::after {
      font-size: 1.5rem;
      font-weight: bold;
    }

    .sample-swiper .swiper-button-prev:hover,
    .sample-swiper .swiper-button-next:hover,
    .ir-swiper .swiper-button-prev:hover,
    .ir-swiper .swiper-button-next:hover {
      color: white !important;
      transform: scale(1.1);
    }

    @media (max-width: 767.98px) {
      /* Pull arrows out to the screen edge */
      .sample-swiper .swiper-button-prev,
      .ir-swiper .swiper-button-prev {
        left: -20px !important;
      }

      .sample-swiper .swiper-button-next,
      .ir-swiper .swiper-button-next {
        right: -20px !important;
      }
    }

    .swiper-pagination-lock {
      display: none !important;
    }

    .swiper-button-lock {
      display: none !important;
    }

/* START PAGE */

    .start-bg-layer {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background: #000;
    }

    .start-bg-layer .dust-video {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      mix-blend-mode: screen;
      opacity: 0.8 !important;
    }

    .start-bg-overlay {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background-image: url('/assets/images/backgrounds/film_dust_25.webp'), linear-gradient(180deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.6) 100%);
      background-size: cover, cover;
      background-position: center, center;
      background-repeat: no-repeat, no-repeat;
    }

    .start-sticky-header {
      position: sticky;
      top: var(--nav-height, 64px);
      z-index: 900;
      background: rgba(0, 0, 0, 0.7);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      padding-block: 1.5rem 1.25rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .start-headline {
      color: #fff;
      font-size: clamp(2.6rem, 8vw, 4rem);
      margin-bottom: 1rem;
    }

    .start-category-pills {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 0.75rem;
      max-width: 640px;
      margin-inline: auto;
    }

    .start-pill {
      border-radius: 999px;
      padding: 0.5rem 2rem;
      font-size: 0.9rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      text-align: center;
      background: transparent;
      border: 1px solid rgba(255, 255, 255, 0.6);
      color: #fff;
      cursor: pointer;
      transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.25s ease;
    }

    .start-pill.is-active {
      background: var(--brand-pink);
      border-color: var(--brand-pink);
      color: #fff;
    }

    .start-category-section {
      position: relative;
      z-index: 1;
      padding-block: 3rem;
      scroll-margin-top: var(--nav-height, 64px);
    }

    .start-category-title {
      color: var(--brand-pink);
      text-align: center;
      margin-bottom: 2rem;
    }

    .start-slide {
      padding-inline: 2.5rem;
    }

    .start-single-card {
      padding-inline: 2.5rem;
    }

    .start-card {
      display: flex;
      flex-direction: column;
      height: 60vh;
      text-align: center;
      color: #fff;
      border-radius: 1.75rem;
      /* Placeholder warmth until real Instagram-style card photography lands (see appunti rospo item 3) */
      background:rgba(255, 255, 255, 0.06);
      padding: 2.5rem 1.5rem 2rem;
      backdrop-filter: blur(5px);
    }


    .start-card--photo {
      background-size: cover;
      background-position: center;
    }

    .start-card-name {
      font-size: clamp(1.6rem, 4vw, 2.2rem);
      margin-bottom: 0.25rem;
    }

    .start-card-tagline {
      font-size: 0.85rem;
      letter-spacing: 0.04em;
      opacity: 0.85;
      margin-bottom: 1.5rem;
    }

    .start-card-media {
      max-width: 340px;
      height: 160px;
      margin-inline: auto;
      margin-bottom: 1.5rem;
    }

    .start-card-media img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .start-card-desc {
      max-width: 420px;
      margin-inline: auto;
      /*margin-bottom: 1.5rem;*/
      font-size: 0.95rem;
      opacity: 0.85;
      /*display: -webkit-box;*/
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 3;
      line-clamp: 3;
      overflow: hidden;
    }

    .start-card-actions {
      display: flex;
      justify-content: center;
      gap: 0.75rem;
      margin-top: auto;
      padding-top: 1rem;
    }

    .start-swiper {
      --swiper-navigation-sides-offset: 6px;
    }

    .start-swiper .swiper-button-prev,
    .start-swiper .swiper-button-next {
      color: var(--light-grey);
      transition: color 0.15s ease, transform 0.15s ease, background-color 0.15s ease;
      width: 40px;
      height: 40px;
      background: rgba(0, 0, 0, 0.5);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      border-radius: 50%;
    }

    .start-swiper .swiper-button-prev::after,
    .start-swiper .swiper-button-next::after {
      font-size: 1.2rem;
      font-weight: bold;
    }

    .start-swiper .swiper-button-prev:hover,
    .start-swiper .swiper-button-next:hover {
      color: white !important;
      background: rgba(0, 0, 0, 0.7);
      transform: scale(1.1);
    }

    @media (min-width: 1024px) {
      .start-category-section {
        padding-block: 2rem;
      }

      .start-swiper .swiper-slide.start-slide {
        width: 40%;
        padding-inline: 0.75rem;
      }

      .start-single-card {
        width: 40%;
        margin-inline: auto;
        padding-inline: 0.75rem;
      }

      .start-card {
        height: 480px;
      }

      /* .start-swiper spans the full section width, so flush-to-edge nav buttons
         sit right at the viewport boundary and get clipped by overflow-x:clip. */
      .start-swiper .swiper-button-prev {
        left: 2rem;
      }

      .start-swiper .swiper-button-next {
        right: 2rem;
      }
    }

  /* about / team */
    .about-wrapper {
      position: relative;
      background-color: black;
      background-image: url('/assets/images/backgrounds/tech-bg-4.webp');
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      overflow: hidden;
      min-height: 70vh;
    }

    .about-bg-layer {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 0;
      pointer-events: none;
    }

    .about-bg-video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      mix-blend-mode: screen;
      opacity: 0.8;
    }

    .about-gradient-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
      pointer-events: none;

      background: linear-gradient(
        180deg,
        rgba(0,0,0,1) 0%,
        rgba(0,0,0,0) 50%,
        rgba(0, 0, 0, 0) 80%,
        var(--mid-grey) 100%
      );
    }

    .about-section {
      position: relative;
      z-index: 2;
      display: flex;
      align-items: center;
      min-height: 70vh;
    }

    .about-copy {
      max-width: 500px;
    }

    .team-grid {
      display: flex;
      justify-content: flex-end;
    }

    .hex-layout {
      position: relative;
      width: 440px;
      height: 440px;
    }

    .team-member {
      width: 130px;
      height: 130px;
      border-radius: 50%;
      overflow: hidden;
      position: relative;
      cursor: pointer;
    }

    .team-member img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .5s ease;
    }

    .team-member:hover img {
      transform: scale(1.2);
    }

    .team-member .overlay {
      border-radius: 50%;
      background-color: rgba(0, 0, 0, .8);
      opacity: 0;
      padding: .5rem;
      transition: opacity .25s ease;
    }

    .team-member:hover .overlay {
      opacity: 1;
    }

    .hex-layout .team-member { position: absolute; margin: 0; }
    .hex-layout .team-member.center { top: 50%; left: 50%; transform: translate(-50%, -50%); }
    .hex-layout .team-member.ring-1 { top: 8%; left: 50%; transform: translate(-50%, -50%); }
    .hex-layout .team-member.ring-2 { top: 25%; left: 86%; transform: translate(-50%, -50%); }
    .hex-layout .team-member.ring-3 { top: 75%; left: 86%; transform: translate(-50%, -50%); }
    .hex-layout .team-member.ring-4 { top: 92%; left: 50%; transform: translate(-50%, -50%); }
    .hex-layout .team-member.ring-5 { top: 75%; left: 14%; transform: translate(-50%, -50%); }
    .hex-layout .team-member.ring-6 { top: 25%; left: 14%; transform: translate(-50%, -50%); }

    .hex-layout.team-grid--count-5 .team-member.ring-1 { top: 8%; left: 50%; transform: translate(-50%, -50%); }
    .hex-layout.team-grid--count-5 .team-member.ring-2 { top: 34%; left: 88%; transform: translate(-50%, -50%); }
    .hex-layout.team-grid--count-5 .team-member.ring-3 { top: 88%; left: 73%; transform: translate(-50%, -50%); }
    .hex-layout.team-grid--count-5 .team-member.ring-4 { top: 88%; left: 27%; transform: translate(-50%, -50%); }
    .hex-layout.team-grid--count-5 .team-member.ring-5 { top: 34%; left: 12%; transform: translate(-50%, -50%); }

    @media (max-width: 991px) {
        .about-copy {
          max-width: 720px;
          margin-left: auto;
          margin-right: auto;
          text-align: center;
        }

        .team-grid {
          margin-top: 2rem;
        }

        .team-grid.hex-layout {
          margin-left: auto !important;
          margin-right: auto !important;
        }

        .hex-layout {
          width: 100%;
          max-width: 440px;
          height: auto;
          aspect-ratio: 1/1;
          margin-bottom: 80px;
        }
    }

    @media (max-width: 575px) {

      .team-grid {
        margin-left: auto !important;
        margin-right: auto !important;
        width: 100% !important;
        padding: 0 1rem; /* Add a little safety padding */
      }

      .hex-layout {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 25px;
        width: 100%;
        max-width: 100%;
        height: auto !important;
        aspect-ratio: auto;
        margin-bottom: 20px;
      }


      .hex-layout .team-member {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
        margin: 0;
      }
    }

  /* contact form */
    .contact-section {
      background-color: var(--mid-grey);
    }

    .contact-card {
      border-radius: 1.25rem;
    }

    .contact-input {
      background: black;
      color: white;
      border: 1px solid transparent;
      padding: 0.95rem 1.25rem;
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
    }

    .contact-input::placeholder {
      color: var(--brand-pink);
      opacity: 1;
    }

    .contact-input:focus {
      background: black;
      color: white;
      outline: 0;
      box-shadow: 0 0 0 .25rem color-mix(in oklab, var(--brand-pink) 35%, transparent);
      border: 1px solid var(--brand-pink);
    }

    .contact-textarea {
      border-radius: 1.5rem;
      min-height: 150px !important;
    }

/* PRODUCT PAGE */

    .product-page-v2 {
      --product-section-padding-y: 6rem;
      --product-section-heading-gap: 2rem;
    }

    /* sixmonths.liquid is a bespoke page, not rendered through
       layouts/product.liquid, so it never gets the inline
       --hero-gradient-* custom properties that layout normally sets per
       product (see product.liquid's style attribute). Without this,
       .gradient-text resolves to a transparent fill with no background
       image — the "Deals For You" heading renders fully invisible while
       still taking up its layout box. Same default values product.liquid
       falls back to when a product has no custom gradients (true here,
       since everything-bundle doesn't set any either). */
    .product-page--sixmonths {
      --hero-gradient-primary: linear-gradient(135deg, #d366ac 0%, #be1e2d 100%);
    }

    #deals-for-you {
      padding-top: 2rem;
    }

    /* "DISCOVER MORE" CTA in the hero copy column: white pill / black
       text button, jumps to the Deals For You section. */
    .sixmonths-btn-white {
      background-color: #ffffff !important;
      color: #000000 !important;
      border: 2px solid #ffffff !important;
    }

    .sixmonths-btn-white:hover,
    .sixmonths-btn-white:focus-visible {
      background-color: transparent !important;
      color: #ffffff !important;
      border-color: #ffffff !important;
    }

    .product-page--sixmonths .hero-bundle-cta-row {
      justify-content: center;
    }

    .product-page--everything-bundle .testimonials-section--carousel,
    .product-page--sixmonths .testimonials-section--carousel {
      background-color: #e9ecef;
      padding-top: 1rem;
      padding-bottom: 1rem;
      z-index: 1;
    }

    /* Everything Bundle: the page stacks many sections (testimonials,
       collage, 18 What's Included rows, FAQ), so the standard 6rem
       section padding compounds into a lot of dead space on short mobile
       viewports. Tighten it there only — scoped to this page. */
    @media (max-width: 767px) {
      .product-page--everything-bundle {
        --product-section-padding-y: 2.5rem;
      }

      .product-page--everything-bundle .bundle-included-rows {
        gap: 2.5rem;
      }

      /* sixmonths: same fix as above, same reason (stacked sections +
         16 Deals For You rows compound the standard 6rem into a lot of
         dead space on short mobile viewports). */
      .product-page--sixmonths {
        --product-section-padding-y: 2.5rem;
      }

      .product-page--sixmonths .bundle-included-rows {
        gap: 2.5rem;
      }
    }

    .product-section {
      padding-block: var(--product-section-padding-y);
    }

    .amp-section-title,
    .features-section h2,
    .product-section h2 {
      font-size: 7rem;
    }

    .product-page--amp :where(.amp-section, .features-section, .product-section) h2 {
      color: var(--amp-accent-color, var(--hero-gradient-end));
      background: none;
      -webkit-text-fill-color: currentColor;
    }

  /* Hero */

    .product-badge {
      font-size: 1rem;
      color: var(--light-grey);
    }

    .product-release-badge {
      color: white;
      font-size: 1rem;
      font-weight: 400;
      line-height: 1.45;
    }

    .product-hero-meta {
      margin-top: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.65rem;
    }

    .product-hero-meta-line {
      font-size: 0.925rem;
      font-weight: 400;
      line-height: 1.45;
    }


    .product-hero-subtext .hero-subtext-group {
      display: inline-flex;
      align-items: center;
      gap: 0.4em;
      font-weight: 700;
    }

    .product-hero-subtext .hero-subtext-group + .hero-subtext-group {
      margin-left: 2rem;
    }

    .product-hero-subtext .hero-subtext-platform-icon {
      font-size: 1.5rem;
    }

    .product-hero-subtext .hero-subtext-platform {
      color: white;
    }

    .product-hero-subtext .hero-subtext-platform-link {
      color: white;
      text-decoration: none;
      transition: color 150ms ease;
    }

    .product-hero-subtext .hero-subtext-platform-link:hover {
      color: var(--brand-pink);
    }

    .product-promo-message {
      color: white;
    }

    .product-price {
      color: white;
      font-size: 1.7rem;
      font-weight: 400;
    }

    .product-price-amount {
      font-weight: 700;
    }

    .founders-price-link {
      color: var(--brand-gold) !important;
      text-decoration: none;
      transition: color 150ms ease;
    }

    .founders-price-link:hover,
    .founders-price-link:focus-visible {
      color: #fff;
    }

    .hero-v2 .product-promo-message a {
      color: var(--brand-gold);
      font-weight: 600;
      text-decoration: none;
      transition: color 150ms ease;
    }

    .hero-v2 .product-promo-message a:hover,
    .hero-v2 .product-promo-message a:active {
      color: white;
    }

    .hero-v2 {
      background-color: var(--dark-grey);
      color: white;
      padding: 3rem 9rem;
      overflow: hidden;
      position: relative;
      min-height: 90vh;
    }

    .hero-v2 h2, .hero-sub-head {
      max-width: 600px;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }

    .hero-v2 h2 {
      font-size: 1.95rem;
      font-weight: 600;
      line-height: 2.45rem;
    }

    .hero-v2 h2.font-body {
      letter-spacing: 0;
    }

    .hero-sub-head {
      font-weight: 400;
      font-size: 1rem;
      opacity: 0.9;
    }

    .hero-v2 video {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
      opacity: 0.3;
      background-color: var(--dark-grey);
    }

    .video-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(180deg, rgba(0,0,0,0.16) 0%, rgba(0,0,0,0.78) 100%);
      z-index: 1;
      pointer-events: none;
    }

    .hero-grain-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-size: cover;
      background-position: center;
      mix-blend-mode: overlay;
      opacity: 0.5;
      z-index: 1;
      pointer-events: none;
    }

    .hero-gradient-bg {
      background: radial-gradient(circle at center, #424242 0%, #111111 100%) !important;
    }

    .hero-gradient-bg .video-overlay {
      background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 90%);
    }

    /* Everything Bundle hero: two-column layout (visual left, copy right),
       distinct from the centered/stacked .hero-v2 used by every other
       product type. .hero-bundle-bg is a flat placeholder until a real
       background photo is supplied — swap its background-image in then. */
    .hero-v2--bundle {
      min-height: auto;
      padding: 6rem 4rem;
    }

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

    .hero-bundle-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 100%);
      z-index: 1;
      pointer-events: none;
    }

    /* sixmonths hero background: brand-pink field with the campaign
       logo scrolling behind the copy, very slow so it reads as ambient
       texture rather than a ticker. Two identical tracks back to back,
       animated exactly one track-width so the loop is seamless. */
    .product-page--sixmonths .hero-bundle-bg {
      background-color: #e064ac;
      overflow: hidden;
    }

    .sixmonths-bg-marquee {
      position: absolute;
      top: 50%;
      left: 0;
      display: flex;
      align-items: center;
      transform: translateY(-50%);
      animation: sixmonths-bg-scroll 390s linear infinite;
      will-change: transform;
    }

    .sixmonths-bg-track {
      display: flex;
      align-items: center;
      flex-shrink: 0;
    }

    .sixmonths-bg-track img {
      height: 100rem;
      width: auto;
      margin-right: 5rem;
      opacity: 0.7;
    }

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

    @media (prefers-reduced-motion: reduce) {
      .sixmonths-bg-marquee {
        animation: none;
      }
    }

    .hero-bundle-visual-placeholder {
      width: 100%;
      aspect-ratio: 4 / 3;
      background-color: #c0392b;
      border-radius: 1rem;
    }

    .hero-bundle-visual {
      width: 100%;
      border-radius: 1rem;
      transition: 0.15s ease-in-out;
    }

    .hero-bundle-visual:hover {
      transform: scale(1.02); }

     .hero-bundle-title {
      font-size: 5rem;
      margin-bottom: 0;
    }

    .hero-bundle-save-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      align-self: center;
      background: red;
      color: #ffffff;
      font-weight: 800;
      font-size: 0.95rem;
      text-transform: uppercase;
      text-decoration: none;
      white-space: nowrap;
      padding: 0.5rem 1rem;
      border-radius: 999px;
      transform: translateY(-10px) rotate(-6deg);
      transition: transform 0.15s ease-in-out;
    }

    .hero-bundle-save-badge:hover {
      color: #ffffff;
      transform: translateY(-10px) rotate(-6deg) scale(1.02);
    }

    .hero-bundle-sub {
      font-size: 1.05rem;
      opacity: 0.85;
      max-width: 480px;
    }

    .hero-bundle-bullets {
      font-size: 1.05rem;
      opacity: 0.85;
    }

    .hero-bundle-bullets li {
      margin-bottom: 0.5rem;
    }

    .hero-bundle-price-original {
      opacity: 0.5;
      font-size: 1.1rem;
    }

    .hero-bundle-price-current {
      font-size: 1.4rem;
      font-weight: 600;
    }

    @media (max-width: 991px) {
      .hero-v2--bundle {
        padding: 3rem 1.5rem;
      }

      .hero-bundle-title {
        font-size: 2.1rem;
      }

      /* Everything Bundle + sixmonths hero: center title and CTA row,
         and let the save-badge (everything-bundle only) drop under the
         title, also centered. Desktop layout is untouched. */
      .hero-bundle-title-row {
        flex-direction: column;
        align-items: center;
        text-align: center;
      }

      .hero-bundle-cta-row {
        justify-content: center;
      }
    }

    /* Everything Bundle: full-bleed product collage, placeholder until the
       real photo composite is supplied. */
    .bundle-collage-section {
      padding-block: 0;
      background-color: #f6f6f6;
      background-image: url('/assets/images/backgrounds/fedZEP-amps-grain-seamless.webp');
      background-repeat: repeat;
      background-size: auto;
      height: 36rem;
      overflow: hidden;
      background-position-y: -1rem;
    }


    .bundle-collage-placeholder {
      width: 100%;
      aspect-ratio: 21 / 9;
      background-color: #c0392b;
    }

    @media (max-width: 767px) {
      .bundle-collage-placeholder {
        aspect-ratio: 4 / 3;
      }

      .bundle-collage-section {
        height: auto;
      }
    }

    /* Everything Bundle: "What's Included" alternating product rows. */
    #whats-included {
      scroll-margin-top: var(--nav-height, 64px);
    }

    .product-page--everything-bundle #whats-included {
      padding-top: 2.25rem;
    }

    .bundle-included-rows {
      max-width: 1100px;
      margin-inline: auto;
      display: flex;
      flex-direction: column;
      gap: 4rem;
    }

    .bundle-included-row--reverse {
      flex-direction: row-reverse;
    }

    .bundle-included-row-image {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      min-height: 14rem;
    }

    /* Pedal shots are tall and narrow (unlike the wide plugin/amp cutouts),
       so left-aligning them leaves a lot of empty column space — center
       them instead. */
    .bundle-included-row-image--pedal {
      justify-content: center;
    }

    /* Source assets vary wildly in aspect ratio (wide plugin cutouts vs tall
       pedal/amp product shots), so cap the render height uniformly here. */
    .bundle-included-row-image img {
      max-height: 20rem;
      width: auto;
      transition: transform 0.25s ease;
    }

    .bundle-included-row-image:hover img {
      transform: scale(1.05);
    }

    /* Some product logos (eg. KONVIKT) are white-filled SVGs meant for dark
       backgrounds elsewhere on the site; this section sits on white, so
       force them black here only. */
    .bundle-included-row-image img[src$=".svg"] {
      filter: brightness(0) saturate(100%);
    }

    .bundle-included-row-copy {
      max-width: 480px;
    }

    .bundle-included-row-eyebrow {
      font-weight: 700;
      font-size: 0.85rem;
      letter-spacing: 0.04em;
      opacity: 0.6;
      margin-bottom: 0.5rem;
    }

    .bundle-included-row-name {
      font-weight: 700;
      margin-bottom: 1rem;
    }

    .bundle-included-row-name a,
    .bundle-included-row-image {
      color: inherit;
      text-decoration: none;
    }

    .bundle-included-row-name a {
      transition: color 250ms ease;
    }

    .bundle-included-row-name a:hover {
      color: var(--brand-pink);
    }

    .bundle-included-row-desc {
      margin-bottom: 1.5rem;
      opacity: 0.85;
    }

    .product-page--everything-bundle .bundle-included-row-cta:hover {
      background-color: var(--brand-pink);
      border-color: var(--brand-pink);
      color: #ffffff;
    }

    .deals-row-price {
      font-size: 1.7rem;
      font-weight: 600;
    }

    .product-page--sixmonths #deals-for-you .deals-row-price,
    .product-page--sixmonths #deals-for-you .deals-row-actions {
      justify-content: center;
    }

    .product-page--sixmonths #deals-for-you .bundle-included-row-desc {
      margin-bottom: 0.5rem;
    }

    .product-page--sixmonths #deals-for-you .deals-row-price {
      margin-top: 0 !important;
    }

    .product-page--sixmonths #deals-for-you .deals-row-actions .btn-outline-white {
      background-color: transparent !important;
      border-color: #161616 !important;
      color: #161616 !important;
    }

    .product-page--sixmonths #deals-for-you .deals-row-actions .btn-outline-white:hover,
    .product-page--sixmonths #deals-for-you .deals-row-actions .btn-outline-white:focus-visible {
      background-color: #161616 !important;
      border-color: #161616 !important;
      color: #ffffff !important;
    }

    .product-page--everything-bundle #whats-included,
    .product-page--sixmonths #deals-for-you {
      position: relative;
      isolation: isolate;
    }

    .product-page--everything-bundle #whats-included > .container,
    .product-page--sixmonths #deals-for-you > .container {
      position: relative;
      z-index: 1;
    }

    .product-page--everything-bundle #whats-included .bundle-included-row-name a:hover,
    .product-page--sixmonths #deals-for-you .bundle-included-row-name a:hover {
      color: var(--brand-pink);
    }

    .product-page--everything-bundle #whats-included > .container,
    .product-page--sixmonths #deals-for-you > .container,
    .product-page--everything-bundle #whats-included .bundle-included-rows,
    .product-page--sixmonths #deals-for-you .bundle-included-rows {
      max-width: 1320px;
    }

    .product-page--everything-bundle #whats-included .bundle-included-rows,
    .product-page--sixmonths #deals-for-you .bundle-included-rows {
      gap: 3rem;
    }

    @media (min-width: 992px) {
      .product-page--everything-bundle #whats-included .bundle-included-row--phaturator .bundle-included-row-image,
      .product-page--everything-bundle #whats-included .bundle-included-row--morso .bundle-included-row-image,
      .product-page--everything-bundle #whats-included .bundle-included-row--shi .bundle-included-row-image,
      .product-page--everything-bundle #whats-included .bundle-included-row--samples .bundle-included-row-image,
      .product-page--sixmonths #deals-for-you .bundle-included-row--phaturator .bundle-included-row-image,
      .product-page--sixmonths #deals-for-you .bundle-included-row--morso .bundle-included-row-image,
      .product-page--sixmonths #deals-for-you .bundle-included-row--shi .bundle-included-row-image {
        justify-content: flex-end;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row--elegante .bundle-included-row-image,
      .product-page--everything-bundle #whats-included .bundle-included-row--snapper .bundle-included-row-image,
      .product-page--sixmonths #deals-for-you .bundle-included-row--elegante .bundle-included-row-image,
      .product-page--sixmonths #deals-for-you .bundle-included-row--snapper .bundle-included-row-image {
        justify-content: flex-start;
      }
    }

    .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-eyebrow,
    .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-name,
    .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-eyebrow,
    .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-name {
      text-align: center;
    }

    .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-eyebrow,
    .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-eyebrow {
      font-size: 1rem;
      color: var(--brand-pink) !important;
      opacity: 1;
    }

    .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-name,
    .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-name {
      font-size: 3.75rem;
    }

    .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-desc,
    .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-desc {
      font-size: 16px;
      text-align: center;
    }

    @media (min-width: 992px) {
      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]),
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) {
        --bs-gutter-x: 0;
        display: grid;
        grid-template-columns: minmax(0, 640px) minmax(0, 640px);
        column-gap: 40px;
        align-items: center;
        margin-inline: 0;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) > .col-lg-6,
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) > .col-lg-6 {
        width: auto;
        max-width: none;
        padding-inline: 0;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-copy,
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) .bundle-included-row-copy {
        width: min(100%, 640px);
        max-width: none;
        aspect-ratio: 16 / 9;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-copy,
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-copy {
        align-items: flex-start;
        text-align: left;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-copy,
      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-copy {
        align-items: flex-end;
        text-align: right;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-eyebrow,
      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-name,
      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-desc,
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-eyebrow,
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-name,
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .bundle-included-row-desc {
        text-align: left;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-eyebrow,
      .product-page--everything-bundle #whats-included .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-name,
      .product-page--everything-bundle #whats-included .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-desc,
      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-eyebrow,
      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-name,
      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .bundle-included-row-desc {
        text-align: right;
      }

      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .deals-row-price,
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]):not(.bundle-included-row--reverse) .deals-row-actions {
        justify-content: flex-start;
      }

      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .deals-row-price,
      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) .deals-row-actions {
        justify-content: flex-end;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row--reverse:has(.bundle-included-row-image[href]) > .col-lg-6:first-child,
      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) > .col-lg-6:first-child {
        grid-column: 2;
        grid-row: 1;
      }

      .product-page--everything-bundle #whats-included .bundle-included-row--reverse:has(.bundle-included-row-image[href]) > .col-lg-6:nth-child(2),
      .product-page--sixmonths #deals-for-you .bundle-included-row--reverse:has(.bundle-included-row-image[href]) > .col-lg-6:nth-child(2) {
        grid-column: 1;
        grid-row: 1;
      }
    }

    @media (max-width: 991px) {
      .bundle-included-row,
      .bundle-included-row--reverse {
        flex-direction: column;
        text-align: center;
        padding-bottom: 2rem;
      }

      .bundle-included-row-copy {
        max-width: none;
        margin-inline: auto;
      }

      .bundle-included-row-image {
        justify-content: center;
      }

      /* Deals For You (sixmonths page only): thin divider between rows
         once they stack in a single column, so products stay visually
         separated without the desktop side-by-side layout to do it. */
      #deals-for-you .bundle-included-row:not(:first-child) {
        border-top: 1px solid #323232;
        padding-top: 0;
      }

      /* Price and BUY/TRY/LEARN MORE rows are flex containers, so the
         column's text-align: center above doesn't center them — center
         explicitly here. */
      #deals-for-you .deals-row-price,
      #deals-for-you .deals-row-actions {
        justify-content: center;
      }

    }

    @media (max-width: 767px) {
      .product-page--everything-bundle #whats-included .bundle-included-row:has(.bundle-included-row-image[href]) + .bundle-included-row:has(.bundle-included-row-image[href]),
      .product-page--sixmonths #deals-for-you .bundle-included-row:has(.bundle-included-row-image[href]) + .bundle-included-row:has(.bundle-included-row-image[href]) {
        border-top: 1px solid #161616;
        padding-top: 0;
      }
    }

    @media (max-width: 1199px) {
      .hero-v2 {
        padding: 3rem 6rem;
      }
    }

    @media (max-width: 991px) {
      .hero-v2 {
        padding: 3rem 3rem;
      }
    }

    @media (max-width: 767px) {
      .hero-v2 {
        min-height: 60vh !important;
        padding: 2rem 1rem;
      }

      .hero-v2 h2 {
        font-size: 1.8rem;
        line-height: 2.1rem;
      }

      .hero-v2 video {
        object-position: 30% top;
      }

      .hero-thin {
        font-size: 0.9rem;
      }

      .dust-video,
      .about-bg-video,
      .audio-player-video-overlay {
        mix-blend-mode: normal !important;
        filter: none !important;
      }

      .dust-video {
        opacity: 0.35 !important;
      }

      .about-bg-video {
        opacity: 0.45;
      }

      .audio-player-video-overlay {
        opacity: 0.4;
      }
    }

    .hero-logo-img {
      max-width: 82%;
      width: 760px;
      max-height: 190px;
      height: auto;
      object-fit: contain;
    }

    @media (max-width: 767.98px) {
      .hero-logo-img {
        max-width: 84%;
        width: 520px;
        max-height: 160px;
      }
    }

    .hero-title-fallback {
      font-size: 8rem;
      line-height: 0.95;
      background: linear-gradient(90deg, var(--hero-gradient-start), var(--hero-gradient-end));
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .hero-product-container {
      max-width: 550px;
      margin: 0 auto;
    }

    .hero-product-container--amp {
      max-width: 1180px;
    }

    .hero-scroll-trigger {
      cursor: pointer;
      transition: transform 0.2s ease;
    }

    button.hero-scroll-trigger {
      background: none;
      border: none;
      padding: 0;
      display: block;
      width: fit-content;
      margin-inline: auto;
    }

    .hero-scroll-trigger:hover,
    .hero-scroll-trigger:focus-visible {
      transform: scale(1.015);
    }

    .hero-scroll-trigger:focus-visible {
      outline: 2px solid var(--brand-pink, #d368ac);
      outline-offset: 6px;
    }

        .hero-amp-pair-image {
          width: min(100%, 520px);
          height: auto;
          margin-inline: auto;
        }

        .hero-v2--amp .hero-logo-img {
          width: min(100%, 600px);
        }

        #product-showcase-fedzep .hero-logo-img {
          width: auto;
          max-height: 150px;
        }

        #product-showcase-phaturator .hero-logo-img {
          max-width: 700px;
        }

        #product-showcase-konvikt .hero-logo-img {
          max-height: 150px;
        }

        @media screen and (max-width: 700px) {

                #product-showcase-phaturator .hero-logo-img {
                max-width: 333px;
          }
        }

    .amp-section {
      position: relative;
      padding-block: var(--product-section-padding-y) 0;
      background-color: var(--amp-bg-color, #d1cdc9);
      background-image: var(--amp-bg-image);
      background-size: cover;
      background-position: center;
      color: var(--amp-text-color, #231f20);
    }

    .amp-section::before {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--amp-bg-overlay, transparent);
      pointer-events: none;
      z-index: 0;
    }

    .amp-pedals-rack-wrapper {
      position: relative;
      background-color: var(--amp-rack-bg-color, #d1cdc9);
      color: var(--amp-rack-text-color, #231f20);
    }

    .amp-pedals-rack-wrapper::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: var(--amp-rack-bg-image, none);
      background-size: var(--amp-rack-bg-size, cover);
      background-position: var(--amp-rack-bg-position, center);
      background-repeat: no-repeat;
      opacity: var(--amp-rack-bg-opacity, 0);
      z-index: 0;
      pointer-events: none;
    }

    @media (max-width: 767px) {
      .amp-pedals-rack-wrapper::before {
        background-size: var(--amp-rack-bg-mobile-size, var(--amp-rack-bg-size, cover));
        opacity: var(--amp-rack-bg-mobile-opacity, var(--amp-rack-bg-opacity, 0));
      }
    }

    .amp-pedals-rack-wrapper .pedals-section,
    .amp-pedals-rack-wrapper .fx-section,
    .amp-pedals-rack-wrapper .cabs-section {
      background: transparent;
    }

    .amp-section-inner {
      position: relative;
      z-index: 1;
      padding-bottom: var(--product-section-padding-y);
        }

        .amp-section-image-wrap {
          display: flex;
          justify-content: center;
          margin-bottom: clamp(2.5rem, 7vh, 4.75rem);
        }

        .amp-section-image-wrap picture {
          width: 100%;
          display: flex;
          justify-content: center;
        }

        .amp-section-image {
          width: min(100%, 940px);
          height: auto;
          margin-inline: auto;
          filter: drop-shadow(0 16px 32px rgba(0, 0, 0, 0.25));
        }

        .amp-section-title {
          color: var(--amp-heading-color, var(--amp-text-color, #231f20));
          line-height: 0.95;
          text-transform: uppercase;
          margin-inline: auto;
          max-width: 1200px;
        }

        .amp-section-intro {
          max-width: 1040px;
          margin: 0 auto clamp(2rem, 7vh, 4.75rem);
        }

        .amp-section-intro p {
          color: var(--amp-text-color, #231f20);
          font-size: 0.95rem;
          line-height: 1.85;
          margin-bottom: 1.45rem;
        }

        .amp-section-columns {
          max-width: 1220px;
          margin: 0 auto;
          padding-left: 10px ;
        }

        .amp-below-columns-text {
          max-width: var(--amp-below-copy-max-width, 800px);
          margin: var(--amp-below-copy-margin-top, 2rem) auto 0;
          text-align: var(--amp-below-copy-align, center);
          color: var(--amp-text-color, #231f20);
          font-size: 1rem;
        }

        @media (max-width: 767px) {
          .amp-below-columns-text {
            max-width: 95%;
            text-align: center;
          }
        }

        .amp-section-col-title {
          color: var(--amp-text-color, #231f20);
          font-size: 2.5rem;
          line-height: 0.95;
          text-transform: uppercase;
          margin-bottom: 1.3rem;
        }

        .amp-section-columns p {
          color: var(--amp-text-color, #231f20);
          font-size: 0.95rem;
          line-height: 1.85;
          margin-bottom: 1.35rem;
        }

        .amp-section-bottom-strip {
          width: 100%;
          background-color: #000;
          margin-top: clamp(0.5rem, 1.5vh, 1rem);
          margin-bottom: -2px;
          line-height: 0;
          position: relative;
          z-index: 1;
        }

        .amp-section-bottom-strip img {
          display: block;
          width: 100%;
          height: auto;
        }

    @media (min-width: 768px) {
      .amp-section-bottom-strip {
        height: 100px;
            background-image: var(--amp-strip-image);
            background-repeat: repeat-x;
            background-position: center bottom;
            background-size: auto 100px;
          }
      .amp-section-bottom-strip img {
        display: none;
      }

          .amp-section-image-wrap {
            margin-top: clamp(1rem, 2.5vh, 1.75rem);
            margin-bottom: clamp(3rem, 8vh, 5.5rem);
          }

        }

        @media (max-width: 767px) {
          .amp-section-intro p,
          .amp-section-columns p {
            text-align: center;
          }
        }

        @media (max-width: 991.98px) {
          .amp-section-columns p br + br {
            display: none;
          }
        }
        .pedals-section--amp {
          background-color: var(--amp-rack-bg-color, #d1cdc9);
          color: var(--amp-rack-text-color, #231f20);
        }

        .pedals-section--amp .pedals-section-inner {
          position: relative;
          z-index: 1;
        }

        .pedals-section-title {
          color: var(--amp-rack-text-color, #231f20);
          font-size: clamp(2.2rem, 5vw, 4.6rem);
          line-height: 0.95;
          margin: 0 auto clamp(2rem, 5.5vh, 4rem);
        }

        .pedals-section-grid {
          max-width: none;
          margin: 0 auto;
          align-items: start;
        }

        .pedals-section-item {
          --pedal-content-width: 100%;
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: flex-start;
          text-align: center;
          height: 100%;
        }

        .pedals-section-image-wrap {
          display: flex;
          justify-content: center;
          width: var(--pedal-content-width);
          padding-inline: 0.5rem;
          margin: 0 auto 1rem;
        }

        .pedals-section-item picture {
          width: 100%;
          display: flex;
          justify-content: center;
        }

        .pedals-section-image {
          width: 100%;
          height: auto;
          margin-inline: auto;
        }

        .pedals-section-item-title {
          color: var(--amp-rack-text-color, #231f20);
          line-height: 0.9;
          margin: 0 0 0.8rem;
          letter-spacing: 0.01em;
          width: var(--pedal-content-width);
        }

        .pedals-section-item-text {
          color: var(--amp-rack-text-color, #231f20);
          font-size: 0.95rem;
          line-height: 1.35;
          width: var(--pedal-content-width);
          max-width: none;
          margin-inline: auto;
        }

    @media (min-width: 1200px) {
      .pedals-section-grid {
        --bs-gutter-x: 6rem;
      }
    }

    @media (max-width: 991.98px) {
      .pedals-section-item {
        --pedal-content-width: 52%;
      }

      .pedals-section-image-wrap {
        max-width: 300px;
      }
    }

    @media (max-width: 575.98px) {
      .pedals-section-item {
        --pedal-content-width: 72%;
      }
    }

    .fx-section--amp {
      background-color: var(--amp-rack-bg-color, #d1cdc9);
      background-image: url('/assets/images/backgrounds/fedZep Page Assets RACK GRAIN BG SMALLEST.webp');
      background-size: cover;
      background-position: center;
      color: var(--amp-rack-text-color, #231f20);
    }

    .cabs-section--amp {
      background-color: var(--amp-rack-bg-color, #d1cdc9);
      color: var(--amp-rack-text-color, #231f20);
    }

    .amp-pedals-rack-wrapper .pedals-section--amp,
    .amp-pedals-rack-wrapper .fx-section--amp,
    .amp-pedals-rack-wrapper .cabs-section--amp {
      background-color: transparent;
      background-image: none;
    }

    .cabs-section--amp .cabs-section-inner {
      padding-bottom: 0;
    }

    .fx-section-title,
    .cabs-section-title {
      color: var(--amp-rack-text-color, #231f20);
      line-height: 0.95;
      margin-inline: auto;
    }

    .cabs-section-title {
      padding: 0;
    }

    .fx-module,
    .cabs-module {
      max-width: 980px;
      margin: 0 auto clamp(2.75rem, 6.5vh, 5rem);
    }

    .fx-module:last-child {
      margin-bottom: 0;
    }

    .cabs-section--amp .cabs-module:last-child {
      margin-bottom: clamp(1.25rem, 3vh, 2rem);
    }

    .fx-module-image-wrap,
    .cabs-module-image-wrap {
      display: flex;
      justify-content: center;
      margin-bottom: clamp(1.1rem, 3.2vh, 1.9rem);
    }

    .fx-module-image-wrap picture,
    .cabs-module-image-wrap picture {
      width: 100%;
      display: flex;
      justify-content: center;
    }

    .fx-module-image,
    .cabs-module-image {
      width: 100%;
      height: auto;
      margin-inline: auto;
    }

    .fx-module-copy,
    .cabs-module-copy {
      width: 100%;
      max-width: 980px;
      margin-inline: auto;
    }

    .fx-module-copy p,
    .cabs-module-copy p {
      color: var(--amp-rack-text-color, #231f20);
      font-size: 0.95rem;
      line-height: 1.5;
      margin-bottom: 0;
    }


    @media (max-width: 767px) {
      .amp-section,
      .fx-section--amp {
        background-size: 520px auto;
      }
      .pedals-section-item-text,
      .fx-module-copy p,
      .cabs-module-copy p {
        text-align: center;
      }
    }

    .hero-plugin-plain {
      display: block;
      width: 100%;
      height: auto;
      filter: drop-shadow(0 20px 40px rgba(0,0,0,0.45));
      max-height: 500px;
      object-fit: contain;
    }

    @media (max-width: 768px) {
      .hero-plugin-plain {
        max-height: 300px;
      }
    }

    .hero-box-art {
      max-height: 400px;
      width: auto;
      max-width: 100%;
      filter: drop-shadow(0 20px 40px rgba(0,0,0,0.6));
      border-radius: 2rem;
    }

    @media (max-width: 768px) {
      .hero-box-art {
        max-height: 300px;
      }
    }

    .pink-price {
      color: var(--brand-pink) !important;
    }

    .hero-v2 a {
      color: inherit;
    }

    .hero-v2 a:active,
    .hero-v2 a:hover {
      color: white;
    }

  /* Overview */

    .product-overview-single-title {
      display: block;
      width: fit-content;
      max-width: 100%;
      margin-inline: auto;
      text-align: center;
      font-size: clamp(2.4rem, 4.2vw, 5rem);
    }

    .product-overview-single-copy {
      max-width: 1040px;
      margin: 0 auto;
    }

    .product-overview-single-item + .product-overview-single-item {
      margin-top: clamp(2rem, 6vh, 3.75rem);
    }

    .product-overview-single-heading {
      font-family: var(--font-body);
      font-size: 1.4rem;
      line-height: 1.9rem;
      font-weight: 700;
      margin-bottom: 1.4rem;
      color: inherit;
    }

    .product-overview-single-copy p {
      color: inherit;
      font-size: 1rem;
      line-height: 1.6;
      margin-bottom: 1.5rem;
    }

    .product-overview-single-copy p:last-child {
      margin-bottom: 0;
    }

    /* --- Mobile See More --- */
    .overview-seemore-btn {
      display: none;
      background: transparent;
      border: none;
      padding: 0.5rem 1rem;
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 0.85rem;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      cursor: pointer;
      text-decoration: underline;
      color: inherit;
    }

    @media (max-width: 767.98px) {
      .product-overview.is-collapsible {
        max-height: 80vh;
        overflow: hidden;
        position: relative;
      }
      .product-overview.is-collapsible::after {
        content: '';
        position: absolute;
        bottom: 0; left: 0; right: 0;
        height: 6rem;
        pointer-events: none;
      }
      .product-overview.is-collapsible.bg-black::after {
        background: linear-gradient(to bottom, transparent, #000);
      }
      .product-overview.is-collapsible.bg-white::after {
        background: linear-gradient(to bottom, transparent, #fff);
      }
      .product-overview.is-collapsible.is-expanded {
        max-height: none;
        overflow: visible;
      }
      .product-overview.is-collapsible.is-expanded::after {
        display: none;
      }
    }

    /* --- Layout A: Plugin (Accordion/Grid) --- */

      @media (min-width: 992px) {
        /* Force expand content on desktop */
        .mobile-collapse-body.collapse {
          display: block !important;
          height: auto !important;
          visibility: visible !important;
          opacity: 1 !important;
        }

        /* Disable click interaction on desktop headers */
        .feature-toggle-header {
          pointer-events: none;
          cursor: default;
        }
      }

      @media (max-width: 991px) {
        /* Mobile toggle behavior */
        .feature-toggle-header {
          cursor: pointer;
          position: relative;
        }

        .feature-toggle-header:active {
          opacity: 0.7;
        }

        /* Hide preview text when expanded */
        .feature-toggle-header[aria-expanded="true"] + .mobile-preview {
          display: none !important;
        }

        .mobile-preview {
          cursor: pointer;
          transition: opacity 0.15s ease;
        }
      }

      /* --- Layout B: Editorial (Samples & IRs) --- */

        .overview-editorial-title {
          font-family: var(--font-body);
          font-size: 1.4rem;
          line-height: 1.9rem;
          font-weight: 700;
          margin-bottom: 1.4rem;
        }

        .overview-text-columns {
          column-count: 1;
          column-gap: 4rem;
          font-size: 0.9rem;
          line-height: 1.5;
          color: var(--dark-grey);
        }

        .overview-text-columns p {
          break-inside: avoid;
          margin-bottom: 1.4rem;
        }

        @media (min-width: 992px) {
          .overview-text-columns {
            column-count: 2;
          }
        }

  /* Features */

    .features-section {
      background-color: var(--grey-bg);
      --features-viewport-padding-y: var(--product-section-padding-y);
      --features-card-media-gap: clamp(2rem, 4vh, 3rem);
      height: auto;
      position: relative;
    }

    .features-sticky-viewport {
      position: sticky;
      top: 0;
      width: 100%;
      height: auto;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      box-sizing: border-box;
      padding-block: var(--features-viewport-padding-y);
      background-color: var(--grey-bg);
      background-image:
        linear-gradient(to bottom, rgba(255,255,255,0.5) 0%, var(--grey-bg) 100%),
        url('/assets/images/backgrounds/fedDSP BGs-05.webp');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
    }

    .features-scroll-container {
      display: flex;
      gap: 2rem;
      padding: 0 5vw;
      width: max-content;
      will-change: transform;
    }

    .features-scroll-container h3,
    .features-scroll-container p {
      color: #222;
    }

    .features-scroll-container h3 {
      font-size: 1.3rem;
      font-weight: 700;
      line-height: 1.35;
    }

    .features-scroll-container p {
      font-size: 0.9rem;
      line-height: 1.6rem;
    }

    .feature-card-wrapper {
      width: clamp(280px, 26vw, 380px);
      max-width: 90vw;
      flex-shrink: 0;
      height: clamp(300px, calc(100vh - var(--features-viewport-padding-y) - var(--features-viewport-padding-y) - 8rem), 560px);
      height: clamp(300px, calc(100svh - var(--features-viewport-padding-y) - var(--features-viewport-padding-y) - 8rem), 560px);
      display: flex;
      flex-direction: column;
    }

    .feature-card-white,
    .feature-card-image {
      flex: 1;
      width: 100%;
      background: white;
      border-radius: 12px;
      padding: 2rem;
      display: flex;
      flex-direction: column;
      transition: transform 0.15s ease;
    }

    .feature-card-white {
      justify-content: center;
    }

    .feature-card-group {
      justify-content: space-between;
      gap: clamp(1.25rem, 3vh, 2rem);
    }

    .feature-card-group-item + .feature-card-group-item {
      padding-top: 0;
    }

    .feature-card-group .feature-card-group-item h3 {
      font-size: 1.05rem;
      line-height: 1.25;
      margin-bottom: 0.55rem;
    }

    .feature-card-group .feature-card-group-item p {
      font-size: 0.82rem;
      line-height: 1.45rem;
    }

    .feature-card-image {
      background: transparent;
      padding: 0;
      height: 100%;
      min-height: 0;
      gap: var(--features-card-media-gap);
      justify-content: flex-start;
    }

    .feature-img-display {
      display: block;
      width: 100%;
      height: 100%;
      border-radius: 12px;
      object-fit: cover;
      margin-bottom: 0;
    }

    .feature-media-shell {
      border-radius: 12px;
      overflow: hidden;
      width: 100%;
      max-width: 100%;
      align-self: center;
      flex: 1 1 0;
      min-height: 0;
      margin-bottom: 0;
    }

    .feature-media-shell picture {
      display: block;
      width: 100%;
      height: 100%;
      min-height: 0;
    }

    .feature-media-shell--bottom {
      margin-bottom: 0;
    }

    .feature-media-shell .feature-img-display {
      margin-bottom: 0;
    }

    .feature-card-copy {
      display: flex;
      flex-direction: column;
      flex: 0 0 auto;
      min-height: 0;
    }

    .feature-card-copy--bottom {
      justify-content: flex-end;
      margin-top: 0;
    }

    .feature-card-copy--top {
      justify-content: flex-start;
      margin-bottom: 0;
    }

    @media (max-width: 1399px) {
      .feature-card-wrapper {
        width: 300px;
        height: clamp(300px, calc(100vh - var(--features-viewport-padding-y) - var(--features-viewport-padding-y) - 8rem), 520px);
        height: clamp(300px, calc(100svh - var(--features-viewport-padding-y) - var(--features-viewport-padding-y) - 8rem), 520px);
      }
    }

    @media (max-width: 768px) {
      .features-section {
        --features-viewport-padding-y: 2rem;
      }

      .feature-card-wrapper {
        width: 260px;
        height: clamp(300px, calc(100vh - var(--features-viewport-padding-y) - var(--features-viewport-padding-y) - 7rem), 500px);
        height: clamp(300px, calc(100svh - var(--features-viewport-padding-y) - var(--features-viewport-padding-y) - 7rem), 500px);
      }

      .features-scroll-container {
        gap: 1rem;
      }

      .features-scroll-container h3 { font-size: 1.1rem; }
      .features-scroll-container p { font-size: 0.8rem; }
    }

  /* Testimonials */

    .testimonials-section {
      background-color: var(--grey-bg);
      position: relative;
    }

    .testimonials-section .container {
      position: relative;
      z-index: 20;
      max-width: 60%;
    }

    .testimonial-card-bg {
      border-radius: 2rem;
      padding: 2cap 4rem;
      z-index: 5;
      color: #161616; }

    .testimonials-section--single .testimonial-card-bg {
      width: min(860px, 100%);
      margin-inline: auto;
      padding: clamp(3rem, 6vw, 5rem);
    }

    @media (max-width: 1399px) {
      .testimonial-card-bg {
        padding: 5rem 1rem;
      }
      
          .testimonials-section .container {
      position: relative;
      z-index: 20;
      max-width: 80%;
      }
      
    }

    @media (max-width: 991px) {
      .testimonial-card-bg {
        padding: 3rem 4rem;
      }
    }

    @media (max-width: 767px) {
      .testimonial-card-bg {
        padding: 0rem 2rem;
      }

      .testimonials-section--single .testimonial-card-bg {
        padding: 3rem 2rem;
      }
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-card-bg,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-card-bg {
      padding-block: 1cap;
    }

    .product-page--everything-bundle .testimonials-section--carousel > .container,
    .product-page--sixmonths .testimonials-section--carousel > .container {
      max-width: min(calc(100% - 2rem), clamp(820px, 60vw, 980px));
    }

    @media (max-width: 1399px) {
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-card-bg,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-card-bg {
        padding-block: 2.5rem;
      }
    }

    @media (max-width: 991px) {
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-card-bg,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-card-bg {
        padding-block: 1.5rem;
      }
    }

    @media (max-width: 767px) {
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-card-bg,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-card-bg {
        padding-block: 0;
      }

      .product-page--everything-bundle .testimonials-section--carousel .testimonial-item--wide .avatar-wrapper,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-item--wide .avatar-wrapper {
        max-width: min(75%, 210px);
      }

      .product-page--everything-bundle #whats-included {
        padding-top: 2rem;
      }
    }

    .testimonial-item {
      display: flex;
      gap: 1rem;
      height: 100%;
      align-items: flex-start;
    }

    /* Stretched independently of the avatar (which stays top-aligned) so its
       .mt-auto name/role/bands block anchors to the same bottom position on
       every card, regardless of how many lines the quote wraps to. */
    .testimonial-item .text-content {
      display: flex;
      flex-direction: column;
      align-self: stretch;
    }

    .testimonial-item--single {
      flex-direction: column;
      align-items: center;
      text-align: center;
      max-width: 760px;
      margin-inline: auto;
    }

    .testimonial-item--single .text-content {
      max-width: 540px;
      margin-inline: auto;
    }

    /* Carousel variant (bundle pages): one big editorial photo instead of a
       small round avatar, image and copy sharing the full card height. */
    .testimonial-item--wide {
      align-items: center;
      gap: 2.5rem;
    }

    /* Row layout only (see the ≤991px override below for the stacked
       variant, which needs align-items:center for horizontal centering).
       The quote text reflows to an extra line at many different widths as
       the window narrows, changing row height in discrete line-height
       jumps; with align-items:center that recenters (and visibly shifts)
       the avatar every time. Top-anchoring it removes that shift entirely. */
    @media (min-width: 992px) {
      .testimonial-item--wide .avatar-wrapper {
        align-self: flex-start;
      }
    }

    .testimonial-item--wide .avatar-wrapper {
      flex: 0 0 auto;
      width: 16rem;
      max-width: 38%;
      aspect-ratio: 1 / 1;
      border-radius: 1rem;
      overflow: hidden;
    }

    .testimonial-item--wide .testimonial-avatar {
      flex: none;
      width: 100%;
      height: 100%;
      border-radius: 0;
    }

    .testimonial-item--wide .text-content {
      justify-content: center;
    }

    .product-page--everything-bundle .testimonials-section--carousel > .container.reveal-on-scroll,
    .product-page--sixmonths .testimonials-section--carousel > .container.reveal-on-scroll {
      opacity: 1;
      transform: none;
    }

    .product-page--everything-bundle .testimonials-section--carousel .text-content,
    .product-page--sixmonths .testimonials-section--carousel .text-content {
      align-self: center;
      gap: 1rem;
      justify-content: center;
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-item--wide .avatar-wrapper,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-item--wide .avatar-wrapper {
      align-self: center;
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-quote-card,
    .product-page--everything-bundle .testimonials-section--carousel .testimonial-meta-card,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-quote-card,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-meta-card {
      background-color: #ffffff;
      border-radius: 1.5rem;
      padding: 1.4rem 1.7rem;
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-quote-card,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-quote-card {
      margin-bottom: 0;
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-meta-card,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-meta-card {
      align-self: stretch;
      margin-top: 0 !important;
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-meta-card .testimonial-role:empty,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-meta-card .testimonial-role:empty {
      display: none;
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-meta-card .testimonial-bands,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-meta-card .testimonial-bands {
      margin-bottom: 0;
    }

    @media (max-width: 991px) {
      .testimonial-item {
        flex-direction: column;
        align-items: center;
        text-align: center;
      }

      /* In column mode align-self:stretch (above) only stretches width, so
         give text-content the vertical growth it needs for its own
         .mt-auto name/role/bands block to anchor to the bottom here too. */
      .testimonial-item .text-content {
        flex-grow: 1;
        width: 100%;
      }

      .testimonial-item--wide .avatar-wrapper {
        /* Capped instead of 100% — at 992px (row layout, avatar capped at
           38% width) the avatar renders around 210px; letting it jump to
           the full column width here (previously ~370px) made it visibly
           snap larger the instant the layout switches from row to column
           while resizing the window. This keeps the size change gradual. */
        max-width: min(100%, 280px);
        flex-basis: auto;
        width: 100%;
        aspect-ratio: 1 / 1;
      }

      .product-page--everything-bundle .testimonials-section--carousel .testimonial-quote-card,
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-meta-card,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-quote-card,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-meta-card {
        border-radius: 1.25rem;
        padding: 1.2rem 1.35rem;
      }
    }

    .testimonial-avatar {
      flex: 0 0 120px;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      object-fit: cover;
      position: relative;
      z-index: 5;
    }

    .testimonial-quote, .testimonial-bands {
      font-size: 1rem;
      line-height: 1.3rem;
      font-weight: 400;
      color: var(--brand-black , #161616);
      margin-bottom: 1.5rem;
    }

        @media (max-width: 1399px) {
          .testimonial-quote, .testimonial-bands {
            font-size: 0.9rem;
            line-height: 1rem;
          }

          .testimonial-quote{
            text-align: left;
          }
        }

    .testimonial-author {
      font-size: 1.3rem;
      font-weight: 700;
      color: var(--brand-black , #161616);
      margin-bottom: 0;
    }

    .testimonial-role {
      font-size: 0.8rem;
      text-transform: uppercase;
      letter-spacing: 1px;
      color: var(--brand-black , #161616);
    }


    @media (max-width: 991px) {
      .testimonial-role {
        margin-bottom: 0.5rem;
      }
    }

    /* Testimonials: looping 2-per-view carousel (bundle pages). */
    .testimonial-carousel-wrap {
      position: relative;
    }

    .testimonial-swiper .swiper-slide {
      height: auto;
    }

    .testimonial-swiper .swiper-slide .testimonial-item {
      height: 100%;
    }

    .testimonial-swiper-prev,
    .testimonial-swiper-next {
      --swiper-navigation-color: var(--brand-pink, #d368ac);
      --swiper-navigation-sides-offset: -32px;
      color: var(--brand-pink, #d368ac);
      opacity: 1;
      transition: opacity 0.15s ease, transform 0.15s ease;
      width: 32px;
      height: 32px;
      background: none;
      border: none;
      top: 50%;
      transform: translateY(-50%) scale(1);
    }

    .testimonial-swiper-prev::after,
    .testimonial-swiper-next::after {
      font-size: 1.4rem;
      font-weight: 600;
    }

    .testimonial-swiper {
      --swiper-wrapper-transition-timing-function: ease-in-out;
    }


    .testimonial-swiper-prev:hover,
    .testimonial-swiper-next:hover {
      color: var(--brand-black , #161616) !important;
      opacity: 1;
      font-weight: 800;
      transform: translateY(-50%) scale(1.1);
    }

    @media (max-width: 991px) {
      .testimonial-swiper-prev,
      .testimonial-swiper-next {
        --swiper-navigation-sides-offset: -16px;
      }
    }

    @media (max-width: 767px) {
      /* Card padding shrinks to 2rem (32px) here (see .testimonial-card-bg
         below), so push the arrows out near the true screen edge — away
         from the text — rather than hiding them. */
      .testimonial-swiper-prev,
      .testimonial-swiper-next {
        --swiper-navigation-sides-offset: -26px;
      }
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-prev,
    .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-next,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-prev,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-next {
      --swiper-navigation-sides-offset: -48px;
      margin-top: 0 !important;
      margin-bottom: 0 !important;
      margin-block: auto !important;
      top: 0 !important;
      bottom: 0 !important;
      transform: scale(1);
    }

    .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-prev:hover,
    .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-next:hover,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-prev:hover,
    .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-next:hover {
      transform: scale(1.1);
    }

    @media (max-width: 991px) {
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-prev,
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-next,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-prev,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-next {
        --swiper-navigation-sides-offset: -36px;
      }
    }

    @media (max-width: 767px) {
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-prev,
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-swiper-next,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-prev,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-swiper-next {
        --swiper-navigation-sides-offset: 0.75rem;
      }

      .product-page--everything-bundle .testimonials-section--carousel,
      .product-page--sixmonths .testimonials-section--carousel {
        padding-bottom: 1rem;
      }

      .product-page--everything-bundle .testimonials-section--carousel > .container,
      .product-page--sixmonths .testimonials-section--carousel > .container {
        max-width: 100%;
        padding-inline: 0 !important;
      }

      .product-page--everything-bundle .testimonials-section--carousel .testimonial-card-bg,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-card-bg {
        box-sizing: border-box;
        padding-bottom: 96px;
        padding-inline: 3.75rem;
      }

      .product-page--everything-bundle .testimonials-section--carousel .testimonial-item,
      .product-page--everything-bundle .testimonials-section--carousel .text-content,
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-quote-card,
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-meta-card,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-item,
      .product-page--sixmonths .testimonials-section--carousel .text-content,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-quote-card,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-meta-card {
        box-sizing: border-box;
        max-width: 100%;
        min-width: 0;
      }

      .product-page--everything-bundle .testimonials-section--carousel .testimonial-quote-card,
      .product-page--everything-bundle .testimonials-section--carousel .testimonial-meta-card,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-quote-card,
      .product-page--sixmonths .testimonials-section--carousel .testimonial-meta-card {
        overflow-wrap: break-word;
        word-break: normal;
      }
    }

  /* Tech Features */

    .tech-specs-section {
      display: flex;
      flex-direction: column;
      justify-content: center;
      position: relative;
      background-color: black;
      padding-block: var(--product-section-padding-y);
      overflow: hidden;
      z-index: 1;
      clip-path: none;
      margin-top: 0;
    }

    @media (max-width: 991px) {
      .tech-specs-section {
        padding-block: var(--product-section-padding-y);
      }
    }

    @media (max-width: 767px) {
      .tech-specs-section {
        padding-block: var(--product-section-padding-y);
      }
    }

    .tech-bg-wrapper {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 0;
      background-color: black; /* Fallback color */
    }

    .tech-specs-bg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-size: cover;
      background-position: center;
      opacity: 0;
      transition: opacity 0.5s ease-in-out;
      z-index: 1;
    }

    .tech-specs-bg.active {
      opacity: 1;
      z-index: 2;
    }

    .tech-bg-overlay {
      position: absolute;
      width: 100%;
      height: 100%;
      background: rgba(0,0,0,0.5);
      z-index: 3;
      pointer-events: none;
    }

    .tech-specs-section .container {
      z-index: 2;
      position: relative;
    }

    .tech-titles-wrapper {
      display: flex;
      flex-direction: column;
      padding-right: 2rem;
    }

    .tech-item-title {
      font-family: 'FedDSPHeader', sans-serif;
      font-size: 4rem;
      line-height: 1;
      text-transform: uppercase;
      cursor: pointer;
      color: white;
      transition: color 0.15s ease, transform 0.15s ease;
      user-select: none;
      margin-bottom: 0.2rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.25);
      width: 100%;
      padding-bottom: 0.2rem;
    }

    .tech-item-title:last-child {
      border-bottom: none;
      margin-bottom: 0;
      padding-bottom: 0;
    }

    .tech-titles-wrapper.interacted .tech-item-title {
      color: var(--dark-grey);
    }

    .tech-titles-wrapper.interacted .tech-item-title.active,
    .tech-titles-wrapper.interacted .tech-item-title:hover {
      color: white;
    }

    .tech-description-box {
      margin: 0 3rem;
    }

    .tech-desc-text {
      font-size: 1.2rem;
      line-height: 1.4;
      color: white;
      transition: opacity 0.15s ease;
      margin: 0;
    }

    @media (max-width: 991px) {

      .tech-item-title {
        font-size: 3rem;
      }

      .tech-desc-text {
        font-size: 1rem;
        margin-top: 2rem;
      }

      .tech-description-box {
        min-height: 150px;
        margin: 1rem 0 0 0;
      }
    }

  /* FAQ */
    .faq-v2 details {
      border-bottom: 1px solid #ddd;
      margin-bottom: 0;
    }

    .faq-v2 summary {
      padding: 1.5rem 0;
      cursor: pointer;
      list-style: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-weight: 700;
      font-size: 1.1rem;
    }

    .faq-v2 summary::-webkit-details-marker { display: none; }

    .faq-v2 summary::after {
      content: '+';
      font-weight: 300;
      font-size: 1.5rem;
      color: var(--light-grey);
      transition: transform 0.15s ease;
    }

    .faq-v2 details[open] summary::after {
      content: '+';
      transform: rotate(45deg);
    }

    .faq-v2 div {
      padding-bottom: 1.5rem;
      color: #bbb;
    }

    .border-secondary {
      border-color: rgba(255, 255, 255, 0.1) !important;
    }

    .cursor-pointer { cursor: pointer; }

    .faq-v2 a {
      color: inherit; /* Inherit the grey (text-white-50) from the parent text */
      text-decoration: underline;
      text-underline-offset: 3px;
      transition: color 0.15s ease;
    }

    .faq-v2 a:hover {
      color: #fff !important;   /* Force bright white on hover */
    }

/* AUDIO PLAYER */

  /* --- 1. Layout & Backgrounds --- */
    .audio-experience-bg {
      position: relative;
      background-color: #161616;
      overflow: hidden;
      padding: var(--product-section-padding-y) 10%;
    }

    .audio-experience-bg::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: url('/assets/images/backgrounds/fedZep Page Assets AMPS GRAIN BG SMALLEST.webp');
      background-repeat: repeat;
      background-size: auto;
      filter: invert(1);
      opacity: 0.12;
      z-index: 0;
      pointer-events: none;
    }

    .audio-experience-bg .audio-bg-layer {
      display: none;
    }

    .audio-player-video-overlay {
      width: 100%;
      height: 100%;
      object-fit: cover;
      mix-blend-mode: screen;
      opacity: 1;
      filter: grayscale(100%) contrast(1.5) brightness(0.8);
    }

    .audio-dark-filter {
      position: relative;
      background-color: black;
      overflow: hidden;
      padding: var(--product-section-padding-y) 0;
    }

    .audio-dark-filter::before {
      content: '';
      position: absolute;
      top: 0; left: 0; width: 100%; height: 100%;
      z-index: 1;
      pointer-events: none;
      background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.7) 100%);
    }

    .audio-bg-video-normal {
      width: 100%;
      height: 100%;
      object-fit: cover;
      opacity: 0.8;
    }

    .audio-bg-layer {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      overflow: hidden;
    }

    .audio-content-layer {
      position: relative;
      z-index: 1;
    }

  /* --- 2. Typography --- */
    .gradient-text-audio {
      background: var(--hero-gradient-secondary);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: var(--hero-gradient2-end);
    }

    .audio-section-title {
      font-size: clamp(5.8rem, 12vw, 8rem);
    }

  /* --- 3. Player Card Wrapper (rainbow border) --- */
    .player-card-wrapper {
      padding: 3px;
      border-radius: 2rem;
      background: var(--product-audio-accent, var(--rainbow-grad));
      width: 95%;
      max-width: 900px;
      margin-inline: auto;
    }

    @media (min-width: 1100px) {
      .player-card-wrapper {
        width: 55%;
      }
    }

    @media (min-width: 768px) {
      .audio-player--amp .player-card-wrapper {
        width: 55%;
      }
    }

    .player-card-v2 {
      display: flex;
      flex-direction: column;
      border-radius: calc(2rem - 3px);
      overflow: hidden;
    }

    @media (min-width: 1100px) {
      .player-card-v2 {
        flex-direction: row;
      }
    }

  /* --- 4. Split Panels --- */
    .player-card-left {
      background: #111;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 1.75rem;
      padding: .5rem 2rem 2rem 2rem;
    }

    @media (min-width: 1100px) {
      .player-card-left {
        flex: 0 0 50%;
      }
    }

    .player-card-right {
      background: white;
      display: flex;
      align-items: center;
      padding: 2rem 2.5rem;
    }

    @media (min-width: 1100px) {
      .player-card-right {
        flex: 0 0 50%;
      }
    }

  /* --- 5. Track Grid --- */
    .track-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0.6rem 1.5rem;
      width: 100%;
    }

    .track-grid--two-col {
      grid-template-columns: minmax(min-content, 1fr) minmax(min-content, 1fr);
    }

    .track-grid--two-col .track-btn-text {
      text-align: left;
    }

    @media (min-width: 1100px) and (max-width: 1299.98px) {
      .track-grid--two-col {
        grid-template-columns: 1fr;
      }

      .track-grid--two-col .track-btn-text {
        text-align: center;
      }
    }

    .track-item {
      text-align: left;
    }

    .track-btn-text {
      display: block;
      width: 100%;
      text-align: center;
      background: transparent;
      border: none;
      padding: 0;
      margin: 0;
      color: #888;
      font-weight: 700;
      font-size: 0.85rem;
      line-height: 1.2;
      text-transform: uppercase;
      cursor: pointer;
      white-space: normal;
      overflow-wrap: normal;
      word-break: normal;
      hyphens: none;
      -webkit-appearance: none;
      appearance: none;
      transition: color 0.15s ease;
    }

    .track-btn-text:visited,
    .track-btn-text:hover,
    .track-btn-text:active {
      color: #111;
    }

    .track-btn-text.active {
      font-weight: 700;
      color: #111;
    }

  /* --- 6. Play Button --- */
    .play-btn-large {
      width: 120px;
      height: 120px;
      background: white;
      border-radius: 50%;
      color: black;
      font-size: 2.5rem;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.15s ease;
      cursor: pointer;
      border: none;
      flex-shrink: 0;
    }

    .play-btn-large i {
      color: black;
      font-size: 2.5rem;
    }

    .play-btn-large:hover {
      transform: scale(1.05);
    }

    .play-btn-large .bi-play-fill { margin-left: 4px; }
    .play-btn-large .bi-pause-fill { margin-left: 0; }

  /* --- 7. Visualizer --- */
    .visualizer-container {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      height: 60px;
      position: relative;
      overflow: hidden;
    }

    .visualizer-bar {
      width: 3px;
      min-height: 3px;
      height: 3px;
      border-radius: 999px;
      background: white;
      transition: height 0.1s linear;
      will-change: height;
      transform: translateZ(0);
    }

    .visualizer-container.is-compact-bars .visualizer-bar:nth-child(even) {
      display: none;
    }


  /* --- 8. Toggle Switch --- */
    .mix-toggle-container {
      display: flex;
      justify-content: center;
    }

    .toggle-ui-wrapper {
      width: 60px;
      height: 34px;
      padding: 4px;
      background: white;
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      position: relative;
      margin: 0 1rem;
      border: 1px solid rgba(255,255,255,0.2);
    }

    .toggle-knob {
      width: 26px;
      height: 26px;
      background: black;
      border-radius: 50%;
      position: absolute;
      left: 4px;
      box-shadow: 0 2px 4px rgba(0,0,0,0.2);
      transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    .label-dry, .label-wet {
      font-size: 1.25rem;
      color: white;
    }

  /* --- 9. Amp variant (original layout preserved) --- */
    .audio-player--amp.audio-experience-bg,
    .audio-player--amp.audio-dark-filter {
      padding: var(--product-section-padding-y) 0;
    }

    .audio-player--amp .gradient-text-audio {
      background: var(--product-audio-accent, var(--hero-gradient-audio));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: var(--hero-gradient-end);
    }

    .audio-player--amp .player-card-wrapper {
      padding: 0;
      background: white;
      max-width: min(1520px, 96vw);
      zoom: 1;
    }

    .audio-player--amp .player-card-v2 {
      flex-direction: column;
      border-radius: 2rem;
      background: white;
      padding: 0 2rem 1rem 2rem;
    }

    @media (max-width: 575.98px) {
      .audio-player--amp .player-card-v2 {
        padding: 0 0.9rem 1rem 0.9rem;
      }
    }

    .audio-player--amp .player-controls-row {
      display: flex;
      align-items: center;
      gap: 1.5rem;
    }

    .audio-player--amp .track-grid {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      column-gap: 0;
      row-gap: 0.35rem;
      padding-bottom: 1rem;
    }

    .audio-player--amp .track-item {
      flex: 0 0 calc(100% / var(--audio-track-cols, 8));
      max-width: calc(100% / var(--audio-track-cols, 8));
      min-width: 0;
      padding: 1rem 0.12rem 0 0.12rem;
      text-align: center;
      position: relative;
    }

    .audio-player--amp .track-btn-text {
      font-size: 0.76rem;
      font-weight: 700;
      line-height: 1.15;
      text-align: center;
    }

    .audio-player--amp .track-btn-text.active::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 20px;
      height: 12px;
      background: black;
      border-radius: 1px;
    }

    .audio-player--amp .play-btn-large {
      width: 50px;
      height: 50px;
      background: black;
      border-radius: 15px;
    }

    .audio-player--amp .play-btn-large i {
      color: white;
    }

    .audio-player--amp .visualizer-bar {
      background: #000;
    }

    .audio-player--amp .visualizer-container.is-active .visualizer-bar {
      background: var(--product-audio-accent, var(--rainbow-grad));
    }

    .audio-player--amp .visualizer-container::before {
      display: none;
    }

    @media (max-width: 767.98px) {
      .audio-player--amp .track-item {
        flex-basis: calc(100% / var(--audio-track-cols-mobile, 3));
        max-width: calc(100% / var(--audio-track-cols-mobile, 3));
        padding: 1rem 0.08rem 0 0.08rem;
      }
    }

    @media (min-width: 768px) and (max-width: 1199.98px) {
      .audio-player--amp .track-item {
        flex-basis: calc(100% / var(--audio-track-cols-tablet, 5));
        max-width: calc(100% / var(--audio-track-cols-tablet, 5));
      }
    }

  /* --- 10. Promo video --- */

    .audio-promo-video-wrap {
      width: min(800px, 100%);
      margin-top: 4rem;
      margin-bottom: 2rem;
    }

    .audio-promo-video-wrap--solo {
      width: min(960px, 100%);
      margin-top: 2rem;
    }

    .audio-promo-video-frame {
      position: relative;
      width: 100%;
      aspect-ratio: 16 / 9;
      border-radius: 1.5rem;
      overflow: hidden;
      border: 3px solid transparent;
      background: linear-gradient(#000, #000) padding-box, var(--product-audio-accent, var(--rainbow-grad)) border-box;
    }

    .audio-promo-video-frame--plain {
      border: 0;
      border-radius: 0.5rem;
      background: #000;
    }

    .audio-promo-video-frame iframe,
    .audio-promo-video-frame .youtube-lite {
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
    }

    .audio-promo-video-frame .youtube-lite {
      position: relative;
      padding: 0;
      color: #fff;
      background: #000;
      cursor: pointer;
    }

    .audio-promo-video-frame .youtube-lite img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
    }

    .audio-promo-video-frame .youtube-lite::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(rgba(0,0,0,.12), rgba(0,0,0,.45));
    }

    .audio-promo-video-frame .youtube-lite-play {
      position: absolute;
      top: 50%;
      left: 50%;
      z-index: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 4.5rem;
      height: 4.5rem;
      border: 2px solid currentColor;
      border-radius: 50%;
      background: rgba(0,0,0,.35);
      font-size: 2rem;
      line-height: 1;
      transform: translate(-50%, -50%);
      transition: transform 160ms ease, background-color 160ms ease;
    }

    .audio-promo-video-frame .youtube-lite:hover .youtube-lite-play,
    .audio-promo-video-frame .youtube-lite:focus-visible .youtube-lite-play {
      background: rgba(0,0,0,.55);
      transform: translate(-50%, -50%) scale(1.06);
    }

/* BUNDLE PANEL */
  .bundle-panel-section {
    background-color: #000;
    background-image: url('/assets/images/backgrounds/tech-bg-4.webp');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    overflow: hidden;
    min-height: 70vh;
  }

  .bundle-panel-grid {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
  }

  .bundle-panel-item {
    width: min(220px, 28vw);
    min-width: 200px;
    transition: transform 0.15s ease;
  }

  .bundle-panel-item .sample-card-img-wrap,
  .bundle-panel-item .sample-card-img-wrap > picture {
    display: block;
    width: 100%;
    max-width: 100%;
  }

  .bundle-panel-item .sample-card-img-wrap > picture {
    height: 100%;
  }

  .bundle-panel-item .sample-card-img-wrap > picture > img {
    max-width: 100%;
  }

  .bundle-panel-item:hover {
    transform: translateY(-4px);
  }

  .bundle-panel-plus {
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
  }

  .bundle-panel-cta {
    flex-wrap: nowrap !important;
  }

  @media (max-width: 767.98px) {
    .bundle-panel-grid--count-3 {
      display: grid !important; /* override base flex layout */
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      grid-template-areas:
        "item1 plus1 item2"
        ". plus2 ."
        "item3 item3 item3";
      gap: 0.9rem 0.65rem;
      align-items: center;
      justify-items: center;
      width: 100%;
    }

    .bundle-panel-grid--count-3 > .bundle-panel-item {
      width: 100%;
      min-width: 0;
      max-width: 138px;
    }

    .bundle-panel-grid--count-3 > .bundle-panel-item--1 { grid-area: item1; }
    .bundle-panel-grid--count-3 > .bundle-panel-item--2 { grid-area: item2; }
    .bundle-panel-grid--count-3 > .bundle-panel-item--3 {
      grid-area: item3;
      max-width: 260px;
    }

    .bundle-panel-grid--count-3 > .bundle-panel-plus--1 { grid-area: plus1; }
    .bundle-panel-grid--count-3 > .bundle-panel-plus--2 { grid-area: plus2; }

    .bundle-panel-grid--count-3 > .bundle-panel-plus {
      font-size: 1.6rem;
      justify-self: center;
      align-self: center;
    }
  }

/* STICKY FOOTER */
  .sticky-footer-wrapper {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: var(--footer-bg, black);
    padding: 1.2rem;
    z-index: 1000;
    backdrop-filter: blur(10px);

    /* Hidden state */
    transform: translateY(100%);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .sticky-footer-wrapper::before,
  .sticky-footer-wrapper::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    /* Uses variable injected by Liquid, fallback to rainbow */
    background: var(--footer-border, var(--rainbow-grad));
    z-index: 1001;
  }

  .sticky-footer-wrapper::before { top: 0; }
  .sticky-footer-wrapper::after { bottom: 0; }

  .sticky-footer-wrapper.is-visible {
    transform: translateY(0);
  }

  .sticky-footer-wrapper.is-visible.footer-reached {
    transform: translateY(100%);
  }



  .sticky-footer-logo {
    height: 42px;
    width: auto;
    max-width: min(34vw, 280px);
    display: block;
    object-fit: contain;
  }

  #sticky-product-footer h2 {
    font-size: 3rem;
    line-height: 0.8;
    transform: translateY(3px);
  }

  .sticky-footer-center {
    color: white;
    max-width: min(58vw, 1100px);
    padding-inline: clamp(1rem, 2vw, 2rem);
    line-height: 1.3;
  }

  /* .sticky-footer-center is itself a link now (whole block clicks
     through to the product) — without this, the sitewide a:hover rule
     would turn its text black on hover, over a dark footer background. */
  .sticky-footer-center:hover,
  .sticky-footer-center:focus-visible,
  .sticky-footer-center:active {
    color: white;
  }

  .sticky-footer-center a {
      color: var(--brand-gold);
      font-weight: 600;
      text-decoration: none;
      transition: color 150ms ease;
  }

  .sticky-footer-center a:hover,
  .sticky-footer-center a:focus-visible,
  .sticky-footer-center a:active {
    color: var(--white) !important;
  }

  .sticky-footer-wrapper .btn-pill {
    padding: 0.5rem 1.5rem;
    font-size: 0.9rem;
    white-space: nowrap;
  }

  @media (max-width: 768px) {
    .sticky-footer-wrapper .btn-pill {
      padding: 0.3rem 0.9rem;
      min-width: auto;
    }
  }

/* FREE / NEWSLETTER MODAL */

  #newsletterModal .modal-content {
    border: 1px solid rgba(255, 255, 255, 0.3);
  }

  .fed-input-dark {
    background-color: rgb(58, 58, 58) !important;
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white !important;
    transition: all 0.15s ease-in-out;
    border-radius: 0.7rem;
  }

  .fed-input-dark::placeholder {
    color: var(--light-grey);
    font-size: 1rem;
  }

  .fed-input-dark:focus {
    background-color: var(--mid-grey) !important;
    border-color: var(--fed-input-accent, var(--brand-pink)) !important;
    box-shadow: 0 0 0 2px var(--fed-input-accent, var(--brand-pink)) !important;
    outline: none !important;
    color: white !important;
  }

  #newsletterModal .btn-brand-solid {
    font-size: 1rem;
  }

  #newsletterModal .btn-brand-solid:hover {
    background-color: #fff !important;
    color: var(--brand-pink) !important; /* Using your brand variable */
    border-color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(212, 102, 173, 0.3);
  }

  /* toast pop-up */

  #fed-newsletter-toast {
    position: fixed;
    bottom: 100px;
    right: 20px;
    background-color: var(--dark-grey);
    border: 3px solid rgba(211, 104, 172, 0.5);
    border-radius: 0.9rem;
    z-index: 1040;
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    cursor: pointer;
  }

  #fed-newsletter-toast.show {
    opacity: 1;
    transform: translateY(0);
    pointer-events: all;
  }

  #fed-newsletter-toast:hover {
    box-shadow: 0 0 20px rgba(212, 102, 173, 0.5);
    transform: translateY(-2px);
  }

/* SUPPORT */

  .fed-search-bar .input-group-text {
    border-top-left-radius: 2rem !important;
    border-bottom-left-radius: 2rem !important;
    padding-left: 1.5rem;
  }

  .fed-search-bar .form-control {
    border-top-right-radius: 2rem !important;
    border-bottom-right-radius: 2rem !important;
  }

  .fed-search-bar .form-control:focus {
    box-shadow: 0 0 20px rgba(212, 102, 173, 0.2) !important;
    border-color: rgba(212, 102, 173, 0.3) !important;
    z-index: 3;
  }

  .fed-search-bar .form-control:focus + .input-group-text,
  .fed-search-bar:focus-within .input-group-text {
    border-color: var(--brand-pink) !important;
    transition: border-color 0.15s ease-in-out;
  }

  #faqContainer h2 {
    font-size: 3rem;
  }

  .faq-answer {
    color: var(--light-grey);
  }

  .faq-answer a {
    color: white !important;
  }

  .faq-answer a:hover, .faq-answer a:active {
    color: var(--brand-pink) !important;
  }

  details > summary {
    list-style: none;
    cursor: pointer;
  }

  details > summary::-webkit-details-marker {
    display: none;
  }

  details > summary::after {
    content: '+';
    float: right;
    font-weight: bold;
    color: var(--brand-pink);
  }

  details[open] > summary::after {
    content: '-';
  }

  a.support-link:hover, a.support-link:active {
    color: white !important;
  }

/* ACCOUNT */

  #account {
    background: #242424;
    background: linear-gradient(0deg,#161616 10%, black 100%);
    min-height: 80vh;
    padding-bottom: 5rem;
    text-align: center;
  }

  #account header {
    max-width: 640px;
    margin-inline: auto;
  }

  #sign-in {
    display: flex;
    justify-content: center;
  }

  .account-session-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
  }

  .account-session-row__button {
    display: none;
    align-items: center;
    min-height: 40px;
  }

  .account-session-row__button > * {
    display: flex;
    align-items: center;
  }

  #account-email {
    margin-bottom: 0;
  }

  #account-welcome-name.is-founder {
    color: var(--brand-gold);
  }

  .account-founder-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
  }

  .account-founder-badge {
    width: 44px;
    height: auto;
    flex: 0 0 auto;
  }

  .account-founder-status-label {
    margin: 0;
    color: var(--brand-gold);
    font-size: 0.9rem;
    /*! font-weight: 700; */
    font-size: 5rem;
    text-transform: uppercase;
    font-family: 'FedDSPHeader', sans-serif;
    line-height: 5rem;
  }

  .account-founder-promo {
    padding-top: 0.85rem;
    border-top: 1px solid rgba(var(--brand-gold-rgb), 0.2);
  }

  .account-founder-promo-title {
    margin: 0 0 0.5rem;
    color: var(--grey-bg);
    font-size: 0.85rem;
    line-height: 1.5;
  }

  .account-founder-offer-list {
    margin: 0 0 0.75rem 1rem;
    padding: 0;
    color: var(--grey-bg);
    font-size: 0.85rem;
  }

  .account-founder-offer-list li {
    margin-bottom: 0.35rem;
  }

  .account-founder-promo-copy {
    margin: 1.2rem 0 0.75rem;
    color: var(--grey-bg);
    font-size: 0.85rem;
    line-height: 1.5;
  }

  .account-founder-offer {
    margin-bottom: 0.6rem;
  }

  .account-founder-offer-title {
    margin: 0 0 0.4rem;
    color: white;
    font-size: .9rem;
    line-height: 1.4;
  }

  .account-founder-offer:nth-child(2) {

    margin: 1.4rem 0 0.4rem;
  }

  .account-founder-code {
    display: inline-block;
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--brand-gold);
    border-radius: 1rem;
    background: var(--brand-gold);
    color: #161616;
    cursor: pointer;
    font-size: 0.95rem;
    letter-spacing: 0.08em;
    width: 100%;
    font-family: var(--bs-btn-font-family);
    font-weight: 700;
  }

   .account-founder-code:hover {
    background: #F5CC45;
   }

  @keyframes account-code-flash {
    0% {
      background: #ffffff;
      box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.7);
    }
    100% {
      background: rgba(0, 0, 0, 0.35);
      box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
  }

  .account-founder-code.is-flash {
    animation: account-code-flash 0.6s ease-out;
  }

  /* Non-founder promo card reuses .account-founder-promo/-offer/-code as-is
     (same title/offer style as every other account card) — only the top
     divider needs its own color, since the founder version is tinted gold
     to match that card's gold border, and this card keeps the default
     white .account-card border. */
  .account-founder-promo--neutral {
    border-top-color: rgba(255, 255, 255, 0.15);
  }

  @keyframes account-tooltip-in {
    from {
      opacity: 0;
      transform: translate(-50%, calc(-100% - 4px)) scale(0.85);
    }
    to {
      opacity: 1;
      transform: translate(-50%, calc(-100% - 16px)) scale(1);
    }
  }

  .account-code-tooltip {
    position: fixed;
    z-index: 1000;
    padding: 0.3rem 0.65rem;
    border-radius: 0.4rem;
    background: var(--brand-gold);
    color: #161616;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35);
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, calc(-100% - 12px)) scale(0.95);
    transition: opacity 0.15s ease, transform 0.15s ease;
  }

  .account-code-tooltip--btn {
    background: white;
    color: black;
    border: 1px solid white;
  }

  .account-code-tooltip.is-visible {
    opacity: 1;
    transform: translate(-50%, calc(-100% - 16px)) scale(1);
    animation: account-tooltip-in 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  }

  #account-purchases {
    display: grid;
    grid-template-columns: repeat(auto-fill, 300px);
    justify-content: center;
    gap: 2rem;
    margin-top: 3rem;
  }

  .account-card {
    background-color: var(--dark-grey);
    border: 5px solid white;
    border-radius: 2rem;
    padding: 1.7rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    height: 100%;
    min-height: 366px;
    position: relative;
    gap: 20px;
    /* The JS sets style="border-color: #..." inline.
      This allows that color to paint the full border. */
  }

  .account-card--rainbow-border {
    border-color: transparent;
    background:
      linear-gradient(var(--dark-grey), var(--dark-grey)) padding-box,
      var(--rainbow-grad) border-box;
  }

  .account-card-title {
    font-size: 5rem;
    text-transform: uppercase;
    margin: 0;
  }

  .account-card-meta {
    font-size: 0.9rem;
    margin: 0;
  }

  .account-card-license {
    width: 100%;

  }

  .account-card-license span {
    display: block;
    font-size: 1.2rem;
    margin-bottom: 0.25rem;
  }

  /* --- BUTTONS --- */
  /* Aesthetics reuse the shared TRY/BUY pill classes (.btn-pill / .btn-outline-white / .btn-brand-solid / .btn-lg);
     vertical spacing between all card elements comes from .account-card's gap, so no
     margins are needed here to stay pixel-identical to the product page buttons. */

  .account-copy-btn {
    width: 100%;
  }


  @keyframes account-copy-btn-flash {
    0% {
      background: #ffffff;
      box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.7);
    }
    100% {
      background: transparent;
      box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
  }

  .account-copy-btn.is-flash {
    animation: account-copy-btn-flash 0.6s ease-out;
  }

  /* 2. Download (same shape as product page BUY button) */
  .account-btn--primary {
    width: 100%;
    text-decoration: none;
    display: block;
    text-align: center;
  }

  /* --- FOOTER LINKS --- */
  .account-card-links {
    display: flex;
    gap: 1.5rem;
  }

  .account-link {
    color: var(--light-grey);
    text-decoration: underline;
    text-transform: capitalize;
    font-size: 1rem;
  }

  .account-link:hover {
    color: white;
  }

/* DOWNLOADS */

  .downloads-bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
    z-index: 0;
  }

  .downloads-bg-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 1;
    pointer-events: none;
  }

  .downloads h1 {
    position: relative;
    z-index: 3;
  }

  .downloads-grid {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }

  .download-card {
    width: 100%;
    max-width: 800px;
    border-radius: 20px;
    height: 150px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    scroll-margin-top: 100px;
  }

  .download-card-border {
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 20px;
    padding: 3px;
    background: var(--card-border, white);
    -webkit-mask:
      linear-gradient(#fff 0 0) content-box,
      linear-gradient(#fff 0 0);
    mask:
      linear-gradient(#fff 0 0) content-box,
      linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    z-index: 10;
  }

  .download-card-bg {
    position: absolute;
    top: -40%;
    right: -8%;
    bottom: -40%;
    left: -8%;
    background-size: cover;
    background-position: center;
    transform: scale(1.45) rotate(-20deg);
    transform-origin: center;
    opacity: 0.5;
    pointer-events: none;
  }

  .blur-target {
    filter: blur(8px);
    opacity: 1;
  }

  .download-title {
    font-size: 6rem;
    font-weight: 300;
  }

  .coming-soon-title {
    font-size: 3.5rem;
  }

  .download-desc {
    font-size: 0.7rem;
    line-height: 1.2;
    margin-top: 0.5rem;
  }

  .link-hover-fx {
    color: var(--light-grey);
    transition: all 0.15s ease;
  }

  .link-hover-fx:hover {
    color: #fff !important;
    text-decoration: underline !important;
  }

  .installer-group {
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  .installer-icons {
    display: flex;
    font-size: 1.8rem;
  }

  .installer-icons a {
    color: white;
    transition: color 0.15s ease;
    text-decoration: none;
  }

  .installer-icons a:hover,
  .installer-icons a:active {
    color: var(--brand-pink) !important;
    cursor: pointer;
  }

  .download-notes {
    z-index: 2;
  }

  .downloads-notes a {
    color: white;
  }

  .downloads-notes a:hover,
  .downloads-notes a:active {
    color: var(--brand-pink);
  }

  @media (max-width: 992px) {

    .download-title {
      font-size: 5rem;
    }

    .download-card {
      height: auto;
      min-height: 150px;
    }
  }

  @media (max-width: 576px) {
    .downloads-grid .btn-pill {
      padding: 0.3rem 1rem !important;
      font-size: 1rem !important;
      min-width: auto !important;
    }
  }

/* MANUAL */

    #manuals {
      background: linear-gradient(135deg, #111111 0%, var(--mid-grey) 100%);
      min-height: 80vh;
      padding-bottom: 5rem;
    }

    .manual-layout {
      display: flex;
      margin: 0 auto;
      padding: 4rem 2rem;
      gap: 4rem;
    }

    .manual-section {
      scroll-margin-top: 100px;
    }

    .manual-sidebar {
      width: 400px;
      position: sticky;
      top: 100px;
      height: fit-content;
      padding-right: 2rem;
      border-right: 1px solid var(--mid-grey);
    }

    .manual-search-input {
      width: 100%;
      max-width: 500px;
      background-color: var(--mid-grey);
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 0.5rem;
      padding: 0.5rem 0.75rem;
      color: white;
      font-size: 0.9rem;
      outline: none;
      transition: all 0.15s ease;
    }

    .manual-search-input:focus {
      background-color: var(--dark-grey);
      border-color: white;
    }

    .manual-search-input::placeholder {
      color: rgba(255, 255, 255, 0.5);
    }

    .manual-sidebar .nav-link {
      color: var(--light-grey);
      padding: 0.5rem 0;
      font-size: 0.9rem;
      transition: color 0.15s;
    }

    .manual-sidebar .nav-link:hover {
      color: white;
    }

    mark.manual-highlight {
      background-color: var(--brand-pink);
      color: white;
      padding: 1px 3px;
      border-radius: 3px;
    }

    .manual-sidebar.is-searching .nav-sub {
      display: block !important;
    }

    .manual-chapter.hidden-by-search {
      display: none !important;
    }

    .nav-sub li.hidden-by-search {
      display: none !important;
    }

    /* Sidebar Active States */

      .chapter-link.active,
      .chapter-link:hover {
        color: white !important;
      }

      .nav-sub .nav-link {
        font-size: 0.85rem;
        padding: 0.2rem 0;
        color: var(--light-grey);
        border-left: 2px solid transparent;
        padding-left: 10px;
      }

      .nav-sub .nav-link:hover,
      .nav-sub .nav-link.active {
        color: white;
        border-left: 1px solid var(--brand-pink);
      }

      .manual-chapter.open .nav-sub {
        display: block !important;
        animation: fadeIn 0.15s ease;
      }

      @keyframes fadeIn {
        from { opacity: 0; transform: translateY(-5px); }
        to { opacity: 1; transform: translateY(0); }
      }

    .manual-content h1 {
      font-size: 4rem;
      text-transform: uppercase;
      margin-bottom: 2rem;
    }

    .manual-content h2 {
      font-family: var(--body-font);
      font-size: 1.6rem;
      font-weight: 600;
      margin-top: 3rem;
      margin-bottom: 1rem;
      color: white;
      margin-bottom: 1.5rem;
      scroll-margin-top: 100px;
    }

    .manual-content h3 {
      font-family: var(--body-font);
      font-size: 1.25rem;
      font-weight: 600;
      margin-top: 2rem;
      margin-bottom: 0.8rem;
      color: var(--grey-bg);
      opacity: 0.9;
    }

    .manual-content p,
    .manual-content ul,
    .manual-content ol {
      font-size: 1rem;
      line-height: 1.6;
      margin-bottom: 1.5rem;
      color: var(--grey-bg);
      opacity: 0.9 !important;
      margin-bottom: 1.2rem;
    }

    .manual-content li {
      margin-bottom: 0.5rem;
    }

    .manual-content li > p {
      margin-bottom: 0;
    }

    .manual-content li > ul,
    .manual-content li > ol {
      margin-top: 0.75rem;
      margin-bottom: 0.75rem;
    }

    .manual-content a {
      color: white;
      opacity: 1 !important;
    }

    .manual-content a:hover,
    .manual-content a:active {
      color: var(--brand-pink);
    }

    .manual-content strong {
      color: var(--brand-pink);
      font-weight: 700;
    }

    .manual-divider {
      margin: 4rem 0;
    }

    @media (max-width: 992px) {
      .manual-layout {
        flex-direction: column;
        padding: 2rem;
      }

      .manual-sidebar {
        position: static;
        width: 100%;
        border-right: none;
        padding-bottom:3rem;
        border-bottom: 1px solid var(--mid-grey);
      }
    }

/* LEGAL */

  .legal-container {
    background-color: var(--dark-grey);
  }

  .legal-content h1 {
    margin-bottom: 2rem;
    text-transform: uppercase;
  }

  .legal-content h2 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    color: white;
    font-size: 2.5rem;
    font-weight: 200;
  }

  .legal-content h3 {
    font-family: 'Montserrat', Arial, sans-serif;
    margin-top: 1.5rem;
    color: white;
    font-size: 1rem;
    font-weight: 600;
  }

  .legal-content p,
  .legal-content li {
    color: var(--grey-bg);
    opacity: 0.8 !important;
    line-height: 1.7;
  }

  .legal-content p {
    margin-bottom: 1rem;
  }

  .legal-content ul {
    padding-left: 1.2rem;
  }

  .legal-content a {
      color: white;
    }

  .legal-content a:hover,
  .legal-content a:active {
    color: var(--brand-pink);
  }

/* FOUNDERS */
  .founders-page {
    --founders-accent: var(--brand-gold);
    --founders-accent-dim: rgba(var(--brand-gold-rgb), 0.4);
    background-color: var(--dark-grey);
    color: var(--grey-bg);
  }

  .founders-page-section {
    padding-block: 4rem;
  }

  .founders-page h2 {
    font-size: 4rem;
  }

  .founders-inline-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.16em;
  }

  .founders-inline-link:hover,
  .founders-inline-link:focus,
  .founders-inline-link:active {
    color: #fff;
  }

  .founders-hero {
    padding: 4rem 1rem;
    background-image: url('/assets/images/backgrounds/film_dust_25.webp'), radial-gradient(circle at center, #454545 0%, #000 100%);
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
  }

  .founders-title {
    font-size: clamp(4.75rem, 14vw, 6rem);
    line-height: 0.95;
    text-transform: uppercase;
    letter-spacing: 2px;
    background: linear-gradient(to right, #fff, var(--founders-accent), #fff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    margin-bottom: 1rem;
  }

  .founders-hero-copy {
    max-width: 760px;
    margin-inline: auto;
    color: rgba(255, 255, 255, 0.65);
    line-height: 1.7;
  }

  .perks-section {
    background: linear-gradient(to bottom, black, var(--dark-grey));
  }

  .perk-card {
    display: block;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 2rem;
    height: 100%;
    transition: transform 0.15s, border-color 0.15s;
    border-radius: 1.5rem;
  }

  .perk-card:hover {
    transform: translateY(-5px);
    border-color: var(--founders-accent);
    background: rgba(255, 255, 255, 0.05);
  }

  .perk-card-link,
  .perk-card-link:hover,
  .perk-card-link:focus,
  .perk-card-link:active {
    color: inherit;
    text-decoration: none;
  }

  .perk-title {
    color: white;
    font-weight: 700;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .perk-icon {
    height: 1.5em;
    width: auto;
    vertical-align: text-bottom;
    display: inline-block;
    margin-right: 0.4em;
  }

  .check-list li {
    margin-bottom: 0.5rem;
    font-size: 1.1rem;
  }

  .founders-qualifying-list {
    display: inline-block;
    text-align: center;
  }

  .check-list li::before {
    content: "✓";
    color: var(--founders-accent);
    margin-right: 10px;
    font-weight: bold;
  }

  .how-to-join-section {
    background-image: url('/assets/images/backgrounds/film_dust_25.webp'), linear-gradient(135deg, var(--founders-accent-dim) 0%, #111 100%);
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
    background-blend-mode: multiply, normal;
  }

  .founders-story-inner {
    max-width: 900px;
  }

  .founders-highlight {
    color: var(--founders-accent);
  }

  .founders-story-copy {
    color: var(--light-grey);
  }

  .founders-legal {
    padding-block: 1.5rem;
    font-size: 0.8rem;
    color: #555;
  }

  .founders-legal p {
    margin-bottom: 0;
  }

  @media(max-width: 768px) {

    .founders-page-section {
      padding-block: 3rem;
    }

    .founders-page h2 {
      font-size: 3.5rem;
    }
  }

/* BETA NDA */
  .beta-nda-page {
    position: relative;
    background: #000;
    overflow: hidden;
    padding: 3rem 0;
  }

  .beta-nda-page #background-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    display: block;
  }

  .beta-nda-page #aurora {
    position: absolute;
    inset: -25%;
    z-index: 1;
    pointer-events: none;
    opacity: 0.18;
    background:
      radial-gradient(1200px 900px at 25% 40%, rgba(222, 84, 175, 0.45), rgba(222, 84, 175, 0) 60%),
      radial-gradient(1000px 800px at 70% 65%, rgba(255, 180, 230, 0.25), rgba(255, 180, 230, 0) 65%);
    animation: auroraDrift 200s linear infinite alternate;
  }

  .beta-nda-wrap {
    position: relative;
    z-index: 2;
  }

  @keyframes auroraDrift {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(200px, -200px, 0); }
  }

  .beta-nda-panel {
    background: #fff;
    color: #1a1a1a;
    border-radius: 28px;
    box-shadow: 0 10px 50px rgba(0, 0, 0, 0.5);
    padding: 3rem;
  }

  .beta-nda-panel h1 {
    color: #000;
    font-size: 3rem;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
  }

  .beta-nda-date {
    color: #666;
    font-weight: 500;
    font-size: 0.9rem;
    margin-bottom: 2.5rem;
    display: block;
  }

  .beta-nda-panel h3 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 1.1rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
    color: #000;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

  .beta-nda-panel p,
  .beta-nda-panel li {
    line-height: 1.6;
    font-size: 0.95rem;
    color: #333;
    margin-bottom: 1rem;
  }

  .beta-nda-panel ul,
  .beta-nda-panel ol {
    padding-left: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .beta-nda-logo {
    max-height: 50px;
    margin-bottom: 1.5rem;
    filter: invert(1);
  }

  @media (max-width: 768px) {
    .beta-nda-panel {
      padding: 2rem 1.5rem;
    }

    .beta-nda-panel h1 {
      font-size: 2.3rem;
    }
  }

/* WAITLIST PAGES */

  .waitlist-page {
    background-color: black;
    min-height: 80vh;
    padding: 5rem 1rem;
    position: relative;
  }

  .waitlist-page::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--waitlist-bg-image, none);
    background-size: cover;
    background-position: center;
    opacity: 0.6;
    z-index: 0;
  }

  .waitlist-page > * {
    position: relative;
    z-index: 1;
  }

  .waitlist-heading {
    max-width: 48rem;
    margin-inline: auto;
  }

  .waitlist-tagline,
  .waitlist-tagline-mobile {
    font-size: 2.4rem !important;
    color: var(--waitlist-accent, var(--brand-pink));
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    text-wrap: balance;
  }

  .waitlist-tagline-mobile {
    display: none;
  }

  .waitlist-intro {
    color: white;
    font-size: 1.125rem;
  }

  .waitlist-intro--spaced {
    margin-top: 1.5rem;
  }

  .waitlist-panel {
    background-color: var(--dark-grey);
    border-radius: 2.5rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
  }

  .waitlist-panel--success {
    border-radius: 2rem;
    max-width: 42rem;
    margin-inline: auto;
  }

  .waitlist-disclaimer {
    font-size: 0.8rem;
  }

  .waitlist-art-wrap {
    margin-top: 3rem;
  }

  .waitlist-art {
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 2.5rem;
  }

  @media (max-width: 768px) {
    .waitlist-page {
      padding-inline: 0.5rem;
    }

    .waitlist-tagline-mobile {
      display: block;
      font-size: 1.7rem !important;
      line-height: 1.2;
      margin-bottom: 0 !important;
    }

    .waitlist-tagline--desktop-only {
      display: none;
    }

    .waitlist-intro {
      font-size: 1rem;
    }
  }

/* INTERNAL REPORT */

  .internal-report-page {
    color: #ffffff;
  }

  .internal-report-section-title {
    color: #ffffff;
    margin-top: 3rem;
    margin-bottom: 1rem;
    font-size: 4rem;
  }

  .internal-report-auth {
    backdrop-filter: blur(12px);
  }

  .internal-report-dashboard {
    background:
      radial-gradient(circle at top right, rgba(209, 99, 165, 0.12), transparent 34%),
      radial-gradient(circle at top left, rgba(108, 77, 255, 0.14), transparent 32%),
      linear-gradient(180deg, #fffefe 0%, #f6f3fb 100%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 2rem;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
    padding: 1.5rem;
    color: #1b1630;
  }

  .internal-report-toolbar {
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(27, 22, 48, 0.1);
    margin-bottom: 1rem;
  }

  .internal-report-dashboard--global {
    padding: 1rem 1.2rem;
  }

  .internal-report-toolbar--global {
    padding-bottom: 0;
    border-bottom: 0;
    margin-bottom: 0;
  }

  .internal-report-toolbar-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
    align-items: end;
  }

  .internal-report-global-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1.45fr) minmax(150px, 0.9fr) minmax(150px, 0.9fr) minmax(180px, 0.95fr) auto;
    gap: 0.8rem;
    align-items: end;
  }

  .internal-report-global-grid > * {
    min-width: 0;
  }

  .internal-report-field .form-label {
    color: rgba(27, 22, 48, 0.72);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.55rem;
  }

  .internal-report-input {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(27, 22, 48, 0.12);
    color: #1b1630;
    border-radius: 999px;
    min-height: 48px;
    padding-inline: 1rem;
  }

  .internal-report-input:focus {
    background: #ffffff;
    border-color: rgba(108, 77, 255, 0.5);
    box-shadow: 0 0 0 0.2rem rgba(108, 77, 255, 0.12);
    color: #1b1630;
  }

  .internal-report-toggle {
    display: inline-flex;
    align-items: center;
    background: rgba(27, 22, 48, 0.06);
    border-radius: 999px;
    padding: 0.2rem;
    min-height: 48px;
    width: 100%;
  }

  .internal-report-toggle-option {
    flex: 1 1 auto;
    border-radius: 999px;
    text-align: center;
    padding: 0.72rem 1rem;
    font-weight: 700;
    color: rgba(27, 22, 48, 0.66);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  }

  .btn-check:checked + .internal-report-toggle-option {
    background: #ffffff;
    color: #1b1630;
    box-shadow: 0 10px 24px rgba(27, 22, 48, 0.12);
  }

  .internal-report-submit-wrap {
    display: flex;
  }

  .internal-report-field--button {
    justify-content: flex-start;
  }

  .internal-report-run-btn {
    width: auto;
    min-width: 150px;
    min-height: 48px;
    border-radius: 999px;
    border: 0;
    color: #ffffff;
    font-weight: 700;
    background: linear-gradient(135deg, #6c4dff 0%, #d163a5 100%);
    box-shadow: 0 16px 28px rgba(108, 77, 255, 0.24);
    padding-inline: 1.4rem;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
  }

  .internal-report-run-btn:hover,
  .internal-report-run-btn:focus {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 20px 34px rgba(108, 77, 255, 0.3);
    filter: saturate(1.06);
  }

  .internal-report-run-btn:active {
    color: #ffffff;
    transform: translateY(0);
    box-shadow: 0 10px 18px rgba(108, 77, 255, 0.2);
    filter: saturate(0.98);
  }

  .internal-report-status {
    display: block;
    border-radius: 1rem;
    padding: 0.95rem 1rem;
    background: rgba(27, 22, 48, 0.06);
    color: #3b3555;
    margin-bottom: 1rem;
  }

  .internal-report-status.is-success {
    background: rgba(25, 135, 84, 0.1);
    color: #0f6b41;
  }

  .internal-report-status.is-error {
    background: rgba(220, 53, 69, 0.1);
    color: #a01b2b;
  }

  .internal-report-overview {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.25rem;
  }

  .internal-report-selection,
  .internal-report-meta-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.03em;
  }

  .internal-report-selection {
    background: rgba(108, 77, 255, 0.1);
    color: #5a3dff;
    margin-bottom: 0.85rem;
  }

  .internal-report-meta-pill {
    background: rgba(27, 22, 48, 0.06);
    color: rgba(27, 22, 48, 0.68);
  }

  .internal-report-heading {
    color: #1b1630;
    font-size: clamp(1.9rem, 2.6vw, 2.8rem);
    margin-bottom: 0.45rem;
  }

  .internal-report-subtitle {
    color: rgba(27, 22, 48, 0.65);
    margin-bottom: 0;
  }

  .internal-report-card {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(27, 22, 48, 0.08);
    border-radius: 1.6rem;
    padding: 1.2rem;
    box-shadow: 0 14px 32px rgba(27, 22, 48, 0.08);
    height: 100%;
  }

  .internal-report-card-label {
    color: rgba(27, 22, 48, 0.6);
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.45rem;
  }

  .internal-report-card-value {
    color: #1b1630;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1;
    margin-bottom: 1rem;
  }

  .internal-report-chart {
    width: 100%;
    min-height: 250px;
  }

  .internal-report-chart-shell {
    position: relative;
    width: 100%;
    height: 100%;
  }

  .internal-report-chart svg {
    display: block;
    width: 100%;
    height: 250px;
    overflow: visible;
  }

  .internal-report-chart-grid-line {
    stroke: rgba(27, 22, 48, 0.08);
    stroke-width: 1;
  }

  .internal-report-chart-grid-line--vertical {
    stroke-dasharray: 4 6;
  }

  .internal-report-chart-axis-label {
    fill: rgba(27, 22, 48, 0.55);
    font-size: 11px;
    font-family: 'Montserrat', sans-serif;
  }

  .internal-report-chart-empty,
  .internal-report-chart-latest {
    fill: rgba(27, 22, 48, 0.55);
    font-size: 12px;
    font-family: 'Montserrat', sans-serif;
  }

  .internal-report-chart-hit {
    fill: rgba(0, 0, 0, 0.001);
    stroke: transparent;
    cursor: pointer;
    pointer-events: all;
    transition: fill 0.15s ease;
  }

  .internal-report-chart-hit.is-active {
    fill: rgba(108, 77, 255, 0.12);
  }

  .internal-report-chart-tooltip {
    position: absolute;
    transform: translate(-50%, calc(-100% - 14px));
    min-width: 180px;
    max-width: 240px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(27, 22, 48, 0.08);
    border-radius: 1rem;
    box-shadow: 0 20px 45px rgba(27, 22, 48, 0.18);
    padding: 0.85rem 0.95rem;
    pointer-events: none;
    z-index: 3;
  }

  .internal-report-chart-tooltip[hidden] {
    display: none;
  }

  .internal-report-chart-tooltip-metric {
    color: rgba(27, 22, 48, 0.58);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.35rem;
  }

  .internal-report-chart-tooltip-value {
    color: #1b1630;
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 0.3rem;
  }

  .internal-report-chart-tooltip-label {
    color: rgba(27, 22, 48, 0.62);
    font-size: 0.88rem;
    line-height: 1.35;
  }

  .internal-report-details {
    margin-top: 1.5rem;
    background: rgba(255, 255, 255, 0.72);
    border-radius: 1.4rem;
    border: 1px solid rgba(27, 22, 48, 0.08);
    overflow: hidden;
  }

  .internal-report-details summary {
    cursor: pointer;
    list-style: none;
    padding: 1rem 1.1rem;
    font-weight: 700;
    color: #1b1630;
  }

  .internal-report-details summary::-webkit-details-marker {
    display: none;
  }

  .internal-report-table {
    --bs-table-bg: transparent;
    --bs-table-color: #1b1630;
    --bs-table-striped-bg: rgba(27, 22, 48, 0.03);
    --bs-table-border-color: rgba(27, 22, 48, 0.08);
    margin-bottom: 0;
  }

  .internal-report-table thead th {
    color: rgba(27, 22, 48, 0.55);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-top: 1px solid rgba(27, 22, 48, 0.08);
  }

  @media (max-width: 1199px) {
    .internal-report-toolbar-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .internal-report-global-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .internal-report-field--admin {
      grid-column: 1 / 4;
      grid-row: 1;
    }

    .internal-report-field--button {
      grid-column: 4 / 5;
      grid-row: 1;
    }

    .internal-report-run-btn {
      min-width: 140px;
    }

    .internal-report-field--start-date {
      grid-column: 1 / 2;
      grid-row: 2;
    }

    .internal-report-field--end-date {
      grid-column: 2 / 3;
      grid-row: 2;
    }

    .internal-report-field--period {
      grid-column: 3 / 5;
      grid-row: 2;
      max-width: none;
    }
  }

  @media (max-width: 767px) {
    .internal-report-dashboard {
      padding: 1rem;
      border-radius: 1.4rem;
    }

    .internal-report-toolbar-grid {
      grid-template-columns: 1fr;
    }

    .internal-report-global-grid {
      grid-template-columns: 1fr;
    }

    .internal-report-field--admin,
    .internal-report-field--button,
    .internal-report-field--start-date,
    .internal-report-field--end-date,
    .internal-report-field--period {
      grid-column: auto;
    }

    .internal-report-field--admin {
      grid-row: 1;
    }

    .internal-report-field--start-date {
      grid-row: 2;
    }

    .internal-report-field--end-date {
      grid-row: 3;
    }

    .internal-report-field--period {
      grid-row: 4;
      max-width: none;
    }

    .internal-report-field--button {
      grid-row: 5;
    }

    .internal-report-field--button,
    .internal-report-submit-wrap {
      width: 100%;
    }

    .internal-report-run-btn {
      width: 100%;
    }

    .internal-report-overview {
      flex-direction: column;
    }

    .internal-report-chart,
    .internal-report-chart svg {
      min-height: 220px;
      height: 220px;
    }
  }

/* COOKIE FIX */
  #cc-main .pm__section,
  #cc-main .pm__section--toggle {
    border-radius: var(--cc-modal-border-radius);
  }

  #cc-main .pm__section-title {
    border-radius: var(--cc-modal-border-radius);
  }

  #cc-main .pm__section--toggle.is-expanded .pm__section-title {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  #cc-main .pm__section--toggle .pm__section-desc-wrapper {
    border-radius: var(--cc-modal-border-radius);
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
