:root { --pink:#da1984; --pink-dark:#a90860; --yellow:#fff033; --cream:#fffdf0; --ink:#221d21; --line:rgba(34,29,33,.13); --shadow:0 18px 38px rgba(69,23,48,.14); --radius:28px; --page: min(1180px, calc(100% - clamp(32px, 8vw, 144px))); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; overflow-x:hidden; color:var(--ink); background:var(--cream); font-family:"Poppins",Arial,sans-serif; }
img { display:block; max-width:100%; } a { color:inherit; text-decoration:none; } button,input,textarea { font:inherit; } button { cursor:pointer; } :focus-visible { outline:3px solid var(--yellow); outline-offset:4px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* Shared chrome */
.site-header { position:sticky; top:0; z-index:20; background:var(--pink); border-top:4px solid var(--yellow); }
.nav-shell { width:var(--page); min-height:76px; margin:auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; }
.nav-links { display:flex; align-items:center; gap:clamp(16px,2.8vw,42px); } .nav-links-right { justify-content:flex-end; }
.nav-link { color:#fff; font-size:13px; font-weight:900; letter-spacing:.02em; text-transform:uppercase; } .nav-link:hover,.nav-link.active { color:var(--yellow); }
.brand { width:132px; height:49px; overflow:hidden; } .brand img { width:100%; height:100%; max-width:none; object-fit:contain; object-position:center; transform:none; }
.button,.pill,.mega-pill,.outline-pill { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:8px; padding:11px 24px; border:2px solid transparent; border-radius:999px; font-size:14px; font-weight:900; letter-spacing:.02em; text-align:center; text-transform:uppercase; transition:transform .2s,box-shadow .2s,background .2s; }
.button:hover,.pill:hover,.mega-pill:hover,.outline-pill:hover { transform:translateY(-3px); box-shadow:0 10px 18px rgba(36,17,31,.2); }.button-light,.pill-light { background:#fff; color:var(--pink); }.pill-yellow,.mega-pill { background:var(--yellow); color:var(--pink); }.outline-pill { border-color:var(--pink); color:var(--pink); }
.menu-toggle { display:none; width:44px; height:44px; padding:6px; border:0; background:transparent; }.menu-toggle span { display:block; height:3px; margin:5px; border-radius:10px; background:var(--yellow); }.mobile-panel { display:none; }
.site-footer { display:grid; grid-template-columns:1.15fr 1fr .8fr; gap:clamp(28px,5vw,78px); align-items:center; min-height:226px; padding:34px max(5vw,calc((100% - 1180px)/2)); color:#fff; background:var(--pink); }.footer-brand img { width:150px; height:53px; object-fit:contain; object-position:center; }.footer-brand p { max-width:290px; margin:12px 0 0; font-size:14px; line-height:1.35; }.footer-links { display:grid; grid-template-columns:repeat(2,max-content); gap:8px 28px; font-size:14px; font-weight:700; }.footer-links a:hover { color:var(--yellow); }.footer-meta { justify-self:end; display:grid; justify-items:end; gap:8px; text-align:right; }.footer-meta img { width:92px; height:116px; object-fit:contain; }.footer-meta small { font-size:11px; line-height:1.45; }

/* Reusable site sections */
.section-pad { padding:clamp(64px,9vw,116px) max(5vw,calc((100% - 1180px)/2)); }.section-title { margin:0 auto clamp(28px,5vw,56px); color:var(--pink); font-size:clamp(44px,6vw,82px); font-weight:900; line-height:.9; text-align:center; text-transform:uppercase; }.section-title span { color:var(--yellow); text-shadow:2px 2px 0 var(--pink); }.section-title.solid { color:var(--pink); }.tag { display:inline-flex; padding:5px 14px; border-radius:999px; background:var(--pink); color:var(--yellow); font-size:12px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }

/* Home */
.home-hero { position:relative; overflow:hidden; background:var(--yellow); }.hero-track { position:relative; }.hero-slide { display:none; }.hero-slide.is-active { display:block; animation:fade .35s ease both; }.hero-slide img { width:100%; aspect-ratio:1920/868; max-height:690px; object-fit:cover; object-position:center bottom; }.slider-dots { position:absolute; bottom:14px; left:0; right:0; display:flex; justify-content:center; gap:10px; }.slider-dots button,.mini-dots span { width:13px; height:13px; padding:0; border:2px solid var(--pink); border-radius:50%; background:var(--cream); }.slider-dots button.active,.mini-dots span:first-child { background:var(--pink); }
.skip-band { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:22px max(5vw,calc((100% - 1180px)/2)); color:#fff; background:var(--pink); }.skip-band h1 { margin:0 0 4px; color:var(--yellow); font-size:clamp(26px,3vw,38px); line-height:.95; text-transform:uppercase; }.skip-band p { max-width:700px; margin:0; font-size:clamp(14px,1.5vw,18px); line-height:1.35; }.band-actions { display:flex; flex-wrap:wrap; gap:10px; flex:0 0 auto; }
.featured { position:relative; overflow:hidden; text-align:center; }.featured-window { width:var(--page); margin:auto; overflow:hidden; padding:8px 0 26px; }.featured-track { display:flex; gap:clamp(16px,2.4vw,30px); transition:transform .35s ease; }.featured-card { position:relative; flex:0 0 calc((100% - clamp(32px,4.8vw,60px))/3); min-width:0; min-height:390px; padding:20px 20px 24px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }.featured-card .tag { position:absolute; top:18px; left:18px; }.featured-card img { width:100%; height:225px; object-fit:contain; }.featured-card h3 { margin:8px 0 0; color:var(--pink); font-size:clamp(20px,2.2vw,28px); line-height:1; text-transform:uppercase; }.featured-card p { max-width:280px; margin:8px 0 0; font-size:13px; line-height:1.35; }.round-arrow { position:absolute; top:53%; z-index:2; width:46px; height:46px; padding:0; border:0; border-radius:50%; background:var(--cream); box-shadow:var(--shadow); }.round-arrow img { width:100%; height:100%; }.arrow-prev { left:max(16px,calc((100% - 1290px)/2)); }.arrow-next { right:max(16px,calc((100% - 1290px)/2)); }.mini-dots { display:none; }.mega-pill { min-width:min(300px,90vw); }
.mood-section { background:#fff9d4; }.mood-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2.4vw,30px); width:var(--page); margin:auto; }.mood-card { aspect-ratio:1/.85; display:grid; place-items:center; padding:16px; border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); transition:transform .2s; }.mood-card:hover { transform:translateY(-6px) rotate(-1deg); }.mood-card img { width:84%; height:84%; object-fit:contain; }
.app-promo { display:grid; grid-template-columns:.9fr 1.1fr; min-height:510px; overflow:hidden; background:var(--yellow); }.app-ui-shot { display:grid; place-items:center; padding:40px; }.app-ui-shot img { width:min(270px,72%); height:420px; object-fit:contain; filter:drop-shadow(0 20px 22px rgba(50,22,30,.2)); }.promo-copy { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:clamp(48px,7vw,90px); text-align:center; }.promo-copy h2 { max-width:580px; margin:0; color:var(--pink); font-size:clamp(38px,5vw,68px); line-height:.93; text-transform:uppercase; }.feature-icons { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; width:min(540px,100%); margin:30px 0; }.feature-icons div { color:var(--pink); font-size:clamp(12px,1.4vw,17px); font-weight:900; line-height:1.05; text-transform:uppercase; }.feature-icons img { height:64px; margin:0 auto 8px; object-fit:contain; }

/* Menu */
.menu-hero { background:var(--yellow); }.menu-hero img { width:100%; max-height:500px; aspect-ratio:1920/961; object-fit:cover; object-position:center bottom; }.menu-section { padding:clamp(44px,7vw,90px) max(5vw,calc((100% - 1180px)/2)); }.drip-title { text-align:center; }.drip-title h1 { margin:0; color:var(--pink); font-family:"Baloo 2",sans-serif; font-size:clamp(58px,8vw,104px); line-height:.85; text-transform:uppercase; }.drip-title p { margin:10px auto 32px; color:var(--pink); font-size:clamp(16px,2vw,23px); }.menu-tabs { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-bottom:38px; }.menu-tabs button { min-height:42px; padding:7px 18px; border:0; border-radius:999px; color:var(--pink); background:transparent; font-weight:900; text-transform:uppercase; }.menu-tabs button.active,.menu-tabs button:hover { background:var(--yellow); }.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }.product-card { min-height:190px; display:grid; grid-template-columns:1fr .8fr; gap:10px; align-items:center; padding:22px; border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }.product-card h2 { margin:0; color:var(--pink); font-size:clamp(18px,1.8vw,24px); line-height:1; text-transform:uppercase; }.product-card p { margin:8px 0 14px; font-size:13px; line-height:1.35; }.product-card strong { font-size:28px; }.product-card span { font-size:.45em; }.product-card img { width:100%; height:150px; object-fit:contain; }.product-card.hidden { display:none; }

/* About */
.about-page { overflow:hidden; }.about-hero { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,6vw,80px); align-items:center; padding:clamp(56px,8vw,110px) max(5vw,calc((100% - 1180px)/2)); background:linear-gradient(120deg,var(--cream) 0 70%,var(--yellow) 70%); }.eyebrow { margin:0 0 12px; color:var(--pink); font-size:13px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.about-hero h1 { max-width:700px; margin:0; color:var(--pink); font-size:clamp(58px,8vw,108px); line-height:.82; text-transform:uppercase; }.about-hero h1 em { color:var(--pink-dark); font-style:normal; }.about-hero p { max-width:590px; margin:24px 0 0; font-size:clamp(16px,1.7vw,21px); line-height:1.55; }.about-hero-art { position:relative; min-height:410px; }.about-hero-art img { position:absolute; box-shadow:var(--shadow); object-fit:cover; }.about-hero-art .promo-one { width:54%; right:4%; top:0; transform:rotate(5deg); }.about-hero-art .promo-two { width:49%; left:0; bottom:0; transform:rotate(-7deg); }.about-hero-art .sticker { width:44%; height:43%; right:0; bottom:4%; object-fit:contain; box-shadow:none; transform:rotate(11deg); }.about-values { padding:clamp(55px,8vw,100px) max(5vw,calc((100% - 1180px)/2)); background:var(--pink); color:#fff; }.about-values h2 { max-width:640px; margin:0 0 36px; color:var(--yellow); font-size:clamp(42px,6vw,76px); line-height:.9; text-transform:uppercase; }.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.value-card { min-height:210px; padding:24px; border:1px solid rgba(255,255,255,.3); border-radius:var(--radius); background:rgba(255,255,255,.1); }.value-card b { display:block; margin-bottom:14px; color:var(--yellow); font-size:24px; text-transform:uppercase; }.value-card p { margin:0; font-size:14px; line-height:1.55; }.about-moment { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,6vw,90px); align-items:center; padding:clamp(56px,8vw,100px) max(5vw,calc((100% - 1180px)/2)); }.about-moment img { width:100%; max-height:510px; object-fit:cover; border-radius:var(--radius); }.about-moment h2 { margin:0; color:var(--pink); font-size:clamp(42px,5vw,68px); line-height:.9; text-transform:uppercase; }.about-moment p { max-width:620px; font-size:clamp(16px,1.6vw,20px); line-height:1.55; }.about-moment strong { color:var(--pink); }

/* Community, FAQ */
.community-mood-hero { min-height:310px; display:grid; place-items:center; padding:50px 24px; background:var(--yellow); }.community-mood-hero h1 { margin:0; color:var(--pink); font-size:clamp(42px,6vw,78px); line-height:.9; text-align:center; text-transform:uppercase; }.community-intro { position:relative; padding:clamp(55px,7vw,90px) max(8vw,calc((100% - 900px)/2)); overflow:hidden; text-align:center; }.community-intro p { position:relative; z-index:1; margin:0; font-size:clamp(17px,2vw,24px); line-height:1.55; }.squiggle { position:absolute; width:180px; opacity:.45; }.squiggle-left { left:-40px; top:10px; }.squiggle-right { right:-50px; bottom:10px; }.community-gallery { width:var(--page); margin:auto; padding:0 0 clamp(60px,8vw,100px); }.event-row { display:grid; grid-template-columns:1fr 1fr; min-height:410px; overflow:hidden; border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }.event-row + .event-row { margin-top:34px; }.event-content { display:flex; flex-direction:column; justify-content:center; padding:clamp(30px,5vw,70px); }.event-row h2 { margin:0 0 20px; color:var(--pink); font-size:clamp(34px,4vw,56px); line-height:.95; text-transform:uppercase; }.event-copy { font-size:15px; line-height:1.55; }.event-copy p { margin:0 0 14px; }.event-media { min-height:280px; }.event-media img { width:100%; height:100%; object-fit:cover; }.pink-row { background:var(--pink); color:#fff; }.pink-row h2 { color:var(--yellow); }.pink-tile { background:var(--yellow) url('Assets/pulpilates-community.png') center/cover no-repeat; }.gallery-button { display:none; }
.faq-page { min-height:60vh; }.faq-title { width:min(600px,100%); margin:0 auto 34px; padding:10px 22px; border-radius:20px; background:var(--pink); color:var(--yellow); font-size:clamp(46px,6vw,72px); line-height:1; text-align:center; text-transform:uppercase; }.faq-list { width:min(940px,100%); margin:auto; display:grid; gap:12px; }.faq-item { overflow:hidden; border:2px solid var(--pink); border-radius:18px; }.faq-item button { width:100%; min-height:60px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 22px; border:0; background:transparent; color:var(--pink); font-weight:900; font-size:clamp(17px,2vw,24px); text-align:left; }.faq-item button span { width:14px; height:14px; flex:0 0 auto; border-right:3px solid currentColor; border-bottom:3px solid currentColor; transform:rotate(45deg); transition:transform .2s; }.faq-item.open { background:var(--pink); }.faq-item.open button,.faq-answer { color:var(--yellow); }.faq-item.open button span { transform:rotate(225deg); }.faq-answer { display:none; padding:0 22px 22px; font-size:15px; line-height:1.5; }.faq-item.open .faq-answer { display:block; }.faq-answer p { margin:0; }

/* Contact and download */
.message-section { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:clamp(34px,8vw,110px); min-height:580px; padding:clamp(56px,8vw,100px) max(5vw,calc((100% - 1100px)/2)); }.message-card { display:grid; gap:14px; padding:clamp(22px,4vw,38px); border-radius:var(--radius); background:var(--yellow); box-shadow:var(--shadow); }.message-card label { font-size:12px; font-weight:800; text-transform:uppercase; }.message-card input,.message-card textarea { width:100%; border:1px solid rgba(218,25,132,.35); border-radius:14px; padding:13px 15px; color:var(--ink); background:#fffdf8; outline:0; }.message-card textarea { min-height:150px; resize:vertical; }.message-card button { justify-self:start; border:0; background:var(--pink); color:#fff; }.message-art { position:relative; }.message-art h1 { position:relative; z-index:1; max-width:500px; margin:0 0 -30px; color:var(--pink); font-size:clamp(52px,7vw,92px); line-height:.83; text-transform:uppercase; }.message-art img { width:100%; max-height:350px; object-fit:contain; object-position:center; }.contact-band { display:grid; grid-template-columns:auto 1fr 1.15fr; align-items:center; gap:clamp(24px,5vw,60px); padding:clamp(52px,7vw,90px) max(5vw,calc((100% - 1100px)/2)); background:var(--pink); color:#fff; }.phone-art { width:clamp(100px,13vw,180px); }.contact-band h2 { margin:0; color:var(--yellow); font-size:clamp(46px,6vw,76px); line-height:.84; text-transform:uppercase; }.contact-copy { font-size:clamp(15px,1.6vw,19px); line-height:1.55; }.contact-copy p { margin:0 0 12px; }.contact-copy a { color:var(--yellow); font-weight:800; }.support-buttons { display:flex; flex-wrap:wrap; gap:10px; }.support-buttons a { min-height:44px; padding:10px 18px; border-radius:999px; background:var(--cream); color:var(--pink); font-size:13px; font-weight:900; text-transform:uppercase; }
.download-hero { display:grid; grid-template-columns:1fr .8fr; align-items:center; gap:clamp(30px,8vw,110px); min-height:590px; padding:clamp(56px,8vw,100px) max(5vw,calc((100% - 1100px)/2)); overflow:hidden; background:var(--yellow); }.download-copy h1 { max-width:650px; margin:0; color:var(--pink); font-size:clamp(48px,6.4vw,86px); line-height:.9; text-transform:uppercase; }.download-copy p { max-width:590px; margin:20px 0 0; color:var(--pink); font-size:clamp(17px,2vw,24px); line-height:1.45; }.download-note { display:inline-block; margin-top:22px; padding:9px 15px; border:2px solid var(--pink); border-radius:999px; color:var(--pink); font-size:13px; font-weight:800; }.phone-screen { justify-self:center; width:min(285px,82%); max-height:500px; object-fit:contain; filter:drop-shadow(0 22px 24px rgba(50,22,30,.22)); }.download-features { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:clamp(50px,7vw,84px) max(5vw,calc((100% - 1100px)/2)); background:var(--pink); color:#fff; }.download-features article { padding:24px; border:1px solid rgba(255,255,255,.3); border-radius:var(--radius); text-align:center; }.download-features img { height:80px; margin:0 auto 14px; object-fit:contain; }.download-features h2 { margin:0 0 8px; color:var(--yellow); font-size:22px; text-transform:uppercase; }.download-features p { margin:0; font-size:14px; line-height:1.5; }

/* Legal */
.legal-page { min-height:65vh; padding:clamp(58px,7vw,92px) max(5vw,calc((100% - 960px)/2)) clamp(72px,9vw,120px); background:#fffdf7; }
.legal-header { max-width:820px; margin:0 auto clamp(48px,7vw,76px); padding-bottom:30px; border-bottom:4px solid var(--pink); text-align:center; }
.legal-header .eyebrow { margin-bottom:8px; letter-spacing:.06em; }
.legal-page .legal-header h1 { margin:0; color:var(--pink); font-size:clamp(36px,5vw,58px); font-weight:900; line-height:1; letter-spacing:0; text-transform:uppercase; }
.legal-subtitle { margin:8px 0 0; color:var(--ink); font-size:clamp(14px,1.7vw,18px); font-weight:800; line-height:1.35; }
.legal-effective-date { margin:16px 0 0; color:var(--pink); font-size:15px; line-height:1.5; }
.legal-address { margin:24px 0 0; font-size:14px; font-style:normal; line-height:1.55; }
.legal-owner { margin:16px 0 0; font-size:14px; line-height:1.55; }
.legal-document { max-width:820px; margin:auto; color:#2c272a; font-size:16px; line-height:1.72; }
.legal-document p { margin:0 0 16px; }
.legal-introduction { margin-bottom:40px; font-size:17px; }
.legal-section { padding:28px 0 12px; border-top:1px solid rgba(218,25,132,.28); scroll-margin-top:100px; }
.legal-section:first-child { border-top:0; padding-top:0; }
.legal-section h2 { margin:0 0 12px; color:var(--pink); font-size:clamp(19px,2vw,23px); font-weight:900; line-height:1.25; letter-spacing:0; text-transform:uppercase; }
.legal-subsection { padding:12px 0 2px 20px; border-left:3px solid rgba(218,25,132,.24); }
.legal-subsection + .legal-subsection { margin-top:10px; }
.legal-subsection h3 { margin:0 0 7px; color:var(--pink-dark); font-size:16px; line-height:1.4; letter-spacing:0; }
.legal-document ul { margin:6px 0 20px; padding-left:26px; }
.legal-document li { padding-left:5px; }
.legal-document li + li { margin-top:5px; }
.legal-document li::marker { color:var(--pink); }
.legal-definition-list { margin:8px 0 18px; }
.legal-definition-list p { margin-bottom:12px; }
.legal-definition-list strong { color:#54213e; }
.legal-closing { margin-top:30px; padding-top:16px; border-top:4px solid var(--pink); font-weight:600; }
.legal-separator { color:var(--pink); letter-spacing:.08em; }
.legal-contact address { font-style:normal; line-height:1.7; }
.legal-contact address strong { color:var(--pink); }
.legal-end { margin-top:28px; color:var(--pink); font-size:14px; font-weight:900; text-align:center; }

/* Account deletion */
.account-deletion-page .legal-header { margin-bottom:42px; }
.account-deletion-page .legal-document a { color:var(--pink-dark); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.deletion-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.82fr); gap:clamp(26px,5vw,58px); align-items:start; }
.deletion-form { display:grid; gap:13px; padding:clamp(22px,3vw,30px); border:3px solid var(--pink); border-radius:26px; background:#fff; box-shadow:var(--shadow); }
.deletion-field { display:grid; gap:6px; }
.deletion-field label { color:var(--pink-dark); font-size:12px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.deletion-field input { width:100%; min-height:50px; padding:12px 14px; border:1px solid rgba(218,25,132,.36); border-radius:14px; color:var(--ink); background:#fffdf8; outline:0; }
.deletion-field input:focus { border-color:var(--pink); box-shadow:0 0 0 3px rgba(218,25,132,.15); }
.deletion-or { margin:-4px 0 !important; color:#735266; font-size:12px; font-weight:800; text-align:center; text-transform:uppercase; }
.deletion-help { margin:0 !important; color:#654f5c; font-size:12px; line-height:1.5; }
.deletion-submit { width:100%; border:0; background:var(--pink); color:#fff; }
.deletion-fallback { grid-column:1/-1; margin:0 !important; padding:14px 18px; border-radius:14px; background:#fff7c7; font-size:14px; }
.deletion-steps { margin:8px 0 18px; padding-left:26px; }
.deletion-steps li { padding-left:6px; }
.deletion-steps li + li { margin-top:8px; }
.legal-deletion-callout { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-top:24px; padding:22px clamp(20px,3vw,28px); border-radius:22px; background:var(--yellow); box-shadow:0 12px 24px rgba(104,77,12,.14); }
.legal-deletion-callout strong { display:block; color:var(--pink-dark); font-size:18px; }
.legal-deletion-callout p { margin:5px 0 0; font-size:14px; line-height:1.5; }
.legal-deletion-callout .button { flex:0 0 auto; border:0; background:var(--pink); color:#fff; text-decoration:none; }

@keyframes fade { from { opacity:.25; } to { opacity:1; } }
@media (max-width:900px) { .nav-links-left .nav-link:nth-child(n+4) { display:none; }.product-grid { grid-template-columns:repeat(2,1fr); }.featured-card { flex-basis:calc((100% - 22px)/2); }.event-row { min-height:340px; }.about-hero { grid-template-columns:1fr .8fr; }.contact-band { grid-template-columns:auto 1fr; }.contact-copy { grid-column:2; }.support-buttons { grid-column:1/-1; }.download-features { gap:14px; } }
@media (max-width:680px) { .nav-shell { width:calc(100% - 32px); min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:16px; }.brand { width:108px; height:40px; flex:0 0 auto; }.nav-links { display:none; }.menu-toggle { display:block; flex:0 0 44px; margin-left:auto; }.mobile-panel { padding:0 24px 20px; border-top:1px solid rgba(255,255,255,.18); background:var(--pink); }.mobile-panel.open { display:grid; }.mobile-link { padding:12px 0; color:#fff; border-bottom:1px solid rgba(255,255,255,.18); font-size:14px; font-weight:900; text-transform:uppercase; }.site-footer { grid-template-columns:1fr auto; gap:26px 12px; min-height:0; padding:30px 22px; }.footer-brand p { font-size:12px; }.footer-links { grid-template-columns:1fr; gap:6px; font-size:13px; }.footer-meta { grid-column:1/-1; grid-template-columns:1fr auto; align-items:end; justify-self:stretch; }.footer-meta img { width:62px; height:78px; order:2; }.footer-meta small { order:1; text-align:left; }.section-pad { padding:58px 20px; }.skip-band { display:block; padding:26px 20px; }.band-actions { margin-top:18px; }.hero-slide img { min-height:260px; aspect-ratio:1.35/1; object-position:center bottom; }.featured-window { width:calc(100% - 40px); }.featured-card { flex-basis:100%; min-height:365px; }.featured-card img { height:205px; }.round-arrow { top:55%; width:40px; height:40px; }.arrow-prev { left:8px; }.arrow-next { right:8px; }.mood-grid { grid-template-columns:repeat(2,1fr); width:calc(100% - 40px); }.app-promo,.about-hero,.about-moment,.message-section,.download-hero { grid-template-columns:1fr; }.app-promo { min-height:0; }.app-ui-shot { padding:38px 20px 12px; }.app-ui-shot img { height:330px; }.promo-copy { padding:46px 22px; }.feature-icons { gap:8px; }.feature-icons img { height:52px; }.menu-hero img { aspect-ratio:1.35/1; }.menu-section { padding:48px 20px 62px; }.product-grid { grid-template-columns:1fr; }.about-hero { padding:58px 22px; background:linear-gradient(155deg,var(--cream) 0 68%,var(--yellow) 68%); }.about-hero-art { min-height:330px; }.value-grid { grid-template-columns:1fr; }.about-values,.about-moment { padding:56px 22px; }.about-moment img { max-height:380px; }.community-gallery { width:calc(100% - 40px); }.event-row { grid-template-columns:1fr; }.event-row .event-media { min-height:260px; }.event-row.pink-row .event-content { order:1; }.event-row.pink-row .event-media { order:2; }.community-intro { padding:54px 28px; }.faq-page { padding:58px 20px; }.message-section { gap:30px; padding:56px 22px; }.message-art { order:-1; }.message-art img { max-height:245px; }.contact-band { grid-template-columns:1fr; text-align:center; padding:50px 22px; }.phone-art { margin:auto; }.contact-copy { grid-column:auto; }.support-buttons { grid-column:auto; justify-content:center; }.download-hero { padding:58px 22px 28px; text-align:center; }.download-copy { display:grid; justify-items:center; }.phone-screen { max-height:390px; }.download-features { grid-template-columns:1fr; padding:46px 22px; }.legal-page { padding:48px 20px 72px; }.legal-header { margin-bottom:42px; padding-bottom:24px; }.legal-document { font-size:15px; line-height:1.68; }.legal-introduction { margin-bottom:32px; font-size:16px; }.legal-section { padding:24px 0 8px; }.legal-subsection { padding-left:14px; }.legal-document ul { padding-left:22px; } }
@media (max-width:760px) { .deletion-intro { grid-template-columns:1fr; }.deletion-fallback { grid-column:auto; } }
@media (max-width:600px) { .legal-deletion-callout { align-items:flex-start; flex-direction:column; }.legal-deletion-callout .button { width:100%; } }

/* Refinement pass: a flush header, centred mood cards, interactive featured cards, and the original three-part footer rhythm. */
.site-header { border-top:0; }
.featured-window { padding-top:26px; padding-bottom:38px; margin-top:-18px; margin-bottom:-12px; }
.featured-card { transition:transform .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.featured-card .tag, .featured-card img, .featured-card h3, .featured-card p { transition:transform .25s ease, background .25s ease, color .25s ease; }
@media (hover:hover) and (pointer:fine) {
  .featured-card:hover { z-index:1; background:var(--pink); border-color:var(--pink); box-shadow:0 25px 45px rgba(117,9,70,.28); transform:translateY(-14px) scale(1.035); }
  .featured-card:hover .tag { background:var(--yellow); color:var(--pink); }
  .featured-card:hover img { transform:scale(1.09) translateY(-4px); }
  .featured-card:hover h3 { color:var(--yellow); }
  .featured-card:hover p { color:#fff; }
}
.mood-grid { width:min(1180px,calc(100% - 40px)); grid-template-columns:repeat(4,minmax(0,1fr)); margin-inline:auto; }
.site-footer { grid-template-columns:1fr auto 1fr; gap:clamp(30px,6vw,100px); min-height:245px; padding:34px max(5vw,calc((100% - 1180px)/2)); }
.footer-brand img { width:158px; height:55px; }.footer-brand p { max-width:270px; }
.footer-cup { width:clamp(106px,10vw,148px); max-height:160px; object-fit:contain; }
.footer-navigation { justify-self:end; display:grid; justify-items:end; gap:18px; }
.footer-links { grid-template-columns:repeat(2,max-content); justify-content:end; gap:8px 30px; }
.footer-navigation small { font-size:11px; line-height:1.45; text-align:right; }
@media (max-width:680px) {
  .mood-grid { width:calc(100% - 40px); grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-footer { grid-template-columns:1fr auto; gap:24px 16px; min-height:0; padding:30px 22px; }
  .footer-cup { width:74px; max-height:100px; }
  .footer-navigation { justify-self:end; gap:14px; }
  .footer-links { grid-template-columns:1fr; gap:6px; font-size:13px; }
  .footer-navigation small { max-width:160px; font-size:10px; }
}

/* Featured drinks: carry over the landing page's soft zoom and pink gradient fade. */
.featured-card { overflow:hidden; transition:transform .5s cubic-bezier(.22,.68,.31,1), box-shadow .5s ease; }
.featured-card::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(135deg,#da1984 0%,#ff4db8 100%); opacity:0; transition:opacity .5s ease; }
.featured-card > * { position:relative; z-index:1; }
.featured-card .tag, .featured-card img, .featured-card h3, .featured-card p { transition:transform .4s ease, background .4s ease, color .4s ease; }
@media (hover:hover) and (pointer:fine) {
  .featured-card:hover { background:#fff; border-color:transparent; box-shadow:0 35px 80px rgba(218,25,132,.35); transform:translateY(-8px) scale(1.03); }
  .featured-card:hover::after { opacity:1; }
  .featured-card:hover .tag { background:var(--yellow); color:var(--pink); }
  .featured-card:hover img { transform:scale(1.06) translateY(-4px); }
  .featured-card:hover h3, .featured-card:hover p { color:#fff; }
}

/* Footer: retain the original logo / cup / links composition with a direct contact CTA. */
.site-footer { grid-template-columns:minmax(280px,1fr) minmax(150px,.58fr) minmax(220px,.7fr); gap:clamp(38px,8vw,140px); min-height:310px; padding-block:42px; }
.footer-brand { display:grid; justify-items:start; gap:10px; }.footer-brand img { width:clamp(160px,12vw,205px); height:auto; object-fit:contain; }.footer-brand p { max-width:330px; margin:0; font-size:15px; line-height:1.25; }.footer-brand small { margin-top:2px; font-size:11px; line-height:1.4; }
.footer-contact-button { display:inline-flex; align-items:center; gap:14px; min-height:48px; padding:6px 8px 6px 20px; border-radius:999px; background:#fff; color:var(--pink); font-size:14px; font-weight:900; text-transform:uppercase; transition:transform .2s ease,box-shadow .2s ease; }.footer-contact-button span { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; background:var(--yellow); color:var(--pink); font-size:22px; line-height:1; }.footer-contact-button:hover { transform:translateY(-3px); box-shadow:0 10px 20px rgba(80,8,46,.25); }
.footer-cup { width:clamp(130px,12vw,190px); max-height:200px; justify-self:center; }.footer-links { display:grid; grid-template-columns:1fr; justify-self:end; align-self:center; gap:12px; font-size:clamp(17px,1.7vw,23px); font-weight:500; text-align:right; }.footer-links a:hover { color:var(--yellow); }
@media (max-width:680px) {
  .site-footer { grid-template-columns:minmax(0,1fr) auto; gap:22px 16px; min-height:0; padding:32px 22px; }.footer-brand { gap:8px; }.footer-brand img { width:145px; }.footer-brand p { max-width:235px; font-size:12px; }.footer-brand small { font-size:9px; }.footer-contact-button { min-height:40px; padding:5px 6px 5px 14px; gap:9px; font-size:11px; }.footer-contact-button span { width:28px; height:28px; font-size:18px; }.footer-cup { width:76px; max-height:118px; }.footer-links { grid-column:1/-1; justify-self:start; display:flex; flex-wrap:wrap; gap:8px 18px; padding-top:8px; border-top:1px solid rgba(255,255,255,.22); font-size:13px; text-align:left; }
}

/* Footer offer and social row, aligned to the original landing-page composition. */
.footer-brand { gap:5px; }.footer-brand .footer-offer { display:flex; align-items:baseline; gap:7px; margin:0; color:#fff; font-size:18px; font-weight:800; line-height:.85; }.footer-offer strong { color:#fff; font-size:clamp(48px,4.3vw,70px); font-weight:900; letter-spacing:-.07em; }.footer-brand .footer-copy { max-width:295px; margin:0 0 7px; color:#fff; font-size:13px; line-height:1.2; }.footer-navigation { justify-self:end; display:grid; justify-items:end; gap:13px; }.footer-links { grid-template-columns:1fr; gap:8px; font-size:clamp(17px,1.7vw,23px); font-weight:500; text-align:right; }.footer-socials { display:flex; justify-content:flex-end; gap:8px; }.footer-socials a { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; transition:transform .2s ease,background .2s ease; }.footer-socials a:hover { background:rgba(255,255,255,.16); transform:translateY(-3px); }.footer-socials img { width:100%; height:100%; object-fit:contain; }.footer-navigation small { color:#fff; font-size:11px; text-align:right; }
@media (max-width:680px) { .footer-brand .footer-offer { gap:5px; font-size:14px; }.footer-offer strong { font-size:42px; }.footer-brand .footer-copy { max-width:230px; font-size:11px; }.footer-navigation { grid-column:1/-1; justify-self:stretch; display:grid; grid-template-columns:1fr auto; align-items:end; gap:12px; padding-top:14px; border-top:1px solid rgba(255,255,255,.22); }.footer-links { grid-column:1; justify-self:start; display:grid; padding:0; border:0; gap:6px; font-size:13px; text-align:left; }.footer-socials { justify-self:end; gap:5px; }.footer-socials a { width:27px; height:27px; }.footer-navigation small { grid-column:1/-1; justify-self:end; font-size:9px; } }

/* Compact the footer and crop the square logo source to its visible mark. */
.site-footer { grid-template-columns:minmax(250px,1fr) minmax(120px,.48fr) minmax(200px,.65fr); gap:clamp(28px,5vw,80px); min-height:238px; padding-block:26px; }
.footer-brand { gap:4px; }.footer-brand > a { display:block; width:clamp(145px,9vw,178px); overflow:visible; }.footer-brand img { width:100%; height:auto; object-fit:contain; object-position:center; }.footer-brand .footer-offer { font-size:16px; }.footer-offer strong { font-size:clamp(42px,3.5vw,56px); }.footer-brand .footer-copy { max-width:270px; font-size:12px; }.footer-contact-button { min-height:42px; padding:5px 7px 5px 16px; font-size:12px; }.footer-contact-button span { width:30px; height:30px; font-size:19px; }.footer-cup { width:clamp(104px,8vw,138px); max-height:150px; }.footer-navigation { gap:9px; }.footer-links { gap:6px; font-size:clamp(16px,1.35vw,19px); }.footer-socials a { width:30px; height:30px; }.footer-navigation small { font-size:10px; }
@media (max-width:680px) { .site-footer { grid-template-columns:minmax(0,1fr) auto; min-height:0; padding:26px 22px; gap:18px 14px; }.footer-brand > a { width:138px; }.footer-brand img { width:100%; height:auto; }.footer-brand .footer-offer { font-size:13px; }.footer-offer strong { font-size:38px; }.footer-brand .footer-copy { font-size:10px; }.footer-cup { width:66px; max-height:94px; }.footer-contact-button { min-height:38px; font-size:10px; }.footer-contact-button span { width:26px; height:26px; font-size:16px; } }

/* About call to action and contact-page refinement. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.about-cta { margin-top:8px; border:0; background:var(--pink); color:#fff; box-shadow:0 12px 20px rgba(181,11,104,.25); }.about-cta:hover { background:var(--pink-dark); color:#fff; }
.message-section { position:relative; grid-template-columns:minmax(300px,.72fr) minmax(380px,1.28fr); min-height:650px; gap:clamp(46px,9vw,140px); padding:clamp(72px,8vw,112px) max(5vw,calc((100% - 1140px)/2)) clamp(92px,10vw,140px); overflow:hidden; background:var(--cream); }.message-card { width:min(420px,100%); justify-self:start; gap:14px; padding:clamp(24px,3vw,34px); border:0; border-radius:28px; background:linear-gradient(145deg,#fff033,#ffe915); box-shadow:0 22px 42px rgba(104,77,12,.22); }.message-card input,.message-card textarea { border:0; border-radius:17px; padding:16px 18px; background:#fff; box-shadow:0 8px 14px rgba(80,42,49,.18); color:var(--ink); font-weight:700; }.message-card input::placeholder,.message-card textarea::placeholder { color:var(--pink); font-size:12px; font-weight:900; text-transform:uppercase; }.message-card textarea { min-height:230px; }.message-card button { justify-self:center; min-width:190px; min-height:48px; border:0; border-radius:999px; background:var(--pink); color:#fff; box-shadow:0 8px 14px rgba(145,4,81,.28); }.message-art { align-self:center; }.message-art h1 { max-width:690px; margin:0 0 -42px; font-size:clamp(64px,8vw,116px); letter-spacing:-.05em; }.message-art img { width:min(680px,100%); max-height:390px; margin-left:3%; }
.contact-band { position:relative; grid-template-columns:minmax(250px,.78fr) minmax(310px,1fr) minmax(260px,.72fr); gap:clamp(28px,6vw,90px); min-height:410px; padding:clamp(88px,9vw,126px) 0 clamp(62px,7vw,94px) max(5vw,calc((100% - 1140px)/2)); overflow:hidden; background:var(--pink); }.contact-band::before { content:""; position:absolute; z-index:0; top:-76px; left:0; width:100%; height:78px; background:radial-gradient(88px 64px at 12% 100%,var(--cream) 98%,transparent 100%) 0 0/220px 78px repeat-x; pointer-events:none; }.contact-band > * { position:relative; z-index:1; }.contact-heading { position:relative; min-height:220px; display:flex; align-items:center; }.phone-art { position:absolute; left:0; bottom:0; width:clamp(128px,13vw,205px); opacity:.98; }.contact-band h2 { position:relative; margin-left:clamp(82px,8vw,128px); color:var(--yellow); font-size:clamp(56px,7vw,98px); }.contact-copy { max-width:430px; font-size:clamp(16px,1.7vw,21px); line-height:1.4; }.contact-copy p { margin:0 0 16px; }.support-buttons { width:100%; display:grid; gap:24px; align-self:center; }.support-buttons a { min-height:86px; display:grid; place-items:center; padding:16px 22px; border-radius:28px 0 0 28px; background:var(--cream); color:var(--pink); font-size:clamp(17px,1.8vw,25px); font-weight:900; line-height:1.05; text-align:center; text-transform:uppercase; box-shadow:-10px 12px 20px rgba(100,6,56,.14); transition:transform .2s ease,background .2s ease; }.support-buttons a:hover { transform:translateX(-8px); background:#fff; }
@media (max-width:900px) { .message-section { grid-template-columns:.8fr 1.2fr; }.contact-band { grid-template-columns:240px 1fr; padding-right:max(0px,calc((100% - 760px)/2)); }.support-buttons { grid-column:1/-1; display:flex; justify-content:flex-end; }.support-buttons a { min-width:230px; } }
@media (max-width:680px) { .message-section { grid-template-columns:1fr; min-height:0; gap:34px; padding:58px 22px 105px; }.message-card { justify-self:center; }.message-card textarea { min-height:185px; }.message-art { order:-1; }.message-art h1 { margin-bottom:-26px; font-size:clamp(52px,16vw,76px); }.message-art img { max-height:250px; margin:auto; }.contact-band { grid-template-columns:1fr; gap:24px; min-height:0; padding:72px 0 52px 22px; text-align:left; }.contact-band::before { top:-54px; height:56px; background-size:160px 56px; }.contact-heading { min-height:150px; }.phone-art { width:120px; }.contact-band h2 { margin-left:86px; font-size:58px; }.contact-copy { max-width:310px; font-size:16px; }.support-buttons { grid-column:auto; display:grid; width:100%; gap:12px; }.support-buttons a { min-height:66px; justify-self:stretch; min-width:0; padding-left:20px; font-size:17px; } }

/* Contact band: real SVG wave and independent visual columns. */
.contact-band { grid-template-columns:minmax(470px,.88fr) minmax(330px,.75fr) minmax(300px,.66fr); gap:clamp(38px,4vw,74px); min-height:390px; padding-top:clamp(94px,8vw,118px); overflow:visible; }.contact-band::before { content:none; }.contact-wave { position:absolute; z-index:0; top:-58px; left:0; width:100%; height:120px; pointer-events:none; }.contact-wave svg { display:block; width:100%; height:100%; }.contact-band > .contact-wave {    margin-top: 20px; z-index:0; }.contact-band > :not(.contact-wave) { z-index:1; }
.contact-heading { min-height:190px; }.phone-art { width:clamp(132px,11vw,184px); }.contact-band h2 { margin-left:clamp(145px,9vw,178px); color:#fff; font-size:clamp(54px,5.2vw,82px); line-height:.82; text-shadow:0 5px 0 rgba(146,4,82,.16); }.contact-copy { align-self:center; max-width:410px; font-size:clamp(16px,1.45vw,20px); }.contact-copy a { color:var(--yellow); }.support-buttons { align-self:center; }.support-buttons a { min-height:80px; }
@media (max-width:1050px) { .contact-band { grid-template-columns:minmax(390px,.9fr) minmax(280px,.9fr); padding-right:0; }.support-buttons { grid-column:1/-1; display:flex; justify-content:flex-end; }.support-buttons a { min-width:250px; }.contact-copy { grid-column:2; } }
@media (max-width:680px) { .contact-band { grid-template-columns:1fr; gap:24px; padding:76px 0 52px 22px; }.contact-wave { top:-43px; height:95px; }.contact-heading { min-height:145px; }.phone-art { width:116px; }.contact-band h2 { margin-left:92px; font-size:56px; }.contact-copy { grid-column:auto; max-width:310px; }.support-buttons { grid-column:auto; display:grid; justify-content:stretch; }.support-buttons a { min-width:0; min-height:66px; } }

/* Final contact responsiveness: keep the display title entirely inside the left column. */
.contact-band { grid-template-columns:520px minmax(330px,1fr) minmax(300px,.72fr); gap:clamp(56px,4vw,78px); }.contact-wave { top:-66px; height:140px; }.contact-heading { min-height:188px; }.phone-art { width:clamp(130px,10vw,170px); }.contact-band h2 { margin-left:clamp(152px,9vw,178px); color:#fff; font-size:clamp(50px,4.3vw,72px); line-height:.86; }.contact-copy { grid-column:auto; align-self:center; max-width:400px; }.support-buttons { grid-column:auto; }
@media (max-width:1350px) { .contact-band { grid-template-columns:minmax(400px,.86fr) minmax(300px,1fr); padding-right:0; }.contact-band h2 { margin-left:128px; font-size:clamp(48px,4.5vw,62px); }.phone-art { width:120px; }.support-buttons { grid-column:1/-1; display:flex; justify-content:flex-end; }.support-buttons a { min-width:245px; } }
@media (max-width:680px) { .contact-band { grid-template-columns:1fr; gap:24px; }.contact-wave { top:-48px; height:110px; }.contact-heading { min-height:145px; }.phone-art { width:112px; }.contact-band h2 { margin-left:88px; font-size:54px; }.contact-copy,.support-buttons { grid-column:auto; }.support-buttons { display:grid; }.support-buttons a { min-width:0; } }

/* Broad rolling arc divider for the contact section. */
.contact-wave { top:-78px; height:180px; }
@media (max-width:680px) { .contact-wave { top:-58px; height:138px; } }

/* Homepage app promo: editorial photo, app benefits, phone showcase, and gooey lower edge. */
.app-promo { position:relative; display:grid; grid-template-columns:minmax(250px,.3fr) minmax(440px,.43fr) minmax(250px,.27fr); min-height:clamp(620px,48vw,760px); padding-bottom:112px; overflow:hidden; background:var(--yellow); }.app-promo > :not(.app-goo) { position:relative; z-index:1; }.app-promo-photo { min-height:100%; overflow:hidden; }.app-promo-photo img { width:100%; height:100%; object-fit:cover; object-position:center 48%; }.promo-copy { align-items:center; justify-content:center; padding:clamp(38px,4vw,70px) clamp(24px,3vw,52px) 130px; text-align:center; }.promo-copy h2 { max-width:620px; margin:0; color:var(--pink); font-size:clamp(42px,5.5vw,88px); font-weight:900; line-height:.83; letter-spacing:-.045em; text-transform:uppercase; }.promo-copy h2 span { color:#fff; }.feature-icons { width:min(590px,100%); gap:clamp(14px,2.2vw,32px); margin:clamp(26px,3.4vw,46px) 0; }.feature-icons div { font-size:clamp(13px,1.45vw,20px); line-height:1.02; }.feature-icons img { height:clamp(64px,6vw,104px); margin-bottom:10px; }.promo-copy .outline-pill { min-width:min(410px,100%); min-height:58px; border:3px solid var(--pink); background:transparent; color:var(--pink); font-size:clamp(17px,1.7vw,24px); }.app-phone { display:grid; align-items:end; justify-items:center; padding:24px 16px 42px 0; }.app-phone img { width:min(410px,100%); height:min(730px,94%); object-fit:contain; filter:drop-shadow(0 24px 24px rgba(81,32,35,.28)); }.app-goo { position:absolute; z-index:2; right:0; bottom:-1px; left:0; width:100%; height:180px; pointer-events:none; }.app-goo svg { display:block; width:100%; height:100%; }
@media (max-width:1050px) { .app-promo { grid-template-columns:minmax(190px,.26fr) minmax(390px,.5fr) minmax(190px,.24fr); min-height:600px; }.promo-copy { padding-inline:22px; }.feature-icons { gap:12px; }.app-phone { padding-right:14px; }.app-phone img { width:min(270px,100%); }.app-promo-photo img { object-position:58% center; } }
@media (max-width:760px) { .app-promo { grid-template-columns:1fr; min-height:0; padding-bottom:102px; }.app-promo-photo { min-height:330px; max-height:430px; }.app-promo-photo img { object-position:center 35%; }.promo-copy { padding:52px 22px 38px; }.promo-copy h2 { font-size:clamp(46px,13vw,72px); }.feature-icons { max-width:480px; margin:30px 0; }.feature-icons img { height:60px; }.feature-icons div { font-size:12px; }.promo-copy .outline-pill { min-width:min(330px,100%); min-height:52px; font-size:16px; }.app-phone { padding:0 22px 28px; }.app-phone img { width:min(270px,80%); height:440px; }.app-goo { height:108px; } }

/* Keep the rotated About collage clear of the copy on narrow screens. */
@media (max-width:680px) {
  .about-hero {
    row-gap:36px;
  }

  .about-hero-art {
    min-height:clamp(330px,105vw,500px);
  }
}

/* Stretch the contact divider into longer, slower wave arcs. */
.contact-wave { overflow:hidden; }.contact-wave svg { transform:scaleX(1.35); transform-origin:center bottom; }
@media (max-width:680px) { .contact-wave svg { transform:scaleX(1.16); } }

/* Download page: a playful, responsive three-screen app showcase. */
.download-hero {
  position:relative;
  display:grid;
  grid-template-columns:minmax(300px,.86fr) minmax(520px,1.14fr);
  align-items:center;
  gap:clamp(34px,6vw,96px);
  min-height:clamp(640px,55vw,800px);
  padding:clamp(70px,8vw,120px) max(5vw,calc((100% - 1280px)/2));
  overflow:hidden;
  isolation:isolate;
  background:linear-gradient(135deg,#ffec29 0%,#ffef39 57%,#f7d921 100%);
}
.download-hero::before,.download-hero::after { position:absolute; z-index:-1; width:clamp(170px,23vw,390px); aspect-ratio:1; border-radius:50%; content:""; background:rgba(255,255,255,.19); filter:blur(1px); }
.download-hero::before { top:-20%; right:6%; }
.download-hero::after { bottom:-29%; left:28%; background:rgba(218,25,132,.12); }
.download-copy { display:grid; justify-items:start; }
.download-eyebrow { margin:0 0 14px; color:var(--pink); font-size:clamp(12px,1vw,15px); font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.download-copy h1 { max-width:620px; margin:0; color:var(--pink); font-size:clamp(52px,6vw,94px); font-weight:900; line-height:.83; letter-spacing:-.055em; text-transform:uppercase; }
.download-copy p:not(.download-eyebrow) { max-width:540px; margin:24px 0 0; color:var(--pink); font-size:clamp(16px,1.5vw,21px); font-weight:700; line-height:1.48; }
.store-badges { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.store-badge { display:block; min-width:152px; border-radius:10px; transition:transform .24s ease,filter .24s ease; }
.store-badge img { display:block; width:178px; max-width:100%; height:auto; border-radius:9px; }
.store-badge:hover { transform:translateY(-6px) scale(1.025); filter:drop-shadow(0 12px 10px rgba(118,48,43,.25)); }
.store-badge:focus-visible { outline:4px solid #fff; outline-offset:5px; }
.screen-gallery { display:grid; grid-template-columns:.83fr 1fr .83fr; align-items:end; gap:clamp(10px,1.8vw,28px); width:min(720px,100%); padding:20px 0 22px; }
.download-screen { position:relative; display:block; margin:0; overflow:hidden; border:clamp(6px,.65vw,11px) solid #281f28; border-radius:clamp(23px,2.4vw,37px); background:#281f28; box-shadow:0 22px 28px rgba(117,49,37,.3); transform-origin:center bottom; transition:transform .3s cubic-bezier(.2,.85,.32,1.2),box-shadow .3s ease; }
.download-screen::after { position:absolute; inset:0; border:1px solid rgba(255,255,255,.32); border-radius:inherit; content:""; pointer-events:none; }
.download-screen img { display:block; width:100%; aspect-ratio:9 / 19; object-fit:cover; object-position:top center; }
.screen-main { z-index:2; transform:translateY(-22px); }
.screen-left { transform:rotate(-6deg) translateY(18px); }
.screen-right { transform:rotate(6deg) translateY(18px); }
.download-screen:hover { z-index:3; box-shadow:0 32px 35px rgba(117,49,37,.36); }
.screen-main:hover { transform:translateY(-38px) scale(1.035); }
.screen-left:hover { transform:rotate(-3deg) translateY(-3px) scale(1.035); }
.screen-right:hover { transform:rotate(3deg) translateY(-3px) scale(1.035); }
.download-features { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,28px); padding:clamp(58px,7vw,95px) max(5vw,calc((100% - 1180px)/2)); background:var(--pink); color:#fff; }
.download-features article { padding:clamp(22px,2.6vw,34px); border:1px solid rgba(255,255,255,.28); border-radius:28px; text-align:center; transition:transform .25s ease,background .25s ease; }
.download-features article:hover { background:rgba(255,255,255,.11); transform:translateY(-8px); }
.download-features img { height:clamp(66px,6vw,96px); margin:0 auto 15px; object-fit:contain; }
.download-features h2 { margin:0 0 8px; color:var(--yellow); font-size:clamp(19px,1.8vw,26px); text-transform:uppercase; }
.download-features p { max-width:290px; margin:auto; font-size:14px; line-height:1.5; }
@media (max-width:980px) {
  .download-hero { grid-template-columns:1fr; gap:28px; padding-bottom:72px; text-align:center; }
  .download-copy { justify-items:center; }
  .screen-gallery { width:min(650px,94%); }
}
@media (max-width:680px) {
  .download-hero { min-height:0; padding:62px 18px 58px; }
  .download-copy h1 { font-size:clamp(48px,14vw,70px); }
  .download-copy p:not(.download-eyebrow) { font-size:16px; }
  .store-badges { justify-content:center; width:100%; }
  .store-badge { min-width:0; width:calc(50% - 6px); }
  .store-badge img { width:100%; }
  .screen-gallery { gap:7px; width:100%; padding-top:20px; }
  .download-screen { border-width:5px; border-radius:19px; }
  .screen-main { transform:translateY(-12px); }
  .screen-left { transform:rotate(-5deg) translateY(9px); }
  .screen-right { transform:rotate(5deg) translateY(9px); }
  .download-features { grid-template-columns:1fr; padding:50px 22px; }
}

/* Menu refresh: a tighter introduction and colourful, tactile drink cards. */
.menu-hero { position:relative; min-height:clamp(330px,35vw,510px); overflow:hidden; background:var(--yellow); }
.menu-hero > img { display:block; width:100%; height:100%; min-height:inherit; max-height:none; aspect-ratio:auto; object-fit:cover; object-position:center 52%; }
.menu-hero-content { position:absolute; z-index:1; top:50%; left:max(5vw,calc((100% - 1180px)/2)); display:grid; gap:10px; width:min(370px,36vw); padding:clamp(18px,2vw,28px); border:2px solid rgba(255,255,255,.55); border-radius:28px; background:rgba(255,253,240,.9); box-shadow:0 18px 32px rgba(116,72,28,.18); transform:translateY(-50%) rotate(-2deg); backdrop-filter:blur(5px); }
.menu-hero-content p { margin:0; color:var(--pink); font-size:12px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.menu-hero-content h1 { margin:0; color:var(--pink); font-size:clamp(40px,4.6vw,68px); font-weight:900; line-height:.81; letter-spacing:-.06em; text-transform:uppercase; }
.menu-hero-content h1 span { color:#9b4db7; }
.hero-note { display:inline-flex; align-items:center; width:max-content; margin-top:4px; padding:7px 11px; border-radius:999px; background:var(--pink); color:var(--yellow); font-size:12px; font-weight:900; text-transform:uppercase; }
.menu-section { position:relative; padding-top:clamp(52px,6vw,82px); overflow:hidden; background:radial-gradient(circle at 6% 7%,rgba(255,237,37,.38) 0 5%,transparent 5.2%),radial-gradient(circle at 95% 18%,rgba(218,25,132,.08) 0 11%,transparent 11.2%),var(--cream); }
.drip-title { position:relative; z-index:1; max-width:770px; margin:0 auto; text-align:center; }
.menu-kicker { margin:0 0 10px; color:var(--pink); font-size:13px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.drip-title h1 { margin:0; color:var(--pink); font-family:"Baloo 2",sans-serif; font-size:clamp(44px,6vw,82px); font-weight:800; line-height:.86; letter-spacing:-.045em; text-transform:uppercase; }
.drip-title > p:last-child { max-width:540px; margin:16px auto 30px; color:var(--pink); font-size:clamp(15px,1.7vw,20px); font-weight:700; }
.menu-tabs { position:relative; z-index:1; gap:10px; margin-bottom:42px; padding:8px; border:1px solid rgba(218,25,132,.16); border-radius:999px; background:rgba(255,255,255,.65); box-shadow:0 10px 20px rgba(114,69,50,.08); }
.menu-tabs button { position:relative; min-height:44px; padding:8px 19px; border:2px solid transparent; color:var(--pink); transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.menu-tabs button.active,.menu-tabs button:hover { background:var(--pink); color:var(--yellow); box-shadow:0 7px 12px rgba(218,25,132,.22); transform:translateY(-2px); }
.menu-tabs button:focus-visible { outline:3px solid var(--pink); outline-offset:3px; }
.product-grid { position:relative; z-index:1; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,26px); }
.product-card { --tone:#fa6b6b; --wash:#fff0ee; position:relative; min-height:242px; gap:8px; padding:26px 22px 20px; overflow:hidden; border:1px solid rgba(218,25,132,.09); border-radius:28px; background:linear-gradient(135deg,#fff 0%,var(--wash) 100%); box-shadow:0 14px 24px rgba(92,55,43,.12); isolation:isolate; transition:transform .28s cubic-bezier(.2,.85,.32,1.18),box-shadow .28s ease,background .28s ease; }
.product-card::before { position:absolute; z-index:-1; top:14px; left:16px; padding:5px 9px; border-radius:999px; content:attr(data-category); background:var(--tone); color:#fff; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.product-card::after { position:absolute; z-index:2; top:16px; right:16px; display:grid; width:30px; height:30px; place-items:center; border-radius:50%; content:"↗"; background:#fff; color:var(--pink); font-weight:900; opacity:0; transform:translate(7px,-7px) rotate(-20deg); transition:opacity .25s ease,transform .25s ease; }
.product-card > div { position:relative; z-index:1; align-self:end; padding-top:34px; }
.product-card h3 { margin:0; color:var(--pink); font-size:clamp(18px,1.8vw,24px); line-height:.98; text-transform:uppercase; }
.product-card p { margin:9px 0 14px; color:#562847; font-size:13px; font-weight:600; line-height:1.35; }
.product-card strong { color:#2f2130; font-size:28px; }
.product-card span { font-size:.45em; }
.product-card img { position:relative; z-index:1; width:100%; height:178px; object-fit:contain; filter:drop-shadow(8px 11px 8px rgba(92,50,40,.17)); transform:translateY(2px) rotate(-2deg); transition:transform .35s cubic-bezier(.2,.85,.32,1.2),filter .3s ease; }
.product-card:hover { background:linear-gradient(140deg,#fff 0%,var(--wash) 58%,rgba(255,255,255,.48) 100%); box-shadow:0 24px 32px rgba(92,55,43,.2); transform:translateY(-11px) rotate(-1deg); }
.product-card:hover img { filter:drop-shadow(12px 18px 10px rgba(92,50,40,.24)); transform:translateY(-16px) rotate(4deg) scale(1.12); }
.product-card:hover::after { opacity:1; transform:translate(0) rotate(0); }
.product-card[data-category="grind"] { --tone:#e94274; --wash:#ffe3ec; }.product-card[data-category="glow"] { --tone:#e49e00; --wash:#fff3bf; }.product-card[data-category="groove"] { --tone:#8b59c6; --wash:#eee3ff; }.product-card[data-category="munch"] { --tone:#e66c39; --wash:#ffe2d3; }

/* Community refresh: richer background layers, brighter stories, and lively event cards. */
.community-page { overflow:hidden; background:radial-gradient(circle at 4% 17%,rgba(255,237,37,.3) 0 4%,transparent 4.2%),radial-gradient(circle at 96% 34%,rgba(218,25,132,.1) 0 8%,transparent 8.2%),var(--cream); }
.community-mood-hero { position:relative; display:grid; grid-template-columns:minmax(280px,.9fr) minmax(330px,.72fr); place-items:unset; align-items:center; gap:clamp(32px,7vw,100px); min-height:clamp(450px,43vw,620px); padding:clamp(60px,7vw,98px) max(5vw,calc((100% - 1180px)/2)); overflow:hidden; background:linear-gradient(124deg,#d9167d 0 61%,#ec258f 61% 100%); }
.community-mood-hero::after { position:absolute; right:-9%; bottom:-48%; width:clamp(320px,48vw,760px); aspect-ratio:1; border:clamp(22px,3vw,48px) solid rgba(255,237,37,.78); border-radius:50%; content:""; }
.community-hero-copy { position:relative; z-index:1; }
.community-hero-copy > p { margin:0 0 13px; color:var(--yellow); font-size:13px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.community-hero-copy h1 { text-align: left; max-width:670px; margin:0; color:#fff; font-size:clamp(52px,6.8vw,96px); font-weight:900; line-height:.81; letter-spacing:-.06em; text-transform:uppercase; }
.community-hero-copy span { display:block; max-width:500px; margin-top:22px; color:#fff8dc; font-size:clamp(16px,1.7vw,21px); font-weight:700; line-height:1.45; }
.community-hero-photo { position:relative; z-index:1; justify-self:end; width:min(440px,100%); aspect-ratio:1/.94; padding:11px; border-radius:38px; background:var(--yellow); box-shadow:0 24px 35px rgba(87,10,49,.28); transform:rotate(4deg); }
.community-hero-photo img { display:block; width:100%; height:100%; border-radius:29px; object-fit:cover; object-position:center; }
.community-hero-photo b { position:absolute; right:-22px; bottom:18px; padding:10px 15px; border-radius:999px; background:#fff; color:var(--pink); font-size:14px; text-transform:uppercase; transform:rotate(-6deg); }
.community-intro { padding-top:clamp(65px,8vw,110px); padding-bottom:clamp(65px,8vw,105px); background:rgba(255,253,240,.75); }
.community-intro p { max-width:850px; color:var(--pink); font-weight:700; }
.community-gallery { position:relative; width:var(--page); padding-bottom:clamp(75px,9vw,120px); }
.event-row { position:relative; min-height:440px; border:1px solid rgba(218,25,132,.1); box-shadow:0 19px 35px rgba(92,55,43,.15); transition:transform .28s ease,box-shadow .28s ease; }
.event-row:hover { box-shadow:0 28px 44px rgba(92,55,43,.22); transform:translateY(-8px); }
.event-media { overflow:hidden; }
.event-media img { transition:transform .55s ease; }
.event-row:hover .event-media img { transform:scale(1.065); }
.event-content { position:relative; overflow:hidden; }
.event-content::after { position:absolute; right:-40px; bottom:-58px; width:165px; aspect-ratio:1; border:22px solid rgba(255,237,37,.48); border-radius:50%; content:""; }
.event-tag { position:relative; z-index:1; width:max-content; margin:0 0 12px; padding:6px 10px; border-radius:999px; background:var(--yellow); color:var(--pink); font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.event-row h2,.event-copy { position:relative; z-index:1; }
.pink-row .event-tag { background:#fff; color:var(--pink); }
.pink-row .event-content::after { border-color:rgba(255,255,255,.25); }
@media (max-width:900px) { .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.community-mood-hero { grid-template-columns:1fr 1fr; }.community-hero-photo { width:min(350px,100%); }.event-row { min-height:380px; } }
@media (max-width:680px) {
  .menu-hero { min-height:440px; }.menu-hero > img { object-position:58% center; }.menu-hero-content { top:auto; right:18px; bottom:20px; left:18px; width:auto; padding:20px; transform:none; }.menu-hero-content h1 { font-size:clamp(42px,12vw,60px); }.menu-section { padding:54px 20px 68px; }.menu-tabs { gap:5px; border-radius:23px; }.menu-tabs button { min-height:38px; padding:6px 11px; font-size:11px; }.product-grid { grid-template-columns:1fr; }.product-card { min-height:232px; }.product-card img { height:180px; }
  .community-mood-hero { grid-template-columns:1fr; gap:35px; min-height:0; padding:62px 22px 56px; }.community-hero-copy { text-align:center; }.community-hero-copy span { margin-inline:auto; }.community-hero-photo { justify-self:center; width:min(340px,96%); }.community-hero-photo b { right:-8px; bottom:12px; font-size:11px; }.community-intro { padding:58px 28px; }.community-gallery { width:calc(100% - 40px); }.event-row { min-height:0; }.event-content { padding:38px 28px; }.event-row:hover { transform:none; }.event-row:hover .event-media img { transform:none; }
}

/* Menu hero: clean image-to-content transition. */
.menu-hero { min-height:clamp(350px,34vw,535px); }
.menu-hero > img { object-position:center 46%; }
.menu-section { margin-top:clamp(14px,2vw,28px); overflow:visible; padding-top:0; }
.drip-title { padding-top:0; }
@media (max-width:680px) {
  .menu-hero { min-height:330px; }.menu-hero > img { object-position:center 43%; }.menu-section { margin-top:14px; padding-top:0; }
}

/* Store location and privacy choices */
.location-section { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(480px,1.28fr); align-items:stretch; gap:clamp(30px,5vw,72px); padding:clamp(68px,8vw,108px) max(5vw,calc((100% - 1180px)/2)); background:var(--cream); }
.location-copy { align-self:center; }
.location-eyebrow { margin:0 0 8px; color:#9b4db7; font-size:13px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.location-copy h2 { margin:0 0 18px; color:var(--pink); font-size:clamp(52px,6vw,84px); font-weight:900; line-height:.86; letter-spacing:-.05em; text-transform:uppercase; }
.location-copy address { margin:0 0 18px; color:var(--ink); font-size:clamp(19px,2vw,25px); font-style:normal; font-weight:800; line-height:1.42; }
.location-copy > p:not(.location-eyebrow) { max-width:430px; margin:0 0 24px; font-size:16px; line-height:1.55; }
.location-directions { display:inline-flex; min-height:48px; align-items:center; gap:10px; padding:11px 22px; border-radius:999px; background:var(--pink); color:#fff; font-size:13px; font-weight:900; text-transform:uppercase; transition:transform .2s ease,box-shadow .2s ease; }
.location-directions:hover { box-shadow:0 10px 18px rgba(85,13,54,.2); transform:translateY(-3px); }
.map-frame { min-height:430px; overflow:hidden; border:8px solid var(--yellow); border-radius:32px; background:var(--pink); box-shadow:var(--shadow); }
.map-frame iframe { display:block; width:100%; height:100%; min-height:430px; border:0; }
.map-placeholder { min-height:414px; display:grid; place-items:center; align-content:center; gap:10px; padding:34px; color:#fff; text-align:center; }
.map-placeholder img { width:90px; height:90px; border-radius:22px; }
.map-placeholder strong { color:var(--yellow); font-size:clamp(20px,2vw,27px); }
.map-placeholder p { max-width:420px; margin:0 0 8px; line-height:1.5; }
.map-placeholder button { min-height:44px; padding:9px 18px; border:0; border-radius:999px; background:#fff; color:var(--pink); font-size:12px; font-weight:900; text-transform:uppercase; }

.cookie-settings-link { padding:0; border:0; color:inherit; background:transparent; font-weight:inherit; text-align:inherit; }
.cookie-settings-link:hover { color:var(--yellow); }
.cookie-banner[hidden] { display:none; }
.cookie-banner { position:fixed; z-index:100; right:clamp(12px,3vw,34px); bottom:clamp(12px,3vw,30px); left:clamp(12px,3vw,34px); display:grid; grid-template-columns:1fr auto; align-items:center; gap:22px; max-width:1120px; margin:auto; padding:20px clamp(20px,3vw,32px); border:3px solid var(--yellow); border-radius:24px; background:var(--pink); color:#fff; box-shadow:0 22px 50px rgba(46,8,30,.38); }
.cookie-banner-copy strong { display:block; margin-bottom:4px; color:var(--yellow); font-size:19px; }
.cookie-banner-copy p { max-width:720px; margin:0; font-size:13px; line-height:1.5; }
.cookie-banner-copy a { color:var(--yellow); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.cookie-banner-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.cookie-banner-actions button { min-height:44px; padding:9px 17px; border:2px solid #fff; border-radius:999px; font-size:12px; font-weight:900; text-transform:uppercase; }
.cookie-essential { background:transparent; color:#fff; }
.cookie-accept { border-color:var(--yellow) !important; background:var(--yellow); color:var(--pink); }

@media (max-width:800px) {
  .location-section { grid-template-columns:1fr; padding-inline:22px; }
  .map-frame,.map-frame iframe { min-height:380px; }
  .map-placeholder { min-height:364px; }
  .cookie-banner { grid-template-columns:1fr; gap:15px; }
  .cookie-banner-actions { justify-content:flex-start; }
}

@media (max-width:480px) {
  .map-frame,.map-frame iframe { min-height:330px; }
  .map-placeholder { min-height:314px; padding:24px; }
  .cookie-banner-actions { display:grid; grid-template-columns:1fr; }
  .cookie-banner-actions button { width:100%; }
}

/* Keep Contact's decorative wave and phone inside their original section. */
.contact-band { overflow:hidden; }
@media (max-width:680px) {
  .contact-band { max-width:100vw; grid-template-columns:minmax(0,1fr); }
  .contact-heading,.contact-copy,.support-buttons { min-width:0; }
}
