/* ============================================================
   PROBITY & ETHICS — BULK BUY SELECTOR
   Classes prefixed .pe- and scoped to #pe-bulkbuy so nothing can
   collide with Betheme / WPBakery styles.
   ============================================================ */
#pe-bulkbuy{
  --pe-blue-900:#12296B; --pe-blue-800:#1B44A5; --pe-blue-600:#2563D9;
  --pe-blue:#1E5FD0; --pe-blue-dark:#164AA8; --pe-blue-soft:#EAF1FC; --pe-blue-line:#C7D8F2;
  --pe-ink:#0F1B33; --pe-ink-2:#54637C; --pe-ink-3:#8895A9;
  --pe-paper:#F5F8FC; --pe-surface:#FFFFFF; --pe-rule:#DDE5F1; --pe-rule-2:#EDF1F8;
  --pe-save:#0F7B5A;
  --pe-warn:#B4472B;
  --pe-font-display:"Playfair Display",Georgia,serif;
  --pe-font-body:"Mulish",system-ui,-apple-system,sans-serif;
  --pe-r:10px; --pe-shadow:0 1px 2px rgba(15,27,51,.05),0 8px 26px rgba(15,27,51,.07);
  --pe-rail-w:340px;
  --pe-header-h:0px;
  /* Breakpoints below query THIS element's width, not the viewport. The page
     was previously breaking because a theme rendered it into a ~500px column
     while the viewport stayed wide, so no media query ever fired. */
  container-type:inline-size;
  container-name:pebulk;
  background:var(--pe-paper); color:var(--pe-ink);
  font-family:var(--pe-font-body); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
#pe-bulkbuy *,#pe-bulkbuy *::before,#pe-bulkbuy *::after{box-sizing:border-box}
#pe-bulkbuy h1,#pe-bulkbuy h2,#pe-bulkbuy h3{margin:0;font-family:var(--pe-font-display);font-weight:500;letter-spacing:-.01em;line-height:1.18}
#pe-bulkbuy p{margin:0}
#pe-bulkbuy ul,#pe-bulkbuy ol{list-style:none;margin:0;padding:0}
#pe-bulkbuy button{font:inherit;color:inherit;margin:0;-webkit-appearance:none;appearance:none;background:none;border:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#pe-bulkbuy :focus-visible{outline:2px solid var(--pe-blue);outline-offset:3px;border-radius:4px}
#pe-bulkbuy .pe-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
#pe-bulkbuy .pe-form{margin:0;padding:0;border:0}

/* progress rail */
#pe-bulkbuy .pe-progress{position:sticky;top:var(--pe-header-h);z-index:60;background:var(--pe-surface);border-bottom:1px solid var(--pe-rule)}
#pe-bulkbuy .pe-progress__bar{height:3px;background:var(--pe-rule-2)}
#pe-bulkbuy .pe-progress__fill{height:100%;width:0;background:var(--pe-blue);transition:width .35s cubic-bezier(.4,0,.2,1)}
#pe-bulkbuy .pe-progress__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;max-width:1180px;margin:0 auto;font-size:13.5px}
#pe-bulkbuy .pe-progress__label{color:var(--pe-ink-2)}
#pe-bulkbuy .pe-progress__label b{color:var(--pe-ink);font-weight:700}
#pe-bulkbuy .pe-progress__total{font-weight:700;font-size:15px}

/* hero */
#pe-bulkbuy .pe-hero{background:linear-gradient(105deg,var(--pe-blue-900) 0%,var(--pe-blue-800) 55%,var(--pe-blue-600) 100%);color:#fff;padding:60px 0 54px}
#pe-bulkbuy .pe-eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#A9C4F2;margin-bottom:20px}
#pe-bulkbuy .pe-hero h1{font-size:clamp(1.95rem,4.6vw,3.35rem);max-width:15ch;color:#fff}
#pe-bulkbuy .pe-hero h1 em{font-style:italic;font-weight:400}
#pe-bulkbuy .pe-hero__lede{margin-top:20px;max-width:56ch;color:#D3E1F8;font-size:17px}
#pe-bulkbuy .pe-pricebox{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:32px}
#pe-bulkbuy .pe-pricebox__now{font-family:var(--pe-font-display);font-size:2.7rem;line-height:1;color:#fff}
#pe-bulkbuy .pe-pricebox__note{font-size:14.5px;color:#C2D5F4}
#pe-bulkbuy .pe-pricebox__was{color:#8FAEE0;text-decoration:line-through;margin-left:6px}
#pe-bulkbuy .pe-assure{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}
#pe-bulkbuy .pe-assure li{font-size:13px;color:#E2EBFA;border:1px solid rgba(255,255,255,.28);border-radius:100px;padding:6px 15px;background:rgba(255,255,255,.08)}

