/* ============================================================================
   RaptorLabs replica — HOMEPAGE (front-page only)
   18 sections between the header and the footer, in exact source order.
   Section numbers below match spec/HOMEPAGE-SPEC.md §6.
   ========================================================================= */

/* ------------------------------------------------- shared section rhythm - */
.rl-sec{position:relative}
.rl-sec--surface{background:rgb(var(--surface-container));
  padding-block:3rem}
@media (min-width:768px){.rl-sec--surface{padding-block:4rem}}
@media (min-width:1024px){.rl-sec--surface{padding-block:4.5rem}}
.rl-sec--tall{padding-block:6rem}
@media (min-width:640px){.rl-sec--tall{padding-block:7rem}}
@media (min-width:768px){.rl-sec--tall{padding-block:8rem}}
@media (min-width:1024px){.rl-sec--tall{padding-block:9rem}}
.rl-sec__head{display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:1rem;margin-bottom:2.5rem;padding-inline:1rem}
@media (min-width:768px){.rl-sec__head{margin-bottom:3.5rem;gap:1.5rem}}

/* =============================== §2 HERO ===============================
   Black, ZERO copy. Everything is imagery.
   ====================================================================== */
.rl-hero{position:relative;display:flex;flex-direction:column;
  background:hsl(var(--primary));overflow:visible}
.rl-hero__outer{display:flex;flex-direction:column;justify-content:center;
  align-items:center;flex:1;padding:1rem;min-height:60vh}
@media (min-width:640px){.rl-hero__outer{padding:1.5rem;min-height:65vh}}
@media (min-width:768px){.rl-hero__outer{padding:2rem;min-height:70vh}}
@media (min-width:1024px){.rl-hero__outer{padding-block:2.5rem;min-height:80vh}}
@media (min-width:1280px){.rl-hero__outer{padding-block:3rem;padding-top:3.5rem;
  min-height:90vh}}
.rl-hero__stage{position:relative;display:flex;flex-direction:column;
  align-items:center;width:100%;max-width:1400px;flex:1;justify-content:center;
  padding-block:1.5rem}
@media (min-width:640px){.rl-hero__stage{padding-block:2rem}}
@media (min-width:768px){.rl-hero__stage{padding-block:2.5rem}}
.rl-hero__art{width:100%;max-width:64rem;flex-shrink:0;z-index:10;
  padding-inline:.25rem}
@media (min-width:640px){.rl-hero__art{max-width:72rem}}
.rl-hero__art img{width:100%;height:auto;object-fit:contain;object-position:center}
/* the framed photo, deliberately overlapping UPWARD into the SVG */
.rl-hero__photo{position:relative;width:100%;max-width:69%;flex-shrink:0;
  margin-top:-2rem;z-index:0}
@media (min-width:640px){.rl-hero__photo{max-width:70%;margin-top:-2rem}}
@media (min-width:768px){.rl-hero__photo{max-width:75%;margin-top:-4rem}}
@media (min-width:1024px){.rl-hero__photo{max-width:70%;margin-top:-5.5rem}}
@media (min-width:1280px){.rl-hero__photo{max-width:65%;margin-top:-5rem}}
.rl-hero__photo img{width:100%;height:auto;border-radius:var(--radius-lg);
  border:2px solid rgba(255,255,255,.3);
  box-shadow:var(--shadow-hard-12-gray);transition:all .2s}
@media (min-width:768px){
  .rl-hero__photo img{border-width:4px;border-color:rgba(255,255,255,.6)}
}
.rl-hero__photo img:hover{box-shadow:none;transform:translate(12px,12px)}
/* decorative art */
.rl-hero__dec1{position:absolute;left:-2.5rem;top:50%;
  transform:translateY(-50%) rotate(-90deg);transform-origin:center;
  pointer-events:none;z-index:10;width:min(34vw,380px);opacity:.9}
@media (min-width:768px){.rl-hero__dec1{left:-5rem}}
@media (min-width:1024px){.rl-hero__dec1{left:-2.5rem}}
@media (min-width:1280px){.rl-hero__dec1{left:.75rem}}
.rl-hero__dec2{display:none}
@media (min-width:768px){
  .rl-hero__dec2{display:block;position:absolute;right:0;bottom:0;
    width:min(30vw,260px);pointer-events:none;z-index:10}
}
.rl-hero__spacer{position:relative;width:100%;height:10px}
@media (min-width:640px){.rl-hero__spacer{height:20px}}
@media (min-width:768px){.rl-hero__spacer{height:40px}}
@media (min-width:1024px){.rl-hero__spacer{height:50px}}
@media (min-width:1280px){.rl-hero__spacer{height:100px}}

/* ============================ §3 TAGLINE =============================== */
.rl-tagline{position:relative;display:flex;flex-direction:column;
  align-items:center;gap:1.5rem;padding:5rem 1rem;text-align:center;
  max-width:1900px;margin-inline:auto}
@media (min-width:768px){.rl-tagline{padding-inline:2rem}}
@media (min-width:1280px){.rl-tagline{padding-block:8rem}}
.rl-tagline__text{position:relative;z-index:0;
  font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  letter-spacing:var(--tracking-title);line-height:1.02;
  color:hsl(var(--foreground));font-size:2.25rem}
@media (min-width:768px){.rl-tagline__text{font-size:3rem}}
@media (min-width:1024px){.rl-tagline__text{font-size:3.75rem}}
@media (min-width:1280px){.rl-tagline__text{font-size:6rem}}
.rl-tagline__dec{position:absolute;left:9%;top:37%;
  transform:scaleX(-1);pointer-events:none;z-index:10;
  width:min(28vw,400px);opacity:.9}

