/* ==============================================================
   Store page — page-specific decoration

   Everything here is bespoke illustration for /store (stylised device
   mockups, the Bitcoin card, the revenue chart, showcase panels).
   Reusable pieces live in /assets/css/xsyte-ds/xsyte-ds.css.

   Requires: tokens.css + xsyte-ds.css, inside a `.xs-page` wrapper.
   ============================================================== */

/* Anton — heavy condensed display face for the club-showcase headline / card names.
   Self-hosted (Latin subset) to match the rest of the design system. */
@font-face{
	font-family:"Anton";
	font-style:normal;font-weight:400;font-display:swap;
	src:url("/assets/fonts/anton.woff2") format("woff2");
}

@keyframes xs-floatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes xs-floatB{0%,100%{transform:translateY(0)}50%{transform:translateY(14px)}}
@keyframes xs-floatC{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-11px) rotate(-4deg)}}
@keyframes xs-floatD{0%,100%{transform:translateY(0) rotate(5deg)}50%{transform:translateY(-8px) rotate(5deg)}}
@keyframes xs-pulseGlow{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:.9;transform:scale(1.06)}}
@keyframes xs-qrflick{0%,100%{opacity:1}50%{opacity:.82}}
@keyframes xs-boltpulse{0%,100%{filter:drop-shadow(0 0 6px rgba(247,147,26,.5))}50%{filter:drop-shadow(0 0 22px rgba(247,147,26,.95))}}

@media (prefers-reduced-motion:reduce){
	.xs-page [class*="store-"],
	.xs-page .xs-marquee__track{animation:none !important}
}


/* ---------- HERO ---------- */

.store-hero__inner{
	position:relative;max-width:1200px;margin-inline:auto;
	padding:clamp(7.5rem,11vw,9.5rem) 1.5rem clamp(3.5rem,7vw,6rem);
	display:flex;flex-wrap:wrap;align-items:center;gap:3rem;
}
.store-glow{position:absolute;border-radius:50%;pointer-events:none}
.store-glow--blue{
	top:-120px;right:-80px;width:520px;height:520px;filter:blur(20px);
	background:radial-gradient(circle,rgba(33,153,232,.55),transparent 62%);
	animation:xs-pulseGlow 7s ease-in-out infinite;
}
.store-glow--red{
	bottom:-140px;left:-100px;width:460px;height:460px;filter:blur(24px);
	background:radial-gradient(circle,rgba(204,0,0,.30),transparent 65%);
}
.store-glow--cta{
	top:-100px;left:50%;transform:translateX(-50%);width:600px;height:400px;filter:blur(20px);
	background:radial-gradient(circle,rgba(33,153,232,.35),transparent 65%);
}

/* floating device cluster */
.store-cluster{flex:1 1 360px;min-width:320px;position:relative;height:540px}
.store-fcard{position:absolute;box-shadow:0 30px 60px rgba(2,17,48,.45)}

