/*
Theme Name: Axiom Brazilian Jiu-Jitsu
Theme URI: https://axiombjj.com
Author: Axiom BJJ
Description: Custom WordPress theme for Axiom Brazilian Jiu-Jitsu (Chillicothe, MO) - "Kinetic" dark design. Proud Pedigo Submission Fighting affiliate. WooCommerce-ready.
Version: 1.1.5
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: axiom-bjj
*/

  :root{
    --bg:#0B0B0C; --surface:#121214; --surface2:#191a1d; --panel:#F2EFE7;
    --ink:#F2F0EA; --muted:#9A9892; --faint:#6E6C67;
    --accent:#C8302F; --accent-hi:#E0413F;
    --line:rgba(242,240,234,.10); --line-2:rgba(242,240,234,.17);
    --pad:clamp(20px,5vw,64px); --maxw:1480px;
    --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }
  *,*::before,*::after{ box-sizing:border-box }
  html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
  @media(prefers-reduced-motion:reduce){ html{ scroll-behavior:auto } }
  body{ margin:0; background:var(--bg); color:var(--ink);
    font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    line-height:1.55; -webkit-font-smoothing:antialiased }
  img{ max-width:100%; display:block }
  a{ color:inherit; text-decoration:none }
  :focus-visible{ outline:3px solid var(--accent); outline-offset:3px }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad) }
  .grain{ position:relative }
  .grain::after{ content:""; position:absolute; inset:0; background-image:var(--grain);
    background-size:160px; opacity:.05; pointer-events:none; mix-blend-mode:overlay; z-index:0 }
  .grain > *{ position:relative; z-index:1 }

  .eyebrow{ display:inline-flex; align-items:center; gap:11px; font-size:12px; font-weight:800;
    letter-spacing:.22em; text-transform:uppercase; color:var(--accent) }
  .eyebrow::before{ content:""; width:30px; height:2px; background:var(--accent) }
  .display{ font-weight:900; letter-spacing:-.02em; text-transform:uppercase; line-height:.95 }

  .btn{ display:inline-flex; align-items:center; gap:9px; font-weight:800; font-size:13.5px; letter-spacing:.09em;
    text-transform:uppercase; padding:15px 26px; transition:background .16s,border-color .16s,color .16s,gap .16s }
  .btn .ar{ transition:transform .16s } .btn:hover .ar{ transform:translateX(4px) }
  .btn-solid{ background:var(--accent); color:#fff } .btn-solid:hover{ background:var(--accent-hi) }
  .btn-ghost{ border:1px solid var(--line-2); color:var(--ink) } .btn-ghost:hover{ border-color:var(--ink) }
  .btn-light{ background:var(--ink); color:var(--bg) } .btn-light:hover{ background:#fff }

  /* utility bar */
  .util{ border-bottom:1px solid var(--line); font-size:12px; color:var(--muted); background:#0a0a0b }
  .util .wrap{ display:flex; align-items:center; gap:18px; height:40px }
  .util .aff b{ color:var(--accent); font-weight:800 }
  .util .right{ margin-left:auto; display:flex; gap:18px } .util a:hover{ color:var(--ink) }
  @media(max-width:720px){ .util .right span{ display:none } }

  /* header */
  header.site{ position:sticky; top:0; z-index:40; background:rgba(11,11,12,.84);
    backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--line) }
  header.site .wrap{ display:flex; align-items:center; gap:28px; height:78px }
  .topbar{ height:3px; background:var(--accent) }
  .brand{ display:flex; align-items:center; gap:13px; text-decoration:none }
  .brand .mark{ height:50px; width:auto; display:block }
  .brand .wordmark{ font-weight:900; letter-spacing:.16em; font-size:25px; color:var(--ink); text-transform:uppercase; line-height:1 }
  header.site nav{ display:flex; gap:28px; margin-left:auto; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted) }
  header.site nav a{ position:relative; padding:8px 0 }
  header.site nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--accent); transition:right .22s }
  header.site nav a:hover::after,header.site nav a.on::after{ right:0 }
  header.site nav a:hover,header.site nav a.on{ color:var(--ink) }
  header.site nav .has-sub{ position:relative; display:inline-flex; align-items:center }
  header.site nav .chev{ font-size:8px; margin-left:6px }
  header.site nav .submenu{ position:absolute; top:100%; left:-14px; min-width:172px; background:#121214; border:1px solid var(--line-2); padding:6px 0; display:none; z-index:60 }
  header.site nav .has-sub:hover .submenu, header.site nav .has-sub:focus-within .submenu{ display:block }
  header.site nav .submenu a{ display:block; padding:11px 18px; font-size:11.5px; letter-spacing:.12em }
  header.site nav .submenu a::after{ content:none }
  header.site nav .submenu a:hover{ color:var(--ink); background:rgba(242,240,234,.05) }
  .menu-btn{ display:none; margin-left:auto; background:none; border:1px solid var(--line-2); color:var(--ink);
    font:inherit; font-weight:800; font-size:12px; letter-spacing:.1em; text-transform:uppercase; padding:11px 14px }
  @media(max-width:980px){ header.site nav{ display:none } header.site .hcta{ display:none } .menu-btn{ display:inline-block } }

  /* hero */
  .hero{ position:relative; isolation:isolate; overflow:hidden; border-bottom:1px solid var(--line) }
  .hero-media{ position:absolute; inset:-16px; z-index:-2; filter:blur(2px) brightness(.92);
    background:url('https://axiombjj.com/wp-content/uploads/2023/01/circle_pic.jpg') center 28%/cover no-repeat }
  .hero::before{ content:""; position:absolute; inset:0; z-index:-1; background:
    linear-gradient(100deg, rgba(8,8,9,.96) 22%, rgba(8,8,9,.72) 58%, rgba(8,8,9,.48) 100%),
    radial-gradient(110% 90% at 88% 45%, rgba(200,48,47,.28), transparent 58%) }
  .hero .wrap{ padding-block:clamp(72px,12vw,156px) }
  .hero .col{ max-width:780px }
  .hero h1{ margin:22px 0 0; font-size:clamp(48px,8.4vw,112px) }
  .hero h1 .red{ color:var(--accent) }
  .hero p.sub{ margin:24px 0 0; max-width:46ch; color:#d9d6cf; font-size:clamp(16px,1.5vw,19px) }
  .meta-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px }
  .chip{ font-size:12px; letter-spacing:.06em; color:#cfccc4; border:1px solid rgba(242,240,234,.22);
    padding:7px 12px; backdrop-filter:blur(2px) }
  .hero .actions{ display:flex; flex-wrap:wrap; gap:13px; margin-top:34px }
  .hero .psf-lockup{ display:inline-flex; align-items:center; gap:10px; margin-top:38px;
    padding-top:22px; border-top:1px solid rgba(242,240,234,.16); color:#cfccc4; font-size:13px }
  .hero .psf-lockup b{ color:var(--ink); font-weight:800 } .hero .psf-lockup .star{ color:var(--accent); font-size:15px }

  /* generic band */
  .band{ padding-block:clamp(60px,9vw,118px); border-bottom:1px solid var(--line) }
  .band .head{ max-width:740px; margin-bottom:clamp(34px,5vw,56px) }
  .band .head h2{ margin:16px 0 0; font-size:clamp(30px,4.4vw,54px) }
  .band .head p{ margin:14px 0 0; color:var(--muted); font-size:17px }

  /* programs — header bar + numbered tiles */
  .programs{ position:relative }
  .programs::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.55; background-image:
    repeating-linear-gradient(0deg, rgba(242,240,234,.02) 0 1px, transparent 1px 7px),
    repeating-linear-gradient(90deg, rgba(242,240,234,.014) 0 1px, transparent 1px 7px),
    linear-gradient(rgba(242,240,234,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(242,240,234,.045) 1px, transparent 1px);
    background-size:7px 7px, 7px 7px, 150px 150px, 150px 150px }
  .programs.grain::after{ opacity:.09 }
  .programs > .wrap{ position:relative }
  .programs .prog-top{ display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:clamp(28px,4vw,40px) }
  .programs .prog-top h2{ margin:12px 0 0; font-size:clamp(28px,4.4vw,50px) }
  .programs .prog-top p{ margin:0; color:var(--muted); font-size:15px; max-width:34ch; text-align:right }
  .grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line) }
  .prog{ position:relative; background:var(--bg); padding:26px 26px 24px; display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:background .2s }
  .prog:hover{ background:var(--surface) }
  .prog::before{ content:""; position:absolute; left:0; top:0; width:0; height:3px; background:var(--accent); transition:width .22s }
  .prog:hover::before{ width:100% }
  .prog .no{ display:block; font-size:13px; font-weight:900; color:var(--faint); letter-spacing:.1em }
  .prog .k{ display:block; margin-top:8px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-weight:800 }
  .prog h3{ margin:10px 0 0; font-size:clamp(19px,2.2vw,25px); font-weight:900; letter-spacing:-.01em; text-transform:uppercase }
  .prog p{ margin:8px 0 16px; color:var(--muted); font-size:14px }
  .prog .go{ font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink); font-weight:800 }
  .prog .go .ar{ color:var(--accent); transition:margin-left .15s } .prog:hover .go .ar{ margin-left:6px }
  @media(max-width:820px){ .programs .prog-top{ flex-direction:column; align-items:flex-start } .programs .prog-top p{ text-align:left } .grid3{ grid-template-columns:1fr } }

  /* creed band — full-bleed real photo + overlay */
  .creed{ position:relative; isolation:isolate; border-bottom:1px solid var(--line) }
  .creed-media{ position:absolute; inset:0; z-index:-2;
    background:url('https://axiombjj.com/wp-content/uploads/2023/01/circle_thre.jpg') center 35%/cover no-repeat }
  .creed-media::after{ content:""; position:absolute; inset:0; background:
    linear-gradient(rgba(8,8,9,.78), rgba(8,8,9,.86)),
    radial-gradient(80% 120% at 50% 0%, rgba(200,48,47,.22), transparent 60%) }
  .creed .wrap{ padding-block:clamp(64px,10vw,132px) }
  .creed-cols{ margin-top:16px; display:grid; grid-template-columns:1.25fr .9fr; gap:clamp(28px,5vw,64px); align-items:center }
  .creed h2{ margin:0; font-weight:900; text-transform:uppercase; letter-spacing:-.02em; line-height:1.0; font-size:clamp(32px,5.4vw,70px) }
  .creed h2 .red{ color:var(--accent) }
  .creed .sub{ margin:0; max-width:40ch; font-size:16.5px; color:#cfccc4; padding-top:18px; border-top:2px solid var(--accent) }
  @media(max-width:760px){ .creed-cols{ grid-template-columns:1fr } }

  /* coach — credentials + stat strip */
  .coach{ background:var(--surface) }
  .coach .wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,64px); align-items:center }
  .coach .photo{ position:relative; aspect-ratio:4/5; border:1px solid var(--line-2); overflow:hidden;
    background:#000 url('https://axiombjj.com/wp-content/uploads/2023/03/121301796_10157597945226709_280192367293730581_n.jpg') center top/cover no-repeat }
  .coach .photo::after{ content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, transparent 55%, rgba(8,8,9,.6)) }
  .coach .photo .badge{ position:absolute; left:16px; bottom:16px; z-index:2; font-size:11px; letter-spacing:.16em;
    text-transform:uppercase; color:#fff; background:var(--accent); padding:7px 11px; font-weight:800 }
  .coach h2{ margin:14px 0 0; font-size:clamp(28px,3.6vw,46px); font-weight:900; letter-spacing:-.01em; text-transform:uppercase }
  .coach .rule{ width:54px; height:3px; background:var(--accent); margin:18px 0 0 }
  .coach .bio{ margin:18px 0 0; color:var(--muted); font-size:15.5px; max-width:52ch }
  .coach .bio .oss{ color:var(--ink); font-weight:800; letter-spacing:.08em }
  .coach .stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-2); border:1px solid var(--line-2); margin-top:26px }
  .coach .stats .s{ background:var(--surface); padding:16px 16px }
  .coach .stats .s b{ display:block; font-size:19px; font-weight:900; color:var(--ink); text-transform:uppercase; letter-spacing:-.01em }
  .coach .stats .s span{ display:block; margin-top:4px; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted) }
  .coach .psf{ height:30px; width:auto; margin-top:22px; opacity:.92 }
  @media(max-width:820px){ .coach .wrap{ grid-template-columns:1fr } .coach .photo{ aspect-ratio:16/11 } }

  /* heritage — two column: Daisy Fresh panel + story + history button */
  .heritage{ position:relative; background:var(--bg) }
  .heritage::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.5; background-image:
    repeating-linear-gradient(135deg, rgba(200,48,47,.06) 0 1px, transparent 1px 22px) }
  .heritage .wrap{ position:relative; display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(30px,5vw,72px); align-items:center }
  .df-panel{ position:relative; border:1px solid var(--line-2); aspect-ratio:4/3; overflow:hidden; background:#0a0a0b }
  .df-panel img{ width:100%; height:100%; object-fit:cover; object-position:center }
  .df-panel::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(8,8,9,.10), rgba(8,8,9,.55)) }
  .df-panel .stamp{ position:absolute; left:0; bottom:0; background:var(--accent); color:#fff; font-size:11px;
    letter-spacing:.16em; text-transform:uppercase; font-weight:800; padding:8px 14px }
  .heritage h2{ margin:16px 0 0; font-size:clamp(32px,4.6vw,60px) }
  .heritage .intro{ margin:18px 0 0; color:var(--muted); font-size:16.5px; max-width:54ch }
  .heritage .intro b{ color:var(--ink); font-weight:700 }
  .heritage .acts{ display:flex; flex-wrap:wrap; gap:13px; margin-top:30px }
  @media(max-width:860px){ .heritage .wrap{ grid-template-columns:1fr } .df-panel{ aspect-ratio:4/3; order:-1 } }

  /* CTA — crimson, grain, angled top */
  .cta{ position:relative; overflow:hidden; background:var(--bg); color:var(--ink); text-align:center }
  .cta::before{ content:""; position:absolute; inset:0; z-index:0; background:url('assets/images/red-texture.webp') center/cover no-repeat; opacity:.18; pointer-events:none }
  .cta::after{ content:""; position:absolute; left:0; right:0; top:0; height:6px; background:var(--accent); z-index:2 }
  .cta .wrap{ position:relative; z-index:1; max-width:820px; margin:0 auto; padding-block:clamp(64px,8vw,104px) }
  .cta .lock{ display:flex; align-items:center; justify-content:center; gap:26px; margin-bottom:30px }
  .cta .lock .ax{ height:56px; width:auto } .cta .lock .dv{ width:1px; height:48px; background:rgba(242,240,234,.28) } .cta .lock .psf{ height:30px; width:auto }
  .cta h2{ margin:0; font-weight:900; letter-spacing:-.012em; text-transform:uppercase; line-height:.96; font-size:clamp(34px,5vw,66px) }
  .cta h2 .red{ color:var(--accent) }
  .cta .btn{ margin-top:30px }

  /* footer */
  footer.site{ position:relative; overflow:hidden; background:#0a0a0b; color:var(--muted); font-size:14px }
  footer.site .psf-foot{ display:block; width:min(100%,210px); height:auto; margin:22px 0 18px }
  footer.site .wrap{ position:relative; z-index:1 }
  footer.site .top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:36px; padding-block:clamp(48px,6vw,80px); border-bottom:1px solid var(--line) }
  footer.site .brand{ color:var(--ink); margin-bottom:14px }
  footer.site .brand .mark{ height:36px } footer.site .brand .wordmark{ font-size:19px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; color:var(--ink) }
  footer.site .tag{ max-width:32ch }
  footer.site h4{ color:var(--ink); font-size:12px; letter-spacing:.16em; text-transform:uppercase; margin:0 0 14px; font-weight:800 }
  footer.site ul{ list-style:none; margin:0; padding:0; display:grid; gap:9px } footer.site a:hover{ color:var(--ink) }
  footer.site .aff{ margin-top:16px; color:var(--ink) } footer.site .aff b{ color:var(--accent); font-weight:800 }
  footer.site .bottom{ display:flex; flex-wrap:wrap; gap:14px; padding-block:22px; font-size:12.5px; color:var(--faint) }
  footer.site .bottom .right{ margin-left:auto; display:flex; gap:18px }
  @media(max-width:820px){ footer.site .top{ grid-template-columns:1fr 1fr } }
  @media(max-width:520px){ footer.site .top{ grid-template-columns:1fr } }


  /* ===================== HERITAGE PAGE ===================== */
  /* page hero */
  .phero{ position:relative; isolation:isolate; overflow:hidden; border-bottom:1px solid var(--line) }
  .phero-media{ position:absolute; inset:-16px; z-index:-2; filter:blur(2px) brightness(.92); background:url('https://axiombjj.com/wp-content/uploads/2023/01/AboutIMG.png') center 28%/cover no-repeat }
  .phero::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg, rgba(8,8,9,.95) 25%, rgba(8,8,9,.7) 70%, rgba(8,8,9,.48)), radial-gradient(100% 90% at 85% 40%, rgba(200,48,47,.26), transparent 58%) }
  .phero .wrap{ padding-block:clamp(64px,10vw,128px) }
  .phero h1{ margin:18px 0 0; max-width:20ch; font-size:clamp(40px,6.6vw,86px); line-height:.96 } .phero h1 .red{ color:var(--accent) }
  .phero p{ margin:26px 0 0; max-width:52ch; color:#d9d6cf; font-size:clamp(16px,1.55vw,19px); padding-top:20px; border-top:2px solid var(--accent) }


  /* origin two-column */
  .origin{ position:relative; background:var(--bg) }
  .origin::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.5; background-image:repeating-linear-gradient(135deg, rgba(200,48,47,.06) 0 1px, transparent 1px 22px) }
  .origin .wrap{ position:relative; display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(30px,5vw,72px); align-items:center }
  .df-panel{ position:relative; border:1px solid var(--line-2); aspect-ratio:4/3; overflow:hidden; background:#0a0a0b }
  .df-panel img{ width:100%; height:100%; object-fit:cover; object-position:center }
  .df-panel::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(8,8,9,.10), rgba(8,8,9,.55)) }
  .df-panel .stamp{ position:absolute; left:0; bottom:0; background:var(--accent); color:#fff; font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:800; padding:8px 14px }
  .origin h2{ margin:14px 0 0; font-size:clamp(28px,4vw,50px) }
  .origin p{ margin:16px 0 0; color:var(--muted); font-size:16.5px; max-width:56ch } .origin p b{ color:var(--ink); font-weight:700 }

  /* lineage strip */
  .lineage-sec{ background:var(--surface); position:relative }
  .lineage-sec .head{ max-width:640px; margin-bottom:clamp(34px,5vw,52px) }
  .lineage-sec .head h2{ margin:14px 0 0; font-size:clamp(26px,3.6vw,44px) }
  .lineage{ display:flex; align-items:stretch }
  .node{ flex:1; display:flex; flex-direction:column }
  .plate{ background:#fff; height:clamp(140px,18vw,180px); display:flex; align-items:center; justify-content:center; padding:24px; border:1px solid var(--line-2) }
  .plate img{ max-width:100%; max-height:100%; object-fit:contain }
  .node .lbl{ margin-top:16px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-weight:800 }
  .node .name{ margin-top:6px; font-weight:900; text-transform:uppercase; letter-spacing:-.01em; font-size:clamp(16px,1.7vw,20px) }
  .node .cap{ margin-top:8px; color:var(--muted); font-size:13.5px; max-width:30ch }
  .arrow{ flex:0 0 clamp(34px,5vw,72px); display:flex; align-items:center; justify-content:center; color:var(--accent) }
  .arrow svg{ width:100%; height:22px }
  @media(max-width:820px){ .lineage{ flex-direction:column; align-items:center }
    .node{ width:100%; max-width:340px; align-items:center; text-align:center } .plate{ width:100% }
    .arrow{ flex-basis:auto; height:50px; transform:rotate(90deg) } }

  /* Axiom chapter — Justin photo */
  .chapter{ background:var(--bg) }
  .chapter .wrap{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(30px,5vw,72px); align-items:center }
  .chapter .photo{ position:relative; aspect-ratio:4/5; border:1px solid var(--line-2); overflow:hidden; order:2;
    background:#000 url('https://axiombjj.com/wp-content/uploads/2023/03/121301796_10157597945226709_280192367293730581_n.jpg') center top/cover no-repeat }
  .chapter .photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(8,8,9,.66)) }
  .chapter .photo .badge{ position:absolute; left:16px; bottom:16px; z-index:2; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#fff; background:var(--accent); padding:7px 11px; font-weight:800 }
  .chapter h2{ margin:14px 0 0; font-size:clamp(28px,4vw,50px) }
  .chapter p{ margin:16px 0 0; color:var(--muted); font-size:16.5px; max-width:54ch } .chapter p b{ color:var(--ink); font-weight:700 }
  .chapter .quote{ margin:24px 0 0; padding-left:18px; border-left:3px solid var(--accent); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; font-size:clamp(18px,2.2vw,26px); color:var(--ink); max-width:20ch }
  @media(max-width:820px){ .chapter .wrap{ grid-template-columns:1fr } .chapter .photo{ aspect-ratio:16/11; order:-1 } }


  /* ============================================================
   * Homepage "Best sellers" strip  (v1.1.0)
   * ============================================================ */
  .band.hsell{ padding-block:clamp(44px,5vw,68px) }
  .hsell .head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:clamp(22px,3vw,34px) }
  .hsell .head h2{ margin:12px 0 0; font-size:clamp(26px,3.6vw,42px) }
  .hsell .viewall{ color:var(--ink); text-decoration:none; font-size:12.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; border-bottom:2px solid var(--accent); padding-bottom:6px }
  .hsell .viewall:hover{ color:var(--accent) } .hsell .viewall .ar{ color:var(--accent) }
  .hsell .grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:22px }
  .hsell .card{ position:relative }
  .hsell .shot{ position:relative; display:block; aspect-ratio:1/1; overflow:hidden; background:var(--surface2) }
  .hsell .shot img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease }
  .hsell .card:hover .shot img{ transform:scale(1.04) }
  .hsell .card .add{ position:absolute; left:0; right:0; bottom:0; background:var(--accent); color:#fff; text-align:center; padding:11px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:11px; text-decoration:none; transform:translateY(101%); transition:transform .22s }
  .hsell .card:hover .add{ transform:translateY(0) }
  .hsell .card .add:hover{ background:var(--accent-hi) }
  .hsell .meta{ padding-top:12px }
  .hsell .cat{ font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--accent); font-weight:800 }
  .hsell .pname{ margin:6px 0 0; font-size:14px; font-weight:700 } .hsell .pname a{ color:var(--ink); text-decoration:none } .hsell .pname a:hover{ color:var(--accent) }
  .hsell .price{ margin-top:5px; font-weight:800; font-size:14px; color:var(--ink) }
  .hsell .price del{ color:var(--muted); font-weight:400 } .hsell .price ins{ text-decoration:none; color:var(--accent) }
  @media(max-width:980px){ .hsell .grid{ grid-template-columns:repeat(3,1fr) } }
  @media(max-width:560px){ .hsell .grid{ grid-template-columns:1fr 1fr } }

  /* ============================================================
   * WooCommerce  (v1.1.0)
   * ============================================================ */
  .shopwrap > .wrap, .wcpage > .wrap{ padding-block:clamp(40px,6vw,72px) }

  /* --- New Drop banner --- */
  .dropbar{ position:relative; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line) }
  .dropbar .copy{ padding:clamp(40px,5vw,72px); display:flex; flex-direction:column; justify-content:center; position:relative; z-index:2 }
  .dropbar .copy h2{ margin:14px 0 0; font-size:clamp(34px,4.4vw,58px) }
  .dropbar .copy .price{ font-size:22px; margin:16px 0 0; font-weight:800; color:var(--ink) }
  .dropbar .copy .price del{ color:var(--muted); font-weight:400 } .dropbar .copy .price ins{ text-decoration:none; color:var(--ink) }
  .dropbar .copy .buy{ display:inline-flex; align-items:center; gap:9px; margin-top:26px; align-self:flex-start; background:var(--accent); color:#fff; font-weight:800; text-transform:uppercase; letter-spacing:.09em; font-size:13px; padding:15px 26px; text-decoration:none }
  .dropbar .copy .buy:hover{ background:var(--accent-hi) }
  .dropbar .art{ position:relative; min-height:340px; background:var(--surface2); display:block; overflow:hidden }
  .dropbar .art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
  .dropbar .art::before{ content:""; position:absolute; inset:0; z-index:1; background:radial-gradient(90% 120% at 70% 50%, rgba(200,48,47,.34), transparent 62%) }
  @media(max-width:820px){ .dropbar{ grid-template-columns:1fr } .dropbar .art{ min-height:260px } }

  /* --- Shop layout --- */
  .shop-layout{ display:grid; grid-template-columns:236px 1fr; gap:42px }
  @media(max-width:860px){ .shop-layout{ grid-template-columns:1fr } }

  /* --- Sidebar --- */
  .shop-aside h4{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); margin:0 0 14px; font-weight:800 }
  .shop-aside .catlist{ list-style:none; margin:0 0 30px; padding:0; display:grid; gap:2px }
  .shop-aside .catlist a{ display:flex; justify-content:space-between; padding:9px 12px; color:var(--muted); text-decoration:none; font-size:14px; border-left:2px solid transparent }
  .shop-aside .catlist a:hover{ color:var(--ink) }
  .shop-aside .catlist a.on{ color:var(--ink); border-left-color:var(--accent); background:var(--surface) }
  .shop-aside .catlist a span{ color:var(--faint); font-size:12px }
  .shop-aside .woocommerce-product-search{ display:flex; border:1px solid var(--line-2); margin-bottom:30px }
  .shop-aside .woocommerce-product-search label{ position:absolute; left:-9999px }
  .shop-aside .woocommerce-product-search input[type="search"], .shop-aside .woocommerce-product-search input.search-field{ flex:1; min-width:0; background:none; border:0; color:var(--ink); padding:11px 12px; font:inherit; font-size:14px; outline:none }
  .shop-aside .woocommerce-product-search button{ background:var(--accent); border:0; color:#fff; padding:0 16px; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.06em; cursor:pointer }
  .shop-aside .woocommerce-product-search button:hover{ background:var(--accent-hi) }
  .shop-aside .pricebox{ border-top:1px solid var(--line); padding-top:20px }
  .shop-aside .pricebox .widget-title, .shop-aside .pricebox h2{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); margin:0 0 14px; font-weight:800 }
  .shop-aside .price_slider_wrapper .ui-widget-content{ background:var(--line-2) }
  .shop-aside .price_slider{ height:3px; margin:18px 6px; border-radius:0 }
  .shop-aside .ui-slider .ui-slider-range{ background:var(--accent) }
  .shop-aside .ui-slider .ui-slider-handle{ background:var(--ink); border:0; width:13px; height:13px; top:-5px; border-radius:0; cursor:pointer }
  .shop-aside .price_slider_amount{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px }
  .shop-aside .price_slider_amount .price_label{ color:var(--muted); font-size:12px; order:1; width:100% }
  .shop-aside .price_slider_amount .button{ order:2; background:var(--accent); color:#fff; border:0; border-radius:0; font:inherit; font-weight:800; font-size:11px; text-transform:uppercase; letter-spacing:.08em; padding:9px 14px; cursor:pointer }
  .shop-aside .price_slider_amount .button:hover{ background:var(--accent-hi) }

  /* --- Result count + ordering toolbar --- */
  .shop-main .woocommerce-result-count{ float:none; margin:0 0 18px; color:var(--muted); font-size:13px }
  .shop-main .woocommerce-ordering{ float:right; margin:0 0 18px }
  .woocommerce .woocommerce-ordering select, .woocommerce select.orderby{ background:var(--bg); color:var(--ink); border:1px solid var(--line-2); border-radius:0; font:inherit; font-size:13px; padding:9px 12px }

  /* --- Product grid (restyle native Woo loop) --- */
  .woocommerce ul.products{ display:grid; grid-template-columns:repeat(auto-fill, minmax(208px, 1fr)); gap:24px 20px; margin:0; padding:0; list-style:none; clear:both }
  .woocommerce ul.products::before, .woocommerce ul.products::after{ content:none; display:none }
  .woocommerce ul.products li.product{ width:auto !important; margin:0 !important; float:none !important; text-align:left; position:relative; display:flex; flex-direction:column }
  .woocommerce ul.products li.product a img{ width:100%; aspect-ratio:4/5; object-fit:cover; margin:0 0 0; background:var(--surface2); display:block }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size:15px; font-weight:700; padding:12px 0 0; color:var(--ink); text-transform:none; letter-spacing:0; line-height:1.3; min-height:calc(12px + 2.6em) }
  .woocommerce ul.products li.product .price{ color:var(--ink); font-weight:800; font-size:15px; margin:4px 0 12px; display:block }
  .woocommerce ul.products li.product .price del{ color:var(--muted); font-weight:400; opacity:1 }
  .woocommerce ul.products li.product .price ins{ text-decoration:none; color:var(--accent) }
  .woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart{ display:inline-block; margin-top:auto; align-self:flex-start; background:var(--accent); color:#fff; border:0; border-radius:0; font-weight:800; font-size:12px; letter-spacing:.1em; text-transform:uppercase; padding:11px 16px; cursor:pointer; text-decoration:none }
  .woocommerce ul.products li.product .button:hover, .woocommerce ul.products li.product .added_to_cart:hover{ background:var(--accent-hi) }
  .woocommerce span.onsale{ background:var(--accent); color:#fff; border-radius:0; min-height:0; min-width:0; line-height:1; padding:6px 10px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; top:10px; left:10px; right:auto; margin:0 }
  @media(max-width:560px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); gap:18px 14px } }

  /* --- Pagination --- */
  .woocommerce nav.woocommerce-pagination{ margin-top:44px; text-align:center }
  .woocommerce nav.woocommerce-pagination ul{ border:0; display:inline-flex; gap:6px }
  .woocommerce nav.woocommerce-pagination ul li{ border:0; margin:0 }
  .woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{ background:var(--surface); color:var(--ink); border:1px solid var(--line-2); padding:10px 15px; min-width:0; border-radius:0 }
  .woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover{ background:var(--accent); border-color:var(--accent); color:#fff }

  /* --- Buttons & notices (global) --- */
  .woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce .button{ background:var(--accent); color:#fff; border-radius:0; font-weight:800; letter-spacing:.06em; text-transform:uppercase; border:0 }
  .woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce .button:hover{ background:var(--accent-hi); color:#fff }
  .woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt{ background:var(--accent) }
  .woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, .woocommerce-store-notice, .woocommerce-NoticeGroup .woocommerce-error li{ background:var(--surface); border-top:3px solid var(--accent); color:var(--ink); border-radius:0 }
  .woocommerce-message a, .woocommerce-info a, .woocommerce-error a{ color:var(--accent) }

  /* --- Single product --- */
  .woocommerce div.product .product_title{ font-weight:900; text-transform:uppercase; letter-spacing:-.01em; font-size:clamp(28px,4vw,46px); color:var(--ink) }
  .woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--ink); font-weight:800; font-size:22px }
  .woocommerce div.product p.price del, .woocommerce div.product span.price del{ color:var(--muted) } .woocommerce div.product p.price ins{ text-decoration:none; color:var(--accent) }
  .woocommerce div.product .woocommerce-product-details__short-description{ color:var(--muted) }
  .woocommerce div.product .woocommerce-tabs ul.tabs{ border:0; padding:0 }
  .woocommerce div.product .woocommerce-tabs ul.tabs::before{ border-color:var(--line) }
  .woocommerce div.product .woocommerce-tabs ul.tabs li{ background:var(--surface); border:1px solid var(--line); border-radius:0 }
  .woocommerce div.product .woocommerce-tabs ul.tabs li.active{ background:var(--bg); border-bottom-color:var(--bg) }
  .woocommerce div.product .woocommerce-tabs ul.tabs li a{ color:var(--ink) }
  .woocommerce .quantity .qty{ background:var(--bg); color:var(--ink); border:1px solid var(--line-2); padding:10px; border-radius:0 }
  .woocommerce div.product .stock{ color:var(--muted) }

  /* --- Cart / checkout / account forms --- */
  .woocommerce table.shop_table{ border:1px solid var(--line); border-radius:0; border-collapse:collapse }
  .woocommerce table.shop_table th, .woocommerce table.shop_table td{ border-top:1px solid var(--line); color:var(--ink) }
  .woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td{ color:var(--ink) }
  .woocommerce-cart table.cart td.actions .coupon .input-text, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce .select2-container .select2-selection, .woocommerce #order_review input.input-text{ background:var(--bg); color:var(--ink); border:1px solid var(--line-2); border-radius:0; padding:12px }
  .woocommerce form .form-row label, .woocommerce-checkout label, .woocommerce-cart label{ color:var(--ink) }
  .woocommerce-checkout #payment{ background:var(--surface); border-radius:0 }
  .woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid var(--line) }
  .woocommerce-checkout #payment div.payment_box{ background:var(--bg); color:var(--muted) }
  .woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:var(--bg) }
  .select2-dropdown, .select2-container--default .select2-results__option{ background:var(--surface); color:var(--ink) }

  /* ============================================================
   * Shop banner (Banner 1) - content width  (v1.1.3)
   * ============================================================ */
  .shopbanner{ position:relative; overflow:hidden; background:var(--surface); border-bottom:1px solid var(--line); padding-block:clamp(40px,6vw,76px) }
  .shopbanner::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(58% 130% at 10% 30%, rgba(200,48,47,.20), transparent 60%) }
  .shopbanner::after{ content:""; position:absolute; right:clamp(20px,5vw,90px); top:50%; transform:translateY(-50%); width:clamp(160px,18vw,260px); height:clamp(160px,18vw,260px); pointer-events:none; background:url('assets/images/axiom-mark-white.webp') center/contain no-repeat; opacity:.05 }
  .shopbanner .wrap{ position:relative; z-index:1 }
  .shopbanner .in{ max-width:640px }
  .shopbanner h2{ margin:14px 0 0; font-size:clamp(32px,5vw,64px); font-weight:900; letter-spacing:-.02em; text-transform:uppercase; line-height:.96 }
  .shopbanner h2 .red{ color:var(--accent) }
  .shopbanner p{ margin:14px 0 0; color:var(--muted); font-size:15.5px; max-width:44ch }

  /* ============================================================
   * Single product - Option 2 (sticky buy card)  (v1.1.4)
   * ============================================================ */
  .product-v2 .pv2-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,56px); align-items:start }
  .product-v2 .pv2-gallery{ position:relative }
  .product-v2 .pv2-gallery .onsale{ z-index:3 }
  /* WooCommerce gallery */
  .product-v2 .woocommerce-product-gallery{ width:100%; margin:0; float:none }
  .product-v2 .woocommerce-product-gallery__wrapper{ margin:0 }
  .product-v2 .woocommerce-product-gallery__image img{ display:block; width:100%; height:auto; background:var(--surface2) }
  .product-v2 .woocommerce-product-gallery .flex-control-thumbs{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:10px 0 0; padding:0; list-style:none }
  .product-v2 .woocommerce-product-gallery .flex-control-thumbs li{ margin:0; list-style:none }
  .product-v2 .woocommerce-product-gallery .flex-control-thumbs img{ width:100%; opacity:.55; cursor:pointer; transition:opacity .15s }
  .product-v2 .woocommerce-product-gallery .flex-control-thumbs img.flex-active, .product-v2 .woocommerce-product-gallery .flex-control-thumbs img:hover{ opacity:1 }
  .product-v2 .woocommerce-product-gallery__trigger{ z-index:3 }
  /* buy card */
  .product-v2 .pv2-card{ position:sticky; top:96px; border:1px solid var(--line-2); background:var(--surface); padding:clamp(24px,3vw,34px) }
  .product-v2 .pv2-card .product_title{ margin:10px 0 0; font-size:clamp(26px,3vw,40px); font-weight:900; letter-spacing:-.01em; text-transform:uppercase; line-height:1.02 }
  .product-v2 .pv2-price{ font-size:24px; font-weight:800; color:var(--ink); margin:14px 0 0 }
  .product-v2 .pv2-price del{ color:var(--muted); font-weight:400; opacity:1 }
  .product-v2 .pv2-price ins{ text-decoration:none; color:var(--accent) }
  .product-v2 .pv2-short{ color:var(--muted); font-size:14.5px; margin:18px 0 0 }
  .product-v2 .pv2-short p{ margin:0 0 8px }
  /* add to cart / variations */
  .product-v2 form.cart{ margin:22px 0 0 }
  .product-v2 table.variations{ width:100%; margin:0 0 16px; border:0; background:none }
  .product-v2 table.variations tr,
  .product-v2 table.variations th,
  .product-v2 table.variations td{ display:block; width:auto; text-align:left; padding:0 0 8px; border:0; background:none }
  .product-v2 table.variations th.label label{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700; margin:0 }
  .product-v2 table.variations select{ width:100%; background:var(--bg); color:var(--ink); border:1px solid var(--line-2); border-radius:0; padding:13px 12px; font:inherit; font-size:14px }
  .product-v2 .woocommerce-variation-price{ margin:0 0 14px; font-weight:800; font-size:18px }
  .product-v2 .woocommerce-variation-availability{ margin:0 0 12px; color:var(--muted) }
  .product-v2 .reset_variations{ display:inline-block; margin:0 0 12px; color:var(--accent); font-size:12px; font-weight:700 }
  .product-v2 .quantity{ display:inline-flex; align-items:stretch; border:1px solid var(--line-2); vertical-align:middle; margin-right:12px }
  .product-v2 .quantity .qty{ width:58px; background:var(--bg); color:var(--ink); border:0; border-radius:0; padding:14px 6px; text-align:center; font:inherit; -moz-appearance:textfield }
  .product-v2 form.cart .button.single_add_to_cart_button{ background:var(--accent) !important; color:#fff !important; border:0; border-radius:0; font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:13px; padding:15px 30px; cursor:pointer; vertical-align:middle }
  .product-v2 form.cart .button.single_add_to_cart_button:hover{ background:var(--accent-hi) !important }
  /* trust badges */
  .product-v2 .pv2-trust{ display:flex; gap:18px; flex-wrap:wrap; margin-top:24px; padding-top:18px; border-top:1px solid var(--line) }
  .product-v2 .pv2-trust .t{ font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-weight:700; display:inline-flex; align-items:center; gap:7px }
  .product-v2 .pv2-trust .t::before{ content:""; width:7px; height:7px; background:var(--accent) }
  /* description + related */
  .product-v2 .pv2-desc{ margin-top:clamp(40px,6vw,72px); border-top:1px solid var(--line); padding-top:clamp(26px,4vw,40px) }
  .product-v2 .related.products{ margin-top:clamp(40px,6vw,72px); border-top:1px solid var(--line); padding-top:clamp(26px,4vw,40px) }
  .product-v2 .related.products > h2{ font-size:clamp(20px,2.4vw,28px); font-weight:900; text-transform:uppercase; letter-spacing:-.01em; margin:0 0 22px }
  @media(max-width:820px){
    .product-v2 .pv2-grid{ grid-template-columns:1fr }
    .product-v2 .pv2-card{ position:static }
    .product-v2 .woocommerce-product-gallery .flex-control-thumbs{ grid-template-columns:repeat(4,1fr) }
  }

  /* ============================================================
   * Shop toolbar - wide search + sort above the title  (v1.1.5)
   * ============================================================ */
  .shop-toolbar{ display:flex; align-items:center; gap:16px; margin-bottom:clamp(20px,3vw,30px) }
  .shop-toolbar .woocommerce-product-search{ flex:1; display:flex; border:1px solid var(--line-2); margin:0 }
  .shop-toolbar .woocommerce-product-search label{ position:absolute; left:-9999px }
  .shop-toolbar .woocommerce-product-search input[type="search"], .shop-toolbar .woocommerce-product-search input.search-field{ flex:1; min-width:0; background:none; border:0; color:var(--ink); padding:13px 14px; font:inherit; font-size:14px; outline:none }
  .shop-toolbar .woocommerce-product-search button{ background:var(--accent); border:0; color:#fff; padding:0 22px; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.06em; cursor:pointer }
  .shop-toolbar .woocommerce-product-search button:hover{ background:var(--accent-hi) }
  .shop-toolbar .woocommerce-ordering{ float:none; margin:0; flex:none }
  .shop-toolbar .woocommerce-ordering select.orderby{ background:var(--bg); color:var(--ink); border:1px solid var(--line-2); border-radius:0; font:inherit; font-size:13px; padding:13px 14px; cursor:pointer }
  @media(max-width:600px){ .shop-toolbar{ flex-direction:column; align-items:stretch } .shop-toolbar .woocommerce-ordering select.orderby{ width:100% } }
