/*
Theme Name: Rotbier
Theme URI: https://rotbier.frl
Author: Rotbier
Description: Eigen thema voor Rotbier.frl — warm, ambachtelijk, snel en volledig gekoppeld aan WooCommerce. Producten, pagina's, winkelwagen en checkout blijven via WordPress/WooCommerce beheerbaar.
Version: 1.5.8
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rotbier
Tags: e-commerce, custom-colors, custom-menu, responsive-layout
*/

/* ==========================================================================
   1. DESIGN TOKENS
   ========================================================================== */
:root{
  --rb-cream: #fbf4e9;
  --rb-cream-dark: #f0e2cc;
  --rb-cream-soft: #fffaf3;
  --rb-navy: #080808;
  --rb-navy-soft: #1a1a1a;
  --rb-copper: #a9531b;
  --rb-copper-dark: #79390f;
  --rb-gold: #d39a3c;
  --rb-gold-light: #efc46f;
  --rb-brown-900: #2b1a12;
  --rb-brown-700: #543827;
  --rb-white: #ffffff;
  --rb-header-bg: #080808;
  --rb-header-text: #fff7e9;
  --rb-header-muted: #e8dcc9;
  --rb-line: rgba(43,26,18,.13);
  --rb-line-strong: rgba(43,26,18,.22);
  --rb-font-heading: ui-serif, Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;
  --rb-font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --rb-radius-lg: 22px;
  --rb-radius: 15px;
  --rb-radius-sm: 9px;
  --rb-shadow: 0 18px 46px rgba(43,26,18,.14);
  --rb-shadow-sm: 0 6px 20px rgba(43,26,18,.08);
  --rb-container: 1180px;
}

/* ==========================================================================
   2. RESET & BASE
   ========================================================================== */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; max-width:100%; overflow-x:hidden; }
body{
  margin:0;
  background:var(--rb-cream);
  color:var(--rb-brown-900);
  font-family:var(--rb-font-body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  max-width:100%;
  overflow-x:hidden;
}
body.menu-open{ overflow:hidden; }
@supports (overflow:clip){
  html, body{ overflow-x:clip; }
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--rb-copper); text-decoration:none; }
a:hover{ color:var(--rb-copper-dark); }
p{ margin:0 0 1.1em; }
ul, ol{ margin:0 0 1.2em 1.45em; padding:0; }
li + li{ margin-top:.25em; }
hr, .wp-block-separator{ border:0; border-top:1px solid var(--rb-line); margin:2rem 0; }
blockquote, .wp-block-quote{
  margin:1.8rem 0;
  padding:1rem 1.4rem;
  border-left:4px solid var(--rb-gold);
  background:var(--rb-cream-soft);
  border-radius:0 var(--rb-radius-sm) var(--rb-radius-sm) 0;
}
table{ width:100%; border-collapse:collapse; }
th, td{ padding:.75rem; border:1px solid var(--rb-line); text-align:left; vertical-align:top; }
th{ background:var(--rb-cream-dark); }
input, textarea, select, button{ font:inherit; }

h1,h2,h3,h4,h5,h6{
  font-family:var(--rb-font-heading);
  color:var(--rb-brown-900);
  line-height:1.15;
  margin:0 0 .55em;
  font-weight:650;
}
h1{ font-size:clamp(2.15rem, 4vw + .7rem, 3.65rem); }
h2{ font-size:clamp(1.65rem, 2.4vw + .7rem, 2.55rem); }
h3{ font-size:clamp(1.3rem, 1vw + 1rem, 1.7rem); }
h4{ font-size:1.18rem; }

.container{
  width:min(100%, var(--rb-container));
  margin-inline:auto;
  padding-inline:24px;
}
.site-main{ min-height:38vh; }

.btn,
input[type="submit"],
.wp-block-button__link,
a.button,
button.button,
input[type="submit"].button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  min-height:46px;
  background:var(--rb-copper);
  color:var(--rb-white) !important;
  border:0;
  padding:.82em 1.5em;
  border-radius:999px;
  font-family:var(--rb-font-body);
  font-weight:750;
  font-size:.95rem;
  line-height:1.2;
  cursor:pointer;
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
  box-shadow:var(--rb-shadow-sm);
}
.btn:hover,
.wp-block-button__link:hover,
a.button:hover,
button.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover{
  background:var(--rb-copper-dark);
  color:var(--rb-white) !important;
  transform:translateY(-1px);
}

