
  :root{
    --ink:#151412;
    --ink-soft:#211F1B;
    --gold:#B8860B;
    --gold-light:#D8B36A;
    --cool:#F7EFB8;
    --red:#D9333F;
    --cloud:#F7F4EC;
    --steel:#645F52;
    --line:#E3DDCB;
    --white:#FFFFFF;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter',sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Barlow Condensed',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.02em;
    font-weight:700;
    line-height:1.02;
  }
  .mono{
    font-family:'IBM Plex Mono',monospace;
    letter-spacing:0.03em;
  }
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 28px;}

  .site-topbar{
    position:sticky;top:0;z-index:50;
  }
  header{
    background:var(--ink);
  }
  [id]{scroll-margin-top:90px;}
  .nav{
    position:relative;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    padding:12px 28px;max-width:1400px;margin:0 auto;
  }
  .nav-logo{display:flex;align-items:center;gap:10px;flex-shrink:0;}
  .nav-wordmark-img{height:19px;width:auto;display:block;}
  .konex-wordmark{height:0.78em;width:auto;display:inline-block;vertical-align:-0.06em;margin:0 0.02em;}
  .konex-wordmark--light{filter:brightness(0) invert(1);}
  .nav-by{
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.04em;
    color:#9C9376;white-space:nowrap;
  }
  .logo-svg--nav{
    height:44px;width:auto;display:block;
    background:var(--white);border-radius:3px;padding:4px 10px;
  }
  /* .nav-links is always the hamburger dropdown panel now — 13 links
     (plus the policy pages) never actually fit in the inline top bar at
     any screen width, since .nav is capped at max-width:1400px above.
     Trying to compact them inline just moved the crowding to a wider
     breakpoint instead of fixing it, so the panel and the button that
     opens it (.nav-menu-btn) are unconditional rather than tucked behind
     a media query. */
  .nav-links{
    display:none;position:absolute;top:100%;left:0;right:0;z-index:5;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--ink);border-top:1px solid rgba(255,255,255,0.1);
    max-height:calc(100vh - 70px);overflow-y:auto;padding:6px 0 14px;
    box-shadow:0 18px 36px rgba(0,0,0,0.4);
  }
  /* On tablet and up there's room for the dropdown to behave like an
     actual dropdown instead of a full-width bar spanning the whole
     header — pinned under the hamburger button with a sane max width,
     rounded off and detached from the header like a floating panel.
     Phones keep the full-width edge-to-edge version above, since a
     narrow floating panel would just make the links cramped there. */
  @media (min-width:641px){
    .nav-links{
      left:28px;right:auto;top:calc(100% + 8px);
      width:320px;max-width:calc(100vw - 56px);
      border-top:none;border-radius:6px;
      border:1px solid rgba(255,255,255,0.1);
      max-height:calc(100vh - 100px);
    }
  }
  .nav-links.nav-links-open{display:flex;}
  .nav-links a{
    color:#D6D0BF;font-weight:500;transition:color .2s ease;
    width:100%;padding:13px 24px;font-size:15px;
    border-bottom:1px solid rgba(255,255,255,0.06);
  }
  .nav-links a:hover, .nav-links a:focus-visible{color:var(--gold-light);}
  .nav-cta{
    background:var(--gold);color:var(--ink)!important;
    padding:9px 14px;border-radius:2px;font-size:13.5px;font-weight:700;
    letter-spacing:0.02em;
  }
  .nav-cta:hover{background:var(--gold-light);}
  .nav-links .nav-cta{
    display:block;width:calc(100% - 48px);margin:12px 24px 2px;
    text-align:center;border-bottom:none;
  }
  .nav-menu-btn{
    display:flex;background:none;border:1px solid rgba(255,255,255,0.25);color:var(--white);
    padding:7px;border-radius:2px;cursor:pointer;align-items:center;
    transition:border-color .15s ease;flex-shrink:0;
  }
  .nav-menu-btn:hover{border-color:var(--gold);}
  .nav-menu-btn svg{width:18px;height:18px;stroke:var(--white);}

  .hero{
    background:var(--ink);
    color:var(--white);
    padding:120px 0 0;
    position:relative;
    overflow:hidden;
  }
  .hero-panel{
    position:absolute;top:0;bottom:0;left:0;right:0;
    background:linear-gradient(90deg,
      var(--ink) 0%, var(--ink) 53%,
      var(--gold) 53%, var(--gold) calc(53% + 2px),
      #F2E1D0 calc(53% + 2px), #F2E1D0 100%);
    z-index:0;
  }
  .hero-inner{
    max-width:1320px;margin:0 auto;padding:0 28px 72px;
    display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:center;
    position:relative;z-index:1;
  }
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;letter-spacing:0.14em;text-transform:uppercase;
    color:#CBB98A;margin-bottom:22px;display:flex;align-items:center;gap:10px;
  }
  .eyebrow::before{
    content:'';width:26px;height:2px;background:var(--gold);display:inline-block;
  }
  .hero h1{
    font-size:clamp(38px,5.6vw,66px);
    color:var(--white);
    max-width:15ch;
  }
  .hero h1 .accent{color:var(--gold-light);}
  .hero p.lede{
    font-size:17px;color:#C9C4B4;max-width:50ch;margin-top:22px;line-height:1.6;
  }
  .hero-ctas{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:13px 24px;font-size:14.5px;font-weight:600;
    border-radius:2px;border:1px solid transparent;
    transition:all .2s ease;letter-spacing:0.01em;
    cursor:pointer;
  }
  .btn-primary{background:var(--gold);color:var(--ink);font-weight:700;}
  .btn-primary:hover{background:var(--gold-light);transform:translateY(-1px);}
  .btn-ghost{border-color:rgba(255,255,255,0.28);color:var(--white);}
  .btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,0.06);}

  /* Loading spinner shown inside a submit button while a request is in
     flight (checkout, dealer/refund forms, etc.) so the customer can see
     the page is actually working, not just frozen. */
  .btn-primary.is-loading{opacity:0.85;cursor:wait;pointer-events:none;}
  .btn-spinner{
    display:inline-block;width:15px;height:15px;
    border:2px solid rgba(20,20,20,0.35);border-top-color:var(--ink);
    border-radius:50%;margin-right:4px;vertical-align:-2px;
    animation:btn-spin 0.7s linear infinite;
  }
  @keyframes btn-spin{ to{ transform:rotate(360deg); } }

  .hero-mark{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;align-self:start;margin-top:-40px;}
  .hero-logo-card{width:min(245px,100%);padding:0 12px;}
  .hero-logo-card img{width:100%;height:auto;display:block;}
  .hero-bike-card{width:min(950px,100%);padding:12px;margin-top:60px;}
  .hero-bike-stage{position:relative;width:100%;aspect-ratio:1652/1031;perspective:1400px;}
  .hero-bike-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;display:block;transform:rotateY(-70deg) scale(0.94);transform-origin:50% 50%;transition:opacity 0.7s ease,transform 0.7s cubic-bezier(.22,.61,.36,1);backface-visibility:hidden;}
  .hero-bike-slide--active{opacity:1;transform:rotateY(0deg) scale(1);}
  .hero-bike-slide--leaving{opacity:0;transform:rotateY(70deg) scale(0.94);}
  .hero-bike-caption{
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:0.06em;
    color:var(--ink);opacity:0.65;margin-top:70px;text-align:center;
  }

  .plate{
    background:var(--ink-soft);
    border-top:1px solid rgba(255,255,255,0.08);
    border-bottom:3px solid var(--gold);
  }
  .plate-inner{
    max-width:1180px;margin:0 auto;padding:0 28px;
    display:grid;grid-template-columns:repeat(4,1fr);
  }
  .plate-item{padding:18px 20px;border-left:1px solid rgba(255,255,255,0.08);}
  .plate-item:first-child{border-left:none;}
  .plate-item .k{
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;
    letter-spacing:0.12em;text-transform:uppercase;color:#9C9376;margin-bottom:5px;
  }
  .plate-item .v{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--white);letter-spacing:0.01em;}

  section{padding:84px 0;}
  /* Capabilities and Sourcing capacity: more compact than other sections —
     smaller top/bottom padding, tighter heading spacing, and denser cards. */
  #capabilities, #sourcing{padding:44px 0;}
  #capabilities .section-head, #sourcing .section-head{margin-bottom:26px;}
  #capabilities .cap-grid, #sourcing .cap-grid{border-top:1px solid var(--line);}
  #capabilities .cap-card, #sourcing .cap-card{padding:18px 16px;}
  #capabilities .cap-card svg, #sourcing .cap-card svg{width:22px;height:22px;margin-bottom:8px;}
  #capabilities .cap-card h3, #sourcing .cap-card h3{font-size:16px;margin-bottom:5px;}
  #capabilities .cap-card p, #sourcing .cap-card p{font-size:12.5px;line-height:1.45;}
  #capabilities .cap-card-link, #sourcing .cap-card-link{margin-top:8px;font-size:11.5px;}
  .section-head{
    display:grid;grid-template-columns:0.8fr 1.2fr;gap:40px;
    margin-bottom:48px;align-items:start;
  }
  .section-head .tag{
    font-family:'IBM Plex Mono',monospace;font-size:12px;
    letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);
    display:flex;align-items:center;gap:10px;
  }
  .section-head .tag::before{content:'';width:26px;height:2px;background:var(--gold);}
  .section-head h2{font-size:clamp(28px,3.8vw,42px);color:var(--ink);margin-top:10px;}
  .section-head .desc{color:var(--steel);font-size:16px;line-height:1.65;padding-top:8px;}

  /* ---------- Legal policy pages ---------- */
  .legal-section{background:var(--white);border-top:1px solid var(--line);}
  .legal-section.alt{background:var(--cloud);}
  .legal-body{max-width:760px;}
  .legal-body h3{
    font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:20px;
    color:var(--ink);margin:32px 0 10px;letter-spacing:0.01em;
  }
  .legal-body h3:first-child{margin-top:0;}
  .legal-body p{color:var(--steel);font-size:15px;line-height:1.7;margin-bottom:14px;}
  .legal-body ul{margin:0 0 14px;padding-left:20px;}
  .legal-body li{color:var(--steel);font-size:15px;line-height:1.7;margin-bottom:6px;}
  .legal-body strong{color:var(--ink);font-weight:600;}
  .legal-meta{
    font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#9C9376;
    letter-spacing:0.04em;margin-bottom:6px;
  }
  .legal-back{
    display:inline-flex;align-items:center;gap:8px;margin-top:36px;
    font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.06em;
    text-transform:uppercase;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);
    padding-bottom:2px;
  }
  .foot-legal{
    display:flex;gap:22px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;
    font-size:11.5px;letter-spacing:0.04em;margin-top:14px;
  }
  .foot-legal a{color:#9C9376;text-decoration:none;border-bottom:1px solid transparent;}
  .foot-legal a:hover{color:var(--gold);border-bottom-color:var(--gold);}

  .cap-grid{
    display:grid;grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line);border-left:1px solid var(--line);
  }
  .cap-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 22px;transition:background .2s ease;display:flex;flex-direction:column;}
  .cap-card:hover{background:var(--cloud);}
  .cap-card svg{width:28px;height:28px;stroke:var(--gold);margin-bottom:14px;}
  .cap-card h3{font-size:18px;color:var(--ink);margin-bottom:8px;letter-spacing:0.01em;}
  .cap-card p{font-size:13.5px;color:var(--steel);line-height:1.55;}
  .cap-card-link{
    display:inline-block;margin-top:14px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;
    font-weight:600;color:var(--gold);text-decoration:none;
  }
  .cap-card-link:hover{color:var(--ink);text-decoration:underline;}

  .trading{background:var(--cloud);}
  .trading-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .trading-copy p{color:var(--steel);font-size:15.5px;line-height:1.72;margin-bottom:16px;}
  .trading-copy p:last-child{margin-bottom:0;}
  .trade-card{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--gold);padding:26px 26px;margin-bottom:14px;}
  .trade-card:last-child{margin-bottom:0;}
  .trade-card h3{font-size:17px;color:var(--ink);margin-bottom:6px;text-transform:none;font-family:'Inter',sans-serif;font-weight:700;letter-spacing:0;}
  .trade-card p{font-size:14px;color:var(--steel);line-height:1.6;}
  .ebike-teaser{
    display:flex;align-items:center;gap:24px;flex-wrap:wrap;
    background:var(--ink);border-radius:2px;padding:32px 30px;margin-bottom:44px;
  }
  .ebike-teaser-icon{
    flex:0 0 auto;width:52px;height:52px;border-radius:50%;
    background:rgba(184,134,11,0.18);display:flex;align-items:center;justify-content:center;
  }
  .ebike-teaser-icon svg{width:26px;height:26px;stroke:var(--gold);}
  .ebike-teaser-body{flex:1 1 320px;}
  .ebike-teaser-tag{
    display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--ink);padding:5px 12px 5px 10px;border-radius:3px;margin-bottom:10px;
    background:linear-gradient(135deg,#f4d474 0%,var(--gold) 45%,#8a6a1f 100%);
    box-shadow:
      0 1px 0 rgba(255,255,255,0.5) inset,
      0 -2px 3px rgba(0,0,0,0.35) inset,
      0 3px 0 #7a5c19,
      0 6px 10px rgba(0,0,0,0.4);
    transform-style:preserve-3d;
    position:relative;
    animation:tagPop 0.7s cubic-bezier(.22,1.4,.36,1) both, tagBlink 2.2s ease-in-out 0.7s infinite;
  }
  .ebike-teaser-tag::before{
    content:'●';display:inline-block;margin-right:6px;color:#c0392b;
    animation:tagDot 1.1s ease-in-out infinite;
  }
  @keyframes tagPop{
    0%{opacity:0;transform:scale(0.4) rotate(-8deg) translateY(10px);}
    60%{opacity:1;transform:scale(1.15) rotate(3deg) translateY(-3px);}
    80%{transform:scale(0.96) rotate(-1deg);}
    100%{opacity:1;transform:scale(1) rotate(0deg) translateY(0);}
  }
  @keyframes tagBlink{
    0%,100%{
      box-shadow:
        0 1px 0 rgba(255,255,255,0.5) inset,
        0 -2px 3px rgba(0,0,0,0.35) inset,
        0 3px 0 #7a5c19,
        0 6px 10px rgba(0,0,0,0.4);
    }
    50%{
      box-shadow:
        0 1px 0 rgba(255,255,255,0.7) inset,
        0 -2px 3px rgba(0,0,0,0.3) inset,
        0 3px 0 #7a5c19,
        0 6px 18px rgba(244,212,116,0.85);
    }
  }
  @keyframes tagDot{
    0%,100%{opacity:1;transform:scale(1);}
    50%{opacity:0.25;transform:scale(0.75);}
  }
  @media (prefers-reduced-motion: reduce){
    .ebike-teaser-tag{animation:tagPop 0.01s both;}
    .ebike-teaser-tag::before{animation:none;}
  }
  .ebike-teaser-body h3{font-size:20px;color:var(--white);margin-bottom:6px;font-weight:700;letter-spacing:0;}
  .ebike-teaser-body p{font-size:14px;color:#C9C4B4;line-height:1.6;max-width:60ch;}
  .ebike-teaser-cta{
    flex:0 0 auto;font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:0.03em;
    color:var(--gold);text-decoration:none;font-weight:600;white-space:nowrap;
  }
  .ebike-teaser-cta:hover{color:var(--gold-light);text-decoration:underline;}
  @media (max-width:640px){
    .ebike-teaser{padding:24px 20px;}
  }

  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
  .about-copy h2{font-size:clamp(28px,3.6vw,40px);margin-bottom:20px;}
  .about-copy p{color:var(--steel);font-size:15.5px;line-height:1.7;margin-bottom:16px;}
  .cae-list{background:var(--white);border:1px solid var(--line);border-radius:2px;padding:6px 0;}
  .cae-row{display:flex;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line);align-items:baseline;}
  .cae-row:last-child{border-bottom:none;}
  .cae-row .code{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--gold);flex-shrink:0;width:78px;}
  .cae-row .desc{font-size:14px;color:var(--ink);}

  .contact-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:50px;}
  .contact-item{display:flex;gap:16px;padding:22px 0;border-bottom:1px solid var(--line);}
  .contact-item:first-child{border-top:1px solid var(--line);}
  .contact-item svg{width:20px;height:20px;stroke:var(--gold);flex-shrink:0;margin-top:2px;}
  .contact-item .label{
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.1em;
    text-transform:uppercase;color:var(--steel);margin-bottom:5px;
  }
  .contact-item .val{font-size:16px;color:var(--ink);font-weight:500;}
  .contact-item a.val:hover{color:var(--gold);}

  .contact-card{background:var(--ink);color:var(--white);padding:38px 34px;border-radius:2px;border-top:3px solid var(--gold);}
  .contact-card h3{font-size:24px;color:var(--white);margin-bottom:12px;}
  .contact-card p{color:#C9C4B4;font-size:14.5px;line-height:1.6;margin-bottom:26px;}
  .contact-card .btn-primary{width:100%;justify-content:center;}

  /* ---------- Social links (Contact section + footer) ---------- */
  .social-row{display:flex;gap:14px;padding:22px 0 6px;flex-wrap:wrap;}
  .social-circle{
    display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:50%;
    background:var(--cloud);border:1px solid var(--line);
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
  }
  .social-circle svg{width:20px;height:20px;fill:var(--ink);}
  .social-circle:hover{background:var(--gold);border-color:var(--gold);transform:translateY(-2px);}
  .social-circle:hover svg{fill:var(--white);}

  .foot-social{display:flex;gap:10px;margin-top:14px;}
  .foot-social .social-circle{
    width:36px;height:36px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);
  }
  .foot-social .social-circle svg{width:16px;height:16px;fill:#C9C4B4;}
  .foot-social .social-circle:hover{background:var(--gold);border-color:var(--gold);}
  .foot-social .social-circle:hover svg{fill:var(--white);}

  .cat-grid{grid-template-columns:repeat(4,1fr);}

  .enquiry-form{display:flex;flex-direction:column;gap:14px;}
  .f-row{display:flex;flex-direction:column;gap:6px;}
  .f-row label{
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.1em;
    text-transform:uppercase;color:#9C9376;
  }
  .f-row input, .f-row select, .f-row textarea{
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.16);
    color:var(--white);
    padding:10px 12px;font-size:14.5px;font-family:'Inter',sans-serif;
    border-radius:2px;resize:vertical;
  }
  .f-row input::placeholder, .f-row textarea::placeholder{color:#8A8474;}
  .f-row input:focus, .f-row select:focus, .f-row textarea:focus{
    outline:none;border-color:var(--gold);background:rgba(255,255,255,0.1);
  }
  .f-row select option{background:var(--ink);color:var(--white);}
  .f-note{font-size:12px;color:#8A8474;margin-top:-2px;}

  /* ---------- Checkout ---------- */
  .checkout-note{
    background:var(--cloud);border:1px solid var(--line);border-left:3px solid var(--gold);
    padding:26px 28px;border-radius:2px;
  }
  .checkout-note h3{font-size:17px;color:var(--ink);margin-bottom:12px;font-family:'Inter',sans-serif;font-weight:700;}
  .checkout-note p{font-size:14.5px;color:var(--steel);line-height:1.65;margin-bottom:10px;}
  .checkout-note p:last-child{margin-bottom:0;}
  .checkout-note a{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);}

  .pay-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .pay-option{
    position:relative;display:flex;flex-direction:column;gap:3px;
    background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.16);
    border-radius:2px;padding:12px 14px 12px 34px;cursor:pointer;transition:border-color .15s ease,background .15s ease;
  }
  .pay-option:hover{border-color:rgba(255,255,255,0.32);}
  .pay-option input[type="radio"]{position:absolute;left:12px;top:14px;accent-color:var(--gold);width:15px;height:15px;}
  .pay-option-title{font-size:14px;color:var(--white);font-weight:600;}
  .pay-option-sub{font-size:11.5px;color:#B3AC97;}
  .pay-option:has(input:checked){border-color:var(--gold);background:rgba(184,134,11,0.14);}

  .order-summary{
    border:1px solid rgba(255,255,255,0.16);border-radius:2px;padding:14px 16px;
    display:flex;flex-direction:column;gap:8px;
  }
  .order-row{display:flex;justify-content:space-between;font-size:14px;color:#C9C4B4;}
  .order-row span:last-child{font-family:'IBM Plex Mono',monospace;}
  .order-total{
    border-top:1px solid rgba(255,255,255,0.16);padding-top:10px;margin-top:2px;
    font-size:16px;color:var(--white);font-weight:700;
  }
  .order-total span:last-child{color:var(--gold-light);font-size:18px;}

  /* ---------- Catalogue ---------- */
  .catalogue{background:var(--cloud);}
  .cat-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px;}
  .cat-filter{
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:0.04em;
    padding:9px 16px;border:1px solid var(--line);background:var(--white);color:var(--steel);
    border-radius:2px;cursor:pointer;transition:all .15s ease;
  }
  .cat-filter:hover{border-color:var(--gold);color:var(--ink);}
  .cat-filter.active{background:var(--ink);border-color:var(--ink);color:var(--white);}
  .new-arrivals-empty{
    font-size:13.5px;color:var(--steel);font-style:italic;padding:18px 0 4px;
  }
  .cat-group{margin-bottom:44px;}
  .cat-group:last-of-type{margin-bottom:0;}
  .cat-group-title{
    font-size:15px;text-transform:uppercase;letter-spacing:0.08em;color:var(--gold);
    font-family:'IBM Plex Mono',monospace;font-weight:500;margin-bottom:18px;
    padding-bottom:10px;border-bottom:1px solid var(--line);
  }
  .prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:stretch;}
  .prod-grid--parts .prod-img{padding:16px;}
  /* Size guide banner — sits right under a wheel-size heading, showing the
     wheel size icon plus who the bikes in that group suit (age/height).
     The tile image (26"/20"/16"/12" + age/height panels) is one wide
     JPEG, so it can only be made smaller by capping its display width —
     never by cropping/object-fit, which would slice off part of the
     panels. Capping max-width scales the whole image down proportionally
     (height:auto keeps it from stretching), so nothing gets cut off. */
  .size-guide{
    display:flex;align-items:center;gap:16px;flex-wrap:wrap;
    background:var(--white);border:1px solid var(--line);border-radius:6px;
    padding:14px 20px 14px 8px;margin-bottom:26px;
  }
  .size-guide-badge{height:64px;width:auto;flex-shrink:0;}
  .size-guide-tiles{flex:1;min-width:200px;max-width:280px;}
  .size-guide-tiles img{display:block;width:100%;height:auto;border-radius:4px;}
  @media (max-width:640px){
    .size-guide{padding:14px;}
    .size-guide-badge{height:52px;}
    .size-guide-tiles{max-width:220px;}
  }
  .prod-card{
    background:var(--white);border:1px solid var(--line);border-radius:2px;overflow:hidden;
    transition:box-shadow .2s ease, transform .2s ease;
    display:flex;flex-direction:column;height:100%;
  }
  .prod-card:hover{box-shadow:0 10px 24px rgba(21,20,18,0.1);transform:translateY(-2px);}
  /* Brief highlight glow shown on the exact product a visitor was sent
     to via an ad/shared deep link (pedalcraft.pt/#itemNN), so it's
     obvious which card matched the ad they clicked. */
  @keyframes prodAdHighlight{
    0%{box-shadow:0 0 0 3px var(--gold), 0 10px 24px rgba(21,20,18,0.1);}
    100%{box-shadow:0 0 0 0 rgba(196,155,58,0);}
  }
  .prod-card--ad-highlight{animation:prodAdHighlight 1.6s ease-out;}
  .prod-img{position:relative;aspect-ratio:4/3;background:var(--white);display:flex;align-items:center;justify-content:center;padding:18px;flex-shrink:0;}
  .prod-img img{width:100%;height:100%;object-fit:contain;display:block;}
  /* Feature card — used for flagship "new arrival" products that need
     extra room: spans 2 grid columns and stacks a video with a small
     photo gallery underneath, instead of the usual single static image. */
  .prod-card--feature{grid-column:1 / -1;}
  .prod-img--feature{
    aspect-ratio:auto;flex-direction:column;gap:12px;padding:16px;
  }
  .prod-media-video{width:100%;}
  .prod-media-video video{
    width:100%;max-height:480px;object-fit:contain;display:block;
    background:#0c0b0a;border-radius:3px;
  }
  .prod-media-gallery{
    display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;
  }
  .prod-media-gallery img{
    width:100%;height:260px;object-fit:contain;display:block;
    background:var(--white);border:1px solid var(--line);border-radius:3px;
  }
  .prod-media-gallery--single{grid-template-columns:1fr;}
  .prod-media-item{margin:0;}
  .prod-media-item figcaption{
    margin-top:6px;text-align:center;font-size:12.5px;color:var(--steel);
    font-family:'IBM Plex Mono',monospace;letter-spacing:.02em;
  }
  /* Extra photos for the lightbox gallery (openLightboxFor() in the page
     script reads these via .prod-gallery img) — never shown in normal
     card layout, only pulled into the popup viewer. */
  .prod-gallery{display:none;}
  @media (max-width:640px){
    .prod-card--feature{grid-column:1 / -1;}
    .prod-media-gallery{grid-template-columns:1fr;}
    .prod-media-gallery img{height:220px;}
  }
  /* Ribbons/badges (Top Seller, New Arrival, Beginner's Choice, etc.)
     must never sit on top of the product photo — on a video card it
     blocked playback/controls, and on a still photo it was covering
     real product detail (baskets, handlebars). They now render as a
     plain label stacked above the media instead of an absolute overlay
     on it, in every card type — feature and standard alike. */
  .prod-img--feature .top-seller-ribbon,
  .prod-img--feature .corner-badge,
  .prod-card > .top-seller-ribbon,
  .prod-card > .corner-badge,
  .new-showcase-item > .corner-badge{
    position:relative;top:auto;align-self:flex-start;
    display:inline-block;margin:12px 0 0;
  }
  .prod-info{padding:14px 16px 16px;position:relative;display:flex;flex-direction:column;flex:1 0 auto;}
  .prod-info .btn-add-cart{margin-top:auto;}
  .prod-model{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink);font-weight:500;}
  .prod-model-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
  .prod-model-row > div{min-width:0;}
  @media (max-width:480px){
    .prod-badge-se{font-size:15px;}
  }
  .prod-swatch{display:flex;align-items:center;gap:6px;margin-top:4px;}
  .prod-swatch-dot{width:11px;height:11px;border-radius:50%;border:1px solid var(--line);display:inline-block;flex-shrink:0;}
  .prod-badge-se{font-family:'UnifrakturMaguntia',cursive;font-size:19px;color:var(--gold);line-height:1;white-space:nowrap;}
  .prod-meta{font-size:12.5px;color:var(--steel);margin-top:4px;}
  .prod-badge{
    display:inline-block;margin-top:8px;font-size:10px;letter-spacing:0.06em;text-transform:uppercase;
    background:var(--gold);color:var(--white);padding:3px 8px;border-radius:2px;font-weight:600;
  }
  .prod-card--top-seller{
    border-color:var(--gold);box-shadow:0 0 0 1px var(--gold), 0 10px 24px rgba(196,155,58,0.18);
  }
  .top-seller-ribbon{
    display:inline-block;
    background:var(--gold);color:var(--white);
    font-size:10px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
    padding:3px 8px;border-radius:2px;
  }
  /* Corner badge — same plain pill treatment as "Top Seller" and the
     inline prod-badge tags (Special Edition, ULTIMA, etc.), used for
     badges like "Beginner's Choice". Label text length varies a lot
     ("My Ride" vs "Junior's Favourite"), so it's capped to a fraction
     of the card width and allowed to wrap to a second line rather than
     stretching edge to edge. */
  .corner-badge{
    display:inline-block;
    background:var(--gold);color:var(--white);
    font-size:10px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
    padding:3px 8px;border-radius:2px;
    max-width:85%;white-space:normal;line-height:1.3;
  }
  @media (max-width:640px){
    .corner-badge{max-width:90%;font-size:9px;padding:3px 7px;}
  }
  .prod-price{
    font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:19px;
    color:var(--ink);margin-top:10px;
  }
  .btn-add-cart{
    display:block;width:100%;margin-top:8px;padding:8px 10px;
    background:var(--ink);color:var(--white);border:none;border-radius:2px;
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;
    cursor:pointer;transition:background .15s ease;
  }
  .btn-add-cart:hover{background:var(--gold);}
  .btn-add-cart.added{background:#3a7d44;}

  /* ---------- Cart ---------- */
  .lang-toggle{
    background:none;border:1px solid rgba(255,255,255,0.25);color:var(--white);
    padding:8px 12px;border-radius:2px;cursor:pointer;font-family:'IBM Plex Mono',monospace;
    font-size:12px;letter-spacing:0.04em;flex-shrink:0;
  }
  .lang-toggle:hover{border-color:var(--gold);}
  .lang-toggle .lang-sep{color:#8A8474;margin:0 2px;}
  .lang-toggle span[data-lang-opt]{color:#8A8474;}
  .lang-toggle.lang-en span[data-lang-opt="en"]{color:var(--gold-light);font-weight:700;}
  .lang-toggle.lang-pt span[data-lang-opt="pt"]{color:var(--gold-light);font-weight:700;}
  /* ---------- Running ticker ---------- */
  .ticker{
    background:var(--ink-soft);border-bottom:1px solid rgba(255,255,255,0.08);
    overflow:hidden;white-space:nowrap;
  }
  .ticker-track{
    display:inline-flex;align-items:center;width:max-content;
    animation:tickerScroll 42s linear infinite;
  }
  .ticker:hover .ticker-track{animation-play-state:paused;}
  @keyframes tickerScroll{
    0%{transform:translateX(0);}
    100%{transform:translateX(-50%);}
  }
  .ticker-item{
    display:inline-flex;align-items:center;gap:8px;
    padding:9px 22px;font-family:'IBM Plex Mono',monospace;font-size:12px;
    letter-spacing:0.03em;color:#D6D0BF;flex-shrink:0;
  }
  .ticker-item svg{width:14px;height:14px;stroke:var(--gold-light);flex-shrink:0;}
  .ticker-logo{height:24px;width:auto;display:block;}
  .ticker-slogan{color:var(--gold-light);font-weight:600;letter-spacing:0.08em;}
  .ticker-highlight{color:var(--gold-light);font-weight:700;}
  .ticker-highlight svg{stroke:var(--gold-light);}
  .ticker-sep{color:#5A5646;flex-shrink:0;}
  .ticker-social{display:inline-flex;align-items:center;gap:14px;padding:9px 22px;flex-shrink:0;}
  .ticker-social a{display:inline-flex;align-items:center;justify-content:center;}
  .ticker-social a svg{width:15px;height:15px;fill:var(--gold-light);}
  .ticker-social a:hover svg{fill:var(--white);}
  .ticker-social svg{width:15px;height:15px;stroke:var(--gold-light);}
  @media (max-width:640px){
    .ticker-item{padding:8px 16px;font-size:11px;}
    .ticker-social{padding:8px 16px;}
  }
  .nav-search-btn{
    background:none;border:1px solid rgba(255,255,255,0.25);color:var(--white);
    padding:7px;border-radius:2px;cursor:pointer;display:flex;align-items:center;
    transition:border-color .15s ease;flex-shrink:0;
  }
  .nav-search-btn:hover{border-color:var(--gold);}
  .nav-search-btn svg{width:16px;height:16px;stroke:var(--white);}

  /* ---------- Search ---------- */
  .search-overlay{
    position:fixed;inset:0;background:rgba(21,20,18,0.55);z-index:98;
    opacity:0;pointer-events:none;transition:opacity .2s ease;
  }
  .search-overlay.open{opacity:1;pointer-events:auto;}
  .search-panel{
    position:fixed;top:90px;left:50%;width:min(600px,92vw);max-height:min(70vh,560px);
    background:var(--white);border-radius:4px;box-shadow:0 20px 50px rgba(0,0,0,0.3);
    z-index:99;display:flex;flex-direction:column;overflow:hidden;
    transform:translate(-50%,-12px);opacity:0;pointer-events:none;
    transition:transform .2s ease,opacity .2s ease;
  }
  .search-panel.open{transform:translate(-50%,0);opacity:1;pointer-events:auto;}
  .search-panel-bar{
    display:flex;align-items:center;gap:10px;padding:14px 16px;
    border-bottom:1px solid var(--line);flex-shrink:0;
  }
  .search-panel-bar svg{width:18px;height:18px;stroke:var(--steel);flex-shrink:0;}
  .search-panel-bar input{
    flex:1;border:none;outline:none;font-size:15px;font-family:'Inter',sans-serif;
    color:var(--ink);background:transparent;
  }
  .search-panel-bar input::placeholder{color:#B3AC97;}
  .search-panel-bar .cart-close-btn{flex-shrink:0;}
  .search-results{flex:1;overflow-y:auto;padding:6px 0;}
  .search-hint{color:var(--steel);font-size:13.5px;padding:20px 16px;text-align:center;}
  .search-group-label{
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--steel);padding:12px 16px 6px;
  }
  .search-result{
    display:flex;align-items:center;gap:12px;width:100%;padding:9px 16px;
    background:none;border:none;text-align:left;cursor:pointer;font-family:'Inter',sans-serif;
  }
  .search-result:hover, .search-result.active{background:var(--cloud);}
  .search-result-thumb{
    width:36px;height:36px;flex:0 0 36px;border-radius:3px;overflow:hidden;
    background:var(--line);display:flex;align-items:center;justify-content:center;
  }
  .search-result-thumb img{width:100%;height:100%;object-fit:contain;display:block;background:var(--white);}
  .search-result-thumb svg{width:16px;height:16px;stroke:var(--steel);}
  .search-result-text{flex:1;min-width:0;}
  .search-result-title{font-size:13.5px;color:var(--ink);font-weight:500;}
  .search-result-sub{font-size:12px;color:var(--steel);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .search-result-price{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--gold);flex-shrink:0;}
  @media (max-width:640px){
    .search-panel{top:64px;width:94vw;max-height:75vh;}
  }
  .prod-card--search-hit{animation:searchHitFlash 1.6s ease;}
  @keyframes searchHitFlash{
    0%{box-shadow:0 0 0 3px var(--gold);}
    100%{box-shadow:none;}
  }
  .nav-cart-btn{
    position:relative;display:flex;align-items:center;gap:6px;background:none;border:1px solid rgba(255,255,255,0.25);
    color:var(--white);padding:8px 12px;border-radius:2px;cursor:pointer;font-family:'IBM Plex Mono',monospace;
    font-size:12px;letter-spacing:0.04em;transition:border-color .15s ease;flex-shrink:0;
  }
  .nav-cart-btn:hover{border-color:var(--gold);}
  .nav-cart-btn svg{width:16px;height:16px;stroke:var(--white);}
  .cart-count{
    background:var(--gold);color:var(--white);border-radius:50%;min-width:17px;height:17px;
    display:inline-flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;padding:0 4px;
  }
  .cart-count[data-empty="true"]{display:none;}

  .cart-overlay{
    position:fixed;inset:0;background:rgba(20,18,14,0.55);z-index:90;
    opacity:0;pointer-events:none;transition:opacity .2s ease;
  }
  .cart-overlay.open{opacity:1;pointer-events:auto;}
  .cart-drawer{
    position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--white);z-index:91;
    display:flex;flex-direction:column;box-shadow:-8px 0 24px rgba(0,0,0,0.2);
    transform:translateX(100%);transition:transform .25s ease;
  }
  .cart-drawer.open{transform:translateX(0);}
  .cart-drawer-head{
    display:flex;align-items:center;justify-content:space-between;padding:20px 22px;
    border-bottom:1px solid var(--line);
  }
  .cart-drawer-head h3{font-size:19px;color:var(--ink);}
  .cart-close-btn{background:none;border:none;font-size:22px;line-height:1;color:var(--steel);cursor:pointer;padding:4px;}
  .cart-close-btn:hover{color:var(--ink);}
  .cart-items{flex:1;overflow-y:auto;padding:10px 22px;}
  .cart-empty{color:var(--steel);font-size:14px;padding:30px 0;text-align:center;}
  .cart-item{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);}
  .cart-item-thumb{
    width:56px;height:56px;flex:0 0 56px;border-radius:4px;overflow:hidden;
    background:var(--line);display:flex;align-items:center;justify-content:center;
  }
  .cart-item-thumb img{width:100%;height:100%;object-fit:contain;display:block;background:var(--white);}
  .cart-item-name{font-size:13.5px;color:var(--ink);font-weight:500;line-height:1.4;}
  .cart-item-price{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--steel);margin-top:4px;}
  .cart-item-controls{display:flex;align-items:center;gap:8px;margin-top:8px;}
  .cart-qty-btn{
    width:22px;height:22px;border:1px solid var(--line);background:var(--white);border-radius:2px;
    cursor:pointer;font-size:14px;line-height:1;color:var(--ink);
  }
  .cart-qty-btn:hover{border-color:var(--gold);}
  .cart-item-qty{font-family:'IBM Plex Mono',monospace;font-size:13px;min-width:18px;text-align:center;}
  .cart-item-remove{
    margin-left:auto;background:none;border:none;color:#B3AC97;font-size:11px;
    text-transform:uppercase;letter-spacing:0.04em;cursor:pointer;font-family:'IBM Plex Mono',monospace;
  }
  .cart-item-remove:hover{color:#B14A3E;}
  .cart-drawer-foot{border-top:1px solid var(--line);padding:18px 22px 22px;}
  .cart-drawer-total{display:flex;justify-content:space-between;font-size:16px;color:var(--ink);font-weight:700;margin-bottom:14px;}
  .checkout-success{
    background:var(--white);border:1px solid var(--line);border-left:4px solid var(--gold);
    border-radius:6px;padding:28px 26px;margin-top:12px;
    scroll-margin-top:24px;
  }
  .checkout-success h3{font-size:20px;color:var(--ink);margin-bottom:10px;}
  .checkout-success p{color:var(--ink-soft);line-height:1.6;}
  .checkout-success-newbtn{margin-top:16px;}
  .pc-success-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
  .pc-success-actions .btn{margin-top:0;flex:1 1 200px;justify-content:center;}
  .pc-pdf-btn{background:transparent;border:1.5px solid var(--ink);color:var(--ink);font-weight:700;}
  .cart-drawer-total span:last-child{font-family:'IBM Plex Mono',monospace;color:var(--gold);}

  /* ---------- Product specs (visible button opens a modal) ---------- */
  .prod-specs-btn{
    display:inline-flex;align-items:center;gap:6px;margin-top:10px;
    background:var(--white);border:1px solid var(--line);color:var(--ink);
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;
    padding:8px 14px;border-radius:2px;cursor:pointer;
    transition:border-color .15s ease, color .15s ease;
  }
  .prod-specs-btn:hover{border-color:var(--gold);color:var(--gold);}
  .prod-specs-btn svg{width:14px;height:14px;flex-shrink:0;}
  .specs-modal-body{padding:18px 22px 22px;}

  /* ---------- Product full-screen lightbox (experimental, item1 only) ---------- */
  .prod-img{cursor:zoom-in;}
  .prod-lightbox{
    position:fixed;inset:0;background:var(--white);z-index:90;
    opacity:0;pointer-events:none;transition:opacity .25s ease;
    display:flex;flex-direction:column;
    height:100vh;height:100dvh;
    padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .prod-lightbox.open{opacity:1;pointer-events:auto;}
  .prod-lightbox-close{
    position:absolute;top:16px;right:16px;width:42px;height:42px;border-radius:50%;
    background:var(--white);border:1px solid var(--line);color:var(--ink);font-size:24px;line-height:1;
    display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;
    box-shadow:0 2px 8px rgba(0,0,0,0.12);
  }
  .prod-lightbox-close:hover{border-color:var(--gold);color:var(--gold);}
  /* Prev/next used to float on top of the photo itself, which meant
     tightly-cropped photos (bike filling the frame edge to edge, no
     spare white margin) always had the arrows sitting on top of the
     wheels — there was nowhere else for them to go without shrinking
     the photo. They now live in their own strip below the image, next
     to the counter, so they never overlap any photo regardless of how
     it's cropped. */
  .prod-lightbox-controls{
    flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:18px;
    padding:10px 16px;background:var(--white);
  }
  .prod-lightbox-controls[hidden]{display:none;}
  .prod-lightbox-arrow{
    position:static;width:40px;height:40px;border-radius:50%;flex-shrink:0;
    background:var(--white);border:1px solid var(--line);color:var(--ink);
    display:flex;align-items:center;justify-content:center;cursor:pointer;
  }
  .prod-lightbox-arrow:hover{border-color:var(--gold);color:var(--gold);}
  .prod-lightbox-arrow svg{width:20px;height:20px;}
  .prod-lightbox-counter{
    background:var(--cloud);color:var(--steel);font-family:'IBM Plex Mono',monospace;
    font-size:11.5px;letter-spacing:0.04em;padding:6px 13px;border-radius:20px;min-width:52px;text-align:center;
  }
  .prod-lightbox-imgwrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:60px 16px 16px;min-height:0;background:var(--white);overflow:hidden;}
  .prod-lightbox-imgwrap img{max-width:100%;max-height:100%;object-fit:contain;touch-action:none;cursor:zoom-in;user-select:none;-webkit-user-select:none;}
  .prod-lightbox-info{
    padding:16px 20px calc(20px + env(safe-area-inset-bottom));
    background:var(--white);border-top:1px solid var(--line);
  }
  .prod-lightbox-model{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--ink);margin-bottom:2px;}
  .prod-lightbox-meta{font-size:13px;color:var(--steel);margin-bottom:10px;}
  .prod-lightbox-price{font-size:20px;color:var(--gold);font-weight:700;margin-bottom:14px;font-family:'IBM Plex Mono',monospace;}
  .prod-lightbox-actions{display:flex;gap:10px;flex-wrap:wrap;}
  .prod-lightbox-actions .btn-add-cart{flex:1;min-width:140px;width:auto;text-align:center;}
  .prod-lightbox-actions .prod-specs-btn{flex:1;min-width:140px;justify-content:center;margin-top:0;}
  .specs-modal-model{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--steel);margin-bottom:14px;}
  .prod-specs{
    list-style:none;margin:0;padding:0;
    font-family:'IBM Plex Mono',monospace;font-size:12.5px;line-height:1.8;color:var(--ink);
    display:flex;flex-direction:column;gap:4px;
  }
  .prod-specs li{display:flex;gap:8px;}
  .prod-specs li::before{content:'✓';color:var(--gold);flex-shrink:0;}

  /* ---------- Reviews ---------- */
  .prod-reviews-line{
    display:flex;align-items:center;gap:6px;margin-top:8px;
    font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  }
  .prod-stars{color:var(--gold);letter-spacing:1px;font-size:13px;}
  .prod-stars.empty{color:#D8D2C2;}
  .prod-review-count{color:var(--steel);}
  .prod-review-link{
    background:none;border:none;padding:0;margin-top:4px;display:inline-block;
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.03em;
    color:var(--gold);text-decoration:underline;cursor:pointer;
  }
  .prod-review-link:hover{color:var(--ink);}

  .review-overlay{
    position:fixed;inset:0;background:rgba(20,18,14,0.55);z-index:95;
    opacity:0;pointer-events:none;transition:opacity .2s ease;
    display:flex;align-items:center;justify-content:center;padding:20px;
  }
  .review-overlay.open{opacity:1;pointer-events:auto;}
  .review-modal{
    background:var(--white);width:100%;max-width:480px;max-height:86vh;overflow-y:auto;
    border-radius:2px;box-shadow:0 12px 32px rgba(0,0,0,0.28);
    transform:translateY(12px);opacity:0;transition:transform .2s ease, opacity .2s ease;
  }
  .review-overlay.open .review-modal{transform:translateY(0);opacity:1;}
  .review-modal-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
    padding:20px 22px 14px;border-bottom:1px solid var(--line);
  }
  .review-modal-head h3{font-size:17px;color:var(--ink);line-height:1.3;}
  .review-modal-body{padding:18px 22px 22px;}
  .review-list{display:flex;flex-direction:column;gap:14px;margin-bottom:20px;}
  .review-item{border-bottom:1px solid var(--line);padding-bottom:14px;}
  .review-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
  .review-item-name{font-size:13.5px;color:var(--ink);font-weight:600;}
  .review-item-date{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:#B3AC97;}
  .review-item-text{font-size:13.5px;color:var(--steel);line-height:1.6;margin-top:6px;}
  .review-empty{font-size:13.5px;color:var(--steel);padding:6px 0 18px;}
  .review-form-title{font-size:14px;color:var(--ink);font-weight:700;margin-bottom:12px;}
  .star-picker{display:flex;gap:4px;margin-bottom:14px;}
  .star-picker button{
    background:none;border:none;font-size:26px;line-height:1;cursor:pointer;
    color:#D8D2C2;padding:0;
  }
  .star-picker button.active{color:var(--gold);}
  .review-note{font-size:11.5px;color:#8A8474;margin-top:6px;}

  /* Review modal sits on a white background, unlike the dark contact
     section that .f-row was originally styled for — override so the
     name/review text fields are actually visible (dark text, light
     field) instead of invisible white-on-white. */
  .review-modal .f-row input,
  .review-modal .f-row textarea{
    background:rgba(0,0,0,0.035);
    border:1px solid var(--line);
    color:var(--ink);
  }
  .review-modal .f-row input::placeholder,
  .review-modal .f-row textarea::placeholder{color:#B3AC97;}
  .review-modal .f-row input:focus,
  .review-modal .f-row textarea:focus{
    outline:none;border-color:var(--gold);background:rgba(0,0,0,0.055);
  }

  /* ---------- FAQ ---------- */
  .faq-list{max-width:800px;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-item:first-child{border-top:1px solid var(--line);}
  .faq-q{
    width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
    background:none;border:none;text-align:left;padding:20px 4px;cursor:pointer;
  }
  .faq-q h3{
    font-family:'Inter',sans-serif;font-weight:600;font-size:16px;color:var(--ink);line-height:1.4;
  }
  .faq-q .faq-icon{
    flex-shrink:0;width:20px;height:20px;position:relative;
  }
  .faq-q .faq-icon::before,.faq-q .faq-icon::after{
    content:'';position:absolute;background:var(--gold);transition:transform .2s ease;
  }
  .faq-q .faq-icon::before{left:0;top:9px;width:20px;height:2px;}
  .faq-q .faq-icon::after{left:9px;top:0;width:2px;height:20px;}
  .faq-item.open .faq-q .faq-icon::after{transform:rotate(90deg);}
  .faq-a{
    max-height:0;overflow:hidden;transition:max-height .25s ease;
  }
  .faq-item.open .faq-a{max-height:400px;}
  .faq-a-inner{padding:0 4px 20px;font-size:14.5px;color:var(--steel);line-height:1.7;max-width:68ch;}
  .faq-a-inner a{color:var(--gold);text-decoration:underline;}

  /* ---------- Newsletter ---------- */
  .newsletter{background:var(--ink);position:relative;overflow:hidden;}
  .newsletter::before{
    content:'';position:absolute;left:-6%;top:50%;transform:translateY(-50%);
    width:420px;height:420px;border-radius:50%;
    background:radial-gradient(circle,rgba(184,134,11,0.24),transparent 70%);
  }
  .newsletter-inner{
    position:relative;display:flex;align-items:center;justify-content:space-between;
    gap:36px;flex-wrap:wrap;padding-top:52px;padding-bottom:52px;
  }
  .newsletter-copy{max-width:440px;}
  .newsletter-copy .tag{color:var(--gold-light);}
  .newsletter-copy h2{font-size:clamp(24px,3vw,32px);color:var(--white);margin:8px 0 8px;}
  .newsletter-copy p{color:#C9C4B4;font-size:14.5px;line-height:1.6;}
  .newsletter-form-wrap{flex:1;min-width:280px;max-width:440px;}
  .newsletter-form{display:flex;gap:10px;flex-wrap:wrap;flex:1;max-width:440px;min-width:280px;}
  .newsletter-form input[type="email"]{
    flex:1;min-width:180px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.22);
    color:var(--white);padding:13px 14px;border-radius:2px;font-family:'Inter',sans-serif;font-size:14px;
  }
  .newsletter-form input[type="email"]::placeholder{color:#8A8474;}
  .newsletter-form input[type="email"]:focus{outline:none;border-color:var(--gold);}
  .newsletter-form button{white-space:nowrap;}
  .newsletter-note{width:100%;font-size:11.5px;color:#8A8474;margin-top:8px;}
  .newsletter-success{
    display:none;color:var(--gold-light);font-size:13.5px;font-weight:600;margin-top:4px;
  }
  .newsletter-success.show{display:block;}
  @media (max-width:760px){
    .newsletter-inner{padding-top:40px;padding-bottom:40px;flex-direction:column;align-items:flex-start;}
    .newsletter-form{max-width:100%;}
    .newsletter-form-wrap{width:100%;min-width:0;max-width:100%;}
  }
  @media (max-width:480px){
    .newsletter-form{min-width:0;gap:8px;}
    .newsletter-form input[type="email"]{min-width:0;flex-basis:100%;}
    .newsletter-form button{flex-basis:100%;}
  }

  /* ---------- WhatsApp floating button ---------- */
  .whatsapp-fab{
    position:fixed;right:22px;bottom:22px;z-index:80;
    display:flex;align-items:center;justify-content:center;
    width:56px;height:56px;border-radius:50%;background:#25D366;
    box-shadow:0 4px 14px rgba(0,0,0,0.28);transition:transform .15s ease, box-shadow .15s ease;
  }
  .whatsapp-fab:hover{transform:scale(1.06);box-shadow:0 6px 18px rgba(0,0,0,0.34);}
  .whatsapp-fab svg{width:30px;height:30px;fill:#fff;}
  .whatsapp-fab-label{
    position:absolute;right:66px;top:50%;transform:translateY(-50%);
    background:var(--ink);color:var(--white);font-family:'IBM Plex Mono',monospace;
    font-size:12px;letter-spacing:0.03em;padding:7px 12px;border-radius:2px;
    white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;
  }
  .whatsapp-fab:hover .whatsapp-fab-label{opacity:1;}
  @media (max-width:900px){
    .whatsapp-fab{right:16px;bottom:16px;width:52px;height:52px;}
    .whatsapp-fab-label{display:none;}
  }

  .parts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .parts-card{
    position:relative;border:1px solid var(--line);border-radius:2px;overflow:hidden;background:var(--white);
  }
  .parts-card img{width:100%;display:block;}
  .parts-card span{
    position:absolute;bottom:0;left:0;right:0;padding:10px 14px;
    background:linear-gradient(transparent, rgba(21,20,18,0.75));
    color:var(--white);font-family:'Barlow Condensed',sans-serif;font-weight:700;
    text-transform:uppercase;letter-spacing:0.04em;font-size:15px;
  }
  .cat-footnote{margin-top:36px;font-size:12.5px;color:var(--steel);line-height:1.6;max-width:70ch;}

  footer{background:var(--ink-soft);padding:32px 0;}
  .foot-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
  .foot-logo{display:flex;align-items:center;gap:10px;}
  .foot-brands{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .foot-divider{color:#5A5548;font-size:16px;}
  .foot-konex{display:flex;align-items:center;}
  .konex-logo-foot-lead{
    height:72px;width:auto;
  }
  .foot-by-group{display:flex;align-items:center;gap:8px;padding-left:14px;border-left:1px solid rgba(255,255,255,0.14);}
  .foot-konex-label{
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.06em;
    text-transform:lowercase;color:#9C9376;
  }
  .logo-svg--foot{height:22px;width:auto;opacity:0.85;}
  .foot-fine{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#9C9376;text-align:right;}

  .reveal{opacity:1;}

  a:focus-visible, button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

  @media (max-width:900px){
    .hero-panel{display:none;}
    .hero{background:var(--ink);padding-top:0;}
    .hero-inner{grid-template-columns:1fr;padding-left:0;padding-right:0;}
    .hero-mark{
      align-items:center;justify-content:flex-start;order:-1;
      width:100%;background:#F2E1D0;
      padding:32px 28px 36px;
      margin-bottom:10px;margin-top:0;
      box-shadow:0 30px 70px -20px rgba(184,134,11,0.55);
    }
    .hero-bike-card{width:min(360px,100%);margin-top:14px;}
    .hero-bike-caption{margin-top:10px;}
    .hero-logo-card{width:min(175px,100%);}
    .hero-inner > div:not(.hero-mark){padding-left:28px;padding-right:28px;}
    .plate-inner{grid-template-columns:repeat(2,1fr);}
    .plate-item:nth-child(3){border-left:none;}
    .section-head{grid-template-columns:1fr;}
    .cap-grid{grid-template-columns:repeat(2,1fr);}
    .cat-grid{grid-template-columns:repeat(2,1fr);}
    .prod-grid{grid-template-columns:1fr;}
    .parts-grid{grid-template-columns:1fr;}
    .trading-grid{grid-template-columns:1fr;}
    .about-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .foot-inner{flex-direction:column;align-items:flex-start;}
    .foot-fine{text-align:left;}
  }
  @media (max-width:520px){
    .cap-grid{grid-template-columns:1fr;}
  }
  /* Compact top-bar tier (641px–1440px): .nav-links is a hamburger
     dropdown in this whole range now (see the max-width:1440px rule
     above), but the logo, "by PedalCraft" label, search button,
     language toggle and cart button were still full desktop size —
     there was no compacting rule between the 640px phone fix and full
     desktop. That left tablet and laptop widths crowded, and it got
     worse in Portuguese since "Carrinho" is longer than "Cart". */
  @media (min-width:641px) and (max-width:1440px){
    .nav{padding:12px 20px;gap:10px;}
    .nav-by{display:none;}
    .lang-toggle{padding:7px 10px;font-size:11.5px;}
    .nav-cart-btn{padding:7px 10px;font-size:11.5px;gap:5px;}
    .nav-links{left:20px;}
  }
  /* Keep the top bar compact on phones so the cart button always stays
     fully visible and in place, in both English and Portuguese (the PT
     word "Carrinho" is much longer than "Cart" and was previously pushing
     the cart button off the edge of the screen). */
  @media (max-width:640px){
    .nav{padding:10px 14px;gap:8px;}
    .nav-by{display:none;}
    .lang-toggle{padding:7px 8px;font-size:11px;}
    .nav-cart-btn{padding:7px 8px;font-size:11px;gap:4px;}
    .nav-cart-btn span[data-i18n="nav.cart"]{display:none;}
  }

  /* -----------------------------------------------------------------
     NEW ARRIVALS — single "pop-up" showcase window
     Four bikes appear inside one shared frame with a staggered
     pop/scale-in animation instead of the usual grid of product cards.
     No price/specs/add-to-cart here — those live in the main
     catalogue's 20" Junior section for these same four bikes.
     ----------------------------------------------------------------- */
  .new-showcase{
    background:var(--ink);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:6px;
    padding:36px 28px 30px;
    position:relative;
    overflow:hidden;
  }
  .new-showcase::before{
    content:'';
    position:absolute;inset:0;
    background:radial-gradient(ellipse at 50% 0%, rgba(184,134,11,0.16), transparent 60%);
    pointer-events:none;
  }
  .new-showcase-head{
    text-align:center;
    margin-bottom:28px;
    position:relative;
  }
  .new-showcase-head .eyebrow{justify-content:center;color:#CBB98A;}
  .new-showcase-head .eyebrow::before{display:none;}
  .new-showcase-head p{
    color:#C9C4B4;font-size:14.5px;max-width:52ch;margin:10px auto 0;
  }
  .new-showcase-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
    position:relative;
    z-index:1;
  }
  .new-showcase-item{
    background:var(--ink-soft);
    border:1px solid rgba(255,255,255,0.07);
    border-radius:5px;
    padding:16px 14px 18px;
    text-align:center;
    opacity:0;
    transform:scale(0.72) translateY(18px);
    animation:newPop 0.62s cubic-bezier(.22,1.4,.36,1) forwards;
  }
  .new-showcase-item:nth-child(1){animation-delay:.05s;}
  .new-showcase-item:nth-child(2){animation-delay:.22s;}
  .new-showcase-item:nth-child(3){animation-delay:.39s;}
  .new-showcase-item:nth-child(4){animation-delay:.56s;}
  .new-showcase-item:nth-child(5){animation-delay:.73s;}
  @keyframes newPop{
    0%{opacity:0;transform:scale(0.72) translateY(18px);}
    65%{opacity:1;transform:scale(1.05) translateY(-4px);}
    100%{opacity:1;transform:scale(1) translateY(0);}
  }
  .new-showcase-item img{
    width:100%;height:auto;display:block;
    border-radius:3px;background:var(--white);
    margin-bottom:12px;
  }
  .new-showcase-model{
    font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.05em;
    color:var(--gold-light);
  }
  .new-showcase-meta{
    color:#D6D0BF;font-size:13.5px;margin-top:3px;
  }
  .new-showcase-price{
    font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:18px;
    color:var(--gold-light);margin-top:8px;
  }
  .new-showcase-item .btn-add-cart{
    background:var(--gold);color:var(--ink);
  }
  .new-showcase-item .btn-add-cart:hover{background:var(--gold-light);}
  .new-showcase-item .prod-specs-btn{
    background:transparent;border-color:rgba(255,255,255,0.22);color:#D6D0BF;
    width:100%;justify-content:center;
  }
  .new-showcase-item .prod-specs-btn:hover{border-color:var(--gold-light);color:var(--gold-light);}
  .new-showcase-item > .corner-badge{display:block;width:fit-content;}
  .new-showcase-foot{
    text-align:center;margin-top:26px;position:relative;z-index:1;
  }
  .new-showcase-foot p{
    color:#9C9376;font-size:12.5px;margin-bottom:12px;
  }
  @media (max-width:900px){
    .new-showcase-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:480px){
    .new-showcase-grid{grid-template-columns:1fr;}
  }
  /* New Arrivals teaser video — sits above the pop-up bike grid */
  .new-showcase-video{
    max-width:640px;margin:0 auto 30px;position:relative;z-index:1;
    border-radius:6px;overflow:hidden;
    border:1px solid rgba(255,255,255,0.1);
    box-shadow:0 12px 30px rgba(0,0,0,0.35);
  }
  .new-showcase-video video{
    display:block;width:100%;height:auto;background:#000;
  }


/* Keep the page from sliding sideways on phones */
html,body{overflow-x:clip;max-width:100%;}
@supports not (overflow-x:clip){body{overflow-x:hidden;}}
@media (max-width:600px){.newsletter-form-wrap,.newsletter-form{min-width:0 !important;width:100%;}}

/* Add to cart + View Specs side by side */
.card-actions{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:6px;align-items:stretch;margin-top:auto;padding-top:8px;}
.card-actions .btn-add-cart,.card-actions .prod-specs-btn{width:100% !important;min-width:0 !important;margin:0 !important;min-height:40px;padding:8px 6px !important;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;font-size:11px !important;letter-spacing:.03em !important;overflow:hidden;flex:none;}
.card-actions .prod-specs-btn svg{display:none;}
.prod-card--feature .btn-add-cart{min-width:0 !important;min-height:40px;}
.prod-card--feature .prod-specs-btn{min-height:40px;}

/* Specs popup with picture */
.pc-sp{position:fixed;inset:0;z-index:1000;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 12px;background:rgba(21,20,18,.62);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
.pc-sp.open{display:flex;}
.pc-sp-modal{width:100%;max-width:560px;margin:auto;background:var(--white);border-radius:16px;box-shadow:0 30px 60px -20px rgba(0,0,0,.5);overflow:hidden;animation:pcSpIn .22s ease;}
@keyframes pcSpIn{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.pc-sp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;background:var(--ink);color:var(--white);}
.pc-sp-head small{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);}
.pc-sp-head b{display:block;font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:700;letter-spacing:.02em;line-height:1.1;}
.pc-sp-x{background:none;border:1px solid rgba(255,255,255,.3);color:var(--white);width:36px;height:36px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;flex:none;}
.pc-sp-stage{background:var(--cloud);display:flex;align-items:center;justify-content:center;padding:14px;}
.pc-sp-stage img{max-width:100%;max-height:52vh;object-fit:contain;display:block;}
.pc-sp-thumbs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:10px 16px 0;}
.pc-sp-thumbs:empty{display:none;}
.pc-sp-thumbs button{width:56px;height:42px;border:2px solid var(--line);border-radius:8px;padding:0;background:var(--white);overflow:hidden;cursor:pointer;}
.pc-sp-thumbs button.on{border-color:var(--gold);}
.pc-sp-thumbs img{width:100%;height:100%;object-fit:contain;}
.pc-sp-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px 4px;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);}
.pc-sp-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px;border:1px solid rgba(0,0,0,.15);}
.pc-sp-meta b{font-family:'Barlow Condensed',sans-serif;font-size:22px;white-space:nowrap;}
.pc-sp-list{margin:6px 16px 0;padding:0 0 0 18px;font-family:'Inter',sans-serif;font-size:14px;line-height:1.55;color:var(--ink-soft);}
.pc-sp-actions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px 18px;}
.pc-sp-add{flex:1 1 160px;min-height:44px;border:0;border-radius:10px;background:var(--ink);color:var(--white);font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;font-size:14px;padding:8px 12px;}
.pc-sp-add:hover{background:var(--gold);}
.pc-sp-add.done{background:#3a7d44;}

/* Video thumbnails */
.pc-vthumb{position:relative;display:block;width:100%;height:100%;min-height:160px;cursor:pointer;overflow:hidden;background:var(--ink);border-radius:inherit;}
.pc-vthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pc-vthumb.contain img{object-fit:contain;}
.pc-vplay{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(21,20,18,.78);border:2px solid var(--gold-light);box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform .2s ease;}
.pc-vplay::after{content:"";position:absolute;left:54%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff;}
.pc-vthumb:hover .pc-vplay,.pc-vthumb:focus-visible .pc-vplay{transform:scale(1.07);}
.pc-vcap{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(to top,rgba(21,20,18,.88),rgba(21,20,18,0));color:#fff;text-align:left;pointer-events:none;}
.pc-vcap b{display:block;font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:700;letter-spacing:.02em;line-height:1.15;}
.pc-vcap small{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--gold-light);margin-top:2px;}
.pc-video{width:100%;display:block;background:#000;}

/* Size guide */
.pc-sg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px;align-items:start;}
@media (max-width:760px){.pc-sg{grid-template-columns:1fr;}}
.pc-sg-picker label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:8px;}
.pc-sg-row{display:flex;align-items:center;gap:8px;}
.pc-sg-row input{flex:1;min-width:0;font-size:18px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);}
.pc-sg-row span{font-family:'IBM Plex Mono',monospace;color:var(--steel);}
.pc-sg-result{margin:14px 0 12px;font-family:'Inter',sans-serif;color:inherit;min-height:1.4em;}
.pc-sg-result strong{font-family:'Barlow Condensed',sans-serif;font-size:28px;color:var(--gold-light);margin-right:4px;}
.pc-sg-table{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--white);}
.pc-sg-tr{display:grid;grid-template-columns:.7fr 1.4fr 1.1fr;gap:8px;padding:12px 14px;border-top:1px solid var(--line);font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);transition:background .2s;}
.pc-sg-tr b{font-family:'Barlow Condensed',sans-serif;font-size:20px;}
.pc-sg-th{border-top:0;background:var(--cloud);font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);}
.pc-sg-tr.on{background:var(--cool);}

/* Shipping, returns and privacy */
.pc-pol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
@media (max-width:860px){.pc-pol{grid-template-columns:1fr;}}
.pc-pol h3{margin-bottom:8px;}
.pc-pol p{margin-bottom:12px;}
.pc-pol a{color:var(--gold);font-weight:600;text-decoration:none;}

/* Checkout extras */
.pc-note{margin:0 0 14px;padding:10px 12px;border-radius:8px;background:var(--cool);font-family:'Inter',sans-serif;font-size:13.5px;color:var(--ink);line-height:1.45;}
.pc-linkbtn{background:none;border:0;padding:0;color:var(--gold);font-weight:600;text-decoration:underline;cursor:pointer;font:inherit;}
.pc-check{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;font-family:'Inter',sans-serif;font-size:13.5px;line-height:1.45;color:inherit;cursor:pointer;}
.pc-check input{width:18px;height:18px;margin-top:1px;flex:none;accent-color:var(--gold);}
.pc-check a{color:var(--gold-light);}
#checkoutForm textarea[readonly],#checkoutForm input[readonly]{opacity:.8;cursor:default;}
#pcSgShow[hidden],.pc-note[hidden]{display:none !important;}
.pc-chk-extra{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px;}
@media (max-width:420px){.pc-chk-extra{grid-template-columns:1fr;}}
.pc-btn2{min-height:44px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font-family:'Inter',sans-serif;font-weight:600;font-size:13.5px;cursor:pointer;padding:8px 12px;}
.pc-btn2:hover{border-color:var(--gold-light);color:var(--gold-light);}

/* Card photos all aligned the same way */
.prod-card:not(.prod-card--feature) .prod-img{aspect-ratio:4/3;padding:0 !important;overflow:hidden;min-height:0;}
.prod-card:not(.prod-card--feature) .prod-img > img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);object-fit:contain;}
.new-showcase-item > img{width:100%;aspect-ratio:4/3;object-fit:contain;display:block;}
.new-showcase-item .btn-add-cart{width:100%;}

