.elementor-kit-10{--e-global-color-primary:#DB0F17;--e-global-color-secondary:#F2F3F5;--e-global-color-text:#9CA1A8;--e-global-color-accent:#0B0C0E;--e-global-color-surface:#151B20;--e-global-color-line:#232B31;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-weight:800;--e-global-typography-primary-line-height:1.05em;--e-global-typography-primary-letter-spacing:-0.02em;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.1em;--e-global-typography-secondary-letter-spacing:-0.015em;--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"IBM Plex Sans";--e-global-typography-accent-font-size:12px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-letter-spacing:0.12em;background-color:#0B0C0E;}.elementor-kit-10 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */:root{
  --rb-bg:#0B0C0E; --rb-surface:#141519; --rb-ink:#F2F3F5;
  --rb-muted:#9CA1A8; --rb-accent:#DB0F17; --rb-line:#26272C;
  --rb-max:1240px;
}
html,body{background:var(--rb-bg);color:var(--rb-ink);}
body{font-family:'IBM Plex Sans',sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;}
body a{color:inherit;text-decoration:none;}
body .e-con,body .e-con-inner{padding:0;}
body .elementor-widget-heading .elementor-heading-title{color:var(--rb-ink);}
body .elementor-widget:not(:last-child){margin-block-end:0;}

/* ---- section shells ---- */
.e-con.rb-nav,.e-con.rb-hero,.e-con.rb-stats,.e-con.rb-story,.e-con.rb-kit,
.e-con.rb-split,.e-con.rb-specs,.e-con.rb-faq,.e-con.rb-close,.e-con.rb-foot{width:100%;--width:100%;}
.e-con.rb-nav__in,.e-con.rb-hero__in,.e-con.rb-stats__in,.e-con.rb-story__in,.e-con.rb-kit__in,
.e-con.rb-split__in,.e-con.rb-specs__in,.e-con.rb-faq__in,.e-con.rb-close__in,.e-con.rb-foot__in{
  max-width:var(--rb-max);margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px;width:100%;
}
.e-con.rb-story,.e-con.rb-kit,.e-con.rb-split,.e-con.rb-specs,.e-con.rb-faq{padding-top:120px;padding-bottom:120px;}
.e-con.rb-close{padding-top:140px;padding-bottom:140px;}

/* ---- type ---- */
.rb-h1 .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(42px,6.2vw,86px);line-height:1.02;letter-spacing:-0.025em;}
.rb-h2 .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(30px,3.3vw,45px);line-height:1.08;letter-spacing:-0.02em;max-width:17ch;}
.rb-h2{margin-bottom:26px;}
.rb-h2--wide .elementor-heading-title{max-width:24ch;}
.rb-h2--big .elementor-heading-title{font-size:clamp(34px,4.4vw,62px);max-width:19ch;margin:0 auto;}
.rb-h3 .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;line-height:1.25;letter-spacing:-0.01em;}
.rb-h3{margin-bottom:7px;}
.rb-eyebrow .elementor-heading-title{font-family:'IBM Plex Sans',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--rb-accent);}
.rb-eyebrow{margin-bottom:20px;}
.rb-lede{font-size:clamp(16px,1.25vw,19px);color:var(--rb-muted);max-width:52ch;}
.rb-lede p{margin:0;}
.rb-prose{color:var(--rb-muted);max-width:62ch;}
.rb-prose p{margin:0 0 18px;}
.rb-prose p:last-child{margin-bottom:0;}
.rb-small{font-size:14px;color:var(--rb-muted);}
.rb-small p{margin:0;line-height:1.75;}
.rb-fine{font-size:13px;color:var(--rb-muted);margin-top:20px;}
.rb-fine p{margin:0;}

/* ---- buttons ---- */
.rb-btn .elementor-button{font-family:'IBM Plex Sans',sans-serif;font-size:13px;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;border-radius:4px;padding:17px 30px;
  transition:transform .15s ease,background .15s ease,border-color .15s ease;}
.rb-btn .elementor-button:active{transform:translateY(1px);}
.rb-btn--primary .elementor-button{background:var(--rb-accent);color:#FFFFFF;border:1px solid var(--rb-accent);}
.rb-btn--primary .elementor-button:hover{background:#F2242C;border-color:#F2242C;color:#FFFFFF;}
.rb-btn--ghost .elementor-button{background:transparent;color:var(--rb-ink);border:1px solid #3A3C44;}
.rb-btn--ghost .elementor-button:hover{background:var(--rb-surface);border-color:#50525A;}
.rb-btn--sm .elementor-button{padding:12px 22px;font-size:12px;}
.e-con.rb-cta-row{flex-direction:row;flex-wrap:wrap;gap:14px;width:auto;--width:auto;margin-top:36px;align-items:center;}

/* ---- nav ---- */
.e-con.rb-nav{border-bottom:1px solid var(--rb-line);background:rgba(11,12,14,.94);position:sticky;top:0;z-index:50;}
.e-con.rb-nav__in{flex-direction:row;align-items:center;justify-content:space-between;gap:24px;padding-top:16px;padding-bottom:16px;}
.rb-logo .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:800;font-size:18px;letter-spacing:0.07em;}
.rb-logo .elementor-heading-title{font-style:italic;}
.rb-logo .elementor-heading-title::before{content:'';display:inline-block;width:5px;height:17px;background:var(--rb-accent);margin-right:10px;vertical-align:-2px;transform:skewX(-12deg);}
.e-con.rb-nav__links{flex-direction:row;align-items:center;gap:34px;width:auto;--width:auto;}
.rb-navlinks{font-size:14px;color:var(--rb-muted);}
.rb-navlinks p{margin:0;display:flex;gap:26px;white-space:nowrap;}
.rb-navlinks a:hover{color:var(--rb-ink);}

/* ---- hero ---- */
.e-con.rb-hero{border-bottom:1px solid var(--rb-line);overflow:hidden;}
.e-con.rb-hero__in{flex-direction:row;align-items:center;gap:60px;min-height:min(84vh,800px);padding-top:72px;padding-bottom:72px;}
.e-con.rb-hero__text{width:53%;--width:53%;max-width:640px;}
.e-con.rb-hero__media{width:47%;--width:47%;}

/* ---- placeholders: swap for real photography ---- */
.e-con.rb-ph{width:100%;--width:100%;border-radius:8px;position:relative;overflow:hidden;min-height:0;
  background-image:radial-gradient(120% 90% at 70% 24%,rgba(255,255,255,.10) 0%,rgba(219,15,23,.10) 38%,rgba(20,21,25,0) 70%),linear-gradient(155deg,#1B1C22 0%,#0D0E12 100%);
  border:1px solid var(--rb-line);}
.e-con.rb-ph::after{content:'';position:absolute;left:15%;top:22%;width:32%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.20) 0%,rgba(255,255,255,.06) 46%,rgba(255,255,255,0) 72%);}
.e-con.rb-ph--hero{aspect-ratio:5/6;}
.e-con.rb-ph--kit{aspect-ratio:4/3;margin-bottom:18px;}
.e-con.rb-ph--bleed{aspect-ratio:4/3;border-radius:8px 0 0 8px;border-right:0;}
.e-con.rb-ph--sq{aspect-ratio:1;}

/* ---- stats ---- */
.e-con.rb-stats{border-bottom:1px solid var(--rb-line);}
.e-con.rb-stats__in{flex-direction:row;gap:0;}
.e-con.rb-stat{flex:1;--width:auto;padding:42px 26px;border-left:1px solid var(--rb-line);gap:5px;}
.e-con.rb-stat:first-child{border-left:0;padding-left:0;}
.rb-stat__v .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(21px,2.1vw,29px);letter-spacing:-0.02em;}
.rb-stat__l{font-size:13px;color:var(--rb-muted);}
.rb-stat__l p{margin:0;}

/* ---- story ---- */
.e-con.rb-story__in{max-width:920px;}

/* ---- kit bento ---- */
.e-con.rb-kit{background:var(--rb-surface);border-top:1px solid var(--rb-line);border-bottom:1px solid var(--rb-line);}
.e-con.rb-kit__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rb-line);
  border:1px solid var(--rb-line);border-radius:8px;overflow:hidden;margin-top:10px;}
