/*
Theme Name:  Storefront REDBREW
Description: REDBREW® brand child theme for Storefront. Carries all brand styling site-wide — header, footer, pages, shop, cart, checkout — plus layout fixes (no breadcrumb, no sidebar on pages, no gaps). Safe from theme updates.
Author:      REDBREW / Voorsprong Brands (Pty) Ltd
Template:    storefront
Version:     2.2
*/

/* ==========================================================================
   1. FONTS  (enqueued + preconnected in functions.php — NOT via @import here,
   which would block rendering. Kept out on purpose for LCP performance.)
   ========================================================================== */

/* ==========================================================================
   2. GLOBAL — typography + colours, site-wide
   ========================================================================== */
body {
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  color: #2a2521;
  background: #faf7f1;
}
h1, h2, h3, h4, .entry-title, .product_title, .woocommerce-loop-product__title {
  font-family: 'Archivo', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  color: #2a2521;
}
a { color: #c83353; text-decoration: none !important; }
a:hover, a:focus, a:active { color: #e24766; text-decoration: none !important; }

/* ==========================================================================
   3. HEADER — light paper bar, brand nav
   ========================================================================== */
.site-header {
  background: #faf7f1;
  border-bottom: 1px solid #e9e2d7;
}
.site-header .site-title a, .site-header .beta,
.main-navigation ul li a, .site-header-cart .cart-contents {
  color: #2a2521;
}
.main-navigation ul li a {
  font-family: 'Hanken Grotesk', sans-serif;
  font-weight: 600;
  font-size: 15px;
}
.main-navigation ul li a:hover { color: #e24766; }
.site-search { display: none; } /* tidy: hide Storefront's big header search */

/* ==========================================================================
   4. LAYOUT FIXES — no breadcrumb, no page titles, no sidebar, NO GAPS
   (breadcrumb + sidebar are also removed in functions.php; CSS is backup)
   ========================================================================== */
.woocommerce-breadcrumb, .storefront-breadcrumb { display: none !important; }
.page .entry-header, .entry-header.page-header, .wp-block-post-title { display: none !important; }

/* pages: full width, sidebar gone */
.page #secondary, .page .widget-area { display: none !important; }
/* WordPress "Edit" link + entry footer strip (source of the pre-footer gap) */
.entry-footer, .edit-link, .post-edit-link { display: none !important; }
.entry-content > p:empty { display: none; }
.page #primary, .page .content-area {
  width: 100% !important; max-width: 100% !important; float: none !important; margin: 0 !important;
}

/* kill the top gap (header → content) and the bottom gap (content → footer) */
.site-header { margin-bottom: 0 !important; }
.storefront-primary-navigation { margin-bottom: 0 !important; }
#content, .site-content, .content-area, .site-main, .hentry, .entry-content,
.page .site-content .col-full, .page #primary, .page .site-main > * {
  margin-top: 0 !important; padding-top: 0 !important;
}
.entry-content > .wp-block-spacer { display: none !important; }

/* Storefront reserves fixed bottom space on mobile for its handheld footer bar.
   We removed the bar, so zero out that reserved space and hard-hide any remnant.
   NOTE: never zero .site-footer's own padding — it needs its breathing room. */
.storefront-handheld-footer-bar { display: none !important; }
body, #page, .site, .hfeed { padding-bottom: 0 !important; margin-bottom: 0 !important; }
@media (max-width: 768px){
  body, #page, .site { padding-bottom: 0 !important; }
}
.page .site-content { padding-top: 0 !important; padding-bottom: 0 !important; }
/* footer must sit flush against the content on EVERY page type (shop, cart, product too) */
.site-content, #content { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.site-main { margin-bottom: 0 !important; }
.woocommerce .site-main, .woocommerce-page .site-main { padding-bottom: 0 !important; }
.page .site-main, .page .entry-content, .page .hentry, .page .type-page {
  margin: 0 !important; padding: 0 !important;
}

/* full-bleed: let .rb sections span the whole viewport */
.page .site-content .col-full { max-width: 100%; padding: 0; margin: 0; }
.rb, .rb-hero-split, .rb-hero-center, .rb-trust, .rb-section, .rb-band, .rb-cta, .rb-foot,
.entry-content > section, .entry-content > div[class*="rb-"] {
  width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
}
/* Clip horizontal overflow from the 100vw full-bleed sections.
   `clip` (not `hidden`) — hidden makes Chrome mobile create a scroll container
   and adds phantom empty space below the footer. */
html, body { overflow-x: hidden; }
html, body { overflow-x: clip; }
#page, .site, .site-content, .entry-content { overflow-x: clip; max-width: 100%; }

/* ==========================================================================
   5. BUTTONS — flat raspberry, ink border, hard stamp shadow (site-wide)
   ========================================================================== */
/* 3D Touch pressable button (after jemware) — sits raised on a solid edge,
   presses straight down on click/tap. iOS-compatible via body ontouchstart. */
.button, button, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce #respond input#submit, .woocommerce .single_add_to_cart_button,
.cart .button, .widget a.button.checkout {
  background: #e24766 !important;
  color: #fff !important;
  border: 2px solid #2a2521 !important;
  border-radius: 10px !important;
  font-family: 'Hanken Grotesk', sans-serif !important;
  font-weight: 700 !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: 0 6px 0 #2a2521;
  transition: transform .06s ease, box-shadow .06s ease, background .12s ease;
}
.button:hover, button:hover, input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce a.button.alt:hover, .woocommerce .single_add_to_cart_button:hover {
  background: #c83353 !important;
}
.button:active, button:active, input[type="submit"]:active,
.woocommerce a.button:active, .woocommerce button.button:active,
.woocommerce a.button.alt:active, .woocommerce .single_add_to_cart_button:active {
  transform: translateY(6px);
  box-shadow: 0 0 0 #2a2521;
}

/* ==========================================================================
   6. SHOP / ARCHIVE — branded product grid
   ========================================================================== */
.woocommerce-products-header {
  background: #e24766; color: #fff; text-align: center;
  padding: 48px 28px 52px !important; margin-bottom: 44px;
  width: 100vw; margin-left: calc(50% - 50vw);
}
.woocommerce-products-header .page-title {
  color: #fff !important; font-family: 'Archivo', sans-serif; font-weight: 900;
  text-transform: uppercase; letter-spacing: -0.02em; font-size: 52px; margin: 0;
}
/* brand eyebrow above + tagline below the title */
.woocommerce-products-header::before {
  content: 'REDBREW\AE  \B7  NATURALLY CAFFEINE-FREE';
  display: block; font-family: 'Space Mono', monospace; font-weight: 700;
  font-size: 12px; letter-spacing: 0.22em; color: #f6ecd2; margin-bottom: 14px;
}
.woocommerce-products-header::after {
  content: 'Espresso-style rooibos \2014  bold, smooth, and naturally caffeine-free.';
  display: block; font-family: 'Hanken Grotesk', sans-serif; font-size: 17px;
  color: rgba(255,255,255,0.92); margin-top: 12px;
}
/* only one sorting bar: hide the duplicate below the product grid */
ul.products ~ .storefront-sorting,
.woocommerce ul.products ~ .woocommerce-ordering,
.woocommerce ul.products ~ .woocommerce-result-count { display: none !important; }
.storefront-sorting { display: flex; align-items: center; gap: 18px; }
.woocommerce .woocommerce-result-count {
  font-family: 'Space Mono', monospace; font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.1em; color: #6f655a;
}
.woocommerce .woocommerce-ordering select {
  border: 2px solid #2a2521; border-radius: 8px; padding: 8px 12px;
  font-family: 'Hanken Grotesk', sans-serif; font-weight: 600; background: #fff;
}
.woocommerce ul.products, .woocommerce-page ul.products {
  display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0 !important; padding-bottom: 48px !important;
}
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important; padding: 0 !important;
  background: #fff; border: 2px solid #2a2521; border-radius: 14px; overflow: hidden;
  box-shadow: 4px 4px 0 rgba(42, 37, 33, 0.12); display: flex; flex-direction: column;
}
.woocommerce ul.products li.product a img { margin: 0; border-bottom: 1px solid #e9e2d7; background: #fff; transition: transform 0.25s ease; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.05) translateY(-4px); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 20px; padding: 16px 18px 4px !important;
}
.woocommerce ul.products li.product .price {
  font-family: 'Archivo', sans-serif; font-weight: 800; color: #2a2521; font-size: 20px;
  padding: 0 18px; display: block;
}
.woocommerce ul.products li.product .price del { color: #968a7b; font-weight: 600; }
.woocommerce ul.products li.product .price ins { color: #e24766; text-decoration: none; }
.woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart {
  margin: 14px 18px 20px !important; display: inline-block; text-align: center;
}
.woocommerce span.onsale {
  background: #eee50a; color: #2a2521; border: 2px solid #2a2521; border-radius: 999px;
  font-family: 'Space Mono', monospace; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  min-height: auto; min-width: auto; padding: 4px 12px; top: 12px; left: 12px; line-height: 1.4;
}

/* ==========================================================================
   7. SINGLE PRODUCT / CART / CHECKOUT
   ========================================================================== */
.woocommerce div.product .product_title { font-size: 40px; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
  color: #2a2521; font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 28px;
}
.woocommerce div.product p.price ins { color: #e24766; }
.woocommerce .quantity input.qty {
  border: 2px solid #2a2521; border-radius: 8px; padding: 10px;
  font-family: 'Hanken Grotesk', sans-serif; font-weight: 600;
}
.woocommerce-message, .woocommerce-info { border-top-color: #e24766 !important; }
.woocommerce-message::before, .woocommerce-info::before { color: #e24766 !important; }
.woocommerce table.shop_table { border: 2px solid #2a2521; border-radius: 12px; }
.woocommerce table.shop_table th {
  font-family: 'Space Mono', monospace; text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px;
}

/* ==========================================================================
   8. FOOTER — dark ink, cream text, brand credit
   ========================================================================== */
.site-footer {
  background: #2a2521;
  color: #f6ecd2;
  margin-top: 0;
}
.site-footer a { color: #ecd6a5; }
.site-footer a:hover { color: #fff; }
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4,
.site-footer .widget-title { color: #fff; }
.site-info { padding: 1.5em 0; }
/* footer keeps its own generous bottom room */
.site-footer { padding-bottom: 40px !important; }
@media (max-width: 640px){ .site-footer { padding-bottom: 32px !important; } }
.rb-credit {
  font-family: 'Space Mono', monospace; font-size: 12px;
  letter-spacing: 0.08em; text-transform: uppercase; text-align: center;
  color: #f6ecd2;
}
/* half-sunrise brand motif + tagline above the credit */
.rb-foot-brand {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  padding: 40px 28px 6px;
}
.rb-foot-tag {
  font-family: 'Space Mono', monospace; font-weight: 700; font-size: 12px;
  letter-spacing: 0.26em; text-transform: uppercase; color: #ecd6a5;
}

/* ==========================================================================
   9. RESPONSIVE
   ========================================================================== */
@media (max-width: 980px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); }
  .woocommerce-products-header .page-title { font-size: 38px; }
}
@media (max-width: 560px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: 1fr; }
}


/* ==========================================================================
   10. PAGE SECTIONS (.rb blocks used by the Custom HTML pages)
   ========================================================================== */
/* ---- 3. Design tokens + base ---- */
.rb {
  --rasp:#e24766; --rasp-600:#c83353; --rasp-400:#ee6f88;
  --ink:#2a2521; --ink-800:#3b342d; --muted:#6f655a;
  --sand-100:#f6ecd2; --sand-200:#ecd6a5; --lemon:#eee50a;
  --paper:#faf7f1; --line:#e9e2d7;
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  color:var(--ink); background:var(--paper); line-height:1.6;
}
.rb *{ box-sizing:border-box; }
.rb img{ max-width:100%; display:block; }
.rb h1,.rb h2,.rb h3{
  font-family:'Archivo',sans-serif; font-weight:800; text-transform:uppercase;
  letter-spacing:-0.02em; margin:0; color:var(--ink);
}
.rb p{ margin:0; }
.rb-wrap{ max-width:1200px; margin:0 auto; padding-left:28px; padding-right:28px; }
/* sections that carry BOTH a background and .rb-wrap on the same element:
   stretch the background full-bleed, keep the content centered at 1200px */
section.rb-section.rb-wrap, section.rb-hero.rb-wrap, section.rb-cta.rb-wrap, section.rb-band.rb-wrap {
  max-width: none;
  padding-left: max(28px, calc(50vw - 572px));
  padding-right: max(28px, calc(50vw - 572px));
}

/* eyebrow label */
.rb-eyebrow{
  font-family:'Space Mono',monospace; font-weight:700; font-size:12px;
  text-transform:uppercase; letter-spacing:0.18em;
  display:inline-flex; align-items:center; gap:12px; color:var(--rasp);
}
.rb-eyebrow::before{ content:""; width:28px; height:2px; background:currentColor; }

/* ---- 4. Buttons ---- */
.rb-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Hanken Grotesk',sans-serif; font-weight:700; font-size:16px;
  padding:13px 22px; border-radius:10px; border:2px solid var(--ink);
  cursor:pointer; text-decoration:none; transition:transform .06s ease, box-shadow .06s ease, background .12s ease;
}
.rb-btn:active{ transform:translateY(6px); box-shadow:0 0 0 var(--ink) !important; }
.rb-btn-primary{ background:var(--rasp); color:#fff; box-shadow:0 6px 0 var(--ink); }
.rb-btn-primary:hover{ background:var(--rasp-600); }
.rb-btn-cream{ background:var(--sand-100); color:var(--ink); box-shadow:0 6px 0 var(--ink); }
.rb-btn-outline{ background:transparent; color:#fff; border-color:#fff; box-shadow:0 6px 0 var(--ink); }
.rb-btn-sm{ padding:9px 16px; font-size:14px; border-radius:8px; box-shadow:0 5px 0 var(--ink); }
.rb-btn-sm:active{ transform:translateY(5px); }

/* ---- 5. Hero (raspberry banner) ---- */
.rb-hero{ background:var(--rasp); color:#fff; overflow:hidden; }
.rb-hero .rb-eyebrow{ color:var(--sand-200); margin-bottom:22px; }
.rb-hero h1{ color:#fff; }
.rb-hero h1 .accent{ color:var(--sand-200); }
.rb-hero p{ color:rgba(255,255,255,0.92); }

/* split hero: copy + art */
.rb-hero-split .rb-wrap{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:24px; align-items:end; padding-top:64px; }
.rb-hero-split .rb-hero-copy{ padding-bottom:84px; }
.rb-hero-split h1{ font-size:76px; line-height:0.92; letter-spacing:-0.025em; }
.rb-hero-split p{ margin-top:24px; max-width:440px; font-size:18px; }
.rb-hero-cta{ margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; }
.rb-hero-art{ position:relative; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:36px; padding-bottom:72px; }
.rb-hero-art .rb-diamond{ height:330px; filter:drop-shadow(6px 8px 0 rgba(42,37,33,0.18)); }
.rb-hero-art .rb-wordmark{ width:400px; height:auto; filter:drop-shadow(4px 5px 0 rgba(42,37,33,0.18)); }

/* centered hero: for inner pages */
.rb-hero-center .rb-wrap{ text-align:center; padding-top:72px; padding-bottom:72px; max-width:820px; }
.rb-hero-center .rb-eyebrow{ justify-content:center; }
.rb-hero-center h1{ font-size:60px; line-height:0.96; margin-top:18px; }
.rb-hero-center p{ margin:22px auto 0; max-width:560px; font-size:18px; }
.rb-hero-center .rb-hero-cta{ justify-content:center; }

/* ---- 6. Trust strip ---- */
.rb-trust{ background:var(--ink); color:var(--sand-100); }
.rb-trust .rb-wrap{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px;
  padding-top:16px; padding-bottom:16px;
  font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
}
.rb-trust span{ display:inline-flex; align-items:center; gap:10px; }
.rb-trust span::before{
  content:"✓"; flex:none; width:18px; height:18px; border-radius:50%;
  background:var(--rasp); color:#fff; font-size:11px; font-weight:700;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
}
@media (max-width:640px){
  .rb-trust .rb-wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:12px 16px;
    padding-top:20px; padding-bottom:20px; font-size:10.5px; letter-spacing:0.06em;
  }
  .rb-trust span{ gap:8px; align-items:flex-start; }
  .rb-trust span::before{ width:16px; height:16px; font-size:10px; margin-top:1px; }
}

/* ---- 7. Section heading row ---- */
.rb-section{ padding-top:72px; padding-bottom:64px; }
.rb-section.cream{ background:var(--sand-100); }
.rb-section.sand{ background:var(--sand-200); }
.rb-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:36px; }
.rb-head h2{ font-size:44px; margin-top:12px; }
.rb-head.center{ flex-direction:column; align-items:center; text-align:center; }
.rb-head.center .rb-eyebrow{ justify-content:center; }

/* ---- 8. Product / value cards ---- */
.rb-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.rb-grid.three{ grid-template-columns:repeat(3,1fr); }
.rb-card{
  background:#fff; border:2px solid var(--ink); border-radius:14px; overflow:hidden;
  box-shadow:4px 4px 0 rgba(42,37,33,0.12); display:flex; flex-direction:column;
}
.rb-card .rb-card-img img, .rb-card .rb-pouch { transition: transform 0.25s ease; }
.rb-card:hover .rb-card-img img, .rb-card:hover .rb-pouch { transform: scale(1.05) translateY(-4px); }
.rb-card-img{ background:#fff; padding:22px 20px; display:flex; justify-content:center; align-items:center; border-bottom:1px solid var(--line); min-height:220px; }
.rb-card-img img{ max-height:180px; width:auto; }
.rb-pouch{ width:120px; height:170px; border-radius:10px; background:var(--ink); display:flex; align-items:center; justify-content:center; color:var(--sand-100); font-family:'Archivo',sans-serif; font-weight:900; font-size:32px; }
.rb-card-body{ padding:22px; display:flex; flex-direction:column; flex:1; }
.rb-card-meta{ display:flex; align-items:center; gap:10px; margin-bottom:8px; flex-wrap:wrap; }
.rb-tagline{ font-family:'Space Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.14em; color:var(--muted); }
.rb-badge{ font-family:'Space Mono',monospace; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; padding:3px 8px; border-radius:999px; border:1.5px solid var(--ink); }
.rb-badge.success{ background:#1f8a5b; color:#fff; border-color:#1f8a5b; }
.rb-badge.brand{ background:var(--rasp); color:#fff; border-color:var(--rasp); }
.rb-badge.warning{ background:var(--lemon); color:var(--ink); border-color:var(--ink); }
.rb-card-body h3{ font-size:23px; margin-bottom:6px; }
.rb-card-body p{ font-size:14.5px; color:var(--muted); line-height:1.55; flex:1; margin-bottom:18px; }
.rb-card-foot{ display:flex; align-items:center; justify-content:space-between; }
.rb-price{ font-family:'Archivo',sans-serif; font-weight:800; font-size:22px; color:var(--ink); }

/* ---- 9. Split content (text + image) ---- */
.rb-split .rb-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.rb-split.reverse .rb-media{ order:2; }
.rb-split h2{ font-size:46px; margin:14px 0 16px; max-width:460px; }
.rb-split p{ font-size:17px; color:var(--ink-800); max-width:480px; margin-bottom:16px; }
.rb-media{ border-radius:16px; overflow:hidden; border:2px solid var(--ink); box-shadow:6px 6px 0 var(--ink); }
.rb-media img{ width:100%; height:420px; object-fit:cover; }

/* ---- 10. Photo band (full-bleed image w/ overlay) ---- */
.rb-band{ position:relative; overflow:hidden; }
.rb-band > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.rb-band .rb-overlay{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,18,16,0.86) 0%,rgba(20,18,16,0.62) 44%,rgba(20,18,16,0.12) 100%); }
.rb-band .rb-wrap{ position:relative; padding-top:96px; padding-bottom:96px; color:#fff; }
.rb-band-copy{ max-width:500px; }
.rb-band .rb-eyebrow{ color:var(--lemon); }
.rb-band h2{ color:#fff; font-size:52px; line-height:0.98; margin:18px 0 14px; }
.rb-band p{ color:rgba(255,255,255,0.9); font-size:18px; margin-bottom:28px; }

/* ---- 11. Steps (numbered) ---- */
.rb-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.rb-step{ background:#fff; border:2px solid var(--ink); border-radius:14px; padding:26px; box-shadow:4px 4px 0 rgba(42,37,33,0.12); }
.rb-step .num{ width:42px; height:42px; border-radius:50%; background:var(--rasp); color:#fff; font-family:'Space Mono',monospace; font-weight:700; font-size:17px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.rb-step h3{ font-size:21px; margin-bottom:8px; }
.rb-step p{ font-size:15px; color:var(--muted); }

/* ---- 12. Values trio ---- */
.rb-values{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.rb-value{ text-align:center; padding:8px; }
.rb-value .ic{ font-family:'Archivo',sans-serif; font-weight:900; font-size:40px; color:var(--rasp); margin-bottom:8px; }
.rb-value h3{ font-size:20px; margin-bottom:8px; }
.rb-value p{ font-size:15px; color:var(--muted); max-width:300px; margin:0 auto; }

/* ---- 13. CTA band ---- */
.rb-cta{ background:var(--rasp); color:#fff; }
.rb-cta .rb-wrap{ padding-top:72px; padding-bottom:72px; text-align:center; }
.rb-cta .rb-eyebrow{ color:var(--sand-200); justify-content:center; }
.rb-cta h2{ color:#fff; font-size:50px; margin:16px 0 14px; }
.rb-cta p{ color:rgba(255,255,255,0.9); font-size:18px; max-width:520px; margin:0 auto 28px; }
.rb-cta .rb-hero-cta{ justify-content:center; }

/* ---- 14. FAQ ---- */
.rb-faq{ max-width:760px; margin:0 auto; }
.rb-faq details{ border-bottom:1px solid var(--line); padding:18px 0; }
.rb-faq summary{ font-family:'Archivo',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:-0.01em; font-size:18px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:16px; }
.rb-faq summary::after{ content:"+"; color:var(--rasp); font-weight:800; }
.rb-faq details[open] summary::after{ content:"–"; }
.rb-faq p{ margin-top:12px; color:var(--muted); font-size:15.5px; }

/* ---- 15. Contact form ---- */
.rb-form{ display:grid; gap:16px; max-width:520px; }
.rb-form label{ font-family:'Space Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.1em; color:var(--ink); margin-bottom:6px; display:block; }
.rb-form input,.rb-form textarea{ width:100%; border:2px solid var(--ink); border-radius:10px; padding:12px 14px; font-family:'Hanken Grotesk',sans-serif; font-size:15px; background:#fff; }
.rb-form textarea{ min-height:130px; resize:vertical; }
.rb-contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.rb-contact-detail{ margin-bottom:22px; }
.rb-contact-detail .k{ font-family:'Space Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.12em; color:var(--rasp-600); margin-bottom:4px; }
.rb-contact-detail .v{ font-size:17px; }

/* ---- 16. Footer note ---- */
.rb-foot{ background:var(--ink); color:var(--sand-100); }
.rb-foot .rb-wrap{ padding-top:28px; padding-bottom:28px; text-align:center; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; }

/* ---- 17. Responsive ---- */
@media (max-width:980px){
  .rb-hero-split .rb-wrap{ grid-template-columns:1fr; }
  .rb-hero-split h1{ font-size:58px; }
  .rb-hero-art{ display:none; }
  .rb-hero-center h1{ font-size:46px; }
  .rb-grid,.rb-grid.three{ grid-template-columns:repeat(2,1fr); }
  .rb-split .rb-wrap{ grid-template-columns:1fr; }
  .rb-split.reverse .rb-media{ order:0; }
  .rb-steps,.rb-values{ grid-template-columns:1fr; }
  .rb-contact-grid{ grid-template-columns:1fr; }
  .rb-band h2,.rb-cta h2{ font-size:38px; }
}
@media (max-width:560px){
  .rb-hero-split h1{ font-size:44px; }
  .rb-grid,.rb-grid.three{ grid-template-columns:1fr; }
  .rb-head{ flex-direction:column; align-items:flex-start; }
  .rb-media img{ height:300px; }
}

/* trademark symbol in display headings — keep it small */
.rb .rb-reg { font-size: 0.42em; vertical-align: 0.75em; line-height: 0; }
