/* ==========================================================================
   AlphaBuds BC — Redesign 2026 : polish layer

   Loaded last. Two jobs:
     1. Correct things the older plugin CSS still reaches into.
     2. Style the category copy + internal-link blocks added by inc/seo.php.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Card buy area

   A legacy rule sets `margin:0 12px 12px` on WooCommerce's add-to-cart button.
   Inside .os-pc__buy the button is already width:100% within 13px of container
   padding, so that margin pushed it 12px right — flush against the card border
   on one side and 25px in on the other — and added dead space underneath.
   -------------------------------------------------------------------------- */
.os-pc__buy a.button,
.os-pc__buy button,
.os-pc__buy input[type="submit"],
.os-pc__buy .add_to_cart_button,
.os-pc__buy .qvp .qvp-btn,
.os-pc__buy .added_to_cart{
  margin:0 !important;
}

/* Woo drops a screen-reader span in after the button; it must not add a row. */
.os-pc__buy > .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

/* --------------------------------------------------------------------------
   Retire whatever the legacy archive layer still manages to print.
   inc/seo.php unhooks these server-side; this is the belt to that braces, and
   it also covers blocks injected by other mu-plugins we do not unhook.
   -------------------------------------------------------------------------- */
.alpha-related,
.alpha-cat-nav,
.alpha-filter-btn-wrap,
.alpha-sub-grid,
.os-cat-header,
.os-cat-inner,
.os-cat-desc-below{
  display:none !important;
}

/* --------------------------------------------------------------------------
   Category long-form copy
   -------------------------------------------------------------------------- */
.os-catcopy{
  border-top:1px solid var(--os-line);
  background:var(--os-surface-2);
  padding:46px 0 50px;
  margin-top:44px;
}
/* Share the page's outer grid so the copy block's left edge lines up with the
   product grid and "Keep exploring" above and below it. The reading measure is
   held by the paragraphs themselves, not by narrowing the container. */
.os-catcopy__in{max-width:var(--os-max);}
.os-catcopy__h{
  font-size:clamp(1.35rem,2.1vw,1.75rem);
  color:var(--os-ink);
  margin:0 0 16px;
}
.os-catcopy__lead p{
  margin:0 0 14px;
  font-size:1rem;
  line-height:1.72;
  color:var(--os-ink-2);
  max-width:74ch;
}
.os-catcopy__lead p:last-child{margin-bottom:0;}

.os-catcopy__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
  margin:28px 0 0;
}
.os-catcopy__card{
  background:var(--os-surface);
  border:1px solid var(--os-line);
  border-radius:var(--os-r-lg);
  padding:20px 20px 22px;
}
.os-catcopy__card h3{
  margin:0 0 8px;
  font-size:1rem;
  font-weight:740;
  letter-spacing:-.01em;
  color:var(--os-ink);
}
.os-catcopy__card p{
  margin:0;
  font-size:.925rem;
  line-height:1.65;
  color:var(--os-muted);
}

/* FAQ ---------------------------------------------------------------------- */
.os-catcopy__faq{margin-top:32px;}
.os-catcopy__faqh{
  margin:0 0 12px;
  font-size:1.05rem;
  font-weight:740;
  color:var(--os-ink);
}
.os-faq{
  background:var(--os-surface);
  border:1px solid var(--os-line);
  border-radius:var(--os-r);
  margin:0 0 9px;
  overflow:hidden;
}
.os-faq summary{
  cursor:pointer;
  list-style:none;
  padding:15px 46px 15px 18px;
  font-size:.95rem;
  font-weight:680;
  color:var(--os-ink);
  position:relative;
}
.os-faq summary::-webkit-details-marker{display:none;}
.os-faq summary::after{
  content:"";
  position:absolute;right:18px;top:50%;
  width:9px;height:9px;
  border-right:2.2px solid var(--os-muted);
  border-bottom:2.2px solid var(--os-muted);
  transform:translateY(-70%) rotate(45deg);
  transition:transform .2s ease;
}
.os-faq[open] summary::after{transform:translateY(-30%) rotate(225deg);}
.os-faq summary:hover{color:var(--os-green);}
.os-faq summary:focus-visible{outline:2px solid var(--os-green);outline-offset:-2px;}
.os-faq p{
  margin:0;
  padding:0 18px 17px;
  font-size:.925rem;
  line-height:1.68;
  color:var(--os-muted);
  max-width:74ch;
}