/* layout */
/* Single column by default. The two-column layout is opt-in, granted only once
   the container can actually hold the rail plus a readable content column. */
#pe-bulkbuy .pe-layout{display:grid;grid-template-columns:1fr;gap:0;align-items:start;padding:48px 0 40px}
#pe-bulkbuy .pe-step{scroll-margin-top:80px}
#pe-bulkbuy .pe-step + .pe-step{margin-top:56px}
#pe-bulkbuy .pe-step__head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
#pe-bulkbuy .pe-step__num{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--pe-blue)}
#pe-bulkbuy .pe-step h2{font-size:1.75rem}
#pe-bulkbuy .pe-h2note{font-family:var(--pe-font-body);font-size:.95rem;font-weight:400;color:var(--pe-ink-2);letter-spacing:0}
#pe-bulkbuy .pe-optional{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pe-ink-2);border:1px solid var(--pe-rule);border-radius:100px;padding:3px 10px;background:var(--pe-surface)}

/* course cards — the <button> is display:block, NOT flex. iOS Safari does
   not reliably render buttons as flex containers. */
/* auto-fit + minmax, never repeat(2,1fr): a fixed column count in a narrow
   container produces 30px-wide cards and one letter per line. */
#pe-bulkbuy .pe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px;margin:26px 0 0}
#pe-bulkbuy .pe-card{position:relative;display:block;width:100%;text-align:left;background:var(--pe-surface);border:1px solid var(--pe-rule);border-radius:var(--pe-r);padding:17px 17px 15px;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
#pe-bulkbuy .pe-card__inner{display:block}
#pe-bulkbuy .pe-card:hover{border-color:var(--pe-blue-line);box-shadow:var(--pe-shadow)}
#pe-bulkbuy .pe-card[aria-pressed="true"]{border-color:var(--pe-blue);background:var(--pe-blue-soft);box-shadow:inset 0 0 0 1px var(--pe-blue)}
#pe-bulkbuy .pe-card.pe-is-locked{opacity:.42;cursor:not-allowed}
#pe-bulkbuy .pe-card.pe-is-locked:hover{border-color:var(--pe-rule);box-shadow:none}
#pe-bulkbuy .pe-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
#pe-bulkbuy .pe-card__title{font-size:15px;font-weight:600;line-height:1.35;min-width:0;overflow-wrap:break-word;word-break:normal;hyphens:none}
#pe-bulkbuy .pe-card__tick{flex:0 0 auto;width:21px;height:21px;border-radius:50%;border:1.5px solid var(--pe-rule);display:block;position:relative;transition:background .15s,border-color .15s}
#pe-bulkbuy .pe-card[aria-pressed="true"] .pe-card__tick{background:var(--pe-blue);border-color:var(--pe-blue)}
#pe-bulkbuy .pe-card__tick svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:11px;height:11px;stroke:#fff;stroke-width:2.5;fill:none;opacity:0;transition:opacity .15s}
#pe-bulkbuy .pe-card[aria-pressed="true"] .pe-card__tick svg{opacity:1}
#pe-bulkbuy .pe-card__meta{display:block;margin-top:9px;font-size:12.5px;color:var(--pe-ink-3)}
#pe-bulkbuy .pe-card__meta .woocommerce-Price-amount{color:inherit;font-size:inherit}

/* face-to-face */
#pe-bulkbuy .pe-shops{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px;margin:26px 0 0}
#pe-bulkbuy .pe-shop{background:var(--pe-surface);border:1px solid var(--pe-rule);border-radius:var(--pe-r);padding:19px;transition:border-color .15s,background .15s}
#pe-bulkbuy .pe-shop.pe-is-on{border-color:var(--pe-blue);background:var(--pe-blue-soft)}
#pe-bulkbuy .pe-shop h3{font-size:16px;font-family:var(--pe-font-body);font-weight:700;line-height:1.35}
#pe-bulkbuy .pe-shop__when{font-size:13.5px;color:var(--pe-ink-2);margin-top:9px}
#pe-bulkbuy .pe-shop__none{font-size:13.5px;color:var(--pe-ink-3);margin-top:12px}
#pe-bulkbuy .pe-shop__dates{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
#pe-bulkbuy .pe-date{border:1px solid var(--pe-rule);border-radius:6px;padding:8px 13px;font-size:13px;font-weight:600;cursor:pointer;color:var(--pe-ink-2);transition:border-color .15s,background .15s,color .15s}
#pe-bulkbuy .pe-date:hover{border-color:var(--pe-blue-line);color:var(--pe-ink)}
#pe-bulkbuy .pe-date[aria-pressed="true"]{background:var(--pe-blue);border-color:var(--pe-blue);color:#fff}
#pe-bulkbuy .pe-date__left{display:block;font-size:11px;font-weight:600;color:var(--pe-warn);margin-top:2px}
#pe-bulkbuy .pe-date[aria-pressed="true"] .pe-date__left{color:#FFD9CF}
#pe-bulkbuy .pe-skip{margin-top:16px;padding:8px 0;font-size:13.5px;color:var(--pe-ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
#pe-bulkbuy .pe-skip:hover{color:var(--pe-ink)}