/* ==========================================================================
   3. ACCESSIBILITY
   ========================================================================== */
.screen-reader-text{
  border:0;
  clip:rect(1px,1px,1px,1px);
  clip-path:inset(50%);
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute !important;
  width:1px;
  word-wrap:normal !important;
}
.skip-link{
  position:fixed;
  left:12px;
  top:-100px;
  z-index:10000;
  background:var(--rb-navy);
  color:var(--rb-white);
  padding:10px 16px;
  border-radius:0 0 8px 8px;
}
.skip-link:focus{ top:0; color:var(--rb-white); }
:where(a, button, input, select, textarea, summary):focus-visible{
  outline:3px solid var(--rb-gold);
  outline-offset:3px;
}

/* ==========================================================================
   4. HEADER / BRANDING
   ========================================================================== */
 .site-header{
  position:relative;
  top:auto;
  z-index:700;
  background:#080808;
  color:var(--rb-header-text);
  border-bottom:1px solid rgba(239,196,111,.24);
  box-shadow:0 7px 24px rgba(0,0,0,.18);
}
.site-header-inner{
  min-height:238px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-top:9px;
  padding-bottom:9px;
}
.site-branding{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  min-width:112px;
}
.rb-logo-link{ display:inline-flex; align-items:center; border-radius:10px; }
.rb-logo-link:focus-visible{ outline-color:var(--rb-gold-light); }
.rb-brand-logo{
  width:auto;
  height:auto;
  object-fit:contain;
}
.rb-brand-logo--header{
  width:clamp(190px, 16vw, 220px);
  max-height:220px;
  max-width:220px;
}
.main-navigation{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:28px;
  flex:1 1 auto;
  min-width:0;
}
.main-navigation ul,
.main-navigation .primary-menu{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:24px;
}
.main-navigation li{ margin:0; }
.main-navigation a{
  color:var(--rb-header-text);
  font-weight:700;
  font-size:.97rem;
  padding:9px 1px;
  position:relative;
  white-space:nowrap;
}
.main-navigation a:hover,
.main-navigation a:focus-visible,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a{
  color:var(--rb-gold-light);
}
.main-navigation a:focus-visible{
  outline:2px solid var(--rb-gold-light);
  outline-offset:4px;
  border-radius:4px;
}
.main-navigation .primary-menu > li > a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:3px;
  width:0;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--rb-gold),var(--rb-copper));
  transition:width .18s ease;
}
.main-navigation .primary-menu > li > a:hover::after,
.main-navigation .primary-menu > li > a:focus-visible::after,
.main-navigation .primary-menu > .current-menu-item > a::after,
.main-navigation .primary-menu > .current_page_item > a::after,
.main-navigation .primary-menu > .current-menu-ancestor > a::after{ width:100%; }