/* --------------------------------------------------------------------------
   "Keep exploring" — the styled replacement for the three unstyled link lists
   the mu-plugin layer used to print here.
   -------------------------------------------------------------------------- */
.os-explore{
  border-top:1px solid var(--os-line);
  padding:40px 0 46px;
}
.os-catcopy + .os-explore{border-top:0;}
.os-explore__head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-bottom:22px;
}
.os-explore__h{
  margin:0;
  font-size:clamp(1.2rem,1.8vw,1.5rem);
  color:var(--os-ink);
}
.os-explore__all{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.9rem;font-weight:700;
  color:var(--os-green);text-decoration:none;
}
.os-explore__all:hover{text-decoration:underline;}

/* auto-fill, not auto-fit: with only two groups auto-fit stretches each column
   to half the page and strands the count badge 400px from its label. */
.os-explore__cols{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:14px 28px;
}
.os-explore__col{max-width:340px;}
.os-explore__t{
  margin:0 0 10px;
  font-size:.7rem;font-weight:780;
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--os-muted);
}
.os-explore__list{list-style:none;margin:0;padding:0;}
.os-explore__list li{margin:0;}
.os-explore__list a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 12px;
  border-radius:var(--os-r-sm);
  font-size:.925rem;font-weight:620;
  color:var(--os-ink-2);text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
