/* ============================================================
   E2K PRODUCT PAGE · THEME 1 "WORKSHOP"
   All selectors are namespaced under .e2k so nothing collides
   with your theme, Elementor or WooCommerce defaults.
============================================================ */

.e2k{
  --e2k-orange:#F28C00; --e2k-orange-ink:#8A4E00; --e2k-orange-soft:#FEE9CC; --e2k-orange-line:#F7CB92;
  --e2k-blue:#0677B9; --e2k-blue-deep:#055E92; --e2k-blue-soft:#E4F1FB;
  --e2k-ink:#14110D; --e2k-ink-2:#403A32; --e2k-cream:#FEF7EE; --e2k-cream-2:#FBEEDD; --e2k-white:#FFF;
  --e2k-gray:#6B7280; --e2k-peach:#FBD9AE; --e2k-peach-2:#FCE8CE;
  --e2k-green:#1E7A44; --e2k-green-soft:#E9F9EE;
  --e2k-font-d:'Jost',sans-serif;
  --e2k-font-b:'Nunito Sans',sans-serif;
  --e2k-r-sm:10px; --e2k-r-md:16px; --e2k-r-lg:24px; --e2k-r-xl:32px;
  --e2k-sh-sm:0 2px 8px rgba(120,70,10,.08);
  --e2k-sh-md:0 14px 40px -12px rgba(120,70,10,.18);

  font-family:var(--e2k-font-b);
  color:var(--e2k-ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.e2k *,.e2k *::before,.e2k *::after{box-sizing:border-box}
.e2k img{display:block;max-width:100%;height:auto}
.e2k a{text-decoration:none}
.e2k h1,.e2k h2,.e2k h3,.e2k h4{font-family:var(--e2k-font-d);letter-spacing:-.02em;line-height:1.15;margin:0}
.e2k p{margin:0}

.e2k-block{width:100%}
.e2k-narrow{max-width:880px;margin-inline:auto}

/* ---------- shared bits ---------- */
.e2k-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--e2k-font-d);font-weight:700;font-size:12.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--e2k-orange-ink);margin-bottom:14px;
}
.e2k-eyebrow::before{content:"";width:22px;height:3px;border-radius:3px;background:var(--e2k-orange)}
.e2k-sec-head{margin-bottom:32px}
.e2k-sec-head--center{text-align:center}
.e2k-sec-head--center .e2k-eyebrow{justify-content:center}
.e2k-sec-title{font-size:clamp(23px,2.8vw,30px);font-weight:800}
.e2k-sec-title em{font-style:normal;color:var(--e2k-orange)}