/* rail / tray */
#pe-bulkbuy .pe-rail{position:static;margin-top:48px}
#pe-bulkbuy .pe-tray{background:var(--pe-surface);border:1px solid var(--pe-rule);border-radius:var(--pe-r);box-shadow:var(--pe-shadow);overflow:hidden}
#pe-bulkbuy .pe-tray__head{padding:16px 18px 13px;border-bottom:1px solid var(--pe-rule-2)}
#pe-bulkbuy .pe-tray__title{font-family:var(--pe-font-display);font-size:1.15rem}
#pe-bulkbuy .pe-tray__count{font-size:13px;color:var(--pe-ink-2);margin-top:3px}
#pe-bulkbuy .pe-tray__count.pe-is-full{color:var(--pe-blue);font-weight:600}
#pe-bulkbuy .pe-slots{padding:8px 8px 6px}
#pe-bulkbuy .pe-slots + .pe-slots{padding-top:0;border-top:1px solid var(--pe-rule-2);margin-top:4px}
#pe-bulkbuy .pe-slot{display:flex;align-items:center;gap:11px;padding:6px 10px;border-radius:6px;font-size:13px;min-height:33px}
#pe-bulkbuy .pe-slot__n{font-size:11.5px;font-weight:700;color:var(--pe-ink-3);flex:0 0 18px;font-variant-numeric:tabular-nums}
#pe-bulkbuy .pe-slot__name{flex:1;line-height:1.3;min-width:0;overflow-wrap:break-word;word-break:normal}
#pe-bulkbuy .pe-slot--empty .pe-slot__name{height:1px;background:repeating-linear-gradient(90deg,var(--pe-rule) 0 5px,transparent 5px 10px)}
#pe-bulkbuy .pe-slot--filled{background:var(--pe-blue-soft)}
#pe-bulkbuy .pe-slot--filled .pe-slot__n{color:var(--pe-blue)}
#pe-bulkbuy .pe-slot__x{padding:4px 6px;cursor:pointer;color:var(--pe-ink-3);font-size:15px;line-height:1;flex:0 0 auto}
#pe-bulkbuy .pe-slot__x:hover{color:var(--pe-ink)}
#pe-bulkbuy .pe-tray__lines{border-top:1px solid var(--pe-rule-2);padding:14px 18px;font-size:13.5px}
#pe-bulkbuy .pe-line{display:flex;justify-content:space-between;gap:12px;color:var(--pe-ink-2)}
#pe-bulkbuy .pe-line + .pe-line{margin-top:8px}
#pe-bulkbuy .pe-line span:last-child{color:var(--pe-ink);font-weight:600}
#pe-bulkbuy .pe-line--muted span:last-child{color:var(--pe-ink-3);font-weight:400}
#pe-bulkbuy .pe-line--save{color:var(--pe-save)}
#pe-bulkbuy .pe-line--save span:last-child{color:var(--pe-save);font-weight:700}
#pe-bulkbuy .pe-line--save[hidden]{display:none}
#pe-bulkbuy .pe-line--total{border-top:1px solid var(--pe-rule-2);margin-top:13px;padding-top:13px;font-size:16px;color:var(--pe-ink);font-weight:600}
#pe-bulkbuy .pe-line--total span:last-child{font-family:var(--pe-font-display);font-size:1.55rem;font-weight:500}
#pe-bulkbuy .pe-tray__foot{padding:0 18px 18px}
#pe-bulkbuy .pe-cta{display:block;width:100%;background:var(--pe-blue);color:#fff;border-radius:8px;padding:14px;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s}
#pe-bulkbuy .pe-cta:hover:not(:disabled){background:var(--pe-blue-dark)}
#pe-bulkbuy .pe-cta:disabled{background:#D5DCE8;color:#8B97A8;cursor:not-allowed}
#pe-bulkbuy .pe-tray__hint{font-size:12px;color:var(--pe-ink-3);text-align:center;margin-top:10px;line-height:1.4}

