/* ============================================================
   320° COAL — BLOCKS
   Shared styles for the four Elementor widgets. Namespaced per
   widget (.c320-cards / .c320-range / .c320-reviews / .c320-logos)
   so nothing leaks into the theme or Elementor chrome.
   Font (Outfit) is enqueued by the plugin.
   ============================================================ */
.c320-cards,.c320-range,.c320-wc,.c320-reviews,.c320-logos{
  --sky:#6EC0E5;--sky300:#86CAE9;--sky600:#35A7DB;--azure600:#1C76D6;
  --ink:#1F1F1D;--inkdeep:#0E0E0D;--charcoal:#2B2B29;--white:#fff;
  --n50:#F7F7F7;--n100:#E6E6E6;--n300:#B8BCC0;--n400:#8A8F94;--n500:#6C6C6C;--n600:#54595D;--n700:#3A3A38;--n800:#2B2B29;
  --sku-orange:#F16422;--sku-blue:#6393CD;--sku-red:#ED1E24;--sku-green:#00A042;--sku-purple:#882890;
  --success:#25A55B;--warning:#E8A317;
  --font:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --mono:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-family:var(--font);
}
.c320-cards *,.c320-range *,.c320-wc *,.c320-reviews *,.c320-logos *{box-sizing:border-box}

/* ---- Shared section header ---- */
.c320-head{max-width:800px;margin:0 auto 48px;text-align:center}
.c320-head__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--azure600);
  display:inline-flex;align-items:center;gap:8px;margin-bottom:16px}
/* Centred section eyebrows get a long dash each side */
.c320-head__eyebrow::before,.c320-head__eyebrow::after{content:"";width:22px;height:1px;background:currentColor;opacity:.6}
.c320-head__title{font-size:clamp(1.9rem,3.4vw,2.25rem);font-weight:600;letter-spacing:-.015em;color:#1F1F1D;margin:0 0 16px}
.c320-head__sub{font-size:1.125rem;color:var(--n500);margin:0 auto;max-width:60ch}
.c320-head--dark .c320-head__eyebrow{color:var(--sky300)}
.c320-head--dark .c320-head__title{color:#fff}
.c320-head--dark .c320-head__sub{color:var(--n300)}

/* ---- Shared button (Ink on Sky — WCAG-safe) ---- */
.c320-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 24px;
  border-radius:8px;border:1.5px solid transparent;font-family:var(--font);font-size:.9375rem;font-weight:600;
  letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);width:100%}
