@font-face {
  font-family: "NonBureau";
  src: url("./assets/fonts/NonBureau-Thin.otf") format("opentype");
  font-weight: 100;
}

@font-face {
  font-family: "NonBureau";
  src: url("./assets/fonts/NonBureau-Light.otf") format("opentype");
  font-weight: 300;
}

@font-face {
  font-family: "NonBureau";
  src: url("./assets/fonts/NonBureau-Regular.otf") format("opentype");
  font-weight: 400;
}

@font-face {
  font-family: "NonBureau";
  src: url("./assets/fonts/NonBureau-Medium.otf") format("opentype");
  font-weight: 500;
}

@font-face {
  font-family: "NonBureau";
  src: url("./assets/fonts/NonBureau-SemiBold.otf") format("opentype");
  font-weight: 600;
}

@font-face {
  font-family: "NonBureau";
  src: url("./assets/fonts/NonBureau-Bold.otf") format("opentype");
  font-weight: 700;
}

@font-face {
  font-family: "NonBureau";
  src: url("./assets/fonts/NonBureau-Black.otf") format("opentype");
  font-weight: 900;
}

:root {
  --bg: #efeee5;
  --ink: #030303;
  --muted: #deded8;
  --acid: #ffe735;
  --about-highlight: #fdff8b;
  --green: #d5ff32;
  --channel-lime: #d6f36a;
  --merch-tag: #fdff8b;
  --merch-grey: #c4c4c4;
  --qa-cream: #fff3c8;
  --quiz-grey: #dddddd;
  --frame: 1920px;
  --panel: 500px;
  --content: 1420px;
  --content-inner: 1390px;
  --edge: 30px;
  --page-scale: 1;
  --scaled-vh: 100dvh;
  --section-gap: 90px;
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  width: 100vw;
  overflow: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: "NonBureau", Arial, sans-serif;
  font-weight: 400;
}

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

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button,
a,
summary {
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    opacity 160ms ease,
    filter 160ms ease;
}

button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 3px;
}

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 10;
  width: var(--panel);
  height: var(--scaled-vh);
  background: var(--bg);
  overflow: hidden;
  transform: scale(var(--page-scale));
  transform-origin: top left;
}

.brand-block {
  position: absolute;
  top: 70px;
  left: var(--edge);
  width: 420px;
}

.logo {
  display: inline-block;
  font-size: 99px;
  font-weight: 100;
  line-height: 0.86;
  white-space: nowrap;
}

.logo sup {
  position: relative;
  top: -0.58em;
  margin-left: 1px;
  font-size: 0.36em;
  font-weight: 100;
}

.intro-line {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 27px;
  margin-top: 25px;
  font-size: 18px;
  line-height: 1.2;
}

.intro-line span {
  align-self: start;
  background: var(--acid);
}

.intro-line ul {
  display: grid;
  gap: 1px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.intro-line li::before {
  content: "·";
  display: inline-block;
  width: 20px;
}

.section-nav {
  position: absolute;
  top: clamp(360px, calc(var(--scaled-vh) - 299px), 781px);
  left: var(--edge);
  display: grid;
  gap: 18px;
  font-size: 18px;
  line-height: 1;
  text-transform: uppercase;
}

.nav-link {
  display: grid;
  grid-template-columns: 24px max-content;
  align-items: center;
  width: max-content;
  font-weight: 400;
}

.nav-mark::before {
  content: "↘";
  display: block;
  font-family: Arial, sans-serif;
  font-size: 23px;
  font-weight: 400;
  line-height: 0.7;
}

.nav-link span:last-child {
  transition: background-color 160ms ease;
}

.nav-link.is-active .nav-mark,
.nav-link.is-active span:last-child {
  background: var(--acid);
}

.nav-link:hover .nav-mark,
.nav-link:hover span:last-child {
  background: rgba(3, 3, 3, 0.08);
}

.nav-link.is-active:hover .nav-mark,
.nav-link.is-active:hover span:last-child {
  background: var(--acid);
}

.sidebar-footer {
  position: absolute;
  right: 16px;
  bottom: 20px;
  left: var(--edge);
  display: grid;
  gap: 18px;
  font-size: 19px;
  line-height: 1;
  font-weight: 400;
}

.sidebar-footer p {
  margin: 15px 0 0;
}

.sidebar-footer a:hover {
  background: rgba(3, 3, 3, 0.08);
}

.sidebar-footer sup {
  position: relative;
  top: -0.35em;
  font-size: 0.58em;
}

.scroll-area {
  position: fixed;
  top: 0;
  left: calc(var(--panel) * var(--page-scale));
  width: var(--content);
  height: var(--scaled-vh);
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--bg);
  scroll-behavior: smooth;
  scrollbar-width: thin;
  transform: scale(var(--page-scale));
  transform-origin: top left;
}

.section {
  position: relative;
  width: var(--content);
}

.hero {
  height: 1190px;
}

.hero-tools {
  position: absolute;
  top: 30px;
  right: var(--edge);
  z-index: 2;
  display: flex;
  align-items: baseline;
  gap: 31px;
  font-size: 18px;
  line-height: 1;
  font-weight: 400;
}

.hero-tools a,
.cart-trigger {
  display: inline-block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-transform: inherit;
  cursor: pointer;
}

.hero-tools a.is-current {
  background: var(--acid);
}

.hero-tools a:hover,
.cart-trigger:hover {
  background: rgba(3, 3, 3, 0.08);
}