.e-con.rb-kit__item{background:var(--rb-surface);padding:26px;gap:0;--width:auto;}
.e-con.rb-kit__item.is-lead{grid-column:span 2;grid-row:span 2;background:#101117;padding:32px;justify-content:flex-end;}
.rb-kit__item.is-lead .rb-ph--kit{aspect-ratio:16/10;}
.rb-kit__item.is-lead .rb-h3 .elementor-heading-title{font-size:25px;}

/* ---- splits ---- */
.e-con.rb-split__in{flex-direction:row;align-items:center;gap:70px;}
.e-con.rb-split__media{width:50%;--width:50%;}
.e-con.rb-split__text{width:50%;--width:50%;}
.rb-split:not(.rb-split--rev) .e-con.rb-split__in{padding-left:0;margin-left:0;margin-right:auto;
  max-width:calc(var(--rb-max) + ((100vw - var(--rb-max)) / 2));}

/* ---- specs ---- */
.e-con.rb-specs__in{max-width:920px;}
table.rb-spec{width:100%;border-collapse:collapse;}
table.rb-spec td{padding:18px 0;border-bottom:1px solid var(--rb-line);vertical-align:top;font-size:15px;}
table.rb-spec tr:first-child td{border-top:1px solid var(--rb-line);}
table.rb-spec td:first-child{color:var(--rb-muted);width:44%;}
table.rb-spec td:last-child{color:var(--rb-ink);}

/* ---- faq ---- */
.e-con.rb-faq{background:var(--rb-surface);border-top:1px solid var(--rb-line);}
.e-con.rb-faq__in{max-width:880px;}
.rb-acc .elementor-accordion-item{border:0;border-bottom:1px solid var(--rb-line);}
.rb-acc .elementor-tab-title{background:transparent;padding:24px 0;font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;letter-spacing:-0.01em;}
.rb-acc .elementor-tab-title a{color:var(--rb-ink);}
.rb-acc .elementor-tab-title.elementor-active a{color:var(--rb-accent);}
.rb-acc .elementor-tab-content{background:transparent;border:0;padding:0 0 26px;color:var(--rb-muted);font-size:15px;}
.rb-acc .elementor-accordion-icon{color:var(--rb-accent);}

/* ---- closing ---- */
.e-con.rb-close{border-top:1px solid var(--rb-line);text-align:center;
  background-image:radial-gradient(90% 120% at 50% 0%,rgba(219,15,23,.10) 0%,rgba(219,15,23,0) 62%);}
.e-con.rb-close__in{align-items:center;}
.rb-close .rb-lede{margin-left:auto;margin-right:auto;text-align:center;}
.rb-close .e-con.rb-cta-row{justify-content:center;}

/* ---- footer ---- */
.e-con.rb-foot{border-top:1px solid var(--rb-line);padding-top:64px;padding-bottom:70px;}
.e-con.rb-foot__in{flex-direction:row;gap:56px;align-items:flex-start;}
.e-con.rb-foot__col{flex:1;--width:auto;gap:12px;}
.rb-foot__col strong{color:var(--rb-ink);font-weight:600;display:block;margin-bottom:7px;}

/* ---- responsive ---- */
@media(max-width:1024px){
  .e-con.rb-kit__grid{grid-template-columns:repeat(2,1fr);}
  .e-con.rb-kit__item.is-lead{grid-column:span 2;grid-row:auto;}
  .e-con.rb-split__in{gap:44px;}
}
@media(max-width:880px){
  .e-con.rb-story,.e-con.rb-kit,.e-con.rb-split,.e-con.rb-specs,.e-con.rb-faq{padding-top:74px;padding-bottom:74px;}
  .e-con.rb-close{padding-top:88px;padding-bottom:88px;}
  .e-con.rb-hero__in{flex-direction:column;align-items:flex-start;gap:42px;min-height:0;padding-top:56px;padding-bottom:64px;}
  .e-con.rb-hero__text,.e-con.rb-hero__media{width:100%;--width:100%;}
  .e-con.rb-ph--hero{aspect-ratio:4/3;}
  .e-con.rb-stats__in{flex-wrap:wrap;}
  .e-con.rb-stat{flex:1 1 50%;padding:26px 18px;border-left:0;border-top:1px solid var(--rb-line);}
  .e-con.rb-stat:first-child,.e-con.rb-stat:nth-child(2){border-top:0;}
  .e-con.rb-stat:nth-child(odd){padding-left:0;}
  .e-con.rb-split__in{flex-direction:column;max-width:var(--rb-max);margin-left:auto;margin-right:auto;padding-left:32px;}
  .e-con.rb-split--rev .rb-split__in{flex-direction:column-reverse;}
  .e-con.rb-split__media,.e-con.rb-split__text{width:100%;--width:100%;}
  .e-con.rb-ph--bleed{border-radius:8px;border-right:1px solid var(--rb-line);}
  .e-con.rb-foot__in{flex-direction:column;gap:34px;}
  .rb-navlinks{display:none;}
}
@media(max-width:560px){
  .e-con.rb-kit__grid{grid-template-columns:1fr;}
  .e-con.rb-kit__item.is-lead{grid-column:span 1;}
  .e-con.rb-cta-row{width:100%;--width:100%;}
  .rb-cta-row .rb-btn{width:100%;}
  .rb-cta-row .rb-btn .elementor-button{width:100%;justify-content:center;}
}
/* ---- specificity overrides ---- */
body .rb-eyebrow .elementor-heading-title{color:var(--rb-accent);}
body .rb-stat__v .elementor-heading-title{color:var(--rb-ink);}

body .rb-btn .elementor-button,
body .rb-btn .elementor-button-link{
  font-family:'IBM Plex Sans',sans-serif;font-size:13px;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;border-radius:4px;padding:17px 30px;
  line-height:1;transition:transform .15s ease,background-color .15s ease,border-color .15s ease;
}
body .rb-btn--primary .elementor-button{background-color:var(--rb-accent);color:#FFFFFF;border:1px solid var(--rb-accent);}
body .rb-btn--primary .elementor-button:hover{background-color:#F2242C;border-color:#F2242C;color:#FFFFFF;}
body .rb-btn--ghost .elementor-button{background-color:transparent;color:var(--rb-ink);border:1px solid #3A3C44;}
body .rb-btn--ghost .elementor-button:hover{background-color:var(--rb-surface);border-color:#50525A;color:var(--rb-ink);}
body .rb-btn--sm .elementor-button{padding:12px 22px;font-size:12px;}

/* logo lockup echoes the italic wordmark */
body .rb-logo .elementor-heading-title{font-style:italic;font-weight:800;letter-spacing:0.04em;}
body .rb-logo .elementor-heading-title::before{content:'';display:inline-block;width:5px;height:16px;
  background:var(--rb-accent);margin-right:10px;vertical-align:-2px;transform:skewX(-12deg);}

/* hero proportions: keep the CTA in the first viewport */
.e-con.rb-hero__in{min-height:min(78vh,760px);}
.e-con.rb-ph--hero{aspect-ratio:4/5;}
.e-con.rb-cta-row{margin-top:32px;gap:12px;}

/* faq accordion title colour */
body .rb-acc .elementor-tab-title a{color:var(--rb-ink);}
body .rb-acc .elementor-tab-title.elementor-active a{color:var(--rb-accent);}

@media(max-width:880px){
  .e-con.rb-ph--hero{aspect-ratio:4/3;}
}
/* hero headline: hold it to two lines */
body .rb-h1 .elementor-heading-title{font-size:clamp(38px,4.3vw,63px);line-height:1.04;letter-spacing:-0.028em;max-width:13ch;}
body .rb-lede{font-size:17px;max-width:46ch;}
@media(max-width:880px){
  body .rb-h1 .elementor-heading-title{font-size:clamp(34px,7.4vw,46px);max-width:14ch;}
}
/* spec table: hairlines only, no boxed borders */
body table.rb-spec,body table.rb-spec tbody,body table.rb-spec tr{border:0;}
body table.rb-spec td{border:0;border-bottom:1px solid var(--rb-line);padding:18px 0;}
body table.rb-spec tr:first-child td{border-top:1px solid var(--rb-line);}
body table.rb-spec tr:last-child td{border-bottom:1px solid var(--rb-line);}
body table.rb-spec td:first-child{color:var(--rb-muted);width:44%;padding-right:24px;}

/* accordion: hairline rows, no boxes */
body .rb-acc .elementor-accordion{border:0;}
body .rb-acc .elementor-accordion-item{border:0;border-bottom:1px solid var(--rb-line);}
body .rb-acc .elementor-accordion-item:first-child{border-top:1px solid var(--rb-line);}
body .rb-acc .elementor-tab-title{border:0;background:transparent;padding:24px 4px;}
body .rb-acc .elementor-tab-content{border:0;background:transparent;padding:0 4px 26px;}
body .rb-acc .elementor-accordion-icon{width:18px;}
body .rb-acc .elementor-accordion-icon svg{width:12px;height:12px;fill:var(--rb-accent);}

/* faq band reads a step lighter than the ground */
.e-con.rb-faq{background-color:#101115;}
.e-con.rb-kit{background-color:#101115;}
/* ---- real product photography ----
   Client shots are on a white studio ground with a baked in watermark, so they
   sit on a light plate rather than being cut out. Swap to cutouts if clean
   source files arrive. */
body .rb-shot img{display:block;width:100%;height:auto;border-radius:8px;background:#F4F5F6;}
body .rb-shot--hero img{aspect-ratio:4/5;object-fit:cover;object-position:center 42%;}
body .rb-shot--bleed img{aspect-ratio:4/3;object-fit:cover;border-radius:8px 0 0 8px;}
body .rb-shot--sq img{aspect-ratio:1;object-fit:cover;}
body .rb-shot--lead img{aspect-ratio:16/10;object-fit:cover;margin-bottom:20px;}
body .rb-shot{line-height:0;}

/* kit cells without a photo need their own rhythm */
.e-con.rb-kit__item:not(.is-lead){justify-content:flex-start;padding:28px 26px;}
.e-con.rb-kit__item:not(.is-lead) .rb-h3{margin-bottom:9px;}

/* header wordmark uses the real logo file */
body .rb-logo .elementor-heading-title{font-size:0;line-height:0;}
body .rb-logo .elementor-heading-title::before{
  content:'';display:block;width:150px;height:38px;background:transparent;transform:none;margin:0;
  background-image:url('/wp-content/uploads/2026/08/racebeam-logo-light.png');
  background-size:contain;background-repeat:no-repeat;background-position:left center;
}
body .rb-foot .rb-logo .elementor-heading-title::before{width:132px;height:34px;}
/* header uses the horizontal wordmark, footer keeps the full stacked lockup */
body .rb-nav .rb-logo .elementor-heading-title::before{
  width:168px;height:30px;
  background-image:url('/wp-content/uploads/2026/08/racebeam-wordmark-light.png');
}
body .rb-foot .rb-logo .elementor-heading-title::before{
  width:104px;height:58px;
  background-image:url('/wp-content/uploads/2026/08/racebeam-logo-light.png');
}
/* ---- boxed split, nothing cropped ----
   Photos are letterboxed on a white plate that matches their own studio ground,
   so the full product is always visible. */
.rb-split:not(.rb-split--rev) .e-con.rb-split__in{
  max-width:var(--rb-max);margin-left:auto;margin-right:auto;
  padding-left:32px;padding-right:32px;
}
body .rb-shot img{
  object-fit:contain;background:#FFFFFF;border-radius:8px;
}
body .rb-shot--bleed img{border-radius:8px;aspect-ratio:4/3;}
body .rb-shot--hero img{aspect-ratio:4/5;object-position:center;}
body .rb-shot--sq img{aspect-ratio:1;}
body .rb-shot--lead img{aspect-ratio:16/10;}
body .rb-shot--wide img{aspect-ratio:4/3;object-fit:contain;background:#FFFFFF;border-radius:8px;}

/* typographic figure, used where no usable photograph exists */
.e-con.rb-figure{background:#101115;border:1px solid var(--rb-line);border-radius:8px;
  padding:56px 44px;gap:0;align-items:flex-start;}
body .rb-figure__num .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:800;
  font-size:clamp(64px,7vw,104px);line-height:0.92;letter-spacing:-0.04em;color:var(--rb-ink);}
body .rb-figure__unit .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:800;
  font-size:24px;line-height:1;color:var(--rb-accent);margin-top:6px;}
.rb-figure__note{color:var(--rb-muted);font-size:15px;max-width:34ch;margin-top:26px;
  padding-top:26px;border-top:1px solid var(--rb-line);}
.rb-figure__note p{margin:0;}
@media(max-width:880px){.e-con.rb-figure{padding:40px 30px;}}
/* Lock heading colours so the editor preview matches the live site.
   Elementor's global primary colour is the brand red, which it otherwise
   paints onto headings inside the editor canvas. */
body .rb-h1 .elementor-heading-title,
body .rb-h2 .elementor-heading-title,
body .rb-h3 .elementor-heading-title,
body .rb-stat__v .elementor-heading-title,
body .rb-figure__num .elementor-heading-title{color:var(--rb-ink) !important;}
body .rb-eyebrow .elementor-heading-title,
body .rb-figure__unit .elementor-heading-title{color:var(--rb-accent) !important;}
/* ===== Site header (Theme Builder) ===== */
/* Sticky belongs on the Elementor header WRAPPER, not the inner container.
   A sticky element can only travel inside its parent's box, and that parent
   <header> is exactly as tall as the bar, so sticky on .rb-hd never stuck. */
header.elementor-location-header{position:sticky;top:0;z-index:100;}
.admin-bar header.elementor-location-header{top:32px;}
@media(max-width:782px){.admin-bar header.elementor-location-header{top:46px;}}
/* Anchor jumps (#kit, #specs, #faq) must clear the sticky bar, which is
   81px on desktop and 57px on phones. */
html{scroll-padding-top:100px;}
@media(max-width:1024px){html{scroll-padding-top:76px;}}
/* Logged-in admins also have the WP toolbar sitting above the bar. */
html:has(body.admin-bar){scroll-padding-top:132px;}
@media(max-width:782px){html:has(body.admin-bar){scroll-padding-top:122px;}}
.e-con.rb-hd{position:relative;width:100%;--width:100%;
  background-color:rgba(11,12,14,.94);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rb-line);
  transition:background-color .25s ease,box-shadow .25s ease;}
/* .rb-hd--stuck is added by JS as soon as the page scrolls off the top. The
   bar keeps its height, so nothing below it shifts: only the elevation reads. */
header.rb-hd--stuck .e-con.rb-hd{background-color:rgba(11,12,14,.88);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 12px 32px rgba(0,0,0,.55);}
.e-con.rb-hd__in{flex-direction:row;align-items:center;justify-content:space-between;
  max-width:var(--rb-max);margin:0 auto;width:100%;padding:14px 32px;gap:32px;}
.e-con.rb-hd__right{flex-direction:row;align-items:center;gap:36px;width:auto;--width:auto;}

body .rb-hd__logo{line-height:0;}
body .rb-hd__logo img{height:52px;width:auto;display:block;border-radius:0;background:none;}

body .rb-hd__nav .elementor-nav-menu{gap:0;}
body .rb-hd__nav .elementor-nav-menu a,
body .rb-hd__nav .elementor-nav-menu a.elementor-item{
  font-family:'IBM Plex Sans',sans-serif;font-size:14px;font-weight:400;color:var(--rb-muted);
  padding:8px 16px;background:transparent;}
body .rb-hd__nav .elementor-nav-menu a:hover,
body .rb-hd__nav .elementor-nav-menu a.elementor-item-active{color:var(--rb-ink);background:transparent;}
body .rb-hd__nav .elementor-item:before,
body .rb-hd__nav .elementor-item:after{display:none;}
body .rb-hd__nav .elementor-menu-toggle{color:var(--rb-ink);background:transparent;}
body .rb-hd__nav .elementor-nav-menu--dropdown{background-color:#101115;}
body .rb-hd__nav .elementor-nav-menu--dropdown a{color:var(--rb-ink);}

/* ===== Site footer (Theme Builder) ===== */
.e-con.rb-ft{width:100%;--width:100%;border-top:1px solid var(--rb-line);
  padding:72px 0 0;background-color:#0B0C0E;}
.e-con.rb-ft__in{flex-direction:row;align-items:flex-start;gap:56px;
  max-width:var(--rb-max);margin:0 auto;width:100%;padding:0 32px 56px;}
.e-con.rb-ft__col{flex:1;--width:auto;gap:12px;}
.e-con.rb-ft__col--brand{flex:1.4;}
body .rb-ft__logo{line-height:0;margin-bottom:6px;}
body .rb-ft__logo img{height:66px;width:auto;display:block;border-radius:0;background:none;}
body .rb-ft__h .elementor-heading-title{font-family:'Archivo',sans-serif;font-weight:700;
  font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:var(--rb-ink) !important;}
.rb-ft__h{margin-bottom:4px;}
.rb-ft .rb-small a:hover{color:var(--rb-ink);}
.e-con.rb-ft__bar{max-width:var(--rb-max);margin:0 auto;width:100%;padding:22px 32px;
  border-top:1px solid var(--rb-line);}
.rb-ft__bar .rb-fine{margin-top:0;}

@media(max-width:880px){
  .e-con.rb-hd__in{padding:12px 24px;gap:16px;}
  body .rb-hd__logo img{height:42px;}
  .e-con.rb-hd__right{gap:14px;}
  .e-con.rb-ft__in{flex-direction:column;gap:34px;padding-left:24px;padding-right:24px;}
  .e-con.rb-ft{padding-top:56px;}
  .e-con.rb-ft__bar{padding-left:24px;padding-right:24px;}
}
/* ---- alignment corrections ---- */
body .rb-hd__logo,
body .rb-ft__logo,
body .rb-hd__logo .elementor-widget-container,
body .rb-ft__logo .elementor-widget-container{text-align:left;}
body .rb-hd__logo img,
body .rb-ft__logo img{margin-left:0;margin-right:auto;}
.e-con.rb-ft__col{align-items:flex-start;text-align:left;}
.e-con.rb-ft__col--brand{align-items:flex-start;}
.rb-ft__col .rb-small,
.rb-ft__col .rb-small p{text-align:left;}

/* the client's lockup carries its own margins, so nudge it back onto the grid */
body .rb-hd__logo img{margin-left:0;}
body .rb-ft__logo img{margin-left:0;}

/* Hello Elementor's table styles arrived with the header/footer template.
   Keep the spec table on hairlines only. */
body .rb-spectable table.rb-spec tr,
body .rb-spectable table.rb-spec tbody tr,
body .rb-spectable table.rb-spec tr:nth-child(odd),
body .rb-spectable table.rb-spec tr:nth-child(even){background:transparent;}
body .rb-spectable table.rb-spec td{background:transparent;border:0;border-bottom:1px solid var(--rb-line);}
body .rb-spectable table.rb-spec tr:first-child td{border-top:1px solid var(--rb-line);}
/* ==========================================================
   Single product
   ========================================================== */
.e-con.rb-pdp{width:100%;--width:100%;padding:64px 0 0;}
.e-con.rb-pdp__in{flex-direction:row;align-items:flex-start;gap:64px;
  max-width:var(--rb-max);margin:0 auto;width:100%;padding:0 32px;}
.e-con.rb-pdp__media{width:54%;--width:54%;position:sticky;top:110px;}
.e-con.rb-pdp__buy{width:46%;--width:46%;gap:0;}

/* gallery sits on a white plate that matches the studio shots */
body .rb-pdp__gallery .woocommerce-product-gallery{width:100%!important;margin:0;}
body .rb-pdp__gallery .woocommerce-product-gallery__wrapper{border-radius:8px;overflow:hidden;background:#FFFFFF;}
body .rb-pdp__gallery img{border-radius:8px;background:#FFFFFF;display:block;}
/* FlexSlider builds .flex-viewport around the track once it initialises, and that
   viewport is the box the visitor actually sees. The radius has to live there, or
   the corners of the white product photo square off over the rounded frame. The
   per-slide radius covers the pre-JS state, before .flex-viewport exists. */
body .rb-pdp__gallery .flex-viewport{border-radius:8px;overflow:hidden;background:#FFFFFF;}
body .rb-pdp__gallery .woocommerce-product-gallery__image{border-radius:8px;overflow:hidden;background:#FFFFFF;}
body .rb-pdp__gallery .flex-control-thumbs li{border-radius:6px;overflow:hidden;line-height:0;}
body .rb-pdp__gallery .flex-control-thumbs{display:flex;gap:10px;margin:12px 0 0;padding:0;list-style:none;}
body .rb-pdp__gallery .flex-control-thumbs li{width:calc(25% - 8px);margin:0;}
body .rb-pdp__gallery .flex-control-thumbs img{border:1px solid var(--rb-line);border-radius:6px;opacity:.55;transition:opacity .15s ease,border-color .15s ease;}
body .rb-pdp__gallery .flex-control-thumbs img.flex-active,
body .rb-pdp__gallery .flex-control-thumbs img:hover{opacity:1;border-color:#4A4C54;}
body .rb-pdp__gallery .woocommerce-product-gallery__trigger{display:none;}

body .rb-pdp__title h1,body .rb-pdp__title .product_title{
  font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(30px,3vw,42px);
  line-height:1.06;letter-spacing:-0.02em;color:var(--rb-ink);margin:0 0 14px;}
body .rb-pdp__price .price,body .rb-pdp__price{font-family:'Archivo',sans-serif;font-weight:700;
  font-size:26px;color:var(--rb-ink);margin:0 0 20px;}
body .rb-pdp__price .woocommerce-Price-amount{color:var(--rb-ink);}
body .rb-pdp__short{color:var(--rb-muted);font-size:16px;max-width:52ch;margin-bottom:26px;}
body .rb-pdp__short p{margin:0;}

/* add to cart */
body .rb-pdp__atc form.cart{display:flex;gap:12px;align-items:stretch;margin:0 0 26px;flex-wrap:wrap;}
body .rb-pdp__atc .quantity{display:flex;}
body .rb-pdp__atc .quantity input.qty{width:78px;height:100%;min-height:52px;text-align:center;
  background:#101115;border:1px solid var(--rb-line);border-radius:4px;color:var(--rb-ink);
  font-family:'IBM Plex Sans',sans-serif;font-size:15px;}
body .rb-pdp__atc button.single_add_to_cart_button,
body .rb-pdp__atc .single_add_to_cart_button{
  background:var(--rb-accent);color:#FFFFFF;border:1px solid var(--rb-accent);border-radius:4px;
  font-family:'IBM Plex Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;padding:0 34px;min-height:52px;transition:background .15s ease;}
body .rb-pdp__atc button.single_add_to_cart_button:hover{background:#F2242C;border-color:#F2242C;}

.rb-assure ul{list-style:none;margin:0;padding:22px 0 0;border-top:1px solid var(--rb-line);}
.rb-assure li{position:relative;padding-left:22px;margin-bottom:9px;font-size:14px;color:var(--rb-muted);}
.rb-assure li:last-child{margin-bottom:0;}
.rb-assure li:before{content:'';position:absolute;left:0;top:8px;width:6px;height:6px;
  background:var(--rb-accent);border-radius:1px;}

/* long description + specs on the product page */
.e-con.rb-pdp-desc{width:100%;--width:100%;padding:96px 0 0;}
.e-con.rb-pdp-desc__in{max-width:900px;margin:0 auto;width:100%;padding:0 32px;}
body .rb-pdp__content h3{font-family:'Archivo',sans-serif;font-weight:800;font-size:22px;
  color:var(--rb-ink);margin:34px 0 12px;letter-spacing:-0.015em;}
body .rb-pdp__content h3:first-child{margin-top:0;}
body .rb-pdp__content p,body .rb-pdp__content li{color:var(--rb-muted);}
body .rb-pdp__content ul{padding-left:20px;}
body .rb-pdp__content li{margin-bottom:8px;}
body .rb-pdp__content strong{color:var(--rb-ink);font-weight:600;}
.e-con.rb-pdp-specs{width:100%;--width:100%;padding:80px 0 110px;}
.e-con.rb-pdp-specs__in{max-width:900px;margin:0 auto;width:100%;padding:0 32px;}

/* ==========================================================
   Product archive
   ========================================================== */
.e-con.rb-arch-hd{width:100%;--width:100%;padding:80px 0 44px;border-bottom:1px solid var(--rb-line);}
.e-con.rb-arch-hd__in{max-width:var(--rb-max);margin:0 auto;width:100%;padding:0 32px;}
.e-con.rb-arch{width:100%;--width:100%;padding:56px 0 110px;}
.e-con.rb-arch__in{max-width:var(--rb-max);margin:0 auto;width:100%;padding:0 32px;}

body .rb-grid ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0;padding:0;list-style:none;}
body .rb-grid ul.products::before,body .rb-grid ul.products::after{display:none;}
body .rb-grid ul.products li.product{width:auto;margin:0;float:none;padding:0;
  border:1px solid var(--rb-line);border-radius:8px;overflow:hidden;background:#101115;
  transition:border-color .15s ease;}
body .rb-grid ul.products li.product:hover{border-color:#3A3C44;}
body .rb-grid ul.products li.product img{margin:0;background:#FFFFFF;border-radius:0;aspect-ratio:4/3;object-fit:contain;}
body .rb-grid ul.products li.product .woocommerce-loop-product__title{
  font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;color:var(--rb-ink);
  padding:20px 20px 4px;margin:0;letter-spacing:-0.01em;}
body .rb-grid ul.products li.product .price{display:block;padding:0 20px;color:var(--rb-muted);font-size:15px;}
body .rb-grid ul.products li.product .price .woocommerce-Price-amount{color:var(--rb-ink);font-weight:600;}
body .rb-grid ul.products li.product .button,
body .rb-grid ul.products li.product .added_to_cart{
  display:inline-block;margin:16px 20px 20px;background:var(--rb-accent);color:#FFFFFF;
  border-radius:4px;padding:12px 22px;font-size:12px;font-weight:600;letter-spacing:0.1em;
  text-transform:uppercase;border:0;}
body .rb-grid ul.products li.product .button:hover{background:#F2242C;}
body .rb-grid .woocommerce-result-count,body .rb-grid .woocommerce-ordering{display:none;}

@media(max-width:1024px){ body .rb-grid ul.products{grid-template-columns:repeat(2,1fr);} }
@media(max-width:880px){
  .e-con.rb-pdp__in{flex-direction:column;gap:36px;padding:0 24px;}
  .e-con.rb-pdp__media,.e-con.rb-pdp__buy{width:100%;--width:100%;position:static;}
  .e-con.rb-pdp{padding-top:36px;}
  .e-con.rb-pdp-desc{padding-top:64px;}
  .e-con.rb-pdp-specs{padding:56px 0 80px;}
  .e-con.rb-arch__in,.e-con.rb-arch-hd__in,.e-con.rb-pdp-desc__in,.e-con.rb-pdp-specs__in{padding-left:24px;padding-right:24px;}
}
@media(max-width:560px){ body .rb-grid ul.products{grid-template-columns:1fr;} }
/* WooCommerce buttons must follow the brand, not Elementor's default accent */
body .rb-pdp__atc .single_add_to_cart_button,
body .rb-pdp__atc button[type="submit"],
body .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button,
body .woocommerce button.button.alt,
body .woocommerce a.button.alt,
body .woocommerce input.button.alt{
  background-color:var(--rb-accent)!important;color:#FFFFFF!important;
  border:1px solid var(--rb-accent)!important;border-radius:4px!important;
  font-family:'IBM Plex Sans',sans-serif!important;font-size:13px!important;font-weight:600!important;
  letter-spacing:0.1em!important;text-transform:uppercase!important;}
body .rb-pdp__atc .single_add_to_cart_button:hover,
body .woocommerce button.button.alt:hover,
body .woocommerce a.button.alt:hover{background-color:#F2242C!important;border-color:#F2242C!important;}
body .rb-pdp__atc .single_add_to_cart_button{padding:0 34px!important;min-height:52px!important;}
/* archive card titles follow the ink colour, not Elementor's global accent */
body .rb-grid ul.products li.product .woocommerce-loop-product__title,
body .rb-grid ul.products li.product h2,
body .rb-grid ul.products li.product a h2{color:var(--rb-ink)!important;}
body .rb-grid ul.products li.product a:hover .woocommerce-loop-product__title{color:var(--rb-accent)!important;}

/* ==========================================================
   Cart / Checkout / My account
   ========================================================== */
body.woocommerce-cart main,
body.woocommerce-checkout main,
body.woocommerce-account main,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main{
  max-width:var(--rb-max);margin:0 auto;width:100%;padding:64px 32px 110px;}
body.woocommerce-cart h1.entry-title,
body.woocommerce-checkout h1.entry-title,
body.woocommerce-account h1.entry-title{
  font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(28px,3vw,40px);
  letter-spacing:-0.02em;color:var(--rb-ink);margin:0 0 32px;}

/* --- form fields, shared --- */
body .woocommerce input.input-text,
body .woocommerce textarea,
body .woocommerce select,
body .wc-block-components-text-input input,
body .wc-block-components-textarea,
body .wc-blocks-components-select__select{
  background:#101115!important;border:1px solid var(--rb-line)!important;border-radius:4px!important;
  color:var(--rb-ink)!important;font-family:'IBM Plex Sans',sans-serif!important;font-size:15px!important;
  padding:13px 14px!important;box-shadow:none!important;}
body .woocommerce input.input-text:focus,
body .wc-block-components-text-input input:focus{border-color:#4A4C54!important;outline:none!important;}
body .wc-block-components-text-input label,
body .woocommerce form .form-row label,
body .wc-block-components-checkout-step__title{color:var(--rb-muted)!important;font-size:14px!important;}
body .wc-block-components-text-input.is-active label{color:var(--rb-muted)!important;}

/* --- WooCommerce Blocks cart + checkout --- */
body .wc-block-components-title,
body .wc-block-cart__totals-title,
body .wc-block-components-checkout-step__heading,
body .wc-block-components-order-summary__title{
  font-family:'Archivo',sans-serif!important;font-weight:700!important;color:var(--rb-ink)!important;
  letter-spacing:-0.01em!important;}
body .wc-block-components-product-name,
body .wc-block-components-totals-item__label,
body .wc-block-components-totals-item__value,
body .wc-block-cart-item__wrap,
body .wc-block-components-order-summary-item__description{color:var(--rb-ink)!important;}
body .wc-block-components-product-metadata,
body .wc-block-components-totals-footer-item-tax,
body .wc-block-components-checkout-step__description{color:var(--rb-muted)!important;}
body .wc-block-cart table.wc-block-cart-items,
body .wc-block-cart-items__row{background:transparent!important;border-color:var(--rb-line)!important;}
body .wc-block-cart-items__header{color:var(--rb-muted)!important;border-bottom:1px solid var(--rb-line)!important;}
body .wc-block-cart-items__row td{border-color:var(--rb-line)!important;}
body .wc-block-components-sidebar .wc-block-components-totals-wrapper,
body .wc-block-components-sidebar-layout .wc-block-components-sidebar{
  background:#101115!important;border:1px solid var(--rb-line)!important;border-radius:8px!important;}
body .wc-block-components-totals-wrapper{border-color:var(--rb-line)!important;}
body .wc-block-components-panel__button,
body .wc-block-components-checkout-step__title{color:var(--rb-ink)!important;}
body .wc-block-components-product-image img{border-radius:6px;background:#FFFFFF;}

/* block buttons */
body .wc-block-components-button:not(.is-link),
body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button{
  background-color:var(--rb-accent)!important;color:#FFFFFF!important;border:1px solid var(--rb-accent)!important;
  border-radius:4px!important;font-family:'IBM Plex Sans',sans-serif!important;font-weight:600!important;
  font-size:13px!important;letter-spacing:0.1em!important;text-transform:uppercase!important;
  min-height:52px!important;}
body .wc-block-components-button:not(.is-link):hover{background-color:#F2242C!important;border-color:#F2242C!important;}
body .wc-block-components-button.is-link,
body .wc-block-cart__submit-container a{color:var(--rb-muted)!important;}

/* --- classic WooCommerce elements (my account, notices) --- */
body .woocommerce .button,
body .woocommerce button.button,
body .woocommerce input.button{
  background-color:var(--rb-accent)!important;color:#FFFFFF!important;border-radius:4px!important;
  font-family:'IBM Plex Sans',sans-serif!important;font-size:13px!important;font-weight:600!important;
  letter-spacing:0.1em!important;text-transform:uppercase!important;padding:14px 26px!important;border:0!important;}
body .woocommerce .button:hover{background-color:#F2242C!important;}

body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error,
body .wc-block-components-notice-banner{
  background:#101115!important;border:1px solid var(--rb-line)!important;border-top:2px solid var(--rb-accent)!important;
  border-radius:6px!important;color:var(--rb-ink)!important;}
body .wc-block-components-notice-banner__content{color:var(--rb-ink)!important;}

/* my account */
body .woocommerce-MyAccount-navigation{width:24%;}
body .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;
  border:1px solid var(--rb-line);border-radius:8px;overflow:hidden;background:#101115;}
body .woocommerce-MyAccount-navigation ul li{border-bottom:1px solid var(--rb-line);margin:0;}
body .woocommerce-MyAccount-navigation ul li:last-child{border-bottom:0;}
body .woocommerce-MyAccount-navigation ul li a{display:block;padding:14px 18px;color:var(--rb-muted);
  font-size:14px;text-decoration:none;}
body .woocommerce-MyAccount-navigation ul li a:hover{color:var(--rb-ink);background:#15161B;}
body .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--rb-ink);background:#15161B;
  box-shadow:inset 3px 0 0 var(--rb-accent);}
body .woocommerce-MyAccount-content{width:72%;color:var(--rb-muted);}
body .woocommerce-MyAccount-content a{color:var(--rb-ink);}
body .woocommerce-MyAccount-content h2,body .woocommerce-MyAccount-content h3{
  font-family:'Archivo',sans-serif;font-weight:700;color:var(--rb-ink);}
body .woocommerce table.shop_table{border:1px solid var(--rb-line);border-radius:8px;background:#101115;
  border-collapse:separate;overflow:hidden;}
body .woocommerce table.shop_table th{color:var(--rb-ink);border-color:var(--rb-line);}
body .woocommerce table.shop_table td{color:var(--rb-muted);border-color:var(--rb-line);background:transparent;}
body .woocommerce-form-login,
body .woocommerce-form-register,
body .woocommerce-EditAccountForm{background:#101115;border:1px solid var(--rb-line);
  border-radius:8px;padding:28px;}
body .woocommerce form .form-row{margin-bottom:16px;}

@media(max-width:880px){
  body.woocommerce-cart main,body.woocommerce-checkout main,body.woocommerce-account main,
  body.woocommerce-cart .site-main,body.woocommerce-checkout .site-main,body.woocommerce-account .site-main{
    padding:40px 24px 72px;}
  body .woocommerce-MyAccount-navigation,body .woocommerce-MyAccount-content{width:100%;float:none;}
  body .woocommerce-MyAccount-navigation{margin-bottom:24px;}
}
/* ==========================================================
   Mobile header: one row, logo left, actions right
   ========================================================== */
@media(max-width:1024px){
  .e-con.rb-hd__in{flex-wrap:nowrap!important;gap:12px;padding:10px 20px;}
  .e-con.rb-hd__logo{flex:0 1 auto;min-width:0;}
  .e-con.rb-hd__right{flex:0 0 auto;flex-direction:row!important;align-items:center;
    gap:10px;width:auto!important;--width:auto!important;flex-wrap:nowrap!important;}
  body .rb-hd__logo img{height:40px;}

  /* nav collapses to a toggle that must not claim a full row */
  body .rb-hd__nav{width:auto!important;flex:0 0 auto;}
  body .rb-hd__nav .elementor-widget-container{display:flex;align-items:center;}
  body .rb-hd__nav .elementor-menu-toggle{margin:0;padding:8px;border:0;background:transparent;
    color:var(--rb-ink);font-size:22px;order:2;}
  body .rb-hd__nav .elementor-menu-toggle i,
  body .rb-hd__nav .elementor-menu-toggle svg{fill:var(--rb-ink);color:var(--rb-ink);}

  /* header CTA stays compact */
  body .rb-hd .rb-btn{width:auto!important;flex:0 0 auto;}
  body .rb-hd .rb-btn .elementor-button{width:auto!important;padding:11px 16px!important;
    font-size:11px!important;letter-spacing:0.08em!important;white-space:nowrap;}

  /* dropdown panel */
  body .rb-hd__nav .elementor-nav-menu--dropdown{background-color:#101115!important;
    border:1px solid var(--rb-line);border-radius:0 0 8px 8px;}
  body .rb-hd__nav .elementor-nav-menu--dropdown a{color:var(--rb-ink)!important;
    padding:15px 20px!important;font-size:15px!important;border-bottom:1px solid var(--rb-line);}
  body .rb-hd__nav .elementor-nav-menu--dropdown a:hover{background:#15161B!important;color:var(--rb-accent)!important;}
}
@media(max-width:480px){
  .e-con.rb-hd__in{padding:9px 16px;gap:8px;}
  body .rb-hd__logo img{height:34px;}
  body .rb-hd .rb-btn .elementor-button{padding:10px 13px!important;font-size:10px!important;}
}
/* footer keeps two columns on tablets rather than collapsing to one */
@media(max-width:880px) and (min-width:600px){
  .e-con.rb-ft__in{flex-direction:row!important;flex-wrap:wrap;gap:32px 28px;}
  .e-con.rb-ft__col{flex:0 0 calc(50% - 14px);--width:auto;}
  .e-con.rb-ft__col--brand{flex:0 0 100%;}
}
/* ==========================================================
   Cart / checkout on small screens
   The blocks layout uses alignwide/alignfull, which overflowed
   the viewport and left the page horizontally scrollable.
   ========================================================== */
body.woocommerce-cart,body.woocommerce-checkout,body.woocommerce-account{overflow-x:hidden;}
body.woocommerce-cart .alignwide,body.woocommerce-cart .alignfull,
body.woocommerce-checkout .alignwide,body.woocommerce-checkout .alignfull{
  width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;}

@media(max-width:880px){
  body .wc-block-components-sidebar-layout{display:block!important;}
  body .wc-block-components-main,
  body .wc-block-components-sidebar,
  body .wc-block-cart__main,
  body .wc-block-cart__sidebar,
  body .wc-block-checkout__main,
  body .wc-block-checkout__sidebar{
    width:100%!important;max-width:100%!important;flex:none!important;
    padding-left:0!important;padding-right:0!important;float:none!important;}
  body .wc-block-cart__sidebar,
  body .wc-block-checkout__sidebar{margin-top:28px;}

  /* cart line items stack instead of forcing a wide table */
  body .wc-block-cart-items__header{display:none;}
  body table.wc-block-cart-items,
  body table.wc-block-cart-items tbody,
  body table.wc-block-cart-items tr,
  body table.wc-block-cart-items td{display:block;width:100%;}
  body .wc-block-cart-items__row{position:relative;padding:18px 0;border-bottom:1px solid var(--rb-line);}
  body .wc-block-cart-item__total{text-align:left;padding-top:8px;}
  body .wc-block-cart-item__image{float:left;width:74px!important;margin-right:14px;padding:0;}
  body .wc-block-cart-item__product{overflow:hidden;padding:0;}

  /* totals panel */
  body .wc-block-components-totals-item{padding-left:16px;padding-right:16px;}
  body .wc-block-components-sidebar .wc-block-components-totals-wrapper{padding:4px 0;}
}

@media(max-width:560px){
  body .wc-block-components-title,
  body .wc-block-cart__totals-title{font-size:16px!important;}
  body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{font-size:20px!important;}
  body .wc-block-components-button:not(.is-link){font-size:12px!important;letter-spacing:0.08em!important;}
}
/* mobile menu opens as a full width panel under the header bar */
@media(max-width:1024px){
  .e-con.rb-hd{position:relative;}
  body .rb-hd__nav .elementor-nav-menu__container.elementor-nav-menu--dropdown{
    position:absolute!important;top:100%!important;left:0!important;right:0!important;
    width:100%!important;max-width:100%!important;margin:0!important;
    border-radius:0 0 10px 10px!important;border-top:1px solid var(--rb-line)!important;
    box-shadow:0 18px 40px rgba(0,0,0,.5)!important;z-index:120;}
  body .rb-hd__nav .elementor-nav-menu--dropdown ul,
  body .rb-hd__nav .elementor-nav-menu--dropdown li{width:100%;text-align:left;}
  body .rb-hd__nav .elementor-nav-menu--dropdown a.elementor-item{
    text-align:left!important;justify-content:flex-start!important;
    padding:16px 20px!important;font-size:15px!important;text-transform:none!important;
    letter-spacing:0!important;color:var(--rb-ink)!important;}
  body .rb-hd__nav .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{color:var(--rb-accent)!important;}
  body .rb-hd__nav .elementor-menu-toggle{position:relative;z-index:130;}
}
/* the dropdown was anchoring to the narrow nav widget, not the header bar */
@media(max-width:1024px){
  body .rb-hd__nav,
  body .rb-hd__nav .elementor-widget-container,
  body .e-con.rb-hd__right,
  body .e-con.rb-hd__in{position:static!important;}
  body .e-con.rb-hd{position:relative!important;}
  body .rb-hd .elementor-nav-menu__container.elementor-nav-menu--dropdown{
    position:absolute!important;top:100%!important;left:0!important;right:0!important;
    width:100%!important;max-width:none!important;}
  /* archive header needs breathing room under the bar on small screens */
  .e-con.rb-arch-hd{padding-top:44px;padding-bottom:32px;}
  .e-con.rb-arch{padding-top:36px;}
}
/* ==========================================================
   Paytrail payment groups on the dark checkout
   ========================================================== */
body .paytrail-woocommerce-payment-fields{background:transparent!important;border:0!important;padding:0!important;}
body .paytrail-provider-group{
  background:#101115!important;border:1px solid var(--rb-line)!important;border-radius:6px!important;
  margin-bottom:10px!important;overflow:hidden;}
body .paytrail-provider-group-title,
body .paytrail-provider-group > button{
  background:transparent!important;color:var(--rb-ink)!important;border:0!important;
  font-family:'IBM Plex Sans',sans-serif!important;font-size:15px!important;font-weight:500!important;
  text-align:left!important;padding:16px 18px!important;width:100%!important;cursor:pointer;
  display:flex!important;align-items:center!important;gap:12px;}
body .paytrail-provider-group > button:hover{background:#15161B!important;}
body .paytrail-provider-group svg,
body .paytrail-provider-group-title svg{fill:var(--rb-muted)!important;color:var(--rb-muted)!important;}

body .provider-list,
body .paytrail-woocommerce-payment-fields--list-item--wrapper{
  background:transparent!important;padding:6px 14px 16px!important;
  display:flex!important;flex-wrap:wrap!important;gap:10px!important;}
body .paytrail-woocommerce-payment-fields--list-item{
  background:#FFFFFF!important;border:1px solid var(--rb-line)!important;border-radius:6px!important;
  padding:8px!important;margin:0!important;transition:border-color .15s ease,transform .1s ease;}
body .paytrail-woocommerce-payment-fields--list-item:hover{border-color:var(--rb-accent)!important;transform:translateY(-1px);}

body .paytrail-woocommerce-payment-fields--list-item--input:checked
  + .paytrail-woocommerce-payment-fields--list-item{outline:2px solid var(--rb-accent)!important;}

/* the terms link inside the payment box */
body .payment_method_paytrail a,
body .wc-block-components-radio-control-accordion-content a{color:var(--rb-muted)!important;text-decoration:underline;}
body .payment_method_paytrail a:hover{color:var(--rb-ink)!important;}

@media(max-width:560px){

  body .paytrail-provider-group > button{font-size:14px!important;padding:14px 15px!important;}
}
/* ---------------------------------------------------------------
   Legal and information pages. Plain post content, three language
   blocks stacked on one URL so every policy has a single canonical
   address to link from the footer and the checkout terms notice.
   --------------------------------------------------------------- */
.rb-legal{max-width:820px;margin:0 auto;padding:56px 24px 96px;}
.rb-legal__kicker{font-family:'Archivo',sans-serif;font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rb-accent);margin:0 0 10px;}
.rb-legal h1{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(30px,5vw,44px);line-height:1.08;letter-spacing:-.02em;color:var(--rb-ink);margin:0 0 12px;}
.rb-legal__meta{color:var(--rb-muted);font-size:14px;margin:0 0 28px;}
.rb-legal__nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 44px;padding:0 0 28px;border-bottom:1px solid var(--rb-line);}
.rb-legal__nav a{display:inline-block;padding:9px 16px;border:1px solid #3A3C44;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--rb-ink);text-decoration:none;transition:border-color .15s ease,background .15s ease;}
.rb-legal__nav a:hover{border-color:var(--rb-accent);background:rgba(219,15,23,.08);}
.rb-legal__lang{scroll-margin-top:96px;padding:0 0 8px;}
.rb-legal__lang + .rb-legal__lang{margin-top:64px;padding-top:56px;border-top:1px solid var(--rb-line);}
.rb-legal h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(22px,3.4vw,28px);line-height:1.15;color:var(--rb-ink);margin:0 0 20px;}
.rb-legal h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;line-height:1.3;color:var(--rb-ink);margin:34px 0 10px;}
.rb-legal p,.rb-legal li{color:var(--rb-muted);font-size:16px;line-height:1.72;}
.rb-legal p{margin:0 0 16px;}
.rb-legal strong{color:var(--rb-ink);font-weight:600;}
.rb-legal a{color:var(--rb-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#3A3C44;}
.rb-legal a:hover{text-decoration-color:var(--rb-accent);}
.rb-legal ul{margin:0 0 16px;padding-left:20px;}
.rb-legal li{margin:0 0 8px;}
.rb-legal li::marker{color:var(--rb-accent);}
.rb-legal table{width:100%;border-collapse:collapse;margin:0 0 24px;}
.rb-legal th,.rb-legal td{text-align:left;padding:12px 0;border-bottom:1px solid var(--rb-line);font-size:15px;color:var(--rb-muted);vertical-align:top;}
.rb-legal th{color:var(--rb-ink);font-weight:600;width:44%;}
.rb-legal__card{background:var(--rb-surface);border:1px solid var(--rb-line);border-radius:10px;padding:24px;margin:0 0 24px;}
.rb-legal__card p:last-child{margin-bottom:0;}
.rb-legal__note{border-left:2px solid var(--rb-accent);padding:2px 0 2px 18px;margin:0 0 24px;}
.rb-legal__note p{margin:0;}
@media (max-width:767px){
  .rb-legal{padding:36px 20px 72px;}
  .rb-legal th,.rb-legal td{display:block;width:auto;border:0;padding:0;}
  .rb-legal th{padding-top:14px;}
  .rb-legal td{padding-bottom:14px;border-bottom:1px solid var(--rb-line);}
}
/* The policy pages carry their own styled <h1> inside .rb-legal, so the
   theme's page-header heading is suppressed to avoid a duplicate <h1>. */
body.rb-legal-page .page-header{display:none;}
body.rb-legal-page .site-main{padding:0;}

/* ---------------------------------------------------------------
   Contact form. Elementor Pro form widget dropped into the plain
   post content of the contact page via a section template, so the
   trilingual copy stays as hand-written HTML.
   --------------------------------------------------------------- */
.rb-form__wrap{max-width:820px;margin:0 auto;padding:0 24px;}
.rb-form{--rb-field:#101115;}
body .rb-form .elementor-form-fields-wrapper{margin:0 -8px;}
body .rb-form .elementor-field-group{padding:0 8px 18px;}
body .rb-form .elementor-field-group > label{display:block;font-family:'Archivo',sans-serif;font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--rb-muted);margin:0 0 8px;}
body .rb-form .elementor-field-group .elementor-field-required:after{content:'*';color:var(--rb-accent);margin-left:4px;}
body .rb-form .elementor-field-textual{width:100%;background:var(--rb-field);border:1px solid #3A3C44;border-radius:6px;color:var(--rb-ink);font-family:'IBM Plex Sans',sans-serif;font-size:16px;line-height:1.5;padding:13px 14px;transition:border-color .15s ease,box-shadow .15s ease;}
body .rb-form textarea.elementor-field-textual{min-height:150px;resize:vertical;}
body .rb-form .elementor-field-textual::placeholder{color:#6A6F77;}
body .rb-form .elementor-field-textual:focus{outline:none;border-color:var(--rb-accent);box-shadow:0 0 0 3px rgba(219,15,23,.18);}
body .rb-form .elementor-field-type-submit{padding-top:6px;}
body .rb-form .elementor-button{width:100%;background:var(--rb-accent);border:0;border-radius:4px;color:#FFFFFF;font-family:'Archivo',sans-serif;font-weight:800;font-size:14px;letter-spacing:.08em;text-transform:uppercase;padding:17px 24px;cursor:pointer;transition:background .15s ease;}
body .rb-form .elementor-button:hover,body .rb-form .elementor-button:focus{background:#F2242C;}
body .rb-form .elementor-message{font-size:15px;line-height:1.6;margin-top:14px;padding:14px 16px;border-radius:6px;}
body .rb-form .elementor-message-success{background:rgba(255,255,255,.04);border-left:2px solid var(--rb-accent);color:var(--rb-ink);}
body .rb-form .elementor-message-danger{background:rgba(219,15,23,.1);border-left:2px solid var(--rb-accent);color:var(--rb-ink);}
body .rb-form .elementor-field-group.elementor-error .elementor-field-textual{border-color:var(--rb-accent);}
body .rb-form .elementor-error .elementor-error-message{color:var(--rb-accent);font-size:13px;margin-top:6px;}
.rb-legal + .rb-form__wrap{padding-bottom:96px;}
@media (max-width:767px){
  .rb-form__wrap{padding:0 20px;}
  body .rb-form .elementor-field-group{width:100%!important;}
}
.rb-legal .rb-form__wrap{max-width:none;padding:0;}
.rb-form__intro{margin:0 0 26px;}
.rb-form__intro h2{margin-bottom:12px;}
.rb-form__block{padding:0 0 56px;margin:0 0 8px;border-bottom:1px solid var(--rb-line);}

/* ---------------------------------------------------------------
   Header account and cart icons.
   --------------------------------------------------------------- */
.rb-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
body .rb-hd__acct,body .rb-hd__cart{width:auto;flex:0 0 auto;}
body .rb-hd__acct .elementor-widget-container{display:flex;}
body .rb-hd__acct-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;color:var(--rb-ink);text-decoration:none;transition:background .15s ease,color .15s ease;}
body .rb-hd__acct-link:hover,body .rb-hd__acct-link:focus-visible{background:rgba(255,255,255,.07);color:#FFFFFF;}
body .rb-hd__acct-link:focus-visible{outline:2px solid var(--rb-accent);outline-offset:2px;}

body .rb-hd__cart .elementor-widget-container{display:flex;}
body .rb-hd__cart-link{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;color:var(--rb-ink);text-decoration:none;transition:background .15s ease,color .15s ease;}
body .rb-hd__cart-link:hover,body .rb-hd__cart-link:focus-visible{background:rgba(255,255,255,.07);color:#FFFFFF;}
body .rb-hd__cart-link:focus-visible{outline:2px solid var(--rb-accent);outline-offset:2px;}
body .rb-hd__cart-count{position:absolute;top:2px;right:1px;min-width:17px;height:17px;padding:0 4px;background:var(--rb-accent);color:#FFFFFF;border-radius:999px;font-family:'Archivo',sans-serif;font-size:10px;font-weight:800;line-height:17px;text-align:center;}

@media (max-width:1024px){
  body .rb-hd__acct-link,body .rb-hd__cart-link{width:38px;height:38px;}
}
@media (max-width:479px){
  body .rb-hd__acct-link,body .rb-hd__cart-link{width:34px;height:34px;}
  
}
/* EU shipping note on the cart. Sits inside the totals card once the script
   has moved it there; the fallback rule keeps it readable if it does not. */
body .rb-ship-note{max-width:1240px;margin:0 auto 40px;padding:0 24px;color:var(--rb-muted);font-size:13px;line-height:1.6;}
body .rb-ship-note--placed{max-width:none;margin:6px 0 0;padding:0;font-size:12.5px;color:var(--rb-muted);}

/* rb-float-fix
   WooCommerce Blocks uses floating labels: the label starts centred in the field
   and shrinks to the top once the field has a value. Our brand rule set a single
   padding on the input for every state, which left the value sitting underneath
   the floated label. The value needs to drop once the label is up.
   The select is always in the floated state, because it always has a value. */
body .wc-block-components-text-input.is-active input,
body .wc-block-components-text-input input:focus,
body .wc-blocks-components-select__select,
body .wc-block-components-textarea:focus{padding:23px 14px 6px!important;}
body .wc-block-components-text-input.is-active label,
body .wc-blocks-components-select__label{top:7px!important;}
/* rb-paytrail-spacing
   Paytrail renders a provider list under every payment group and keeps its
   vertical padding even while the list is collapsed. With four groups that is
   ~66px of dead space on a phone, pushing Place order further below the fold.
   Padding is removed by default and restored only for the open group. Browsers
   without :has() simply get a tighter open list - cosmetic, never broken. */
body .paytrail-provider-group{margin:6px 0!important;}
body .provider-list{padding:0 14px!important;}
body .provider-list > ul[aria-hidden="true"]{display:none!important;}
body .provider-list:has(> ul:not([aria-hidden="true"])){padding:8px 14px 16px!important;}
/* rb-paytrail-tiles
   Provider logos ship as SVG wordmarks with no intrinsic sizing, and Paytrail's
   own rule allows a 117px max height - so a Klarna wordmark was rendering in a
   108px tall white block, mostly empty. Tiles are given a fixed row height with
   the logo centred and contained. The white background stays: payment brand
   logos must not be recoloured, and these are dark-on-transparent. */
body ul.paytrail-woocommerce-payment-fields{display:flex!important;flex-wrap:wrap;gap:8px;margin:0!important;padding:0!important;list-style:none!important;}
body .paytrail-woocommerce-payment-fields--list-item{width:calc(33.333% - 6px)!important;height:auto!important;padding:0!important;margin:0!important;border-radius:6px;}
body .paytrail-woocommerce-payment-fields--list-item label{display:flex;align-items:center;justify-content:center;min-height:54px;padding:10px 8px;cursor:pointer;margin:0;}
body .paytrail-woocommerce-payment-fields--list-item--wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
body .paytrail-woocommerce-payment-fields--list-item--img{max-width:100%!important;height:auto!important;object-fit:contain;}
body .paytrail-woocommerce-payment-fields--list-item:has(input:checked){outline:2px solid var(--rb-accent);outline-offset:1px;}
@media (min-width:768px){
  body .paytrail-woocommerce-payment-fields--list-item{width:calc(25% - 6px)!important;}
}
/* ---------------------------------------------------------------
   Hero video. The clip is 9:16 and is now the hero media in its own
   right - the kit photo has moved down to the story section. Its
   poster is a frame grabbed from the clip itself, so the still and
   the motion are the same scene and there is no jump when playback
   starts. That poster is also the whole fallback: if playback is
   skipped for reduced motion, data saver or a refused autoplay, the
   element stays put and simply shows the frame.
   --------------------------------------------------------------- */
.rb-hero{position:relative;}
.rb-hero__video{position:relative;overflow:hidden;z-index:0;}
.rb-hero__video-el{width:100%;height:100%;object-fit:cover;display:block;background:#0B0C0E;}
.rb-hero__video-scrim{position:absolute;inset:0;display:block;pointer-events:none;}
/* Last-resort control, shown only when play() rejected with NotAllowedError
   AND the visitor has already touched the page without it starting. iOS Low
   Power Mode and Low Data Mode both refuse autoplay outright and cannot be
   overridden in code.

   Corner, not centre: the first build centred this and it landed directly on
   top of the BUY NOW button in the mobile hero - the fallback for a decorative
   background was covering the primary conversion control. It is also quiet
   rather than accent red, because it must never read as the page's main call
   to action. */
.rb-hero__video-play{position:absolute;right:14px;bottom:14px;z-index:3;
  display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;
  border:1px solid rgba(255,255,255,.35);border-radius:999px;
  background:rgba(11,12,14,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  color:#FFFFFF;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.45);
  transition:transform .18s ease,background-color .18s ease;}
.rb-hero__video-play[hidden]{display:none;}
.rb-hero__video-play svg{width:20px;height:20px;margin-left:2px;}
.rb-hero__video-play:hover{background:rgba(11,12,14,.82);transform:scale(1.06);}
.rb-hero__video-play:focus-visible{outline:2px solid #FFFFFF;outline-offset:3px;}
.rb-hero__video-wrap{position:static!important;width:auto!important;}
.rb-hero__video-wrap .elementor-widget-container{position:static;}

/* Phone: behind the headline. The scrim is weighted to where the copy
   sits and opens up over the lower third, which is where the beam is. */
@media (max-width:767px){
  .rb-hero__media,.rb-hero__video-wrap .elementor-widget-container{position:static!important;}
  .rb-hero__video{position:absolute;inset:0;border-radius:0;}
  .rb-hero__video-scrim{background:linear-gradient(180deg,rgba(11,12,14,.86) 0%,rgba(11,12,14,.8) 38%,rgba(11,12,14,.55) 68%,rgba(11,12,14,.88) 100%);}
  .rb-hero__text{position:relative;z-index:1;}
  .rb-hero__text{text-shadow:0 1px 18px rgba(11,12,14,.9),0 1px 3px rgba(11,12,14,.8);}
  .rb-lede{color:#E4E6E9;}
}

/* Desktop: in the media column, held to the same 3:4 footprint the kit
   photo used so the hero rhythm is unchanged. The clip is taller than
   that, so it is cropped from the centre rather than letterboxed. */
@media (min-width:768px){
  .rb-hero__video{aspect-ratio:3/4;border-radius:10px;width:100%;max-width:430px;margin-left:auto;border:2px solid var(--rb-accent);box-shadow:0 0 0 1px rgba(219,15,23,.25),0 18px 50px rgba(0,0,0,.45);}
  .rb-hero__video-el{object-position:50% 45%;}
  .rb-hero__video-scrim{background:linear-gradient(180deg,rgba(11,12,14,0) 62%,rgba(11,12,14,.4) 100%);}
}
/* ---------------------------------------------------------------
   Story section. The kit photo moved here from the hero, so the
   section becomes two columns on desktop: the copy on the left, the
   product on the right. Source order stays heading, prose, image, so
   a phone reads the story first and meets the product underneath.
   --------------------------------------------------------------- */
.rb-story__shot img{display:block;width:100%;height:auto;border-radius:10px;background:#FFFFFF;}
@media (min-width:900px){
  .rb-story__in{max-width:1180px!important;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr auto auto 1fr;column-gap:72px;row-gap:0!important;}
  .rb-story__in > .rb-h2{grid-column:1;grid-row:2;margin-bottom:30px;}
  .rb-story__in > .rb-prose{grid-column:1;grid-row:3;}
  .rb-story__in > .rb-story__shot{grid-column:2;grid-row:1 / -1;align-self:center;width:100%;max-width:500px;justify-self:end;}
}
/* Phone: the product photo leads, the story reads underneath. Source order
   in the DOM is unchanged (heading, prose, image) so the H2 still comes first
   for screen readers and crawlers; only the painted order flips. */
@media (max-width:899px){
  .rb-story__in{display:flex;flex-direction:column;}
  /* Elementor sets margin-block-end on the widget itself, which outranks a
     plain margin-bottom here, so the extra breathing room is declared on the
     same property. 14px + the container's 20px row-gap = 34px under the photo. */
  .rb-story__in > .rb-story__shot{order:-1;margin-block-start:0!important;margin-block-end:14px!important;}
}
/* ---------------------------------------------------------------
   Shipment tracking block on the order-received and My Account order
   pages. Rendered by racebeam-tracking.php.
   --------------------------------------------------------------- */
.rb-track{margin:34px 0 0;padding:22px 24px;border:1px solid var(--rb-line);border-radius:10px;}
.rb-track__title{margin:0 0 10px!important;font-size:12px!important;font-weight:700!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--rb-muted)!important;}
.rb-track__meta{margin:0 0 18px!important;line-height:1.65!important;}
.rb-track__meta strong{font-size:18px;letter-spacing:.02em;}

/* ---------------------------------------------------------------------------
   RaceBeam: product reviews
   ---------------------------------------------------------------------------
   Paste into the Elementor kit custom CSS, alongside the existing .rb-* rules.

   WooCommerce's review markup assumes a light theme - dark text, light
   borders, a white form. Dropped onto this site untouched it renders as black
   text on a black background. Everything below is re-colouring that markup for
   the dark UI; no layout is changed, so a WooCommerce update cannot break it.

   Add these to the WP Rocket "Remove Unused CSS" safelist or they will be
   stripped from the optimised stylesheet:
     #reviews  .woocommerce-Reviews  .commentlist  .comment_container
     .comment-text  .star-rating  .comment-form  .rb-review-notice
   --------------------------------------------------------------------------- */

#reviews,
.woocommerce-Reviews {
  color: #E9EAEC;
  margin-block-start: 40px;
}

.woocommerce-Reviews-title,
#reviews h2 {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 6px;
}

/* The EU review-verification notice, appended to the reviews heading. */
.rb-review-notice {
  display: block;
  margin-block-start: 10px;
  font-size: 13.5px;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0;
  color: #9BA0A8;
  max-width: 62ch;
}

/* --- The review list ----------------------------------------------------- */

#reviews .commentlist {
  list-style: none;
  margin: 26px 0 0;
  padding: 0;
}

#reviews .commentlist li {
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

#reviews .comment_container {
  display: flex;
  gap: 16px;
  padding: 20px 22px;
  background: #121418;
  border: 1px solid var(--rb-line, #23262C);
  border-radius: 10px;
}

#reviews .comment_container img.avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex: none;
  margin: 0;
  position: static;
  padding: 0;
  border: 0;
}

#reviews .comment-text {
  margin: 0;
  padding: 0;
  border: 0;
  flex: 1;
}

#reviews .woocommerce-review__author {
  font-weight: 700;
  color: #fff;
}

#reviews .woocommerce-review__published-date {
  color: #878C95;
  font-size: 13px;
}

#reviews .woocommerce-review__dash {
  color: #4A4F57;
}

/* "Verified buyer" - the whole point of showing reviews, so make it read. */
#reviews .woocommerce-review__verified {
  display: inline-block;
  margin-inline-start: 8px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-style: normal;
  color: #7BE08A;
  background: rgba(123, 224, 138, 0.10);
  border: 1px solid rgba(123, 224, 138, 0.28);
}

#reviews .comment-text .description {
  margin-block-start: 10px;
  color: #C3C7CD;
  line-height: 1.65;
}

/* --- Stars --------------------------------------------------------------- */

#reviews .star-rating,
.woocommerce-product-rating .star-rating {
  color: var(--rb-accent, #DB0F17);
}

#reviews .star-rating::before,
.woocommerce-product-rating .star-rating::before {
  color: #3A3E45;
}

.woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-block-end: 14px;
}

.woocommerce-product-rating .woocommerce-review-link {
  color: #9BA0A8;
  font-size: 14px;
  text-decoration: none;
  border-block-end: 1px solid #33373E;
}

.woocommerce-product-rating .woocommerce-review-link:hover {
  color: #fff;
}

/* --- The review form ----------------------------------------------------- */

#review_form_wrapper {
  margin-block-start: 34px;
  padding: 24px;
  background: #101216;
  border: 1px solid var(--rb-line, #23262C);
  border-radius: 10px;
}

#review_form_wrapper .comment-reply-title {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  display: block;
  margin-block-end: 14px;
}

#review_form_wrapper label {
  display: block;
  font-size: 13.5px;
  font-weight: 500;
  color: #A7ABB2;
  margin-block-end: 6px;
}

#review_form_wrapper input[type="text"],
#review_form_wrapper input[type="email"],
#review_form_wrapper textarea {
  width: 100%;
  padding: 12px 14px;
  background: #16181C;
  border: 1px solid #2A2D34;
  border-radius: 8px;
  color: #fff;
  font: inherit;
  font-size: 15px;
}

#review_form_wrapper input:focus,
#review_form_wrapper textarea:focus {
  outline: none;
  border-color: var(--rb-accent, #DB0F17);
  box-shadow: 0 0 0 3px rgba(219, 15, 23, 0.18);
}

#review_form_wrapper textarea {
  min-height: 130px;
  resize: vertical;
}

#review_form_wrapper .comment-form-rating select {
  padding: 11px 14px;
  background: #16181C;
  border: 1px solid #2A2D34;
  border-radius: 8px;
  color: #fff;
  font: inherit;
}

/* The clickable star widget WooCommerce swaps in for the select. */
#review_form_wrapper p.stars a {
  color: var(--rb-accent, #DB0F17);
}

#review_form_wrapper .form-submit input[type="submit"] {
  background: var(--rb-accent, #DB0F17);
  color: #fff;
  border: 0;
  border-radius: 8px;
  padding: 13px 26px;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}

#review_form_wrapper .form-submit input[type="submit"]:hover {
  background: #b70d14;
}

#review_form_wrapper .comment-form-cookies-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

#review_form_wrapper .comment-form-cookies-consent label {
  margin: 0;
  font-size: 13px;
}

/* Shown when reviews are restricted to verified buyers. */
#review_form_wrapper .woocommerce-verification-required {
  color: #9BA0A8;
  margin: 0;
}

@media (max-width: 599px) {
  #reviews .comment_container { padding: 16px; gap: 12px; }
  #review_form_wrapper { padding: 18px; }
}

/* --- Reviews section on the Single Product template ---------------------
   Mirrors .rb-pdp-specs. The Product Data Tabs widget carries only the
   Reviews tab (description/spec tabs are removed in racebeam-reviews.php),
   so the tab strip is hidden and the panel is shown outright; the #tab-reviews
   anchor the review-request email links to is still in the markup. */
.e-con.rb-pdp-reviews{width:100%;--width:100%;padding:0 0 110px;}
.e-con.rb-pdp-reviews__in{max-width:900px;margin:0 auto;width:100%;padding:0 32px;}
.rb-pdp__tabs .wc-tabs-wrapper .wc-tabs,
.rb-pdp__tabs .woocommerce-tabs ul.tabs{display:none;}
.rb-pdp__tabs .woocommerce-Tabs-panel,
.rb-pdp__tabs .woocommerce-tabs .panel{display:block!important;padding:0;margin:0;background:transparent;border:0;}
.rb-pdp__tabs #tab-reviews{scroll-margin-top:110px;}
.rb-pdp__tabs #reviews{margin-block-start:0;}
@media (max-width:1024px){
  .e-con.rb-pdp-reviews{padding:0 0 80px;}
  .e-con.rb-pdp-reviews__in{padding-left:24px;padding-right:24px;}
}

/* Star rating under the product title (Product Rating widget). Empty until the first approved review. */
.rb-pdp__rating{margin:-6px 0 18px;}
.rb-pdp__rating .woocommerce-product-rating{margin:0;}
.rb-pdp__rating .star-rating{font-size:17px;}
.rb-pdp__rating .woocommerce-review-link{font-size:13.5px;}/* End custom CSS */