/*
Theme Name: PROGUN
Theme URI: https://www.progun.co.il/
Author: PROGUN
Description: ערכת עיצוב מודרנית לחנות WooCommerce בעברית (RTL) לציוד ירי ספורטיבי, ציוד מטווח וקורסי הדרכה. עיצוב אדום/שחור/לבן, מותאם לנייד, מהיר ונגיש.
Version: 1.0.0
Requires at least: 6.2
Tested up to: 6.6
Requires PHP: 7.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: progun
Tags: e-commerce, woocommerce, rtl-language-support, right-sidebar, custom-menu, custom-logo, translation-ready, block-styles
WC requires at least: 7.0
WC tested up to: 9.9
*/

/* ==========================================================================
   1. TOKENS
   ========================================================================== */

:root {
  /* Surfaces */
  --pg-ink:        #0B0C0E;   /* deepest black — page base on dark bands */
  --pg-ink-2:      #131518;   /* raised panel */
  --pg-ink-3:      #1C1F24;   /* hover / input */
  --pg-line:       #2A2E35;   /* decorative hairline on dark */
  --pg-line-light: #E3E5E9;   /* decorative hairline on light */

  /* Borders that IDENTIFY a control must clear 3:1 (WCAG 1.4.11).
     These are audited values — do not lighten them. */
  --pg-edge:       #8E9198;   /* control border on white      3.2:1 */
  --pg-edge-dark:  #6B6F77;   /* control border on ink/ink3   3.2:1 */
  --pg-paper:      #FFFFFF;
  --pg-smoke:      #F4F5F7;   /* light band */

  /* Brand */
  --pg-red:        #E10600;
  --pg-red-hot:    #FF2A1F;
  --pg-red-deep:   #8C0400;

  /* Text */
  --pg-text:       #0B0C0E;
  --pg-text-mute:  #5A6069;   /* 6.34:1 on white — body-level muted text */
  --pg-text-dim:   #646B75;   /* 5.38:1 white, 4.93:1 smoke — counts, brand lines */
  --pg-on-dark:    #FFFFFF;
  --pg-fog:        #A8AEB8;   /* 8.77:1 on ink */
  --pg-dim-dark:   #8B929D;   /* 5.27:1 on ink-3 — placeholders on dark */

  /* Control borders, kept separate from decorative hairlines: WCAG 1.4.11
     wants 3:1 for the boundary of a form control, but not for a rule that
     merely separates two blocks of content. */
  --pg-line-input:      #7C838D;  /* 3.83:1 on white */
  --pg-line-input-dark: #6E747E;  /* 4.16:1 on ink   */

  /* Dual focus ring: white inner, ink outer. One of the two always contrasts,
     whatever the element sits on — white page, black band, or red button. */
  --pg-focus-in:   #FFFFFF;
  --pg-focus-out:  #0B0C0E;

  --pg-target:     44px;      /* minimum interactive target, WCAG 2.5.5 */

  /* Type */
  --pg-font-display: "Rubik", "Heebo", "Arial Hebrew", "Noto Sans Hebrew", Arial, sans-serif;
  --pg-font-body:    "Heebo", "Assistant", "Arial Hebrew", "Noto Sans Hebrew", Arial, sans-serif;
  --pg-font-data:    ui-monospace, "SF Mono", "Roboto Mono", Menlo, Consolas, monospace;

  /* Geometry — sharp, not soft. The store sells hard gear. */
  --pg-r:      2px;
  --pg-r-lg:   3px;
  --pg-notch:  20px;   /* the target-shoulder bevel */

  /* Rhythm */
  --pg-maxw:   1320px;
  --pg-gut:    clamp(16px, 4vw, 40px);
  --pg-band:   clamp(56px, 8vw, 104px);

  --pg-ease:   cubic-bezier(.2, .8, .2, 1);
}

/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

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

body {
  margin: 0;
  background: var(--pg-paper);
  color: var(--pg-text);
  font-family: var(--pg-font-body);
  font-size: 16px;
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

body.pg-no-scroll { overflow: hidden; }

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

p { margin: 0 0 1em; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--pg-font-display);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.015em;
  margin: 0 0 .5em;
}

ul, ol { margin: 0 0 1em; padding-inline-start: 1.2em; }

hr { border: 0; border-top: 1px solid var(--pg-line-light); margin: 2rem 0; }

:focus-visible {
  outline: 3px solid var(--pg-focus-in);
  outline-offset: 0;
  box-shadow: 0 0 0 6px var(--pg-focus-out);
  border-radius: 1px;
  position: relative;
  z-index: 5;
}

/* Elements that carry their own drop shadow would otherwise swallow the ring,
   because box-shadow does not stack across rules. Re-declare theirs after it. */
.pg-skip:focus-visible      { box-shadow: 0 0 0 6px var(--pg-focus-out), 0 6px 24px rgba(0,0,0,.5); }
.pg-a11y-open:focus-visible { box-shadow: 0 0 0 6px var(--pg-focus-out), 0 10px 26px rgba(0,0,0,.34); }
.pg-wa:focus-visible        { box-shadow: 0 0 0 6px var(--pg-focus-out), 0 10px 26px rgba(0,0,0,.32); }
.pg-card:hover .pg-card__fav:focus-visible,
.pg-card__fav:focus-visible { box-shadow: 0 0 0 6px var(--pg-focus-out); }

/* Windows High Contrast: hand the ring back to the OS. */
@media (forced-colors: active) {
  :focus-visible { outline: 3px solid Highlight; outline-offset: 2px; box-shadow: none; }
}

::selection { background: var(--pg-red); color: #fff; }



.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px;
  overflow: hidden; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  white-space: nowrap;
}

/* ==========================================================================
   3. LAYOUT PRIMITIVES
   ========================================================================== */

.pg-wrap {
  width: 100%;
  max-width: var(--pg-maxw);
  margin-inline: auto;
  padding-inline: var(--pg-gut);
}

.pg-band { padding-block: var(--pg-band); }
.pg-band--tight { padding-block: clamp(36px, 5vw, 64px); }

.pg-dark  { background: var(--pg-ink);  color: var(--pg-on-dark); }
.pg-dark h1, .pg-dark h2, .pg-dark h3 { color: #fff; }
.pg-smoke { background: var(--pg-smoke); }

.pg-grid { display: grid; gap: clamp(12px, 1.6vw, 22px); }

/* The notch: a 45° cut on the top-left corner. Echoes the bevelled shoulder
   of an IPSC classic target — used only on panels, never on small chrome. */
.pg-notch {
  clip-path: polygon(var(--pg-notch) 0, 100% 0, 100% 100%, 0 100%, 0 var(--pg-notch));
}

/* ==========================================================================
   4. TYPE ROLES
   ========================================================================== */

.pg-eyebrow {
  font-family: var(--pg-font-body);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .16em;
  color: var(--pg-red);
  display: inline-flex;
  align-items: center;
  gap: .6em;
  margin: 0 0 .9rem;
  text-transform: uppercase;
}
.pg-eyebrow::before {
  content: "";
  width: 26px; height: 3px; background: var(--pg-red); display: block;
}
.pg-dark .pg-eyebrow { color: var(--pg-red-dark); }

.pg-h1 { font-size: clamp(2.3rem, 6.6vw, 4.6rem); font-weight: 900; line-height: .96; letter-spacing: -0.03em; }
.pg-h2 { font-size: clamp(1.7rem, 3.8vw, 2.9rem); font-weight: 900; letter-spacing: -0.025em; }
.pg-h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 800; }

.pg-lead {
  font-size: clamp(1rem, 1.35vw, 1.15rem);
  color: var(--pg-text-mute);
  max-width: 56ch;
  line-height: 1.7;
}
.pg-dark .pg-lead { color: var(--pg-fog); }

.pg-data {
  font-family: var(--pg-font-data);
  font-size: .78rem;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
}

.pg-sec-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: clamp(22px, 3vw, 40px);
}
.pg-sec-head .pg-h2 { margin: 0; }
.pg-sec-head__link {
  font-weight: 800; font-size: .92rem; color: var(--pg-red);
  display: inline-flex; align-items: center; gap: .45em;
  border-bottom: 2px solid transparent; padding-bottom: 2px;
  transition: border-color .2s var(--pg-ease);
}
.pg-sec-head__link:hover { border-color: var(--pg-red); }
.pg-sec-head__link .pg-arrow { transition: transform .2s var(--pg-ease); }
.pg-sec-head__link:hover .pg-arrow { transform: translateX(-4px); }

/* ==========================================================================
   5. BUTTONS
   ========================================================================== */

.pg-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  --btn-bg: var(--pg-red);
  --btn-fg: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55em;
  font-family: var(--pg-font-body);
  font-weight: 800;
  font-size: .95rem;
  line-height: 1;
  padding: 15px 26px;
  border: 2px solid var(--btn-bg);
  background: var(--btn-bg);
  color: var(--btn-fg);
  border-radius: var(--pg-r);
  cursor: pointer;
  text-align: center;
  transition: background-color .18s var(--pg-ease), border-color .18s var(--pg-ease), color .18s var(--pg-ease), transform .1s var(--pg-ease);
  position: relative;
  overflow: hidden;
}

.pg-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  --btn-bg: var(--pg-red-deep);
  background: var(--btn-bg);
  border-color: var(--btn-bg);
  color: #fff;
}

.pg-btn:active { transform: translateY(1px); }