.hero-tools a.is-current:hover {
  background: var(--acid);
}

.hero-tools sup {
  position: relative;
  top: -0.5em;
  font-size: 0.58em;
}

.contact-pill {
  position: absolute;
  top: 70px;
  right: var(--edge);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 126px;
  height: 40px;
  padding: 0 17px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--bg);
  font-family: inherit;
  font-size: 22px;
  line-height: 1;
  font-weight: 400;
  text-transform: uppercase;
  cursor: pointer;
}

.contact-pill span:first-child {
  font-family: Arial, sans-serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 0.8;
}

.contact-pill:hover {
  background: rgba(3, 3, 3, 0.78);
}

.hero-image {
  position: absolute;
  top: 70px;
  left: 0;
  width: var(--content-inner);
  height: 1030px;
  margin: 0;
  overflow: hidden;
}

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

.about {
  height: 1124px;
  min-height: 1124px;
}

.manifest-row {
  position: relative;
  height: 250px;
}

.manifest-row::after {
  content: "";
  position: absolute;
  right: var(--edge);
  bottom: 35px;
  left: 160px;
  height: 1px;
  background: var(--ink);
  opacity: 0.75;
}

.row-head {
  display: grid;
  grid-template-columns: 160px 313px max-content;
  align-items: start;
  width: max-content;
  background: var(--about-highlight);
  font-size: 20px;
  line-height: 1;
  font-weight: 400;
  text-transform: uppercase;
}

.row-head span {
  width: max-content;
  max-width: 100%;
  background: transparent;
}

.row-head span:last-child {
  text-transform: none;
}

.manifest-row > p {
  width: 470px;
  margin: 68px 0 0 473px;
  font-size: 18px;
  line-height: 1.16;
  font-weight: 400;
}

.inside-row {
  height: 624px;
  min-height: 624px;
}

.inside-row::after {
  display: none;
}

.inside-row .row-head {
  grid-template-columns: 160px 313px 162px max-content;
  width: max-content;
}

.inside-grid {
  display: grid;
  gap: 72px;
  width: 430px;
  margin: 66px 0 0 635px;
  font-size: 18px;
  line-height: 1.18;
  font-weight: 400;
}

.inside-grid p {
  margin: 0;
}

.inside-grid mark {
  display: grid;
  grid-template-columns: 162px max-content;
  width: max-content;
  margin: 0 0 52px -162px;
  background: var(--about-highlight);
  color: inherit;
}

.inside-grid p:nth-child(2) mark::before {
  content: "2.";
}

.inside-grid p:nth-child(3) mark::before {
  content: "3.";
}

.inside-grid mark {
  background-image: none;
}

.drinks {
  min-height: 1244px;
  padding-bottom: 0;
}

.product-grid {
  width: var(--content-inner);
}

.product-row {
  display: grid;
  gap: 20px;
  width: var(--content-inner);
  max-width: 100%;
}

.product-row + .product-row {
  margin-top: 20px;
}

.product-row-top {
  grid-template-columns: minmax(0, 770px) minmax(0, 600px);
}

.product-row-bottom {
  grid-template-columns: minmax(0, 610px) minmax(0, 760px);
}

.product-card {
  position: relative;
  height: 612px;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: var(--muted);
  color: var(--ink);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}

.product-card::after,
.merch-card::after,
.quiz-image::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: rgba(3, 3, 3, 0);
  transition: background-color 160ms ease;
}

.product-card:hover::after,
.merch-card:hover::after,
.quiz-image:hover::after {
  background: rgba(3, 3, 3, 0.045);
}

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

.product-label {
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  font-size: 21px;
  line-height: 1;
  font-weight: 400;
}

.product-label span,
.product-card p {
  display: inline-block;
  margin: 0;
  background: var(--muted);
}

.product-card p {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  font-size: 20px;
  line-height: 1;
  font-weight: 400;
}

.product-violet .product-label span,
.product-violet p {
  background: var(--green);
}

.product-orange .product-label span:nth-child(2) {
  background: var(--acid);
}

.product-pink .product-label span:nth-child(2) {
  background: #ffe1be;
}

.product-violet img,
.product-orange img {
  object-position: center;
}

.product-card:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: -2px;
}

.channels {
  height: 1508px;
  padding-top: var(--section-gap);
}

.channel-chart {
  position: relative;
  width: var(--content-inner);
  height: 782px;
}

.channel-bar {
  position: absolute;
  top: var(--bar-top);
  left: var(--bar-left);
  width: var(--bar-width);
  height: calc(782px - var(--bar-top));
}

.channel-bar strong {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 86px;
  line-height: 0.84;
  font-weight: 100;
}

.channel-top-rule,
.channel-bottom-rule {
  position: absolute;
  left: 15px;
  width: var(--rule-width);
  height: 1px;
  background: var(--ink);
  opacity: 0.72;
}

.channel-top-rule {
  top: 72px;
}

.channel-bottom-rule {
  bottom: 0;
}

.channel-frame {
  position: absolute;
  top: 88px;
  right: 0;
  bottom: 15px;
  left: 0;
  border-right: 1px solid rgba(3, 3, 3, 0.72);
  border-left: 1px solid rgba(3, 3, 3, 0.72);
}

.channel-name {
  position: absolute;
  bottom: 25px;
  left: 15px;
  font-size: 21px;
  line-height: 1;
  font-weight: 400;
  white-space: nowrap;
}

