/* Carolina Cure final storefront audit — interactive clarity, accessibility,
   responsive spacing, and consistent customer-facing hierarchy. */

:root {
  --cc-action: #173f25;
  --cc-action-hover: #245734;
  --cc-gold: #a89455;
  --cc-focus: #f3c94c;
}

html { scroll-padding-top: 92px; }
body { overflow-wrap: break-word; }
main { min-height: 38vh; }
main > section { scroll-margin-top: 92px; }

/* Only real controls receive button-like feedback. */
a[href], button, select, input[type="checkbox"], input[type="radio"] { cursor: pointer; }
button, .button, a.button {
  border-radius: 11px !important;
  transition: background-color 160ms ease, border-color 160ms ease,
    color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
button:not(:disabled):hover, .button:hover, a.button:hover { transform: translateY(-1px); }
button:disabled, [aria-disabled="true"] { cursor: not-allowed !important; opacity: .58; }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--cc-focus) !important;
  outline-offset: 3px !important;
}

/* Static descriptors are intentionally not pills. They read as information,
   while buttons and links retain the stronger filled/outlined treatment. */
.mini-badge,
.trust-pill,
.effect-label,
.preorder-type-pill,
.preorder-terp-list span,
.preorder-effect-list span,
.product-tags span,
.menu-terp-tags span,
.recommendation-effects span {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: default !important;
}

.product-tags,
.menu-terp-tags,
.preorder-terp-list,
.preorder-effect-list,
.recommendation-effects {
  column-gap: 0 !important;
  row-gap: 5px !important;
}
.product-tags span + span,
.menu-terp-tags span + span,
.preorder-terp-list span + span,
.preorder-effect-list span + span,
.recommendation-effects span + span {
  margin-left: 9px !important;
  padding-left: 9px !important;
  border-left: 1px solid rgba(47,81,48,.28) !important;
}

.strain-status,
.recommendation-status,
.cc-grow-promise-availability,
.cc-grow-promise-status > *,
.preorder-status-list > * {
  display: inline-block !important;
  width: auto !important;
  min-height: 0 !important;
  padding: 3px 0 3px 9px !important;
  border: 0 !important;
  border-left: 3px solid var(--cc-gold) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--green-dark, #173f25) !important;
  cursor: default !important;
  line-height: 1.25 !important;
}

