
/* === SupHerb Farms brand block (Custom/brand.css, after theme-default 2.7.0) ===
 * Palette and type from supherbfarms.com (notes/customer-brief.md section 7): brand green #038C53,
 * deep green ink #1B2F1C, mint #F0F7F3, cream #F7F5EF; EB Garamond headings, Montserrat body.
 * Tokens only where theme-default reads them; no layout surgery. */
[data-td-block="supherb"] { --sh-marker: 1; }
:root {
  --td-ink:          #1B2F1C;
  --td-ink-soft:     #2B4A2D;
  --td-slate:        #3D5A40;
  --td-slate-mid:    #5E6E60;
  --td-slate-light:  #C9D9CC;
  --td-grey-light:   #F0F7F3;
  --td-hairline:     #DDE8DF;
  --td-accent:       #038C53;
  --td-accent-soft:  rgba(3, 140, 83, .08);
  --td-radius:       6px;
  --td-radius-sm:    4px;
  --sh-green:        #038C53;
  --sh-green-dark:   #0E7C3F;
  --sh-ink:          #1B2F1C;
  --sh-mint:         #F0F7F3;
  --sh-cream:        #F7F5EF;
}
/* Headings in the brand serif carry a touch more weight at display sizes. */
h1, .dw-h1, h2, .dw-h2 { letter-spacing: -0.005em; }
/* Links and small interaction accents in brand green. */
main a:not([data-dw-button]):not(.btn):not(.nav-link) { color: var(--sh-green-dark); }
main a:not([data-dw-button]):not(.btn):not(.nav-link):hover { color: var(--sh-ink); }
/* Header: white bar, green hairline under it like the public site. */
header.page-header, [data-swift-page-header] { border-bottom: 3px solid var(--sh-green); }
/* The poster eyebrow in brand green caps. */
.dw-eyebrow, [data-dw-itemtype="swift-v2_poster"] .dw-paragraph:first-child { letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
/* Specification table: pack sizes and menu applications are multi-line values. */
[data-dw-itemtype="swift-v2_productfielddisplaygroups"] td, [data-dw-itemtype="swift-v2_productfielddisplaygroups"] dd { white-space: pre-line; }

/* Header search: the eight category links leave the search pill too narrow for its placeholder. */
[data-dw-itemtype="swift-v2_searchfield"] { min-width: 11.5rem; }


/* Mobile header: keep account labels accessible without wrapping the avatar onto a second row. */
@media (max-width: 575.98px) {
  [data-swift-page-header] [data-dw-itemtype="swift-v2_myaccount"] .text-nowrap {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
}


/* Boundary motif: SupHerb hillside (layers/supherb-brand/files/Images/SupHerb/brand/edge-supherb.svg) replaces
 * theme-default's placeholder bevel on the footer crest and the home-page band boundaries. One rising curve that
 * echoes the logo flag's slanted cut; no repeat, so it does not read as a wave. Height and clearance rules are
 * theme-default's and need no re-tuning for a different silhouette. */
:root { --td-edge-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2075'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2C70%20C420%2C68%20980%2C52%201440%2C12%20L1440%2C75%20L0%2C75%20Z'/%3E%3C/svg%3E"); }
/* The two home-page band edges sit between light, inset rows, where any fill floats as a stray wedge (deep green
 * below the hero, white on white further down). The hillside belongs on the footer crest only: collapse the band
 * edges through theme-default's own height token, which also releases their clearance padding. */
main .td-edge-bottom { --td-edge-h: 0px; }


/* ---------------------------------------------------------------------------------------------------------
 * PLP line view (owner review 2026-09-21: too much white space, misaligned row content, rows hard to tell apart,
 * text too small). Swift renders each row as a flex line of flex-fill cells, so every column takes its width
 * from its own content and drifts row to row. From 992 px the cells sit on one fixed column grid instead;
 * rows lose the 24 px grid gap and 2 x 20 px inner padding, gain a hairline, a mint zebra and a hover tint.
 * Scoped to .product-list so the PDP and sliders are untouched.
 * --------------------------------------------------------------------------------------------------------- */
[data-td-block="supherb-plp"] { --sh-marker: 2; }
.product-list > .grid { gap: 0 !important; border-top: 1px solid var(--td-hairline); }
.product-list .js-product[data-product-id] { border-bottom: 1px solid var(--td-hairline); transition: background-color .15s ease; }
.product-list .js-product[data-product-id]:nth-of-type(even) { background-color: var(--sh-mint); }
.product-list .js-product[data-product-id]:hover { background-color: #E3F1E7; }
.product-list .js-product [data-swift-gridrow] { padding-block: 0 !important; --dw-row-space-top: 0; --dw-row-space-bottom: 0; }
.product-list .js-product [data-swift-gridrow] > .d-flex { padding-block: 12px !important; }
/* Row type: one size up across the line */
.product-list .js-product .item_swift-v2_productnumber { font-size: .95rem !important; opacity: .8; letter-spacing: .01em; }
.product-list .js-product .item_swift-v2_productheader { font-size: 1.2rem !important; line-height: 1.25; }
.product-list .js-product .item_swift-v2_productshortdescription { font-size: 1rem; line-height: 1.5; }
.product-list .js-product [data-dw-itemtype="swift-v2_productprice"] { font-size: 1.1rem; font-weight: 600; }
@media (min-width: 992px) {
  .product-list .js-product [data-swift-gridrow] > .d-flex {
    display: grid !important;
    grid-template-columns: 96px 140px minmax(170px, 1fr) minmax(260px, 2fr) 90px minmax(220px, auto) auto;
    column-gap: 20px; align-items: center; padding-inline: 12px;
  }
  .product-list .js-product [data-swift-gridrow] > .d-flex > div { min-width: 0; width: auto !important; max-width: none !important; }
  .product-list .js-product [data-swift-gridrow] > .d-flex > div[style*="none"], .product-list .js-product [data-swift-gridrow] > .d-flex > div:empty { display: none; }
  .product-list .js-product [data-swift-gridrow] > .d-flex > [data-dw-itemtype] { align-items: center; height: auto !important; }
  .product-list .js-product [data-dw-itemtype="swift-v2_productdefaultimage"] figure { width: 96px; height: 96px; margin: 0; }
  .product-list .js-product [data-dw-itemtype="swift-v2_productdefaultimage"] img { border-radius: var(--td-radius-sm); object-fit: cover !important; }
  .product-list .js-product [data-dw-itemtype="swift-v2_productprice"] { justify-content: flex-end; }
  .product-list .js-product [data-dw-itemtype="swift-v2_productaddtocart"] { justify-content: flex-end; }
}
@media (min-width: 992px) {
  .product-list .js-product [data-dw-itemtype="swift-v2_productnumber"], .product-list .js-product [data-dw-itemtype="swift-v2_productheader"], .product-list .js-product [data-dw-itemtype="swift-v2_productshortdescription"] { justify-content: flex-start !important; text-align: left; }
  .product-list .js-product .item_swift-v2_productnumber, .product-list .js-product .item_swift-v2_productheader { text-align: left !important; }
}

@media (min-width: 992px) {
  .product-list .js-product .item_swift-v2_productheader, .product-list .js-product .item_swift-v2_productnumber { width: 100%; margin-inline: 0 !important; }
  /* quantity and add-to-cart side by side: the stock form wraps them onto two lines, which doubled the signed-in row height */
  .product-list .js-product .item_swift-v2_productaddtocart form > .d-flex.flex-wrap { flex-wrap: nowrap !important; align-items: center; }
  .product-list .js-product .item_swift-v2_productaddtocart .btn { white-space: nowrap; }
}

@media (min-width: 992px) {
  .product-list .js-product .item_swift-v2_productshortdescription, .product-list .js-product .item_swift-v2_productshortdescription * { text-align: left !important; }
  .product-list .js-product [data-dw-itemtype="swift-v2_productshortdescription"] > * { width: 100%; }
}


/* Products without an orderable pack (no F&O pack, list price 0): the brief says "Contact your SupHerb Farms
 * Sales Manager" and no add-to-cart. Recognised with :has() on the add-to-cart form's own ProductPrice input,
 * so no template or script changes. PLP rows: price and cart cells give way to the message. PDP (a page with
 * no .product-list): the price and the cart form hide and the cart paragraph carries the message. */
.product-list .js-product:has(input[name="ProductPrice"][value="0.00"]) [data-dw-itemtype="swift-v2_productprice"] > *,
.product-list .js-product:has(input[name="ProductPrice"][value="0.00"]) [data-dw-itemtype="swift-v2_productaddtocart"] > * { display: none !important; }
.product-list .js-product:has(input[name="ProductPrice"][value="0.00"]) [data-dw-itemtype="swift-v2_productaddtocart"]::before {
  content: "Contact your SupHerb Farms Sales Manager"; font-size: .95rem; font-weight: 600; color: var(--sh-green-dark); white-space: nowrap;
}
main:not(:has(.product-list)):has(input[name="ProductPrice"][value="0.00"]) [data-dw-itemtype="swift-v2_productprice"] { display: none !important; }
main:not(:has(.product-list)) [data-dw-itemtype="swift-v2_productaddtocart"]:has(input[name="ProductPrice"][value="0.00"]) > * { display: none !important; }
main:not(:has(.product-list)) [data-dw-itemtype="swift-v2_productaddtocart"]:has(input[name="ProductPrice"][value="0.00"])::before {
  content: "Custom pack sizes on request: contact your SupHerb Farms Sales Manager. Lead times and minimum order quantities may apply.";
  display: block; padding: .9rem 1rem; border-left: 3px solid var(--sh-green); background: var(--sh-mint); font-weight: 500;
}
@media (min-width: 992px) {
  .product-list .js-product [data-swift-gridrow] > .d-flex { grid-template-columns: 88px 128px minmax(150px, 1fr) minmax(200px, 1.6fr) 80px minmax(150px, auto) minmax(0, auto); column-gap: 16px; }
  .product-list .js-product [data-dw-itemtype="swift-v2_productdefaultimage"] figure { width: 88px; height: 88px; }
  .product-list .js-product:has(input[name="ProductPrice"][value="0.00"]) [data-dw-itemtype="swift-v2_productaddtocart"]::before { white-space: normal; max-width: 17rem; text-align: right; }
}


/* Header: eight category links + search do not fit one line below 1400 px (1200 px overflowed by 121 px).
 * Tighter link padding and type from 992 to 1399 px, and the link bar may wrap to a second line rather than
 * push the page sideways. */
@media (min-width: 992px) and (max-width: 1399.98px) {
  .megamenu-wrapper .nav-link { padding-inline: .45rem !important; font-size: .9rem; }
  .megamenu-wrapper > nav, .megamenu-wrapper nav > .d-flex, .megamenu-wrapper .nav { flex-wrap: wrap !important; row-gap: 0; }
  [data-dw-itemtype="swift-v2_searchfield"] { min-width: 9rem; }
}
/* Anonymous price lock: label and button wrap instead of widening the row on phones. */
.td-price-lock { flex-wrap: wrap; max-width: 100%; }
.td-price-lock__action { white-space: normal; }

/* Header menu (owner review: "less like a long string of text"). The seven categories now live under one
 * "Products" group (SHG-PRODUCTS, URLs unchanged via urlIgnoreForChildren), so the bar carries two entries plus
 * search. Entries read as short tracked labels; the dropdown is a roomy card with a green hover; the search
 * field keeps a sensible width at the right instead of filling the bar. */
.megamenu-wrapper .nav-link { font-size: .85rem !important; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding-inline: .9rem !important; }
.megamenu-wrapper .nav-link:hover, .megamenu-wrapper .nav-item.show > .nav-link, .megamenu-wrapper .nav-link[aria-expanded="true"] { color: var(--sh-green-dark) !important; background: transparent !important; text-decoration: none !important; box-shadow: inset 0 -2px 0 var(--sh-green); }
.megamenu-wrapper .dropdown-menu { padding: .6rem 0; min-width: 18rem; border: 1px solid var(--td-hairline); border-top: 3px solid var(--sh-green); border-radius: 0 0 var(--td-radius-sm) var(--td-radius-sm); box-shadow: var(--td-shadow-soft); }
.megamenu-wrapper .dropdown-menu .dropdown-item, .megamenu-wrapper .dropdown-menu a { font-size: 1rem; text-transform: none; letter-spacing: 0; font-weight: 500; padding: .55rem 1.25rem; }
.megamenu-wrapper .dropdown-menu a:hover { background: var(--sh-mint); color: var(--sh-green-dark); }
[data-dw-itemtype="swift-v2_searchfield"] { flex: 0 1 24rem !important; min-width: 12rem; margin-inline-start: auto; }
@media (min-width: 992px) and (max-width: 1399.98px) {
  .product-list .js-product .item_swift-v2_productaddtocart form > .d-flex.flex-wrap { flex-wrap: wrap !important; justify-content: flex-end; }
  .product-list .js-product [data-swift-gridrow] > .d-flex { grid-template-columns: 80px 112px minmax(130px, 1fr) minmax(160px, 1.4fr) 0 minmax(120px, auto) minmax(0, 190px); column-gap: 12px; }
}
@media (max-width: 991.98px) { .product-list .js-product [data-swift-gridrow] > .d-flex > [data-dw-itemtype] { max-width: 100%; min-width: 0; } .product-list .td-price-lock { width: 100%; box-sizing: border-box; } }

.product-list .js-product .item_swift-v2_productnumber { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1399.98px) { .product-list .js-product .item_swift-v2_productnumber { font-size: .85rem !important; } }


/* Herb flourish under the home hero (owner requests 2026-09-21): a long vine with subtle outline leaves running
 * the full width on every viewport, in the brand's outline icon style and icon ink (#3E4B40). One seamless 480 px
 * tile repeated on X (layers/supherb-brand/files/Images/SupHerb/brand/vine-divider.svg), so leaves never stretch.
 * Painted in the hero's own bottom-edge slot, so theme-default's clearance rule reserves the room. */
main .td-edge-bottom:not(.td-edge-alt) { --td-edge-h: 44px; }
main .td-edge-bottom:not(.td-edge-alt)::after {
  background-color: #3E4B40 !important;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20480%2056'%3E%3Cg%20fill='none'%20stroke='black'%20stroke-width='1.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M0,30%20C80,22%20160,22%20240,30%20C320,38%20400,38%20480,30'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(58,25.8)%20rotate(-42)%20scale(1.0)'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(150,24.2)%20rotate(28)%20scale(0.78)'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(292,34.6)%20rotate(40)%20scale(0.9)'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(404,35.6)%20rotate(-52)%20scale(0.72)'/%3E%3Cpath%20d='M214,27.6%20C217,24%20221,22.6%20225,22.4'/%3E%3Cpath%20d='M452,33.2%20C455,36.6%20459,38%20463,38'/%3E%3C/g%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20480%2056'%3E%3Cg%20fill='none'%20stroke='black'%20stroke-width='1.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M0,30%20C80,22%20160,22%20240,30%20C320,38%20400,38%20480,30'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(58,25.8)%20rotate(-42)%20scale(1.0)'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(150,24.2)%20rotate(28)%20scale(0.78)'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(292,34.6)%20rotate(40)%20scale(0.9)'/%3E%3Cpath%20d='M0,0%20C5,-6.5%2015,-7.5%2021,0%20C15,6%205,6.5%200,0%20Z%20M1.5,0%20L18,0'%20transform='translate(404,35.6)%20rotate(-52)%20scale(0.72)'/%3E%3Cpath%20d='M214,27.6%20C217,24%20221,22.6%20225,22.4'/%3E%3Cpath%20d='M452,33.2%20C455,36.6%20459,38%20463,38'/%3E%3C/g%3E%3C/svg%3E");
  -webkit-mask-size: 377px 100%; mask-size: 377px 100%;
  -webkit-mask-repeat: repeat-x; mask-repeat: repeat-x;
  -webkit-mask-position: left center; mask-position: left center;
}

/* ---------------------------------------------------------------------------------------------------------
 * PDP review (owner 2026-09-21): less white space, distinct tabs, lighter unselected pack buttons.
 * --------------------------------------------------------------------------------------------------------- */
[data-td-block="supherb-pdp"] { --sh-marker: 3; }
/* Pack buttons: unselected = light mint chip with a soft green edge; selected = solid brand green. */
.variant-option:not(.active):not(.in-active) { background-color: var(--sh-mint) !important; color: var(--sh-ink) !important; border: 1px solid #CFE3D6 !important; font-weight: 500; }
.variant-option:not(.active):not(.in-active):hover { background-color: #E0EFE5 !important; border-color: var(--sh-green) !important; }
.variant-option.active { background-color: var(--sh-green) !important; border-color: var(--sh-green) !important; color: #fff !important; font-weight: 600; }
.variant-option { border-radius: 4px !important; padding: .45rem .8rem !important; }
/* A cut, grade or pack that does not exist with the current selection: Swift paints a red bar through it at 20%
   opacity. Show it as a quiet dashed chip instead; it stays clickable (Swift then clears the other groups). */
.variant-option.in-active { opacity: 1 !important; background-color: transparent !important; color: #8A968D !important; border: 1px dashed #C9D5CC !important; font-weight: 500; }
.variant-option.in-active::after { content: none !important; }
.variant-option.in-active:hover { color: var(--sh-ink) !important; border-color: var(--sh-green) !important; }
/* Tabs: the anchor strip becomes a tab bar that stays in view while reading the sections. */
.td-anchornav { position: sticky; top: 0; z-index: 5; background: #fff; border-bottom: 2px solid var(--td-hairline); }
.td-anchornav__list { gap: 0 !important; }
.td-anchornav__link { display: block; padding: .9rem 1.25rem; font-size: .85rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sh-ink) !important; text-decoration: none !important; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.td-anchornav__link:hover, .td-anchornav__link:focus-visible { color: var(--sh-green) !important; border-bottom-color: var(--sh-green); background: var(--sh-mint); }
/* Buy panel spacing */
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productmedia"]) { padding-bottom: 32px !important; --dw-row-space-bottom: 32px; }
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productheader"]) { padding-top: 8px !important; }
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productvariantselector"]) { padding-block: 12px !important; }
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productmediatable"]) { padding-bottom: 16px !important; }
/* Rows with nothing to show on this catalogue: empty quantity-price table, stock state (never out of stock), and
 * the hidden Package contents / Related products / lower Documents sections (paragraphs 22407-22409, 22415-22417). */
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productpricetable"]):not(:has(table)),
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productstock"]):not(:has(.item_swift-v2_productstock *)),
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [id="22408"]), main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [id="22416"]),
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [id="22409"]), main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [id="22417"]),
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [id="22407"]), main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [id="22415"]) { display: none !important; }
.td-anchornav__item:has([data-td-anchor="documents"]), .td-anchornav__item:has([data-td-anchor="package-contents"]), .td-anchornav__item:has([data-td-anchor="related"]) { display: none; }
/* Section headings and bodies: tighter rhythm */
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype] h2[id]) { padding-top: 24px !important; }
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productlongdescription"]),
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_productfielddisplaygroups"]) { padding-bottom: 8px !important; }
/* Specification table: compact two-column sheet, multi-select values inline instead of one per line */
.item_swift-v2_productfielddisplaygroups .table { max-width: 980px; margin-bottom: 0; }
.item_swift-v2_productfielddisplaygroups .table td { padding: .6rem .75rem; vertical-align: top; border-color: var(--td-hairline); }
.item_swift-v2_productfielddisplaygroups .table tr:nth-child(odd) td { background: var(--sh-mint); }
.item_swift-v2_productfielddisplaygroups .table td:first-child { width: 28% !important; font-weight: 600; color: var(--sh-ink); }
.item_swift-v2_productfielddisplaygroups .table td.text-break span { display: inline; }
.item_swift-v2_productfielddisplaygroups .table td.text-break span + span::before { content: " \00B7  "; color: var(--sh-green); font-weight: 700; }
/* spec cells: line breaks BETWEEN value spans must not render; breaks INSIDE a value (pack sizes, menu applications) do */
.item_swift-v2_productfielddisplaygroups .table td { white-space: normal !important; }
.item_swift-v2_productfielddisplaygroups .table td span { white-space: pre-line; }
/* section heading rows: drop the container's 2 x 20 px padding */
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype] h2[id]) > [data-swift-container] { padding-block: 0 !important; }
main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype] h2[id]) h2 { margin-bottom: .5rem; }