.channel-bar-shops {
  --bar-left: 0px;
  --bar-top: 312px;
  --bar-width: 293px;
  --rule-width: 263px;
}

.channel-bar-delivery {
  --bar-left: 313px;
  --bar-top: 0px;
  --bar-width: 293px;
  --rule-width: 263px;
}

.channel-bar-culture {
  --bar-left: 626px;
  --bar-top: 191px;
  --bar-width: 293px;
  --rule-width: 263px;
}

.channel-bar-sport {
  --bar-left: 939px;
  --bar-top: 446px;
  --bar-width: 293px;
  --rule-width: 263px;
}

.channel-bar-other {
  --bar-left: 1252px;
  --bar-top: 587px;
  --bar-width: 137px;
  --rule-width: 106px;
}

.partner-list {
  width: var(--content-inner);
  margin-top: 84px;
  font-size: 20px;
  line-height: 1.08;
  font-weight: 400;
}

.partner-row {
  position: relative;
  display: block;
  height: 110px;
}

.partner-row::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  display: none;
  width: 100%;
  height: 22px;
  background: var(--channel-lime);
}

.partner-row-highlight {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 160px 480px max-content;
  width: max-content;
  min-height: 22px;
  align-items: start;
  background: var(--channel-lime);
}

.partner-row::after {
  content: "";
  position: absolute;
  top: 65px;
  right: 0;
  left: 160px;
  height: 1px;
  background: var(--ink);
  opacity: 0.72;
}

.partner-row:last-child::after {
  display: none;
}

.partner-row span {
  position: relative;
  z-index: 1;
}

.partner-row span:nth-child(2) {
  text-transform: uppercase;
}

.merch {
  min-height: 1780px;
  padding: 0 var(--edge) 0 0;
}

.merch-grid {
  width: var(--content-inner);
}

.merch-row {
  display: grid;
  gap: 20px;
  width: 100%;
  height: 580px;
}

.merch-row + .merch-row {
  margin-top: 20px;
}

.merch-row-left-small {
  grid-template-columns: 607px 763px;
}

.merch-row-right-small {
  grid-template-columns: 763px 607px;
}

.merch-row-full {
  grid-template-columns: 1390px;
}

.merch-card {
  position: relative;
  overflow: hidden;
  height: 580px;
  padding: 0;
  border: 0;
  background: var(--merch-grey);
  color: var(--ink);
  font-family: inherit;
  cursor: pointer;
}

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

.merch-card-title,
.merch-card-no,
.merch-card-size {
  position: absolute;
  z-index: 1;
  display: inline-block;
  background: var(--merch-tag);
  font-size: 24px;
  line-height: 1;
  font-weight: 400;
}

.merch-card-title {
  top: 0;
  left: 0;
}

.merch-card-no {
  top: 0;
  right: 0;
}

.merch-card-size {
  bottom: 0;
  left: 0;
}

.quiz {
  height: 1121px;
  padding-top: var(--section-gap);
}

.quiz-image {
  position: relative;
  display: block;
  width: var(--content-inner);
  height: 908px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: hidden;
  cursor: pointer;
}

.quiz-image img,
.quiz-hover-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.quiz-hover-video {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
}

.quiz-image:hover .quiz-hover-video,
.quiz-image.is-video-playing .quiz-hover-video {
  opacity: 1;
}

.quiz-panel {
  position: relative;
  width: var(--content-inner);
  height: 123px;
  background: var(--quiz-grey);
}

.quiz-kicker {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  background: var(--qa-cream);
  font-size: 20px;
  line-height: 1.08;
  font-weight: 400;
  text-transform: uppercase;
}

.quiz-trigger {
  position: absolute;
  top: 47px;
  left: 15px;
  display: inline-flex;
  align-items: center;
  gap: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-family: inherit;
  font-size: 72px;
  line-height: 0.88;
  font-weight: 100;
  cursor: pointer;
}

.quiz-trigger:hover {
  opacity: 0.72;
}

.quiz-arrow {
  display: block;
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
}

.qa {
  min-height: 785px;
  padding: var(--section-gap) var(--edge) 30px 0;
}

.faq-list {
  width: var(--content-inner);
}

.faq-item {
  position: relative;
  min-height: 110px;
  padding-bottom: 44px;
}

.faq-item::after {
  content: "";
  position: absolute;
  top: 65px;
  right: 0;
  left: 0;
  height: 1px;
  background: var(--ink);
  opacity: 0.72;
}

.faq-item + .faq-item {
  margin-top: 0;
}

.faq-item[open]::after {
  top: auto;
  bottom: 44px;
}

.faq-item:last-child::after {
  display: none;
}

.faq-item summary {
  position: relative;
  display: block;
  height: 66px;
  list-style: none;
  cursor: pointer;
}

.faq-item summary:hover .faq-question,
.faq-item summary:hover .faq-plus {
  background: rgba(3, 3, 3, 0.08);
}

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

.faq-item summary::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 0;
  height: 22px;
  background: var(--qa-cream);
}

.faq-question,
.faq-plus {
  position: relative;
  z-index: 1;
  display: inline-block;
  font-size: 20px;
  line-height: 1.08;
  font-weight: 400;
  text-transform: uppercase;
}

.faq-plus {
  position: absolute;
  top: -1px;
  right: 0;
  font-size: 31px;
  line-height: 0.7;
  font-weight: 100;
}