/* mobile action bar — only shown once JS confirms it works */
#pe-bulkbuy .pe-mobilebar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--pe-surface);border-top:1px solid var(--pe-rule);padding:11px 18px calc(11px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:14px;box-shadow:0 -6px 20px rgba(15,27,51,.09)}
#pe-bulkbuy .pe-mobilebar__meta{font-size:12.5px;color:var(--pe-ink-2)}
#pe-bulkbuy .pe-mobilebar__total{font-family:var(--pe-font-display);font-size:1.35rem;display:block;color:var(--pe-ink)}
#pe-bulkbuy .pe-mobilebar .pe-cta{width:auto;padding:12px 20px;white-space:nowrap}

/* Interactive chrome is hidden until JS runs, so a no-JS visitor sees a
   clean readable list instead of dead controls. */
#pe-bulkbuy .pe-jsonly{display:none}
#pe-bulkbuy.pe-live .pe-jsonly{display:block}
#pe-bulkbuy .pe-nojs{margin:26px 0 0;padding:15px 17px;border-radius:var(--pe-r);background:#FFF6E5;border:1px solid #F0DCB0;color:#6B5320;font-size:14.5px}
#pe-bulkbuy.pe-live .pe-nojs{display:none}

/* The theme's product wrapper. Our template part removes the gallery and the
   summary column, but a theme can still constrain or pad div.product, so
   neutralise it for bundle pages only. */
.pecb-bundle-page div.product.pecb-product{max-width:none;width:auto;margin:0;padding:0;display:block;float:none}
.pecb-bundle-page div.product.pecb-product::before,
.pecb-bundle-page div.product.pecb-product::after{display:none}
.pecb-bundle-page div.product.pecb-product > .woocommerce-product-gallery,
.pecb-bundle-page div.product.pecb-product > .summary,
.pecb-bundle-page div.product.pecb-product > .entry-summary{display:none}

/* WooCommerce notices dropped inside our wrapper */
#pe-bulkbuy .woocommerce-error,#pe-bulkbuy .woocommerce-message,#pe-bulkbuy .woocommerce-info{max-width:1180px;margin:24px auto 0;padding:0 24px}

/* ---- Narrow container: the mobile bar takes over from the sticky rail ---- */
#pe-bulkbuy.pe-live .pe-mobilebar{display:flex}
#pe-bulkbuy.pe-live{padding-bottom:84px}

@container pebulk (max-width:620px){
  #pe-bulkbuy .pe-wrap{padding:0 18px}
  #pe-bulkbuy .pe-hero{padding:40px 0 36px}
  #pe-bulkbuy .pe-hero h1{max-width:none}
  #pe-bulkbuy .pe-pricebox__now{font-size:2.2rem}
  #pe-bulkbuy .pe-h2note{display:block;margin-top:4px}
  #pe-bulkbuy .pe-progress__total{display:none}
  #pe-bulkbuy .pe-progress__inner{padding:9px 20px}
}

/* ---- Wide container: earn the two-column layout and the sticky rail ---- */
@container pebulk (min-width:1021px){
  #pe-bulkbuy .pe-layout{grid-template-columns:minmax(0,1fr) var(--pe-rail-w);gap:48px;padding:48px 0 96px}
  #pe-bulkbuy .pe-rail{position:sticky;top:calc(var(--pe-header-h) + 76px);margin-top:0}
  #pe-bulkbuy.pe-live .pe-mobilebar{display:none}
  #pe-bulkbuy.pe-live{padding-bottom:0}
}

/* Fallback for browsers without container queries: fall back to the viewport,
   which is right often enough and never worse than a crushed layout. */
@supports not (container-type:inline-size){
  @media (min-width:1021px){
    #pe-bulkbuy .pe-layout{grid-template-columns:minmax(0,1fr) var(--pe-rail-w);gap:48px;padding:48px 0 96px}
    #pe-bulkbuy .pe-rail{position:sticky;top:calc(var(--pe-header-h) + 76px);margin-top:0}
    #pe-bulkbuy.pe-live .pe-mobilebar{display:none}
    #pe-bulkbuy.pe-live{padding-bottom:0}
  }
  @media (max-width:620px){
    #pe-bulkbuy .pe-wrap{padding:0 18px}
    #pe-bulkbuy .pe-hero{padding:40px 0 36px}
    #pe-bulkbuy .pe-pricebox__now{font-size:2.2rem}
    #pe-bulkbuy .pe-h2note{display:block;margin-top:4px}
    #pe-bulkbuy .pe-progress__total{display:none}
  }
}
@media (prefers-reduced-motion:reduce){#pe-bulkbuy *{transition:none !important;animation:none !important}}

/* cart / checkout / order screens */
.pecb-item-list{margin:4px 0 0;padding:0 0 0 16px;list-style:disc}
.pecb-item-list li{margin:0;font-size:.92em;line-height:1.5}