.main-navigation .primary-menu > li{ position:relative; }
.main-navigation .sub-menu{
  position:absolute;
  top:calc(100% + 6px);
  left:-16px;
  z-index:20;
  min-width:220px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  padding:10px !important;
  margin:0 !important;
  border:1px solid rgba(239,196,111,.2);
  border-radius:var(--rb-radius);
  background:#0b0b0b;
  box-shadow:0 18px 40px rgba(0,0,0,.28);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.main-navigation .sub-menu li{ width:100%; }
.main-navigation .sub-menu a{
  display:block;
  width:100%;
  padding:9px 11px;
  border-radius:8px;
  color:var(--rb-header-text);
  white-space:normal;
}
.main-navigation .sub-menu a:hover,
.main-navigation .sub-menu a:focus-visible{ background:rgba(239,196,111,.09); color:var(--rb-gold-light); }
.main-navigation li:hover > .sub-menu,
.main-navigation li:focus-within > .sub-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
.header-actions{ display:flex; align-items:center; margin-left:4px; }
.header-cart{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#111;
  color:var(--rb-header-text) !important;
  border:1px solid rgba(239,196,111,.46);
  padding:9px 14px;
  border-radius:999px;
  font-weight:750;
  font-size:.9rem;
  line-height:1;
  box-shadow:none;
}
.header-cart::after{ display:none; }
.header-cart:hover,
.header-cart:focus-visible{ background:#18130b; color:var(--rb-gold-light) !important; border-color:var(--rb-gold-light); }
.header-cart-icon{ width:18px; height:18px; flex:0 0 18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.header-cart .count{
  min-width:22px;
  height:22px;
  padding-inline:6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--rb-gold-light);
  color:#080808;
  font-size:.74rem;
  font-weight:850;
}
.menu-toggle{
  display:none;
  position:relative;
  z-index:730;
  width:48px;
  height:48px;
  flex:0 0 48px;
  align-items:center;
  justify-content:center;
  padding:0;
  border:2px solid var(--rb-gold-light);
  border-radius:11px;
  background:#0d0d0d;
  color:var(--rb-gold-light);
  cursor:pointer;
  box-shadow:none;
}
.menu-toggle:hover,
.menu-toggle:focus-visible{ background:#17120a; color:var(--rb-header-text); border-color:var(--rb-header-text); transform:none; }
.menu-toggle-bars,
.menu-toggle-bars::before,
.menu-toggle-bars::after{
  content:"";
  display:block;
  width:21px;
  height:2px;
  border-radius:10px;
  background:currentColor;
  position:relative;
  transition:transform .2s ease, top .2s ease, opacity .2s ease;
}
.menu-toggle-bars::before{ position:absolute; top:-7px; left:0; }
.menu-toggle-bars::after{ position:absolute; top:7px; left:0; }
.menu-toggle.is-open .menu-toggle-bars{ background:transparent; }
.menu-toggle.is-open .menu-toggle-bars::before{ top:0; transform:rotate(45deg); }
.menu-toggle.is-open .menu-toggle-bars::after{ top:0; transform:rotate(-45deg); }
.menu-overlay{ display:none; }

/* ==========================================================================
   5. HERO / HOMEPAGE
   ========================================================================== */
.rb-hero{
  position:relative;
  overflow:hidden;
  padding:34px 0 38px;
  background:linear-gradient(145deg,var(--rb-cream-soft),var(--rb-cream));
  border-bottom:1px solid rgba(43,26,18,.08);
}
.rb-hero .container{
  width:min(100%, 1420px);
}
.rb-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.95fr) minmax(220px,.45fr);
  gap:clamp(22px,3vw,42px);
  align-items:center;
}
.rb-hero-visual{
  min-width:0;
  overflow:hidden;
  border-radius:var(--rb-radius-lg);
  background:#0a0a0a;
  box-shadow:var(--rb-shadow-sm);
}
.rb-hero-visual img{
  width:100%;
  height:auto;
  aspect-ratio:3/1;
  object-fit:cover;
}
.rb-hero-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:14px;
}
.rb-hero-actions .btn{ width:100%; min-height:52px; }
.rb-hero-actions .btn-outline{
  background:transparent;
  color:#080808 !important;
  border:2px solid #080808;
  box-shadow:none;
}
.rb-hero-actions .btn-outline:hover,
.rb-hero-actions .btn-outline:focus-visible{
  background:#080808;
  color:var(--rb-gold-light) !important;
  border-color:#080808;
}
/* ==========================================================================
   6. CONTENT / PAGES / BLOCKS
   ========================================================================== */
.rb-section{ padding:72px 0; }
.rb-section--page{ padding-top:0; }
.rb-section-head{ max-width:700px; margin:0 auto 42px; text-align:center; }
.rb-section-head h2{ margin-bottom:.35em; }
.rb-section-head p{ margin:0; color:var(--rb-brown-700); }
.rb-home-content{ padding-bottom:56px; }
.rb-section--products{
  padding-top:78px;
  padding-bottom:88px;
  background:var(--rb-white);
  border-top:1px solid rgba(43,26,18,.05);
}
.rb-card,
.rb-content-surface{
  background:var(--rb-white);
  border:1px solid rgba(43,26,18,.06);
  border-radius:var(--rb-radius-lg);
  box-shadow:var(--rb-shadow-sm);
}
.rb-card{ padding:clamp(24px,4vw,42px); }
.rb-content-surface{ padding:clamp(25px,4vw,48px); }
.rb-page-card{ width:100%; }
.entry-content,
.page-content{ width:100%; max-width:none; font-size:1.04rem; }
.entry-content::after{ content:""; display:table; clear:both; }
.entry-content > *:first-child{ margin-top:0; }
.entry-content > *:last-child{ margin-bottom:0; }
.entry-content ul{ list-style:disc; }
.entry-content ol{ list-style:decimal; }
.entry-content ul ul{ list-style:circle; }
.entry-content :where(.wp-block-group, .wp-block-columns, .wp-block-column, .wp-block-image, .wp-block-gallery, .wp-block-cover){ max-width:100%; }
.entry-content .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){
  max-width:100%;
}
.entry-content .alignwide{ width:100%; max-width:100%; margin-left:auto; margin-right:auto; }
.entry-content .alignfull{ width:100%; max-width:100%; }
.entry-content .wp-block-columns{ gap:clamp(18px,3vw,34px); }
.entry-content .wp-block-image img{ border-radius:var(--rb-radius); }
.entry-content .wp-block-button{ margin-block:1.2rem; }
.entry-content .wp-block-table{ overflow-x:auto; }
.rb-page-hero{ padding:58px 24px 26px; text-align:center; }
.rb-page-hero h1{ max-width:18ch; margin-inline:auto; }
.rb-article-header{ padding-bottom:34px; }
.rb-section--article{ max-width:940px; padding-top:0; }
.rb-article-image{ overflow:hidden; margin-bottom:28px; border-radius:var(--rb-radius-lg); box-shadow:var(--rb-shadow-sm); }
.rb-article-image img{ width:100%; }
.rb-post-list, .rb-search-results{ max-width:980px; }
.rb-post-card + .rb-post-card,
.rb-search-card + .rb-search-card{ margin-top:22px; }
.rb-post-card-image{ display:block; overflow:hidden; margin:-20px -20px 24px; border-radius:var(--rb-radius) var(--rb-radius) 0 0; }
.rb-post-card-image img{ width:100%; max-height:440px; object-fit:cover; }
.rb-empty-state{ max-width:720px; text-align:center; }
.rb-empty-state .rb-card{ padding-block:64px; }