.faq-item[open] .faq-plus {
  transform: rotate(45deg);
}

.faq-item p {
  width: 520px;
  margin: -24px 0 34px 473px;
  font-size: 18px;
  line-height: 1.16;
  font-weight: 400;
}

.modal-open .sidebar,
.modal-open .scroll-area {
  filter: blur(8px);
  transition: filter 180ms ease;
}

.modal-layer[hidden] {
  display: none;
}

.modal-layer {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 32px;
  background: rgba(3, 3, 3, 0.38);
  overflow: auto;
}

.drink-modal,
.merch-modal,
.taste-quiz-modal,
.cart-modal,
.partner-modal {
  position: relative;
  max-height: calc(100vh - 64px);
  background: var(--bg);
  color: var(--ink);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.24);
  border: 0;
}

.drink-modal {
  width: min(1120px, calc(100vw - 64px));
}

.drink-modal,
.merch-modal {
  display: grid;
  grid-template-columns: minmax(0, 50%) minmax(0, 50%);
  height: min(656px, calc(100vh - 64px));
  overflow: hidden;
}

.merch-modal {
  width: min(1120px, calc(100vw - 64px));
}

.modal-close {
  position: absolute;
  top: 20px;
  right: 22px;
  z-index: 3;
  width: 18px;
  height: 18px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0;
  cursor: pointer;
}

.modal-close::before,
.modal-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 17px;
  height: 1.4px;
  background: currentColor;
  transform-origin: center;
}

.modal-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.modal-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.modal-close:hover {
  opacity: 0.55;
}

.taste-quiz-modal {
  width: min(920px, calc(100vw - 64px));
  min-height: min(500px, calc(100vh - 64px));
  padding: 34px 44px 40px;
  overflow-y: auto;
}

.taste-quiz-top {
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr) auto;
  align-items: center;
  gap: 20px;
  color: rgba(3, 3, 3, 0.46);
  font-size: 14px;
  line-height: 1;
  font-weight: 400;
  text-transform: uppercase;
}

.taste-quiz-progress {
  height: 1px;
  background: rgba(3, 3, 3, 0.24);
}

.taste-quiz-progress span {
  display: block;
  width: 25%;
  height: 100%;
  background: var(--ink);
  transition: width 180ms ease;
}

.taste-quiz-stage h2 {
  margin: 62px 0 34px;
  font-size: 38px;
  line-height: 0.96;
  font-weight: 100;
}

.taste-quiz-options {
  display: grid;
  gap: 10px;
}

.taste-quiz-option {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0 24px;
  border: 1px solid rgba(3, 3, 3, 0.38);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-family: inherit;
  font-size: 18px;
  line-height: 1;
  font-weight: 400;
  text-align: left;
  cursor: pointer;
}

.taste-quiz-option::after {
  display: none;
}

.taste-quiz-option:hover {
  background: rgba(3, 3, 3, 0.055);
  border-color: rgba(3, 3, 3, 0.62);
}

.taste-quiz-result {
  --quiz-result-accent: var(--acid);
  display: grid;
  grid-template-columns: 310px 1fr;
  align-items: center;
  gap: 44px;
  min-height: 340px;
  margin-top: 42px;
}

.taste-quiz-result[hidden],
.taste-quiz-stage[hidden] {
  display: none;
}

.taste-quiz-result-art {
  width: 100%;
  aspect-ratio: 1 / 1.22;
  margin: 0;
  background: var(--quiz-result-accent);
  overflow: hidden;
}

.taste-quiz-result-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.taste-quiz-result-copy > span {
  display: inline-block;
  margin-bottom: 32px;
  background: var(--quiz-result-accent);
  font-size: 14px;
  line-height: 1;
  font-weight: 400;
  text-transform: uppercase;
}

.taste-quiz-result-copy h2 {
  margin: 0;
  font-size: 38px;
  line-height: 0.96;
  font-weight: 100;
}

.taste-quiz-result-copy p {
  width: min(430px, 100%);
  margin: 24px 0 0;
  font-size: 16px;
  line-height: 1.18;
  font-weight: 400;
}

.taste-quiz-result-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 42px;
}

.quiz-product-button {
  min-width: 154px;
  height: 34px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--bg);
  font-family: inherit;
  font-size: 13px;
  line-height: 1;
  font-weight: 400;
  cursor: pointer;
}

.quiz-product-button:hover,
.add-cart-button:hover,
.checkout-button:hover:not(:disabled),
.checkout-submit:hover,
.partner-submit:hover {
  background: rgba(3, 3, 3, 0.78);
}

.quiz-reset-button {
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: rgba(3, 3, 3, 0.58);
  font-family: inherit;
  font-size: 13px;
  line-height: 1;
  font-weight: 400;
  cursor: pointer;
}

.quiz-reset-button:hover {
  color: var(--ink);
}

.drink-modal-image {
  min-height: 100%;
  background: var(--muted);
}

.merch-modal-image {
  position: relative;
  min-height: 100%;
  background: var(--merch-grey);
  overflow: hidden;
}

.drink-modal-image img,
.merch-modal-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.merch-modal-image.is-gallery-clickable img {
  cursor: pointer;
}

.merch-gallery-controls {
  position: absolute;
  right: 24px;
  bottom: 20px;
  left: 24px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  pointer-events: none;
}

.merch-gallery-controls[hidden] {
  display: none;
}

.merch-gallery-dot {
  pointer-events: auto;
}