.store-fcard--checkout{left:6%;top:2%;width:230px;background:#fff;border-radius:26px;padding:12px;animation:xs-floatA 6s ease-in-out infinite}
.store-fcard--checkout .store-fcard__inner{background:var(--paper);border-radius:16px;padding:16px 14px}
.store-fcard__title{font-family:var(--font-display);color:var(--navy-700);font-size:1.05rem}
.store-fcard__rule{height:1px;background:var(--gray-200);margin:10px 0}
.store-fcard__row{display:flex;justify-content:space-between;color:var(--gray-600);font-size:.82rem;margin:6px 0}
.store-fcard__row span{color:var(--ink)}
.store-fcard__row--save{color:var(--success);font-weight:700}
.store-fcard__row--save span{color:inherit}
.store-fcard__row--total{color:var(--navy-700);font-weight:700;margin:10px 0 12px;font-size:.95rem}
.store-fcard__row--total span{color:inherit;font-family:var(--font-display);font-size:1.15rem}
.store-fcard__pay{text-align:center;border-radius:6px;padding:10px;font-weight:700;font-size:.85rem;color:#fff;background:var(--blue-500)}
.store-fcard__pay--navy{background:var(--navy-700);margin-top:8px}

.store-fcard--terminal{
	right:2%;top:20%;width:210px;color:#fff;border-radius:20px;padding:20px;
	background:linear-gradient(160deg,#0a2f6e,#031841);
	box-shadow:0 28px 55px rgba(2,17,48,.5);animation:xs-floatB 7s ease-in-out infinite;
}
.store-fcard__eyebrow{font-size:.68rem;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:rgba(255,255,255,.6)}
.store-fcard__amount{font-family:var(--font-display);font-size:2.1rem;margin:.4rem 0 .2rem}
.store-fcard__tap{display:flex;align-items:center;gap:.5rem;color:var(--success);font-size:.85rem;font-weight:700}
.store-fcard__hold{
	margin-top:14px;height:44px;border-radius:8px;border:1px dashed rgba(255,255,255,.3);
	display:flex;align-items:center;justify-content:center;gap:.5rem;
	font-size:.8rem;color:rgba(255,255,255,.75);
}

.store-fcard--bitcoin{
	left:0;bottom:6%;width:186px;background:#04102b;color:#fff;
	border:1px solid rgba(247,147,26,.4);border-radius:18px;padding:16px;
	box-shadow:0 24px 50px rgba(2,17,48,.55);animation:xs-floatC 6.5s ease-in-out infinite;
}
.store-fcard__lightning{display:flex;align-items:center;gap:.4rem;color:#f7931a;font-weight:700;font-size:.8rem}
.store-fcard__paid{margin-top:10px;color:var(--success);font-size:.78rem;font-weight:700}

.store-fcard--pass{
	right:6%;bottom:0;width:210px;color:#fff;border-radius:16px;padding:16px;
	background:linear-gradient(135deg,var(--red-600),#7a1414);
	box-shadow:0 24px 50px rgba(2,17,48,.5);animation:xs-floatD 7.5s ease-in-out infinite;
}
.store-fcard__pass-label{font-size:.66rem;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:rgba(255,255,255,.75)}
.store-fcard__club{font-family:var(--font-display);font-size:1.35rem;margin:.5rem 0 .1rem}
.store-fcard__member{font-size:.8rem;color:rgba(255,255,255,.8)}
.store-fcard__scan{
	margin-top:12px;height:34px;border-radius:6px;background:rgba(255,255,255,.16);
	display:flex;align-items:center;justify-content:center;gap:.4rem;font-size:.72rem;
}

.store-bolt-pulse{animation:xs-boltpulse 2s ease-in-out infinite}

/* decorative mini QR (7 columns) */
.store-qr-mini{--qr:#042155;display:grid;grid-template-columns:repeat(7,1fr);gap:2px;width:96px}
.store-qr-mini--dark{--qr:#04102b}
.store-qr-mini span{aspect-ratio:1}
.store-qr-mini span.on{background:var(--qr)}
.store-qr-mini--boxed{background:#fff;border-radius:10px;padding:10px;margin-top:10px;width:116px}


/* ---------- ONLINE STORE : club-skinned checkout phones ---------- */

.store-phones{display:flex;gap:1.2rem;justify-content:center;position:relative}
.store-phone{width:210px;background:#fff;border:var(--border-card);border-radius:24px;padding:12px;box-shadow:var(--shadow-lg)}
.store-phone--offset{margin-top:28px}
.store-phone__head{color:#fff;border-radius:14px 14px 0 0;padding:12px 14px;font-family:var(--font-display);background:var(--navy-700)}
.store-phone__head--lax{background:var(--sport-lacrosse)}
.store-phone__body{background:var(--paper);border-radius:0 0 14px 14px;padding:14px}
.store-phone__row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--gray-600);margin:5px 0}
.store-phone__row span{color:var(--ink)}
.store-phone__row--save{color:var(--success);font-weight:700}
.store-phone__row--save span{color:inherit}
.store-phone__cta{background:var(--navy-700);color:#fff;text-align:center;border-radius:6px;padding:9px;font-size:.8rem;font-weight:700;margin-top:8px}
.store-phone__cta--lax{background:var(--sport-lacrosse)}
.store-phones__tag{
	position:absolute;top:-14px;right:0;background:var(--blue-500);color:#fff;
	font-size:.7rem;font-weight:700;padding:.35rem .7rem;border-radius:var(--radius-pill);
	box-shadow:var(--shadow-sm);
}


/* ---------- POS KIOSK ---------- */

.store-scrim{position:absolute;inset:0;background:linear-gradient(120deg,rgba(2,17,48,.9),rgba(3,24,65,.72))}
.store-pos{
	background:#0a1730;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:16px;
	box-shadow:0 30px 60px rgba(0,0,0,.45);max-width:440px;margin-inline:auto;
}
.store-pos__head{display:flex;justify-content:space-between;align-items:center;color:rgba(255,255,255,.65);font-size:.78rem;margin-bottom:12px}
.store-pos__title{font-family:var(--font-display);color:#fff;font-size:1rem}
.store-pos__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.store-pos__tile{background:#12203f;border-radius:12px;padding:14px 10px;text-align:center}
.store-pos__tile .xi{color:#ffb27a;font-size:1.1rem}
.store-pos__name{font-size:.72rem;margin-top:6px;color:#fff}
.store-pos__price{font-size:.7rem;color:rgba(255,255,255,.5)}
.store-pos__foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}
.store-pos__due{font-size:.72rem;color:rgba(255,255,255,.5)}
.store-pos__total{font-family:var(--font-display);font-size:1.7rem;color:#fff}
.store-pos__tap{background:var(--success);color:#04231a;font-weight:700;border-radius:8px;padding:12px 16px;font-size:.85rem;display:flex;align-items:center;gap:.5rem}


/* ---------- "NEW ways to sell" banner ---------- */

.store-newbanner{
	background:linear-gradient(120deg,#1276c4,#042155);border-radius:18px;padding:2rem;
	display:flex;flex-wrap:wrap;align-items:center;gap:2rem;color:#fff;margin-top:2rem;
}
.store-newbanner__copy{flex:1 1 320px;min-width:280px}
.store-newbanner__title{font-family:var(--font-display);font-size:1.7rem;margin:.4rem 0 .3rem}
.store-newbanner__text{color:rgba(255,255,255,.82);line-height:1.55}
.store-newbanner__viz{flex:0 0 auto;display:flex;align-items:center;gap:1.2rem}
.store-newbanner__qr{background:#fff;border-radius:14px;padding:12px;box-shadow:0 16px 34px rgba(0,0,0,.3)}
.store-newbanner__arrow{color:#fff;font-size:1.6rem;opacity:.7}
.store-newbanner__scan{
	width:110px;height:150px;background:#04102b;border-radius:16px;
	border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:#fff;
}


/* ---------- SHOWCASE 1 : merch marquee ---------- */

.store-showcase__label{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;color:rgba(255,255,255,.7);font-size:.85rem}
.store-merch{background:#0A0A0A;border:1px solid rgba(255,255,255,.12);border-radius:14px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.store-merch__tape{
	height:12px;
	background-image:
		linear-gradient(45deg,#1FA9E8 25%,transparent 25%,transparent 75%,#1FA9E8 75%) 0 0/12px 12px,
		linear-gradient(45deg,#1FA9E8 25%,transparent 25%,transparent 75%,#1FA9E8 75%) 6px 6px/12px 12px,
		#fff;
}
.store-merch__head{padding:24px 26px 10px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem}
.store-merch__kicker{
	display:inline-block;font-family:var(--font-body);letter-spacing:.24em;font-size:12px;font-weight:700;
	color:#0A0A0A;background:#D4A53A;padding:6px 12px;margin-bottom:12px;
}
.store-merch__title{font-family:"Anton",var(--font-display),sans-serif;font-weight:400;font-size:clamp(2.2rem,4.5vw,3.4rem);line-height:.92;letter-spacing:.01em;text-transform:uppercase;color:#fff}
/* the theme sets `em{font-family:'Merriweather',serif}` (a bare-element rule, so it
   beats inheritance) — restate the display face here or "COLOURS" renders as a serif */
.xs-page .store-merch__title em{
	font-family:"Anton",var(--font-display),sans-serif;font-weight:400;font-style:normal;
	background:#D4A53A;color:#0A0A0A;padding:0 .12em;
}
.store-merch__sub{color:rgba(255,255,255,.7);margin-top:.7rem;max-width:32rem;font-size:.95rem}
.store-merch__cta{
	border:2px solid #D4A53A;background:#D4A53A;color:#0A0A0A;font-family:"Anton",var(--font-display),sans-serif;
	font-weight:700;letter-spacing:.06em;font-size:13px;text-transform:uppercase;
	padding:11px 16px;white-space:nowrap;
}
.store-merch__strip{overflow:hidden;padding:16px 0 26px}

/* merch cards — real product photography (rendered server-side from Twig).
   Uniform size: fixed width, square photo that FILLS its box, and a fixed-height
   info bar (name clamped to 2 lines) so every card is exactly the same height. */
.store-merch-card{
	width:270px;flex-shrink:0;background:#fff;border:3px solid #0A0A0A;color:#0A0A0A;
	display:flex;flex-direction:column;overflow:hidden;
}
.store-merch-card__ph{
	position:relative;aspect-ratio:1;border-bottom:3px solid #0A0A0A;overflow:hidden;
	background:var(--mh-photo-bg,#F4F4F4);
}
/* cover, not contain — the photo fills the whole top box edge to edge */
.store-merch-card__ph img{width:100%;height:100%;object-fit:cover;display:block}
.store-merch-card__tag{
	position:absolute;top:12px;left:12px;z-index:1;font-family:var(--font-body);font-weight:700;
	letter-spacing:.12em;font-size:11px;background:#0A0A0A;color:#fff;padding:6px 10px;text-transform:uppercase;
}
/* fixed (not min-) height: the marquee track centres its items rather than
   stretching them, so the info bar must be a constant height for every card
   to come out exactly the same size regardless of name length / missing edition */
.store-merch-card__info{
	padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;
	height:94px;
}
.store-merch-card__meta{min-width:0}
/* scoped under .xs-page so it beats the DS's `.xs-page p{font-size:inherit}` reset */
.xs-page .store-merch-card__name{
	font-family:"Anton",var(--font-display),sans-serif;font-weight:400;
	font-size:20px;text-transform:uppercase;line-height:1.05;margin:0;color:#0A0A0A;
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.store-merch-card__ed{font-family:var(--font-body);letter-spacing:.14em;font-size:11px;color:#2C2C2C;text-transform:uppercase;margin-top:6px}
.store-merch-card__price{
	font-family:"Anton",var(--font-display),sans-serif;font-weight:400;font-size:20px;
	background:#D4A53A;color:#0A0A0A;border:2px solid #0A0A0A;padding:5px 11px;flex-shrink:0;line-height:1;
}

/* photo tints cycle through the club's palette (keeps per-card colour out of the markup) */
.store-merch-card--bg0{--mh-photo-bg:#F4F4F4}
.store-merch-card--bg1{--mh-photo-bg:#EAEAEA}
.store-merch-card--bg2{--mh-photo-bg:#E8F1F5}
.store-merch-card--bg3{--mh-photo-bg:#F5EFE1}
.store-merch-card--bg4{--mh-photo-bg:#EFEAEA}
.store-merch-card--bg5{--mh-photo-bg:#E9F0EA}


/* ---------- SHOWCASE 2 : tournament team slots ---------- */

.store-teams{
	background:linear-gradient(135deg,#5a0a12,#2a0509);border:1px solid rgba(255,255,255,.12);
	border-radius:14px;padding:26px;box-shadow:0 30px 60px rgba(0,0,0,.5);
}
.store-teams__head{text-align:center;margin-bottom:1.4rem}
.store-teams__banner{
	display:inline-block;background:var(--red-600);color:#fff;font-family:var(--font-display);
	font-size:clamp(1.3rem,3vw,1.8rem);letter-spacing:.02em;padding:.4rem 1.2rem;
	text-transform:uppercase;transform:skewX(-6deg);
}
.store-teams__banner span{display:inline-block;transform:skewX(6deg)}
.store-teams__sub{color:rgba(255,255,255,.75);margin-top:.6rem;font-size:.9rem}
.store-slot{position:relative;background:#141414;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:18px;text-align:center;overflow:hidden}
.store-slot__div{font-family:var(--font-display);color:#fff;font-size:1.2rem;margin-top:.7rem}
.store-slot__sub{color:rgba(255,255,255,.55);font-size:.78rem;margin-top:.1rem}
.store-slot__left{margin-top:.9rem;display:inline-block;background:#D4A53A;color:#0A0A0A;font-weight:700;font-size:.78rem;border-radius:6px;padding:.4rem .8rem}
.store-slot__sold{position:absolute;inset:0;background:rgba(200,16,46,.82);display:flex;align-items:center;justify-content:center}
.store-slot__sold span{font-family:var(--font-display);color:#fff;font-size:1.4rem;letter-spacing:.06em;transform:rotate(-8deg);border:3px solid #fff;padding:.2rem .8rem}


/* ---------- REPORTS ---------- */

.store-report__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem}
.store-report__title{font-family:var(--font-display);color:var(--navy-700);font-size:1.35rem}
.store-report__sub{color:var(--gray-600);font-size:.92rem;margin-top:.2rem}
.store-report__stats{display:flex;gap:1.8rem;margin-top:.5rem}
.store-report__range{
	display:inline-flex;align-items:center;gap:.5rem;border:var(--border-card);border-radius:8px;
	padding:.5rem .8rem;font-size:.82rem;color:var(--gray-600);white-space:nowrap;
}
.store-report__caption{margin-top:1rem;font-size:.78rem;color:var(--gray-400)}
.store-report__exports{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.1rem 0}
.store-export{
	display:inline-flex;align-items:center;gap:.4rem;background:var(--paper);border:var(--border-card);
	border-radius:6px;padding:.45rem .7rem;font-size:.8rem;font-weight:700;color:var(--gray-600);
	transition:all .2s var(--ease);
}
.store-export:hover{border-color:var(--blue-500);color:var(--blue-600)}
.store-export--active{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
.store-export--active:hover{filter:brightness(.92);color:#fff;border-color:var(--blue-500)}
.store-report__totals{display:flex;gap:1.2rem;flex-wrap:wrap;background:var(--paper);border-radius:10px;padding:.9rem 1rem;margin-bottom:1rem}
.store-orders{border:1px solid var(--gray-100);border-radius:10px;overflow:hidden;font-size:.82rem}
.store-orders__head{display:flex;background:var(--navy-700);color:#fff;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.6rem .8rem}
.store-orders__row{display:flex;padding:.6rem .8rem;border-top:1px solid var(--gray-100)}
.store-orders__c1{flex:1.6;color:var(--navy-700);font-weight:600}
.store-orders__c2{flex:1;text-align:right;color:var(--gray-600)}
.store-orders__c3{flex:1;text-align:right;color:#0e8a6e;font-weight:700}
.store-orders__head .store-orders__c1,
.store-orders__head .store-orders__c2,
.store-orders__head .store-orders__c3{color:#fff;font-weight:700}
.store-chart{margin-top:1.4rem}


/* ---------- BITCOIN ---------- */

.store-bolt-watermark{
	position:absolute;top:8%;right:6%;font-family:FontAwesome;font-style:normal;
	font-size:min(38vw,520px);color:rgba(247,147,26,.07);line-height:1;pointer-events:none;
}
.store-btc{
	width:330px;max-width:100%;background:#0a1020;border:1px solid rgba(247,147,26,.35);
	border-radius:24px;padding:26px;box-shadow:0 40px 80px rgba(0,0,0,.55);
}
.store-btc__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.store-btc__amount{font-family:var(--font-display);font-size:1.1rem}
.store-btc__net{color:#f7931a;font-size:.8rem;font-weight:700}
.store-btc__qrwrap{position:relative;background:#fff;border-radius:16px;padding:18px}
/* 25×25 QR grid, cells injected by JS (each gets .on when filled) */
.store-btc__qr{display:grid;grid-template-columns:repeat(25,1fr);gap:2px;width:100%;animation:xs-qrflick 1.8s ease-in-out infinite}
.store-btc__qr span{aspect-ratio:1;border-radius:1px}
.store-btc__qr span.on{background:#0a1020}
.store-btc__paid{
	position:absolute;inset:0;background:rgba(4,35,26,.94);border-radius:16px;
	display:none;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:#fff;
}
.store-btc__paid.is-visible{display:flex}
.store-btc__tick{width:64px;height:64px;border-radius:50%;background:var(--success);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#04231a}
.store-btc__paidlabel{font-family:var(--font-display);font-size:1.4rem;display:flex;align-items:center;gap:.4rem}
.store-btc__paidsub{color:rgba(255,255,255,.75);font-size:.85rem}
.store-btc__btn{
	width:100%;margin-top:18px;background:#f7931a;color:#1a1206;border:none;border-radius:8px;
	padding:14px;font-family:var(--font-body);font-weight:700;font-size:.95rem;cursor:pointer;
	transition:filter .2s var(--ease);
}
.store-btc__btn:hover{filter:brightness(1.08)}
.store-btc__foot{text-align:center;margin-top:14px;color:rgba(255,255,255,.5);font-size:.8rem}


/* ---------- misc page-specific blocks ---------- */

/* report cards sit side by side and stretch */
.store-report-card--chart{flex:1 1 460px;min-width:340px;padding:24px}
.store-report-card--exports{flex:1 1 340px;min-width:320px;padding:24px;display:flex;flex-direction:column}

/* support strip */
.store-support{padding:clamp(1.8rem,4vw,2.6rem);display:flex;flex-wrap:wrap;align-items:center;gap:1.8rem}
.store-support__copy{flex:1 1 280px;min-width:260px}
.store-support__action{flex:none}

/* "replaces 5 tools" arrow */
.store-arrow{color:var(--gray-300);font-size:2rem}

/* showcase closing note */
.store-showcase__note{color:rgba(255,255,255,.72);font-size:.95rem}
.store-showcase__note strong{color:#fff}

/* case-study logo sizing (each client mark has its own optical height) */
.xs-page .xs-case__logo--icehq{padding:26px}
.xs-page .xs-case__logo--icehq img{max-height:66px}
.xs-page .xs-case__logo--vikings img{max-height:92px}
.xs-page .xs-case__logo--pair{padding:16px}
.xs-page .xs-case__logo--pair img:first-child{max-height:84px}
.xs-page .xs-case__logo--pair img:last-child{max-height:70px;border-radius:8px}
