 :root {
     --orange: #F85800;
     --reset: #9ED8A8;
     /* groen pastel label */
     --reset-ink: #0d9948;
     --boost: #FFB0C4;
     /* roze pastel label */
     --boost-ink: #ee4223;
     --focus: #F2E6B8;
     /* beige/geel pastel label */
     --focus-ink: #f8bc1a;
     --flow: #CFD3F2;
     /* lila/blauw pastel label */
     --flow-ink: #4160ab;
     --beige: #EEEAD8;
     --darkbeige: #C8C5B7;
     --ink: #1a1a1a;
     --white: #FBF9F2;
     --neon: #D0F437;
     --salmon: #FFBA97;
     --lilac: #DFD4FF;
     --yellow: #FFE000;
     --blue: #4DA6FF;
     --section: clamp(72px, 11vw, 150px);
 }

 * {
     box-sizing: border-box;
     margin: 0;
     padding: 0
 }

 html {
     scroll-behavior: smooth
 }

 body {
     font-family: 'Neue Haas Grotesk Text Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
     background: var(--white);
     color: var(--ink);
     line-height: 1.35;
     overflow-x: hidden;
     font-weight: 400;
     letter-spacing: 0;
     font-display: swap;
 }

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

 .container {
     width: min(1320px, calc(100% - 44px));
     margin: 0 auto
 }

 /*  ALTER vector-woordmerk */
 .alter-logo {
     display: block;
     width: 100%;
     height: auto
 }

 .alter-logo .logo-c1 {
     fill: var(--ink)
 }

 .brand-logo {
     display: inline-block;
     width: 128px
 }

 .hero-logo {
     width: min(86vw, 540px);
     margin: 0;
     display: block
 }

 .foot-logo-svg {
     width: min(86vw, 1100px);
     margin: 0 auto;
     display: block
 }

 .foot-logo-svg .logo-c1 {
     fill: var(--white)
 }

 /* flowende ribbon-lijnen achtergrond */
 .ribbons {
     position: fixed;
     inset: 0;
     width: 100%;
     height: 100%;
     z-index: 0;
     pointer-events: none;
     opacity: .62
 }

 /* hero foto-blob rechts */
 .hero-photo-blob {
     position: absolute;
     top: 50%;
     right: -2vw;
     transform: translateY(-50%);
     width: clamp(420px, 58vw, 860px);
     height: clamp(440px, 64vw, 900px);
     z-index: 1;
     pointer-events: none;
 }

 .hero-photo-blob svg {
     width: 100%;
     height: 100%;
     display: block
 }

 /* ---------- header ---------- */
 header {
     position: fixed;
     inset: 0 0 auto 0;
     z-index: 50;
     padding: 16px 0;
     backdrop-filter: blur(10px);
     background: rgba(251, 249, 242, 0.55);
 }

 .nav {
     display: flex;
     justify-content: space-between;
     align-items: center
 }

 .nav .brand {
     font-size: 26px
 }

 .nav-links {
     display: flex;
     gap: 26px;
     font-size: 13px;
     text-transform: uppercase;
     letter-spacing: 0.04em;
     font-weight: 500
 }

 .nav-links a {
     position: relative;
     padding: 4px 0
 }

 .nav-links a::after {
     content: "";
     position: absolute;
     left: 0;
     bottom: 0;
     width: 0;
     height: 2px;
     background: var(--orange);
     transition: width .25s
 }

 .nav-links a:hover::after {
     width: 100%
 }

 /* ---------- winkelmandje drawer (rechts) ---------- */
 .drawer-overlay {
     position: fixed;
     inset: 0;
     z-index: 90;
     background: rgba(26, 26, 26, .38);
     opacity: 0;
     visibility: hidden;
     transition: opacity .3s ease, visibility .3s ease;
 }

 .drawer-overlay.open {
     opacity: 1;
     visibility: visible
 }

 .drawer {
     position: fixed;
     top: 0;
     right: 0;
     z-index: 91;
     height: 100%;
     width: min(90vw, 440px);
     background: var(--beige);
     color: var(--ink);
     transform: translateX(100%);
     transition: transform .36s cubic-bezier(.4, 0, .1, 1);
     padding: 30px 30px 34px;
     display: flex;
     flex-direction: column;
     box-shadow: 0 0 60px rgba(0, 0, 0, .22);
 }

 .drawer.open {
     transform: translateX(0)
 }

 .drawer-top {
     display: flex;
     justify-content: space-between;
     align-items: center;
     margin-bottom: 26px
 }

 .drawer-title {
     font-size: 24px;
     font-weight: 500;
     letter-spacing: -0.02em;
     display: flex;
     align-items: center;
     gap: 10px
 }

 .drawer-title .cart-dot {
     font-size: 13px;
     background: var(--salmon);
     color: var(--ink);
     border-radius: 999px;
     min-width: 22px;
     height: 22px;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     padding: 0 6px
 }

 .drawer-close {
     appearance: none;
     background: transparent;
     border: none;
     color: var(--ink);
     font-size: 30px;
     line-height: 1;
     cursor: pointer;
     padding: 4px 8px;
     font-family: inherit;
 }

 .cart-items {
     display: flex;
     flex-direction: column;
     gap: 12px;
     overflow-y: auto;
     flex: 1;
     margin: 0 -6px;
     padding: 0 6px
 }

 .cart-empty {
     font-size: 16px;
     opacity: .6;
     margin-top: 30px;
     line-height: 1.5
 }

 .cart-row {
     display: flex;
     align-items: center;
     gap: 14px;
     background: var(--white);
     border-radius: 20px;
     padding: 12px 14px;
 }

 .cart-row .thumb {
     width: 44px;
     height: 62px;
     border-radius: 10px;
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0
 }

 .cart-row .thumb img {
     height: 54px;
     width: auto;
     display: block
 }

 .cart-row .ci-name {
     font-weight: 500;
     font-size: 16px;
     letter-spacing: -0.01em
 }

 .cart-row .ci-sub {
     font-size: 12px;
     opacity: .6;
     margin-top: 2px
 }

 .cart-row .ci-mid {
     flex: 1;
     min-width: 0
 }

 .cart-qty {
     display: flex;
     align-items: center;
     gap: 10px
 }

 .cart-qty button {
     appearance: none;
     border: 2px solid rgba(0, 0, 0, .14);
     background: transparent;
     width: 26px;
     height: 26px;
     border-radius: 999px;
     cursor: pointer;
     font: inherit;
     font-size: 15px;
     line-height: 1;
     display: flex;
     align-items: center;
     justify-content: center;
     transition: .15s;
 }

 .cart-qty button:hover {
     background: var(--ink);
     color: var(--white);
     border-color: var(--ink)
 }

 .cart-qty .q {
     min-width: 16px;
     text-align: center;
     font-weight: 500;
     font-size: 15px
 }

 .cart-foot {
     margin-top: 22px;
     border-top: 2px solid var(--darkbeige);
     padding-top: 18px
 }

 .cart-total {
     display: flex;
     justify-content: space-between;
     align-items: baseline;
     font-weight: 500;
     font-size: 18px;
     margin-bottom: 16px
 }

 .cart-total .amt {
     font-size: 22px
 }

 .cart-checkout {
     display: flex;
     justify-content: center;
     align-items: center;
     gap: 8px;
     width: 100%;
     background: var(--salmon);
     color: var(--ink);
     border: none;
     border-radius: 999px;
     padding: 16px 24px;
     font-size: 13px;
     text-transform: uppercase;
     letter-spacing: 0.06em;
     font-weight: 500;
     cursor: pointer;
     font-family: inherit;
     transition: .2s;
 }

 .cart-checkout:hover {
     background: var(--orange);
     color: var(--white)
 }

 .drawer-tag {
     font-size: 12px;
     text-transform: uppercase;
     letter-spacing: 0.14em;
     opacity: .6;
     text-align: center;
     margin-top: 14px
 }

 /* ---------- blobs ---------- */
 .blob {
     position: absolute;
     z-index: 0;
     pointer-events: none
 }

 /* ---------- hero ---------- */
 .hero {
     position: relative;
     min-height: 100vh;
     display: flex;
     flex-direction: column;
     justify-content: center;
     padding: 140px 0 70px;
     overflow: hidden;
 }

 .hero .container {
     position: relative;
     z-index: 2
 }

 .hero h1 {
     font-size: clamp(96px, 26vw, 420px);
     line-height: 0.8;
     text-align: left;
 }

 .hero-sub {
     display: flex;
     flex-direction: column;
     align-items: flex-start;
     gap: 24px;
     margin-top: 30px;
     max-width: 560px;
 }

 .hero-sub .btn {
     background: var(--white)
 }

 .hero-sub p {
     max-width: 540px;
     font-size: clamp(20px, 2.4vw, 32px);
     letter-spacing: -0.02em;
     font-weight: 500;
 }

 .hero-state-tag {
     font-size: 12px;
     text-transform: uppercase;
     letter-spacing: 0.16em;
     font-weight: 500;
     color: var(--orange);
 }

 .btn {
     display: inline-flex;
     align-items: center;
     gap: 10px;
     border: 2px solid var(--ink);
     border-radius: 999px;
     padding: 14px 26px;
     font-size: 13px;
     text-transform: uppercase;
     letter-spacing: 0.06em;
     font-weight: 500;
     transition: .2s;
     white-space: nowrap;
 }

 .btn:hover {
     background: var(--ink);
     color: var(--white)
 }



 /* ---------- generic section ---------- */
 section {
     position: relative;
     padding: var(--section) 0;
     z-index: 2;
     scroll-margin-top: 90px
 }

 .eyebrow {
     font-size: 12px;
     text-transform: uppercase;
     letter-spacing: 0.16em;
     font-weight: 500;
     color: var(--orange);
     margin-bottom: 18px;
     display: block
 }

 h2 {
     font-size: clamp(38px, 6.4vw, 92px);
     line-height: 0.9;
     letter-spacing: -0.04em;
     font-weight: 500;
     max-width: 14ch
 }

 .lead {
     font-size: clamp(20px, 2.6vw, 34px);
     letter-spacing: -0.02em;
     font-weight: 400;
     max-width: 780px;
     margin-top: 28px
 }

 /* intro band */
 .intro {
     background: var(--beige)
 }

 .intro-grid {
     display: grid;
     grid-template-columns: 0.8fr 1.2fr;
     gap: 48px;
     align-items: start
 }

 /* ---------- lifestyle gallery ---------- */
 .life {
     position: relative;
     overflow: hidden
 }

 .life-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 22px;
     margin-top: 56px;
     align-items: center
 }

 .life-item {
     position: relative
 }

 .life-item svg {
     width: 100%;
     height: auto;
     display: block;
     filter: drop-shadow(0 18px 40px rgba(0, 0, 0, .10))
 }

 .life-item.offset {
     transform: translateY(46px)
 }

 .life-cap {
     margin-top: 18px;
     font-weight: 500;
     letter-spacing: -0.02em;
     font-size: 20px;
     text-align: center
 }

 .life-cap .dot {
     display: inline-block;
     width: 11px;
     height: 11px;
     border-radius: 50%;
     margin-right: 9px;
     vertical-align: middle
 }

 /* ---------- states ---------- */
 .states-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 18px;
     margin-top: 56px
 }

 .state-card {
     position: relative;
     border-radius: 30px;
     padding: 26px 24px 24px;
     min-height: 430px;
     display: flex;
     flex-direction: column;
     overflow: hidden;
     transition: transform .3s ease;
 }

 .state-card:hover {
     transform: translateY(-8px)
 }

 .state-card .quote {
     font-size: 13px;
     letter-spacing: 0.02em;
     font-style: italic;
     opacity: .85;
     margin-bottom: 6px
 }

 .state-card h3 {
     font-size: clamp(30px, 3.6vw, 46px);
     line-height: .92;
     letter-spacing: -0.03em;
     text-transform: uppercase;
     font-weight: 500
 }

 .state-card .nl {
     font-size: 17px;
     letter-spacing: -0.01em;
     margin-top: 10px;
     max-width: 22ch
 }

 .state-card .state-bottle {
     position: absolute;
     left: 100px;
     bottom: 56px;
     height: 180px;
     width: auto;
     z-index: 0;
     ;
     filter: drop-shadow(0 12px 20px rgba(0, 0, 0, .22))
 }

 .state-card .masc {
     position: absolute;
     left: 128px;
     bottom: 44px;
     width: 100px;
     height: 128px;
     z-index: 1;
 }

 .state-card .reset {
     rotate: -15deg;
 }

 .state-card .ingr {
     margin-top: auto;
     font-size: 11px;
     text-transform: uppercase;
     letter-spacing: 0.08em;
     font-weight: 500;
     position: relative;
     z-index: 2
 }

 .state-card.reset {
     background: var(--reset)
 }

 .state-card.boost {
     background: var(--boost)
 }

 .state-card.focus {
     background: var(--focus)
 }

 .state-card.flow {
     background: var(--flow)
 }

 /* ---------- selector ---------- */
 .selector {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 18px;
     margin-top: 48px
 }

 .selector-panel {
     background: var(--white);
     border-radius: 30px;
     padding: 34px
 }

 .selector-panel h2 {
     font-size: clamp(30px, 4vw, 52px);
     max-width: none;
     margin-top: 6px
 }

 .opts {
     display: grid;
     gap: 11px;
     margin-top: 30px
 }

 .opts button {
     appearance: none;
     border: 2px solid rgba(0, 0, 0, .12);
     background: transparent;
     border-radius: 999px;
     padding: 15px 22px;
     text-align: left;
     font: inherit;
     font-size: 16px;
     font-weight: 500;
     cursor: pointer;
     transition: .2s;
     display: flex;
     justify-content: space-between;
     align-items: center;
 }

 .opts button .arrow {
     opacity: 0;
     transform: translateX(-6px);
     transition: .2s
 }

 .opts button:hover,
 .opts button.active {
     background: var(--ink);
     color: var(--white);
     border-color: var(--ink)
 }

 .opts button.active .arrow,
 .opts button:hover .arrow {
     opacity: 1;
     transform: translateX(0)
 }

 .reco {
     border-radius: 30px;
     padding: 36px;
     min-height: 440px;
     display: flex;
     flex-direction: column;
     position: relative;
     overflow: hidden;
     background: var(--reset);
     transition: background .35s ease;
 }

 .reco .small {
     font-size: 13px;
     text-transform: uppercase;
     letter-spacing: 0.14em;
     font-weight: 500
 }

 .reco h3 {
     font-size: clamp(54px, 9vw, 120px);
     line-height: .82;
     letter-spacing: -0.05em;
     text-transform: uppercase;
     font-weight: 500;
     margin-top: 6px
 }

 .reco .quote {
     font-style: italic;
     font-size: clamp(18px, 2vw, 24px);
     max-width: 18ch;
     margin-top: 14px
 }

 .reco .reco-bottle {
     position: absolute;
     right: 24px;
     bottom: 30px;
     height: 360px;
     filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .22))
 }

 /* ---------- philosophy ---------- */
 .philo {
     background: var(--ink);
     color: var(--white)
 }

 .philo .eyebrow {
     color: rgba(255, 255, 255, .8)
 }

 .philo-grid {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 48px;
     align-items: end
 }

 .philo .big {
     font-size: clamp(32px, 4.6vw, 66px);
     line-height: .98;
     letter-spacing: -0.04em;
     font-weight: 500
 }

 .philo .body {
     font-size: 19px;
     max-width: 560px;
     opacity: .92
 }

 /* ---------- ritual ---------- */
 .ritual-section {
     position: relative
 }

 .ritual-panel {
     background: var(--lilac);
     color: var(--ink);
     border-radius: 38px;
     padding: clamp(44px, 6vw, 84px);
     position: relative;
     overflow: hidden;
     margin-top: 48px;
 }

 .ritual-panel .eyebrow {
     color: var(--flow-ink)
 }

 .ritual-head {
     font-size: clamp(34px, 5vw, 72px);
     line-height: .98;
     letter-spacing: -0.04em;
     font-weight: 500;
     max-width: 16ch
 }

 .ritual-head .rit-accent {
     color: var(--orange)
 }

 .ritual-steps {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 30px;
     margin-top: 62px;
 }

 .rstep {
     position: relative;
     padding-top: 26px;
     border-top: 2px solid rgba(26, 26, 26, .16)
 }

 .rstep .num {
     font-size: 14px;
     font-weight: 500;
     letter-spacing: 0.1em;
     color: var(--flow-ink);
 }

 .rstep h4 {
     font-size: clamp(22px, 2.4vw, 30px);
     letter-spacing: -0.02em;
     font-weight: 500;
     margin-top: 14px
 }

 .rstep p {
     font-size: 15px;
     margin-top: 9px;
     opacity: .72;
     max-width: 24ch
 }

 /* ---------- shop ---------- */
 .shop-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 18px;
     margin-top: 52px
 }

 .product {
     border-radius: 30px;
     padding: 24px 20px;
     text-align: center;
     position: relative;
     overflow: hidden;
     transition: transform .3s
 }

 .product:hover {
     transform: translateY(-8px)
 }

 .product.reset {
     background: var(--reset)
 }

 .product.boost {
     background: var(--boost)
 }

 .product.focus {
     background: var(--focus)
 }

 .product.flow {
     background: var(--flow)
 }

 .product img {
     height: 260px;
     filter: drop-shadow(0 16px 26px rgba(0, 0, 0, .2));
     margin-bottom: 14px
 }

 .product h3 {
     font-size: 26px;
     text-transform: uppercase;
     letter-spacing: -0.02em;
     font-weight: 500
 }

 .product .ingr {
     font-size: 13px;
     margin-top: 4px;
     opacity: .7
 }

 .product .buy {
     margin-top: 16px;
     display: inline-block;
     border: 2px solid var(--ink);
     border-radius: 999px;
     padding: 9px 20px;
     font-size: 12px;
     text-transform: uppercase;
     letter-spacing: 0.06em;
     font-weight: 500;
     transition: .2s;
     cursor: pointer;
     background: transparent;
     font-family: inherit
 }

 .product .buy:hover {
     background: var(--ink);
     color: var(--white)
 }

 .product .buy.added {
     background: var(--reset-ink);
     border-color: var(--reset-ink);
     color: var(--white)
 }

 .cart-count {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     min-width: 18px;
     height: 18px;
     padding: 0 5px;
     margin-left: 4px;
     border-radius: 999px;
     background: var(--orange);
     color: var(--white);
     font-size: 11px;
     line-height: 1
 }

 /* ---------- footer ---------- */
 footer {
     background: var(--ink);
     color: var(--white);
     padding: 80px 0 34px;
     position: relative;
     overflow: hidden
 }

 .foot-logo {
     font-size: clamp(90px, 24vw, 340px);
     line-height: .78;
     text-align: center
 }

 .foot-bottom {
     display: flex;
     justify-content: space-between;
     gap: 24px;
     flex-wrap: wrap;
     margin-top: 36px;
     font-size: 12px;
     text-transform: uppercase;
     letter-spacing: 0.08em;
     color: rgba(255, 255, 255, .6)
 }

 @media (max-width:980px) {
     .nav-links {
         display: none
     }

     .states-grid,
     .shop-grid,
     .life-grid {
         grid-template-columns: repeat(2, 1fr)
     }

     .ritual-steps {
         grid-template-columns: repeat(2, 1fr);
         gap: 20px
     }

     .life-item.offset {
         transform: none
     }

     .intro-grid,
     .selector,
     .philo-grid {
         grid-template-columns: 1fr
     }

     .rq-line {
         font-size: clamp(34px, 11vw, 60px)
     }

     .hero-bottle {
         display: none
     }
 }

 @media (max-width:560px) {

     .states-grid,
     .shop-grid,
     .life-grid {
         grid-template-columns: 1fr
     }
 }