/* ==========================================================================
   7. WOOCOMMERCE — GLOBAL / SHOP
   ========================================================================== */
.rb-woocommerce-main{ width:min(100%, var(--rb-container)); }
.woocommerce-page-inner{ min-width:0; }
.woocommerce{ --rb-wc-gap:26px; }
.woocommerce .woocommerce-breadcrumb{ margin-bottom:24px; color:var(--rb-brown-700); font-size:.9rem; }
.woocommerce .woocommerce-breadcrumb a{ color:var(--rb-copper-dark); }
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{ margin-bottom:28px; }
.woocommerce .woocommerce-ordering select{
  min-height:44px;
  border:1px solid var(--rb-line);
  border-radius:10px;
  background:var(--rb-white);
  padding:8px 38px 8px 12px;
}
.woocommerce ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--rb-wc-gap) !important;
  width:100%;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{ display:none !important; content:none !important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  float:none !important;
  clear:none !important;
  width:100% !important;
  max-width:none !important;
  min-width:0;
  margin:0 !important;
  padding:16px 16px 20px;
  display:flex;
  flex-direction:column;
  list-style:none !important;
  position:relative;
  background:var(--rb-cream-soft);
  border:1px solid rgba(43,26,18,.08);
  border-radius:var(--rb-radius-lg);
  box-shadow:var(--rb-shadow-sm);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-4px);
  border-color:rgba(169,83,27,.22);
  box-shadow:var(--rb-shadow);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a.woocommerce-loop-product__link{
  display:flex;
  flex:1 1 auto;
  min-width:0;
  flex-direction:column;
  color:inherit;
}
.woocommerce ul.products li.product a img{
  width:100% !important;
  height:268px !important;
  aspect-ratio:1/1;
  object-fit:contain !important;
  object-position:center;
  margin:0 0 17px !important;
  padding:16px;
  border-radius:var(--rb-radius);
  background:#f5ecdf;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  min-height:2.55em;
  margin:0 2px 8px !important;
  padding:0 !important;
  color:var(--rb-brown-900);
  font-family:var(--rb-font-heading);
  font-size:1.12rem !important;
  line-height:1.28;
  font-weight:700;
}
.woocommerce ul.products li.product .star-rating{ margin:0 2px 9px; }
.woocommerce ul.products li.product .price{
  display:block;
  margin:auto 2px 0 !important;
  color:var(--rb-copper-dark) !important;
  font-size:1.08rem !important;
  font-weight:850 !important;
}
.woocommerce ul.products li.product .price del{ opacity:.58; font-weight:600; }
.woocommerce ul.products li.product .button{
  width:100%;
  margin:15px 0 0 !important;
  padding:.78em 1em;
  font-size:.88rem;
  text-align:center;
}
.woocommerce ul.products li.product .added_to_cart{
  display:block;
  margin-top:9px;
  text-align:center;
  font-weight:750;
}
.woocommerce span.onsale{
  z-index:3;
  top:12px;
  left:12px;
  right:auto;
  margin:0;
  min-height:0;
  min-width:0;
  padding:7px 10px;
  line-height:1;
  background:var(--rb-gold-light);
  color:var(--rb-navy);
  font-weight:850;
  border-radius:999px;
  box-shadow:var(--rb-shadow-sm);
}
.woocommerce nav.woocommerce-pagination ul{
  display:flex;
  gap:8px;
  justify-content:center;
  margin:42px 0 0 !important;
  padding:0;
  border:0 !important;
  list-style:none;
}
.woocommerce nav.woocommerce-pagination ul li{ margin:0; border:0 !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  min-width:40px;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--rb-line) !important;
  border-radius:999px !important;
  background:var(--rb-white);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--rb-copper) !important;
  color:var(--rb-white) !important;
  border-color:var(--rb-copper) !important;
}