/* Product information blocks should look like copy, not controls. */
body.page-product-menu .menu-strain-notes span {
  padding: 5px 0 5px 10px !important;
  border: 0 !important;
  border-left: 2px solid rgba(168,148,85,.55) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.page-product-menu .menu-strain-card {
  cursor: default !important;
  transform: none !important;
}
body.page-product-menu .menu-strain-card:hover {
  transform: none !important;
  border-color: rgba(47,81,48,.18) !important;
  box-shadow: 0 20px 44px rgba(31,48,29,.10) !important;
}
body.page-product-menu .menu-strain-card:focus-within {
  border-color: rgba(47,81,48,.34) !important;
  box-shadow: 0 22px 48px rgba(31,48,29,.13) !important;
}
.product-detail-link {
  display: inline-flex;
  width: fit-content;
  min-height: 42px;
  align-items: center;
  padding: 7px 0;
  color: var(--green-dark, #173f25);
  font-weight: 900;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/* Effect choices are controls, so make the selected state unmistakable. */
.effect-option { cursor: pointer !important; }
.effect-option input[type="checkbox"] {
  width: 21px !important;
  height: 21px !important;
  min-width: 21px !important;
  accent-color: #0d351c !important;
  filter: contrast(1.15);
}
.effect-option:has(input:checked) {
  border-color: #174d2b !important;
  background: #edf4e9 !important;
  box-shadow: inset 4px 0 0 #174d2b !important;
}

/* Keep navigation consistent. Current location is indicated by an underline,
   not another rounded bubble. */
.links a[aria-current="page"] {
  box-shadow: inset 0 -3px 0 var(--cc-action) !important;
}
@media (max-width: 760px) {
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important; }
  .mobile-bottom-nav {
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 2px !important;
    padding: 6px !important;
    border-radius: 14px !important;
  }
  .mobile-bottom-nav a,
  .mobile-bottom-nav a[href="cart.html"] {
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 7px 2px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: #173f25 !important;
    box-shadow: none !important;
    font-size: clamp(.62rem, 2.6vw, .74rem) !important;
  }
  .mobile-bottom-nav a[aria-current="page"] {
    background: #edf4e9 !important;
    box-shadow: inset 0 -3px 0 #173f25 !important;
  }
  .mobile-bottom-nav a[href="cart.html"] .mobile-cart-count {
    min-width: 22px !important;
    height: 22px !important;
    margin-left: 3px !important;
    padding: 0 5px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #173f25 !important;
    color: #fff !important;
    font-size: .68rem !important;
    line-height: 22px !important;
  }
  .mobile-bottom-nav a[href="cart.html"] .mobile-cart-count[hidden] { display: inline-flex !important; }
}

/* Forms and checkout: consistent, comfortable controls without oversized cards. */
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  border-radius: 10px !important;
}
.checkout-card, .cart-summary, .account-panel,
.cc-profile-panel, .cc-grow-promise-panel {
  border-radius: 18px !important;
}
.cc-grow-promise-status {
  display: grid !important;
  gap: 7px !important;
  justify-items: start !important;
}
.cc-grow-promise-copy { max-width: 76ch; }
.cc-grow-promise-copy p { margin-block: .65rem !important; }
.checkout-empty-guidance {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-left: 4px solid var(--cc-gold);
  background: rgba(255,250,241,.78);
  color: var(--muted, #625f57);
}
.checkout-empty-guidance a { color: var(--cc-action); font-weight: 900; }

/* The shipping page now acts as a useful policy page instead of a single note. */
.shipping-policy-shell {
  display: grid;
  gap: 18px;
  padding: clamp(22px, 4vw, 42px);
  border: 1px solid rgba(47,81,48,.14);
  border-radius: 22px;
  background: rgba(255,253,247,.92);
  box-shadow: 0 18px 46px rgba(31,48,29,.08);
}
.shipping-policy-shell > h1 { margin: 0; color: var(--green-dark, #173f25); font-size: clamp(2rem, 5vw, 4.2rem); line-height: .98; }
.shipping-policy-shell > p { max-width: 72ch; margin: 0; color: var(--muted, #625f57); }
.shipping-policy-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.shipping-policy-steps article {
  padding: 14px 0 0 14px;
  border: 0;
  border-left: 3px solid rgba(168,148,85,.7);
  background: transparent;
}
.shipping-policy-steps h3 { margin: 0 0 5px; font-size: 1.05rem; color: var(--green-dark, #173f25); }
.shipping-policy-steps p { margin: 0; color: var(--muted, #625f57); }

/* Footer links must remain readable in every visited/hover state. */
footer, footer p, footer small { color: rgba(255,255,255,.82) !important; }
footer strong { color: #fff !important; }
footer a, footer a:visited {
  color: #fff !important;
  text-decoration-color: rgba(255,255,255,.65) !important;
  text-underline-offset: 3px;
}
footer a:hover { color: #fff7d5 !important; }

/* Compact, dismissible availability notice. It is intentionally a slim bar,
   not a modal, so shopping and account work remain uninterrupted. */
.cc-preorder-notice {
  position: fixed;
  left: 50%;
  bottom: 18px;
  z-index: 850;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  width: min(920px, calc(100% - 32px));
  padding: 12px 14px 12px 18px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 16px;
  background: rgba(20,57,32,.97);
  box-shadow: 0 18px 46px rgba(10,30,17,.28);
  color: #fff;
  transform: translateX(-50%);
  backdrop-filter: blur(12px);
}
.cc-preorder-notice-copy { min-width: 0; }
.cc-preorder-notice-copy span {
  display: block;
  margin-bottom: 2px;
  color: #fff5bf;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.cc-preorder-notice-copy p { margin: 0; color: rgba(255,255,255,.9); font-size: .92rem; line-height: 1.35; }
.cc-preorder-notice > a,
.cc-preorder-notice > a:visited {
  color: #fff !important;
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  white-space: nowrap;
}
.cc-preorder-notice > button {
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 9px !important;
  background: transparent;
  color: #fff;
  font-size: 1.45rem;
  line-height: 1;
}

/* Account home: show a calm summary first; editing is an intentional action. */
body.page-account .cc-profile-panel { padding: clamp(18px, 3vw, 28px); }
.cc-profile-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}
.cc-profile-heading h3 { margin: 2px 0 0 !important; font-size: clamp(1.45rem, 3vw, 2rem); }
.cc-profile-kicker {
  margin: 0;
  color: #738074;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.cc-profile-edit-link {
  flex: 0 0 auto;
  color: #173f25 !important;
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.cc-profile-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 22px;
  margin: 0;
}
.cc-profile-summary > div { min-width: 0; padding-top: 10px; border-top: 1px solid rgba(35,69,42,.15); }
.cc-profile-summary .cc-profile-summary-wide { grid-column: 1 / -1; }
.cc-profile-summary dt {
  margin-bottom: 4px;
  color: #758078;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.cc-profile-summary dd { margin: 0; color: #203d24; font-weight: 780; line-height: 1.45; white-space: pre-line; }
#ccProfileForm { padding-top: 4px; }

@media (max-width: 760px) {
  .shipping-policy-steps { grid-template-columns: 1fr; }
  .shipping-policy-shell { padding: 20px 18px; }
  .cc-grow-promise-heading { gap: 14px !important; }
  .cc-grow-promise-copy { font-size: .96rem; line-height: 1.55; }
  .preorder-info-card { border-radius: 14px !important; }
  body.page-product-menu .menu-strain-notes { margin-block: 5px !important; }
  .cc-preorder-notice {
    bottom: calc(84px + env(safe-area-inset-bottom));
    grid-template-columns: minmax(0, 1fr) 36px;
    gap: 9px 12px;
    width: calc(100% - 20px);
    padding: 11px 10px 11px 14px;
    border-radius: 13px;
  }
  .cc-preorder-notice-copy span { font-size: .7rem; }
  .cc-preorder-notice-copy p { font-size: .82rem; line-height: 1.3; }
  .cc-preorder-notice > a { grid-column: 1; width: fit-content; font-size: .82rem; }
  .cc-preorder-notice > button { grid-column: 2; grid-row: 1 / span 2; width: 34px; height: 34px; }
  .cc-profile-heading { align-items: flex-start; margin-bottom: 14px; }
  .cc-profile-summary { grid-template-columns: 1fr 1fr; gap: 13px 16px; }
  .cc-profile-summary > div:nth-child(3),
  .cc-profile-summary .cc-profile-summary-wide { grid-column: 1 / -1; }
}

@media (max-width: 420px) {
  .cc-profile-summary { grid-template-columns: 1fr; }
  .cc-profile-summary > div,
  .cc-profile-summary > div:nth-child(3),
  .cc-profile-summary .cc-profile-summary-wide { grid-column: 1; }
}

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

.cc-compliance-link {
  display: block;
  width: fit-content;
  margin: .8rem auto 0;
  color: inherit;
  font-size: .76rem;
  font-weight: 700;
  opacity: .78;
  text-decoration: underline;
  text-underline-offset: .18em;
}
.cc-compliance-link:hover,
.cc-compliance-link:focus-visible { opacity: 1; }
#ccProfileForm[hidden],
#ccProfileSummary[hidden] {
  display: none !important;
}

/* R32: protect editorial product labels from single-letter wrapping. The
   previous 74px fact-label column was narrower than "Expected direction" at
   the displayed weight and tracking. Give the label a real word-sized track,
   then stack the fact row cleanly when the card itself is narrow. */
body.page-product-menu .menu-strain-notes span {
  grid-template-columns: minmax(8.75rem, auto) minmax(0, 1fr) !important;
  align-items: start !important;
}
body.page-product-menu .menu-strain-notes strong {
  min-width: 0;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  hyphens: none !important;
  line-height: 1.35 !important;
}

@media (max-width: 680px) {
  body.page-product-menu .menu-strain-notes span {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 3px !important;
  }
}