/* ---------- buttons ---------- */
.e2k-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--e2k-font-d);font-weight:700;font-size:15px;
  border:none;border-radius:14px;padding:14px 26px;cursor:pointer;
  transition:transform .12s ease,box-shadow .18s,background .18s,color .18s;
  white-space:nowrap;text-align:center;
}
.e2k-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.e2k-btn:active{transform:translateY(1px)}
.e2k-btn--primary{background:var(--e2k-blue);color:#fff;box-shadow:0 10px 22px -8px rgba(6,119,185,.55)}
.e2k-btn--primary:hover{background:var(--e2k-blue-deep);color:#fff}
.e2k-btn--accent{background:var(--e2k-orange);color:var(--e2k-ink)}
.e2k-btn--accent:hover{background:#e07f00;color:var(--e2k-ink);transform:translateY(-1px)}
.e2k-btn--ghost{background:var(--e2k-white);color:var(--e2k-ink);border:1.5px solid var(--e2k-peach);box-shadow:var(--e2k-sh-sm)}
.e2k-btn--ghost:hover{border-color:var(--e2k-orange);color:var(--e2k-orange-ink)}
.e2k-btn--sm{padding:10px 18px;font-size:14px;border-radius:11px}
.e2k-btn--block{width:100%}

/* ---------- star rating (CSS-only, fractional) ---------- */
.e2k-stars{position:relative;display:inline-block;font-size:16px;line-height:1;letter-spacing:2px;font-family:var(--e2k-font-b)}
.e2k-stars::before{content:"★★★★★";color:var(--e2k-peach)}
.e2k-stars::after{
  content:"★★★★★";color:var(--e2k-orange);
  position:absolute;inset:0;overflow:hidden;white-space:nowrap;
  width:var(--e2k-fill,0%);
}
.e2k-stars--lg{font-size:20px;letter-spacing:3px;margin:8px 0}

/* ============================================================
   GALLERY
============================================================ */
.e2k-gal.is-sticky{position:sticky;top:96px}
.e2k-gal__main{
  position:relative;border-radius:var(--e2k-r-xl);overflow:hidden;
  aspect-ratio:var(--e2k-ratio,4/3);
  background:linear-gradient(150deg,var(--e2k-peach-2),var(--e2k-blue-soft));
  box-shadow:var(--e2k-sh-md);
}
.e2k-gal__slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .25s ease;pointer-events:none}
.e2k-gal__slide.is-active{opacity:1;pointer-events:auto}
.e2k-gal__img{width:100%;height:100%;object-fit:cover}
.e2k-gal__ph{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--e2k-ink-2);font-family:var(--e2k-font-d);font-weight:700;font-size:14px;text-align:center;padding:20px;
}
.e2k-gal__badges{position:absolute;top:16px;left:16px;display:flex;gap:8px;z-index:3}
.e2k-gbadge{
  font-family:var(--e2k-font-d);font-weight:800;font-size:11px;letter-spacing:.03em;
  text-transform:uppercase;padding:6px 11px;border-radius:9px;
}
.e2k-gbadge--sell{background:var(--e2k-orange);color:var(--e2k-ink)}
.e2k-gbadge--new{background:var(--e2k-blue);color:#fff}
.e2k-gal__play{
  position:absolute;bottom:16px;right:16px;z-index:3;
  display:inline-flex;align-items:center;gap:9px;border:none;cursor:pointer;
  background:rgba(20,17,13,.82);color:#fff;
  font-family:var(--e2k-font-d);font-weight:700;font-size:13px;
  padding:9px 15px;border-radius:999px;transition:background .18s;
}
.e2k-gal__play:hover{background:var(--e2k-ink)}
.e2k-gal__play svg{width:14px;height:14px;fill:#fff;stroke:none}

.e2k-gal__thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.e2k-gthumb{
  flex:0 0 calc(20% - 8px);aspect-ratio:1;border-radius:12px;overflow:hidden;
  background:var(--e2k-cream-2);border:2px solid transparent;padding:0;cursor:pointer;transition:.15s;
}
.e2k-gthumb img{width:100%;height:100%;object-fit:cover}
.e2k-gthumb.is-active,.e2k-gthumb:hover{border-color:var(--e2k-orange)}
.e2k-gthumb:focus-visible{outline:3px solid var(--e2k-blue);outline-offset:2px}

/* video modal */
.e2k-vmodal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px}
.e2k-vmodal[hidden]{display:none}
.e2k-vmodal__bg{position:absolute;inset:0;background:rgba(20,17,13,.82)}
.e2k-vmodal__box{position:relative;width:min(960px,100%);}
.e2k-vmodal__frame{position:relative;aspect-ratio:16/9;border-radius:var(--e2k-r-lg);overflow:hidden;background:#000}
.e2k-vmodal__frame iframe{width:100%;height:100%;border:0;display:block}
.e2k-vmodal__x{
  position:absolute;top:-44px;right:0;background:none;border:none;color:#fff;
  font-size:34px;line-height:1;cursor:pointer;padding:4px 10px;
}

/* ============================================================
   BUY PANEL
============================================================ */
.e2k-buy__stars{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}
.e2k-buy__stars a{font-size:13px;color:var(--e2k-gray);font-weight:600}
.e2k-buy__stars a b{color:var(--e2k-ink)}
.e2k-buy__title{font-size:clamp(27px,3.6vw,38px);font-weight:900;letter-spacing:-.03em;margin-bottom:12px}
.e2k-buy__lede{font-size:16.5px;color:var(--e2k-ink-2);line-height:1.6;margin-bottom:18px}
.e2k-buy__lede p+p{margin-top:10px}

.e2k-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.e2k-chip{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--e2k-font-d);font-weight:700;font-size:12.5px;
  padding:7px 12px;border-radius:999px;
}
.e2k-chip svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.e2k-chip--grade{background:var(--e2k-blue-soft);color:var(--e2k-blue-deep)}
.e2k-chip--level{background:var(--e2k-orange-soft);color:var(--e2k-orange-ink)}
.e2k-chip--time{background:var(--e2k-cream-2);color:var(--e2k-ink-2)}

/* price — WooCommerce prints its own markup, so we restyle it */
.e2k-buy__price{margin-bottom:6px}
.e2k-buy__price .price,
.e2k-buy__price > span{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.e2k-buy__price .woocommerce-Price-amount{
  font-family:var(--e2k-font-d);font-weight:900;font-size:34px;color:var(--e2k-ink);line-height:1.1;
}
.e2k-buy__price del{opacity:1;text-decoration:none}
.e2k-buy__price del .woocommerce-Price-amount{
  font-size:18px;font-weight:700;color:var(--e2k-gray);text-decoration:line-through;
}
.e2k-buy__price ins{text-decoration:none;background:none}

.e2k-buy__ship{
  font-size:13px;color:var(--e2k-green);font-weight:700;margin-bottom:20px;
  display:flex;align-items:center;gap:6px;
}
.e2k-buy__ship svg{width:15px;height:15px;stroke:var(--e2k-green);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.e2k-buy__ship--out{color:#B42318}

.e2k-buy__row{display:flex;gap:11px;margin-bottom:18px;flex-wrap:wrap}
.e2k-buy__row .e2k-btn{flex:1 1 180px}

.e2k-buy__learn{
  background:var(--e2k-blue-soft);border-radius:var(--e2k-r-md);padding:15px 18px;
  display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;
}
.e2k-buy__learn > svg{width:22px;height:22px;stroke:var(--e2k-blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:2px}
.e2k-buy__learn .e2k-rte{font-size:13.5px;line-height:1.55}
.e2k-buy__sku{font-size:12.5px;color:var(--e2k-gray);margin-top:14px}
.e2k-buy__sku span{font-family:var(--e2k-font-d);font-weight:700;color:var(--e2k-ink-2)}

/* ---------- WooCommerce add-to-cart form restyle ---------- */
.e2k-buy__form{margin-bottom:18px}
.e2k-buy__form form.cart{display:flex;flex-direction:column;gap:12px;margin:0}
.e2k-buy__form form.cart::before,
.e2k-buy__form form.cart::after{display:none}

.e2k-buy__form .quantity{display:inline-flex;align-items:center;border:1.5px solid var(--e2k-peach);border-radius:12px;overflow:hidden;background:#fff;width:max-content}
.e2k-buy__form .quantity .qty{
  width:64px;height:46px;border:none;text-align:center;background:none;
  font-family:var(--e2k-font-d);font-weight:800;font-size:16px;color:var(--e2k-ink);
  -moz-appearance:textfield;
}
.e2k-buy__form .quantity .qty::-webkit-outer-spin-button,
.e2k-buy__form .quantity .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.e2k-qtybtn{
  width:42px;height:46px;background:none;border:none;cursor:pointer;
  font-size:19px;font-weight:700;color:var(--e2k-ink);line-height:1;
}
.e2k-qtybtn:hover{background:var(--e2k-orange-soft)}

.e2k-buy__form button.single_add_to_cart_button,
.e2k-buy__form .single_add_to_cart_button{
  width:100%;display:inline-flex;align-items:center;justify-content:center;
  background:var(--e2k-blue);color:#fff;border:none;
  font-family:var(--e2k-font-d);font-weight:700;font-size:16.5px;
  padding:17px 30px;border-radius:16px;cursor:pointer;
  box-shadow:0 10px 22px -8px rgba(6,119,185,.55);
  transition:background .18s,transform .12s;
}
.e2k-buy__form button.single_add_to_cart_button:hover{background:var(--e2k-blue-deep)}
.e2k-buy__form button.single_add_to_cart_button:active{transform:translateY(1px)}
.e2k-buy__form button.single_add_to_cart_button.disabled{opacity:.5;cursor:not-allowed}

/* variable product select boxes */
.e2k-buy__form table.variations{width:100%;border:none;margin:0 0 4px}
.e2k-buy__form table.variations th,
.e2k-buy__form table.variations td{border:none;padding:0 0 10px;display:block;text-align:left}
.e2k-buy__form table.variations label{font-family:var(--e2k-font-d);font-weight:700;font-size:14px;color:var(--e2k-ink)}
.e2k-buy__form table.variations select{
  width:100%;padding:12px 14px;border:1.5px solid var(--e2k-peach);border-radius:12px;
  background:#fff;font-family:var(--e2k-font-b);font-size:15px;color:var(--e2k-ink);
}
.e2k-buy__form .woocommerce-variation-price{margin-bottom:6px}
.e2k-buy__form .woocommerce-variation-price .woocommerce-Price-amount{
  font-family:var(--e2k-font-d);font-weight:900;font-size:26px;color:var(--e2k-ink);
}
.e2k-buy__form .reset_variations{font-size:13px;color:var(--e2k-blue);font-weight:600}

/* ============================================================
   WYSIWYG (ACF) BASE STYLES
============================================================ */
.e2k-rte{font-size:15.5px;color:var(--e2k-ink-2);line-height:1.7}
.e2k-rte > *:first-child{margin-top:0}
.e2k-rte > *:last-child{margin-bottom:0}
.e2k-rte p{margin:0 0 14px}
.e2k-rte strong,.e2k-rte b{color:var(--e2k-ink);font-weight:700}
.e2k-rte a{color:var(--e2k-blue);text-decoration:underline;text-underline-offset:3px}
.e2k-rte h2{font-size:clamp(21px,2.4vw,26px);font-weight:800;color:var(--e2k-ink);margin:30px 0 12px}
.e2k-rte h3{font-size:19px;font-weight:800;color:var(--e2k-ink);margin:26px 0 10px}
.e2k-rte h4{font-size:16px;font-weight:800;color:var(--e2k-ink);margin:20px 0 8px}
.e2k-rte ul,.e2k-rte ol{margin:0 0 16px;padding-left:22px}
.e2k-rte li{margin-bottom:8px}
.e2k-rte ul li::marker{color:var(--e2k-orange)}
.e2k-rte ol li::marker{color:var(--e2k-orange);font-family:var(--e2k-font-d);font-weight:800}
.e2k-rte blockquote{
  margin:20px 0;padding:16px 20px;background:var(--e2k-orange-soft);
  border-left:4px solid var(--e2k-orange);border-radius:0 var(--e2k-r-md) var(--e2k-r-md) 0;
  font-size:15px;color:var(--e2k-ink-2);
}
.e2k-rte img{border-radius:var(--e2k-r-md);margin:18px 0}
.e2k-rte hr{border:none;border-top:1.5px dashed var(--e2k-orange-line);margin:28px 0}
.e2k-rte table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14.5px}
.e2k-rte th,.e2k-rte td{padding:11px 14px;border-bottom:1.5px solid var(--e2k-cream-2);text-align:left}
.e2k-rte th{font-family:var(--e2k-font-d);font-weight:800;color:var(--e2k-ink);background:var(--e2k-cream-2)}

/* ---------- key_features → card grid ---------- */
.e2k-rte--features ul{
  list-style:none;padding:0;margin:0;
  display:grid;gap:16px;
  grid-template-columns:repeat(var(--e2k-cols,4),minmax(0,1fr));
}
.e2k-cols-2{--e2k-cols:2}
.e2k-cols-3{--e2k-cols:3}
.e2k-cols-4{--e2k-cols:4}
.e2k-rte--features li{
  position:relative;background:var(--e2k-white);border-radius:var(--e2k-r-md);
  padding:20px 20px 20px 22px;box-shadow:var(--e2k-sh-sm);
  border:1.5px solid #fff;margin:0;font-size:13.5px;line-height:1.55;
  transition:transform .16s,border-color .16s;
}
.e2k-rte--features li:hover{border-color:var(--e2k-orange-line);transform:translateY(-3px)}
.e2k-rte--features li::before{
  content:"";position:absolute;top:20px;left:0;width:4px;height:26px;
  border-radius:0 4px 4px 0;background:var(--e2k-orange);
}
.e2k-rte--features li::marker{content:none}
/* "TITLE: copy" pattern — the bold lead-in becomes the card heading */
.e2k-rte--features li strong,
.e2k-rte--features li b{
  display:block;font-family:var(--e2k-font-d);font-weight:800;
  font-size:15px;color:var(--e2k-ink);margin-bottom:5px;letter-spacing:-.01em;
}

/* ---------- product_specifications → spec rows ---------- */
.e2k-rte--specs ul,
.e2k-rte--specs ol{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px;grid-template-columns:1fr 1fr}
.e2k-rte--specs li{
  display:flex;align-items:flex-start;gap:10px;margin:0;
  background:var(--e2k-white);border:1.5px solid var(--e2k-peach);
  border-radius:12px;padding:11px 14px;font-size:13.5px;font-weight:600;color:var(--e2k-ink-2);
}
.e2k-rte--specs li::before{
  content:"";flex-shrink:0;width:8px;height:8px;border-radius:50%;
  background:var(--e2k-orange);margin-top:7px;
}
.e2k-rte--specs li strong,
.e2k-rte--specs li b{font-family:var(--e2k-font-d);font-weight:800;color:var(--e2k-ink);margin-right:4px}
.e2k-rte--specs table th{width:38%}

/* ---------- prefer_for → ticked list ---------- */
.e2k-rte--prefer ul{
  list-style:none;padding:0;margin:0;
  display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}
.e2k-rte--prefer li{
  display:flex;align-items:center;gap:11px;margin:0;
  font-size:14.5px;font-weight:600;color:var(--e2k-ink-2);
  background:var(--e2k-white);border-radius:12px;padding:13px 16px;box-shadow:var(--e2k-sh-sm);
}
.e2k-rte--prefer li::before{
  content:"";flex-shrink:0;width:22px;height:22px;border-radius:50%;
  background:var(--e2k-green-soft) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E7A44' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
}

/* ---------- body_content → readable long-form ---------- */
.e2k-rte--body{font-size:16px}
.e2k-rte--body p{margin-bottom:18px}

/* ============================================================
   SPECS / IMAGE SPLIT
============================================================ */
.e2k-box2{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.e2k-box2.is-single{grid-template-columns:1fr}
.e2k-box2.is-flipped .e2k-box2__vis{order:2}
.e2k-box2__vis{
  border-radius:var(--e2k-r-lg);overflow:hidden;aspect-ratio:5/4;
  background:linear-gradient(150deg,var(--e2k-blue-soft),var(--e2k-peach-2));
  box-shadow:var(--e2k-sh-md);
}
.e2k-box2__img{width:100%;height:100%;object-fit:cover}
.e2k-box2__txt{min-width:0}

/* ============================================================
   ACCORDION (FAQ)
============================================================ */
.e2k-acc{border:1.5px solid var(--e2k-peach);border-radius:var(--e2k-r-md);overflow:hidden;background:var(--e2k-white)}
.e2k-acc__item{border-bottom:1.5px solid var(--e2k-cream-2)}
.e2k-acc__item:last-child{border-bottom:none}
.e2k-acc__head{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;
  padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-family:var(--e2k-font-d);font-weight:800;font-size:15.5px;color:var(--e2k-ink);
}
.e2k-acc__head:hover{background:var(--e2k-cream)}
.e2k-acc__head:focus-visible{outline:3px solid var(--e2k-blue);outline-offset:-3px}
.e2k-caret{flex-shrink:0;transition:transform .2s}
.e2k-caret svg{width:18px;height:18px;stroke:var(--e2k-gray);fill:none;stroke-width:2.4;display:block}
.e2k-acc__item.is-open .e2k-caret{transform:rotate(180deg)}
.e2k-acc__body{max-height:0;overflow:hidden;transition:max-height .28s ease}
.e2k-acc__inner{padding:0 20px 20px;font-size:14.5px;color:var(--e2k-ink-2);line-height:1.65}
.e2k-acc__inner p{margin:0 0 12px}
.e2k-acc__inner p:last-child{margin-bottom:0}

/* ============================================================
   REVIEWS
============================================================ */
.e2k-rev{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:start}
.e2k-rev__summary{
  background:var(--e2k-white);border-radius:var(--e2k-r-lg);padding:26px;
  box-shadow:var(--e2k-sh-sm);text-align:center;position:sticky;top:96px;
}
.e2k-rev__big{font-family:var(--e2k-font-d);font-weight:900;font-size:52px;line-height:1;color:var(--e2k-ink)}
.e2k-rev__count{font-size:13px;color:var(--e2k-gray)}
.e2k-rev__bars{margin-top:20px;display:flex;flex-direction:column;gap:7px}
.e2k-rbar{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--e2k-gray)}
.e2k-rbar__n{width:10px;text-align:right}
.e2k-rbar__track{flex:1;height:7px;border-radius:4px;background:var(--e2k-cream-2);overflow:hidden}
.e2k-rbar__fill{display:block;height:100%;background:var(--e2k-orange);border-radius:4px}
.e2k-rbar__p{width:34px;text-align:right}
.e2k-rev__cta{margin-top:20px}

/* WooCommerce comment list restyle */
.e2k-rev__list #reviews .commentlist{list-style:none;margin:0;padding:0}
.e2k-rev__list #reviews .commentlist li{
  background:var(--e2k-white);border-radius:var(--e2k-r-md);padding:22px;
  box-shadow:var(--e2k-sh-sm);margin:0 0 14px;list-style:none;
}
.e2k-rev__list .comment_container{display:flex;gap:14px;align-items:flex-start}
.e2k-rev__list .comment_container img.avatar{
  width:46px;height:46px;border-radius:50%;position:static;float:none;padding:0;border:none;flex-shrink:0;
}
.e2k-rev__list .comment-text{margin:0;border:none;padding:0;flex:1;min-width:0}
.e2k-rev__list .woocommerce-review__author{font-family:var(--e2k-font-d);font-weight:800;font-size:14.5px;color:var(--e2k-ink)}
.e2k-rev__list .woocommerce-review__published-date{font-size:12px;color:var(--e2k-gray)}
.e2k-rev__list .comment-text .star-rating{margin:6px 0 8px;float:none;color:var(--e2k-orange)}
.e2k-rev__list .description{font-size:14px;color:var(--e2k-ink-2);line-height:1.6}
.e2k-rev__list #review_form_wrapper{
  background:var(--e2k-white);border-radius:var(--e2k-r-md);padding:24px;box-shadow:var(--e2k-sh-sm);margin-top:8px;
}
.e2k-rev__list #review_form_wrapper input[type=text],
.e2k-rev__list #review_form_wrapper input[type=email],
.e2k-rev__list #review_form_wrapper textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--e2k-peach);border-radius:12px;
  background:#fff;font-family:var(--e2k-font-b);font-size:15px;
}
.e2k-rev__list #review_form_wrapper .submit{
  background:var(--e2k-orange);color:var(--e2k-ink);border:none;
  font-family:var(--e2k-font-d);font-weight:700;font-size:15px;
  padding:14px 26px;border-radius:14px;cursor:pointer;
}
.e2k-rev__list #review_form_wrapper .submit:hover{background:#e07f00}

/* ============================================================
   TRUST ROW
============================================================ */
.e2k-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.e2k-tcard{text-align:center;padding:22px 16px}
.e2k-tcard__ic{
  width:48px;height:48px;border-radius:14px;background:var(--e2k-white);
  box-shadow:var(--e2k-sh-sm);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;
}
.e2k-tcard__ic svg{width:24px;height:24px;stroke:var(--e2k-orange);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.e2k-tcard b{font-family:var(--e2k-font-d);font-weight:800;font-size:14.5px;display:block;margin-bottom:4px}
.e2k-tcard p{font-size:12.5px;color:var(--e2k-ink-2);line-height:1.45}

/* ============================================================
   STICKY BUY BAR
============================================================ */
.e2k-stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:590;
  background:rgba(255,255,255,.97);backdrop-filter:blur(8px);
  border-top:1.5px solid var(--e2k-peach);
  box-shadow:0 -8px 30px -12px rgba(120,70,10,.2);
  transform:translateY(110%);transition:transform .25s ease;
}
.e2k-stickybar.is-on{transform:translateY(0)}
.e2k-stickybar__in{max-width:1200px;margin:0 auto;padding:12px 40px;display:flex;align-items:center;gap:16px}
.e2k-stickybar__info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.e2k-stickybar__thumb{width:44px;height:44px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--e2k-cream-2)}
.e2k-stickybar__thumb img{width:100%;height:100%;object-fit:cover}
.e2k-stickybar__txt{min-width:0}
.e2k-stickybar__name{
  font-family:var(--e2k-font-d);font-weight:800;font-size:15px;color:var(--e2k-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.e2k-stickybar__meta{font-size:12px;color:var(--e2k-gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e2k-stickybar__price .woocommerce-Price-amount{font-family:var(--e2k-font-d);font-weight:900;font-size:20px;color:var(--e2k-ink)}
.e2k-stickybar__price del{display:none}
.e2k-stickybar__price ins{text-decoration:none;background:none}
.e2k-stickybar__cta{display:flex;gap:10px;flex-shrink:0}

/* ============================================================
   RESPONSIVE
============================================================ */
@media(max-width:1024px){
  .e2k-rte--features ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .e2k-gal.is-sticky{position:static}
  .e2k-rev__summary{position:static}
}
@media(max-width:820px){
  .e2k-box2{grid-template-columns:1fr;gap:26px}
  .e2k-box2.is-flipped .e2k-box2__vis{order:0}
  .e2k-rev{grid-template-columns:1fr;gap:24px}
  .e2k-trust{grid-template-columns:repeat(2,1fr)}
  .e2k-buy__title{font-size:27px}
}
@media(max-width:640px){
  .e2k-gthumb{flex:0 0 72px}
  .e2k-rte--features ul,
  .e2k-rte--specs ul,
  .e2k-rte--specs ol{grid-template-columns:1fr}
  .e2k-stickybar__in{padding:10px 18px;gap:10px}
  .e2k-stickybar__meta{display:none}
  .e2k-stickybar__name{font-size:13.5px}
  .e2k-stickybar__price .woocommerce-Price-amount{font-size:17px}
  .e2k-buy__row .e2k-btn{flex:1 1 100%}
  .e2k-buy__form form.cart{gap:10px}
  .e2k-buy__form .quantity{width:100%}
  .e2k-buy__form .quantity .qty{flex:1;width:auto}
  .e2k-vmodal{padding:16px}
  .e2k-vmodal__x{top:-40px}
  .e2k-acc__head{font-size:14.5px;padding:16px}
  .e2k-acc__inner{padding:0 16px 16px}
  .e2k-rev__list .comment_container{flex-direction:column;gap:10px}
}
@media(max-width:420px){
  .e2k-trust{grid-template-columns:1fr}
  .e2k-rte--prefer ul{grid-template-columns:1fr}
}

/* ---------- accessibility ---------- */
@media(prefers-reduced-motion:reduce){
  .e2k *,.e2k *::before,.e2k *::after{
    animation-duration:.01ms !important;transition-duration:.01ms !important;
  }
}
.e2k a:focus-visible,.e2k button:focus-visible{outline:3px solid var(--e2k-blue);outline-offset:2px;border-radius:6px}

/* ---------- Elementor editor safety ---------- */
.elementor-editor-active .e2k-stickybar{position:relative;transform:none}


/* ============================================================
   E2K PRODUCT PAGE — PART 2
   Cycle · Pathway · Standards accordion
   APPEND this to the bottom of e2k-product-page.css
   (do not replace the file — these rules depend on the
   --e2k-* variables declared at the top of part 1)
============================================================ */

/* ============================================================
   0. SECTION BANDS + INNER WRAP
   Gives each block a full-bleed background with a centred,
   padded inner column — replaces the mockup's .wrap.
   Set the Elementor container to Full Width with 0 padding.
============================================================ */
.e2k-section{padding:56px 0;width:100%}
.e2k-section--cream{background:var(--e2k-cream)}
.e2k-section--cream2{background:var(--e2k-cream-2)}
.e2k-section--white{background:var(--e2k-white)}

.e2k-wrap{max-width:1200px;margin-inline:auto;padding:0 40px;width:100%}
.e2k-wrap--narrow{max-width:900px}

@media(max-width:900px){
  .e2k-section{padding:48px 0}
}
@media(max-width:640px){
  .e2k-section{padding:40px 0}
  .e2k-wrap{padding:0 22px}
}

/* section subtitle, used by all three blocks */
.e2k-sec-sub{
  font-size:15.5px;color:var(--e2k-ink-2);margin-top:8px;
  max-width:620px;line-height:1.6;
}
.e2k-sec-head--center .e2k-sec-sub{margin-inline:auto}

/* inline arrow link */
.e2k-link-arrow{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--e2k-font-d);font-weight:700;font-size:14.5px;
  color:var(--e2k-blue);transition:gap .15s;
}
.e2k-link-arrow svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.e2k-link-arrow:hover{gap:10px}

/* ============================================================
   1. HOW THIS BUILD WORKS — the cycle
============================================================ */
.e2k-cycle{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;position:relative;
}
.e2k-cstep{
  background:var(--e2k-white);border-radius:var(--e2k-r-md);
  padding:22px 18px;box-shadow:var(--e2k-sh-sm);
  text-align:center;position:relative;
  border:1.5px solid #fff;transition:transform .16s,border-color .16s;
}
.e2k-cstep:hover{border-color:var(--e2k-orange-line);transform:translateY(-3px)}
.e2k-cstep__n{
  width:38px;height:38px;border-radius:50%;
  background:var(--e2k-ink);color:#fff;
  font-family:var(--e2k-font-d);font-weight:900;font-size:16px;
  display:flex;align-items:center;justify-content:center;margin:0 auto 12px;
}
.e2k-cstep b{font-family:var(--e2k-font-d);font-weight:800;font-size:15px;display:block;margin-bottom:5px}
.e2k-cstep p{font-size:12.5px;color:var(--e2k-ink-2);line-height:1.45}
.e2k-cstep__arrow{position:absolute;top:38px;right:-9px;color:var(--e2k-orange-line);z-index:1}
.e2k-cstep__arrow svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;display:block}

/* ============================================================
   2. PATHWAY
============================================================ */
.e2k-path{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:center}
.e2k-pcard{
  background:var(--e2k-white);border-radius:var(--e2k-r-lg);
  padding:22px;box-shadow:var(--e2k-sh-sm);
  text-align:center;border:2px solid transparent;
}
.e2k-pcard--now{border-color:var(--e2k-orange);box-shadow:var(--e2k-sh-md)}
.e2k-pcard__tag{
  font-family:var(--e2k-font-d);font-weight:800;font-size:11px;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--e2k-gray);margin-bottom:8px;
}
.e2k-pcard--now .e2k-pcard__tag{color:var(--e2k-orange-ink)}
.e2k-pcard__name{font-family:var(--e2k-font-d);font-weight:800;font-size:16px;margin-bottom:4px}
.e2k-pcard__age{font-size:12.5px;color:var(--e2k-gray)}
.e2k-pcard__link{margin-top:10px}
.e2k-pcard--now .e2k-pcard__link{color:var(--e2k-orange-ink)}
.e2k-pconnect{color:var(--e2k-orange);display:flex;align-items:center;justify-content:center}
.e2k-pconnect svg{width:30px;height:20px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1 5;display:block}

/* ============================================================
   3. ACCORDION WITH LEADING ICONS
   Extends .e2k-acc from part 1 — add .e2k-acc--icons alongside it
============================================================ */
.e2k-acc--icons .e2k-acc__head{gap:0}
.e2k-acc-ic{
  width:30px;height:30px;border-radius:8px;
  background:var(--e2k-orange-soft);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;margin-right:12px;
}
.e2k-acc-ic svg{width:16px;height:16px;stroke:var(--e2k-orange);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.e2k-acc--icons .e2k-acc__head > span:not(.e2k-acc-ic):not(.e2k-caret){flex:1;min-width:0}
.e2k-acc--icons .e2k-acc__inner{padding-left:62px}

/* tag pills inside accordion bodies */
.e2k-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.e2k-tag{
  font-family:var(--e2k-font-d);font-weight:700;font-size:11.5px;
  padding:5px 11px;border-radius:8px;
  background:var(--e2k-blue-soft);color:var(--e2k-blue-deep);
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media(max-width:1024px){
  .e2k-cycle{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .e2k-cstep__arrow{display:none}
}
@media(max-width:820px){
  .e2k-path{grid-template-columns:1fr;gap:12px}
  .e2k-pconnect{transform:rotate(90deg);height:20px}
  .e2k-acc--icons .e2k-acc__inner{padding-left:20px}
}
@media(max-width:640px){
  .e2k-cycle{grid-template-columns:repeat(2,minmax(0,1fr))}
  .e2k-cstep{padding:18px 14px}
}
@media(max-width:420px){
  .e2k-cycle{grid-template-columns:1fr}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 3 (hardening patch)
   APPEND to the bottom of e2k-product-page.css
   Cleans up Microsoft Word paste artifacts and adds a proper
   spec-table treatment.
============================================================ */

/* ---- 1. Neutralise Word / Office paste junk -------------------
   Word Online wraps content in spans carrying data-contrast and
   data-ccp-props. The latter are empty spacers holding &nbsp;
   which add phantom gaps. Hide them and strip inherited colour. */
.e2k-rte span[data-ccp-props]{display:none !important}
.e2k-rte span[data-contrast]{color:inherit;background:none}
.e2k-rte [style*="font-family"]{font-family:inherit !important}
.e2k-rte [style*="font-size"]{font-size:inherit !important}
.e2k-rte [style*="color"]{color:inherit !important}

/* Collapse paragraphs that contain nothing but whitespace */
.e2k-rte p:empty{display:none}

/* ---- 2. Spec table --------------------------------------------
   Renders label/value rows without needing &nbsp; alignment. */
.e2k-rte--specs table{
  width:100%;border-collapse:collapse;margin:0 0 22px;
  font-size:14.5px;table-layout:fixed;
}
.e2k-rte--specs table th,
.e2k-rte--specs table td{
  padding:11px 4px;border-bottom:1.5px solid var(--e2k-cream-2);
  text-align:left;vertical-align:top;background:none;
}
.e2k-rte--specs table th{
  width:42%;font-family:var(--e2k-font-d);font-weight:800;
  font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--e2k-orange-ink);
}
.e2k-rte--specs table td{color:var(--e2k-ink-2);font-weight:600}
.e2k-rte--specs table tr:last-child th,
.e2k-rte--specs table tr:last-child td{border-bottom:none}

/* subheading above the components list */
.e2k-rte--specs h3{
  font-family:var(--e2k-font-d);font-weight:800;font-size:15px;
  letter-spacing:-.01em;color:var(--e2k-ink);margin:0 0 12px;
}

/* ---- 3. Feature grid: tolerate a stray leading paragraph -------
   If content starts with a <p> before the <ul>, treat it as a
   lede rather than letting it sit awkwardly above the cards. */
.e2k-rte--features > p:first-child{
  font-size:15.5px;color:var(--e2k-ink-2);margin-bottom:20px;max-width:640px;
}
.e2k-rte--features > p:last-child:not(:first-child){
  font-size:14.5px;color:var(--e2k-gray);margin-top:18px;margin-bottom:0;
}

/* Bold lead-in becomes the card heading even when the source
   used <b> rather than <strong>, or wrapped it in a span. */
.e2k-rte--features li > strong:first-child,
.e2k-rte--features li > b:first-child,
.e2k-rte--features li > span:first-child > strong:first-child,
.e2k-rte--features li > span:first-child > b:first-child{
  display:block;font-family:var(--e2k-font-d);font-weight:800;
  font-size:15px;color:var(--e2k-ink);margin-bottom:5px;letter-spacing:-.01em;
}

/* ---- 4. Spec list: keep bold lead-ins inline ------------------ */
.e2k-rte--specs li > strong:first-child,
.e2k-rte--specs li > b:first-child{
  font-family:var(--e2k-font-d);font-weight:800;
  color:var(--e2k-ink);margin-right:4px;display:inline;
}

/* ---- 5. Responsive --------------------------------------------- */
@media(max-width:640px){
  .e2k-rte--specs table th{width:50%;font-size:11.5px}
  .e2k-rte--specs table th,
  .e2k-rte--specs table td{padding:9px 4px;font-size:13.5px}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 4
   Final CTA band
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* on-dark outline button — only used inside the CTA band */
.e2k-btn--onDark{
  background:transparent;color:#fff;
  border:2px solid rgba(255,255,255,.45);padding:15px 28px;
}
.e2k-btn--onDark:hover{background:#fff;color:var(--e2k-ink);border-color:#fff}

.e2k-btn--lg{padding:17px 30px;font-size:16.5px;border-radius:16px}

/* ---- the band ------------------------------------------------ */
.e2k-finalcta{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#14110D,#241C12);
  color:#fff;text-align:center;
  padding:64px 24px;
  border-radius:var(--e2k-r-xl);
  max-width:1200px;
  margin:56px auto;
}
.e2k-finalcta::before{
  content:"";position:absolute;
  width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,rgba(242,140,0,.30),transparent 70%);
  top:-120px;left:50%;transform:translateX(-50%);
  pointer-events:none;
}
.e2k-finalcta__in{position:relative;z-index:1;max-width:620px;margin:0 auto}

.e2k-finalcta__title{
  font-family:var(--e2k-font-d);font-weight:900;
  font-size:clamp(24px,3.4vw,34px);
  letter-spacing:-.02em;line-height:1.15;
  color:#fff;margin:0 0 12px;
}
.e2k-finalcta__sub{
  font-size:16px;color:rgba(255,255,255,.75);
  line-height:1.6;margin:0 0 26px;
}
.e2k-finalcta__btns{
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
}

/* WooCommerce injects a "View cart" link after an AJAX add —
   style it to sit quietly under the buttons instead of inline. */
.e2k-finalcta__btns .added_to_cart{
  flex:1 1 100%;color:var(--e2k-orange);
  font-family:var(--e2k-font-d);font-weight:700;font-size:14.5px;
  text-decoration:underline;text-underline-offset:3px;margin-top:4px;
}
.e2k-finalcta__btns .e2k-btn.loading{opacity:.7;pointer-events:none}

/* ---- responsive ---------------------------------------------- */
@media(max-width:900px){
  .e2k-finalcta{margin:40px auto;padding:52px 22px;border-radius:var(--e2k-r-lg)}
}
@media(max-width:560px){
  .e2k-finalcta{padding:44px 20px}
  .e2k-finalcta__sub{font-size:15px;margin-bottom:22px}
  .e2k-finalcta__btns{flex-direction:column}
  .e2k-finalcta__btns .e2k-btn{width:100%}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 5
   Peek strip · Benefits · Parts grid · Goes well with
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* Grid children carrying real images have an intrinsic width.
   Without min-width:0 the tracks refuse to shrink and the page
   scrolls sideways on phones. */
.e2k-benefits > *,
.e2k-rel > *,
.e2k-peek,
.e2k-peek__strip > *,
.e2k-relcard__img{min-width:0}

/* ============================================================
   1. PEEK — "Slide to see what you build"
   Sits directly under the gallery in the hero column.
============================================================ */
.e2k-peek{
  margin-top:20px;background:var(--e2k-white);
  border:1.5px dashed var(--e2k-orange-line);
  border-radius:var(--e2k-r-lg);padding:18px 20px;
}
.e2k-peek__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.e2k-peek__title{
  font-family:var(--e2k-font-d);font-weight:800;font-size:15px;
  color:var(--e2k-ink);display:flex;align-items:center;gap:8px;
}
.e2k-peek__title .e2k-dot{width:9px;height:9px;border-radius:50%;background:var(--e2k-orange);flex-shrink:0}
.e2k-peek__hint{
  font-size:12px;color:var(--e2k-gray);
  font-family:var(--e2k-font-d);font-weight:600;white-space:nowrap;
}
.e2k-peek__strip{
  display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;
  scroll-snap-type:x proximity;scrollbar-width:thin;
}
.e2k-peek__step{flex:0 0 118px;text-align:center;scroll-snap-align:start}
.e2k-peek__img{
  aspect-ratio:1;border-radius:12px;position:relative;margin-bottom:7px;
  background:linear-gradient(150deg,var(--e2k-peach-2),var(--e2k-cream-2));
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.e2k-peek__img img{width:100%;height:100%;object-fit:contain}
.e2k-peek__num{
  position:absolute;top:7px;left:7px;z-index:2;
  width:20px;height:20px;border-radius:50%;
  background:var(--e2k-orange);color:var(--e2k-ink);
  font-family:var(--e2k-font-d);font-weight:800;font-size:11px;
  display:flex;align-items:center;justify-content:center;
}
.e2k-peek__cap{font-size:11.5px;color:var(--e2k-ink-2);font-weight:600;line-height:1.3}

/* ============================================================
   2. BENEFITS — four icon cards
============================================================ */
.e2k-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.e2k-benefit{
  background:var(--e2k-white);border-radius:var(--e2k-r-md);
  padding:20px;box-shadow:var(--e2k-sh-sm);
  border:1.5px solid #fff;transition:transform .16s,border-color .16s;
}
.e2k-benefit:hover{border-color:var(--e2k-orange-line);transform:translateY(-3px)}
.e2k-benefit__ic{
  width:44px;height:44px;border-radius:13px;
  background:var(--e2k-orange-soft);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
.e2k-benefit__ic svg{width:22px;height:22px;stroke:var(--e2k-orange);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.e2k-benefit b{font-family:var(--e2k-font-d);font-weight:800;font-size:15px;display:block;margin-bottom:5px}
.e2k-benefit p{font-size:13px;color:var(--e2k-ink-2);line-height:1.5}

/* ============================================================
   3. PARTS — what's in the box, icon rows
============================================================ */
.e2k-parts{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
  margin:18px 0 0;padding:0;list-style:none;
}
.e2k-part{
  display:flex;align-items:center;gap:10px;margin:0;
  background:var(--e2k-white);border:1.5px solid var(--e2k-peach);
  border-radius:12px;padding:11px 13px;
  font-size:13.5px;font-weight:600;color:var(--e2k-ink-2);
}
.e2k-part b{font-family:var(--e2k-font-d);color:var(--e2k-ink);font-weight:800;margin-right:2px}
.e2k-part .e2k-ic{
  width:30px;height:30px;border-radius:8px;background:var(--e2k-cream-2);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.e2k-part .e2k-ic svg{width:16px;height:16px;stroke:var(--e2k-orange);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.e2k-tools{margin-top:16px;font-size:13px;color:var(--e2k-gray);line-height:1.55}
.e2k-tools b{color:var(--e2k-ink);font-family:var(--e2k-font-d);font-weight:700}

/* ============================================================
   4. GOES WELL WITH — related product cards
============================================================ */
.e2k-rel{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.e2k-relcard{
  background:var(--e2k-white);border-radius:var(--e2k-r-md);
  overflow:hidden;box-shadow:var(--e2k-sh-sm);
  border:1.5px solid #fff;transition:transform .16s,border-color .16s;
  display:flex;flex-direction:column;
}
.e2k-relcard:hover{border-color:var(--e2k-orange-line);transform:translateY(-4px)}
.e2k-relcard__img{
  aspect-ratio:4/3;position:relative;
  background:linear-gradient(150deg,var(--e2k-cream-2),var(--e2k-blue-soft));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--e2k-font-d);font-weight:700;font-size:12px;color:var(--e2k-gray);
}
.e2k-relcard__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.e2k-relcard__body{padding:18px;display:flex;flex-direction:column;flex:1}
.e2k-relcard__meta{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.e2k-relcard__title{font-family:var(--e2k-font-d);font-weight:800;font-size:16.5px;margin:0 0 8px}
.e2k-relcard__blurb{font-size:13px;color:var(--e2k-ink-2);line-height:1.5;margin:0 0 14px}
.e2k-relcard__foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto}
.e2k-relcard__price{font-family:var(--e2k-font-d);font-weight:900;font-size:20px;color:var(--e2k-ink)}

/* ============================================================
   RESPONSIVE
============================================================ */
@media(max-width:1024px){
  .e2k-benefits{grid-template-columns:repeat(2,1fr)}
  .e2k-rel{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .e2k-rel{grid-template-columns:1fr}
}
@media(max-width:640px){
  .e2k-parts{grid-template-columns:1fr}
  .e2k-peek{padding:16px}
  .e2k-peek__head{flex-direction:column;align-items:flex-start;gap:4px}
  .e2k-peek__step{flex:0 0 104px}
}
@media(max-width:420px){
  .e2k-benefits{grid-template-columns:1fr}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 6
   Standalone gallery variant: white frame + captioned thumbs
   APPEND to the bottom of e2k-product-page.css

   Reuses the .e2k-gal markup and the JS already in the plugin,
   so no new JavaScript is required.
============================================================ */

/* ---- main frame: white card, product contained not cropped ---- */
.e2k-gal__main--plain{
  background:var(--e2k-white);
  border:1.5px solid var(--e2k-cream-2);
  box-shadow:var(--e2k-sh-sm);
}
/* v1.13.0 — the image always fills the whole frame.
   !important is deliberate: themes / Elementor / WooCommerce set
   img{height:auto;max-width:100%}, which left the photo short of the
   frame with empty white space below it. */
.e2k-gal__main--plain .e2k-gal__slide{overflow:hidden}
.e2k-gal__main--plain .e2k-gal__img{
  position:absolute !important;inset:0 !important;
  display:block !important;
  width:100% !important;height:100% !important;
  max-width:none !important;max-height:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
  object-fit:contain;object-position:center;
  padding:var(--e2k-gal-pad,12px);
  transform:scale(var(--e2k-img-zoom,1));
  transform-origin:center;
}
/* fill the frame edge to edge, cropping what doesn't fit */
.e2k-gal__main--cover .e2k-gal__img{object-fit:cover;padding:0}
/* per-image overrides (win over the gallery setting) */
.e2k-gal__main--plain .e2k-gal__img.e2k-gal__img--contain{object-fit:contain;padding:var(--e2k-gal-pad,12px)}
.e2k-gal__main--plain .e2k-gal__img.e2k-gal__img--cover{object-fit:cover;padding:0}

@media(max-width:640px){
  .e2k-gal__main--contain .e2k-gal__img:not(.e2k-gal__img--cover){padding:min(var(--e2k-gal-pad,12px),8px)}
}

/* ---- captioned thumbnails ------------------------------------- */
.e2k-gal__thumbs--labeled{
  display:grid;
  grid-template-columns:repeat(var(--e2k-thumbs,4),minmax(0,1fr));
  gap:10px;overflow:visible;
}
.e2k-gal__thumbs--labeled .e2k-gthumb{
  flex:none;width:auto;aspect-ratio:auto;
  display:flex;flex-direction:column;gap:6px;
  background:var(--e2k-white);
  border:1.5px solid var(--e2k-cream-2);
  border-radius:14px;padding:8px;overflow:hidden;
  transition:border-color .15s,transform .15s;
}
.e2k-gal__thumbs--labeled .e2k-gthumb img{
  width:100%;aspect-ratio:4/3;object-fit:contain;
  border-radius:8px;background:var(--e2k-cream);
}
.e2k-gal__thumbs--labeled .e2k-gthumb i{
  font-style:normal;font-family:var(--e2k-font-d);
  font-weight:700;font-size:11px;line-height:1.25;
  color:var(--e2k-ink-2);text-align:center;
  display:block;padding-bottom:2px;
}
.e2k-gal__thumbs--labeled .e2k-gthumb:hover{border-color:var(--e2k-orange-line);transform:translateY(-2px)}
.e2k-gal__thumbs--labeled .e2k-gthumb.is-active{
  border-color:var(--e2k-orange);
  box-shadow:0 0 0 1px var(--e2k-orange) inset;
}
.e2k-gal__thumbs--labeled .e2k-gthumb.is-active i{color:var(--e2k-orange-ink)}

/* thumb count helpers — add alongside the --labeled class */
.e2k-thumbs-3{--e2k-thumbs:3}
.e2k-thumbs-4{--e2k-thumbs:4}
.e2k-thumbs-5{--e2k-thumbs:5}

@media(max-width:640px){
  .e2k-gal__thumbs--labeled{
    display:flex;overflow-x:auto;scroll-snap-type:x proximity;
  }
  .e2k-gal__thumbs--labeled .e2k-gthumb{
    flex:0 0 108px;scroll-snap-align:start;
  }
}

/* ---- badges: allow longer label text -------------------------- */
.e2k-gal__badges{flex-wrap:wrap;max-width:calc(100% - 32px)}
.e2k-gbadge{white-space:nowrap}


/* ============================================================
   E2K PRODUCT PAGE — PART 7
   Standalone "What they'll learn" box + assurance checklist
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* Standalone variant of the learn box. The base .e2k-buy__learn
   rules already exist in part 1 — this only adjusts spacing for
   use outside the buy panel. */
.e2k-learn{
  background:var(--e2k-blue-soft);border-radius:var(--e2k-r-md);
  padding:15px 18px;display:flex;gap:12px;align-items:flex-start;
}
.e2k-learn > svg{
  width:22px;height:22px;flex-shrink:0;margin-top:2px;
  stroke:var(--e2k-blue);fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.e2k-learn__txt{font-size:13.5px;line-height:1.55;color:var(--e2k-ink-2)}
.e2k-learn__txt b,
.e2k-learn__txt strong{color:var(--e2k-ink);font-weight:700}
.e2k-learn__txt p{margin:0 0 8px}
.e2k-learn__txt p:last-child{margin-bottom:0}

/* ---- assurance checklist -------------------------------------- */
.e2k-assure{
  list-style:none;margin:16px 0 0;padding:0;
  display:flex;flex-direction:column;gap:11px;
}
.e2k-assure li{
  display:flex;gap:10px;align-items:flex-start;margin:0;
  font-size:13.5px;line-height:1.5;color:var(--e2k-ink-2);
}
.e2k-assure li::before{
  content:"";flex-shrink:0;width:18px;height:18px;border-radius:50%;
  margin-top:1px;
  background:var(--e2k-green-soft) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E7A44' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/10px no-repeat;
}
.e2k-assure li b,
.e2k-assure li strong{color:var(--e2k-ink);font-weight:700}
.e2k-assure a{color:var(--e2k-blue);text-decoration:underline;text-underline-offset:3px}

/* stack spacing when the two blocks sit together */
.e2k-learn + .e2k-assure{margin-top:16px}

@media(max-width:640px){
  .e2k-learn{padding:14px 15px}
  .e2k-learn__txt,
  .e2k-assure li{font-size:13px}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 8
   Buy panel: price suffix, quantity row, Buy it now button
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* ---- price suffix ("/pack") ----------------------------------- */
.e2k-price-suffix{
  font-family:var(--e2k-font-d);font-weight:700;font-size:15px;
  color:var(--e2k-gray);margin-left:-4px;
}
/* keep price, suffix and compare-at on one baseline */
.e2k-buy__price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.e2k-buy__price .price,
.e2k-buy__price > span:first-child{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}

/* ---- quantity row --------------------------------------------- */
.e2k-buy__form form.cart{
  display:grid;grid-template-columns:1fr;gap:14px;margin:0;
}
.e2k-qtylabel{
  font-family:var(--e2k-font-d);font-weight:700;font-size:14.5px;
  color:var(--e2k-ink);align-self:center;
}
/* label + stepper share one row, button spans the full width below */
.e2k-buy__form form.cart:has(.e2k-qtylabel){
  grid-template-columns:auto 1fr;align-items:center;
}
.e2k-buy__form form.cart:has(.e2k-qtylabel) > .quantity{justify-self:start}
.e2k-buy__form form.cart:has(.e2k-qtylabel) > button.single_add_to_cart_button,
.e2k-buy__form form.cart:has(.e2k-qtylabel) > .woocommerce-variation-add-to-cart,
.e2k-buy__form form.cart:has(.e2k-qtylabel) > table.variations,
.e2k-buy__form form.cart:has(.e2k-qtylabel) > .woocommerce-variation{grid-column:1 / -1}

/* Fallback for browsers without :has() — stacks instead of sharing a row */
@supports not (selector(:has(*))){
  .e2k-buy__form form.cart{display:flex;flex-direction:column;gap:12px}
  .e2k-qtylabel{margin-bottom:-4px}
}

/* ---- Buy it now (outline) ------------------------------------- */
.e2k-btn--outline{
  background:var(--e2k-white);color:var(--e2k-ink);
  border:1.5px solid var(--e2k-peach);box-shadow:var(--e2k-sh-sm);
}
.e2k-btn--outline:hover{
  border-color:var(--e2k-ink);color:var(--e2k-ink);
  background:var(--e2k-white);transform:translateY(-1px);
}

/* ---- the two-button row under Add to cart --------------------- */
.e2k-buy__row{display:flex;gap:11px;margin:12px 0 18px;flex-wrap:wrap}
.e2k-buy__row .e2k-btn{flex:1 1 0;min-width:150px;padding:15px 20px}

@media(max-width:640px){
  .e2k-buy__row{gap:9px}
  .e2k-buy__row .e2k-btn{flex:1 1 100%}
  .e2k-buy__form form.cart:has(.e2k-qtylabel){grid-template-columns:auto 1fr}
  .e2k-price-suffix{font-size:14px}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 9 (buy panel corrections)
   APPEND to the bottom of e2k-product-page.css
   Supersedes the :has() quantity rules in part 8.
============================================================ */

/* ---- 1. QUANTITY ROW -------------------------------------------
   The JS wraps the label + stepper in .e2k-qtyrow, so the layout
   no longer depends on :has() or on the theme's form alignment. */
.e2k-buy__form form.cart{
  display:flex !important;
  flex-direction:column;
  align-items:stretch;
  gap:14px;margin:0;text-align:left;
}
.e2k-buy__form form.cart > *{margin:0}

.e2k-qtyrow{
  display:flex;align-items:center;gap:14px;
  width:100%;justify-content:flex-start;
}
.e2k-qtyrow .e2k-qtylabel{
  font-family:var(--e2k-font-d);font-weight:700;font-size:14.5px;
  color:var(--e2k-ink);margin:0;white-space:nowrap;line-height:1;
}
.e2k-qtyrow .quantity{margin:0;flex:0 0 auto}

/* neutralise the part 8 grid rules */
.e2k-buy__form form.cart:has(.e2k-qtylabel){grid-template-columns:none}

/* ---- 2. ADD TO CART COLOUR --------------------------------------
   WooCommerce's own stylesheet sets .button.alt to #a46497 with
   higher specificity than our earlier rule, so match it and win. */
.e2k .e2k-buy__form form.cart button.single_add_to_cart_button,
.e2k .e2k-buy__form form.cart button.single_add_to_cart_button.button,
.e2k .e2k-buy__form form.cart button.single_add_to_cart_button.button.alt,
.woocommerce .e2k-buy__form button.single_add_to_cart_button.button.alt{
  background-color:var(--e2k-blue) !important;
  background-image:none !important;
  color:#fff !important;
  border:none !important;
  width:100%;
  font-family:var(--e2k-font-d);font-weight:700;font-size:16.5px;
  padding:17px 30px;border-radius:16px;
  box-shadow:0 10px 22px -8px rgba(6,119,185,.55);
  text-shadow:none;
}
.e2k .e2k-buy__form form.cart button.single_add_to_cart_button:hover,
.e2k .e2k-buy__form form.cart button.single_add_to_cart_button.button.alt:hover,
.woocommerce .e2k-buy__form button.single_add_to_cart_button.button.alt:hover{
  background-color:var(--e2k-blue-deep) !important;
  color:#fff !important;
}

/* ---- 3. PRICE ORDER ---------------------------------------------
   WooCommerce prints <del> before <ins>. Flex order puts the live
   price first, with the compare-at price trailing it. */
.e2k-buy__price{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.e2k-buy__price ins{order:1;text-decoration:none;background:none}
.e2k-buy__price del{order:2;opacity:1;text-decoration:none}
.e2k-buy__price .e2k-price-suffix{order:3}
.e2k-buy__price ins .woocommerce-Price-amount{
  font-family:var(--e2k-font-d);font-weight:900;font-size:34px;
  color:var(--e2k-ink);line-height:1.1;
}
.e2k-buy__price del .woocommerce-Price-amount{
  font-size:18px;font-weight:700;color:var(--e2k-gray);
  text-decoration:line-through;
}

/* hide the screen-reader price duplicates without breaking a11y */
.e2k-buy__price .screen-reader-text{
  position:absolute !important;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ---- 4. RESPONSIVE ---------------------------------------------- */
@media(max-width:640px){
  .e2k-qtyrow{gap:11px}
  .e2k-qtyrow .quantity{flex:1 1 auto}
  .e2k-buy__price ins .woocommerce-Price-amount{font-size:29px}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 10
   Self-hosted video support in the lightbox
   APPEND to the bottom of e2k-product-page.css
============================================================ */

.e2k-vmodal__video{
  width:100%;height:100%;display:block;
  background:#000;object-fit:contain;
}

/* The mount point has no styling of its own — it only holds the
   JSON config until the script replaces it. Hide the raw config
   in case CSS loads before JS runs. */
[data-e2k-gallery-build] > script{display:none}


/* ============================================================
   E2K PRODUCT PAGE — PART 11
   Image lightbox + zoom affordances
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* ---- magnifier button on the gallery -------------------------- */
.e2k-gal__zoom{
  position:absolute;top:16px;right:16px;z-index:4;
  width:40px;height:40px;border:none;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 10px rgba(120,70,10,.18);
  display:flex;align-items:center;justify-content:center;
  transition:background .16s,transform .16s;
}
.e2k-gal__zoom svg{
  width:19px;height:19px;stroke:var(--e2k-ink);fill:none;
  stroke-width:2.2;stroke-linecap:round;display:block;
}
.e2k-gal__zoom:hover{background:#fff;transform:scale(1.07)}
.e2k-gal__main.is-zoomable{cursor:zoom-in}

/* ---- peek steps become clickable ------------------------------ */
.e2k-peek__img.is-zoomable{cursor:zoom-in;transition:transform .16s}
.e2k-peek__img.is-zoomable::after{
  content:"";position:absolute;inset:0;z-index:1;border-radius:12px;
  background:rgba(20,17,13,0) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.6' y1='16.6' x2='21' y2='21'/%3E%3Cline x1='11' y1='8.2' x2='11' y2='13.8'/%3E%3Cline x1='8.2' y1='11' x2='13.8' y2='11'/%3E%3C/svg%3E") center/0 no-repeat;
  transition:background-color .16s,background-size .16s;
}
.e2k-peek__img.is-zoomable:hover::after,
.e2k-peek__img.is-zoomable:focus-visible::after{
  background-color:rgba(20,17,13,.42);background-size:26px;
}
.e2k-peek__img.is-zoomable:focus-visible{outline:3px solid var(--e2k-blue);outline-offset:2px}

/* ---- the lightbox --------------------------------------------- */
.e2k-lb{
  position:fixed;inset:0;z-index:10000;
  display:flex;align-items:center;justify-content:center;
  padding:64px 72px;
}
.e2k-lb[hidden]{display:none}
.e2k-lb__bg{position:absolute;inset:0;background:rgba(20,17,13,.90)}

.e2k-lb__box{
  position:relative;z-index:1;margin:0;
  max-width:100%;max-height:100%;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.e2k-lb__img{
  max-width:100%;max-height:calc(100vh - 160px);
  width:auto;height:auto;object-fit:contain;
  border-radius:var(--e2k-r-md);background:#fff;
  box-shadow:0 20px 60px -20px rgba(0,0,0,.6);
}
.e2k-lb__cap{
  font-family:var(--e2k-font-b);font-size:13.5px;font-weight:600;
  color:rgba(255,255,255,.82);text-align:center;max-width:640px;
}

.e2k-lb__x{
  position:absolute;top:18px;right:22px;z-index:2;
  background:none;border:none;color:#fff;
  font-size:38px;line-height:1;cursor:pointer;padding:2px 10px;
  opacity:.8;transition:opacity .16s;
}
.e2k-lb__x:hover{opacity:1}

.e2k-lb__nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:46px;height:46px;border-radius:50%;cursor:pointer;border:none;
  background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;
  transition:background .16s;
}
.e2k-lb__nav:hover{background:rgba(255,255,255,.28)}
.e2k-lb__nav svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;display:block}
.e2k-lb__nav--prev{left:16px}
.e2k-lb__nav--next{right:16px}

.e2k-lb__count{
  position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--e2k-font-d);font-weight:700;font-size:12.5px;
  color:rgba(255,255,255,.7);letter-spacing:.06em;
}

/* ---- responsive ------------------------------------------------ */
@media(max-width:820px){
  .e2k-lb{padding:56px 16px}
  .e2k-lb__img{max-height:calc(100vh - 150px)}
  .e2k-lb__nav{width:40px;height:40px}
  .e2k-lb__nav--prev{left:8px}
  .e2k-lb__nav--next{right:8px}
}
@media(max-width:560px){
  .e2k-gal__zoom{width:36px;height:36px;top:12px;right:12px}
  .e2k-gal__zoom svg{width:17px;height:17px}
  .e2k-lb__x{top:10px;right:12px;font-size:32px}
}

@media(prefers-reduced-motion:reduce){
  .e2k-gal__zoom,.e2k-peek__img.is-zoomable{transition:none}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 12
   Peek strip: "does" sub-line + fixed-column grid variant
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* one-line description of what each build actually does */
.e2k-peek__does{
  font-size:11px;line-height:1.35;color:var(--e2k-gray);
  margin-top:3px;
}

/* When "columns" is set in the config the strip becomes an even
   grid on desktop instead of a scroller. */
.e2k-peek__strip--grid{
  display:grid;
  grid-template-columns:repeat(var(--e2k-peek-cols,3),minmax(0,1fr));
  overflow:visible;
}
.e2k-peek__strip--grid .e2k-peek__step{flex:none;width:auto}

@media(max-width:640px){
  .e2k-peek__strip--grid{
    display:flex;overflow-x:auto;scroll-snap-type:x proximity;
  }
  .e2k-peek__strip--grid .e2k-peek__step{flex:0 0 116px}
  .e2k-peek__does{font-size:10.5px}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 13
   Doc buttons · video playlist modal · pathway tags · learn cards
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* ============================================================
   1. DOC BUTTONS (Instructions / Catalogue)
============================================================ */
.e2k-docs{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;
}
.e2k-doc{
  display:flex;align-items:center;gap:11px;
  background:var(--e2k-white);border:1.5px solid var(--e2k-peach);
  border-radius:14px;padding:14px 16px;cursor:pointer;width:100%;
  text-align:left;transition:border-color .16s,transform .16s,box-shadow .16s;
  box-shadow:var(--e2k-sh-sm);
}
.e2k-doc:hover{border-color:var(--e2k-orange);transform:translateY(-2px)}
.e2k-doc:focus-visible{outline:3px solid var(--e2k-blue);outline-offset:2px}
.e2k-doc__ic{
  width:34px;height:34px;border-radius:10px;flex-shrink:0;
  background:var(--e2k-orange-soft);
  display:flex;align-items:center;justify-content:center;
}
.e2k-doc__ic svg{width:17px;height:17px;stroke:var(--e2k-orange);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.e2k-doc__txt{
  font-family:var(--e2k-font-d);font-weight:800;font-size:15px;
  color:var(--e2k-ink);flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.e2k-doc__n{
  font-family:var(--e2k-font-d);font-weight:800;font-size:11px;
  background:var(--e2k-cream-2);color:var(--e2k-ink-2);
  border-radius:999px;padding:3px 8px;flex-shrink:0;
}
.e2k-doc__n:empty{display:none}
.e2k-doc__go{flex-shrink:0;display:flex}
.e2k-doc__go svg{width:15px;height:15px;stroke:var(--e2k-gray);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.e2k-doc:hover .e2k-doc__go svg{stroke:var(--e2k-orange)}

/* ============================================================
   2. VIDEO PLAYLIST MODAL
============================================================ */
.e2k-mm{
  position:fixed;inset:0;z-index:10001;
  display:flex;align-items:center;justify-content:center;padding:32px 24px;
}
.e2k-mm[hidden]{display:none}
.e2k-mm__bg{position:absolute;inset:0;background:rgba(20,17,13,.88)}
.e2k-mm__box{
  position:relative;z-index:1;width:min(880px,100%);
  max-height:calc(100vh - 64px);
  background:var(--e2k-white);border-radius:var(--e2k-r-lg);
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 24px 70px -20px rgba(0,0,0,.6);
}
.e2k-mm__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 20px;border-bottom:1.5px solid var(--e2k-cream-2);flex-shrink:0;
}
.e2k-mm__title{
  font-family:var(--e2k-font-d);font-weight:800;font-size:17px;
  color:var(--e2k-ink);margin:0;
}
.e2k-mm__x{
  background:none;border:none;font-size:30px;line-height:1;cursor:pointer;
  color:var(--e2k-gray);padding:0 6px;
}
.e2k-mm__x:hover{color:var(--e2k-ink)}

.e2k-mm__stage{flex-shrink:0;background:#000}
.e2k-mm__frame{position:relative;aspect-ratio:16/9;background:#000}
.e2k-mm__frame video,
.e2k-mm__frame iframe{width:100%;height:100%;border:0;display:block;object-fit:contain}
.e2k-mm__now{
  padding:10px 20px;background:var(--e2k-ink);color:#fff;
  font-family:var(--e2k-font-d);font-weight:700;font-size:13.5px;
}
.e2k-mm__now:empty{display:none}

.e2k-mm__list{
  overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;
  -webkit-overflow-scrolling:touch;
}
.e2k-mmcard{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  background:var(--e2k-white);border:1.5px solid var(--e2k-cream-2);
  border-radius:12px;padding:9px;cursor:pointer;transition:border-color .15s,background .15s;
}
.e2k-mmcard:hover{border-color:var(--e2k-orange-line);background:var(--e2k-cream)}
.e2k-mmcard.is-playing{border-color:var(--e2k-orange);background:var(--e2k-orange-soft)}
.e2k-mmcard:focus-visible{outline:3px solid var(--e2k-blue);outline-offset:2px}
.e2k-mmcard__thumb{
  position:relative;flex-shrink:0;width:86px;aspect-ratio:16/9;
  border-radius:8px;overflow:hidden;background:var(--e2k-cream-2);
  display:flex;align-items:center;justify-content:center;
}
.e2k-mmcard__thumb img{width:100%;height:100%;object-fit:cover}
.e2k-mmcard__play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(20,17,13,.35);
}
.e2k-mmcard__play svg{width:18px;height:18px;fill:#fff;stroke:none}
.e2k-mmcard.is-playing .e2k-mmcard__play{background:rgba(242,140,0,.55)}
.e2k-mmcard__txt{flex:1;min-width:0}
.e2k-mmcard__txt b{
  display:block;font-family:var(--e2k-font-d);font-weight:800;font-size:14px;
  color:var(--e2k-ink);line-height:1.3;
}
.e2k-mmcard__txt i{
  display:block;font-style:normal;font-size:12px;color:var(--e2k-gray);margin-top:2px;
}
.e2k-mmcard__dur{
  flex-shrink:0;font-family:var(--e2k-font-d);font-weight:700;font-size:11.5px;
  color:var(--e2k-ink-2);background:var(--e2k-cream-2);
  border-radius:6px;padding:3px 7px;
}

/* ============================================================
   3. PATHWAY TAGS (Robotics / Physics pills)
============================================================ */
.e2k-ptags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.e2k-ptag{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--e2k-font-d);font-weight:800;font-size:11.5px;
  letter-spacing:.06em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;
}
.e2k-ptag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.e2k-ptag--robotics{background:var(--e2k-blue-soft);color:var(--e2k-blue-deep)}
.e2k-ptag--physics{background:#EFE7FB;color:#5B3A9B}
.e2k-ptag--tech{background:var(--e2k-orange-soft);color:var(--e2k-orange-ink)}
.e2k-ptag--energy{background:var(--e2k-green-soft);color:var(--e2k-green)}

/* ============================================================
   4. LEARN CARD GRID ("Four ideas, one robot")
============================================================ */
.e2k-learn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.e2k-learn-card{
  background:var(--e2k-white);border-radius:var(--e2k-r-md);
  padding:22px 20px;box-shadow:var(--e2k-sh-sm);
  border:1.5px solid #fff;text-align:center;
  transition:transform .16s,border-color .16s;
}
.e2k-learn-card:hover{border-color:var(--e2k-orange-line);transform:translateY(-3px)}
.e2k-learn-card__ic{
  width:46px;height:46px;border-radius:14px;margin:0 auto 12px;
  background:var(--e2k-blue-soft);
  display:flex;align-items:center;justify-content:center;
}
.e2k-learn-card__ic svg{width:23px;height:23px;stroke:var(--e2k-blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.e2k-learn-card b{font-family:var(--e2k-font-d);font-weight:800;font-size:15px;display:block;margin-bottom:6px}
.e2k-learn-card p{font-size:13px;color:var(--e2k-ink-2);line-height:1.5}

/* ============================================================
   5. PATHWAY CARD EXTRAS
============================================================ */
.e2k-pcard__steps{
  display:inline-block;margin-top:9px;
  font-family:var(--e2k-font-d);font-weight:800;font-size:11.5px;
  background:var(--e2k-cream-2);color:var(--e2k-ink-2);
  border-radius:999px;padding:4px 11px;
}
.e2k-pcard--now .e2k-pcard__steps{background:var(--e2k-orange-soft);color:var(--e2k-orange-ink)}

/* ============================================================
   RESPONSIVE
============================================================ */
@media(max-width:1024px){
  .e2k-learn-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .e2k-mm{padding:20px 14px}
  .e2k-mm__box{max-height:calc(100vh - 40px)}
}
@media(max-width:640px){
  .e2k-docs{grid-template-columns:1fr}
  .e2k-mm{padding:0}
  .e2k-mm__box{
    width:100%;max-width:none;height:100%;max-height:100%;border-radius:0;
  }
  .e2k-mm__head{padding:13px 16px}
  .e2k-mm__title{font-size:15.5px}
  .e2k-mm__now{padding:9px 16px;font-size:12.5px}
  .e2k-mmcard__thumb{width:68px}
  .e2k-mmcard__txt b{font-size:13px}
  .e2k-mmcard__dur{display:none}
}
@media(max-width:420px){
  .e2k-learn-grid{grid-template-columns:1fr}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 14
   Review empty state + doc button hardening
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* ============================================================
   1. DOC BUTTON HARDENING
   Themes and WooCommerce style bare <button> elements, which was
   leaking through as coloured text and lost layout. Reset here
   with matching specificity so nothing bleeds in.
============================================================ */
.e2k .e2k-docs .e2k-doc,
.e2k .e2k-docs button.e2k-doc,
.woocommerce .e2k-docs button.e2k-doc{
  -webkit-appearance:none;appearance:none;
  display:flex !important;
  align-items:center;
  gap:11px;
  width:100%;
  margin:0;
  padding:14px 16px !important;
  background:var(--e2k-white) !important;
  background-image:none !important;
  border:1.5px solid var(--e2k-peach) !important;
  border-radius:14px !important;
  color:var(--e2k-ink) !important;
  font-family:var(--e2k-font-b);
  font-size:15px;
  line-height:1.3;
  text-align:left;
  text-transform:none;
  text-decoration:none;
  letter-spacing:normal;
  box-shadow:var(--e2k-sh-sm);
  cursor:pointer;
}
.e2k .e2k-docs .e2k-doc:hover,
.e2k .e2k-docs button.e2k-doc:hover,
.woocommerce .e2k-docs button.e2k-doc:hover{
  background:var(--e2k-white) !important;
  border-color:var(--e2k-orange) !important;
  color:var(--e2k-ink) !important;
  transform:translateY(-2px);
}

/* icon tile — force size so a stray theme rule can't collapse it */
.e2k .e2k-doc .e2k-doc__ic{
  width:34px !important;height:34px !important;flex:0 0 34px;
  border-radius:10px;background:var(--e2k-orange-soft);
  display:flex !important;align-items:center;justify-content:center;
  padding:0;margin:0;
}
.e2k .e2k-doc .e2k-doc__ic svg{
  width:17px !important;height:17px !important;
  stroke:var(--e2k-orange) !important;fill:none !important;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  display:block;max-width:none;
}
.e2k .e2k-doc .e2k-doc__txt{
  font-family:var(--e2k-font-d);font-weight:800;font-size:15px;
  color:var(--e2k-ink) !important;flex:1 1 auto;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.e2k .e2k-doc .e2k-doc__n{
  font-family:var(--e2k-font-d);font-weight:800;font-size:11px;
  background:var(--e2k-cream-2);color:var(--e2k-ink-2) !important;
  border-radius:999px;padding:3px 8px;flex:0 0 auto;line-height:1.4;
}
.e2k .e2k-doc .e2k-doc__go{flex:0 0 auto;display:flex;align-items:center}
.e2k .e2k-doc .e2k-doc__go svg{
  width:15px !important;height:15px !important;
  stroke:var(--e2k-gray) !important;fill:none !important;
  stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;display:block;
}

/* ============================================================
   2. REVIEWS — EMPTY STATE
============================================================ */
.e2k-rev__summary.is-empty{display:flex;flex-direction:column;justify-content:center}
.e2k-rev__none{
  font-family:var(--e2k-font-d);font-weight:900;
  font-size:clamp(26px,3vw,34px);line-height:1.1;
  color:var(--e2k-ink);margin-bottom:10px;
}
.e2k-rev__empty{
  background:var(--e2k-white);border-radius:var(--e2k-r-md);
  padding:24px 26px;box-shadow:var(--e2k-sh-sm);margin-bottom:16px;
}
.e2k-rev__empty b{
  display:block;font-family:var(--e2k-font-d);font-weight:800;
  font-size:16px;color:var(--e2k-ink);margin-bottom:10px;
}
.e2k-rev__empty p{
  font-size:14px;line-height:1.65;color:var(--e2k-ink-2);margin:0 0 12px;
}
.e2k-rev__empty p:last-child{margin-bottom:0}

/* When our own panel is showing, hide Woo's plain "no reviews" line
   and its duplicate heading, but keep the review form itself. */
.e2k-rev__list.has-empty-panel .woocommerce-noreviews,
.e2k-rev__list.has-empty-panel .woocommerce-Reviews-title{display:none}
.e2k-rev__list.has-empty-panel #comments{margin:0}

/* ============================================================
   3. RESPONSIVE
============================================================ */
@media(max-width:820px){
  .e2k-rev__summary.is-empty{text-align:center}
}
@media(max-width:640px){
  .e2k-rev__empty{padding:20px}
  .e2k-rev__none{font-size:26px}
  .e2k .e2k-docs .e2k-doc,
  .e2k .e2k-docs button.e2k-doc{padding:13px 14px !important}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 15
   DOC BUTTON HARD OVERRIDE
   APPEND to the bottom of e2k-product-page.css

   Every declaration here is !important and prefixed with
   html body, so no theme, Elementor or WooCommerce rule can
   outrank it. This supersedes the doc-button rules in parts
   13 and 14 — leave those in place, these simply win.
============================================================ */

/* ---- the row --------------------------------------------------- */
html body .e2k .e2k-docs,
html body .e2k-docs{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
  margin:14px 0 0 !important;
  padding:0 !important;
  list-style:none !important;
  width:100% !important;
  box-sizing:border-box !important;
}

/* ---- each button ----------------------------------------------- */
html body .e2k .e2k-docs .e2k-doc,
html body .e2k .e2k-docs button.e2k-doc,
html body .e2k-docs button.e2k-doc,
html body .woocommerce .e2k-docs button.e2k-doc,
html body .elementor .e2k-docs button.e2k-doc{
  -webkit-appearance:none !important;
  appearance:none !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:11px !important;
  width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:none !important;
  height:auto !important;
  margin:0 !important;
  padding:14px 16px !important;
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  background-image:none !important;
  border:1.5px solid var(--e2k-peach, #FBD9AE) !important;
  border-radius:14px !important;
  outline:none;
  color:var(--e2k-ink, #14110D) !important;
  font-family:var(--e2k-font-b, 'Nunito Sans', sans-serif) !important;
  font-size:15px !important;
  font-weight:400 !important;
  line-height:1.3 !important;
  text-align:left !important;
  text-transform:none !important;
  text-decoration:none !important;
  text-shadow:none !important;
  letter-spacing:normal !important;
  box-shadow:0 2px 8px rgba(120,70,10,.08) !important;
  cursor:pointer !important;
  transition:border-color .16s, transform .16s !important;
}
html body .e2k .e2k-docs .e2k-doc:hover,
html body .e2k .e2k-docs button.e2k-doc:hover,
html body .e2k-docs button.e2k-doc:hover,
html body .woocommerce .e2k-docs button.e2k-doc:hover{
  background:#FFFFFF !important;
  background-color:#FFFFFF !important;
  border-color:var(--e2k-orange, #F28C00) !important;
  color:var(--e2k-ink, #14110D) !important;
  transform:translateY(-2px) !important;
}
html body .e2k-docs button.e2k-doc:focus-visible{
  outline:3px solid var(--e2k-blue, #0677B9) !important;
  outline-offset:2px !important;
}

/* ---- icon tile --------------------------------------------------
   Themes commonly set svg{width:100%}, which collapses or explodes
   these. Sizes are locked on all three axes.                        */
html body .e2k-docs .e2k-doc .e2k-doc__ic{
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 34px !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  border-radius:10px !important;
  background:var(--e2k-orange-soft, #FEE9CC) !important;
  overflow:hidden !important;
}
html body .e2k-docs .e2k-doc .e2k-doc__ic svg{
  width:17px !important;
  height:17px !important;
  min-width:17px !important;
  max-width:17px !important;
  min-height:17px !important;
  max-height:17px !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  fill:none !important;
  stroke:var(--e2k-orange, #F28C00) !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  vertical-align:middle !important;
}
html body .e2k-docs .e2k-doc .e2k-doc__ic svg *{
  fill:none !important;
  stroke:var(--e2k-orange, #F28C00) !important;
}

/* ---- label ------------------------------------------------------ */
html body .e2k-docs .e2k-doc .e2k-doc__txt{
  flex:1 1 auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  font-family:var(--e2k-font-d, 'Jost', sans-serif) !important;
  font-weight:800 !important;
  font-size:15px !important;
  line-height:1.3 !important;
  color:var(--e2k-ink, #14110D) !important;
  text-align:left !important;
  text-transform:none !important;
  letter-spacing:-.01em !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* ---- count badge ------------------------------------------------ */
html body .e2k-docs .e2k-doc .e2k-doc__n{
  flex:0 0 auto !important;
  margin:0 !important;
  padding:3px 8px !important;
  border-radius:999px !important;
  background:var(--e2k-cream-2, #FBEEDD) !important;
  color:var(--e2k-ink-2, #403A32) !important;
  font-family:var(--e2k-font-d, 'Jost', sans-serif) !important;
  font-weight:800 !important;
  font-size:11px !important;
  line-height:1.5 !important;
}
html body .e2k-docs .e2k-doc .e2k-doc__n:empty{display:none !important}

/* ---- trailing arrow --------------------------------------------- */
html body .e2k-docs .e2k-doc .e2k-doc__go{
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  margin:0 !important;
  padding:0 !important;
}
html body .e2k-docs .e2k-doc .e2k-doc__go svg{
  width:15px !important;
  height:15px !important;
  min-width:15px !important;
  max-width:15px !important;
  display:block !important;
  fill:none !important;
  stroke:var(--e2k-gray, #6B7280) !important;
  stroke-width:2.2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
html body .e2k-docs .e2k-doc .e2k-doc__go svg *{
  fill:none !important;
  stroke:var(--e2k-gray, #6B7280) !important;
}
html body .e2k-docs .e2k-doc:hover .e2k-doc__go svg,
html body .e2k-docs .e2k-doc:hover .e2k-doc__go svg *{
  stroke:var(--e2k-orange, #F28C00) !important;
}

/* ---- mobile ------------------------------------------------------ */
@media(max-width:640px){
  html body .e2k .e2k-docs,
  html body .e2k-docs{grid-template-columns:1fr !important}
  html body .e2k-docs button.e2k-doc{padding:13px 14px !important}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 16
   Specifications · compliance · pending-data placeholders
   Horizontal learn cards · 3-step cycle
   APPEND to the bottom of e2k-product-page.css
============================================================ */

/* ============================================================
   1. PENDING-DATA PLACEHOLDER
   Wrap any value you haven't confirmed yet in
   <span class="e2k-ph">DIMENSIONS</span> and it renders with a
   dashed amber highlight, so unfinished copy is obvious in
   review and impossible to ship by accident.
============================================================ */
.e2k-ph{
  background:#FFF3D6;border-bottom:1.5px dashed #C77700;
  padding:0 5px;border-radius:3px;
  font-family:var(--e2k-font-d);font-weight:700;font-size:.92em;
  color:#8A4E00;
}

/* ============================================================
   2. SPECIFICATIONS
============================================================ */
.e2k-specwrap{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}

.e2k-specs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0 34px;
  background:var(--e2k-white);border-radius:var(--e2k-r-md);
  padding:6px 26px;box-shadow:var(--e2k-sh-sm);
}
.e2k-spec{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:13px 0;border-bottom:1px dashed var(--e2k-peach-2);min-width:0;
}
.e2k-spec:last-child{border-bottom:none}
.e2k-spec__k{
  font-family:var(--e2k-font-d);font-weight:700;font-size:12.5px;
  color:var(--e2k-gray);white-space:nowrap;
}
.e2k-spec__v{
  font-family:var(--e2k-font-d);font-weight:800;font-size:13.5px;
  color:var(--e2k-ink);text-align:right;line-height:1.45;min-width:0;
}

/* full-width row inside the grid */
.e2k-spec--wide{grid-column:1 / -1}

/* ---- compliance footnote ---- */
.e2k-compliance{padding:0 4px}
.e2k-compliance b{
  display:block;margin-bottom:6px;
  font-family:var(--e2k-font-d);font-weight:800;font-size:11.5px;
  letter-spacing:.07em;text-transform:uppercase;color:var(--e2k-gray);
}
.e2k-compliance p{
  font-family:var(--e2k-font-d);font-size:12.5px;line-height:1.6;
  color:var(--e2k-gray);margin:0;
}
.e2k-compliance p + p{margin-top:4px}

/* ============================================================
   3. LEARN CARDS — horizontal variant
   Icon on the left, text on the right. Use alongside
   .e2k-learn-grid:  class="e2k-learn-grid e2k-learn-grid--tight"
============================================================ */
.e2k-learn-grid--tight .e2k-learn-card{
  display:flex;align-items:flex-start;gap:13px;
  text-align:left;padding:18px;
}
.e2k-learn-grid--tight .e2k-learn-card__ic{margin:0;flex-shrink:0}
.e2k-learn-grid--tight .e2k-learn-card b{font-size:14.5px;margin-bottom:4px}
.e2k-learn-grid--tight .e2k-learn-card p{font-size:12.5px;line-height:1.45}

/* ============================================================
   4. CYCLE — 3-step variant
============================================================ */
.e2k-cycle--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.e2k-cycle--3 .e2k-cstep{text-align:left;padding:24px 22px}
.e2k-cycle--3 .e2k-cstep__n{margin:0 0 12px}
.e2k-cycle--3 .e2k-cstep p{font-size:13px}
.e2k-cycle--3 .e2k-cstep__arrow{top:42px}

/* ============================================================
   5. RESPONSIVE
============================================================ */
@media(max-width:1024px){
  .e2k-specs{grid-template-columns:1fr 1fr;gap:0 26px}
}
@media(max-width:820px){
  .e2k-cycle--3{grid-template-columns:1fr;gap:12px}
  .e2k-cycle--3 .e2k-cstep__arrow{display:none}
}
@media(max-width:640px){
  .e2k-specs{grid-template-columns:1fr;padding:6px 20px}
  .e2k-spec{flex-direction:column;gap:3px;align-items:flex-start;padding:11px 0}
  .e2k-spec__v{text-align:left}
  .e2k-learn-grid--tight .e2k-learn-card{padding:16px}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 17
   Full pathway-pill palette
   APPEND to the bottom of e2k-product-page.css

   Supersedes the three pill colours in part 13 and adds the
   rest, using the exact values from the v2 mockups so pills
   stay consistent across every product page.
============================================================ */

.e2k-ptag--robotics   { background:#E7F1FA !important; color:#1B5F97 !important; }
.e2k-ptag--electronics{ background:#E2F3F0 !important; color:#0C6D5E !important; }
.e2k-ptag--physics    { background:#EFE9F9 !important; color:#6B44A8 !important; }
.e2k-ptag--engineering{ background:#FAEBE1 !important; color:#A34A1B !important; }
.e2k-ptag--solar      { background:#FBF2D9 !important; color:#8F6600 !important; }

/* kept from part 13 for pages already using them */
.e2k-ptag--tech       { background:var(--e2k-orange-soft); color:var(--e2k-orange-ink); }
.e2k-ptag--energy     { background:var(--e2k-green-soft);  color:var(--e2k-green); }


/* ============================================================
   E2K PRODUCT PAGE — PART 18
   Trust row: configurable column count
============================================================ */

.e2k-trust{
  display:grid;
  grid-template-columns:repeat(var(--e2k-trust-cols,4),minmax(0,1fr));
  gap:16px;
}
.e2k-trust > *{min-width:0}

@media(max-width:820px){
  .e2k-trust{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
  .e2k-trust{grid-template-columns:1fr}
}
/* ============================================================
   E2K PRODUCT PAGE — PART 19
   ACCORDION HARD OVERRIDE  (FAQ + Standards)
   APPEND to the bottom of e2k-product-page.css

   The accordion header is a <button>, so themes that style bare
   buttons were colouring it and breaking the open/closed state.
   Everything here is prefixed html body and marked !important
   so no theme, Elementor or WooCommerce rule can outrank it.
============================================================ */

/* ---- the wrapper ----------------------------------------------- */
html body .e2k-acc{
  border:1.5px solid var(--e2k-peach, #FBD9AE) !important;
  border-radius:16px !important;
  overflow:hidden !important;
  background:#FFFFFF !important;
  padding:0 !important;
  margin:0 !important;
  list-style:none !important;
}

/* ---- each row -------------------------------------------------- */
html body .e2k-acc .e2k-acc__item{
  border-bottom:1.5px solid var(--e2k-cream-2, #FBEEDD) !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  list-style:none !important;
}
html body .e2k-acc .e2k-acc__item:last-child{border-bottom:none !important}

/* ---- the header button ----------------------------------------- */
html body .e2k-acc .e2k-acc__head,
html body .e2k-acc button.e2k-acc__head,
html body .woocommerce .e2k-acc button.e2k-acc__head,
html body .elementor .e2k-acc button.e2k-acc__head{
  -webkit-appearance:none !important;
  appearance:none !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:18px 20px !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  border:none !important;
  border-radius:0 !important;
  outline:none;
  color:var(--e2k-ink, #14110D) !important;
  font-family:var(--e2k-font-d, 'Jost', sans-serif) !important;
  font-weight:800 !important;
  font-size:15.5px !important;
  line-height:1.35 !important;
  text-align:left !important;
  text-transform:none !important;
  text-decoration:none !important;
  text-shadow:none !important;
  letter-spacing:normal !important;
  box-shadow:none !important;
  cursor:pointer !important;
  transition:background-color .15s !important;
}
html body .e2k-acc .e2k-acc__head:hover,
html body .e2k-acc button.e2k-acc__head:hover,
html body .woocommerce .e2k-acc button.e2k-acc__head:hover{
  background:var(--e2k-cream, #FEF7EE) !important;
  background-color:var(--e2k-cream, #FEF7EE) !important;
  color:var(--e2k-ink, #14110D) !important;
  border:none !important;
  box-shadow:none !important;
}
html body .e2k-acc button.e2k-acc__head:focus-visible{
  outline:3px solid var(--e2k-blue, #0677B9) !important;
  outline-offset:-3px !important;
}
/* the label span must not inherit a theme colour */
html body .e2k-acc .e2k-acc__head > span:not(.e2k-caret):not(.e2k-acc-ic){
  color:var(--e2k-ink, #14110D) !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  text-align:left !important;
}

/* ---- caret ------------------------------------------------------ */
html body .e2k-acc .e2k-caret{
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  margin:0 !important;padding:0 !important;
  transform:rotate(0deg) !important;
  transition:transform .2s !important;
}
html body .e2k-acc .e2k-caret svg{
  width:18px !important;height:18px !important;
  min-width:18px !important;max-width:18px !important;
  display:block !important;
  fill:none !important;
  stroke:var(--e2k-gray, #6B7280) !important;
  stroke-width:2.4 !important;
  stroke-linecap:round !important;stroke-linejoin:round !important;
}
html body .e2k-acc .e2k-caret svg *{
  fill:none !important;stroke:var(--e2k-gray, #6B7280) !important;
}
html body .e2k-acc .e2k-acc__item.is-open .e2k-caret{
  transform:rotate(180deg) !important;
}

/* ---- body: collapsed by default --------------------------------
   No !important on the open-state max-height, so the inline value
   the JS writes still wins. The 2000px here is a CSS-only
   fallback in case the script hasn't run yet.                      */
html body .e2k-acc .e2k-acc__body{
  overflow:hidden !important;
  background:transparent !important;
  border:none !important;
  padding:0 !important;
  margin:0 !important;
  transition:max-height .28s ease !important;
}
html body .e2k-acc .e2k-acc__item:not(.is-open) .e2k-acc__body{
  max-height:0 !important;
}
html body .e2k-acc .e2k-acc__item.is-open .e2k-acc__body{
  max-height:2000px;
}

html body .e2k-acc .e2k-acc__inner{
  padding:0 20px 20px !important;
  margin:0 !important;
  font-family:var(--e2k-font-b, 'Nunito Sans', sans-serif) !important;
  font-size:14.5px !important;
  font-weight:400 !important;
  line-height:1.65 !important;
  color:var(--e2k-ink-2, #403A32) !important;
  background:transparent !important;
  text-align:left !important;
}
html body .e2k-acc .e2k-acc__inner b,
html body .e2k-acc .e2k-acc__inner strong{
  color:var(--e2k-ink, #14110D) !important;font-weight:700 !important;
}
html body .e2k-acc .e2k-acc__inner a{
  color:var(--e2k-blue, #0677B9) !important;
  text-decoration:underline !important;text-underline-offset:3px;
}
html body .e2k-acc .e2k-acc__inner p{margin:0 0 12px !important}
html body .e2k-acc .e2k-acc__inner p:last-child{margin-bottom:0 !important}

/* ---- icon variant ----------------------------------------------- */
html body .e2k-acc--icons .e2k-acc-ic{
  flex:0 0 30px !important;
  width:30px !important;height:30px !important;
  min-width:30px !important;max-width:30px !important;
  margin:0 12px 0 0 !important;padding:0 !important;
  border-radius:8px !important;
  background:var(--e2k-orange-soft, #FEE9CC) !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
}
html body .e2k-acc--icons .e2k-acc-ic svg{
  width:16px !important;height:16px !important;
  min-width:16px !important;max-width:16px !important;
  display:block !important;
  fill:none !important;stroke:var(--e2k-orange, #F28C00) !important;
  stroke-width:2 !important;stroke-linecap:round !important;stroke-linejoin:round !important;
}
html body .e2k-acc--icons .e2k-acc-ic svg *{
  fill:none !important;stroke:var(--e2k-orange, #F28C00) !important;
}
html body .e2k-acc--icons .e2k-acc__inner{padding-left:62px !important}

/* ---- tag pills inside bodies ------------------------------------ */
html body .e2k-acc .e2k-tags{
  display:flex !important;gap:8px !important;flex-wrap:wrap !important;
  margin:12px 0 0 !important;padding:0 !important;
}
html body .e2k-acc .e2k-tag{
  font-family:var(--e2k-font-d, 'Jost', sans-serif) !important;
  font-weight:700 !important;font-size:11.5px !important;
  padding:5px 11px !important;border-radius:8px !important;
  background:var(--e2k-blue-soft, #E4F1FB) !important;
  color:var(--e2k-blue-deep, #055E92) !important;
}

/* ---- responsive -------------------------------------------------- */
@media(max-width:640px){
  html body .e2k-acc .e2k-acc__head,
  html body .e2k-acc button.e2k-acc__head{
    font-size:14.5px !important;padding:16px !important;
  }
  html body .e2k-acc .e2k-acc__inner{padding:0 16px 16px !important}
  html body .e2k-acc--icons .e2k-acc__inner{padding-left:16px !important}
}

@media(prefers-reduced-motion:reduce){
  html body .e2k-acc .e2k-acc__body,
  html body .e2k-acc .e2k-caret{transition:none !important}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 20
   SKU line under the product title
============================================================ */

html body .e2k-buy .e2k-buy__sku--top{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  margin:-4px 0 14px !important;
  padding:0 !important;
  font-family:var(--e2k-font-d, 'Jost', sans-serif) !important;
  font-weight:700 !important;
  font-size:11.5px !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  color:var(--e2k-gray, #6B7280) !important;
  line-height:1.4 !important;
}
html body .e2k-buy .e2k-buy__sku--top span{
  font-family:var(--e2k-font-d, 'Jost', sans-serif) !important;
  font-weight:800 !important;
  font-size:12.5px !important;
  letter-spacing:.02em !important;
  text-transform:none !important;
  color:var(--e2k-ink-2, #403A32) !important;
}

@media(max-width:640px){
  html body .e2k-buy .e2k-buy__sku--top{margin:-2px 0 12px !important}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 21  (v1.15.0)
   [e2k_related] — dynamic "Goes well with" cards
   Layout comes from PART 5; this only covers what the dynamic
   version adds: linked image, Woo sale prices, tap targets.
============================================================ */
.e2k-relcard__img{text-decoration:none !important;background:var(--e2k-white) !important}
.e2k-relcard__img img{margin:0 !important;max-width:100% !important;border-radius:0 !important;box-shadow:none !important}
.e2k .e2k-relcard__title{margin:0 0 8px !important;line-height:1.25 !important;color:var(--e2k-ink) !important}
.e2k .e2k-relcard__blurb{margin:0 0 14px !important}
.e2k-relcard__price del{font-size:14px;font-weight:600;color:var(--e2k-gray);margin-right:6px;opacity:1}
.e2k-relcard__price ins{text-decoration:none;background:none}
.e2k-relcard__price .woocommerce-Price-amount{color:inherit}
.e2k .e2k-relcard .e2k-link-arrow{min-height:44px;text-decoration:none !important;color:var(--e2k-blue) !important}
.e2k .e2k-relcard .e2k-link-arrow:focus-visible{outline:2px solid var(--e2k-blue);outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion:reduce){
  .e2k-relcard,.e2k-link-arrow{transition:none !important}
  .e2k-relcard:hover{transform:none !important}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 22  (v1.16.1)
   Pill colours for tags that had no style of their own
============================================================ */
.e2k .e2k-ptag{
  display:inline-flex !important;align-items:center !important;gap:6px !important;
  font-family:var(--e2k-font-d, 'Jost', sans-serif) !important;font-weight:800 !important;
  font-size:11.5px !important;letter-spacing:.06em !important;text-transform:uppercase !important;
  line-height:1.2 !important;padding:6px 12px !important;border-radius:999px !important;
}
.e2k-ptag--remote-control{ background:#FCE7EC !important; color:#A3244A !important; }
.e2k-ptag--default       { background:#F1ECE4 !important; color:#403A32 !important; }


/* ============================================================
   E2K PRODUCT PAGE — PART 23  (v1.17.0)
   Card badges (custom) · [e2k_home_kits]
============================================================ */

/* badges, top-left of any product card image */
.e2k-cbadges{position:absolute;top:12px;left:12px;z-index:2;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}
.e2k .e2k-cbadges .e2k-gbadge{line-height:1.2 !important;white-space:nowrap}

/* price suffix "/kit" */
.e2k .e2k-relcard__price small{font-family:var(--e2k-font-b) !important;font-size:12px !important;font-weight:600 !important;color:var(--e2k-gray) !important;margin-left:2px}

/* ---- homepage kits ---- */
.e2k-hk__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px}
.e2k-hk__head .e2k-sec-head{margin:0 !important}
.e2k .e2k-hk__title{font-size:clamp(28px,4.2vw,46px) !important;font-weight:900 !important;letter-spacing:-.03em !important;line-height:1.1 !important;margin:0 !important}
.e2k .e2k-hk__sub{font-size:clamp(16px,1.4vw,17px) !important;line-height:1.7 !important;max-width:600px;margin-top:14px !important}
.e2k-hk__toplink{flex-shrink:0;min-height:44px}
.e2k-rel--home{grid-template-columns:repeat(var(--e2k-hk-cols,4),minmax(0,1fr)) !important;gap:22px}
.e2k-rel--home .e2k-relcard__title{font-size:19px !important}
.e2k-rel--home .e2k-relcard__blurb{font-size:14px !important;line-height:1.6 !important}
.e2k-rel--home .e2k-relcard .e2k-chip{font-size:11.5px !important;padding:5px 10px !important}
.e2k-hk__cta{text-align:center;margin-top:40px}
.e2k .e2k-hk__cta .e2k-btn{min-height:48px;text-decoration:none !important}

@media(max-width:1024px){
  .e2k-rel--home{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media(max-width:767px){
  .e2k-hk__head{flex-direction:column;align-items:flex-start;margin-bottom:28px}
  .e2k-hk.has-bottom .e2k-hk__toplink{display:none}   /* the button below does the job on phones */
  .e2k-rel--home{grid-template-columns:1fr !important}
}


/* ============================================================
   E2K PRODUCT PAGE — PART 24  (v1.17.1)
   Reset-proofing for pages that wrap everything in a hard reset
   (the homepage's "#e2k-home div, span … { padding:0 !important;
   background:transparent !important … }" rule).

   An ID beats classes even when both use !important, so every
   selector below carries :not(#e2k-z) — it matches everything
   (no element has that id) but adds ID weight, so these win
   without depending on the homepage's own ID.
============================================================ */

/* section + wrapper */
.e2k-section:not(#e2k-z){padding:56px 0 !important}
.e2k-section--cream:not(#e2k-z){background:var(--e2k-cream) !important}
.e2k-section--cream2:not(#e2k-z){background:var(--e2k-cream-2) !important}
.e2k-section--white:not(#e2k-z){background:var(--e2k-white) !important}
.e2k:not(#e2k-z) .e2k-wrap{max-width:1200px !important;margin-inline:auto !important;padding:0 40px !important}

/* heading */
.e2k:not(#e2k-z) .e2k-hk__head{margin:0 0 36px !important}
.e2k:not(#e2k-z) .e2k-eyebrow{text-transform:uppercase !important;letter-spacing:.14em !important;margin:0 0 14px !important}
.e2k:not(#e2k-z) .e2k-sec-title{letter-spacing:-.03em !important;line-height:1.1 !important}
.e2k:not(#e2k-z) .e2k-sec-sub{margin:14px 0 0 !important}
.e2k:not(#e2k-z) .e2k-sec-title em{color:var(--e2k-orange) !important;font-style:normal !important}
.e2k:not(#e2k-z) .e2k-link-arrow{color:var(--e2k-blue) !important;min-height:44px !important}
.e2k:not(#e2k-z) .e2k-link-arrow:hover{color:var(--e2k-blue-deep) !important}

/* card */
.e2k:not(#e2k-z) .e2k-relcard{background:var(--e2k-white) !important;border:1.5px solid #fff !important;box-shadow:var(--e2k-sh-sm) !important}
.e2k:not(#e2k-z) .e2k-relcard:hover{border-color:var(--e2k-orange-line) !important}
.e2k:not(#e2k-z) .e2k-relcard__img{background:var(--e2k-white) !important}
.e2k:not(#e2k-z) .e2k-relcard__img img{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;object-fit:contain !important}
.e2k:not(#e2k-z) .e2k-relcard__body{padding:18px !important}
.e2k:not(#e2k-z) .e2k-relcard__meta{margin:0 0 10px !important}
.e2k:not(#e2k-z) .e2k-relcard__foot{margin:auto 0 0 !important;padding:0 !important}
.e2k:not(#e2k-z) .e2k-relcard__price small{margin:0 0 0 3px !important}

/* badges + chips + tags */
.e2k:not(#e2k-z) .e2k-gbadge{padding:6px 11px !important;border-radius:9px !important;text-transform:uppercase !important;letter-spacing:.03em !important}
.e2k:not(#e2k-z) .e2k-gbadge--sell{background:var(--e2k-orange) !important;color:var(--e2k-ink) !important}
.e2k:not(#e2k-z) .e2k-gbadge--new{background:var(--e2k-blue) !important;color:#fff !important}
.e2k:not(#e2k-z) .e2k-chip{padding:5px 10px !important;border-radius:999px !important}
.e2k:not(#e2k-z) .e2k-chip--grade{background:var(--e2k-blue-soft) !important;color:var(--e2k-blue-deep) !important}
.e2k:not(#e2k-z) .e2k-chip--level{background:var(--e2k-orange-soft) !important;color:var(--e2k-orange-ink) !important}
.e2k:not(#e2k-z) .e2k-ptag{padding:6px 12px !important;text-transform:uppercase !important;letter-spacing:.06em !important}

/* bottom button */
.e2k:not(#e2k-z) .e2k-hk__cta{margin:40px 0 0 !important}
.e2k:not(#e2k-z) .e2k-hk__cta .e2k-btn{color:var(--e2k-ink) !important;background:transparent !important;border:2px solid var(--e2k-ink) !important;border-radius:12px !important;box-shadow:none !important;min-height:48px !important;padding:12px 24px !important}
.e2k:not(#e2k-z) .e2k-hk__cta .e2k-btn:hover{background:var(--e2k-ink) !important;color:#fff !important}

@media(max-width:1024px){
  .e2k-section:not(#e2k-z){padding:48px 0 !important}
}
@media(max-width:767px){
  .e2k:not(#e2k-z) .e2k-hk__head{margin:0 0 28px !important}
}
@media(max-width:640px){
  .e2k-section:not(#e2k-z){padding:40px 0 !important}
  .e2k:not(#e2k-z) .e2k-wrap{padding:0 22px !important}
}

/* price row never wraps: price + /kit on the left, link on the right */
.e2k:not(#e2k-z) .e2k-relcard__foot{gap:10px !important}
.e2k:not(#e2k-z) .e2k-relcard__price{white-space:nowrap !important;min-width:0}
.e2k:not(#e2k-z) .e2k-relcard__price del{font-size:13px !important;margin-right:4px !important}
.e2k:not(#e2k-z) .e2k-relcard__foot .e2k-link-arrow{white-space:nowrap !important;flex-shrink:0 !important}

/* homepage: same content width as the other homepage sections (1240) */
.e2k-hk:not(#e2k-z) .e2k-wrap{max-width:1240px !important}
.e2k-hk:not(#e2k-z) .e2k-relcard__price{font-size:18px !important}
.e2k-hk:not(#e2k-z) .e2k-relcard__price del{font-size:12px !important}