/* ==========================================================================
   8. WOOCOMMERCE — SINGLE PRODUCT
   ========================================================================== */
.woocommerce div.product{
  display:flow-root;
  padding:clamp(22px,4vw,40px);
  background:var(--rb-white);
  border:1px solid rgba(43,26,18,.07);
  border-radius:var(--rb-radius-lg);
  box-shadow:var(--rb-shadow-sm);
}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{ margin-bottom:42px; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{
  border-radius:var(--rb-radius);
  background:var(--rb-cream-soft);
}
.woocommerce div.product div.images img{
  width:100%;
  max-height:650px;
  object-fit:contain;
  background:var(--rb-cream-soft);
  border-radius:var(--rb-radius);
}
.woocommerce div.product .product_title{ margin-bottom:.3em; }
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--rb-copper-dark);
  font-size:1.48rem;
  font-weight:850;
}
.woocommerce div.product .woocommerce-product-details__short-description{ color:var(--rb-brown-700); }
.woocommerce div.product form.cart{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.woocommerce div.product form.cart .variations{ width:100%; margin-bottom:8px; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{ border:0; padding:.4rem .5rem .4rem 0; }
.woocommerce div.product form.cart .variations select{
  min-height:46px;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-radius-sm);
  background:var(--rb-white);
  padding:8px 10px;
}
.woocommerce div.product form.cart .button{ min-height:48px; padding:.9em 1.6em; }
.woocommerce div.product .quantity input.qty{
  width:76px;
  height:48px;
  border:1px solid var(--rb-line-strong);
  border-radius:var(--rb-radius-sm);
  background:var(--rb-white);
  text-align:center;
}
.woocommerce div.product .product_meta{
  padding-top:18px;
  border-top:1px solid var(--rb-line);
  color:var(--rb-brown-700);
  font-size:.9rem;
}
.woocommerce div.product .product_meta > span{ display:block; margin-top:5px; }
.woocommerce div.product .woocommerce-tabs{
  clear:both;
  padding-top:14px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 22px !important;
  padding:0 !important;
  list-style:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  margin:0 !important;
  padding:0 !important;
  border:1px solid var(--rb-line) !important;
  border-radius:999px !important;
  background:var(--rb-cream-soft) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ padding:8px 15px !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ background:var(--rb-navy) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--rb-white) !important; }
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products{ clear:both; padding-top:34px; }
.woocommerce div.product .related.products > h2,
.woocommerce div.product .upsells.products > h2{ margin-bottom:26px; }