.merch-gallery-dots {
  display: flex;
  align-items: center;
  gap: 8px;
}

.merch-gallery-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(3, 3, 3, 0.34);
  cursor: pointer;
}

.merch-gallery-dot[aria-current="true"] {
  background: var(--ink);
}

.drink-modal-info {
  position: relative;
  overflow-y: auto;
  padding: 48px 100px 28px 40px;
}

.merch-modal-info {
  position: relative;
  overflow-y: auto;
  padding: 44px 98px 44px 40px;
}

.drink-modal-bar,
.merch-modal-bar {
  display: flex;
  justify-content: space-between;
  font-size: 17px;
  line-height: 1;
  font-weight: 400;
}

.drink-modal-bar {
  background: var(--modal-accent, var(--acid));
}

.merch-modal-bar {
  background: var(--quiz-grey);
}

.drink-modal-info h2 {
  margin: 43px 0 19px;
  font-size: 38px;
  line-height: 0.96;
  font-weight: 400;
}

.merch-modal-info h2 {
  margin: 43px 0 22px;
  font-size: 38px;
  line-height: 0.96;
  font-weight: 400;
}

.drink-actions,
.merch-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
}

.drink-actions {
  margin-bottom: 42px;
}

.merch-actions {
  margin-bottom: 44px;
}

.taste-tags,
.merch-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  flex: 1 1 auto;
  margin: 0;
}

.taste-tags span,
.merch-tags span {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 14px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
  text-transform: uppercase;
}

.add-cart-button,
.checkout-button,
.checkout-submit {
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--bg);
  font-family: inherit;
  font-size: 14px;
  line-height: 1;
  font-weight: 400;
  text-transform: uppercase;
  cursor: pointer;
}

.add-cart-button {
  flex: 0 0 154px;
  width: 154px;
  height: 31px;
  padding: 0;
  font-size: 12px;
  white-space: nowrap;
  word-spacing: 1px;
}

.drink-spec {
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(3, 3, 3, 0.28);
}

.drink-spec span,
.merch-description > span,
.merch-accordion summary span:first-child,
.energy-block > span,
.nutrition-grid span,
.drink-note {
  color: rgba(3, 3, 3, 0.34);
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
  text-transform: uppercase;
}

.drink-spec p {
  width: min(430px, 100%);
  margin: 21px 0 0;
  font-size: 15px;
  line-height: 1.08;
  font-weight: 400;
}

.merch-description {
  padding-bottom: 28px;
  border-bottom: 1px solid rgba(3, 3, 3, 0.28);
}

.merch-description p {
  width: min(430px, 100%);
  margin: 26px 0 0;
  font-size: 16px;
  line-height: 1.14;
  font-weight: 400;
}

.merch-accordion details {
  border-bottom: 1px solid rgba(3, 3, 3, 0.28);
}

.merch-accordion summary {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 88px;
  list-style: none;
  cursor: pointer;
}

.merch-accordion summary:hover span:first-child,
.merch-accordion summary:hover span:last-child {
  color: var(--ink);
}

.merch-accordion summary::-webkit-details-marker {
  display: none;
}

.merch-accordion summary span:last-child {
  color: rgba(3, 3, 3, 0.34);
  font-size: 31px;
  line-height: 0.7;
  font-weight: 100;
}

.merch-accordion details[open] summary span:last-child {
  transform: rotate(45deg);
}

.merch-accordion p {
  width: min(430px, 100%);
  margin: -12px 0 28px;
  font-size: 15px;
  line-height: 1.14;
  font-weight: 400;
}

.energy-block {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 18px;
  padding: 24px 0 25px;
  border-bottom: 1px solid rgba(3, 3, 3, 0.28);
  font-size: 15px;
  line-height: 1;
}

.energy-block > span {
  margin-bottom: 2px;
}

.energy-block div {
  display: grid;
  grid-template-columns: 1fr max-content;
  gap: 24px;
}

.energy-block p,
.nutrition-grid p {
  margin: 0;
}

.nutrition-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  padding-top: 26px;
  font-size: 15px;
  line-height: 1;
}

.nutrition-grid span {
  display: block;
  margin-bottom: 18px;
}

.drink-note {
  margin: 40px 0 0;
  text-transform: none;
}

.cart-modal {
  display: grid;
  grid-template-rows: auto minmax(0, auto) auto auto auto;
  width: min(720px, calc(100vw - 64px));
  max-height: calc(100vh - 64px);
  padding: 48px 54px 42px;
  overflow: hidden;
}

.cart-head span {
  display: inline-block;
  background: var(--acid);
  font-size: 18px;
  line-height: 1;
  text-transform: uppercase;
}

.cart-head h2 {
  margin: 38px 0 34px;
  font-size: 54px;
  line-height: 0.92;
  font-weight: 100;
}

.cart-list {
  display: grid;
  gap: 0;
  min-height: 0;
  max-height: clamp(128px, 30vh, 330px);
  overflow-y: auto;
  overscroll-behavior: contain;
  border-top: 1px solid rgba(3, 3, 3, 0.72);
}

#cartModal.is-checkout .cart-list {
  max-height: clamp(104px, 18vh, 170px);
}

.cart-item {
  display: grid;
  grid-template-columns: 82px 1fr auto;
  gap: 18px;
  align-items: center;
  min-height: 111px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(3, 3, 3, 0.28);
}

.cart-item img {
  display: block;
  width: 82px;
  height: 82px;
  object-fit: cover;
}