/* Same starting line for every card photo, and the same spot for "Special Edition" */
.prod-card{position:relative;}
.prod-card > .corner-badge,.prod-card > .top-seller-ribbon{position:absolute !important;top:10px;left:0;z-index:3;margin:0 !important;}
.prod-model-row{flex-direction:column !important;align-items:flex-start !important;gap:4px;}
.prod-badge{align-self:flex-start;width:fit-content;max-width:100%;}
/* Empty-cart popup */
.pc-ec{position:fixed;inset:0;z-index:1001;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(21,20,18,.62);}
.pc-ec.open{display:flex;}
.pc-ec-box{width:100%;max-width:400px;background:var(--white);border-radius:14px;padding:24px 22px 20px;text-align:center;box-shadow:0 30px 60px -20px rgba(0,0,0,.5);animation:pcSpIn .22s ease;font-family:'Inter',sans-serif;color:var(--ink);}
.pc-ec-box h3{font-family:'Barlow Condensed',sans-serif;font-size:26px;text-transform:uppercase;margin:0 0 8px;color:var(--ink);}
.pc-ec-box p{font-size:14.5px;line-height:1.5;margin:0 0 18px;color:var(--steel);}
.pc-ec-actions{display:grid;gap:8px;}
.pc-ec-go{min-height:44px;border:0;border-radius:10px;background:var(--ink);color:var(--white);font-weight:600;font-size:14px;cursor:pointer;}
.pc-ec-go:hover{background:var(--gold);}
.pc-ec-close{min-height:40px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font-size:14px;cursor:pointer;}
/* Bigger colour swatches */
.prod-swatch{gap:8px;margin-top:6px;}
.prod-swatch-dot{width:22px !important;height:22px !important;border:2px solid #fff !important;box-shadow:0 0 0 1px var(--line),0 3px 8px -3px rgba(21,20,18,.35);}

/* Videos: real first frame + play button */
.pc-vwrap{position:relative;display:block;width:100%;background:#000;line-height:0;}
.pc-vwrap .pc-video{width:100%;height:auto;display:block;background:#000;}
.pc-vbtn{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;border:2px solid rgba(200,200,200,.85);background:rgba(28,28,28,.72);cursor:pointer;z-index:2;box-shadow:0 8px 24px rgba(0,0,0,.4);transition:transform .2s ease,background .2s ease;padding:0;}
.pc-vbtn::after{content:"";position:absolute;left:54%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent #fff;}
.pc-vbtn:hover{background:rgba(60,60,60,.85);transform:scale(1.06);}
.pc-vwrap.playing .pc-vbtn{display:none;}
.pc-vthumb.pc-na{container-type:inline-size;display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:100%;min-height:0;padding:8cqw 6cqw 7cqw;text-align:center;color:var(--ink);background:radial-gradient(ellipse 78% 62% at 50% 54%,#FFFFFF 0%,#FBF8EF 34%,#F3E7C6 62%,#E0C27E 84%,#B8860B 100%);}
.pc-na .pc-vplay{z-index:3;}
.pc-na-top{display:flex;flex-direction:column;align-items:center;gap:2px;}
.pc-na-title{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:17cqw;line-height:1;white-space:nowrap;letter-spacing:.01em;text-transform:uppercase;color:var(--ink);}
.pc-na--wide .pc-na-title{font-size:14cqw;}
.pc-na-sub{font-family:'Inter',sans-serif;font-size:4.6cqw;color:var(--steel);}
.pc-na-stage{position:relative;width:108%;margin:0 -4%;}
.pc-vthumb img.pc-na-bike{width:100%;height:auto;object-fit:contain;display:block;}
.pc-na-dots{display:flex;gap:3cqw;justify-content:center;}
.pc-na-dots i{width:6.5cqw;height:6.5cqw;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(21,20,18,.3),0 2px 6px rgba(21,20,18,.25);}
.pc-na-price{font-family:'Inter',sans-serif;font-size:4.4cqw;color:var(--steel);}
.pc-na-price strong{font-family:'Barlow Condensed',sans-serif;font-size:7.5cqw;color:var(--ink);margin-left:4px;}
.pc-na-tag{font-family:'IBM Plex Mono',monospace;font-size:3.2cqw;letter-spacing:.18em;text-transform:uppercase;color:rgba(21,20,18,.6);}

/* KONEX electric bicycles — coming soon */
.ebike-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:10px 28px;margin:44px 0;padding:34px 34px 30px;border-radius:18px;overflow:hidden;position:relative;color:#fff;background:radial-gradient(70% 90% at 85% 40%,rgba(184,134,11,.35) 0%,rgba(184,134,11,0) 60%),linear-gradient(160deg,#2A2722 0%,#151412 100%);box-shadow:0 30px 60px -30px rgba(21,20,18,.6);}
.ebike-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold));}
.ebike-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:rgba(184,134,11,.18);border:1px solid rgba(216,179,106,.45);font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);}
.ebike-dot{width:8px;height:8px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 0 0 rgba(216,179,106,.6);animation:ebPulse 1.8s ease-out infinite;}
@keyframes ebPulse{0%{box-shadow:0 0 0 0 rgba(216,179,106,.6);}100%{box-shadow:0 0 0 10px rgba(216,179,106,0);}}
.ebike-title{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:clamp(34px,5vw,52px);line-height:1;text-transform:uppercase;margin:14px 0 10px;color:#fff;}
.ebike-text{font-size:15px;line-height:1.6;color:rgba(247,244,236,.86);max-width:48ch;}
.ebike-feats{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px;padding:0;}
.ebike-feats li{font-size:12.5px;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.07);border:1px solid rgba(247,244,236,.16);color:#fff;}
.ebike-cta{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:8px;font-weight:700;font-size:14.5px;color:var(--ink) !important;text-decoration:none;background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 100%);box-shadow:0 10px 24px -10px rgba(184,134,11,.8);}
.ebike-cta:hover{background:linear-gradient(180deg,#E2C27A 0%,#9C7209 100%);}
.ebike-art svg{width:100%;height:auto;display:block;}
.eb-beam{animation:ebBeam 3.2s ease-in-out infinite;}
@keyframes ebBeam{0%,100%{opacity:.55;}50%{opacity:1;}}
@media (prefers-reduced-motion:reduce){.ebike-dot,.eb-beam{animation:none;}}
@media (max-width:760px){.ebike-card{grid-template-columns:1fr;padding:26px 20px 24px;}.ebike-art{order:-1;margin:-6px -8px 4px;}.ebike-cta{width:100%;}}

/* ---- pedalcraft.pt additions (generated) ---- */
html[data-lang="en"] .lang-pt, html[data-lang="pt"] .lang-en{display:none!important;}
.lang-toggle span.active{color:var(--gold-light);font-weight:700;}
.page-head{padding:54px 0 26px;border-bottom:1px solid var(--line);background:var(--cloud);}
.page-head h1{font-size:clamp(30px,4.5vw,46px);line-height:1.05;}
.page-head .desc{color:var(--steel);max-width:760px;margin-top:10px;font-size:16px;}
.page-body{padding:36px 0 60px;}
.crumbs{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);margin-bottom:14px;}
.crumbs a{color:var(--steel);}
.lg{max-width:860px;}
.lg h2{font-size:22px;margin:30px 0 10px;}
.lg h2:first-of-type{margin-top:0;}
.lg p,.lg li{color:var(--steel);font-size:15.5px;line-height:1.7;}
.lg p{margin-bottom:14px;}
.lg ul,.lg ol{padding-left:22px;margin-bottom:14px;}
.lg li{margin-bottom:6px;}
.lg strong{color:var(--ink);}
.lg a{color:var(--gold);text-decoration:underline;}
.lg a:hover{color:var(--ink);}
.lg-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--steel);letter-spacing:.04em;}
.lg-table{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:14px;}
.lg-table th,.lg-table td{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top;color:var(--steel);}
.lg-table th{background:var(--cloud);color:var(--ink);font-weight:600;}
.lg-pre{white-space:pre-wrap;background:var(--cloud);border:1px solid var(--line);padding:16px;font-family:'IBM Plex Mono',monospace;font-size:13px;line-height:1.6;color:var(--ink);}
.lr-logo img{border:1px solid var(--line);padding:6px;background:#fff;}
.trust{display:flex;flex-wrap:wrap;gap:10px 22px;padding:14px 0;font-size:13.5px;color:var(--steel);}
.trust span::before{content:"✓";color:var(--gold);font-weight:700;margin-right:6px;}
/* product cards as links */
.prod-card{position:relative;}
.prod-card .prod-link{position:absolute;inset:0;z-index:1;}
.prod-card .prod-info{position:relative;z-index:2;pointer-events:none;}
.prod-card .prod-info .btn-add-cart,.prod-card .prod-info a{pointer-events:auto;}
.prod-card.soldout .prod-img{opacity:.55;}
.stock-tag{position:absolute;top:10px;left:10px;z-index:3;background:var(--ink);color:#fff;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:2px;}
.stock-tag.low{background:var(--gold);color:var(--ink);}
.prod-vat{font-size:11.5px;color:var(--steel);letter-spacing:.04em;text-transform:uppercase;}
/* product page */
.pp{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;padding:40px 0 50px;}
@media(max-width:860px){.pp{grid-template-columns:1fr;gap:24px;}}
.pp-gallery .pp-main{background:var(--cloud);border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:zoom-in;aspect-ratio:1;display:flex;align-items:center;justify-content:center;}
.pp-gallery .pp-main img{width:100%;height:100%;object-fit:contain;}
.pp-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.pp-thumb{width:72px;height:72px;object-fit:cover;border:2px solid var(--line);border-radius:4px;cursor:pointer;background:#fff;}
.pp-thumb.on{border-color:var(--gold);}
.pp-info h1{font-size:clamp(26px,3.5vw,38px);line-height:1.05;}
.pp-model{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);margin-bottom:8px;}
.pp-price{font-family:'Barlow Condensed',sans-serif;font-size:40px;font-weight:800;margin:14px 0 2px;}
.pp-price small{font-family:'Inter',sans-serif;font-size:12px;font-weight:500;color:var(--steel);letter-spacing:.04em;text-transform:uppercase;margin-left:8px;}
.pp-badges{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;}
.pp-buy{display:flex;gap:10px;align-items:center;margin:16px 0;flex-wrap:wrap;}
.pp-buy input{width:70px;padding:12px;border:1px solid var(--line);border-radius:3px;font-size:16px;text-align:center;}
.pp-buy .btn-add-cart{width:auto;margin:0;padding:13px 22px;}
.pp-specs{margin:10px 0 0;padding-left:0;list-style:none;columns:1;}
.pp-specs li{padding:7px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--steel);}
.pp-specs li::before{content:"✓";color:var(--gold);font-weight:700;margin-right:8px;}
.pp-box{border:1px solid var(--line);border-radius:6px;padding:14px 16px;margin-top:12px;background:#fff;}
.pp-box h3{font-size:15px;margin-bottom:6px;}
.pp-box p{font-size:13.5px;color:var(--steel);line-height:1.6;}
.pp-safety dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:13.5px;}
.pp-safety dt{color:var(--ink);font-weight:600;}
.pp-safety dd{color:var(--steel);}
details.pp-more{border:1px solid var(--line);border-radius:6px;margin-top:12px;padding:0 16px;}
details.pp-more summary{cursor:pointer;padding:12px 0;font-weight:600;font-size:15px;}
details.pp-more>div{padding:0 0 14px;}
.pp-related{padding:30px 0 50px;border-top:1px solid var(--line);}
/* light forms (on white background) */
.form-light .f-row label{color:var(--steel);}
.form-light .f-row input,.form-light .f-row select,.form-light .f-row textarea{background:#fff;border:1px solid var(--line);color:var(--ink);}
.form-light .f-row input:focus,.form-light .f-row select:focus,.form-light .f-row textarea:focus{background:#fff;border-color:var(--gold);}
.form-light .f-row select option{background:#fff;color:var(--ink);}
.form-light .f-note{color:var(--steel);}
.form-light .pc-check{color:var(--ink);}
.form-light .pay-option{background:var(--cloud);border:1px solid var(--line);color:var(--ink);}
.form-light .pay-option-sub{color:var(--steel);}
.form-light h3{margin-top:8px;}
#ppBuyNow{background:var(--ink);color:#fff;border-color:var(--ink);}
/* checkout */
.chk-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;padding:30px 0 60px;}
@media(max-width:900px){.chk-grid{grid-template-columns:1fr;}}
.chk-items{border:1px solid var(--line);border-radius:6px;padding:6px 14px;background:#fff;}
.chk-item{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);}
.chk-item:last-child{border-bottom:none;}
.chk-item img{width:56px;height:56px;object-fit:contain;background:var(--cloud);border-radius:4px;}
.chk-item-name{font-weight:600;font-size:14px;}
.chk-item-sub{font-size:12.5px;color:var(--steel);}
.chk-item-tot{font-weight:600;}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}
@media(max-width:600px){.f-grid{grid-template-columns:1fr;}}
.pay-option.disabled{opacity:.45;}
.btn-order{width:100%;justify-content:center;background:var(--red);color:#fff!important;font-size:17px;padding:16px;}
.btn-order:hover{background:#b8202c;}
.f-ok{color:#1b7a3d;font-weight:600;}
.f-err{color:var(--red);font-weight:600;}
.sticky-sum{position:sticky;top:90px;}
/* order page */
.ord-head{display:flex;gap:30px;flex-wrap:wrap;margin-bottom:16px;}
.ord-no{font-family:'IBM Plex Mono',monospace;font-size:20px;font-weight:600;}
.ord-st{font-weight:700;color:var(--gold);}
.ord-steps{list-style:none;padding:0;display:flex;gap:6px;flex-wrap:wrap;margin:16px 0;}
.ord-steps li{flex:1 1 110px;border:1px solid var(--line);border-radius:4px;padding:8px 10px;font-size:12.5px;color:var(--steel);}
.ord-steps li.done{background:var(--cloud);color:var(--ink);border-color:var(--gold-light);}
.ord-steps li.now{border-color:var(--gold);box-shadow:0 0 0 2px var(--cool);}
.ord-steps li small{display:block;font-size:11px;color:var(--steel);}
/* dealers */
.dl-tools{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0;}
.dl-tools select,.dl-tools input{padding:11px 12px;border:1px solid var(--line);border-radius:3px;font-size:15px;min-width:220px;}
#dealerMap{height:380px;border:1px solid var(--line);border-radius:6px;margin-bottom:18px;background:var(--cloud);}
.dl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;}
.dl-card h3{margin:6px 0 4px;}
.dl-badge{display:inline-block;background:var(--gold);color:var(--ink);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:2px;font-weight:700;}
.dl-tag{display:inline-block;border:1px solid var(--line);border-radius:12px;padding:2px 9px;font-size:12px;margin:2px 4px 2px 0;color:var(--steel);}
.dl-hours{font-size:13px;color:var(--steel);}
.city-pills{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 20px;}
.city-pills span{border:1px solid var(--line);border-radius:14px;padding:4px 12px;font-size:13px;color:var(--steel);background:#fff;}
/* cookie banner */
.ck-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:120;background:var(--ink);color:#D6D0BF;border-radius:8px;padding:16px 18px;box-shadow:0 12px 30px rgba(0,0,0,.35);display:none;gap:14px;align-items:center;flex-wrap:wrap;font-size:13.5px;line-height:1.5;}
.ck-banner.show{display:flex;}
.ck-banner p{flex:1 1 320px;margin:0;}
.ck-banner a{color:var(--gold-light);}
.ck-banner .btn{padding:10px 16px;font-size:13px;}
.ck-banner .btn-ghost{color:#fff;border-color:#777;}
@media(min-width:900px){.ck-banner{left:auto;max-width:720px;}}
/* install / push bars */
.pc-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:115;background:#fff;color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.25);padding:14px 40px 14px 14px;display:none;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px;line-height:1.45;transform:translateY(20px);opacity:0;transition:all .3s;}
.pc-bar.on{display:flex;transform:none;opacity:1;}
.pc-bar img{width:46px;height:46px;border-radius:10px;}
.pc-bar .t{flex:1 1 220px;}
.pc-bar .t b{display:inline;}
.pc-bar .t>b:first-child{display:block;margin-bottom:2px;font-size:15px;}
.pc-bar .btn-ghost{color:var(--ink);border-color:var(--line);}
.pc-bar .bt{display:flex;gap:8px;}
.pc-bar .btn{padding:9px 14px;font-size:13px;}
.pc-bar .no{position:absolute;top:6px;right:8px;border:none;background:none;font-size:18px;cursor:pointer;color:var(--steel);}
@media(min-width:760px){.pc-bar{left:auto;max-width:520px;}}
/* toast */
.pc-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:4px;font-size:14px;opacity:0;pointer-events:none;transition:all .25s;z-index:130;}
.pc-toast.show{opacity:1;transform:translate(-50%,0);}
/* chat */
.pc-chat{position:fixed;right:18px;bottom:84px;z-index:110;}
.pc-chat-btn{position:relative;width:56px;height:56px;padding:0;border-radius:50%;border:none;background:var(--ink);cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.3);overflow:visible;}
.pc-chat-btn img{width:56px;height:56px;border-radius:50%;display:block;}
.pc-chat-dot{position:absolute;right:2px;bottom:2px;width:13px;height:13px;border-radius:50%;background:#25D366;border:2px solid #fff;}
.pc-chat-head img{border-radius:50%;flex-shrink:0;}
.pc-chat-head>div{flex:1;min-width:0;margin-left:10px;line-height:1.15;}
.pc-chat-head small{display:block;font-size:11px;opacity:.75;}
.pc-chat-box{position:absolute;right:0;bottom:62px;width:min(360px,calc(100vw - 36px));background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.25);display:flex;flex-direction:column;overflow:hidden;}
.pc-chat-box[hidden]{display:none !important;}
.pc-chat-head{display:flex;align-items:center;padding:10px 14px;background:var(--ink);color:#fff;}
.pc-chat-head button{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;}
.pc-chat-log{height:300px;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;font-size:14px;}
.pc-chat-log .me{align-self:flex-end;background:var(--cool);padding:8px 12px;border-radius:12px 12px 2px 12px;max-width:85%;}
.pc-chat-log .bot{align-self:flex-start;background:var(--cloud);padding:8px 12px;border-radius:12px 12px 12px 2px;max-width:85%;white-space:pre-wrap;}
.pc-chat-form{display:flex;border-top:1px solid var(--line);}
.pc-chat-form input{flex:1;border:none;padding:12px;font-size:14px;}
.pc-chat-form button{border:none;background:var(--gold);padding:0 16px;cursor:pointer;font-size:16px;}
.pc-chat-wa{font-size:12.5px;text-align:center;padding:8px;color:var(--steel);border-top:1px solid var(--line);}
/* footer */
.foot-inner{display:block!important;}
.foot-brands{margin-bottom:6px;}
.foot-fine{text-align:left!important;margin-top:16px;}
.foot-cols{width:100%;}
#instMonthly{color:var(--ink);}
.contact-card.form-light .muted,.contact-card.form-light p{color:var(--steel);}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:22px;padding:28px 0 10px;border-top:1px solid rgba(255,255,255,.08);}
.foot-cols h4{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-light);margin-bottom:10px;}
.foot-cols a{display:block;color:#D6D0BF;font-size:13.5px;padding:3px 0;}
.foot-cols a:hover{color:var(--gold-light);}
.foot-lr{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:14px;}
.foot-lr img{background:#fff;border-radius:3px;padding:4px;}
.foot-ral{font-size:12px;color:#9c968a;line-height:1.5;margin-top:10px;max-width:900px;}
.rev-verified{font-size:11.5px;color:#1b7a3d;font-weight:600;margin-left:8px;}
.star-picker button.on{color:var(--gold);}
.pc-sg-tr.hit{background:var(--cool);}
.f-msg{margin-top:10px;}
.whatsapp-fab{bottom:20px;}
.hero-bike-stage{position:relative;}
.nav-links a.nav-cta{color:var(--ink)!important;}
.note-box{border-left:4px solid var(--gold);background:var(--cloud);padding:12px 16px;margin:16px 0;font-size:14px;color:var(--steel);}
.faq-list{max-width:860px;}
.faq-item details{border-bottom:1px solid var(--line);}
.faq-item summary{cursor:pointer;padding:14px 0;font-weight:600;font-size:16px;list-style:none;display:flex;justify-content:space-between;}
.faq-item summary::after{content:"+";color:var(--gold);font-size:20px;}
.faq-item details[open] summary::after{content:"−";}
.faq-item .faq-a{padding:0 0 16px;color:var(--steel);font-size:15px;line-height:1.7;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
@media(max-width:860px){.two-col{grid-template-columns:1fr;}}
img.konex-wordmark{height:.9em;vertical-align:-0.1em;}

.pc-inst{position:fixed;inset:0;z-index:300;display:none;}
.pc-inst.on{display:block;}
.pc-inst-bg{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.pc-inst-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:90vh;overflow:auto;background:#fff;color:var(--ink);border-radius:12px;padding:24px 22px;box-shadow:0 20px 60px rgba(0,0,0,.35);}
.pc-inst-box h3{margin:0 0 6px;color:var(--ink);}
.pc-inst-x{position:absolute;right:12px;top:10px;border:0;background:none;font-size:20px;cursor:pointer;color:var(--ink);}
.pc-inst-tbl{width:100%;border-collapse:collapse;margin:14px 0;}
.pc-inst-tbl td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:15px;}
.pc-inst-tbl .btn-sm{padding:6px 12px;font-size:13px;}
@media(max-width:560px){.pc-inst-tbl td{display:block;padding:4px 0;border:0}.pc-inst-tbl tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}}

/* ---------- contrast fixes: no white text on light backgrounds ---------- */
.hero-bike-caption{color:#E8E2CF;opacity:.9;}
.catalogue .btn-ghost,.page-body .btn-ghost,.section-head .btn-ghost{color:var(--ink);border-color:rgba(21,20,18,.4);}
.catalogue .btn-ghost:hover,.page-body .btn-ghost:hover,.section-head .btn-ghost:hover{border-color:var(--ink);background:rgba(21,20,18,.06);}
.ck-banner .btn-ghost{background:transparent;color:#fff;border-color:#9A937C;}
a.btn.btn-primary{color:var(--ink);}
.form-light .pay-option-title{color:var(--ink);}
.form-light .order-summary{border-color:var(--line);}
.form-light .order-row{color:var(--steel);}
.form-light .order-total{border-top-color:var(--line);color:var(--ink);}
.form-light .order-total span{color:var(--ink);}
.form-light .order-total span:last-child{color:var(--gold);}
.form-light .checkout-note a,.form-light .pc-check a{color:#8A6508;border-bottom-color:#8A6508;}