/* ==========================================================================
   9. WOOCOMMERCE — NOTICES, CART, CHECKOUT, ACCOUNT
   ========================================================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  border:0;
  border-left:4px solid var(--rb-gold);
  border-radius:var(--rb-radius-sm);
  background:var(--rb-white);
  color:var(--rb-brown-900);
  box-shadow:var(--rb-shadow-sm);
}
.woocommerce-error{ border-left-color:#a53d31; }
.woocommerce-message{ border-left-color:var(--rb-navy-soft); }
.woocommerce table.shop_table{
  overflow:hidden;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-radius);
  background:var(--rb-white);
  border-collapse:separate;
  border-spacing:0;
}
.woocommerce table.shop_table th{ background:var(--rb-cream-dark); }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th{ padding:13px 14px; border-color:var(--rb-line); }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-checkout #payment,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register{
  padding:22px;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-radius);
  background:var(--rb-white);
  box-shadow:var(--rb-shadow-sm);
}
.woocommerce-checkout #payment{ background:var(--rb-white); }
.woocommerce-checkout #payment ul.payment_methods{
  margin:0;
  padding:0;
  list-style:none;
  border-bottom-color:var(--rb-line);
}
.woocommerce-checkout #payment ul.payment_methods li{ margin:.45rem 0; }
.woocommerce form .form-row label{ font-weight:700; color:var(--rb-brown-900); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce .select2-container .select2-selection--single{
  min-height:46px;
  border:1px solid var(--rb-line-strong);
  border-radius:var(--rb-radius-sm);
  background:var(--rb-white);
  padding:.72em .9em;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered{ line-height:20px; padding-left:0; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow{ height:44px; }
.woocommerce-cart table.cart img{ width:74px; border-radius:8px; }
.woocommerce-cart .coupon{ display:flex; gap:8px; flex-wrap:wrap; }
.woocommerce-cart .coupon .input-text{ min-width:180px; min-height:44px; border:1px solid var(--rb-line-strong); border-radius:999px; padding:8px 14px; }
.woocommerce .cart_totals h2,
.woocommerce-checkout h3{ margin-bottom:18px; }
.woocommerce-MyAccount-navigation ul{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:0 0 28px;
  padding:0;
  list-style:none;
}
.woocommerce-MyAccount-navigation ul li{ margin:0; }
.woocommerce-MyAccount-navigation ul li a{
  display:block;
  padding:8px 15px;
  border:1px solid var(--rb-line);
  border-radius:999px;
  background:var(--rb-white);
  color:var(--rb-brown-900);
  font-weight:700;
}
.woocommerce-MyAccount-navigation ul li.is-active a{ background:var(--rb-navy); color:var(--rb-white); border-color:var(--rb-navy); }

/* WooCommerce Blocks: Cart + Checkout */
.wc-block-cart,
.wc-block-checkout{
  font-family:var(--rb-font-body);
  color:var(--rb-brown-900);
}
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar-layout .wc-block-components-sidebar{
  min-width:0;
}
.wc-block-components-sidebar,
.wc-block-cart-items,
.wc-block-checkout__main,
.wc-block-components-order-summary{
  border-color:var(--rb-line) !important;
}
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary,
.wc-block-components-radio-control,
.wc-block-components-checkout-step{
  border-color:var(--rb-line) !important;
}
.wc-block-components-button:not(.is-link){
  min-height:48px !important;
  border-radius:999px !important;
  background:var(--rb-copper) !important;
  color:var(--rb-white) !important;
  font-weight:800 !important;
}
.wc-block-components-button:not(.is-link):hover{ background:var(--rb-copper-dark) !important; }
.wc-block-components-text-input input,
.wc-block-components-combobox-control input,
.wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-form .wc-block-components-combobox-control input{
  border-color:var(--rb-line-strong) !important;
  border-radius:var(--rb-radius-sm) !important;
  background:var(--rb-white) !important;
}
.wc-block-components-notice-banner{
  border-radius:var(--rb-radius-sm) !important;
  box-shadow:var(--rb-shadow-sm);
}
.wc-block-components-product-name{ color:var(--rb-brown-900); font-weight:750; }


/* Latest news on homepage */
.rb-section--latest{
  padding-top:70px;
  padding-bottom:24px;
}

/* ==========================================================================
   10. FOOTER
   ========================================================================== */
.site-footer{
  margin-top:64px;
  padding:58px 0 28px;
  background:var(--rb-navy);
  color:rgba(255,250,243,.84);
}
.site-footer a{ color:var(--rb-gold-light); }
.site-footer a:hover{ color:var(--rb-white); }
.footer-grid{
  display:grid;
  grid-template-columns:1.25fr .8fr 1fr;
  gap:clamp(30px,5vw,64px);
  align-items:start;
}
.rb-brand-logo--footer{
  max-width:126px;
  max-height:126px;
  margin-bottom:16px;
}
.site-footer h4{
  margin-bottom:15px;
  color:var(--rb-cream-soft);
  font-family:var(--rb-font-body);
  font-size:.85rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.site-footer ul,
.site-footer .footer-menu{
  margin:0;
  padding:0;
  list-style:none;
}
.site-footer ul li{ margin:0 0 8px; }
.site-footer .footer-widget p:last-child{ margin-bottom:0; }
.footer-bottom{
  margin-top:42px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.58);
  font-size:.85rem;
  text-align:center;
}

