/* V2 extends the original product stage with the current Holy Ice content. */
[hidden] { display: none !important; }
h1,h2,h3 { letter-spacing: -.04em; text-wrap: balance; }
.story-noise { display: none; }
.chapter h1,.chapter h2 { font-size: clamp(54px,7.1vw,96px); margin-top: 0; }
.chapter-lead { margin-top: 30px; }
.chapter[data-chapter="2"] h2 { font-size: clamp(48px,5.7vw,88px); }
.chapter[data-chapter="3"] h2 { font-size: clamp(48px,5.9vw,88px); }
.product-scene { top: 49%; }
.journey-stage { --scene-ink: var(--text); }
.static-motion .journey-stage { --scene-ink: var(--text) !important; }
.motion-ready:not(.static-motion) .journey-stage { background: var(--page); }
.site-header nav { font-size: 12px; letter-spacing: .13em; }
.chapter-progress,.event-story-progress { font-size: clamp(14px,1.2vw,18px); }
.chapter-progress a,.event-story-progress a { min-height: 44px; display: inline-flex; align-items: center; }
.flavor-kind { font-size: 13px; margin-bottom: 12px; color: var(--text-secondary); }
.flavor-copy h3 { margin-top: 0; }
.flavor-visual[data-flavor="gin"] .flavor-circle { background: #d3e8c8; }
.flavor-visual[data-flavor="aperitivo"] .flavor-circle { background: #f0c5b1; }
.flavor-visual[data-flavor="mango"] .flavor-circle { background: #f0d194; }
.flavor-visual[data-flavor="mango"] img { filter: saturate(1.15); transform: rotate(10deg); }
.flavor-catalog { margin-top: 100px; padding-top: 45px; border-top: 1px solid var(--line); }
.catalog-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 25px; }
.catalog-heading h3 { font-size: clamp(28px,3.2vw,44px); }
.catalog-heading p { font-size: 13px; color: var(--text-secondary); }
.catalog-filters { margin-top: 28px; flex-wrap: wrap; }
.flavor-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 28px; }
.flavor-item { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 15px 10px; padding: 28px 0; }
.flavor-dot { flex: 0 0 13px; height: 13px; margin-top: 4px; border-radius: 50%; background: var(--flavor-colour); }
.flavor-item > div { flex: 1; min-width: 0; }
.flavor-item h3 { font-family: DM,sans-serif; font-size: 18px; font-weight: 700; letter-spacing: -.02em; line-height: 1.35; }
.flavor-item p { font-size: 11px; margin-top: 5px; color: var(--text-secondary); }
.flavor-item > button { margin-left: 23px; background: none; color: var(--accent-link); font-size: 12px; padding: 0 0 4px; border-bottom: 1px solid currentColor; }
.flavor-item > button:hover { color: var(--text); }
.craft-copy h2 { font-size: clamp(48px,5.8vw,88px); }
.concept-section { grid-template-columns: 1fr 1fr; }
.concept-media img { aspect-ratio: 4/5; object-position: 61% 50%; }
.concept-steps { list-style: none; padding: 0; margin: 32px 0; counter-reset: process; }
.concept-steps li { display: grid; grid-template-columns: 32px 1fr; gap: 5px 15px; padding: 18px 0; border-top: 1px solid var(--line); }
.concept-steps li:before { counter-increment: process; content: counter(process,decimal-leading-zero); grid-row: span 2; color: var(--accent-link); font-size: 12px; font-weight: 700; line-height: 23px; }
.concept-steps strong { font-size: 17px; }
.concept-steps span { font-size: 14px; line-height: 1.6; color: var(--text-secondary); }
.concept-options { display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 12px; color: var(--text-secondary); }
.founder-section { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 9vw; }
.founder-portrait { margin: 0; }
.founder-portrait img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.founder-portrait figcaption { margin-top: 16px; color: var(--text-secondary); font-size: 12px; }
.founder-copy h2 { font-size: clamp(46px,5.6vw,80px); }
.founder-copy > p { color: var(--text-secondary); max-width: 45ch; line-height: 1.75; margin-top: 27px; }
.founder-copy blockquote { font-family: Georgia,serif; font-style: italic; font-size: clamp(25px,3vw,38px); line-height: 1.25; margin: 28px 0; max-width: 21ch; }
.founder-film { border-top: 1px solid var(--line); padding-top: 20px; }
.founder-film summary { font-size: 14px; font-weight: 700; cursor: pointer; }
.founder-film video { display: block; width: 100%; height: auto; margin-top: 20px; background: #111; }
.video-caption { font-size: 12px; color: var(--text-secondary); line-height: 1.6; margin-top: 12px; }
.event-story-copy h2 { font-size: clamp(50px,6.6vw,96px); margin-top: 0; }
.event-story-copy > p { margin-top: 28px; }
.event-night-photo video { width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; }
.event-night-shade { background: linear-gradient(90deg,#100d17e8 0%,#100d17c9 38%,#100d1730 76%),linear-gradient(0deg,#100d1788,transparent 60%); }
.event-types { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 23px 35px; }
.event-types a { width: fit-content; padding-bottom: 5px; border-bottom: 1px solid transparent; }
.event-types a:hover { border-bottom-color: currentColor; }
.partner-intro,.locations-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; }
.partner-intro > p,.locations-heading > p { max-width: 32ch; line-height: 1.7; color: var(--text-secondary); font-size: 15px; }
.partner-row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 26px; margin-top: 45px; }
.partner-row figure { margin: 0; }
.partner-row img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.partner-row figcaption { font-size: 12px; font-weight: 700; margin-top: 16px; }
.location-list { display: block; margin-top: 55px; }
.location-item { display: grid; grid-template-columns: 1fr 1fr auto; gap: 30px; align-items: center; padding: 34px 0; border-top: 1px solid var(--line); }
.location-item:last-child { border-bottom: 1px solid var(--line); }
.location-item h3 { font-family: DM,sans-serif; font-size: 24px; font-weight: 700; }
.location-item p { margin-top: 7px; font-size: 12px; color: var(--text-secondary); }
.location-item address { font-style: normal; font-size: 15px; line-height: 1.65; }
.location-item .text-link { font-size: 13px; padding-bottom: 6px; }
.location-note { color: var(--text-secondary); font-size: 12px; line-height: 1.6; margin-top: 25px; }
.video-section { display: grid; grid-template-columns: 1fr .7fr; align-items: center; gap: 10vw; }
.video-section h2 { font-size: clamp(44px,5.8vw,86px); }
.video-section > div > p { margin-top: 26px; max-width: 35ch; color: var(--text-secondary); line-height: 1.7; }
.video-section > video { width: 100%; max-height: 560px; aspect-ratio: 9/16; background: #0b090f; }
.faq-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; align-items: start; }
.faq-section h2 { font-size: clamp(44px,5.5vw,80px); }
.faq-list details { border-top: 1px solid var(--line); padding: 23px 0; }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; font-size: 17px; line-height: 1.5; font-weight: 700; padding-right: 20px; }
.faq-list p { color: var(--text-secondary); line-height: 1.75; font-size: 15px; margin-top: 16px; max-width: 58ch; }
.contact h2 { font-size: clamp(70px,12.7vw,180px); }
footer > div { flex-wrap: wrap; }

@media(max-width:1100px) {
  .flavor-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .founder-section { gap: 6vw; }
  .partner-intro,.locations-heading { display: block; }
  .partner-intro > p,.locations-heading > p { margin-top: 27px; max-width: 46ch; }
}
@media(max-width:700px) {
  .chapter h1,.chapter h2 { font-size: clamp(44px,11.6vw,76px); }
  .chapter[data-chapter="2"] h2,.chapter[data-chapter="3"] h2 { font-size: clamp(39px,10.3vw,68px); }
  .chapter-lead { margin-top: 18px; font-size: 14px; line-height: 1.55; max-width: 32ch; }
  .product-scene { top: 66%; }
  .flavor-catalog { margin-top: 65px; padding-top: 30px; }
  .catalog-heading { display: block; }
  .catalog-heading p { margin-top: 12px; }
  .flavor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; }
  .flavor-item { padding: 23px 0; }
  .flavor-item h3 { font-size: 16px; }
  .concept-section { grid-template-columns: 1fr; gap: 38px; }
  .concept-media img { aspect-ratio: 1; }
  .founder-section { grid-template-columns: 1fr; gap: 38px; }
  .founder-portrait { width: 85%; }
  .founder-copy h2 { font-size: 12vw; }
  .event-story-copy h2 { font-size: 12vw; }
  .event-story-copy > p { margin-top: 18px; }
  .event-night-shade { background: linear-gradient(180deg,#100d17e5 0%,#100d17ad 40%,#100d1720 72%,#100d17bb 100%); }
  .event-night-photo video { object-position: 65% 50%; }
  .event-types { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; font-size: 12px; }
  .partner-row { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 20px; margin-top: 32px; }
  .partner-row figcaption { font-size: 11px; line-height: 1.5; }
  .location-item { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
  .location-item h3 { font-size: 22px; }
  .location-item .text-link { justify-self: start; }
  .video-section { grid-template-columns: 1fr; gap: 35px; }
  .video-section h2 { font-size: 11vw; }
  .video-section > video { max-height: 560px; width: 85%; margin: auto; }
  .faq-section { grid-template-columns: 1fr; gap: 32px; }
  .faq-section h2 { font-size: 12vw; }
  .faq-list summary { font-size: 16px; }
}

@media(max-width:700px) {
  .journey-footer,.event-story-footer { right: 84px; }
  .chapter-progress,.event-story-progress { width: 100%; }
  .story-count,.event-story-count { display: none; }
  .motion-control,.static-motion .motion-control { right: 20px; bottom: 20px; width: 44px; height: 44px; padding: 0; justify-content: center; }
  .motion-control > span:first-child { font-size: 16px; }
  .motion-control > span:last-child { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
}

.occasion-ticket strong { font-size: clamp(30px,3.3vw,54px); }
@media(max-width:700px) { .occasion-ticket strong { font-size: 6.8vw; } }

/* Nightlife direction: the source film leads, the product story follows. */
.night-hero { position: relative; height: 115svh; background: #0b090f; color: #f6f3fa; }
.night-hero-stage { position: sticky; top: 0; height: 100svh; min-height: 650px; overflow: clip; isolation: isolate; }
.hero-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; z-index: -3; }
.hero-film-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg,#09070fe8 0%,#09070f98 40%,#09070f18 80%),linear-gradient(0deg,#09070fbb,transparent 45%,#09070f35); }
.night-hero-content { display: flex; flex-direction: column; justify-content: center; min-height: 100svh; padding: 150px 6vw 130px; }
.night-hero h1 { font-size: clamp(64px,7.5vw,96px); letter-spacing: -.035em; line-height: 1.02; max-width: 14ch; margin: 0; }
.night-hero h1 span { color: #ff95c3; }
.night-hero-content > p { font-size: 18px; line-height: 1.65; max-width: 43ch; margin-top: 26px; }
.hero-actions { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; margin-top: 30px; }
.hero-discover { font-size: 14px; font-weight: 700; padding: 12px 0; text-decoration: underline; text-underline-offset: 6px; }
.hero-film-footer { position: absolute; left: 6vw; right: 220px; bottom: 28px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.hero-film-footer > span { font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.hero-playback { order: -1; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; background: #12101950; color: #f6f3fa; border: 1px solid #f6f3fa60; border-radius: 30px; padding: 10px 16px; font-size: 12px; }
.hero-playback:hover { background: #121019c0; }
.hero-playback svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hero-icon-play { display: none; }
.hero-playback[aria-pressed="true"] .hero-icon-pause { display: none; }
.hero-playback[aria-pressed="true"] .hero-icon-play { display: block; }
.soft-type { font-family: Archivo,sans-serif; font-style: normal; text-transform: uppercase; font-size: .85em; letter-spacing: -.035em; }
.product-scene .ingredient { display: none; }
.product-note { font-size: 12px; text-transform: uppercase; letter-spacing: .12em; transform: none; }
.product-note em { font-family: DM,sans-serif; font-size: 18px; line-height: 1.5; font-style: normal; font-weight: 700; }
.founder-copy blockquote { font-family: DM,sans-serif; font-style: normal; font-weight: 700; }
.static-motion .night-hero { height: auto; }
.static-motion .night-hero-stage { position: relative; height: auto; }
@media(max-width:700px) {
  .night-hero { height: 110svh; }
  .night-hero-stage { min-height: 720px; }
  .night-hero-content { justify-content: flex-start; padding: 130px 24px 170px; }
  .night-hero h1 { font-size: clamp(36px,11.8vw,76px); max-width: none; }
  .night-hero-content > p { margin-top: 24px; font-size: 16px; max-width: 30ch; }
  .hero-actions { gap: 17px 24px; margin-top: 27px; }
  .hero-actions .button { padding: 16px 22px; font-size: 13px; }
  .hero-discover { font-size: 12px; }
  .hero-film { object-position: 64% 50%; }
  .hero-film-shade { background: linear-gradient(180deg,#09070fd9 0%,#09070fa3 40%,#09070f00 75%,#09070f80); }
  .hero-film-footer { left: 24px; right: 84px; bottom: 24px; }
  .hero-film-footer > span { display: none; }
  .product-note { font-size: 9px; }
  .product-note em { font-size: 13px; }
}

.occasion-ticket strong { letter-spacing: -.035em; }
.journey-footer,.event-story-footer,.motion-control { font-size: 11px; }
.flavor-meta { font-size: 12px; }
@media(max-width:700px) { .section-top > p:last-child { font-size: 12px; } }

/* The black branded paper cup replaces the V1 waffle throughout V2 motion. */
.static-motion .product-model .ice-piece { transform: translate(0,130px) !important; }
.event-cup-model { display: block; width: 100%; height: auto; overflow: visible; }

@media(max-width:360px) {
  .chapter h1,.chapter h2 { font-size: 36px; }
  .chapter[data-chapter="2"] h2,.chapter[data-chapter="3"] h2 { font-size: 34px; }
  .chapter-lead { font-size: 13px; line-height: 1.5; }
}
@media(max-width:360px) {
  .chapter-progress,.event-story-progress { font-size: 12px; column-gap: 10px; padding-inline: 10px; }
}
.season-note { font-size: 12px; line-height: 1.65; }
