/* Homepage campaign / editorial system, scoped to preserve interior pages. */
.page-home { --home-gutter: clamp(20px, 4vw, 64px); }
.page-home main > section { scroll-margin-top: calc(var(--header-height) + 20px); }
.page-home .home-pill { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:46px; padding:12px 24px; border:1px solid #bcbcbc; border-radius:999px; color:#111; font:600 12px/1.4 var(--sans); letter-spacing:.035em; transition:background .2s, border-color .2s; }
.page-home .home-pill:hover { background:#f4f4f4; border-color:#111; }
.page-home .home-pill--white { color:#fff; border-color:#ffffffa6; }
.page-home .home-pill--white:hover { background:#ffffff18; border-color:#fff; }
.page-home .home-pill > [aria-hidden] { font-size:20px; line-height:1; }
.page-home a:focus-visible, .page-home button:focus-visible, .page-home summary:focus-visible { outline:2px solid currentColor; outline-offset:5px; }

.page-home .campaign-hero { height:100svh; min-height:640px; background:#2b211c; touch-action:pan-y pinch-zoom; }
.campaign-slide { position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .9s ease, visibility .9s; }
.campaign-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.campaign-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.campaign-copy { position:absolute; left:var(--home-gutter); top:50%; transform:translateY(-40%); width:42%; color:#111; }
.campaign-copy h1, .campaign-copy h2 { margin:0; font:400 clamp(50px, 5.8vw, 92px)/1.08 var(--title); letter-spacing:.015em; font-synthesis:none; }
.campaign-copy--brand { top:auto; bottom:clamp(118px, 15vh, 168px); transform:none; width:auto; max-width:85%; color:#fff; text-shadow:0 2px 24px #0004; }
.campaign-copy--brand h1 { font-size:clamp(50px, 5.8vw, 92px); line-height:1.18; letter-spacing:0; }
.campaign-tagline { margin:26px 0 0; font-size:12px; font-weight:600; letter-spacing:.26em; }
.campaign-eyebrow { display:block; margin-bottom:18px; font-size:13px; letter-spacing:.2em; font-weight:700; }
.campaign-description { margin:22px 0 28px; font-size:16px; line-height:1.7; color:#333; }
.campaign-slide--brand { background:#182f50; }
.campaign-slide--tropical { background:#f5cba7; }
.campaign-slide--zero { background:#d3eaf6; }
.campaign-slide--light .home-pill { border-color:#1118; background:#ffffff50; }
.campaign-slide--light .home-pill:hover { background:#fff; }
.campaign-controls { position:absolute; z-index:3; bottom:30px; right:var(--home-gutter); display:flex; align-items:center; color:#fff; gap:2px; transition:color .5s; }
.campaign-controls button { display:grid; place-items:center; width:42px; height:44px; padding:8px; background:transparent; color:inherit; border:0; border-radius:10px; cursor:pointer; }
.campaign-controls button:hover { background:#ffffff20; }
.campaign-controls svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.campaign-indicators { display:flex; gap:0; margin-right:12px; }
.campaign-indicators button { width:34px; padding:4px; }
.campaign-indicators span { width:100%; height:3px; border-radius:3px; background:currentColor; opacity:.35; transition:opacity .4s; }
.campaign-indicators [aria-current="true"] span { opacity:1; }
.campaign-play-icon { display:none; }
.campaign-controls .is-paused .campaign-pause-icon { display:none; }
.campaign-controls .is-paused .campaign-play-icon { display:block; }
.campaign-hero.is-light .campaign-controls, .campaign-hero.is-light .scroll-cue { color:#111; text-shadow:none; }
.campaign-hero.is-light .campaign-controls { background:#ffffffd9; border-radius:999px; padding:0 8px; }
.campaign-hero .scroll-cue { z-index:2; }
@media (min-width:901px) {
  .campaign-slide--light .campaign-image { top:var(--header-height); height:calc(100% - var(--header-height)); }
  .page-home.home-hero-light .site-header.is-hero { color:#111; background:#ffffffd9; backdrop-filter:blur(12px); }
  .page-home.home-hero-light .site-header.is-hero .brand-link img { filter:none; }
  .page-home.home-hero-light .site-header.is-hero .header-contact { color:#111; border-color:#1118; }
}

.page-home .home-flavours { --flavour-card-width:clamp(440px, 40vw, 570px); --flavour-card-gap:24px; padding:94px 0 90px; overflow:clip; }
.page-home .home-flavour-heading h2 { font-size:clamp(44px, 5vw, 74px); line-height:1.12; letter-spacing:.025em; }
.page-home .home-flavour-viewport { margin-top:30px; }
.page-home .home-flavour-slide { opacity:.72; }
.page-home .home-flavour-slide.is-active { opacity:1; }
.page-home .home-flavour-card-head { display:flex; align-items:center; justify-content:center; min-height:62px; padding:12px; gap:10px; }
.page-home .home-flavour-card-head h3 { max-width:none; font-size:18px; letter-spacing:.035em; line-height:1.3; }
.home-new-badge { flex:none; display:inline-block; padding:3px 8px; border-radius:7px; background:#111; color:#fff; font:600 10px/1.3 var(--sans); letter-spacing:.04em; }
.page-home .home-flavour-controls { margin-top:30px; }
body[data-page="home"] .home-flavour-controls > a { gap:18px; border-color:#bcbcbc; font-size:12px; padding:0 24px; }

.home-photo-panel { position:relative; overflow:hidden; border-radius:var(--radius-media); isolation:isolate; }
.home-photo-panel > img { position:absolute; inset:0; z-index:-1; width:100%; height:100%; object-fit:cover; }
.home-brand-moment { margin:0 20px; min-height:600px; height:min(66vw, 850px); background:#211a14; color:#fff; text-align:center; display:flex; justify-content:center; align-items:flex-start; }
.home-moment-copy { padding:70px 24px 0; max-width:900px; text-shadow:0 2px 20px #0005; }
.home-moment-copy h2 { margin:0; font:400 clamp(38px, 4.1vw, 62px)/1.15 var(--title); letter-spacing:.015em; }
.home-moment-copy h2 span { display:block; }
.home-moment-copy p { margin:22px 0 28px; font-size:17px; line-height:1.6; }
.home-editorial { margin:0 auto; max-width:1680px; padding:100px var(--home-gutter) 0; }
.home-section-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:36px; }
.home-section-heading h2 { margin:0; font:400 clamp(34px, 3.4vw, 54px)/1.15 var(--title); letter-spacing:.025em; }
.home-section-heading p { color:#666; margin:16px 0 0; font-size:16px; line-height:1.6; }
.home-section-heading > .home-pill { flex:none; }
.home-editorial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.enjoy-card > img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius-media); }
.enjoy-card h3, .home-news-card h3 { margin:22px 0 10px; font:400 clamp(23px, 2vw, 31px)/1.2 var(--title); letter-spacing:.015em; }
.enjoy-card p, .home-news-card p { margin:0; color:#666; font-size:15px; line-height:1.75; }
.home-recipe { margin-top:20px; font-size:14px; }
.home-recipe summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; padding:8px 0; cursor:pointer; list-style:none; font-weight:600; }
.home-recipe summary::-webkit-details-marker { display:none; }
.home-recipe summary span { font-size:20px; transition:transform .2s; }
.home-recipe[open] summary span { transform:rotate(45deg); }
.home-recipe ol { margin:10px 0 0; padding:20px 20px 20px 38px; border-radius:12px; background:#f7f7f7; color:#444; line-height:1.8; }
#highball-recipe { scroll-margin-top:calc(var(--header-height) + 24px); }
.home-updates { padding-top:100px; padding-bottom:100px; }
.home-news-card > a { display:block; border-radius:var(--radius-media); }
.home-news-photo { aspect-ratio:3/2; border-radius:var(--radius-media); overflow:hidden; background:#f6f6f6; }
.home-news-photo img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.home-news-photo .news-tropical-image { object-position:right center; }
.home-news-photo .news-zero-image { object-position:right center; }
.home-news-card a:hover .home-news-photo img { transform:scale(1.025); }
.home-news-card:last-child .home-news-photo img { object-position:center 25%; }
.home-news-category { display:block; margin:22px 0 12px; font-size:11px; font-weight:600; letter-spacing:.07em; color:#777; }
.home-news-card h3 { margin:0 0 12px; }
.home-text-link { display:inline-flex; align-items:center; gap:16px; margin-top:22px; min-height:44px; font-size:12px; font-weight:600; }
.home-text-link > [aria-hidden] { font-size:20px; }
.home-signature { min-height:500px; height:45vw; max-height:740px; border-radius:0 0 40px 40px; color:#fff; text-align:center; background:#0d2c4e; }
.home-signature-copy { padding:80px 24px 0; }
.home-signature-copy h2 { margin:0; font:400 clamp(30px,3.6vw,56px)/1.22 var(--title); letter-spacing:.01em; }
.home-signature-copy h2 span { display:block; }
.home-signature-copy p { margin:24px 0 0; font-size:12px; letter-spacing:.22em; line-height:1.6; }

@media (max-width:900px) {
  .page-home .campaign-hero { min-height:720px; }
  .campaign-slide--brand .campaign-copy--brand { top:122px; bottom:auto; left:22px; max-width:calc(100% - 44px); }
  .campaign-slide--brand .campaign-image { top:auto; bottom:122px; height:calc(100% - 410px); object-position:75% center; mask-image:linear-gradient(to bottom,transparent,black 10%,black 96%,transparent); }
  .campaign-copy h1 { font-size:clamp(44px, 7vw, 68px); }
  .campaign-copy:not(.campaign-copy--brand) { top:122px; transform:none; width:calc(100% - 40px); left:20px; }
  .campaign-copy h2 { font-size:clamp(42px,7.5vw,64px); line-height:1; }
  .campaign-slide--light .campaign-image { top:auto; bottom:72px; height:56%; object-position:right center; mask-image:linear-gradient(to bottom,transparent,black 12%); }
  .campaign-eyebrow { margin-bottom:10px; font-size:11px; }
  .campaign-description { margin:14px 0 18px; font-size:14px; }
  .campaign-copy .home-pill { min-height:42px; padding:10px 18px; font-size:11px; }
  .campaign-controls { right:16px; bottom:22px; }
  .page-home .home-flavours { --flavour-card-width:65vw; --flavour-card-gap:18px; padding:76px 0; }
  .page-home .home-flavour-heading h2 { font-size:clamp(36px,6vw,56px); }
  .page-home .home-flavour-card-head h3 { font-size:16px; }
  .home-brand-moment { margin:0 16px; min-height:540px; }
  .home-moment-copy { padding-top:50px; }
  .home-moment-copy h2 { font-size:36px; }
  .home-moment-copy p { font-size:15px; }
  .home-editorial { padding-top:76px; }
  .home-editorial-grid { gap:18px; }
  .home-section-heading h2 { font-size:34px; }
  .enjoy-card h3, .home-news-card h3 { font-size:23px; }
  .enjoy-card p, .home-news-card p { font-size:14px; }
  .home-updates { padding-bottom:76px; }
  .home-signature-copy { padding-top:60px; }
}
@media (min-width:601px) and (max-width:900px) and (max-height:850px) {
  .campaign-slide--brand .campaign-image,
  .campaign-slide--light .campaign-image { object-fit:contain; object-position:center; }
}
@media (max-width:600px) {
  .page-home .campaign-hero { min-height:710px; }
  .campaign-slide--brand .campaign-image { height:calc(100% - 382px); }
  .campaign-copy--brand { left:22px; bottom:166px; max-width:calc(100% - 44px); }
  .campaign-copy--brand h1 { font-size:clamp(39px, 10.4vw, 56px); }
  .campaign-tagline { margin-top:22px; font-size:10px; letter-spacing:.17em; }
  .campaign-copy h2 { font-size:43px; }
  .campaign-controls { right:50%; transform:translateX(50%); bottom:68px; }
  .campaign-indicators { margin-right:10px; }
  .campaign-hero .scroll-cue { bottom:8px; gap:2px; }
  .campaign-slide--light .campaign-image { height:45%; bottom:122px; }
  .page-home .home-flavours { --flavour-card-width:82vw; --flavour-card-gap:12px; padding:64px 0; }
  .page-home .home-flavour-heading h2 { font-size:clamp(31px,8vw,45px); letter-spacing:.01em; }
  .page-home .home-flavour-viewport { margin-top:22px; }
  .page-home .home-flavour-card-head { padding:10px 4px; min-height:54px; gap:8px; }
  .page-home .home-flavour-card-head h3 { font-size:14px; letter-spacing:.015em; }
  .page-home .home-flavour-controls { gap:4px; margin-top:24px; }
  body[data-page="home"] .home-flavour-controls > a { padding:0 18px; gap:12px; font-size:11px; }
  .home-brand-moment { margin:0 12px; min-height:0; height:auto; padding-bottom:calc(66.6667% - 16px); }
  .home-brand-moment > img { inset:auto 0 0; height:auto; aspect-ratio:3/2; object-fit:contain; }
  .home-moment-copy { padding:40px 18px 34px; }
  .home-moment-copy h2 { font-size:clamp(27px,7.5vw,40px); }
  .home-moment-copy p { font-size:14px; margin:18px 0 22px; }
  .home-moment-copy .home-pill { font-size:11px; }
  .home-editorial { padding-top:64px; }
  .home-section-heading { display:block; margin-bottom:28px; }
  .home-section-heading h2 { font-size:clamp(30px,8vw,40px); }
  .home-section-heading p { font-size:14px; margin-top:12px; }
  .home-section-heading > .home-pill { margin-top:22px; }
  .home-editorial-grid { grid-template-columns:1fr; gap:36px; }
  .enjoy-card > img { max-height:500px; }
  .enjoy-card h3, .home-news-card h3 { font-size:26px; margin-top:18px; }
  .home-news-card h3 { margin-top:0; }
  .home-news-category { margin-top:18px; }
  .home-text-link { margin-top:12px; }
  .home-updates { padding-bottom:64px; }
  .home-signature { height:520px; min-height:0; border-radius:0 0 28px 28px; }
  .home-signature-copy { padding:52px 20px 0; }
  .home-signature-copy h2 { font-size:clamp(27px,7.4vw,36px); line-height:1.25; }
  .home-signature-copy p { font-size:10px; letter-spacing:.13em; }
}
/* Dedicated mobile photographs replace the landscape image bands. */
@media (max-width:600px) {
  .campaign-slide--portrait .campaign-image {
    inset:var(--header-height) 0 0;
    width:100%;
    height:calc(100% - var(--header-height));
    object-fit:cover;
    object-position:center;
    mask-image:none;
    -webkit-mask-image:none;
  }
  .campaign-slide--portrait .campaign-copy:not(.campaign-copy--brand) { top:110px; }
  .campaign-slide--portrait .campaign-copy h2 { font-size:40px; }
  .campaign-slide--portrait .campaign-description { margin:12px 0 14px; }
}
@media (max-width:600px) and (max-height:760px) {
  .campaign-slide--portrait .campaign-copy:not(.campaign-copy--brand) { top:100px; }
  .campaign-slide--portrait .campaign-copy h2 { font-size:32px; }
  .campaign-slide--portrait .campaign-eyebrow { font-size:10px; margin-bottom:8px; }
  .campaign-slide--portrait .campaign-description { font-size:12px; line-height:1.5; margin:8px 0 10px; }
  .campaign-slide--portrait .campaign-copy .home-pill { min-height:40px; padding:9px 16px; font-size:10px; }
  .campaign-slide--portrait .campaign-copy--brand { top:110px; }
  .campaign-slide--portrait .campaign-copy--brand h1 { font-size:clamp(32px,9vw,38px); }
}
@media (prefers-reduced-motion:reduce) {
  .campaign-slide, .home-news-photo img { transition:none; }
}
