:root{--ink:#0b0b0d;--paper:#fff;--yellow:#f7e73e;--pink:#ed3e91;--blue:#2763d8;--mint:#34a875;--purple:#793bb8;--white:#fff;--radius:22px;--rainbow:linear-gradient(90deg,#ef3340 0 16%,#f4a62a 16% 32%,#f7df35 32% 48%,#35a853 48% 64%,#2667d8 64% 82%,#7b3fb6 82%)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.5}.skip{position:fixed;left:1rem;top:-5rem;background:#fff;color:#000;padding:.75rem 1rem;z-index:99}.skip:focus{top:1rem}a{color:inherit}.nav-wrap{position:sticky;top:0;z-index:20;background:rgba(245,242,234,.88);backdrop-filter:blur(15px);border-bottom:1px solid rgba(18,18,18,.12)}.nav{height:78px;max-width:1440px;margin:auto;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:inline-flex;align-items:center;gap:.65rem;text-decoration:none;font:700 1rem "Space Grotesk",sans-serif;letter-spacing:.08em}.qmark{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--yellow);font-size:1.25rem}.nav-links{display:flex;gap:2rem}.nav-links a{text-decoration:none;font-weight:600;font-size:.92rem}.nav-links a:hover{text-decoration:underline;text-underline-offset:5px}.languages{display:flex;border:1px solid var(--ink);border-radius:99px;padding:3px}.lang{border:0;background:none;border-radius:99px;padding:.4rem .55rem;font:700 .72rem inherit;cursor:pointer}.lang.active{background:var(--ink);color:#fff}.hero{min-height:calc(100vh - 78px);max-width:1440px;margin:auto;padding:6vw 4vw 3vw;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr auto;gap:3rem;overflow:hidden}.hero-copy{align-self:center;position:relative;z-index:2}.eyebrow{font:700 .78rem "Space Grotesk",sans-serif;letter-spacing:.18em;margin:0 0 1.5rem}.hero h1,.section h2,.join h2{font:700 clamp(3.4rem,7.3vw,8rem)/.88 "Space Grotesk",sans-serif;letter-spacing:-.07em;margin:0}.hero h1 span{color:var(--blue)}.hero-text{font-size:clamp(1.05rem,1.5vw,1.35rem);max-width:590px;margin:2rem 0}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;padding:1rem 1.35rem;border-radius:99px;text-decoration:none;font-weight:700;border:2px solid var(--ink);transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:4px 4px 0 var(--ink)}.primary{background:var(--yellow)}.ghost{background:transparent}.hero-art{min-height:450px;position:relative;display:grid;place-items:center}.big-q{font:700 clamp(18rem,32vw,31rem)/1 "Space Grotesk",sans-serif;color:var(--ink);letter-spacing:-.15em;transform:translateX(-8%);position:relative;z-index:2}.big-q:after{content:"";position:absolute;width:18%;height:18%;border-radius:50%;background:var(--paper);right:8%;bottom:11%}.orbit{position:absolute;border:24px solid;border-radius:50%;inset:9%}.orbit-one{border-color:var(--pink);transform:translate(7%,-5%)}.orbit-two{border-color:var(--yellow);transform:translate(-7%,5%)}.sticker{position:absolute;z-index:3;border:2px solid var(--ink);border-radius:50%;width:104px;height:104px;display:grid;place-items:center;text-align:center;font:700 .75rem/1.1 "Space Grotesk";box-shadow:5px 5px 0 var(--ink)}.s1{background:var(--mint);top:8%;right:2%;transform:rotate(9deg)}.s2{background:var(--yellow);bottom:8%;left:0;transform:rotate(-8deg)}.quick-card{grid-column:1/-1;background:var(--ink);color:white;border-radius:20px;padding:1.2rem 1.5rem;display:grid;grid-template-columns:auto repeat(3,1fr);align-items:center;gap:2rem}.quick-card div{display:flex;flex-direction:column}.quick-card small{font-size:.68rem;letter-spacing:.15em;color:#aaa}.quick-card strong{font:600 1rem "Space Grotesk"}.pulse{width:12px;height:12px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 7px rgba(112,215,176,.18)}.statement{background:var(--yellow);border-block:2px solid var(--ink);padding:2.2rem 4vw;text-align:center}.statement p{font:600 clamp(1.5rem,3.5vw,3.4rem) "Space Grotesk";letter-spacing:-.04em;margin:0}.section{max-width:1440px;margin:auto;padding:8rem 4vw}.section-heading{display:grid;grid-template-columns:1fr 2fr;align-items:start;margin-bottom:4rem}.section-heading h2,.price-intro h2,.community h2{font-size:clamp(3rem,6vw,6.5rem)}.training-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.session-card,.location-card{border:2px solid var(--ink);border-radius:var(--radius);padding:1.5rem;display:flex;align-items:center;gap:1.2rem;background:#fff}.session-card.featured{background:var(--blue);color:#fff}.day{width:60px;height:60px;border-radius:50%;background:var(--yellow);color:var(--ink);display:grid;place-items:center;font:700 1rem "Space Grotesk"}.session-card p,.location-card p{font-size:.7rem;font-weight:700;letter-spacing:.15em;margin:0}.session-card h3,.location-card h3{font:600 1.5rem "Space Grotesk";margin:.1rem 0}.session-card span,.location-card span{font-size:.9rem}.location-card{grid-column:1/-1;background:var(--mint)}.location-card .pin{font-size:3rem}.location-card a{margin-left:auto;font-size:2rem;text-decoration:none}.format-row{margin-top:5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.format-row>div{border-top:2px solid var(--ink);padding-top:1rem}.format-row span{font-weight:700;color:var(--blue)}.format-row h3{font:600 1.4rem "Space Grotesk";margin:.5rem 0}.format-row p{margin:0;color:#555}.pricing{background:var(--ink);color:white;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:8vw}.price-intro,.price-list{max-width:650px}.price-intro{margin-left:auto}.price-intro p:last-child{font-size:1.1rem;color:#bbb;max-width:550px}.price-item{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #555;padding:1.6rem 0;gap:2rem}.price-item span{font-size:1.05rem}.price-item strong{font:600 1.6rem "Space Grotesk";white-space:nowrap}.price-item.free strong{color:var(--yellow)}.community{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw}.community-copy>p:last-child{max-width:650px;font-size:1.12rem}.values{display:flex;flex-direction:column;justify-content:center}.values>div{display:grid;grid-template-columns:55px 1fr;column-gap:1rem;border-bottom:1px solid #bbb;padding:1.25rem 0}.values .icon{grid-row:1/3;width:48px;height:48px;border-radius:50%;background:var(--pink);display:grid;place-items:center;font-size:1.5rem}.values>div:nth-child(2) .icon{background:var(--yellow)}.values>div:nth-child(3) .icon{background:var(--mint)}.values h3{font:600 1.25rem "Space Grotesk";margin:0}.values p{margin:.25rem 0 0;color:#555}.join{background:var(--blue);color:white;padding:6rem max(4vw,calc((100vw - 1440px)/2 + 4vw));display:grid;grid-template-columns:1.2fr .8fr;gap:5vw;align-items:end}.join h2{font-size:clamp(3rem,6vw,6.5rem)}.join-actions p{max-width:420px}.light{background:white;color:var(--ink);border-color:white}.light:hover{box-shadow:4px 4px 0 var(--ink)}footer{background:var(--ink);color:#fff;min-height:130px;padding:2rem 4vw;display:flex;align-items:center;justify-content:space-between;gap:2rem}footer p{font-size:.85rem;color:#aaa}
@media(max-width:850px){.nav{height:68px}.nav-links{display:none}.hero{min-height:auto;grid-template-columns:1fr;padding-top:4rem}.hero-art{min-height:340px}.quick-card{grid-template-columns:auto 1fr;gap:1rem}.quick-card .pulse{grid-row:1/4}.section{padding-block:5rem}.section-heading,.pricing,.community,.join{grid-template-columns:1fr}.training-grid{grid-template-columns:1fr}.location-card{grid-column:auto}.format-row{grid-template-columns:1fr}.price-intro{margin:0}.community{gap:3rem}.join{align-items:start}footer{flex-direction:column;align-items:flex-start}.hero h1{font-size:clamp(3.2rem,15vw,6rem)}}
@media(max-width:520px){.nav{padding-inline:1rem}.brand span:last-child{display:none}.hero{padding:3rem 1rem 1.5rem;gap:2rem}.hero-actions{flex-direction:column}.button{width:100%}.hero-art{min-height:280px}.big-q{font-size:17rem}.sticker{width:82px;height:82px;font-size:.62rem}.quick-card{border-radius:16px;padding:1rem}.section{padding:4rem 1rem}.session-card,.location-card{border-radius:20px}.statement{padding-inline:1rem}.pricing,.join{padding-inline:1rem}.section-heading{display:block}.section-heading .eyebrow{margin-bottom:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Official Qommunity visual system */
body:before{content:"";position:fixed;inset:0 0 auto;height:4px;background:var(--rainbow);z-index:60}.brand img{display:block;width:174px;height:48px;object-fit:contain}.nav-wrap{background:rgba(255,255,255,.92)}.nav{height:82px}.hero{padding-top:4vw}.hero h1 span{background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-art{min-height:550px;display:block}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:30px;filter:saturate(.8) contrast(1.05)}.hero-art:after{content:"";position:absolute;inset:0;border-radius:30px;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.75));pointer-events:none}.hero-logo{position:absolute;z-index:3;left:7%;bottom:8%;width:63%;height:auto;object-fit:contain}.sticker{z-index:4}.s1{top:-3%;right:-3%;background:white}.s2{bottom:7%;left:-7%;background:var(--yellow)}.quick-card{border-radius:14px}.quick-card:after{content:"";height:4px;background:var(--rainbow);grid-column:1/-1;margin:-.1rem -1.5rem -1.2rem}.statement{background:#fff;border-block:1px solid #bbb}.statement:before{content:"";display:block;width:120px;height:7px;background:var(--rainbow);margin:0 auto 1.4rem;border-radius:20px}.session-card.featured{background:var(--ink)}.location-card{background:#f4f4f4}.community{grid-template-columns:1.05fr .95fr}.community-image{grid-column:1/-1;margin:2rem 0 0;display:grid;grid-template-columns:1.4fr .6fr;background:var(--ink);color:#fff;border-radius:var(--radius);overflow:hidden}.community-image img{width:100%;height:410px;object-fit:cover}.community-image figcaption{align-self:end;font:600 clamp(1.7rem,3vw,3.4rem)/1 "Space Grotesk";letter-spacing:-.045em;padding:2.5rem}.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:center;background:#f5f5f5;max-width:none;padding-inline:max(4vw,calc((100vw - 1440px)/2 + 4vw))}.about-photo-wrap{position:relative;max-width:520px}.about-photo-wrap>img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);filter:grayscale(18%)}.founder-stamp{position:absolute;right:-35px;bottom:30px;width:116px;height:116px;background:var(--rainbow);color:white;border:5px solid white;border-radius:50%;display:grid;place-items:center;text-align:center;font:700 .8rem/1.1 "Space Grotesk";transform:rotate(-8deg)}.about h2,.shop h2{font:700 clamp(3rem,6vw,6.5rem)/.9 "Space Grotesk";letter-spacing:-.065em;margin:0}.about-lead{font:600 1.35rem "Space Grotesk";max-width:600px}.about-copy>p:not(.eyebrow):not(.about-lead){max-width:690px;color:#444;font-size:1.05rem}.text-link{display:inline-block;margin-top:1rem;font-weight:700;text-underline-offset:5px}.shop{display:grid;grid-template-columns:.75fr 1.25fr;gap:5vw;align-items:center;background:var(--ink);color:white;max-width:none;padding-inline:max(4vw,calc((100vw - 1440px)/2 + 4vw))}.shop-copy p:not(.eyebrow){color:#bbb;font-size:1.1rem;max-width:520px}.shop .primary{color:var(--ink);border-color:var(--yellow)}.shop-visual{position:relative;background:white;border-radius:var(--radius);overflow:hidden}.shop-visual img{width:100%;display:block}.shop-visual span{position:absolute;right:1rem;bottom:1rem;background:var(--ink);color:#fff;padding:.65rem 1rem;border-radius:99px;font:700 .7rem "Space Grotesk";letter-spacing:.12em}.useful-links{background:#fff}.links-heading{margin-bottom:3rem}.link-grid{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink)}.link-grid>a{min-height:112px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:1rem;padding:1.25rem;border-bottom:1px solid #bbb;text-decoration:none;transition:background .2s}.link-grid>a:nth-child(odd){border-right:1px solid #bbb}.link-grid>a:hover{background:#f1f1f1}.link-grid>a>span{font:600 .8rem "Space Grotesk";color:#777}.link-grid strong{display:block;font:600 1.25rem "Space Grotesk"}.link-grid small{display:block;color:#666;font-size:.85rem;margin-top:.2rem}.link-grid b{font-size:1.5rem}.link-grid .qr-link{grid-column:1/-1;grid-template-columns:96px 1fr;background:var(--ink);color:#fff;border:0}.qr-link img{width:78px;height:78px;object-fit:cover}.qr-link small{color:#aaa}.join{background:#fff;color:var(--ink);border-top:2px solid var(--ink)}.join:before{content:"";position:absolute}.join .light{background:var(--ink);color:#fff;border-color:var(--ink)}.footer-brand img{filter:none}.qmark{display:none}
@media(max-width:850px){.brand img{width:145px}.hero-art{min-height:480px}.hero-logo{width:72%}.community-image{grid-template-columns:1fr}.community-image figcaption{padding:2rem}.about,.shop{grid-template-columns:1fr}.about-photo-wrap{max-width:440px}.shop-visual{order:-1}.link-grid{grid-template-columns:1fr}.link-grid>a:nth-child(odd){border-right:0}.link-grid .qr-link{grid-column:auto}.nav-links{display:none}}
@media(max-width:520px){.brand img{width:125px}.hero-art{min-height:390px}.hero-photo{border-radius:20px}.hero-logo{width:82%;left:5%;bottom:8%}.community-image img{height:280px}.about,.shop{padding-inline:1rem}.founder-stamp{right:-8px;width:96px;height:96px}.link-grid>a{padding-inline:.75rem}.shop .button{width:100%}}

/* Hero refinements */
.hero-logo{left:3%;bottom:5%;width:94%;mix-blend-mode:screen;opacity:.58}
.link-grid .qr-link{grid-template-columns:190px 1fr;min-height:220px}
.qr-link img{width:170px;height:170px;object-fit:contain;background:#fff;padding:.45rem;border-radius:12px}
@media(max-width:850px){.hero-logo{width:92%;left:4%}.link-grid .qr-link{grid-template-columns:160px 1fr}.qr-link img{width:145px;height:145px}}
@media(max-width:520px){.hero-logo{width:94%;left:3%;bottom:6%}.link-grid .qr-link{grid-template-columns:125px 1fr;min-height:175px}.qr-link img{width:112px;height:112px}}

/* Prominent, tightly cropped header wordmark */
.nav{height:92px}
.brand img{width:260px;height:auto;object-fit:contain}
@media(max-width:850px){.brand img{width:210px}}
@media(max-width:520px){.brand img{width:175px}}
.s2{background:#fff}

/* Shop catalogue */
.shop{grid-template-columns:.58fr 1.42fr;align-items:start}
.shop-catalog{min-width:0}
.shop-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem;border-bottom:1px solid #555}
.shop-tab{position:relative;min-width:130px;padding:1rem 1.2rem;border:0;background:transparent;color:#aaa;font:700 1rem "Space Grotesk",sans-serif;cursor:pointer}
.shop-tab:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:4px;background:transparent}
.shop-tab.active{color:#fff}.shop-tab.active:after{background:var(--rainbow)}
.shop-tab:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.shop-panel{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.shop-panel.active{display:grid}
.product-card{overflow:hidden;background:#fff;color:var(--ink);border-radius:18px}
.product-image{height:250px;background-image:url("assets/qommunity-shop.png");background-repeat:no-repeat;background-size:600% auto;background-position-x:24%;background-color:#f1f1f1;border-bottom:1px solid #ddd}
.product-men-tee{background-position-y:11%}.product-women-tee{background-position-y:29%}.product-women-crop{background-position-y:47%}.product-men-tank{background-position-y:66%}.product-men-box{background-position-y:84%}
.product-info{padding:1.1rem}.product-info h3{margin:0;font:600 1.2rem "Space Grotesk",sans-serif}.product-info p{margin:.3rem 0 .9rem;color:#666;font-size:.85rem}
.sizes{display:flex;gap:.4rem}.sizes span{width:31px;height:31px;border:1px solid #aaa;border-radius:50%;display:grid;place-items:center;font:600 .72rem "Space Grotesk",sans-serif}
.size-note{color:#aaa;font-size:.82rem;margin:1rem 0 0}
@media(max-width:1050px){.shop{grid-template-columns:1fr}.shop-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.shop-panel{grid-template-columns:1fr}.shop-tab{min-width:0;flex:1}.product-image{height:300px;background-size:520% auto}}

/* Product colour carousels */
.product-image{position:relative;touch-action:pan-y;transition:background-position .3s ease;outline:none}
.product-image.colour-white{background-position-x:5%}
.product-image.colour-navy{background-position-x:21%}
.product-image.colour-black{background-position-x:29%}
.product-image:focus-visible{box-shadow:inset 0 0 0 4px var(--yellow)}
.colour-arrow{position:absolute;top:50%;z-index:2;width:42px;height:42px;margin-top:-21px;border:2px solid var(--ink);border-radius:50%;background:rgba(255,255,255,.94);color:var(--ink);font:600 1.65rem/1 "Space Grotesk",sans-serif;display:grid;place-items:center;cursor:pointer;box-shadow:2px 2px 0 var(--ink)}
.colour-arrow:hover{background:var(--yellow)}
.colour-arrow:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.colour-prev{left:.7rem}.colour-next{right:.7rem}
.colour-name{position:absolute;left:50%;bottom:1.8rem;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.35rem .7rem;border-radius:99px;font:700 .7rem "Space Grotesk",sans-serif;white-space:nowrap}
.colour-dots{position:absolute;left:50%;bottom:.55rem;transform:translateX(-50%);display:flex;gap:.35rem}
.colour-dot{width:8px;height:8px;border-radius:50%;background:#bbb;border:1px solid #777}
.colour-dot.active{background:var(--ink);border-color:var(--ink);transform:scale(1.25)}
@media(prefers-reduced-motion:reduce){.product-image{transition:none}}

/* Editorial product gallery: supplied front/back model photography */
.shop-panel{grid-template-columns:repeat(3,minmax(220px,1fr));gap:1.1rem}
.product-card{border:1px solid #29292c;box-shadow:0 12px 30px rgba(0,0,0,.22)}
.product-viewer{position:relative;height:390px;background:#efeeed;border-bottom:1px solid #d7d7d7;overflow:hidden;touch-action:pan-y;outline:none}
.product-viewer:focus-visible{box-shadow:inset 0 0 0 4px var(--yellow)}
.product-photo-wrap{position:absolute;inset:0;display:grid;place-items:center;isolation:isolate}
.product-photo{width:100%;height:100%;display:block;object-fit:cover;transition:opacity .18s ease}
.product-photo-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:multiply;transition:opacity .22s ease;background:#091b3a;clip-path:polygon(22% 20%,78% 20%,95% 38%,82% 48%,80% 100%,20% 100%,18% 48%,5% 38%)}
.product-viewer[data-colour="navy"] .product-photo-wrap:after{opacity:.88;background:#10233f}
.product-viewer[data-colour="black"] .product-photo-wrap:after{opacity:.96;background:#111}
.product-women-crop .product-photo-wrap:after{clip-path:polygon(22% 25%,78% 25%,96% 42%,82% 50%,78% 86%,22% 86%,18% 50%,4% 42%)}
.product-men-tank .product-photo-wrap:after,.product-men-sleeveless .product-photo-wrap:after{clip-path:polygon(28% 11%,72% 11%,88% 28%,78% 38%,82% 100%,18% 100%,22% 38%,12% 28%)}
.hd-model .product-photo{image-rendering:auto;object-position:center center}
.hd-model .product-photo-wrap:after{display:none}
.garment-logo{position:absolute;z-index:2;pointer-events:none;object-fit:contain}.garment-logo-front{width:7%;left:64%;top:30%}
.garment-back-print{position:absolute;z-index:2;left:50%;top:19%;width:40%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;color:#171719;font-family:"Space Grotesk",sans-serif;line-height:1;text-align:center;pointer-events:none}.garment-back-print small{font-size:clamp(.25rem,.58vw,.38rem);font-weight:500;letter-spacing:.29em;margin:0 0 .3rem .29em}.garment-back-print strong{font-size:clamp(.43rem,1.02vw,.69rem);font-weight:500;letter-spacing:.34em;margin-left:.34em}.garment-back-print em{font-size:clamp(.2rem,.42vw,.29rem);font-style:normal;font-weight:500;letter-spacing:.38em;margin:.36rem 0 0 .38em}.garment-back-print i{width:24%;height:1px;background:currentColor;opacity:.72;margin:.55rem 0}.garment-back-print b{font-size:clamp(.19rem,.43vw,.3rem);font-weight:500;line-height:1.55;letter-spacing:.19em;margin-left:.19em}.garment-back-print img{width:22%;aspect-ratio:1;object-fit:contain;margin-top:.55rem;filter:grayscale(1) contrast(1.5)}
.product-men-tank .garment-back-print,.product-men-sleeveless .garment-back-print{top:14%;width:38%}
.product-viewer[data-view="back"] .garment-logo-front{display:none}.product-viewer[data-view="front"] .garment-back-print{display:none}
.product-viewer[data-colour="navy"] .garment-back-print,.product-viewer[data-colour="black"] .garment-back-print{color:#fff}
.view-arrow{position:absolute;top:50%;z-index:3;width:44px;height:44px;margin-top:-22px;border:2px solid var(--ink);border-radius:50%;background:rgba(255,255,255,.94);color:var(--ink);font:600 1.65rem/1 "Space Grotesk",sans-serif;display:grid;place-items:center;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}
.view-arrow:hover{background:var(--yellow)}.view-arrow:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.view-prev{left:.75rem}.view-next{right:.75rem}
.view-name{position:absolute;z-index:3;left:50%;bottom:.8rem;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.38rem .8rem;border-radius:99px;font:700 .7rem "Space Grotesk",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.colour-swatches{display:flex;align-items:center;gap:.55rem;margin:.75rem 0 1rem}.colour-swatches>span{margin-left:.25rem;color:#555;font:600 .8rem "Space Grotesk",sans-serif}
.swatch{width:27px;height:27px;padding:0;border:2px solid #aaa;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 0 3px #fff}.swatch.active{border-color:var(--ink);transform:scale(1.12)}.swatch:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.swatch-white{background:#f7f7f5}.swatch-navy{background:#10233f}.swatch-black{background:#111}
@media(max-width:1050px){.shop-panel{grid-template-columns:repeat(2,minmax(240px,1fr))}.product-viewer{height:430px}}
@media(max-width:600px){.shop-panel{grid-template-columns:1fr}.product-viewer{height:min(130vw,520px)}}

/* Calendar */
.calendar{background:#fff}
.calendar-heading{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:end;margin-bottom:3rem}
.calendar h2{font-size:clamp(3rem,6vw,6.5rem)}
.calendar-intro{max-width:620px}.calendar-intro p{font-size:1.08rem;color:#444;margin:0 0 1.4rem}
.calendar-tabs{display:flex;overflow-x:auto;border-bottom:2px solid var(--ink);margin-bottom:1.5rem;scrollbar-width:thin}
.calendar-tab{flex:1;min-width:145px;border:0;background:transparent;padding:1rem;color:#666;font:700 1rem "Space Grotesk",sans-serif;cursor:pointer;position:relative}
.calendar-tab:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:5px;background:transparent}
.calendar-tab.active{color:var(--ink)}.calendar-tab.active:after{background:var(--rainbow)}
.calendar-tab:focus-visible{outline:3px solid var(--yellow);outline-offset:-4px}
.calendar-panel{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.calendar-panel.active{display:grid}
.cal-item{min-height:116px;border:1px solid #c9c9c9;border-radius:16px;padding:1rem;display:grid;grid-template-columns:64px 1fr;gap:1rem;align-items:center;background:#fff}
.cal-item time{width:62px;height:62px;border-radius:50%;background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font:700 1.25rem/1 "Space Grotesk",sans-serif}
.cal-item time small{font-size:.58rem;letter-spacing:.12em;margin-top:.3rem}
.cal-item div{display:flex;flex-direction:column;align-items:flex-start}.cal-item strong{font:600 1rem "Space Grotesk",sans-serif}.cal-item span{font-size:.8rem;color:#666;margin-top:.25rem}.cal-item a{font-size:.78rem;font-weight:700;margin-top:.45rem;text-underline-offset:3px}
.cal-item.saturday{background:#f5f5f5}.cal-item.saturday time{background:var(--yellow);color:var(--ink)}
.cal-item.event{border:2px solid var(--purple)}.cal-item.event time{background:var(--purple)}
.cal-item.break{grid-column:1/-1;background:var(--ink);color:#fff;border-color:var(--ink)}.cal-item.break time{background:#fff;color:var(--ink)}.cal-item.break span{color:#bbb}
.cal-item[hidden],.calendar-tab[hidden]{display:none}
.calendar-empty{margin:1rem 0 0;padding:2rem;border:2px dashed #aaa;border-radius:16px;text-align:center;font:600 1.15rem "Space Grotesk",sans-serif;color:#555}
@media(max-width:1050px){.calendar-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.calendar-heading{grid-template-columns:1fr;gap:1.5rem}.calendar-panel{grid-template-columns:1fr}.calendar-tab{min-width:125px}.cal-item.break{grid-column:auto}}