.c320-btn--primary{background:var(--sky);color:var(--ink)}
.c320-btn--primary:hover{background:var(--sky600);color:var(--ink)}
.c320-btn--sec{background:transparent;color:var(--ink);border-color:var(--ink)}
.c320-btn--sec:hover{background:var(--ink);color:#fff}

/* ============================ CATEGORY CARDS ============================ */
.c320-cards__grid{display:grid;grid-template-columns:repeat(var(--cols,5),1fr);gap:20px}
.c320-card{position:relative;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;
  background:var(--inkdeep);border:1px solid var(--n800);text-align:center;text-decoration:none;
  transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,border-color .25s}
.c320-card:hover{transform:translateY(-6px);box-shadow:0 12px 24px rgba(0,0,0,.28);border-color:#0F4056}
.c320-card__stage{aspect-ratio:3/4;position:relative;display:grid;place-items:center;overflow:hidden;flex-shrink:0}
.c320-card__stage::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 50% 42%,rgba(110,192,229,.14),transparent 62%)}
/* Top scrim so the overlaid title stays legible over any image */
.c320-card__stage::after{content:"";position:absolute;left:0;right:0;top:0;height:46%;z-index:2;pointer-events:none;background:linear-gradient(to bottom,rgba(14,14,13,.62),transparent)}
.c320-card__art{position:relative;z-index:2;width:58%;max-width:120px;color:var(--n300);transition:transform .25s,color .25s}
.c320-card__art svg{width:100%;height:auto;display:block}
.c320-card__art i{font-size:56px;line-height:1;display:block}
.c320-card:hover .c320-card__art{transform:scale(1.06);color:var(--sky300)}
/* Image cards: the image fills the whole stage (cover) */
.c320-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;transition:transform .25s cubic-bezier(.4,0,.2,1)}
.c320-card:hover .c320-card__img{transform:scale(1.06)}
/* Title: transparent overlay at the top of the tile */
.c320-card__title{position:absolute;top:0;left:0;right:0;z-index:3;margin:0;padding:20px 18px;background:transparent;color:#fff;font-size:1.25rem;font-weight:600;letter-spacing:-.01em;line-height:1.2;text-align:center}
/* Body: sits at the base, holds only the link */
.c320-card__body{padding:16px;background:var(--charcoal);border-top:1px solid var(--n800);display:flex;justify-content:center;align-items:center}
.c320-card__link{display:inline-flex;align-items:center;gap:6px;color:var(--sky);font-size:.8125rem;font-weight:600;letter-spacing:.02em}
.c320-card__link svg{width:14px;height:14px;transition:transform .15s}
.c320-card:hover .c320-card__link svg{transform:translateX(3px)}

/* ============================ PRODUCT RANGE ============================ */
.c320-range__grid{display:grid;grid-template-columns:repeat(var(--cols,5),1fr);gap:20px}
.c320-pack{background:#fff;border:1px solid var(--n100);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;
  transition:transform .25s,box-shadow .25s;text-decoration:none}
.c320-pack:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.14)}
.c320-pack__stage{background:var(--inkdeep);aspect-ratio:1;display:grid;place-items:center;position:relative;padding:20px}
.c320-pack__stage::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.05),transparent 60%)}
.c320-pack__swatch{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;z-index:3}
.c320-pack__dot{width:12px;height:12px;border-radius:9999px}
.c320-pack__swatch span{font-family:var(--mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--n300)}
.c320-pack__badge{position:absolute;top:12px;right:12px;z-index:3;font-family:var(--mono);font-size:.625rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--sky);padding:3px 8px;border-radius:9999px}
.c320-pack__box{position:relative;z-index:2;width:64%;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5))}
.c320-pack__box svg{width:100%;height:auto;display:block}
.c320-pack__body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.c320-pack__spec{font-family:var(--mono);font-size:.75rem;color:var(--n500);letter-spacing:.03em}
.c320-pack__title{font-size:1rem;font-weight:600;color:#1F1F1D;line-height:1.3;margin:0}
.c320-pack__meta{font-size:.8125rem;color:var(--n500)}
.c320-pack__foot{margin-top:auto;padding-top:16px}
.c320-pack__pricerow{display:flex;align-items:baseline;gap:8px;margin-bottom:16px}
.c320-pack__price{font-size:1.5rem;font-weight:600;color:var(--azure600);letter-spacing:-.01em}
.c320-pack__vat{font-size:.75rem;color:var(--n500)}

/* ============================ PRODUCT RANGE (WooCommerce) ============================ */
.c320-wc__grid{display:grid;grid-template-columns:repeat(var(--cols,4),1fr);gap:20px}
.c320-wc__card{background:#fff;border:1px solid var(--n100);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.c320-wc__card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.14)}
.c320-wc__stage{aspect-ratio:1;display:grid;place-items:center;position:relative;padding:20px;background:var(--n50,#F7F7F7);overflow:hidden}
.c320-wc--dark .c320-wc__stage{background:var(--inkdeep)}
.c320-wc__stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply;transition:transform .25s}
.c320-wc--dark .c320-wc__stage img{mix-blend-mode:normal}
.c320-wc__card:hover .c320-wc__stage img{transform:scale(1.04)}
.c320-wc__badge{position:absolute;top:12px;left:12px;z-index:2;background:var(--warning);color:var(--ink);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:9999px}
.c320-wc__body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.c320-wc__title{font-size:1rem;font-weight:600;line-height:1.3;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}
.c320-wc__title a{color:#1F1F1D;text-decoration:none}
.c320-wc__title a:hover{color:var(--azure600)}
/* Footer: price (left) + compact "+" add-to-basket (right) — original card look */
.c320-wc__foot{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.c320-wc__pricewrap{display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.1}
.c320-wc__price{font-size:1.5rem;font-weight:600;color:var(--azure600);letter-spacing:-.01em}
.c320-wc__price del{color:var(--n400);font-weight:400;font-size:.72em;margin-right:4px}
.c320-wc__price del .woocommerce-Price-amount{color:var(--n400)}
.c320-wc__price ins{text-decoration:none}
/* Price suffix (Woo's "(ex VAT)" or the widget note): small, black, own line, never wraps */
.c320-wc__vat,.c320-wc__price .woocommerce-price-suffix{display:block;font-size:12px;font-weight:400;color:var(--ink);white-space:nowrap}
.c320-wc__add-wrap{flex-shrink:0;display:flex;align-items:center}
.c320-wc__add{position:relative;width:44px;height:44px;border-radius:8px;background:var(--sky);color:var(--ink);border:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;transition:background .15s cubic-bezier(.4,0,.2,1)}
.c320-wc__add:hover{background:var(--sky600);color:var(--ink)}
.c320-wc__add svg{width:20px;height:20px}
.c320-wc__add .ico-check{display:none}
.c320-wc__add.added{background:var(--success);color:#fff}
.c320-wc__add.added .ico-plus{display:none}
.c320-wc__add.added .ico-check{display:inline-flex}
.c320-wc__add.loading{opacity:.6;pointer-events:none}
/* Hide Woo's auto-inserted "View cart" link to keep the compact "+" */
.c320-wc__add-wrap .added_to_cart{display:none !important}

/* ============================ REVIEWS ============================ */
.c320-reviews__grid{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:24px}
.c320-review{background:#fff;border:1px solid var(--n100);border-radius:16px;padding:32px;display:flex;flex-direction:column;
  box-shadow:0 1px 2px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.06)}
.c320-review__stars{display:flex;gap:2px;color:var(--warning);margin-bottom:16px}
.c320-review__stars svg{width:18px;height:18px}
.c320-review__q{font-size:1.0625rem;line-height:1.6;color:var(--n800);margin:0 0 24px;font-weight:400}
.c320-review__who{display:flex;align-items:center;gap:12px;margin-top:auto}
.c320-review__av{width:40px;height:40px;border-radius:9999px;background:var(--ink);color:var(--sky);display:grid;place-items:center;
  font-weight:600;font-size:.9375rem;font-family:var(--mono);flex-shrink:0}
.c320-review__name{font-weight:600;color:#1F1F1D;font-size:.9375rem}
.c320-review__role{font-size:.8125rem;color:var(--n500)}
.c320-review__verified{margin-left:auto;display:inline-flex;align-items:center;gap:4px;color:var(--success);font-size:.75rem;font-weight:600}
.c320-review__verified svg{width:14px;height:14px}

/* ============================ STOCKIST WALL ============================ */
.c320-logos{background:var(--ink);padding:96px 32px}
.c320-logos__inner{max-width:1200px;margin:0 auto}
.c320-logos__grid{display:grid;grid-template-columns:repeat(var(--cols,6),1fr);gap:1px;background:var(--n700);
  border:1px solid var(--n700);border-radius:16px;overflow:hidden}
.c320-logos__cell{background:var(--ink);display:grid;place-items:center;min-height:104px;transition:background .25s}
.c320-logos__cell:hover{background:var(--charcoal)}
.c320-logos__cell span{font-weight:700;font-size:1rem;letter-spacing:.04em;color:var(--n300);text-align:center;
  transition:color .25s;text-transform:uppercase;line-height:1.2}
.c320-logos__cell:hover span{color:#FAFBF7}
.c320-logos__cell img{max-width:100%;width:auto;height:auto;object-fit:contain;
  filter:invert(1);opacity:.72;transition:opacity .25s, filter .25s}
.c320-logos__cell:hover img{opacity:1;filter:none}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1024px){
  .c320-cards__grid,.c320-range__grid,.c320-wc__grid{grid-template-columns:repeat(3,1fr)}
  .c320-logos__grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:820px){
  .c320-reviews__grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .c320-cards__grid,.c320-range__grid,.c320-wc__grid{grid-template-columns:repeat(2,1fr)}
  .c320-logos{padding:56px 20px}
  .c320-logos__grid{grid-template-columns:repeat(3,1fr)}
  .c320-head{margin-bottom:32px}
}
@media (max-width:480px){
  .c320-logos__grid{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .c320-card,.c320-pack,.c320-card__art,.c320-card__link svg{transition:none}
}