/* ==========================================================================
   11. RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  .main-navigation ul, .main-navigation .primary-menu{ gap:17px; }
  .main-navigation{ gap:18px; }
  .woocommerce ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:960px){
  .rb-hero-grid{ grid-template-columns:minmax(0,1.6fr) minmax(210px,.4fr); gap:24px; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:1/-1; }
}

@media (max-width:780px){
  .site-header{
    position:sticky;
    top:0;
  }
  body.admin-bar .site-header{ top:46px; }
  .site-header-inner{ min-height:136px; padding-top:8px; padding-bottom:8px; }
  .rb-brand-logo--header{ width:112px; max-height:112px; max-width:112px; }
  .menu-toggle{ display:flex; }
  .menu-overlay{
    display:block;
    position:fixed;
    inset:0;
    z-index:690;
    background:rgba(19,12,8,.43);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease, visibility .22s ease;
  }
  body.menu-open .menu-overlay{ opacity:1; visibility:visible; pointer-events:auto; }
  .main-navigation{
    position:fixed;
    inset:0 0 0 auto;
    z-index:710;
    right:0;
    left:auto;
    width:min(360px,100vw);
    max-width:100vw;
    height:100dvh;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    contain:layout paint;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:26px;
    padding:108px 28px 30px;
    background:#080808;
    color:var(--rb-header-text);
    border-left:1px solid rgba(239,196,111,.18);
    box-shadow:-14px 0 38px rgba(0,0,0,.28);
    transform:none;
    clip-path:inset(0 0 0 100%);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:clip-path .24s ease, opacity .2s ease, visibility 0s linear .24s;
    will-change:clip-path, opacity;
  }
  .main-navigation.is-open{
    transform:none;
    clip-path:inset(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:clip-path .24s ease, opacity .2s ease, visibility 0s;
  }
  .main-navigation ul,
  .main-navigation .primary-menu{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
  }
  .main-navigation li{ width:100%; }
  .main-navigation a{
    display:block;
    width:100%;
    padding:12px 2px;
    border-bottom:1px solid rgba(239,196,111,.14);
    color:var(--rb-header-text);
    font-size:1.05rem;
  }
  .main-navigation .sub-menu{
    position:static;
    min-width:0;
    padding:0 0 0 16px !important;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
  }
  .main-navigation .sub-menu a{
    padding:10px 2px;
    border-radius:0;
    font-size:.96rem;
  }
  .main-navigation .sub-menu a:hover{ background:transparent; }
  .main-navigation .primary-menu > li > a::after{ display:none; }
  .header-actions{ margin:0; }
  .header-cart{ width:100%; justify-content:center; padding:13px 16px; }
  .header-cart .label{ display:inline; }
  .rb-hero{ padding:28px 0 32px; }
  .rb-section{ padding:54px 0; }
  .rb-section--page{ padding-top:0; }
  .rb-page-hero{ padding-top:42px; }
  .woocommerce ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px !important; }
  .woocommerce ul.products li.product a img{ height:240px !important; }
  .woocommerce div.product{ padding:20px; }
  .woocommerce div.product form.cart{ align-items:stretch; }
  .woocommerce div.product form.cart .button{ flex:1 1 190px; }
  .woocommerce-cart table.cart .product-thumbnail{ display:none; }
  .footer-grid{ grid-template-columns:1fr; text-align:center; }
  .footer-brand{ grid-column:auto; }
  .rb-brand-logo--footer{ margin-left:auto; margin-right:auto; }
}

@media (max-width:520px){
  body{ font-size:16px; }
  .container{ padding-inline:18px; }
  .rb-brand-logo--header{ width:108px; max-height:108px; max-width:108px; }
  .rb-hero{ padding:18px 0 28px; }
  .rb-hero .container{ width:100%; padding-inline:0; }
  .rb-hero-grid{ grid-template-columns:1fr; gap:16px; }
  .rb-hero-visual{ border-radius:0; box-shadow:none; }
  .rb-hero-visual img{ aspect-ratio:2.4/1; object-fit:cover; }
  .rb-hero-actions{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-inline:18px; }
  .rb-card, .rb-content-surface{ border-radius:var(--rb-radius); padding:22px; }
  .woocommerce ul.products{ grid-template-columns:1fr !important; gap:18px !important; }
  .woocommerce ul.products li.product{ padding:15px 15px 19px; }
  .woocommerce ul.products li.product a img{ height:300px !important; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ min-height:0; font-size:1.2rem !important; }
  .woocommerce ul.products li.product .button{ min-height:47px; font-size:.95rem; }
  .woocommerce-cart .coupon{ flex-direction:column; }
  .woocommerce-cart .coupon .input-text,
  .woocommerce-cart .coupon .button{ width:100% !important; }
  .wc-block-components-sidebar-layout{ display:block !important; }
}

@media (max-width:400px){
  .site-header-inner{ gap:12px; }
  .rb-brand-logo--header{ width:102px; max-height:102px; max-width:102px; }
  .main-navigation{ width:min(360px,100vw); max-width:100vw; padding-left:22px; padding-right:22px; }
  .rb-hero-actions{ grid-template-columns:1fr; }
  .rb-hero-actions .btn{ width:100%; }
  .woocommerce ul.products li.product a img{ height:265px !important; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
  }
}

/* ==========================================================================
   12. ROTBIER BEERS + SHIPPING/PICKUP
   ========================================================================== */