.cart-thumb-placeholder {
  width: 82px;
  height: 82px;
  background: var(--merch-grey);
}

.cart-item h3 {
  margin: 0 0 10px;
  font-size: 25px;
  line-height: 0.95;
  font-weight: 400;
}

.cart-item p {
  margin: 0;
  font-size: 15px;
  line-height: 1;
}

.cart-controls {
  display: grid;
  grid-template-columns: 34px 34px 34px;
  align-items: center;
  justify-items: center;
  gap: 5px;
}

.cart-controls button {
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font-family: inherit;
  line-height: 1;
  cursor: pointer;
}

.cart-controls button {
  width: 34px;
  height: 28px;
  border-radius: 999px;
  font-size: 20px;
}

.cart-controls button:hover {
  background: var(--ink);
  color: var(--bg);
}

.cart-controls span {
  font-size: 20px;
}

.cart-empty {
  padding: 34px 0;
  border-top: 1px solid rgba(3, 3, 3, 0.72);
  border-bottom: 1px solid rgba(3, 3, 3, 0.28);
}

.cart-empty[hidden] {
  display: none;
}

.cart-empty p {
  margin: 0 0 14px;
  font-size: 28px;
  line-height: 1;
}

.cart-empty span,
.checkout-message {
  font-size: 18px;
  line-height: 1.15;
}

.cart-summary {
  display: flex;
  justify-content: space-between;
  margin: 30px 0 22px;
  font-size: 22px;
  line-height: 1;
}

.cart-summary strong {
  font-weight: 400;
}

.checkout-button {
  width: 100%;
  height: 44px;
  font-size: 18px;
}

.checkout-button[hidden] {
  display: none;
}

.checkout-button:disabled {
  opacity: 0.36;
  cursor: default;
}

.checkout-form {
  display: grid;
  gap: 16px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid rgba(3, 3, 3, 0.28);
}

.checkout-form[hidden] {
  display: none;
}

.checkout-form label {
  display: grid;
  grid-template-columns: 130px 1fr;
  align-items: center;
  gap: 18px;
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
  text-transform: uppercase;
}

.checkout-form label span {
  color: rgba(3, 3, 3, 0.44);
}

.checkout-form input {
  width: 100%;
  height: 38px;
  padding: 0 12px;
  border: 1px solid rgba(3, 3, 3, 0.72);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  text-transform: none;
  outline: 0;
}

#partnerModal {
  padding: 20px 32px;
}

.partner-modal {
  width: min(620px, calc(100vw - 64px));
  max-height: calc(100vh - 40px);
  font-weight: 400;
  overflow-y: auto;
}

.partner-close {
  top: 10px;
  right: 10px;
  color: var(--bg);
  filter: drop-shadow(0 1px 7px rgba(0, 0, 0, 0.35));
}

.partner-close::before,
.partner-close::after {
  width: 14px;
  height: 1px;
}

.partner-hero {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.partner-body {
  padding: 32px 27px 26px;
  text-align: center;
}

.partner-body h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1;
  font-weight: 400;
}

.partner-subtitle {
  margin: 24px 0 0;
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
}

.partner-policy {
  max-width: 446px;
  margin: 29px auto 31px;
  color: rgba(3, 3, 3, 0.15);
  font-size: 13px;
  line-height: 1.18;
  font-weight: 400;
}

.partner-policy a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.partner-policy a:hover {
  color: rgba(3, 3, 3, 0.42);
}

.partner-form {
  display: grid;
  gap: 14px;
}

.partner-form input,
.partner-form textarea {
  width: 100%;
  border: 1px solid rgba(3, 3, 3, 0.28);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-family: inherit;
  font-size: 13px;
  line-height: 1;
  font-weight: 400;
  outline: 0;
}

.partner-form input {
  height: 56px;
  padding: 0 18px;
}

.partner-form textarea {
  height: 127px;
  padding: 22px 18px;
  resize: none;
}

.partner-form input::placeholder,
.partner-form textarea::placeholder {
  color: rgba(3, 3, 3, 0.28);
  opacity: 1;
}

.partner-submit {
  width: 100%;
  height: 46px;
  margin-top: 13px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--bg);
  font-family: inherit;
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
  cursor: pointer;
}

.partner-form[hidden],
.partner-success[hidden] {
  display: none;
}

.partner-success {
  max-width: 446px;
  margin: 29px auto 0;
  font-size: 16px;
  line-height: 1.12;
  font-weight: 400;
}

.checkout-form input:focus {
  border-color: var(--ink);
}

.checkout-submit {
  width: 100%;
  height: 44px;
  margin-top: 4px;
  font-size: 18px;
}

.checkout-message {
  margin: 24px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(3, 3, 3, 0.28);
}

.checkout-message[hidden] {
  display: none;
}