.pg-btn--ghost {
  --btn-bg: transparent;
  --btn-fg: #fff;
  border-color: rgba(255,255,255,.35);
}
.pg-btn--ghost:hover { --btn-bg: #fff; --btn-fg: var(--pg-ink); border-color: #fff; }

.pg-btn--outline {
  --btn-bg: transparent;
  --btn-fg: var(--pg-ink);
  border-color: var(--pg-ink);
}
.pg-btn--outline:hover { --btn-bg: var(--pg-ink); --btn-fg: #fff; border-color: var(--pg-ink); }

.pg-btn--lg { padding: 18px 34px; font-size: 1.02rem; }
.pg-btn--sm { padding: 11px 16px; font-size: .84rem; }
.pg-btn--block { display: flex; width: 100%; }

/* ==========================================================================
   6. FORMS
   ========================================================================== */

input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="password"], input[type="search"], input[type="number"], input[type="date"],
select, textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container .select2-selection--single {
  width: 100%;
  font-family: var(--pg-font-body);
  font-size: 1rem;
  color: var(--pg-text);
  background: #fff;
  border: 1.5px solid var(--pg-line-input);
  border-radius: var(--pg-r);
  padding: 13px 15px;
  transition: border-color .16s var(--pg-ease), box-shadow .16s var(--pg-ease);
}

input:focus, select:focus, textarea:focus,
.woocommerce form .form-row input.input-text:focus {
  border-color: var(--pg-red);
  box-shadow: 0 0 0 3px rgba(225,6,0,.14);
  outline: none;
}

label { font-weight: 700; font-size: .9rem; display: block; margin-bottom: 6px; }

/* ==========================================================================
   7. TOP BAR
   ========================================================================== */

.pg-topbar {
  background: var(--pg-ink);
  color: #fff;
  font-size: .8rem;
  font-weight: 600;
  border-bottom: 1px solid var(--pg-line);
}
.pg-topbar__in {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; min-height: 40px;
}
.pg-topbar__ticker { display: flex; align-items: center; gap: 10px; color: var(--pg-fog); }
.pg-topbar__ticker b { color: #fff; font-weight: 800; }
.pg-topbar__dot {
  width: 7px; height: 7px; background: var(--pg-red); border-radius: 50%;
  flex: none; box-shadow: 0 0 0 0 rgba(225,6,0,.6);
  animation: pg-pulse 2.4s 3;
}
@keyframes pg-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(225,6,0,.55); }
  70%  { box-shadow: 0 0 0 9px rgba(225,6,0,0); }
  100% { box-shadow: 0 0 0 0 rgba(225,6,0,0); }
}
.pg-topbar__links { display: flex; gap: 20px; color: var(--pg-fog); }
.pg-topbar__links a:hover { color: #fff; }
@media (max-width: 53.75em) { .pg-topbar__links { display: none; } }

/* ==========================================================================
   8. HEADER
   ========================================================================== */

.pg-header {
  position: sticky; top: 0; z-index: 60;
  background: var(--pg-ink);
  color: #fff;
  border-bottom: 1px solid var(--pg-line);
  transition: box-shadow .25s var(--pg-ease);
}
.pg-header.is-stuck { box-shadow: 0 10px 30px rgba(0,0,0,.45); }

.pg-header__in {
  display: flex; align-items: center; gap: clamp(12px, 2.4vw, 32px);
  min-height: 74px;
}

.pg-logo { display: flex; align-items: center; gap: 11px; flex: none; }
.pg-logo__mark { width: 40px; height: 40px; flex: none; }
.pg-logo__text {
  font-family: var(--pg-font-display);
  font-weight: 900; font-size: 1.42rem; letter-spacing: -.03em; line-height: 1;
  color: #fff;
}
.pg-logo__text span { color: var(--pg-red-hot); }  /* 5.22:1 on ink; brand red is only 3.94:1 */
.pg-logo__sub {
  display: block; font-family: var(--pg-font-data); font-size: .56rem;
  letter-spacing: .22em; color: var(--pg-fog); font-weight: 500; margin-top: 3px;
}
.pg-logo img { max-height: 46px; width: auto; }

/* Primary nav */
.pg-nav { margin-inline-end: auto; }
.pg-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: clamp(6px, 1.4vw, 22px); }
.pg-nav li { position: relative; }
.pg-nav > ul > li > a {
  display: flex; align-items: center; gap: 6px;
  font-weight: 700; font-size: .95rem; color: #fff;
  padding: 26px 4px; position: relative; white-space: nowrap;
}
.pg-nav > ul > li > a::after {
  content: ""; position: absolute; inset-inline: 4px; bottom: 20px; height: 3px;
  background: var(--pg-red); transform: scaleX(0); transform-origin: inline-end;
  transition: transform .22s var(--pg-ease);
}
.pg-nav > ul > li:hover > a::after,
.pg-nav > ul > li.current-menu-item > a::after,
.pg-nav > ul > li.current_page_item > a::after { transform: scaleX(1); }

.pg-nav .menu-item-has-children > a::before {
  content: ""; width: 6px; height: 6px; order: 2;
  border-inline-end: 2px solid var(--pg-fog); border-bottom: 2px solid var(--pg-fog);
  transform: rotate(45deg) translateY(-2px);
}

.pg-nav ul ul {
  position: absolute; top: 100%; inset-inline-start: 0;
  min-width: 260px; background: var(--pg-ink-2);
  border: 1px solid var(--pg-line); border-top: 3px solid var(--pg-red);
  padding: 8px; display: block; flex-direction: column; align-items: stretch; gap: 0;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .18s var(--pg-ease), transform .18s var(--pg-ease), visibility .18s;
  box-shadow: 0 24px 50px rgba(0,0,0,.5);
}
.pg-nav li:hover > ul,
.pg-nav li:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }
.pg-nav ul ul a {
  display: block; padding: 11px 14px; font-size: .9rem; font-weight: 600; color: var(--pg-fog);
  border-inline-start: 2px solid transparent;
}
.pg-nav ul ul a:hover { color: #fff; background: var(--pg-ink-3); border-inline-start-color: var(--pg-red); }

@media (max-width: 64.0em) { .pg-nav { display: none; } }

/* Header actions */
.pg-actions { display: flex; align-items: center; gap: 4px; flex: none; }

.pg-iconbtn {
  width: 46px; height: 46px; display: grid; place-items: center;
  background: transparent; border: 0; color: #fff; cursor: pointer; position: relative;
  border-radius: var(--pg-r); transition: background-color .16s var(--pg-ease), color .16s var(--pg-ease);
}
.pg-iconbtn:hover { background: var(--pg-ink-3); color: var(--pg-red-dark); }
.pg-iconbtn svg { width: 22px; height: 22px; }

.pg-count {
  position: absolute; top: 6px; inset-inline-end: 4px;
  min-width: 19px; height: 19px; padding: 0 5px;
  background: var(--pg-red); color: #fff; border-radius: 10px;
  font-family: var(--pg-font-data); font-size: .66rem; font-weight: 700;
  display: grid; place-items: center; line-height: 1;
}

.pg-burger { display: none; }
@media (max-width: 64.0em) { .pg-burger { display: grid; } }

/* Header search (desktop inline) */
.pg-search {
  position: relative; flex: 1 1 340px; max-width: 26.25em;
}
.pg-search input[type="search"] {
  background: var(--pg-ink-3); border-color: var(--pg-line-input-dark); color: #fff;
  padding-block: 12px; padding-inline: 44px 15px; font-size: .92rem;
}
.pg-search input[type="search"]::placeholder { color: var(--pg-dim-dark); }
.pg-search input[type="search"]:focus { border-color: var(--pg-red); background: #000; }
.pg-search__go {
  position: absolute; inset-inline-start: 6px; top: 50%; transform: translateY(-50%);
  background: none; border: 0; color: var(--pg-fog); cursor: pointer; padding: 8px;
}
.pg-search__go svg { width: 19px; height: 19px; }
@media (max-width: 73.75em) {
  .pg-search:not(.pg-search--drawer):not(.pg-search--404) { display: none; }
}
.pg-search--drawer, .pg-search--404 { flex: none; max-width: none; width: 100%; }

/* ==========================================================================
   9. DRAWERS (mobile menu + mini cart)
   ========================================================================== */

.pg-scrim {
  position: fixed; inset: 0; background: rgba(0,0,0,.66);
  opacity: 0; visibility: hidden; z-index: 90;
  transition: opacity .28s var(--pg-ease), visibility .28s;
  backdrop-filter: blur(2px);
}
.pg-scrim.is-open { opacity: 1; visibility: visible; }

.pg-drawer {
  position: fixed; top: 0; bottom: 0; z-index: 100;
  width: min(400px, 88vw);
  background: var(--pg-ink);
  color: #fff;
  display: flex; flex-direction: column;
  transition: transform .34s var(--pg-ease), visibility .34s;
  box-shadow: 0 0 60px rgba(0,0,0,.6);
}
/* visibility:hidden is what actually removes these from the tab order —
   an off-screen transform alone leaves every control inside focusable. */
.pg-drawer { visibility: hidden; }
.pg-drawer.is-open { visibility: visible; }
.pg-drawer--menu { inset-inline-start: 0; transform: translateX(-100%); }
.pg-drawer--cart { inset-inline-end: 0; transform: translateX(100%); }
/* A drawer that is merely translated off-screen still holds focusable links.
   visibility:hidden removes them from the tab order; the delay keeps the
   slide-out animation visible on the way out. WCAG 4.1.2 / 2.4.3. */
.pg-drawer { visibility: hidden; transition: transform .34s var(--pg-ease), visibility 0s linear .34s; }
.pg-drawer.is-open { visibility: visible; transition: transform .34s var(--pg-ease), visibility 0s; }
[dir="rtl"] .pg-drawer--menu { transform: translateX(100%); }
[dir="rtl"] .pg-drawer--cart { transform: translateX(-100%); }
.pg-drawer.is-open { transform: translateX(0) !important; }

.pg-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px; border-bottom: 1px solid var(--pg-line); flex: none;
}
.pg-drawer__title { font-family: var(--pg-font-display); font-weight: 900; font-size: 1.05rem; letter-spacing: .02em; margin: 0; }
.pg-drawer__body { overflow-y: auto; flex: 1; padding: 8px 0 24px; -webkit-overflow-scrolling: touch; }
.pg-drawer__foot { flex: none; padding: 18px 20px; border-top: 1px solid var(--pg-line); background: var(--pg-ink-2); }

.pg-mnav ul { list-style: none; margin: 0; padding: 0; }
.pg-mnav > ul > li { border-bottom: 1px solid var(--pg-line); }
.pg-mnav a {
  display: block; padding: 15px 22px; font-weight: 700; font-size: 1rem; color: #fff;
}
.pg-mnav a:hover, .pg-mnav a:focus { color: var(--pg-red-dark); background: var(--pg-ink-2); }
.pg-mnav ul ul { background: var(--pg-ink-2); }
.pg-mnav ul ul a {
  padding-block: 11px; font-size: .9rem; font-weight: 600; color: var(--pg-fog);
  padding-inline-start: 38px; position: relative;
}
.pg-mnav ul ul a::before {
  content: ""; position: absolute; inset-inline-start: 22px; top: 50%;
  width: 8px; height: 2px; background: var(--pg-red);
}
.pg-mnav .menu-item-has-children > a { display: flex; justify-content: space-between; align-items: center; }

.pg-drawer__cta { padding: 20px 22px; display: grid; gap: 10px; }

/* Mini cart */
.pg-mini__empty { padding: 60px 24px; text-align: center; color: var(--pg-fog); }
.pg-mini__empty svg { width: 54px; height: 54px; margin: 0 auto 18px; color: var(--pg-line); }


/* ==========================================================================
   10. HERO — the stage brief
   ========================================================================== */

.pg-hero {
  position: relative;
  background: var(--pg-ink);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.pg-hero::before {
  content: "";
  position: absolute; z-index: -2; inset: 0;
  background:
    linear-gradient(to bottom, rgba(225,6,0,.16), transparent 55%),
    radial-gradient(60% 80% at 20% 30%, rgba(225,6,0,.28), transparent 65%);
}
/* hairline scoring grid */
.pg-hero::after {
  content: "";
  position: absolute; z-index: -1; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(80% 70% at 50% 40%, #000 30%, transparent 100%);
}

.pg-hero__in {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  gap: clamp(24px, 5vw, 70px);
  padding-block: clamp(48px, 8vw, 96px);
}
@media (max-width: 56.25em) {
  .pg-hero__in { grid-template-columns: 1fr; padding-block: 44px 0; gap: 30px; }
}

.pg-hero__copy { position: relative; z-index: 2; }

.pg-hero__title {
  font-size: clamp(2.4rem, 7vw, 4.9rem);
  font-weight: 900; line-height: .94; letter-spacing: -.035em;
  margin: 0 0 20px;
}
.pg-hero__title em {
  font-style: normal; color: var(--pg-red-dark);
  position: relative; white-space: nowrap;
}
.pg-hero__title em::after {
  content: ""; position: absolute; inset-inline: -2px; bottom: .06em; height: .1em;
  background: var(--pg-red); opacity: .55;
}

.pg-hero__sub { color: var(--pg-fog); font-size: clamp(1rem, 1.4vw, 1.16rem); max-width: 50ch; margin-bottom: 30px; }

.pg-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 34px; }

.pg-hero__stats {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr));
  border-top: 1px solid var(--pg-line);
  padding-top: 22px; gap: 14px;
}
.pg-stat__num {
  font-family: var(--pg-font-display); font-weight: 900;
  font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1; color: #fff;
  display: flex; align-items: baseline; gap: 3px;
}
.pg-stat__num i { font-style: normal; color: var(--pg-red); font-size: .62em; }
.pg-stat__label { font-size: .76rem; color: var(--pg-fog); font-weight: 600; margin-top: 6px; line-height: 1.35; }