.os-explore__list a:hover{
  background:var(--os-green-050);
  color:var(--os-green-700);
}
.os-explore__n{
  flex:none;
  font-size:.72rem;font-weight:700;
  color:var(--os-muted);
  background:var(--os-surface-3);
  border-radius:var(--os-r-pill);
  padding:2px 8px;
}
.os-explore__list a:hover .os-explore__n{background:#fff;color:var(--os-green-700);}

@media (max-width:700px){
  .os-catcopy{padding:34px 0 38px;margin-top:32px;}
  .os-catcopy__grid{gap:12px;margin-top:22px;}
  .os-catcopy__card{padding:16px 16px 18px;}
  .os-explore{padding:30px 0 36px;}
}

/* --------------------------------------------------------------------------
   Category tile legibility

   The tiles carry white text over whatever photo the category happens to use.
   The original veil only starts darkening at 34% and tops out at .82, which is
   fine over a dark bud shot and not fine over the white pedestal on the
   Concentrates tile or the pink Twisted Extracts bag on Edibles. Start the
   ramp earlier and finish darker: the label reads on every tile, and the top
   two-thirds of the photo is still untouched.
   -------------------------------------------------------------------------- */
.os-cat__veil{
  background:linear-gradient(180deg,
    rgba(8,20,11,0) 26%,
    rgba(8,20,11,.42) 58%,
    rgba(8,20,11,.88) 100%) !important;
}
.os-cat__t{text-shadow:0 1px 10px rgba(0,0,0,.6),0 1px 2px rgba(0,0,0,.5);}
.os-cat__n{text-shadow:0 1px 8px rgba(0,0,0,.55);}

/* ==========================================================================
   Footer

   Rebuilt. Previously: a 4-column grid whose content ran out two-thirds of the
   way across, and a brand block showing the logo file — which carries a solid
   white background and rendered as a white patch on the near-black footer.
   Now a 5-column grid with a delivery-areas column, and a typographic wordmark
   that belongs on a dark ground.
   ========================================================================== */
.os-footer__grid{
  grid-template-columns:1.7fr 1fr 1fr 1fr 1fr;
  gap:28px 32px;
}
@media (max-width:1100px){ .os-footer__grid{grid-template-columns:1.6fr 1fr 1fr;} }
@media (max-width:820px){  .os-footer__grid{grid-template-columns:1fr 1fr;gap:30px 24px;} }
@media (max-width:520px){  .os-footer__grid{grid-template-columns:1fr;gap:26px;} }

/* The raster logo never appears here now, but a stale cache could still serve
   the old markup for a few minutes — keep it from flashing a white box. */
.os-footer__brand img{display:none;}

.os-footer__word{
  display:inline-block;
  margin:0 0 14px;
  font-size:1.55rem;
  font-weight:800;
  letter-spacing:-.035em;
  line-height:1;
  color:#fff;
  text-decoration:none;
}
.os-footer__word span{color:var(--os-leaf);}
.os-footer__word:hover span{color:#5ec27d;}

.os-footer__blurb{
  margin:0 0 18px;
  font-size:.9rem;line-height:1.68;
  max-width:36ch;
  color:rgba(255,255,255,.62);
}

.os-footer__phone{
  display:inline-flex;align-items:center;gap:9px;
  font-size:1.08rem;font-weight:750;letter-spacing:-.01em;
  color:#fff;text-decoration:none;
  margin-bottom:20px;
}
.os-footer__phone svg{color:var(--os-leaf);}
.os-footer__phone:hover{color:var(--os-leaf);}

/* Reassurance marks: quiet, single-column, no boxes — the footer is not the
   place to repeat the trust strip's visual weight. */
.os-footer__marks{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.os-footer__marks li{
  display:flex;align-items:center;gap:9px;
  font-size:.82rem;line-height:1.4;
  color:rgba(255,255,255,.55);
}
.os-footer__marks svg{color:var(--os-leaf);flex:none;opacity:.85;}

.os-footer__ct{
  margin:0 0 14px;
  font-size:.72rem;font-weight:780;
  letter-spacing:.1em;text-transform:uppercase;
}
.os-footer__col li{margin-bottom:9px;}
.os-footer__col a{
  font-size:.895rem;
  color:rgba(255,255,255,.66);
  text-decoration:none;
  transition:color .15s ease;
}
.os-footer__col a:hover{color:#fff;}

/* Bottom bar */
.os-footer__barin{
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;flex-wrap:wrap;
}
.os-footer__copy{flex:none;}
.os-footer__legal{
  display:flex;align-items:center;gap:9px;
  max-width:72ch;
  text-align:right;
  margin-left:auto;
}
.os-footer__age{
  display:inline-flex;align-items:center;gap:4px;flex:none;
  padding:3px 9px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:var(--os-r-pill);
  font-size:.7rem;font-weight:750;letter-spacing:.04em;
  color:rgba(255,255,255,.72);
}
.os-footer__age svg{color:var(--os-leaf);}
@media (max-width:760px){
  .os-footer__legal{text-align:left;margin-left:0;}
}

/* ==========================================================================
   Strain-type labels (BeRocket product labels)

   The plugin paints these inline: Sativa #17e83d, Indica #a925b0, Hybrid
   #e6892c — neon green, hot magenta and orange, three saturated fills that
   fight the palette and each other on a page showing 24 of them at once.

   They still need to read apart at a glance, so the distinction is kept and
   re-cast in the theme's own language: tonal chips, sized like the eyebrow
   above them, mapped to the same day/night idea the "Not sure what to pick?"
   section already uses — gold for sativa, violet for indica, slate for hybrid.

   The plugin's colours live on four nested <i> elements per label, so those
   have to be neutralised before the chip can be restyled.
   ========================================================================== */
.os-pc__buy .br_alabel i,
.os-pc__buy .br_alabel .template-i,
.os-pc__buy .br_alabel .template-i-before,
.os-pc__buy .br_alabel .template-i-after,
.os-pc__buy .br_alabel .template-span-before{
  display:none !important;
}

.os-pc__buy .berocket_better_labels{margin:0 0 2px;}
.os-pc__buy .berocket_better_labels_position,
.os-pc__buy .berocket_better_labels_line,
.os-pc__buy .berocket_better_labels_inline{
  position:static !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}

.os-pc__buy .br_alabel{
  position:static !important;
  display:inline-block !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  box-shadow:none !important;
}
.os-pc__buy .br_alabel > span{
  display:inline-flex !important;
  align-items:center;
  padding:3px 10px !important;
  border-radius:var(--os-r-pill) !important;
  background:var(--os-surface-3) !important;
  border:1px solid transparent;
  color:var(--os-ink-2) !important;
  font-family:var(--os-font) !important;
  font-size:.66rem !important;
  font-weight:780 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  line-height:1.5 !important;
}
.os-pc__buy .br_alabel > span b{
  font-weight:inherit !important;
  color:inherit !important;
  font-size:inherit !important;
}

/* Sativa — daytime */
.os-pc__buy .berocket_alabel_id_807 > span{
  background:#fbf3e2 !important;border-color:#f0e1bf;color:#8a5f12 !important;
}
/* Indica — evening */
.os-pc__buy .berocket_alabel_id_806 > span{
  background:#f2ecfa !important;border-color:#e2d6f4;color:#59348c !important;
}
/* Hybrid — matches the leaf tile in the "Not sure what to pick?" section, the
   same way sativa matches its sun tile and indica its moon. One strain colour
   language across both components. */
.os-pc__buy .berocket_alabel_id_809 > span{
  background:#e6f1e9 !important;border-color:#d2e5d8;color:#1c5733 !important;
}

/* ==========================================================================
   Card primary action

   The tonal pale-green button was the weakest element on a card that also
   carries a white bordered <select> directly above it, so the dropdown out-
   ranked the thing meant to take the order. Add to cart is the money action on
   every one of these cards — it gets the solid fill, and the select stays
   quiet underneath it.
   ========================================================================== */
/* Two different buttons end up here depending on the template. The catalogue
   grid gets the quick-view plugin's <button class="qvp-btn">, which theme.css
   already paints pale with !important at (0,2,1); the homepage rails get
   WooCommerce's own <a class="button add_to_cart_button">. Both are listed, and
   the .qvp variants are written at (0,3,0) so they actually win. */
.os-pc__buy .qvp .qvp-btn,
.os-pc__buy .qvp button,
.os-pc__buy .qvp-add,
.os-pc__buy a.button,
.os-pc__buy button,
.os-pc__buy input[type="submit"],
.os-pc__buy .add_to_cart_button{
  background:var(--os-green) !important;
  background-image:none !important;
  color:#fff !important;
  border-color:var(--os-green) !important;
  box-shadow:0 1px 2px rgba(13,70,35,.18) !important;
}
.os-pc__buy .qvp .qvp-btn:hover,
.os-pc__buy .qvp button:hover,
.os-pc__buy a.button:hover,
.os-pc__buy button:hover,
.os-pc__buy .add_to_cart_button:hover{
  background:var(--os-green-600) !important;
  border-color:var(--os-green-600) !important;
  box-shadow:0 2px 8px rgba(13,70,35,.24) !important;
}
.os-pc__buy a.added{background:var(--os-green-700) !important;}

/* "View cart" confirmation link must not inherit the solid fill. */
.os-pc__buy .added_to_cart{
  background:none !important;
  color:var(--os-green) !important;
  box-shadow:none !important;
  border:0 !important;
}

/* ==========================================================================
   Secondary buttons in the strain-guide cards

   .os-btn--ghost draws a 1px #e3e9e3 border on white — about 1.2:1 against the
   card behind it, so "Shop sativa" read as disabled text rather than the only
   call to action in its card. Scoped rather than changing the ghost variant
   everywhere, because a near-invisible outline is the right answer in some of
   the places it is used.
   ========================================================================== */
.os-strain .os-btn--ghost{
  border-color:#bcd4c4;
  color:var(--os-green-700);
  font-weight:720;
}
.os-strain .os-btn--ghost:hover,
.os-strain .os-btn--ghost:focus-visible{
  background:var(--os-green);
  border-color:var(--os-green);
  color:#fff;
}

/* Casing: the catalogue's quick-view button and WooCommerce's loop button are
   two different elements, and legacy CSS uppercased one of them. Same control,
   same label treatment. */
.os-pc__buy a.button,
.os-pc__buy button,
.os-pc__buy .qvp .qvp-btn,
.os-pc__buy .add_to_cart_button{
  text-transform:none !important;
  letter-spacing:0 !important;
}