/* Feature blocks (home 'Why brokers work from the portal', portal tiles): titles and body one step up (owner review). */
[data-dw-itemtype="swift-v2_feature"] h3, [data-dw-itemtype="swift-v2_feature"] .dw-h6 { font-size: 1.4rem !important; line-height: 1.2; margin-bottom: .4rem; }
[data-dw-itemtype="swift-v2_feature"] p, [data-dw-itemtype="swift-v2_feature"] .dw-paragraph { font-size: 1.1rem !important; line-height: 1.6; }
[data-dw-itemtype="swift-v2_feature"] img, [data-dw-itemtype="swift-v2_feature"] svg { width: 32px; height: 32px; }

@media (min-width: 992px) { main section[data-swift-gridrow]:not(.js-product section):has(> [data-swift-container] > [data-dw-itemtype="swift-v2_feature"]) > [data-swift-container] { max-width: 1240px !important; width: 100%; margin-inline: auto;  } }
main h2.dw-h4:has(+ *), main [data-dw-itemtype="swift-v2_text"] h2.dw-h4 { font-size: 2rem !important; }


/* Claim icons (owner decision 2026-09-22, card #59b92t): SupHerb's own outline claim icons from supherbfarms.com
   (Gluten Free drawn to match; their site has none) in front of each claim on the PDP specification sheet.
   Keyed on the data-field / data-option attributes the FieldValue.cshtml override adds; other rows keep the dot. */