@media (max-width: 767px) {
  :root {
    --mobile-pad: 16px;
    --mobile-header: 154px;
    --content: 100vw;
    --content-inner: calc(100vw - (var(--mobile-pad) * 2));
    --edge: var(--mobile-pad);
    --section-gap: 52px;
  }

  body {
    min-width: 0;
  }

  .sidebar {
    inset: 0 0 auto;
    width: 100vw;
    height: var(--mobile-header);
    transform: none;
    border-bottom: 1px solid rgba(3, 3, 3, 0.18);
  }

  .brand-block {
    top: 14px;
    left: var(--mobile-pad);
    width: calc(100vw - (var(--mobile-pad) * 2));
  }

  .logo {
    font-size: 48px;
    line-height: 0.86;
  }

  .intro-line {
    grid-template-columns: 1fr;
    gap: 6px;
    margin-top: 10px;
    font-size: 12px;
    line-height: 1.12;
  }

  .intro-line ul {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 8px;
  }

  .intro-line li::before {
    width: 10px;
  }

  .section-nav {
    top: 111px;
    left: var(--mobile-pad);
    right: var(--mobile-pad);
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 8px;
    font-size: 12px;
    scrollbar-width: none;
  }

  .section-nav::-webkit-scrollbar {
    display: none;
  }

  .nav-link {
    grid-template-columns: max-content;
    flex: 0 0 auto;
  }

  .nav-mark {
    display: none;
  }

  .nav-mark::before {
    font-size: 15px;
  }

  .sidebar-footer {
    display: none;
  }

  .scroll-area {
    top: var(--mobile-header);
    left: 0;
    width: 100vw;
    height: calc(var(--scaled-vh) - var(--mobile-header));
    transform: none;
  }

  .section {
    width: 100vw;
    padding-right: var(--mobile-pad);
    padding-left: var(--mobile-pad);
  }

  .hero {
    height: 520px;
    padding: 0 var(--mobile-pad);
  }

  .hero-tools {
    top: 14px;
    right: var(--mobile-pad);
    gap: 15px;
    font-size: 12px;
  }

  .contact-pill {
    top: 42px;
    right: var(--mobile-pad);
    min-width: 96px;
    height: 28px;
    padding: 0 11px;
    gap: 6px;
    font-size: 13px;
  }

  .contact-pill span:first-child {
    display: none;
  }

  .hero-image {
    top: 84px;
    left: var(--mobile-pad);
    width: var(--content-inner);
    height: 400px;
  }

  .about {
    height: auto;
    min-height: 0;
    padding-top: var(--section-gap);
  }

  .manifest-row,
  .inside-row {
    height: auto;
    min-height: 0;
    padding-bottom: 42px;
  }

  .manifest-row + .manifest-row {
    margin-top: 10px;
  }

  .manifest-row::after {
    right: 0;
    bottom: 20px;
    left: 0;
  }

  .inside-row::after {
    display: block;
  }

  .row-head,
  .inside-row .row-head {
    grid-template-columns: 48px 1fr;
    gap: 5px 10px;
    width: 100%;
    background: transparent;
    font-size: 13px;
    line-height: 1.08;
  }

  .row-head span {
    background: var(--about-highlight);
  }

  .row-head span:nth-child(n + 3) {
    grid-column: 2;
  }

  .inside-row .row-head span:nth-child(3) {
    grid-column: 1;
  }

  .inside-row .row-head span:nth-child(4) {
    grid-column: 2;
  }

  .manifest-row > p {
    width: 100%;
    margin: 22px 0 0;
    font-size: 14px;
    line-height: 1.18;
  }

  .inside-grid {
    gap: 30px;
    width: 100%;
    margin: 24px 0 0;
    font-size: 14px;
    line-height: 1.18;
  }

  .inside-grid mark {
    grid-template-columns: 34px 1fr;
    width: 100%;
    margin: 0 0 14px;
    background-size: 100% 16px;
  }

  .drinks {
    min-height: 0;
    padding-top: 28px;
  }

  .product-grid,
  .product-row {
    width: 100%;
  }

  .product-row,
  .product-row-top,
  .product-row-bottom {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .product-row + .product-row {
    margin-top: 12px;
  }

  .product-card {
    height: min(460px, 118vw);
  }

  .product-label,
  .product-card p {
    font-size: 14px;
  }

  .channels {
    height: auto;
    padding-top: var(--section-gap);
  }

  .channel-chart {
    display: grid;
    gap: 14px;
    width: 100%;
    height: auto;
  }

  .channel-bar {
    position: relative;
    top: auto;
    left: auto;
    display: grid;
    grid-template-columns: 92px 1fr;
    width: 100%;
    height: 92px;
  }

  .channel-bar strong {
    position: relative;
    font-size: 48px;
    line-height: 0.88;
  }

  .channel-name {
    position: relative;
    bottom: auto;
    left: auto;
    align-self: end;
    margin-bottom: 14px;
    padding-left: 8px;
    font-size: 14px;
    white-space: normal;
  }

  .channel-top-rule,
  .channel-bottom-rule {
    left: 92px;
    right: 0;
    width: auto;
  }

  .channel-top-rule {
    top: 42px;
  }

  .channel-bottom-rule {
    bottom: 0;
  }

  .channel-frame {
    top: 50px;
    right: 0;
    bottom: 10px;
    left: 92px;
  }

  .partner-list {
    width: 100%;
    margin-top: 46px;
    font-size: 14px;
  }

  .partner-row {
    min-height: 96px;
    height: auto;
    padding-bottom: 28px;
  }

  .partner-row::before {
    display: block;
    width: 100%;
    height: 17px;
  }

  .partner-row-highlight {
    grid-template-columns: 42px 1fr;
    width: 100%;
    min-height: 0;
    background: transparent;
  }

  .partner-row::after {
    top: auto;
    bottom: 14px;
    left: 0;
  }

  .partner-row span:nth-child(3) {
    grid-column: 2;
    margin-top: 8px;
  }

  .merch {
    min-height: 0;
    padding: var(--section-gap) var(--mobile-pad) 0;
  }

  .merch-grid {
    width: 100%;
  }

  .merch-row,
  .merch-row-left-small,
  .merch-row-right-small,
  .merch-row-full {
    grid-template-columns: 1fr;
    gap: 12px;
    height: auto;
  }

  .merch-row + .merch-row {
    margin-top: 12px;
  }

  .merch-card {
    height: 260px;
  }

  .merch-card-title,
  .merch-card-no,
  .merch-card-size {
    font-size: 14px;
  }

  .quiz {
    height: auto;
    padding-top: var(--section-gap);
  }

  .quiz-image {
    width: 100%;
    height: min(440px, 118vw);
  }

  .quiz-panel {
    width: 100%;
    height: 112px;
  }

  .quiz-kicker {
    font-size: 13px;
  }

  .quiz-trigger {
    top: 42px;
    left: 10px;
    gap: 12px;
    font-size: 32px;
  }

  .quiz-arrow {
    display: block;
    width: 28px;
    height: 28px;
  }

  .qa {
    min-height: 0;
    padding: var(--section-gap) var(--mobile-pad) 28px;
  }

  .faq-list {
    width: 100%;
  }

  .faq-item {
    min-height: 0;
    padding-bottom: 32px;
  }

  .faq-item::after {
    top: 48px;
  }

  .faq-item[open]::after {
    bottom: 22px;
  }

  .faq-item summary {
    min-height: 50px;
    height: auto;
  }

  .faq-item summary::before {
    height: 17px;
  }

  .faq-question {
    max-width: calc(100% - 34px);
    font-size: 14px;
    line-height: 1.08;
  }

  .faq-plus {
    font-size: 24px;
  }

  .faq-item p {
    width: 100%;
    margin: 8px 0 22px;
    font-size: 14px;
    line-height: 1.18;
  }

  .modal-layer {
    padding: 12px;
    place-items: start center;
  }

  .drink-modal,
  .merch-modal,
  .cart-modal,
  .partner-modal,
  .taste-quiz-modal {
    width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
  }

  .drink-modal,
  .merch-modal {
    display: block;
    height: auto;
  }

  .drink-modal-image,
  .merch-modal-image {
    min-height: 0;
    height: 42vh;
  }

  .merch-gallery-controls {
    right: 16px;
    bottom: 14px;
    left: 16px;
  }

  .merch-gallery-dot {
    width: 6px;
    height: 6px;
  }

  .drink-modal-info,
  .merch-modal-info {
    padding: 32px 18px 24px;
    overflow: visible;
  }

  .drink-modal-bar,
  .merch-modal-bar {
    font-size: 14px;
  }

  .drink-modal-info h2,
  .merch-modal-info h2 {
    margin: 32px 0 18px;
    font-size: 32px;
  }

  .drink-actions,
  .merch-actions {
    display: grid;
    gap: 16px;
    margin-bottom: 30px;
  }

  .add-cart-button {
    width: 160px;
    flex-basis: auto;
  }

  .nutrition-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 22px 18px;
  }

  .merch-accordion summary {
    min-height: 70px;
  }

  .cart-modal {
    display: block;
    padding: 34px 18px 24px;
  }

  .cart-head h2 {
    margin: 28px 0 26px;
    font-size: 42px;
  }

  .cart-list {
    max-height: 42vh;
  }

  #cartModal.is-checkout .cart-list {
    max-height: 24vh;
  }

  .cart-item {
    grid-template-columns: 64px 1fr;
    gap: 14px;
    min-height: 98px;
  }

  .cart-item img,
  .cart-thumb-placeholder {
    width: 64px;
    height: 64px;
  }

  .cart-item h3 {
    font-size: 22px;
  }

  .cart-controls {
    grid-column: 2;
    justify-self: start;
    margin-top: 10px;
  }

  .checkout-form label {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  #partnerModal {
    padding: 12px;
  }

  .partner-modal {
    width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
  }

  .partner-body {
    padding: 28px 18px 24px;
  }

  .partner-body h2 {
    font-size: 20px;
  }

  .partner-subtitle {
    margin-top: 18px;
    font-size: 14px;
    line-height: 1.14;
  }

  .partner-policy {
    margin: 22px auto 24px;
    font-size: 12px;
  }

  .partner-form input {
    height: 50px;
  }

  .partner-form textarea {
    height: 112px;
  }

  .taste-quiz-modal {
    min-height: 0;
    padding: 32px 18px 24px;
  }

  .taste-quiz-top {
    grid-template-columns: max-content 1fr auto;
    gap: 12px;
    padding-right: 34px;
    font-size: 12px;
  }

  .taste-quiz-progress {
    grid-column: auto;
    grid-row: auto;
  }

  .taste-quiz-stage h2 {
    margin: 46px 0 26px;
    font-size: 32px;
  }

  .taste-quiz-option {
    min-height: 50px;
    padding: 0 16px;
    font-size: 16px;
  }

  .taste-quiz-result {
    grid-template-columns: 1fr;
    gap: 26px;
    min-height: 0;
    margin-top: 32px;
  }

  .taste-quiz-result-art {
    width: min(260px, 78vw);
  }

  .taste-quiz-result-copy > span {
    margin-bottom: 24px;
  }

  .taste-quiz-result-copy h2 {
    font-size: 34px;
  }

  .taste-quiz-result-actions {
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 34px;
  }
}