/* ========================= §4 SIX TRUST BADGES ========================= */
.rl-badges{max-width:1900px;margin-inline:auto;margin-bottom:4rem;
  padding:1.5rem 1rem}
@media (min-width:768px){.rl-badges{padding-block:2.5rem}}
@media (min-width:1280px){.rl-badges{padding-top:0}}
.rl-badges__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;align-items:start;justify-items:center}
@media (min-width:768px){.rl-badges__grid{gap:2rem}}
@media (min-width:1024px){
  .rl-badges__grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
.rl-badges__cell{display:flex;flex-direction:column;align-items:center;
  gap:.75rem;width:100%}
.rl-badges__well{border-radius:var(--radius-full);
  border:2px solid hsl(var(--foreground));color:hsl(var(--foreground));
  width:100%;max-width:80px;aspect-ratio:1/1;flex-shrink:0;
  display:flex;align-items:center;justify-content:center}
@media (min-width:640px){.rl-badges__well{max-width:100px}}
.rl-badges__well svg{width:100%;height:100%}
.rl-badges__well svg.rl-icon--pad{padding:1rem}
.rl-badges__cell h4{text-align:center;font-weight:500;white-space:normal}

/* ====================== CAROUSEL (§5, §11-§17, §9) =====================
   Source is Embla with CSS-variable driven slide sizing:
   --slide-spacing:2.2rem; --slide-size:85%; --slide-max-width:30rem
   Reproduced as a CSS scroll-snap rail — no JS framework required.
   ====================================================================== */
.rl-carousel{--slide-spacing:2.2rem;--slide-size:85%;--slide-max-width:30rem;
  position:relative}
.rl-carousel__rail{display:flex;gap:var(--slide-spacing);overflow-x:auto;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding-block:.5rem 1rem;scrollbar-width:thin;
  -webkit-overflow-scrolling:touch}
.rl-carousel__rail::-webkit-scrollbar{height:6px}
.rl-carousel__rail::-webkit-scrollbar-thumb{background:hsl(var(--border))}
.rl-carousel__slide{flex:0 0 var(--slide-size);max-width:var(--slide-max-width);
  min-width:0;scroll-snap-align:start}
@media (min-width:640px){
  .rl-carousel{--slide-spacing:2rem;
    --slide-size:calc((100% - var(--slide-spacing)) / 2);--slide-max-width:none}
}
@media (min-width:768px){
  .rl-carousel{--slide-size:calc((100% - 2 * var(--slide-spacing)) / 3)}
}
@media (min-width:1024px){
  .rl-carousel{--slide-size:calc((100% - 3 * var(--slide-spacing)) / 4)}
}
@media (min-width:1280px){
  .rl-carousel{--slide-spacing:3rem}
}
.rl-carousel__empty{padding:2rem;text-align:center;
  border:2px dashed hsl(var(--border));
  font-family:var(--font-ui);font-size:.75rem;font-weight:700;
  text-transform:uppercase;letter-spacing:var(--tracking-chip);
  color:hsl(var(--muted-foreground))}

/* ======================= §6 LAB VERIFICATION STRIP ===================== */
.rl-labsearch{background:hsl(var(--foreground));color:hsl(var(--background))}
.rl-labsearch__inner{margin-inline:auto;width:100%;max-width:var(--content-max);
  padding:3rem 1.5rem;display:flex;flex-direction:column;gap:2rem}
@media (min-width:768px){
  .rl-labsearch__inner{flex-direction:row;align-items:center;
    justify-content:space-between;padding-block:4rem}
}
.rl-labsearch__left{max-width:24rem}
.rl-labsearch__eyebrow{font-family:var(--font-ui);font-size:.75rem;
  text-transform:uppercase;letter-spacing:var(--tracking-widest);
  color:rgba(255,255,255,.6)}
.rl-labsearch__left h2{margin-top:.5rem;font-family:var(--font-heading);
  font-weight:900;text-transform:uppercase;font-size:1.5rem;
  color:hsl(var(--background))}
@media (min-width:768px){.rl-labsearch__left h2{font-size:2.25rem}}
.rl-labsearch__left p{margin-top:.75rem;font-family:var(--font-ui);
  font-size:.875rem;color:rgba(255,255,255,.6)}
.rl-labsearch__right{width:100%}
@media (min-width:768px){.rl-labsearch__right{max-width:36rem;flex:1}}
.rl-labsearch__right input[type="search"]{width:100%;border-radius:1rem;
  border:2px solid rgba(255,255,255,.25);background:hsl(var(--background));
  padding:.875rem 1rem;font-family:var(--font-ui);font-size:1rem;
  color:hsl(var(--foreground))}
.rl-labsearch__right input[type="search"]::placeholder{color:rgba(0,0,0,.4)}
.rl-labsearch__right input[type="search"]:focus{outline:none;
  box-shadow:0 0 0 4px rgba(255,255,255,.3)}
.rl-labsearch__right input[type="search"]::-webkit-search-cancel-button{display:none}
.rl-labsearch__note{margin-top:.75rem;font-family:var(--font-ui);
  font-size:.875rem;color:rgba(255,255,255,.6)}
.rl-labsearch__note a{text-decoration:underline;text-underline-offset:4px;
  transition:color .2s}
.rl-labsearch__note a:hover{color:hsl(var(--background))}

/* ========================== §7 TESTIMONIALS ============================
   All three quotes are hard-coded MARKETING COPY at source (bundle
   constants, not database reviews) and ship as static copy here.
   They are deliberately NOT seeded as WooCommerce reviews.
   ====================================================================== */
.rl-testi{position:relative;background:hsl(var(--primary));overflow:visible;
  padding-block:3rem}
@media (min-width:768px){.rl-testi{padding-block:4rem}}
@media (min-width:1024px){.rl-testi{padding-block:5rem}}
.rl-testi__inner{position:relative;z-index:20;margin-inline:auto;width:100%;
  max-width:var(--container-max);padding-inline:1.5rem}
@media (min-width:768px){.rl-testi__inner{padding-inline:2rem}}
.rl-testi h1{color:hsl(var(--primary-foreground))}
.rl-testi__stars{margin-top:1.5rem;color:hsl(var(--primary-foreground));
  font-size:1.25rem;letter-spacing:.2em}
.rl-testi__item{display:none}
.rl-testi__item.is-active{display:block}
.rl-testi blockquote{margin:1rem 0 0}
.rl-testi blockquote p{font-family:var(--font-heading);font-weight:900;
  font-style:italic;text-transform:uppercase;letter-spacing:var(--tracking-title);
  color:hsl(var(--primary-foreground));font-size:1.5rem;line-height:1.15}
@media (min-width:768px){.rl-testi blockquote p{font-size:2.25rem}}
@media (min-width:1024px){.rl-testi blockquote p{font-size:3rem}}
@media (min-width:1280px){.rl-testi blockquote p{font-size:3.75rem}}
.rl-testi cite{display:block;margin-top:.5rem;font-style:normal;
  font-family:var(--font-display);font-weight:700;font-size:1.5rem;
  color:hsl(var(--primary-foreground))}
@media (min-width:768px){.rl-testi cite{font-size:1.875rem}}
.rl-testi__controls{display:flex;justify-content:flex-end;align-items:center;
  gap:.625rem;margin-top:1.75rem}

/* ======================= §8 COMPARISON TABLE =========================== */
.rl-compare__scroll{padding-inline:1rem;overflow-x:auto}
.comparison-table{margin-inline:auto;width:100%;max-width:48rem;
  table-layout:fixed;border-collapse:collapse;
  border:2px solid hsl(var(--foreground))}
.comparison-table th,.comparison-table td{border:2px solid hsl(var(--foreground));
  padding:1rem;width:35vw;min-width:120px;vertical-align:middle}
@media (min-width:1024px){
  .comparison-table th,.comparison-table td{width:auto;min-width:0}
}
.comparison-table .rl-compare__scrollhint{text-align:left;font-size:.875rem;
  color:hsl(var(--muted-foreground));font-family:var(--font-ui);
  text-transform:none;font-weight:400}
@media (min-width:1024px){
  .comparison-table .rl-compare__scrollhint{position:absolute;width:1px;height:1px;
    padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
}
.comparison-table .rl-compare__us{background:hsl(var(--primary));
  color:hsl(var(--primary-foreground));text-align:center}
.comparison-table .rl-compare__us h1{color:hsl(var(--primary-foreground));
  font-size:1.875rem}
.comparison-table .rl-compare__us h1 + h1{margin-top:-.5rem;font-size:3rem}
@media (min-width:1024px){
  .comparison-table .rl-compare__us h1{font-size:43px}
  .comparison-table .rl-compare__us h1 + h1{font-size:70px}
}
.comparison-table .rl-compare__them{text-align:center}
.comparison-table .rl-compare__label{font-family:var(--font-ui);
  text-transform:uppercase;font-size:.875rem;line-height:1.35;font-weight:500}
@media (min-width:640px){.comparison-table .rl-compare__label{font-size:1rem}}
.rl-glyph{margin-inline:auto;display:flex;height:2rem;width:2rem;
  align-items:center;justify-content:center;border-radius:var(--radius-full);
  border:2px solid currentColor;background:transparent}
@media (min-width:1024px){.rl-glyph{height:2.5rem;width:2.5rem}}
.rl-glyph > span{display:block;height:1.25rem;width:1.25rem}
@media (min-width:1024px){.rl-glyph > span{height:1.5rem;width:1.5rem}}
.rl-glyph--us{color:hsl(var(--primary-foreground))}
.rl-glyph--them{color:hsl(var(--foreground))}

/* ====================== §9 PRODUCT OF THE MONTH ======================== */
.rl-potm__card{margin-inline:auto;max-width:72rem;display:grid;
  grid-template-columns:1fr;gap:2rem;align-items:center;
  background:hsl(var(--primary-foreground));padding:1.5rem;
  box-shadow:0 0 0 2px hsl(var(--primary-foreground)),0 0 0 4px var(--rl-card-ring)}
@media (min-width:768px){
  .rl-potm__card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:2rem}
}
.rl-potm__media{border:2px solid hsl(var(--border));background:#fff;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  overflow:hidden}
.rl-potm__media img{width:100%;height:100%;object-fit:contain}
.rl-potm__meta{display:flex;flex-direction:column;gap:1rem;min-width:0}
.rl-potm__price{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.rl-potm__desc{font-family:var(--font-ui);font-size:1rem;line-height:1.6;
  text-transform:none;color:hsl(var(--muted-foreground))}
.rl-potm__row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.rl-potm__rowlabel{font-family:var(--font-ui);font-size:.6875rem;font-weight:700;
  text-transform:uppercase;letter-spacing:var(--tracking-chip);
  color:hsl(var(--muted-foreground))}
.rl-potm__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}
.rl-potm__empty{margin-inline:auto;max-width:48rem;text-align:center;
  border:2px dashed hsl(var(--border));padding:2rem;
  font-family:var(--font-ui);font-size:.75rem;font-weight:700;
  text-transform:uppercase;letter-spacing:var(--tracking-chip);
  color:hsl(var(--muted-foreground))}

/* ======================= §10 FULL LINEUP BANNER ======================== */
.rl-lineup{position:relative;display:flex;align-items:center;overflow:visible;
  min-height:82dvh;padding-block:3rem}
@media (min-width:640px){.rl-lineup{min-height:88dvh;padding-block:4rem}}
@media (min-width:768px){.rl-lineup{min-height:94dvh;padding-block:5rem}}
@media (min-width:1024px){.rl-lineup{min-height:max(56rem,96dvh);padding-block:7rem}}
@media (min-width:1280px){.rl-lineup{min-height:max(60rem,98dvh);padding-block:8rem}}
@media (min-width:1536px){.rl-lineup{min-height:max(64rem,100dvh);padding-block:9rem}}
.rl-lineup__bg{position:absolute;inset:0;z-index:1;overflow:hidden}
.rl-lineup__bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.rl-lineup__scrim{position:absolute;inset:0;z-index:2;background:rgba(0,0,0,.5)}
.rl-lineup__wrap{position:relative;z-index:10;margin-inline:auto;width:100%;
  max-width:1900px;padding-inline:1rem}
@media (min-width:640px){.rl-lineup__wrap{padding-inline:1.5rem}}
@media (min-width:768px){.rl-lineup__wrap{padding-inline:2rem}}
.rl-lineup__card{margin-inline:auto;max-width:48rem;cursor:default;
  overflow:hidden;border-radius:var(--radius-lg);
  border:4px solid hsl(var(--primary-foreground));
  background:hsl(var(--background));padding:1.5rem;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1.25rem;
  transition:all .2s;box-shadow:var(--shadow-hard-12-gray)}
@media (min-width:640px){.rl-lineup__card{padding:2rem}}
@media (min-width:768px){.rl-lineup__card{padding:2.5rem}}
.rl-lineup__card:hover,.rl-lineup__card:active{
  transform:translate(12px,12px);box-shadow:none}
.rl-lineup__card p{max-width:36rem;font-family:var(--font-ui);font-size:1rem;
  text-transform:uppercase;color:hsl(var(--foreground))}
@media (min-width:640px){.rl-lineup__card p{font-size:1.125rem}}
.rl-lineup__card .rl-btn{width:100%}
@media (min-width:640px){.rl-lineup__card .rl-btn{width:auto}}

/* ==================== §11-§17 FEATURED LINE SECTIONS ===================
   Seven collection carousels. The <h2> titles keep their emoji verbatim,
   with ONE deliberate correction to the source's own inconsistency:
   `🔥Fat Loss & Metabolic` is missing the space the other six have and is
   rendered here as `🔥 Fat Loss & Metabolic`.
   ====================================================================== */
.rl-line{margin-inline:auto;max-width:var(--container-max);
  padding:4rem 1.5rem}
@media (min-width:768px){.rl-line{padding:6rem 3rem}}
.rl-line__head{display:flex;flex-wrap:wrap;align-items:flex-end;
  justify-content:space-between;gap:1rem;margin-bottom:2rem}
.rl-line__title{font-family:var(--font-display);font-weight:700;
  font-size:1.5rem;color:hsl(var(--foreground));margin-top:.25rem}
@media (min-width:768px){.rl-line__title{font-size:1.875rem}}

/* ==================== SEO CONTENT ZONE (LOCKED #6) =====================
   Rendered from the front page's WP editor content, so the owner edits it at
   wp-admin > Pages > Home without a code change. Sits immediately BEFORE
   the FAQ section, per the locked spec.
   ====================================================================== */
.rl-seozone{background:hsl(var(--background));padding-block:4rem}
@media (min-width:768px){.rl-seozone{padding-block:6rem}}
.rl-seozone__inner{margin-inline:auto;max-width:var(--prose-max);
  padding-inline:1.5rem}
.rl-seozone h2{font-family:var(--font-heading);font-weight:900;
  text-transform:uppercase;letter-spacing:var(--tracking-title);
  font-size:1.875rem;margin-bottom:1.25rem}
@media (min-width:1024px){.rl-seozone h2{font-size:2.25rem}}
.rl-seozone h3{font-family:var(--font-ui);font-weight:700;text-transform:uppercase;
  letter-spacing:var(--tracking-wider);font-size:1rem;
  margin-top:1.75rem;margin-bottom:.5rem}
.rl-seozone p{font-family:var(--font-ui);font-size:1rem;line-height:1.7;
  color:hsl(var(--muted-foreground));margin-bottom:1rem}
.rl-seozone ul{font-family:var(--font-ui);font-size:1rem;line-height:1.7;
  color:hsl(var(--muted-foreground));padding-left:1.25rem;margin-bottom:1rem}
.rl-seozone a{text-decoration:underline;text-underline-offset:3px;
  color:hsl(var(--foreground))}

/* ============================== §18 FAQ ===============================
   Radix Accordion type="multiple" — several panels can be open at once,
   none open by default. Reproduced with <details>/<summary>, which gives
   the same multi-open, no-JS-required behaviour.
   ====================================================================== */
.rl-faq{background:hsl(var(--primary-foreground))}
.rl-faq__inner{margin-inline:auto;max-width:1900px;padding-inline:1rem}
@media (min-width:640px){.rl-faq__inner{padding-inline:1.5rem}}
@media (min-width:768px){.rl-faq__inner{padding-inline:2rem}}
.rl-faq__list{margin-inline:auto;display:flex;max-width:56rem;
  flex-direction:column;gap:1rem}
.rl-faq__item{overflow:hidden;border-radius:1.5rem;
  border:2px solid hsl(var(--foreground));
  background:rgb(var(--surface-container));
  box-shadow:var(--shadow-hard-6-soft);
  transition:box-shadow .2s,background-color .2s}
.rl-faq__item:hover{background:hsl(var(--primary-foreground));
  box-shadow:var(--shadow-hard-8)}
.rl-faq__item[open]{box-shadow:var(--shadow-hard-6);
  background:hsl(var(--primary-foreground))}
.rl-faq__q{list-style:none;cursor:pointer;width:100%;padding:1rem;
  background:transparent;border:0;border-radius:0}
.rl-faq__q::-webkit-details-marker{display:none}
@media (min-width:768px){.rl-faq__q{padding:2rem}}
.rl-faq__item[open] .rl-faq__q{padding-bottom:.5rem;
  background:hsl(var(--primary-foreground))}
.rl-faq__qrow{display:flex;width:100%;align-items:center;
  justify-content:space-between;gap:1rem}
.rl-faq__qrow h3{text-align:left;font-family:var(--font-heading);
  font-size:1.125rem;font-weight:800;text-transform:uppercase;
  color:hsl(var(--foreground));line-height:1.25}
@media (min-width:768px){.rl-faq__qrow h3{font-size:1.5rem}}
.rl-faq__toggle{position:relative;display:flex;height:2.5rem;width:2.5rem;
  flex-shrink:0;align-items:center;justify-content:center;
  border-radius:var(--radius-full);
  background:hsl(var(--foreground));color:hsl(var(--background))}
@media (min-width:768px){.rl-faq__toggle{height:2.75rem;width:2.75rem}}
.rl-faq__toggle > span{position:absolute;display:block;width:1.5rem;height:1.5rem;
  transition:all .2s;line-height:0}
.rl-faq__toggle > span svg{width:1.5rem;height:1.5rem}
.rl-faq__toggle .rl-faq__plus{transform:scale(1) rotate(0deg);opacity:1}
.rl-faq__toggle .rl-faq__minus{transform:scale(0);opacity:0}
.rl-faq__item[open] .rl-faq__plus{transform:scale(0) rotate(90deg);opacity:0}
.rl-faq__item[open] .rl-faq__minus{transform:scale(1);opacity:1}
.rl-faq__a{border-top:2px solid hsl(var(--foreground));
  background:hsl(var(--muted)/.4);padding:0 1rem 1.5rem;
  font-family:var(--font-ui);text-align:left;font-size:1rem;line-height:1.625;
  color:hsl(var(--muted-foreground))}
@media (min-width:768px){.rl-faq__a{padding:0 2rem 2rem}}
/* `normal-case` explicitly cancels the p variant's default uppercase — the FAQ
   answers are the one place on the homepage where sentence case survives. */
.rl-faq__a p{padding-top:.5rem;text-transform:none}
.rl-faq__a a{text-decoration:underline;overflow-wrap:anywhere}

/* ========================= §19 JOIN THE PACK =========================== */
.rl-pack{position:relative;overflow:visible;background:#000;color:#fff;
  padding-block:6rem}
@media (min-width:768px){.rl-pack{padding-block:7rem}}
@media (min-width:1024px){.rl-pack{padding-block:8rem}}
.rl-pack__dec{position:absolute;left:50%;top:0;
  transform:translate(-50%,-50%) scaleX(-1);pointer-events:none;z-index:0;
  width:min(40vw,420px);opacity:.85}
.rl-pack__vignette{pointer-events:none;position:absolute;inset:0;z-index:1;
  background:radial-gradient(circle at center,transparent 0%,rgba(0,0,0,.82) 100%)}
.rl-pack__inner{position:relative;z-index:10;margin-inline:auto;width:100%;
  max-width:var(--container-max);padding-inline:1.5rem;
  display:flex;flex-direction:column;align-items:center;text-align:center}
@media (min-width:768px){.rl-pack__inner{padding-inline:2rem}}
.rl-pack__title{font-family:var(--font-heading);font-weight:900;
  text-transform:uppercase;letter-spacing:var(--tracking-title);
  text-wrap:balance;line-height:1;font-size:2.25rem;
  color:transparent;-webkit-text-fill-color:transparent;
  -webkit-background-clip:text;background-clip:text;
  background-image:linear-gradient(to bottom,#fff 15%,#e5e5e5,#737373);
  filter:drop-shadow(0 2px 16px rgba(255,255,255,.2))}
@media (min-width:768px){.rl-pack__title{font-size:3.75rem}}
@media (min-width:1024px){.rl-pack__title{font-size:4.5rem}}
@media (min-width:1280px){.rl-pack__title{font-size:6rem}}
.rl-pack__sub{margin-top:1rem;font-family:var(--font-ui);font-size:1rem;
  text-transform:uppercase;color:rgba(255,255,255,.9)}
@media (min-width:640px){.rl-pack__sub{font-size:1.125rem}}
.rl-pack .rl-news-form{margin-top:2rem}
@media (min-width:768px){.rl-pack .rl-news-form{margin-top:3rem}}

/* =========================================================================
   REDESIGNED SOURCE (captured 2026-09-09) — bars + hero.
   Values taken from the source's own utility classes, not eyeballed:
     h1 lines  clamp(2.7rem, 12.5vw, 7rem)   leading .82   tracking tight
     "Limit"   clamp(3.4rem, 17vw, 9.5rem)   red-600
     stamp     border-2, .16em type, .2em tracking, offset -.1em/-.12em
     CTA       min-height 52px, .14em tracking, 4px white offset shadow
   The hero sits on BLACK: the source uses `text-background` / `border-background`
   on it, i.e. the light token used as the foreground.
   ====================================================================== */

/* ---- red announcement bar (option-driven; empty by default) ---- */
.rl-announce{background:#dc2626;color:#fff}
.rl-announce__inner{
	position:relative;display:flex;align-items:center;justify-content:center;gap:.6rem;
	width:min(1900px,100% - 2rem);margin-inline:auto;padding:.5rem 2.5rem .5rem 1rem;
}
.rl-announce__text{
	margin:0;text-align:center;font-family:var(--font-body);font-weight:700;
	text-transform:uppercase;letter-spacing:.1em;font-size:.6875rem;line-height:1.4;
}
.rl-announce__bolt{flex:none;font-size:.75rem}
.rl-announce__close{
	position:absolute;right:.25rem;top:50%;transform:translateY(-50%);
	background:none;border:0;color:#fff;font-size:1.25rem;line-height:1;
	padding:.25rem .5rem;cursor:pointer;opacity:.85
}
.rl-announce__close:hover{opacity:1}

/* ---- utility sub-bar ---- */
.rl-utilitybar{background:hsl(var(--foreground));color:hsl(var(--background))}
.rl-utilitybar__text{
	margin:0;padding:.5rem 1rem;text-align:center;
	font-family:var(--font-body);font-weight:700;
	text-transform:uppercase;letter-spacing:.16em;font-size:.625rem;line-height:1.5;
}

/* ---- hero ---- */
.rl-hero2{background:#000;color:#fff;overflow:hidden}
.rl-hero2__inner{
	width:min(1900px,100% - 2rem);margin-inline:auto;
	padding:clamp(1.5rem,4vw,3.5rem) 0 clamp(2rem,5vw,4rem);
	display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);
	align-items:center;
}
@media (min-width:1024px){
	.rl-hero2__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
.rl-hero2__copy{min-width:0}

.rl-hero2__h1{
	font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
	line-height:.82;letter-spacing:-.02em;margin:0 0 clamp(1rem,2.5vw,1.5rem);
	color:#fff;
}
.rl-hero2__line{display:block;font-size:clamp(2.7rem,12.5vw,7rem)}
.rl-hero2__limitwrap{
	position:relative;display:inline-block;margin-top:.25rem;
	font-size:clamp(3.4rem,17vw,9.5rem);color:#dc2626;
}
.rl-hero2__limit{display:block;position:relative;z-index:1}
/* the jagged bite edge — stretched to the word width, irregular by design */
.rl-hero2__jaw{
	position:absolute;left:0;right:0;bottom:-.02em;height:.22em;width:100%;
	display:block;z-index:2;pointer-events:none;
}
.rl-hero2__jaw path{fill:#000}
.rl-hero2__stamp{
	position:absolute;right:-.1em;top:-.12em;z-index:3;
	border:2px solid #fff;background:#dc2626;color:#fff;
	padding:.08em .32em;font-family:var(--font-heading);font-weight:900;
	font-size:.16em;text-transform:uppercase;letter-spacing:.2em;
	transform:rotate(-8deg);white-space:nowrap;
}

.rl-hero2__tagline{
	margin:0 0 1rem;max-width:34ch;
	font-family:var(--font-body);font-weight:700;
	text-transform:uppercase;letter-spacing:.06em;
	font-size:clamp(.75rem,1.6vw,.9375rem);line-height:1.5;color:rgba(255,255,255,.82);
}

.rl-hero2__trust{
	display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap;
	margin:0 0 clamp(1rem,2.5vw,1.5rem);
	border:2px solid #fff;padding:.5rem .75rem;
	font-family:var(--font-body);font-weight:700;
	text-transform:uppercase;letter-spacing:.12em;font-size:.625rem;
	font-variant-numeric:tabular-nums;
}
.rl-hero2__star{color:#dc2626}
.rl-hero2__dot{opacity:.5}

.rl-hero2__ctas{display:flex;gap:.75rem;flex-wrap:wrap}
.rl-hero2__cta{
	display:flex;align-items:center;justify-content:center;text-align:center;
	min-height:52px;padding:0 1rem;text-decoration:none;
	border:2px solid #fff;
	font-family:var(--font-button);font-weight:900;
	text-transform:uppercase;letter-spacing:.14em;
	font-size:clamp(.8125rem,1.4vw,1rem);
	transition:transform .12s ease,box-shadow .12s ease,background-color .15s ease,color .15s ease;
}
.rl-hero2__cta--primary{
	flex:3 1 14rem;background:#dc2626;color:#fff;
	box-shadow:4px 4px 0 0 rgba(255,255,255,.9);
}
.rl-hero2__cta--primary:active{transform:translate(3px,3px);box-shadow:none}
.rl-hero2__cta--ghost{flex:2 1 9rem;background:transparent;color:#fff}
.rl-hero2__cta--ghost:hover{background:#fff;color:#000}
.rl-hero2__cta:focus-visible{outline:2px dashed hsl(var(--ring));outline-offset:3px}

/* ---- media side ---- */
.rl-hero2__media{position:relative;min-width:0}
.rl-hero2__frame{border:2px solid #fff;padding:.5rem;background:#0a0a0a}
.rl-hero2__frame img{display:block;width:100%;height:auto;max-width:100%}
.rl-hero2__raptor{
	position:absolute;left:-1rem;bottom:-1.5rem;width:clamp(96px,18%,190px);
	height:auto;pointer-events:none;
}
@media (max-width:1023px){
	.rl-hero2__raptor{width:96px;left:-.5rem;bottom:-1rem}
}
/* =========================================================================
   REDESIGNED SOURCE (2026-09-09) — the replacement homepage sections.
   Shared shell: white ground, black 2px borders, hard offset shadows,
   uppercase display type with wide tracking — the neo-brutalist system
   already used elsewhere in this theme.
   ====================================================================== */

/* ---- Hunt by goal ---- */
.rl-goals{padding:clamp(2rem,5vw,4rem) 0}
.rl-goals__inner{width:min(1900px,100% - 2rem);margin-inline:auto}
.rl-goals__title{font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vw,3rem);line-height:1.02;margin:0 0 clamp(1rem,2.5vw,1.5rem)}
.rl-goals__grid{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.rl-goals__grid::before,.rl-goals__grid::after{content:none;display:none}
.rl-goals__tile{display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  min-height:64px;padding:.5rem .75rem;text-decoration:none;
  border:2px solid hsl(var(--foreground));background:hsl(var(--background));
  color:hsl(var(--foreground));box-shadow:4px 4px 0 0 rgba(0,0,0,1);
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.rl-goals__tile:hover{transform:translate(-1px,-1px);border-color:#dc2626;box-shadow:5px 5px 0 0 #dc2626}
.rl-goals__label{font-family:var(--font-body);font-weight:800;text-transform:uppercase;
  letter-spacing:.1em;font-size:.6875rem;line-height:1.25}
.rl-goals__count{font-family:var(--font-heading);font-weight:900;font-size:1.125rem;
  font-variant-numeric:tabular-nums}
.rl-goals__tile--all{background:hsl(var(--foreground));color:hsl(var(--background))}
.rl-goals__tile--all:hover{border-color:#dc2626}

/* ---- Reports. Zero secrets. ---- */
.rl-reports{padding:clamp(2rem,5vw,4rem) 0;background:hsl(var(--muted))}
.rl-reports__inner{width:min(1900px,100% - 2rem);margin-inline:auto}
.rl-reports__title{font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vw,3rem);line-height:1.02;margin:0}
.rl-reports__sub{margin:.35rem 0 clamp(1rem,2.5vw,1.5rem);font-family:var(--font-body);
  font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.6875rem;
  color:hsl(var(--muted-foreground))}
.rl-reports__list{list-style:none;margin:0 0 1.25rem;padding:0;
  border:2px solid hsl(var(--foreground));background:hsl(var(--background))}
.rl-reports__row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
  padding:.625rem .75rem;font-size:.8125rem}
.rl-reports__row + .rl-reports__row{border-top:2px solid hsl(var(--foreground))}
.rl-reports__name{font-family:var(--font-body);font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;font-size:.6875rem}
.rl-reports__dot{opacity:.4}
.rl-reports__key{font-weight:700;font-variant-numeric:tabular-nums;opacity:.75;font-size:.6875rem}
.rl-reports__link{margin-left:auto;text-decoration:none;color:#dc2626;
  font-family:var(--font-body);font-weight:800;text-transform:uppercase;
  letter-spacing:.12em;font-size:.625rem}
.rl-reports__link:hover{text-decoration:underline}
.rl-reports__all{display:inline-block;text-decoration:none;
  font-family:var(--font-body);font-weight:800;text-transform:uppercase;
  letter-spacing:.14em;font-size:.6875rem;color:hsl(var(--foreground));
  border-bottom:2px solid #dc2626;padding-bottom:2px}

/* ---- First blood + Build your stack ---- */
.rl-firstblood,.rl-stack{padding:clamp(2rem,5vw,4rem) 0}
.rl-firstblood__inner,.rl-stack__inner{width:min(1900px,100% - 2rem);margin-inline:auto}
.rl-firstblood__head,.rl-stack__head{display:flex;align-items:baseline;gap:.75rem 1rem;
  flex-wrap:wrap;margin-bottom:clamp(1rem,2.5vw,1.5rem)}
.rl-firstblood__title,.rl-stack__title{font-family:var(--font-heading);font-weight:900;
  text-transform:uppercase;font-size:clamp(1.6rem,4.5vw,3rem);line-height:1.02;margin:0}
.rl-firstblood__sub,.rl-stack__sub{margin:0;font-family:var(--font-body);font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;font-size:.6875rem;
  color:hsl(var(--muted-foreground))}
.rl-firstblood__all,.rl-stack__all{margin-left:auto;text-decoration:none;
  font-family:var(--font-body);font-weight:800;text-transform:uppercase;
  letter-spacing:.14em;font-size:.6875rem;color:hsl(var(--foreground));
  border-bottom:2px solid #dc2626;padding-bottom:2px}

/* rail on small screens, grid at desktop */
.rl-firstblood__rail{list-style:none;margin:0;padding:0 0 .5rem;display:grid;
  gap:clamp(.75rem,2vw,1.25rem);grid-auto-flow:column;
  grid-auto-columns:minmax(200px,1fr);overflow-x:auto;scroll-snap-type:x mandatory}
.rl-firstblood__rail::before,.rl-firstblood__rail::after{content:none;display:none}
.rl-firstblood__cell{scroll-snap-align:start;min-width:0}
@media (min-width:1024px){
  .rl-firstblood__rail{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
}

.rl-stack__tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:clamp(1rem,2.5vw,1.5rem)}
.rl-stack__tab{min-height:44px;padding:0 .75rem;cursor:pointer;
  border:2px solid hsl(var(--foreground));background:hsl(var(--background));
  color:hsl(var(--foreground));font-family:var(--font-body);font-weight:900;
  text-transform:uppercase;letter-spacing:.12em;font-size:.6875rem;
  transition:background-color .15s ease,color .15s ease}
.rl-stack__tab:hover{background:hsl(var(--muted))}
.rl-stack__tab.is-selected,.rl-stack__tab[aria-selected="true"]{
  background:#dc2626;color:#fff;border-color:#dc2626}
.rl-stack__tab:focus-visible{outline:2px dashed hsl(var(--ring));outline-offset:2px}
.rl-stack__grid{list-style:none;margin:0;padding:0;display:grid;
  gap:clamp(.75rem,2vw,1.25rem);grid-template-columns:repeat(1,minmax(0,1fr))}
.rl-stack__grid::before,.rl-stack__grid::after{content:none;display:none}
@media (min-width:640px){.rl-stack__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.rl-stack__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.rl-stack__cell{min-width:0}

/* ---- How the hunt works ---- */
.rl-hunt{padding:clamp(2rem,5vw,4rem) 0;background:hsl(var(--foreground));color:hsl(var(--background))}
.rl-hunt__inner{width:min(1900px,100% - 2rem);margin-inline:auto}
.rl-hunt__title{font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vw,3rem);line-height:1.02;margin:0 0 clamp(1.25rem,3vw,2rem)}
.rl-hunt__grid{list-style:none;margin:0;padding:0;display:grid;
  gap:clamp(1rem,2.5vw,1.75rem);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.rl-hunt__grid::before,.rl-hunt__grid::after{content:none;display:none}
.rl-hunt__step{border:2px solid hsl(var(--background));padding:clamp(1rem,2.5vw,1.5rem)}
.rl-hunt__n{display:inline-block;background:#dc2626;color:#fff;padding:.1em .4em;
  font-family:var(--font-heading);font-weight:900;font-size:.875rem;
  letter-spacing:.16em;margin-bottom:.75rem}
.rl-hunt__h{font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:1.125rem;margin:0 0 .5rem;letter-spacing:.02em}
.rl-hunt__p{margin:0 0 .75rem;font-size:.875rem;line-height:1.55;opacity:.85}
.rl-hunt__cta{text-decoration:none;color:hsl(var(--background));
  font-family:var(--font-body);font-weight:800;text-transform:uppercase;
  letter-spacing:.12em;font-size:.625rem;border-bottom:2px solid #dc2626;padding-bottom:2px}

/* ---- From the pack ---- */
.rl-pack{padding:clamp(2rem,5vw,4rem) 0}
.rl-pack__inner{width:min(1900px,100% - 2rem);margin-inline:auto}
.rl-pack__title{font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vw,3rem);line-height:1.02;margin:0}
.rl-pack__score{margin:.35rem 0 clamp(1rem,2.5vw,1.5rem);font-family:var(--font-body);
  font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.6875rem;
  font-variant-numeric:tabular-nums}
.rl-pack__star{color:#dc2626}
.rl-pack__grid{list-style:none;margin:0;padding:0;display:grid;
  gap:clamp(.75rem,2vw,1.25rem);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.rl-pack__grid::before,.rl-pack__grid::after{content:none;display:none}
.rl-pack__card{border:2px solid hsl(var(--foreground));padding:1rem;
  box-shadow:4px 4px 0 0 rgba(0,0,0,1);background:hsl(var(--background))}
.rl-pack__stars{margin:0 0 .5rem;color:#dc2626;letter-spacing:.1em}
.rl-pack__quote{margin:0 0 .75rem;font-size:.9375rem;line-height:1.5}
.rl-pack__meta{margin:0;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;
  font-family:var(--font-body);font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;font-size:.5625rem}
.rl-pack__badge{border:2px solid hsl(var(--foreground));padding:.1em .35em}
.rl-pack__who{opacity:.6}

/* ---- How we stack up ---- */
.rl-stackup{padding:clamp(2rem,5vw,4rem) 0;background:hsl(var(--muted))}
.rl-stackup__inner{width:min(1900px,100% - 2rem);margin-inline:auto;overflow-x:auto}
.rl-stackup__title{font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vw,3rem);line-height:1.02;margin:0 0 clamp(1rem,2.5vw,1.5rem)}
.rl-stackup__table{width:100%;border-collapse:collapse;min-width:20rem;
  border:2px solid hsl(var(--foreground));background:hsl(var(--background))}
.rl-stackup__table th,.rl-stackup__table td{
  border:2px solid hsl(var(--foreground));padding:.625rem .75rem;text-align:left;font-size:.8125rem}
.rl-stackup__table thead th{background:hsl(var(--foreground));color:hsl(var(--background));
  font-family:var(--font-body);font-weight:900;text-transform:uppercase;
  letter-spacing:.14em;font-size:.625rem}
.rl-stackup__table tbody th{font-family:var(--font-body);font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;font-size:.6875rem}
.rl-stackup__table td{width:5.5rem;text-align:center;font-size:1.125rem;font-weight:900}
.rl-stackup__yes{color:#0a7d38}
.rl-stackup__no{color:#dc2626}

/* ---- Straight answers ---- */
.rl-answers{padding:clamp(2rem,5vw,4rem) 0}
.rl-answers__inner{width:min(1100px,100% - 2rem);margin-inline:auto}
.rl-answers__head{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;
  margin-bottom:clamp(1rem,2.5vw,1.5rem)}
.rl-answers__title{font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vw,3rem);line-height:1.02;margin:0}
.rl-answers__all{margin-left:auto;text-decoration:none;font-family:var(--font-body);
  font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.6875rem;
  color:hsl(var(--foreground));border-bottom:2px solid #dc2626;padding-bottom:2px}
.rl-answers__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}
.rl-answers__list::before,.rl-answers__list::after{content:none;display:none}
.rl-answers__d{border:2px solid hsl(var(--foreground));background:hsl(var(--background));
  box-shadow:4px 4px 0 0 rgba(0,0,0,.08);transition:box-shadow .2s ease}
.rl-answers__d[open]{box-shadow:6px 6px 0 0 rgba(0,0,0,1)}
.rl-answers__q{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  cursor:pointer;list-style:none;padding:1rem;
  font-family:var(--font-heading);font-weight:900;text-transform:uppercase;
  font-size:clamp(.9375rem,2vw,1.25rem);line-height:1.25}
.rl-answers__q::-webkit-details-marker{display:none}
.rl-answers__plus{flex:none;display:grid;place-items:center;width:2.25rem;height:2.25rem;
  border-radius:999px;background:hsl(var(--foreground));color:hsl(var(--background));
  font-size:1.25rem;line-height:1;transition:transform .2s ease}
.rl-answers__d[open] .rl-answers__plus{transform:rotate(45deg)}
.rl-answers__a{padding:0 1rem 1rem}
.rl-answers__a p{margin:0;text-transform:none;font-size:.9375rem;line-height:1.6}