/* Hero art — IPSC classic target, the sport's own object */
.pg-hero__art { position: relative; display: grid; place-items: center; }
.pg-hero__art svg { width: min(100%, 400px); height: auto; filter: drop-shadow(0 30px 60px rgba(0,0,0,.6)); }
@media (max-width: 56.25em) { .pg-hero__art svg { width: min(66%, 260px); } }

.pg-hero__tag {
  position: absolute; z-index: 3;
  background: rgba(11,12,14,.86);
  border: 1px solid var(--pg-line);
  border-inline-start: 3px solid var(--pg-red);
  padding: 9px 13px; backdrop-filter: blur(6px);
}
.pg-hero__tag b { display: block; font-size: .84rem; font-weight: 800; color: #fff; line-height: 1.2; }
.pg-hero__tag span { font-family: var(--pg-font-data); font-size: .64rem; color: var(--pg-fog); letter-spacing: .1em; }
.pg-hero__tag--a { top: 16%; inset-inline-start: -4%; }
.pg-hero__tag--b { bottom: 20%; inset-inline-end: -2%; }
@media (max-width: 56.25em) { .pg-hero__tag { display: none; } }

/* ==========================================================================
   11. PROMISE STRIP
   ========================================================================== */

.pg-promise {
  background: var(--pg-red);
  color: #fff;
}
.pg-promise__in {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1px; background: rgba(255,255,255,.22);
}
.pg-promise__item {
  background: var(--pg-red);
  display: flex; align-items: center; gap: 12px;
  padding: 20px clamp(10px, 2vw, 24px);
}
.pg-promise__item svg { width: 26px; height: 26px; flex: none; }
.pg-promise__item b { display: block; font-size: .92rem; font-weight: 800; line-height: 1.25; }
.pg-promise__item span { font-size: .78rem; font-weight: 500; color: #FFF6F5; }  /* 4.67:1 on the red band — opacity fading failed at 3.60:1 */
@media (max-width: 48.75em) {
  .pg-promise__in { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .pg-promise__item { padding: 15px 14px; }
  .pg-promise__item span { display: none; }
}

/* ==========================================================================
   12. CATEGORY TILES
   ========================================================================== */

.pg-cats { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 62.5em) { .pg-cats { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 43.75em)  { .pg-cats { grid-template-columns: repeat(2, minmax(0,1fr)); } }

.pg-cat {
  --pg-notch: 22px;
  position: relative;
  background: var(--pg-ink);
  color: #fff;
  min-height: 190px;
  padding: 20px;
  display: flex; flex-direction: column; justify-content: space-between;
  /* the tile grows with its text; only the art layer is clipped */
  transition: background-color .25s var(--pg-ease), transform .25s var(--pg-ease);
}
.pg-cat:hover { background: var(--pg-red); transform: translateY(-3px); }
.pg-cat { isolation: isolate; }
.pg-cat > .pg-cat__art { clip-path: inset(0); }
.pg-cat__art {
  position: absolute; inset-block-end: -14px; inset-inline-start: -14px;
  width: 128px; height: 128px; color: #fff; opacity: .12;
  transition: opacity .25s var(--pg-ease), transform .35s var(--pg-ease);
}
.pg-cat:hover .pg-cat__art { opacity: .26; transform: scale(1.08) rotate(-4deg); }
.pg-cat__count {
  font-family: var(--pg-font-data); font-size: .68rem; letter-spacing: .1em;
  color: var(--pg-fog); position: relative; z-index: 2;
}
.pg-cat:hover .pg-cat__count { color: rgba(255,255,255,.8); }
.pg-cat__name {
  font-family: var(--pg-font-display); font-weight: 800; font-size: 1.08rem;
  line-height: 1.2; position: relative; z-index: 2; margin: 0;
}
.pg-cat__go {
  position: absolute; top: 18px; inset-inline-end: 18px;
  width: 30px; height: 30px; display: grid; place-items: center;
  border: 1.5px solid var(--pg-edge-dark); color: #fff;
  transition: border-color .2s var(--pg-ease), background-color .2s var(--pg-ease);
}
.pg-cat:hover .pg-cat__go { border-color: #fff; background: #fff; color: var(--pg-red); }

/* Feature tile spanning two columns */
.pg-cat--wide { grid-column: span 2; min-height: 190px; }
@media (max-width: 43.75em) { .pg-cat--wide { grid-column: span 2; } }

/* ==========================================================================
   13. PRODUCT CARD
   ========================================================================== */

.pg-products,
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: clamp(12px, 1.6vw, 22px);
  list-style: none; margin: 0; padding: 0;
}
@media (max-width: 67.5em) { .pg-products, .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 51.25em)  { .pg-products, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); } }

.woocommerce ul.products li.product,
.pg-card {
  position: relative;
  display: flex; flex-direction: column;
  background: #fff;
  border: 1px solid var(--pg-line-light);
  border-radius: var(--pg-r);
  overflow: hidden;
  margin: 0 !important;
  width: auto !important;
  float: none !important;
  transition: border-color .2s var(--pg-ease), transform .2s var(--pg-ease), box-shadow .2s var(--pg-ease);
}
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after { content: none; }

.pg-card:hover {
  border-color: var(--pg-ink);
  transform: translateY(-4px);
  box-shadow: 0 18px 36px -20px rgba(11,12,14,.55);
}

/* reticle brackets on hover — reads as a sight picture, not a shadow */
.pg-card__frame { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.pg-card__frame i {
  position: absolute; width: 15px; height: 15px;
  border: 2px solid var(--pg-red); opacity: 0;
  transition: opacity .2s var(--pg-ease), transform .25s var(--pg-ease);
}
.pg-card__frame i:nth-child(1) { top: 8px; left: 8px;  border-inline-end: 0; border-bottom: 0; transform: translate(4px,4px); }
.pg-card__frame i:nth-child(2) { top: 8px; right: 8px; border-inline-start: 0; border-bottom: 0; transform: translate(-4px,4px); }
.pg-card__frame i:nth-child(3) { bottom: 8px; left: 8px;  border-inline-end: 0; border-top: 0; transform: translate(4px,-4px); }
.pg-card__frame i:nth-child(4) { bottom: 8px; right: 8px; border-inline-start: 0; border-top: 0; transform: translate(-4px,-4px); }
.pg-card:hover .pg-card__frame i { opacity: 1; transform: translate(0,0); }

.pg-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--pg-smoke);
  display: grid; place-items: center;
  overflow: hidden;
}
.pg-card__media img,
.woocommerce ul.products li.product a img {
  width: 100%; height: 100%; object-fit: contain;
  padding: 14%;
  margin: 0;
  transition: transform .45s var(--pg-ease);
  mix-blend-mode: multiply;
}
.pg-card:hover .pg-card__media img { transform: scale(1.06); }

.pg-card__ph { width: 62%; height: 62%; color: #C6CAD1; }
.pg-card:hover .pg-card__ph { color: #A9AEB7; }

/* Badges */
.pg-badges {
  position: absolute; top: 10px; inset-inline-start: 10px; z-index: 4;
  display: flex; flex-direction: column; gap: 5px; align-items: flex-start;
}
.pg-badge {
  font-family: var(--pg-font-body); font-size: .68rem; font-weight: 800;
  letter-spacing: .04em; padding: 5px 9px; line-height: 1;
  background: var(--pg-ink); color: #fff; border-radius: var(--pg-r);
}
.pg-badge--sale { background: var(--pg-red); }
.pg-badge--new  { background: #fff; color: var(--pg-ink); border: 1.5px solid var(--pg-ink); }
.pg-badge--out  { background: #6B7280; }
.pg-badge--course { background: var(--pg-ink); border-inline-start: 3px solid var(--pg-red); }

span.onsale,
.woocommerce span.onsale {
  position: absolute; top: 10px; inset-inline-start: 10px; inset-inline-end: auto;
  margin: 0; min-height: 0; min-width: 0; line-height: 1; border-radius: var(--pg-r);
  background: var(--pg-red); color: #fff; padding: 6px 10px;
  font-family: var(--pg-font-body); font-weight: 800; font-size: .7rem;
}

/* Wishlist / quick action */
.pg-card__fav {
  position: absolute; top: 10px; inset-inline-end: 10px; z-index: 4;
  width: var(--pg-target); height: var(--pg-target); display: grid; place-items: center;
  background: rgba(255,255,255,.95); border: 1px solid var(--pg-line-input);
  color: var(--pg-text-mute); cursor: pointer; border-radius: var(--pg-r);
  opacity: 0; transform: translateY(-4px);
  transition: opacity .2s var(--pg-ease), transform .2s var(--pg-ease), color .2s var(--pg-ease);
}
.pg-card:hover .pg-card__fav, .pg-card__fav:focus-visible { opacity: 1; transform: translateY(0); }
.pg-card__fav:hover { color: var(--pg-red); border-color: var(--pg-red); }
.pg-card__fav svg { width: 17px; height: 17px; }
.pg-card__fav.is-on { color: var(--pg-red); opacity: 1; transform: none; }

/* Body */
.pg-card__body,
.woocommerce ul.products li.product .pg-card__body {
  padding: 15px 16px 16px;
  display: flex; flex-direction: column; flex: 1; gap: 2px;
  border-top: 1px solid var(--pg-line-light);
}
.pg-card__brand {
  font-family: var(--pg-font-data); font-size: .66rem; letter-spacing: .12em;
  color: var(--pg-text-mute); text-transform: uppercase; margin-bottom: 4px;
}
.pg-card__title, h2.pg-card__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--pg-font-body);
  font-size: .95rem; font-weight: 700; line-height: 1.4; color: var(--pg-text);
  margin: 0 0 8px; padding: 0;
  min-height: 2.66em; /* aligns the grid; content is never clipped */
}
.pg-card:hover .pg-card__title { color: var(--pg-red); }

.pg-card__meta { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; font-size: .76rem; color: var(--pg-text-mute); }
.pg-stars { display: inline-flex; gap: 1px; color: var(--pg-red); }
.pg-stars svg { width: 13px; height: 13px; }

.pg-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; }

.pg-price,
.woocommerce ul.products li.product .price {
  font-family: var(--pg-font-display);
  font-weight: 900; font-size: 1.12rem; color: var(--pg-ink);
  line-height: 1; margin: 0; display: flex; align-items: baseline; gap: 7px;
}
.pg-price del, .woocommerce .price del {
  font-size: .76em; font-weight: 600; color: var(--pg-text-mute); opacity: 1;
}
.pg-price ins, .woocommerce .price ins { text-decoration: none; color: var(--pg-red); background: none; font-weight: 900; }
.pg-price small { font-size: .6em; font-weight: 700; color: var(--pg-text-mute); }

/* Add to cart */
.pg-card__add,
.woocommerce ul.products li.product .button {
  width: var(--pg-target); height: var(--pg-target); padding: 0; flex: none;
  display: grid; place-items: center; margin: 0;
  background: var(--pg-ink); border-color: var(--pg-ink); color: #fff;
  font-size: 0;
  transition: background-color .18s var(--pg-ease), width .22s var(--pg-ease);
}
.pg-card__add svg { width: 19px; height: 19px; }
.pg-card__add:hover,
.woocommerce ul.products li.product .button:hover { background: var(--pg-red); border-color: var(--pg-red); }
.woocommerce ul.products li.product .button.loading::after { font-size: 14px; }
.woocommerce ul.products li.product .added_to_cart { display: none; }

/* Course card */
.pg-course {
  position: relative; display: flex; flex-direction: column;
  background: var(--pg-ink-2); color: #fff;
  border: 1px solid var(--pg-line);
  --pg-notch: 24px;
  transition: border-color .22s var(--pg-ease), transform .22s var(--pg-ease);
}
.pg-course:hover { border-color: var(--pg-red); transform: translateY(-4px); }
.pg-course__top {
  padding: 20px 20px 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
.pg-course__code {
  font-family: var(--pg-font-data); font-size: .68rem; letter-spacing: .14em; color: var(--pg-red-dark);
}
.pg-course__level {
  font-size: .68rem; font-weight: 800; padding: 5px 9px; line-height: 1;
  border: 1px solid var(--pg-line); color: var(--pg-fog); flex: none;
}
.pg-course__name { font-size: 1.22rem; font-weight: 800; margin: 12px 0 8px; padding-inline: 20px; line-height: 1.25; }
.pg-course__desc { padding-inline: 20px; color: var(--pg-fog); font-size: .88rem; margin-bottom: 16px; }
.pg-course__facts {
  padding: 0 20px 18px; display: grid; gap: 8px; font-size: .84rem; color: var(--pg-fog);
}
.pg-course__facts div { display: flex; align-items: center; gap: 9px; }
.pg-course__facts svg { width: 16px; height: 16px; color: var(--pg-red); flex: none; }
.pg-course__foot {
  margin-top: auto; padding: 16px 20px; border-top: 1px solid var(--pg-line);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  background: rgba(0,0,0,.25);
}
.pg-course__price { font-family: var(--pg-font-display); font-weight: 900; font-size: 1.25rem; color: #fff; }
.pg-course__seats { font-size: .74rem; color: var(--pg-red-dark); font-weight: 700; }

/* ==========================================================================
   14. TABS (featured products)
   ========================================================================== */

.pg-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.pg-tab {
  font-family: var(--pg-font-body); font-weight: 800; font-size: .88rem;
  padding: 10px 17px; border: 1.5px solid var(--pg-edge); background: #fff;
  color: var(--pg-text-mute); cursor: pointer; border-radius: var(--pg-r);
  transition: all .18s var(--pg-ease);
}
.pg-tab:hover { border-color: var(--pg-ink); color: var(--pg-ink); }
.pg-tab.is-active { background: var(--pg-ink); border-color: var(--pg-ink); color: #fff; }
.pg-tabpanel[hidden] { display: none; }

/* ==========================================================================
   15. SPLIT BAND (law-enforcement / units)
   ========================================================================== */

.pg-split {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr));
  align-items: stretch; gap: 0;
}
@media (max-width: 55.0em) { .pg-split { grid-template-columns: 1fr; } }
.pg-split__copy { padding: clamp(30px, 5vw, 64px); display: flex; flex-direction: column; justify-content: center; }
.pg-split__art {
  background: var(--pg-red);
  position: relative; overflow: hidden; min-height: 260px;
  display: grid; place-items: center;
}
.pg-split__art svg { width: 62%; max-width: 18.75em; color: #fff; opacity: .93; }
.pg-split__art::after {
  content: ""; position: absolute; inset: 0;
  background-image: repeating-linear-gradient(-45deg, rgba(0,0,0,.09) 0 12px, transparent 12px 24px);
}
.pg-checklist { list-style: none; padding: 0; margin: 0 0 28px; display: grid; gap: 12px; }
.pg-checklist li { display: flex; gap: 11px; align-items: flex-start; font-size: .96rem; }
.pg-checklist svg { width: 20px; height: 20px; color: var(--pg-red); flex: none; margin-top: 2px; }

/* ==========================================================================
   16. BRAND STRIP
   ========================================================================== */

.pg-brands {
  display: grid; grid-template-columns: repeat(6, minmax(0,1fr));
  border: 1px solid var(--pg-line-light); background: var(--pg-line-light); gap: 1px;
}
@media (max-width: 56.25em) { .pg-brands { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.pg-brands a {
  background: #fff; display: grid; place-items: center; padding: 26px 12px;
  font-family: var(--pg-font-display); font-weight: 900; font-size: .95rem;
  letter-spacing: .04em; color: var(--pg-text-dim); text-align: center;
  transition: color .2s var(--pg-ease), background-color .2s var(--pg-ease);
}
.pg-brands a:hover { color: var(--pg-ink); background: var(--pg-smoke); }

/* ==========================================================================
   17. FOOTER
   ========================================================================== */

.pg-footer { background: var(--pg-ink); color: var(--pg-fog); font-size: .9rem; }
.pg-footer a:hover { color: #fff; }

.pg-footer__top {
  display: grid; grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: clamp(24px, 4vw, 50px);
  padding-block: clamp(40px, 6vw, 70px);
}
@media (max-width: 56.25em) { .pg-footer__top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 35.0em) { .pg-footer__top { grid-template-columns: 1fr; } }

.pg-footer h4 {
  color: #fff; font-size: .82rem; font-weight: 800; letter-spacing: .12em;
  margin: 0 0 18px; text-transform: uppercase;
}
.pg-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 11px; }

.pg-news { display: flex; gap: 8px; margin-top: 14px; }
.pg-news input {
  background: var(--pg-ink-3); border-color: var(--pg-line-input-dark); color: #fff; padding: 12px 14px;
}
.pg-news input::placeholder { color: var(--pg-dim-dark); }
.pg-news .pg-btn { flex: none; padding-inline: 18px; }

.pg-social { display: flex; gap: 8px; margin-top: 20px; }
.pg-social a {
  width: var(--pg-target); height: var(--pg-target); display: grid; place-items: center;
  border: 1px solid var(--pg-line); color: var(--pg-fog);
  transition: all .2s var(--pg-ease);
}
.pg-social a:hover { background: var(--pg-red); border-color: var(--pg-red); color: #fff; }
.pg-social svg { width: 17px; height: 17px; }

.pg-footer__bar {
  border-top: 1px solid var(--pg-line);
  padding-block: 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  font-size: .8rem;
}
.pg-pay { display: flex; gap: 8px; align-items: center; }
.pg-pay span {
  border: 1px solid var(--pg-line); padding: 5px 10px; font-family: var(--pg-font-data);
  font-size: .66rem; letter-spacing: .06em; color: var(--pg-fog);
}

/* ==========================================================================
   18. STICKY MOBILE BAR + FLOATING WHATSAPP
   ========================================================================== */

.pg-tabbar {
  position: fixed; inset-inline: 0; bottom: 0; z-index: 70;
  background: var(--pg-ink); border-top: 1px solid var(--pg-line);
  display: none; grid-template-columns: repeat(4, 1fr);
  padding-bottom: env(safe-area-inset-bottom);
}
@media (max-width: 48.75em) { .pg-tabbar { display: grid; } body { padding-bottom: 62px; } }
.pg-tabbar a {
  display: grid; place-items: center; gap: 3px; padding: 9px 4px;
  color: var(--pg-fog); font-size: .66rem; font-weight: 700; position: relative;
}
.pg-tabbar a.is-active { color: #fff; }
.pg-tabbar a.is-active::before { content: ""; position: absolute; top: 0; inset-inline: 22%; height: 2px; background: var(--pg-red); }
.pg-tabbar svg { width: 21px; height: 21px; }
.pg-tabbar .pg-count { top: 2px; inset-inline-end: 22%; }

.pg-wa {
  position: fixed; inset-inline-end: 18px; bottom: 18px; z-index: 65;
  width: 54px; height: 54px; border-radius: 50%;
  background: #128C7E; color: #fff; display: grid; place-items: center;
  box-shadow: 0 10px 26px rgba(0,0,0,.32);
  transition: transform .2s var(--pg-ease);
}
.pg-wa:hover { transform: scale(1.07); }
.pg-wa svg { width: 28px; height: 28px; }
@media (max-width: 48.75em) { .pg-wa { bottom: 74px; width: 48px; height: 48px; } .pg-wa svg { width: 25px; height: 25px; } }

/* ==========================================================================
   19. PAGE HEADER + BREADCRUMB
   ========================================================================== */

.pg-pagehead {
  background: var(--pg-ink); color: #fff; position: relative; overflow: hidden;
  padding-block: clamp(30px, 5vw, 56px);
}
.pg-pagehead::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(50% 120% at 85% 0%, rgba(225,6,0,.28), transparent 62%);
}
.pg-pagehead__in { position: relative; }
.pg-pagehead h1 { margin: 0; font-size: clamp(1.8rem, 4.4vw, 3rem); font-weight: 900; letter-spacing: -.03em; }
.pg-pagehead p { color: var(--pg-fog); max-width: 62ch; margin: 12px 0 0; }

.woocommerce-breadcrumb,
.pg-crumbs {
  font-size: .8rem; color: var(--pg-fog); margin: 0 0 14px;
  display: flex; flex-wrap: wrap; gap: 7px; align-items: center;
}
.woocommerce-breadcrumb a, .pg-crumbs a { color: var(--pg-fog); }
.woocommerce-breadcrumb a:hover, .pg-crumbs a:hover { color: var(--pg-red-dark); }

/* ==========================================================================
   20. SHOP LAYOUT
   ========================================================================== */

.pg-shop {
  display: grid;
  grid-template-columns: 268px minmax(0, 1fr);
  gap: clamp(20px, 3vw, 44px);
  align-items: start;
}
@media (max-width: 62.5em) { .pg-shop { grid-template-columns: 1fr; } }

.pg-sidebar { position: sticky; top: 94px; }
@media (max-width: 62.5em) {
  .pg-sidebar {
    position: fixed; inset-block: 0; inset-inline-start: 0; z-index: 100;
    width: min(340px, 88vw); background: #fff; overflow-y: auto;
    padding: 20px; transform: translateX(-100%); visibility: hidden;
    transition: transform .3s var(--pg-ease), visibility 0s linear .3s;
    box-shadow: 0 0 50px rgba(0,0,0,.3);
  }
  [dir="rtl"] .pg-sidebar { transform: translateX(100%); }
  .pg-sidebar.is-open { transform: translateX(0); visibility: visible; transition: transform .3s var(--pg-ease), visibility 0s; }
}

.pg-widget { border: 1px solid var(--pg-line-light); padding: 18px; margin-bottom: 14px; background: #fff; }
.pg-widget h3, .pg-widget .widget-title {
  font-family: var(--pg-font-display); font-size: .92rem; font-weight: 800;
  letter-spacing: .04em; margin: 0 0 14px; padding-bottom: 12px;
  border-bottom: 2px solid var(--pg-ink);
}
.pg-widget ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; }
.pg-widget ul ul { margin-top: 4px; padding-inline-start: 14px; border-inline-start: 1px solid var(--pg-line-light); }
.pg-widget li a {
  display: flex; justify-content: space-between; gap: 10px; align-items: center;
  padding: 8px 0; font-size: .89rem; color: var(--pg-text-mute); font-weight: 600;
}
.pg-widget li a:hover, .pg-widget li.current-cat > a { color: var(--pg-red); }
.pg-widget li a .count, .pg-widget li a span {
  font-family: var(--pg-font-data); font-size: .68rem; color: var(--pg-text-dim);
  background: var(--pg-smoke); padding: 2px 7px; border-radius: 10px;
}

.pg-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  flex-wrap: wrap; margin-bottom: 20px; padding-bottom: 16px;
  border-bottom: 1px solid var(--pg-line-light);
}
.woocommerce-result-count { margin: 0 !important; font-size: .84rem; color: var(--pg-text-mute); }
.woocommerce-ordering { margin: 0 !important; }
.woocommerce-ordering select { padding: 10px 14px; font-size: .88rem; font-weight: 600; width: auto; min-width: 190px; }
.pg-filter-toggle { display: none; }
@media (max-width: 62.5em) { .pg-filter-toggle { display: inline-flex; } }

/* Pagination */
.woocommerce nav.woocommerce-pagination { margin: 44px 0 0; }
.woocommerce nav.woocommerce-pagination ul {
  border: 0; display: flex; gap: 6px; justify-content: center; flex-wrap: wrap;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: var(--pg-target); height: var(--pg-target); display: grid; place-items: center; padding: 0 12px;
  border: 1.5px solid var(--pg-line-light); font-weight: 800; font-size: .9rem;
  color: var(--pg-text); border-radius: var(--pg-r); background: #fff;
  transition: all .18s var(--pg-ease);
}
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: var(--pg-ink); background: #fff; color: var(--pg-ink); }
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--pg-red); border-color: var(--pg-red); color: #fff;
}

/* ==========================================================================
   21. SINGLE PRODUCT
   ========================================================================== */

.woocommerce div.product { display: block; }
.pg-single { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
@media (max-width: 56.25em) { .pg-single { grid-template-columns: 1fr; } }

.woocommerce div.product div.images { margin: 0; width: 100%; float: none; }
.woocommerce div.product div.images img { background: var(--pg-smoke); }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 10px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; margin: 0; float: none; }
.woocommerce div.product div.images .flex-control-thumbs img { border: 1px solid var(--pg-line-light); opacity: .65; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--pg-red); }

.woocommerce div.product div.summary { margin: 0; width: 100%; float: none; }
.woocommerce div.product .product_title {
  font-size: clamp(1.5rem, 3vw, 2.15rem); font-weight: 900; letter-spacing: -.025em; margin-bottom: 12px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--pg-font-display); font-weight: 900;
  font-size: 1.9rem; color: var(--pg-ink); margin: 0 0 6px;
  display: flex; align-items: baseline; gap: 10px;
}
.woocommerce div.product p.price ins { color: var(--pg-red); }
.pg-vat { font-size: .78rem; color: var(--pg-text-mute); margin-bottom: 20px; }

.woocommerce div.product form.cart { margin: 22px 0; display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 6px; }
.woocommerce div.product form.cart .variations td { padding: 6px 0; display: block; }
.woocommerce div.product form.cart .variations label { margin-bottom: 6px; }
.woocommerce div.product form.cart div.quantity { margin: 0; float: none; }
.quantity, .quantity, .woocommerce .quantity {
  display: inline-flex; align-items: stretch; border: 1.5px solid var(--pg-edge); border-radius: var(--pg-r);
}
.quantity input.qty, .woocommerce .quantity input.qty {
  width: 54px; text-align: center; border: 0; padding: 0; font-weight: 800; font-size: 1rem;
  -moz-appearance: textfield;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pg-qty-btn {
  width: var(--pg-target); min-height: var(--pg-target); background: #fff; border: 0; font-size: 1.2rem; font-weight: 700;
  color: var(--pg-text-mute); cursor: pointer; line-height: 1;
}
.pg-qty-btn:hover { color: var(--pg-red); background: var(--pg-smoke); }
.woocommerce div.product form.cart .button { flex: 1 1 200px; padding-block: 17px; }

.pg-trust { display: grid; gap: 11px; padding: 18px; background: var(--pg-smoke); margin-top: 22px; }
.pg-trust div { display: flex; gap: 11px; align-items: center; font-size: .87rem; font-weight: 600; }
.pg-trust svg { width: 19px; height: 19px; color: var(--pg-red); flex: none; }

.woocommerce div.product .woocommerce-product-details__short-description { color: var(--pg-text-mute); margin-bottom: 18px; }
.product_meta { font-size: .82rem; color: var(--pg-text-mute); border-top: 1px solid var(--pg-line-light); padding-top: 16px; margin-top: 20px; }
.product_meta > span { display: block; margin-bottom: 5px; }

/* Product tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: clamp(36px, 5vw, 64px); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0; margin: 0 0 24px; display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--pg-line-light);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none; border: 0; border-radius: 0; margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 13px 20px; font-weight: 800; font-size: .93rem; color: var(--pg-text-mute);
  border-bottom: 3px solid transparent; display: block;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--pg-ink); border-bottom-color: var(--pg-red); }

.woocommerce table.shop_attributes { border: 1px solid var(--pg-line-light); }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td { border: 0; border-bottom: 1px solid var(--pg-line-light); padding: 12px 14px; font-style: normal; }
.woocommerce table.shop_attributes th { background: var(--pg-smoke); font-weight: 800; width: 34%; }

.related.products, .upsells.products { margin-top: clamp(40px, 6vw, 72px); }
.related.products > h2, .upsells.products > h2 { font-size: clamp(1.3rem, 2.6vw, 1.9rem); font-weight: 900; margin-bottom: 22px; }

/* ==========================================================================
   22. CART / CHECKOUT / ACCOUNT
   ========================================================================== */

.woocommerce table.shop_table {
  border: 1px solid var(--pg-line-light); border-radius: var(--pg-r); border-collapse: collapse; width: 100%;
}
.woocommerce table.shop_table th {
  background: var(--pg-ink); color: #fff; font-weight: 800; font-size: .82rem;
  letter-spacing: .06em; padding: 14px 16px; text-align: start;
}
.woocommerce table.shop_table td { padding: 16px; border-top: 1px solid var(--pg-line-light); }
.woocommerce table.shop_table img { width: 66px; border: 1px solid var(--pg-line-light); background: var(--pg-smoke); }
.woocommerce a.remove {
  color: var(--pg-text-mute) !important; font-weight: 400; border: 1px solid var(--pg-line-input);
  width: var(--pg-target); height: var(--pg-target); line-height: 42px; border-radius: var(--pg-r);
  display: inline-block; text-align: center;
}
.woocommerce a.remove:hover { background: var(--pg-red) !important; color: #fff !important; border-color: var(--pg-red); }

.cart-collaterals, .woocommerce .cart-collaterals .cart_totals { width: 100%; float: none; }
.woocommerce-cart .cart-collaterals .cart_totals > h2,
.woocommerce-checkout h3 { font-size: 1.2rem; font-weight: 900; margin-bottom: 16px; }
.woocommerce-cart-form { margin-bottom: 30px; }

.pg-cartgrid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,.9fr); gap: clamp(20px,3vw,40px); align-items: start; }
@media (max-width: 56.25em) { .pg-cartgrid { grid-template-columns: 1fr; } }
.pg-panel { border: 1px solid var(--pg-line-light); padding: clamp(18px,2.4vw,26px); background: #fff; }
.pg-panel--dark { background: var(--pg-ink); color: #fff; border-color: var(--pg-ink); }

.woocommerce-checkout #payment { background: var(--pg-smoke); border-radius: var(--pg-r); border: 1px solid var(--pg-line-light); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--pg-line-light); padding: 18px; }
.woocommerce-checkout #payment div.form-row { padding: 18px; }
.woocommerce #payment #place_order { width: 100%; padding-block: 18px; font-size: 1.05rem; }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
  border-top: 0; border-inline-start: 4px solid var(--pg-red);
  background: var(--pg-smoke); padding: 16px 20px; margin: 0 0 22px;
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap; border-radius: var(--pg-r);
  font-weight: 600;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { content: none; }
.woocommerce-message .button, .woocommerce-info .button { margin-inline-start: auto; }
.woocommerce-error { border-inline-start-color: var(--pg-red); background: #FFF1F0; }

.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; }
.woocommerce-MyAccount-navigation li a {
  display: block; padding: 12px 15px; font-weight: 700; font-size: .92rem;
  border: 1px solid var(--pg-line-light); background: #fff;
}
.woocommerce-MyAccount-navigation li.is-active a { background: var(--pg-ink); color: #fff; border-color: var(--pg-ink); }

/* ==========================================================================
   23. CONTENT PAGES / POSTS
   ========================================================================== */

.pg-content { max-width: 78ch; }
.pg-content h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin-top: 1.6em; }
.pg-content h3 { font-size: 1.25rem; margin-top: 1.4em; }
.pg-content ul, .pg-content ol { margin-bottom: 1.4em; }
.pg-content li { margin-bottom: .5em; }
.pg-content a { color: var(--pg-red); text-decoration: underline; text-underline-offset: 3px; }
.pg-content blockquote {
  margin: 1.6em 0; padding: 4px 22px; border-inline-start: 4px solid var(--pg-red);
  font-size: 1.1rem; font-weight: 500;
}
.pg-content img { margin: 1.6em 0; }
.pg-content table { width: 100%; border-collapse: collapse; }
.pg-content th, .pg-content td { border: 1px solid var(--pg-line-light); padding: 10px 12px; text-align: start; }

.pg-postcard { border: 1px solid var(--pg-line-light); background: #fff; display: flex; flex-direction: column; }
.pg-postcard__media { aspect-ratio: 16/10; background: var(--pg-smoke); overflow: hidden; }
.pg-postcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--pg-ease); }
.pg-postcard:hover .pg-postcard__media img { transform: scale(1.05); }
.pg-postcard__body { padding: 18px; }
.pg-postcard__date { font-family: var(--pg-font-data); font-size: .68rem; letter-spacing: .1em; color: var(--pg-red); }
.pg-postcard h3 { font-size: 1.08rem; margin: 8px 0; }

/* 404 */
.pg-404 { text-align: center; padding-block: clamp(50px, 9vw, 120px); }
.pg-404__code {
  font-family: var(--pg-font-display); font-weight: 900; font-size: clamp(5rem, 18vw, 12rem);
  line-height: .8; color: var(--pg-ink); letter-spacing: -.05em; margin-bottom: 18px;
}
.pg-404__code span { color: var(--pg-red); }

/* ==========================================================================
   24. UTILITIES + MOTION
   ========================================================================== */

.pg-reveal { opacity: 0; transform: translateY(18px); }
.pg-reveal.is-in { opacity: 1; transform: none; transition: opacity .55s var(--pg-ease), transform .55s var(--pg-ease); }
@media (prefers-reduced-motion: reduce) { .pg-reveal { opacity: 1; transform: none; } }

.pg-hide-mobile { }
@media (max-width: 43.75em) { .pg-hide-mobile { display: none !important; } }

.pg-mt0 { margin-top: 0 !important; }
.pg-center { text-align: center; }
.pg-muted { color: var(--pg-text-mute); }

/* WooCommerce clearfix leftovers we intentionally neutralise */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { float: none; }
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce div.product::before,
.woocommerce div.product::after { content: none !important; }

@media print {
  .pg-header, .pg-topbar, .pg-footer, .pg-tabbar, .pg-wa, .pg-drawer, .pg-scrim { display: none !important; }
  body { color: #000; }
}

/* Mobile submenu toggle */
.pg-mnav__toggle {
  width: 30px; height: 30px; display: grid; place-items: center;
  border: 1px solid var(--pg-line); color: var(--pg-fog);
  font-size: 1.05rem; line-height: 1; flex: none;
}
.pg-mnav .menu-item-has-children > a:hover .pg-mnav__toggle { border-color: var(--pg-red); color: var(--pg-red); }

/* Shop main column when no sidebar is active */
.pg-shop__main--full { grid-column: 1 / -1; }


/* --- Card media sizing fixes ------------------------------------------ */
.pg-card__media > a {
  display: grid; place-items: center;
  width: 100%; height: 100%;
}
.pg-card__ph { display: grid; place-items: center; }
.pg-card__ph svg { width: 100%; height: auto; }

/* --- Off-canvas filter header only on small screens ------------------- */
@media (max-width: 62.5em) {
  .pg-sidebar .pg-drawer__head { display: flex !important; color: var(--pg-ink); }
  .pg-sidebar .pg-drawer__head .pg-iconbtn { color: var(--pg-ink); }
}

/* --- Single product summary column ------------------------------------ */
.pg-single .summary { min-width: 0; }
.pg-single .pg-card__brand { font-size: .7rem; }

/* --- Course footer can stack price above the seat note ---------------- */
.pg-course__foot > div { line-height: 1.3; }


/* --- Header on tablet and phone --------------------------------------- */
@media (max-width: 64.0em) {
  .pg-header__in { justify-content: space-between; gap: 4px; }
  .pg-burger { order: -1; }
  .pg-logo   { order: 0; }
  .pg-actions{ order: 1; }
}
@media (max-width: 35.0em) {
  .pg-logo__sub  { display: none; }
  .pg-logo__text { font-size: 1.16rem; }
  .pg-logo__mark { width: 34px; height: 34px; }
  .pg-iconbtn    { width: 42px; height: 42px; }
  .pg-header__in { min-height: 62px; }
}

/* --- Numbers read left to right even on an RTL page ------------------- */
.pg-stat__num { direction: ltr; justify-content: flex-end; }
[dir="ltr"] .pg-stat__num { justify-content: flex-start; }

/* --- Sale price: the price you pay comes first ------------------------ */
.pg-price ins, .woocommerce .price ins { order: -1; }

/* --- Reveal only runs when JS is available ---------------------------- */
.pg-reveal { opacity: 1; transform: none; }
.pg-js .pg-reveal { opacity: 0; transform: translateY(18px); }
.pg-js .pg-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .pg-js .pg-reveal { opacity: 1; transform: none; }
}

/* --- Quantity stepper must not stretch inside the add-to-cart row ----- */
.quantity { flex: none; align-self: stretch; }
.quantity input.qty { width: 56px; flex: none; }

/* ==========================================================================
   25. ACCESSIBILITY
   Built to WCAG 2.1 AA, which is the level required by Israeli standard
   IS 5568 part 1 (the standard normatively references WCAG 2.0 AA; 2.1 is a
   superset, so meeting 2.1 meets 5568). Success criteria are named in the
   comments so an auditor can trace each rule to a requirement.
   ========================================================================== */

/* --- Skip links (2.4.1 Bypass Blocks) --------------------------------- */
.pg-skips { position: absolute; top: 0; inset-inline-start: 0; z-index: 999; }
.pg-skip {
  position: absolute;
  inset-inline-start: 0; top: 0;
  transform: translateY(-200%);
  background: var(--pg-ink); color: #fff;
  padding: 14px 22px; font-weight: 800; font-size: .95rem;
  border: 3px solid var(--pg-red);
  white-space: nowrap;
}
/* Parked above the viewport, never to the side. A -9999px inline offset
   widens the document in RTL and leaves a phantom scroll region. */
.pg-skip:focus {
  transform: translateY(0);
  box-shadow: 0 0 0 6px var(--pg-focus-out), 0 6px 24px rgba(0,0,0,.5);
}

/* --- Visually hidden, but reachable ----------------------------------- */
.screen-reader-text, .pg-sr {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}
.screen-reader-text:focus-within, .pg-sr-focusable:focus {
  position: static !important;
  width: auto; height: auto; margin: 0;
  clip: auto; clip-path: none; white-space: normal;
}

/* --- Live regions are announced, never seen --------------------------- */
.pg-live {
  position: absolute !important;
  width: 1px; height: 1px; overflow: hidden;
  clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap;
}

/* --- 1.4.12 Text Spacing: nothing may clip when the reader overrides --- */
.pg-card__title, .pg-cat__name, .pg-course__name, .pg-hero__title {
  overflow-wrap: break-word;
  word-break: normal;
}
.pg-card__title {
  /* line-clamp truncates, which fails 1.4.12 once line-height is raised.
     Give it room to grow instead of a hard pixel cap. */
  -webkit-line-clamp: 2;
  min-height: 0;
  max-height: none;
}
@supports not (-webkit-line-clamp: 2) {
  .pg-card__title { display: block; }
}

/* --- 2.5.5 Target Size: every control at least 44×44 ------------------- */
.pg-btn, .pg-iconbtn, .pg-tab, .pg-qty-btn,
.pg-card__add, .pg-card__fav, .pg-social a, .pg-cat__go,
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-height: var(--pg-target);
}
.pg-btn--sm { min-height: var(--pg-target); padding-block: 12px; }

/* Small controls keep their visual size but grow their hit area. */
.pg-cat__go { width: var(--pg-target); height: var(--pg-target); }
.pg-topbar__links a, .pg-footer li a, .pg-widget li a {
  display: inline-flex; align-items: center; min-height: 32px;
}

/* --- The wishlist button must not be hover-only (2.1.1, 2.5.5) --------- */
@media (hover: none), (pointer: coarse) {
  .pg-card__fav { opacity: 1; transform: none; }
}
.pg-card__fav:focus-visible { opacity: 1; transform: none; }

/* --- 1.4.13 Content on Hover: dropdowns stay open and are dismissible -- */
.pg-nav ul ul { pointer-events: auto; }
.pg-nav li > ul::before {
  /* bridge the gap so the pointer can travel into the submenu (hoverable) */
  content: ""; position: absolute; inset-inline: 0; top: -8px; height: 8px;
}

/* --- 2.4.7 / 2.4.11 Focus not obscured by the sticky header ------------ */
:target, [id] { scroll-margin-top: 130px; }
@media (max-width: 48.75em) { [id] { scroll-margin-top: 90px; } }

/* --- 2.4.8 Location: current page and current step --------------------- */
[aria-current="page"] { font-weight: 800; }
.pg-nav [aria-current="page"]::after,
.pg-mnav [aria-current="page"] { color: var(--pg-red-hot); }
.woocommerce-breadcrumb [aria-current="page"] { color: #fff; }

/* --- 3.3.1 / 3.3.3 Errors: never colour alone -------------------------- */
.pg-field-error, .woocommerce-error li {
  display: flex; align-items: flex-start; gap: 8px;
  color: #A3000B; font-weight: 700; font-size: .88rem; margin-top: 6px;
}
.pg-field-error::before, .woocommerce-error li::before {
  content: "!";
  flex: none; width: 18px; height: 18px; border-radius: 50%;
  background: #A3000B; color: #fff; font-size: .74rem;
  display: grid; place-items: center; line-height: 1;
}
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"],
.woocommerce form .form-row.woocommerce-invalid input.input-text {
  border-color: #A3000B;
  border-width: 2px;
  box-shadow: 0 0 0 3px rgba(163,0,11,.14);
}
.pg-required { color: #A3000B; font-weight: 800; }

/* --- 1.4.10 Reflow: usable at 320px CSS px / 400% zoom ----------------- */
@media (max-width: 25.0em) {
  :root { --pg-gut: 14px; --pg-band: 44px; }
  .pg-hero__stats { grid-template-columns: 1fr; text-align: start; gap: 10px; }
  .pg-promise__in { grid-template-columns: 1fr; }
  .pg-promise__item span { display: block; }
  .pg-cats, .pg-products, .woocommerce ul.products { grid-template-columns: 1fr; }
  .pg-cat--wide { grid-column: auto; }
  .pg-brands { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .pg-footer__bar { flex-direction: column; align-items: flex-start; }
  .pg-card__title { -webkit-line-clamp: 3; }
}
/* Nothing may require horizontal scrolling. */
.pg-wrap, .pg-content, table { max-width: 100%; }
.pg-content table, .woocommerce table.shop_table { display: block; overflow-x: auto; }
@media (min-width: 640px) {
  .pg-content table, .woocommerce table.shop_table { display: table; }
}

/* --- 1.4.4 Resize Text: nothing sized in px that carries meaning ------- */
/* (type scale uses rem/clamp throughout; this guards the WooCommerce leftovers) */
.woocommerce .quantity input.qty,
.woocommerce-ordering select { font-size: 1rem; }

/* --- forced-colors: keep every boundary visible ------------------------ */
@media (forced-colors: active) {
  /* Chromium forces colours itself, but some engines only match the media
     query without recolouring. Restate system colours so the dark bands stay
     readable either way, then let the OS palette win. */
  .pg-dark, .pg-header, .pg-topbar, .pg-footer, .pg-hero,
  .pg-pagehead, .pg-drawer, .pg-course, .pg-cat, .pg-promise,
  .pg-cat:hover, .pg-split__art, .pg-tabbar {
    background: Canvas !important;
    color: CanvasText !important;
    forced-color-adjust: none;
  }
  .pg-dark h1, .pg-dark h2, .pg-dark h3,
  .pg-fog, .pg-lead, .pg-eyebrow, .pg-stat__label, .pg-cat__count,
  .pg-course__desc, .pg-course__code, .pg-course__seats, .pg-topbar__ticker,
  .pg-footer a, .pg-hero__sub, .pg-hero__tag span, .pg-promise__item span,
  .pg-logo__text, .pg-logo__text span, .pg-logo__sub, .pg-cat__name,
  .pg-hero__title, .pg-hero__title em, .pg-nav a, .pg-mnav a, .pg-tabbar a {
    color: CanvasText !important;
  }
  .pg-btn, .pg-promise__item, .pg-badge, .onsale, .pg-count, .pg-card__add {
    background: ButtonFace !important;
    color: ButtonText !important;
    border: 2px solid ButtonText !important;
  }
  a:not(.pg-btn) { color: LinkText !important; }
  .pg-hero::before, .pg-pagehead::before { display: none; }
  .pg-pagehead p, .pg-pagehead h1, .woocommerce-breadcrumb, .woocommerce-breadcrumb a,
  .pg-hero__tag, .pg-hero__tag b, .pg-hero__tag span,
  .pg-pay, .pg-pay li, .pg-social a, .pg-footer__a11y,
  .pg-topbar__links a, .pg-card__brand, .pg-widget li a,
  .pg-widget li a .count, .pg-brands a, .pg-stat__num, .pg-stat__num i {
    background: Canvas !important;
    color: CanvasText !important;
    forced-color-adjust: none;
  }
  .pg-hero__tag, .pg-pay li, .pg-social a { border: 1px solid CanvasText !important; }

  .pg-card, .pg-course, .pg-cat, .pg-widget, .pg-panel, .pg-trust,
  .pg-btn, .pg-tab, .pg-iconbtn, .quantity {
    border: 1px solid CanvasText;
  }
  .pg-badge, .onsale, .pg-count { border: 1px solid CanvasText; forced-color-adjust: none; }
  .pg-card__frame i, .pg-hero::after, .pg-split__art::after { display: none; }
  .pg-tab.is-active { border-width: 3px; }
}

/* --- 2.3.1 Three Flashes: the only looping animation is slow ----------- */
/* .pg-topbar__dot pulses at 2.4s — far below the 3Hz threshold. */

/* --- prefers-reduced-motion, restated for the drawers ------------------ */
@media (prefers-reduced-motion: reduce) {
  .pg-drawer, .pg-scrim, .pg-card, .pg-cat, .pg-course,
  .pg-card__media img, .pg-postcard__media img {
    transition: none !important;
  }
  .pg-topbar__dot { animation: none !important; }
}

/* ==========================================================================
   26. ACCESSIBILITY PREFERENCES PANEL
   A convenience layer, not a compliance layer: the page is already conformant
   without it. It only exposes preferences the browser cannot express well on
   a phone. It is NOT a third-party overlay.
   ========================================================================== */

.pg-a11y-open {
  position: fixed; inset-inline-start: 18px; bottom: 18px; z-index: 65;
  width: 54px; height: 54px; border-radius: 50%;
  background: var(--pg-ink); color: #fff; border: 2px solid #fff;
  display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,.34);
}
.pg-a11y-open:hover { background: var(--pg-red); }
.pg-a11y-open svg { width: 28px; height: 28px; }
@media (max-width: 48.75em) { .pg-a11y-open { bottom: 74px; width: 48px; height: 48px; } }

.pg-a11y {
  position: fixed; inset-block: 0; inset-inline-start: 0; z-index: 101;
  width: min(360px, 90vw); background: #fff; color: var(--pg-text);
  transform: translateX(-100%);
  visibility: hidden;
  transition: transform .3s var(--pg-ease), visibility 0s linear .3s;
  display: flex; flex-direction: column;
  box-shadow: 0 0 60px rgba(0,0,0,.45);
}
[dir="rtl"] .pg-a11y { transform: translateX(100%); }
.pg-a11y.is-open { transform: translateX(0) !important; visibility: visible; transition: transform .3s var(--pg-ease), visibility 0s; }
.pg-a11y__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px; border-bottom: 2px solid var(--pg-ink); flex: none;
}
.pg-a11y__head h2 { margin: 0; font-size: 1.05rem; }
.pg-a11y__body { overflow-y: auto; padding: 18px 20px 30px; flex: 1; }
.pg-a11y__group { margin-bottom: 22px; }
.pg-a11y__group > legend, .pg-a11y__group > h3 {
  font-size: .78rem; font-weight: 800; letter-spacing: .1em;
  margin: 0 0 10px; padding: 0; color: var(--pg-text-mute);
}
.pg-a11y__group { border: 0; padding: 0; }
.pg-a11y__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.pg-a11y__btn {
  min-height: var(--pg-target); padding: 10px 8px;
  border: 1.5px solid var(--pg-line-input); background: #fff;
  font-family: inherit; font-weight: 700; font-size: .85rem;
  cursor: pointer; border-radius: var(--pg-r);
}
.pg-a11y__btn:hover { border-color: var(--pg-ink); }
.pg-a11y__btn[aria-pressed="true"], .pg-a11y__btn[aria-checked="true"] {
  background: var(--pg-ink); border-color: var(--pg-ink); color: #fff;
}
.pg-a11y__toggle {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; min-height: var(--pg-target); padding: 10px 12px;
  border: 1.5px solid var(--pg-line-input); background: #fff;
  font-family: inherit; font-weight: 700; font-size: .9rem;
  cursor: pointer; text-align: start; margin-bottom: 6px; border-radius: var(--pg-r);
}
.pg-a11y__toggle[aria-pressed="true"] { border-color: var(--pg-ink); border-width: 2px; }
.pg-a11y__state { font-size: .78rem; font-weight: 800; color: var(--pg-text-mute); flex: none; }
.pg-a11y__toggle[aria-pressed="true"] .pg-a11y__state { color: var(--pg-red); }
.pg-a11y__note { font-size: .8rem; color: var(--pg-text-mute); line-height: 1.55; }
.pg-a11y__note a { color: var(--pg-red); text-decoration: underline; text-underline-offset: 3px; }

/* --- Preference classes, set on <html> -------------------------------- */
html.pg-pref-underline a:not(.pg-btn):not(.pg-iconbtn):not(.pg-cat):not(.pg-card__add) {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
html.pg-pref-nomotion *, html.pg-pref-nomotion *::before, html.pg-pref-nomotion *::after {
  animation-duration: .001ms !important;
  transition-duration: .001ms !important;
}
html.pg-pref-bigcursor, html.pg-pref-bigcursor * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M5 2l14 9-6 1.5L16 20l-3 1-3-7.5L5 18z' fill='%23fff' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") 4 2, auto;
}
html.pg-pref-readable body,
html.pg-pref-readable .pg-h1, html.pg-pref-readable .pg-h2, html.pg-pref-readable .pg-h3,
html.pg-pref-readable h1, html.pg-pref-readable h2, html.pg-pref-readable h3,
html.pg-pref-readable .pg-hero__title, html.pg-pref-readable .pg-card__title {
  font-family: Arial, "Arial Hebrew", sans-serif !important;
  letter-spacing: normal !important;
}
html.pg-pref-spacing body {
  line-height: 1.85 !important;
  letter-spacing: .035em;
  word-spacing: .16em;
}
html.pg-pref-spacing p { margin-bottom: 1.6em; }
html.pg-pref-contrast {
  --pg-text-mute: #33383F;
  --pg-text-dim:  #33383F;
  --pg-fog:       #F0F2F5;
  --pg-dim-dark:  #E8EAEE;
  --pg-line-light:#6E747E;
  --pg-line:      #8B929D;
  --pg-line-input:#3A3F47;
  --pg-red:       #C10000;
  --pg-smoke:     #FFFFFF;
}
html.pg-pref-contrast .pg-card,
html.pg-pref-contrast .pg-widget,
html.pg-pref-contrast .pg-panel { border-width: 2px; }

/* Font scale is applied to the root so every rem-based value follows. */
html.pg-fs-110 { font-size: 110%; }
html.pg-fs-125 { font-size: 125%; }
html.pg-fs-150 { font-size: 150%; }

/* ==========================================================================
   27. ACCESSIBILITY STATEMENT PAGE
   ========================================================================== */

.pg-statement { max-width: 74ch; }
.pg-statement h2 { font-size: clamp(1.25rem, 2.4vw, 1.65rem); margin-top: 1.8em; }
.pg-statement dl { margin: 0 0 1.4em; }
.pg-statement dt { font-weight: 800; margin-top: 1em; }
.pg-statement dd { margin: 4px 0 0; }
.pg-statement__card {
  border: 2px solid var(--pg-ink); padding: 20px 22px; margin: 26px 0;
  background: var(--pg-smoke);
}
.pg-statement__card h2 { margin-top: 0; font-size: 1.15rem; }
.pg-statement ul { padding-inline-start: 1.3em; }
.pg-statement li { margin-bottom: .55em; }

/* The card image link is presentational; it must not take focus or show a ring. */
.pg-card__imglink { display: grid; place-items: center; width: 100%; height: 100%; }
.pg-card__imglink:focus { outline: none; box-shadow: none; }

/* Submenu toggle button, injected by the menu walker. */
.pg-subtoggle {
  width: var(--pg-target); min-height: var(--pg-target);
  display: inline-grid; place-items: center;
  background: none; border: 0; cursor: pointer; color: inherit; padding: 0;
}
.pg-subtoggle__icon {
  width: 9px; height: 9px;
  border-inline-end: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px,-2px);
  transition: transform .2s var(--pg-ease);
}
.pg-subtoggle[aria-expanded="true"] .pg-subtoggle__icon { transform: rotate(-135deg) translate(-2px,-2px); }
.pg-nav .pg-subtoggle { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.pg-nav .pg-subtoggle:focus-visible { opacity: 1; pointer-events: auto; position: static; }
.pg-mnav li { position: relative; }
.pg-mnav .pg-subtoggle { position: absolute; inset-inline-end: 8px; top: 4px; color: var(--pg-fog); }
.pg-mnav .pg-subtoggle:hover { color: var(--pg-red-hot); }
.pg-mnav li > ul { display: none; }
.pg-mnav li.is-open > ul { display: block; }
.pg-nav li.is-open > ul { opacity: 1; visibility: visible; transform: translateY(0); }

/* Accessibility statement link in the footer bar. */
.pg-footer__a11y {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; min-height: var(--pg-target);
  border-bottom: 2px solid transparent;
}
.pg-footer__a11y:hover { color: #fff; border-bottom-color: var(--pg-red); }
.pg-footer__a11y svg { width: 17px; height: 17px; }


/* Floating utilities live in their own landmark, otherwise they are content
   outside every region. WCAG 1.3.1 / best practice "region". */
.pg-floats { position: static; }

/* Social and payment lists are real lists now. */
.pg-social, .pg-pay { list-style: none; padding: 0; }
.pg-social li, .pg-pay li { display: block; }
.pg-pay li {
  border: 1px solid var(--pg-line); padding: 5px 10px;
  font-family: var(--pg-font-data); font-size: .66rem;
  letter-spacing: .06em; color: var(--pg-fog);
}
.pg-foot-h {
  color: #fff; font-size: .82rem; font-weight: 800; letter-spacing: .12em;
  margin: 0 0 18px; text-transform: uppercase;
}

/* Brand red is 3.94:1 on ink — under the 4.5:1 floor. Any red *text* sitting
   on a dark band switches to the brighter red, which measures 5.22:1. */
.pg-dark .pg-sec-head__link,
.pg-dark a:not(.pg-btn),
.pg-hero .pg-sec-head__link,
.pg-pagehead a:not(.pg-btn) { color: var(--pg-red-hot); }
.pg-dark .pg-sec-head__link:hover { border-color: var(--pg-red-hot); }


/* --- Text scaling from the accessibility panel (1.4.4 Resize Text) -----
   A CSS media query in em is measured against the browser's default font
   size, not against html{font-size}. So raising the text size through the
   panel would otherwise leave the desktop nav at its full width and push
   the page sideways. These rules collapse the same chrome the narrow
   breakpoints collapse. */
.pg-fs-125 .pg-nav,
.pg-fs-150 .pg-nav,
.pg-fs-125 .pg-search:not(.pg-search--drawer),
.pg-fs-150 .pg-search:not(.pg-search--drawer) { display: none; }

.pg-fs-125 .pg-burger,
.pg-fs-150 .pg-burger { display: grid; }

.pg-fs-150 .pg-cats,
.pg-fs-150 .pg-products,
.pg-fs-150 .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); }

.pg-fs-150 .pg-hero__in,
.pg-fs-150 .pg-split,
.pg-fs-150 .pg-shop { grid-template-columns: 1fr; }

.pg-fs-125 .pg-topbar__links,
.pg-fs-150 .pg-topbar__links { display: none; }