.rb-section--beers{
  padding-top:78px;
  padding-bottom:88px;
  background:var(--rb-white);
  border-top:1px solid rgba(43,26,18,.05);
}
.rb-beer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(22px,4vw,42px);
  max-width:980px;
  margin:0 auto;
}
.rb-beer-card{
  min-width:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(43,26,18,.09);
  border-radius:var(--rb-radius-lg);
  background:var(--rb-cream-soft);
  box-shadow:var(--rb-shadow-sm);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.rb-beer-card:hover{
  transform:translateY(-4px);
  border-color:rgba(169,83,27,.22);
  box-shadow:var(--rb-shadow);
}
.rb-beer-media{
  position:relative;
  min-height:440px;
  overflow:hidden;
  background:#fffaf3;
}
.rb-beer-media img{
  width:100%;
  height:100%;
  min-height:440px;
  aspect-ratio:4/5;
  object-fit:contain;
  object-position:center;
}

.rb-beer-copy{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:24px clamp(22px,3vw,32px) 28px;
}
.rb-beer-type{
  margin-bottom:6px;
  color:var(--rb-copper-dark);
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.rb-beer-copy h3{ margin-bottom:20px; font-size:clamp(1.55rem,2.5vw,2rem); }
.rb-beer-copy .btn{ margin-top:auto; }

.woocommerce ul#shipping_method,
.woocommerce ul.woocommerce-shipping-methods{
  margin-left:0;
  padding-left:0;
  list-style:none;
}
.woocommerce ul#shipping_method li,
.woocommerce ul.woocommerce-shipping-methods li{
  margin:0;
  padding:.65rem 0;
}
.woocommerce ul#shipping_method label,
.woocommerce ul.woocommerce-shipping-methods label{
  font-weight:700;
  cursor:pointer;
}
.woocommerce ul#shipping_method input[type="radio"],
.woocommerce ul.woocommerce-shipping-methods input[type="radio"]{
  margin-right:.5rem;
  accent-color:var(--rb-copper);
}
.rb-pickup-note{
  margin-top:.75rem;
  padding:.9rem 1rem;
  border:1px solid rgba(169,83,27,.28);
  border-left:4px solid var(--rb-gold);
  border-radius:var(--rb-radius-sm);
  background:rgba(211,154,60,.10);
  color:var(--rb-brown-900);
  font-size:.94rem;
  line-height:1.5;
}
.rb-pickup-note[hidden]{ display:none !important; }
.rb-pickup-note strong{
  display:block;
  margin-bottom:.2rem;
  color:var(--rb-copper-dark);
}
.rb-pickup-note p{ margin:0; }
.wc-block-components-radio-control__option .rb-pickup-note,
.wc-block-components-radio-control-accordion-option .rb-pickup-note{
  margin-left:0;
  margin-right:0;
}

@media (max-width:780px){
  .rb-beer-grid{ grid-template-columns:1fr; max-width:620px; }
  .rb-beer-media,
  .rb-beer-media img{ min-height:390px; }
  .rb-beer-media img{ aspect-ratio:16/12; }
}

@media (max-width:520px){
  .rb-section--beers{ padding-top:54px; padding-bottom:60px; }
  .rb-beer-media,
  .rb-beer-media img{ min-height:330px; }
  .rb-beer-copy{ padding:20px 20px 24px; }
  .rb-beer-copy .btn{ width:100%; }
  .rb-pickup-note{ padding:.8rem .85rem; font-size:.9rem; }
}

@media (prefers-reduced-motion:reduce){
  .rb-beer-card{ transition-duration:.001ms !important; }
}