.item_swift-v2_productfielddisplaygroups .table td.text-break:has(> span[data-field$="claims"]) { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.4rem; }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"] { display: inline-flex !important; align-items: center; gap: .5rem; font-weight: 500; color: var(--sh-ink); white-space: nowrap; }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"]::before { content: "" !important; flex: 0 0 34px; width: 34px; height: 34px; background: center / contain no-repeat; }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"][data-option="Kosher"]::before { background-image: url("/Files/Images/SupHerb/claims/kosher.png"); }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"][data-option="Natural"]::before { background-image: url("/Files/Images/SupHerb/claims/natural.png"); }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"][data-option="Non-GMO"]::before { background-image: url("/Files/Images/SupHerb/claims/non-gmo.png"); }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"][data-option="Locally Grown"]::before { background-image: url("/Files/Images/SupHerb/claims/locally-grown.png"); }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"][data-option="Organic"]::before { background-image: url("/Files/Images/SupHerb/claims/organic.png"); }
.item_swift-v2_productfielddisplaygroups .table td.text-break span[data-field$="claims"][data-option="Gluten Free"]::before { background-image: url("/Files/Images/SupHerb/claims/gluten-free.svg"); }

/* Hover contrast (measurement 20261025-192334, hover-contrast floor 4.5:1, card demo-supherb 2026-10-25).
 * theme-default fills a filled button with --td-ink-soft on hover and leaves its text colour alone; in the hero's dark
 * scheme the primary button rests with ink text, so hovering it painted ink on deep green (1.44:1). Outline, ghost, link
 * and icon controls take the accent (#038C53) on an 8 % accent tint on hover (3.53:1 on mint); the header entry hovered to
 * brand green on white (4.3:1), now --sh-green-dark above (5.3:1). Brand green stays on borders, underlines and fills;
 * it is only kept off hovered text. */
[data-td-block="supherb-hover"] { --sh-marker: 4; }
/* 2026-10-27: preserve the approved dark hover against theme 2.7's light scheme mix. */
[data-dw-button="primary"] {
  --td-btn-hover-bg: var(--td-ink-soft);
  --td-btn-hover-ink: #fff;
}
[data-dw-button="primary"]:hover { color: #fff !important; }
[data-dw-button="outline"]:hover, [data-dw-button="ghost"]:hover, [data-dw-button="link"]:hover,
[data-dw-button=""]:hover, [data-dw-button^="outline-"]:hover { color: var(--sh-ink) !important; }
