/* ==========================================================================
 * Better Flags — 2026 rebuild additions (designer's bf-2026.css, reconciled)
 * --------------------------------------------------------------------------
 * Source: betterflags-site-2026.zip, assets/bf-2026.css (2026-09-18). Ported
 * 2026-09-21. Everything visual still comes from the Webflow export; this file
 * only (1) turns the nav / FAQ states into classes, (2) gives every `.button`
 * the yellow clip-path wipe, (3) styles the three new 2026 blocks (photo hero,
 * CiCLO x Hemptex film slider, "As seen in" marquee) and (4) adds the Hemptex
 * green variants of existing components. See skills/site2026Redesign.md.
 *
 * LOAD ORDER — this file is NOT last, whatever the designer's header said.
 * RootDocument.tsx links it between better-flags.webflow.css and
 * bf-responsive.css. bf-responsive.css keeps its "KEEP IT LAST" contract (its
 * own header explains the horizontal-scrollbar reason). globals.css is
 * injected by Next BEFORE all of these, so at equal specificity this file wins
 * over globals.css and loses to bf-responsive.css. Consequences, per selector
 * both files touch (checked 2026-09-21 with a selector diff):
 *
 *  - `.bf-cart-fab` (designer §17: hover scale) — DROPPED from this file.
 *    bf-responsive.css §9 owns the floating cart button; on phones it moves it
 *    to the bottom corner with `transform: none`, and the designer's
 *    `:hover { transform: translateY(-50%) scale(1.06) }` out-specifies that
 *    and would jump the button up by half its height on every tap.
 *  - `.nav_link` — no property overlap. bf-responsive.css §4 sets the 44px
 *    touch target via `.nav_menus .nav_link` (higher specificity, wins on
 *    `display`); this file only animates opacity/transform. Both apply.
 *  - `.vs_tab-link` — disjoint properties (cursor/position here, letter-spacing
 *    there). Both apply.
 *  - `.scroll_more` — bf-responsive.css §7 parks the badge bottom-LEFT under
 *    992px so it never stacks on the cart button. The designer's
 *    `.section_hero.is-2026 .scroll_more { bottom: 40px }` is therefore
 *    desktop-only here (wrapped in `min-width: 992px`); under 768px the
 *    designer hides the badge entirely, which bf-responsive.css is fine with.
 *  - `.w-checkbox-input` — bf-responsive.css §7d enlarges it to 20px on touch
 *    screens (`hover: none`). The designer's 18px in `.section_contact` would
 *    beat that by specificity, so the size here is gated to `hover: hover`.
 *  - `.button` / `.btn_overlay` / `.faq_*` / `.stock_thumbnail.is-*` /
 *    `.more_details-container` / `.solution_card` also exist in globals.css.
 *    This file loads later and deliberately supersedes those rules (same
 *    intent, designer's values). The JS button hover that used to set an
 *    inline `transform` on `.btn_overlay` was removed from WebflowInit.tsx at
 *    the same time — an inline transform would have beaten the clip-path wipe.
 *
 * State classes this file expects React to toggle (no bf.js is shipped):
 *   body.nav-open            Navigation.tsx
 *   .faq--open / .w--open    WebflowInit.tsx (delegated click)
 *   .bf-reveal / .is-visible ScrollReveal.tsx (the wrapper class scopes §9's
 *                            hidden state so un-migrated pages stay visible)
 *   .cobrand_stage.is-*      FilmSlider.tsx
 *   .vs_tab-link.w--current  src/app/(en)/sustainability/VsTabs.tsx
 * ========================================================================== */

:root {
  --bf-indigo: #444dd0;
  --bf-red: #e44833;
  --bf-orange: #ff993e;
  --bf-yellow: #ffc831;
  --bf-ink: #1a1a1a;
  --bf-gray: #f1f1f1;
  --bf-mark: #adc3f9;
  --bf-hemp: #2f7d4f;
  --bf-hemp-deep: #1f412a;
  --bf-hemp-olive: #6b7a3a;
}

/* --- 1. Navigation states (were inline styles set by React) ---------------- */
.navigation { background-color: #1a1a1a; transition: background-color .3s ease; }
.navigation_container { min-height: 88px; align-items: center; }
.brand_link { z-index: 5; }
.brand_link img { height: 48px; width: auto; display: block; }
.nav_overlay { opacity: 0; pointer-events: none; transition: opacity .4s ease; }
.nav_menus { display: flex; transform: translateY(-100%); transition: transform .45s cubic-bezier(.22, 1, .36, 1); pointer-events: none; }
.nav_links { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.nav_link { display: block; line-height: 1.1; transform-origin: left center; opacity: 0; transform: translateX(-18px); transition: opacity .4s ease, transform .4s cubic-bezier(.22, 1, .36, 1), color .3s; }
.nav_link:nth-child(2) { transition-delay: .05s; }
.nav_link:nth-child(3) { transition-delay: .1s; }
.nav_link:nth-child(4) { transition-delay: .15s; }
.nav_link:nth-child(5) { transition-delay: .2s; }
.nav_link:nth-child(6) { transition-delay: .25s; }
.nav_link.w--current { color: var(--bf-yellow); }
.burger { display: flex; cursor: pointer; align-self: stretch; }
.burger_icon { opacity: 1; transition: opacity .3s; }
.burger_close { opacity: 0; transition: opacity .3s; }
.nav_socials-container { opacity: 0; transition: opacity .5s ease .25s; }
body.nav-open { overflow: hidden; }
body.nav-open .nav_overlay { opacity: 1; pointer-events: auto; }
body.nav-open .nav_menus { transform: translateY(0); pointer-events: auto; background-color: rgba(26, 26, 26, .55); }
body.nav-open .nav_link { opacity: 1; transform: none; }
body.nav-open .nav_socials-container { opacity: 1; }
body.nav-open .burger_icon { opacity: 0; }
body.nav-open .burger_close { opacity: 1; }
/* `align-self: stretch` + z-index are the repo's (Navigation.tsx used to set
   them inline): the container centres its items, and without the stretch the
   burger's left border stops short of the bar's full height. */
.nav_right { display: flex; align-items: stretch; align-self: stretch; z-index: 5; }
.nav_right .lang-switch { align-self: center; margin-right: 24px; }
@media screen and (max-width: 767px) { .nav_right .lang-switch { margin-right: 12px; } }

/* --- 2. Buttons: the yellow wipe on every square button -------------------
 * The Webflow export draws a 100px yellow circle under the button
 * (.btn_overlay, inset: auto auto -100px 0) and the Next chunk slides it with
 * translateY — on the live site that circle never becomes visible, so red and
 * black buttons have no hover. The white CTA button does get the yellow
 * clip-path wipe (.section_cta …). That wipe is now the house hover for all.
 */
.button { transition: color .35s; }
.button .btn_overlay,
.section_cta .button.is-secondary.is-white .btn_overlay,
.button.is-secondary.is-quote .btn_overlay {
  z-index: 0; inset: 0; width: auto; height: auto; border-radius: 0; transform: none;
  background-color: var(--bf-yellow);
  clip-path: circle(0% at 0 100%);
  transition: clip-path .5s;
}
.button:hover .btn_overlay,
.section_cta .button.is-secondary.is-white:hover .btn_overlay,
.button.is-secondary.is-quote:hover .btn_overlay { clip-path: circle(141.5% at 0 100%); transform: none; }
.button:hover { color: #0b0b0b; }
.button.is-line:hover { color: var(--bf-red); }
.button.is-line .btn_overlay { display: none; }
.btn_text, .button .embed_icon { z-index: 1; position: relative; }
.button .embed_icon svg { transition: transform .35s; }
.button:hover .embed_icon svg { transform: translateX(4px); }
.button.is-white-line { color: #fff; background-color: transparent; border: 1px solid #ffffff8c; }
.button.is-white-line:hover { color: #0b0b0b; border-color: var(--bf-yellow); }
.arrow_button { text-decoration: none; transition: color .3s; gap: 12px; }
.arrow_button:hover { color: #0b0b0b; }
.arrow_button .embed_icon svg { transition: transform .35s; }
.arrow_button:hover .embed_icon svg { transform: translateX(4px); }

/* --- 3. Hand-drawn marks (the identity's expressive marks) ----------------- */
.hero_w-line:before { z-index: -1; }
.mark { pointer-events: none; position: absolute; }
.mark img { display: block; width: 100%; height: auto; }

/* --- 4. Hero (2026): photo, headline with mark, two square buttons, partners */
.section_hero.is-2026 .hero_container { flex-direction: column; justify-content: center; }
.section_hero.is-2026 .hero_contant-wrapper { gap: 1.75rem; max-width: 1040px; }
.section_hero.is-2026 .hero_bg-image { object-position: center 30%; }
.hero_scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,26,26,.35) 0%, rgba(26,26,26,.45) 55%, rgba(26,26,26,.8) 100%); }
.hero_partners { position: absolute; left: 0; right: 0; bottom: 48px; z-index: 3; display: flex; justify-content: center; align-items: center; gap: 30px; flex-wrap: wrap; padding: 0 2.5rem; }
.hero_partners .overline { font-size: .875rem; letter-spacing: 3px; opacity: .85; }
.hero_partners img { display: block; height: 44px; width: auto; filter: brightness(0) invert(1); }
.hero_partners img.is-hemptex { height: 40px; }
.hero_partners .partner_divider { width: 1px; height: 40px; background: #ffffff66; }
/* Desktop only: under 992px bf-responsive.css owns the badge position. */
@media screen and (min-width: 992px) { .section_hero.is-2026 .scroll_more { bottom: 40px; } }
@media screen and (max-width: 991px) {
  .hero_partners { bottom: 28px; gap: 18px; padding-right: 120px; justify-content: flex-start; }
  .hero_partners img { height: 32px; }
  .hero_partners img.is-hemptex { height: 30px; }
}
@media screen and (max-width: 767px) {
  .section_hero.is-2026 .hero_container { padding-top: 9rem; padding-bottom: 12rem; }
  .section_hero.is-2026 .scroll_more { display: none; }
  .hero_partners { padding-right: 1.5rem; padding-left: 1.5rem; bottom: 28px; justify-content: center; }
  .hero_partners .overline { width: 100%; text-align: center; }
}

/* --- 5. CiCLO® × Hemptex® film slider -------------------------------------- */
.section_cobrand { z-index: 1; position: relative; background-color: #1a1a1a; overflow: hidden; }
.cobrand_stage { position: relative; height: clamp(520px, 78vh, 780px); overflow: hidden; background: #1a1a1a; }
.cobrand_track { position: absolute; top: 0; left: 0; height: 100%; width: 200%; display: flex; transform: translateX(0); transition: transform .85s cubic-bezier(.22, .9, .24, 1); }
.cobrand_stage.is-hemptex .cobrand_track { transform: translateX(-50%); }
.cobrand_panel { position: relative; width: 50%; height: 100%; overflow: hidden; }
.cobrand_panel.is-ciclo { background: linear-gradient(180deg, #7b81e4 0%, #444dd0 48%, #262a63 100%); }
.cobrand_panel.is-hemptex { background: #10190f; }
.cobrand_texture { position: absolute; left: -25%; top: -25%; width: 150%; max-width: none; height: 150%; object-fit: cover; object-position: center 75%; mix-blend-mode: soft-light; opacity: .85; filter: grayscale(1) contrast(1.25) brightness(1.05); animation: bfZoom 18s ease-in-out infinite alternate; }
.cobrand_photo { position: absolute; left: -7%; top: -7%; width: 114%; max-width: none; height: 114%; object-fit: cover; object-position: 42% center; filter: brightness(1.22) saturate(1.05); animation: bfZoom 19s ease-in-out infinite alternate-reverse; }
.cobrand_scrim { position: absolute; inset: 0; }
.cobrand_panel.is-ciclo .cobrand_scrim { background: linear-gradient(180deg, rgba(68,77,208,0) 40%, rgba(26,26,26,.45) 100%); }
.cobrand_panel.is-hemptex .cobrand_scrim { background: linear-gradient(180deg, rgba(31,65,42,.18) 0%, rgba(16,29,20,.3) 55%, rgba(8,15,10,.62) 100%); }
.cobrand_sheen { position: absolute; top: -20%; bottom: -20%; left: 0; width: 34%; background: linear-gradient(105deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.16) 50%, rgba(255,255,255,0) 100%); transform: translateX(-190%) skewX(-14deg); animation: bfSheen 9s ease-in-out .6s infinite; }
.cobrand_panel.is-hemptex .cobrand_sheen { animation-delay: 1s; background: linear-gradient(105deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.26) 50%, rgba(255,255,255,0) 100%); }
.cobrand_lockup { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px; animation: bfFloat 6.5s ease-in-out infinite alternate; pointer-events: none; }
.cobrand_lockup .is-bf { height: clamp(88px, 11vw, 140px); max-height: 18vh; width: auto; display: block; }
.cobrand_lockup .is-x { font-family: var(--primary-font); font-weight: 500; font-size: 34px; color: #fff; line-height: 1; }
.cobrand_lockup .is-ciclo-logo { width: clamp(280px, 30vw, 480px); max-width: 60vw; height: auto; display: block; filter: brightness(0) invert(1); }
.cobrand_lockup .is-hemptex-logo { width: clamp(300px, 34vw, 540px); max-width: 70vw; height: auto; display: block; filter: brightness(0) invert(1); }
.cobrand_stage.is-playing .cobrand_lockup { opacity: 0; }
/* play button = the export's own .play_video (yellow ring, fills yellow on hover) */
.cobrand_play { z-index: 4; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: transparent; border: 0; padding: 0; cursor: pointer; }
.cobrand_play .play_video { position: relative; background: rgba(26,26,26,.25); backdrop-filter: blur(2px); transition: color .35s; }
.cobrand_play .play_overlay { transform: scale(0); transition: transform .45s cubic-bezier(.22, 1, .36, 1); }
.cobrand_play:hover .play_overlay { transform: scale(1); }
.cobrand_play:hover .play_video { color: #0b0b0b; }
.cobrand_play .play_video-text { font-size: 13px; letter-spacing: 1px; line-height: 1.3; text-align: center; }
.cobrand_stage.is-playing .cobrand_play { display: none; }
.cobrand_video { position: absolute; inset: 0; z-index: 5; background: #000; display: none; }
.cobrand_stage.is-playing .cobrand_video { display: block; }
.cobrand_video iframe { width: 100%; height: 100%; border: 0; display: block; }
.cobrand_close { position: absolute; top: 20px; right: 20px; z-index: 6; }
.cobrand_stage:not(.is-playing) .cobrand_close { display: none; }
.cobrand_bar { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 28px 2.5rem; background: linear-gradient(180deg, rgba(26,26,26,0) 0%, rgba(26,26,26,.7) 100%); pointer-events: none; }
.cobrand_stage.is-playing .cobrand_bar { display: none; }
.cobrand_caption { display: flex; flex-direction: column; gap: 4px; }
.cobrand_caption .overline { font-size: 1rem; }
.cobrand_caption p { font-family: var(--primary-font); color: #ffffffc7; font-size: 1rem; margin: 0; }
.cobrand_toggles { display: flex; gap: 8px; pointer-events: auto; }
.cobrand_toggle { font-family: var(--primary-font); font-weight: 700; font-size: .8125rem; letter-spacing: 1px; text-transform: uppercase; color: #fff; background: rgba(26,26,26,.45); border: 1px solid #ffffff8c; padding: 12px 18px; cursor: pointer; transition: all .25s; }
.cobrand_toggle:hover { border-color: var(--bf-yellow); }
.cobrand_toggle.is-active { background: var(--bf-yellow); border-color: var(--bf-yellow); color: #0b0b0b; }
.cobrand_progress { position: absolute; left: 0; bottom: 0; height: 4px; width: 0; background: var(--bf-yellow); z-index: 6; }
.cobrand_stage.is-running .cobrand_progress { animation: bfProgress 6s linear infinite; }
.cobrand_stage.is-playing .cobrand_progress, .cobrand_stage.is-paused .cobrand_progress { display: none; }
@keyframes bfZoom { from { transform: scale(1.03) translate(0, 0); } to { transform: scale(1.15) translate(-1.5%, 1.3%); } }
@keyframes bfSheen { 0% { transform: translateX(-190%) skewX(-14deg); } 46% { transform: translateX(330%) skewX(-14deg); } 100% { transform: translateX(330%) skewX(-14deg); } }
@keyframes bfFloat { from { transform: translateY(3px); } to { transform: translateY(-5px); } }
@keyframes bfProgress { from { width: 0; } to { width: 100%; } }
@media screen and (max-width: 767px) {
  .cobrand_stage { height: 70vh; min-height: 480px; }
  .cobrand_bar { padding: 20px 1.25rem; }
  .cobrand_lockup { gap: 18px; }
  .cobrand_lockup .is-x { font-size: 24px; }
  .play_video.is-cobrand { width: 100px; height: 100px; }
}

/* --- 6. "As seen in" press marquee ---------------------------------------- */
.section_press { z-index: 1; position: relative; background-color: #fff; padding-top: 4rem; padding-bottom: 4rem; overflow: hidden; border-bottom: 1px solid #e6e6e6; }
.press_header { text-align: center; margin-bottom: 2.5rem; }
.press_header .overline { letter-spacing: 4px; font-size: 1rem; }
.section_press .marquee { gap: 0; }
.section_press .marquee_mover { gap: 0; animation-duration: 42s; }
.section_press .marquee:hover .marquee_mover { animation-play-state: paused; }
.press_item { flex: none; display: flex; align-items: center; justify-content: center; min-width: 190px; height: 76px; padding: 0 28px; text-decoration: none; color: #6b6c7e; }
.press_item img { display: block; height: 36px; width: auto; max-width: 200px; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .25s, opacity .25s; }
.press_item img.is-tall { height: 46px; }
.press_item img.is-short { height: 28px; }
.press_item:hover img { filter: none; opacity: 1; }
.press_wordmark { font-family: var(--primary-font); font-weight: 800; font-size: 1.375rem; letter-spacing: -.5px; white-space: nowrap; color: #6b6c7e; transition: color .2s; }
.press_wordmark.is-serif { font-family: "Bodoni 72", "Didot", Georgia, serif; font-weight: 700; letter-spacing: 4px; font-size: 1.75rem; }
.press_item:hover .press_wordmark { color: var(--bf-indigo); }
.press_footer { display: flex; justify-content: center; margin-top: 2.5rem; }

/* --- 7. Custom flags hover (was an inline <style> on the live page) -------- */
.bf-flag-hover .custom_flag-card { opacity: .24; transition: opacity .3s ease; }
.bf-flag-hover .custom_flag-link:hover .custom_flag-card { opacity: 1; }
.bf-flag-hover .custom_flag-icon { transform: scale(0) rotate(25deg); transform-origin: center center; transition: transform .5s cubic-bezier(.34, 1.56, .64, 1); pointer-events: none; }
.bf-flag-hover .custom_flag-link:hover .custom_flag-icon { transform: scale(1) rotate(0deg); }
.custom_flag-ico { width: 140px; height: auto; display: block; }
.custom_flag-header p.text-size-regular { font-size: 1.125rem; }
.custom_flag-header .btn_wrapper { margin-top: 1rem; }

/* --- 8. Ready-to-buy cards: material line ---------------------------------- */
.stock_materials { display: flex; gap: 6px; flex-wrap: wrap; }
.stock_material { font-family: var(--primary-font); font-size: .75rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; padding: 5px 9px; border: 1px solid currentColor; }
.stock_material.is-ciclo { color: var(--bf-indigo); }
.stock_material.is-hemptex { color: var(--bf-hemp); }
.stock_details { gap: .875rem; }

/* --- 9. Story block, stat cards, reveals ---------------------------------- */
/* The hidden-until-revealed state is scoped to `.bf-reveal`, the wrapper that
   <ScrollReveal> renders around page content. The designer's unscoped rules
   would have blanked the SAME classes on the current home and sustainability
   pages, which have no reveal script yet. Pages that never mount ScrollReveal
   are therefore untouched. */
.bf-reveal .more_details-container { opacity: 0; transform: translateY(40px); transition: opacity .8s ease, transform .8s cubic-bezier(.22, 1, .36, 1); }
.bf-reveal .more_details-container.is-visible { opacity: 1; transform: none; }
.more_banner { display: block; object-fit: cover; max-height: 90vh; }
.bf-reveal .solution_card { opacity: 0; transform: translateY(30px); transition: opacity .6s ease, transform .6s cubic-bezier(.22, 1, .36, 1); }
.bf-reveal .solution_card.is-visible { opacity: 1; transform: none; }
.bf-reveal .solution_card.is-2 { transition-delay: .12s; }
.bf-reveal .solution_card.is-3 { transition-delay: .24s; }
.solution_banner { width: 100%; height: 233px; object-fit: cover; display: block; }
.solution_details.is-green { background-color: var(--bf-hemp); }
.solution_details.is-green-deep { background-color: var(--bf-hemp-deep); }
.solution_details.is-olive { background-color: var(--bf-hemp-olive); }
.section_solution.is-hemptex { background-color: var(--bf-gray); }
.section_solution.is-hemptex .stats_ele { display: none; }
.solution_lockup { display: flex; align-items: center; gap: 18px; }
.solution_lockup img { display: block; height: 56px; width: auto; }
.solution_lockup .is-x { font-family: var(--primary-font); font-weight: 500; font-size: 22px; color: #1a1a1a; }
.solution_lead { font-family: var(--primary-font); font-weight: 800; font-size: 1.375rem; color: var(--bf-hemp-deep); }
.solution_actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.film_link { font-family: var(--primary-font); font-weight: 800; font-size: .8125rem; letter-spacing: 2px; text-transform: uppercase; color: #1a1a1a; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 5px; display: inline-flex; align-items: center; gap: 8px; }
.film_link:hover { color: var(--bf-indigo); }
.section_solution.is-hemptex .film_link:hover { color: var(--bf-hemp); }
.solution_right-header .text-size-regular { font-size: 1.125rem; }
.solution_left-header .heading-style-h2 { font-size: 3.5rem; }
@media screen and (max-width: 767px) { .solution_left-header .heading-style-h2 { font-size: 2.75rem; } .solution_lockup img { height: 44px; } }

/* --- 10. Two materials block (about) --------------------------------------- */
.materials_2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 60px; }
.material_panel { padding: 60px 56px; color: #fff; display: flex; flex-direction: column; gap: 1.25rem; min-height: 100%; }
.material_panel.is-ciclo { background: var(--bf-indigo); }
.material_panel.is-hemptex { background: var(--bf-hemp-deep); }
.material_panel .overline { font-size: .9375rem; }
.material_panel h3 { font-family: var(--primary-font); font-size: 2.25rem; font-weight: 700; line-height: 1.15; letter-spacing: -1px; color: #fff; }
.material_panel p { font-family: var(--primary-font); font-size: 1.125rem; color: #ffffffd9; }
.material_panel img.material_logo { height: 42px; width: auto; align-self: flex-start; filter: brightness(0) invert(1); }
.material_list { list-style: none; margin: .5rem 0 0; padding: 0; display: flex; flex-direction: column; }
.material_list li { font-family: var(--primary-font); font-size: 1.0625rem; color: #fff; padding: 14px 0; border-top: 1px solid #ffffff3d; display: flex; gap: 12px; align-items: flex-start; }
.material_list li:before { content: ""; flex: none; width: 10px; height: 10px; margin-top: 8px; background: var(--bf-yellow); }
.material_panel .btn_wrapper { margin-top: auto; padding-top: 1rem; }
@media screen and (max-width: 991px) { .materials_2 { grid-template-columns: 1fr; } .material_panel { padding: 48px 32px; } }
@media screen and (max-width: 767px) { .material_panel { padding: 40px 1.5rem; } .material_panel h3 { font-size: 1.75rem; } }

/* --- 11. Supply chain: Hemptex card + colours ------------------------------ */
.chain_card.is-hemptex { background-color: #e9efe9; }
.chain_card .chain_tag { font-family: var(--primary-font); font-size: .8125rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #fff; background: var(--bf-indigo); padding: 6px 10px 4px; align-self: flex-start; }
.chain_card .chain_tag.is-hemptex { background: var(--bf-hemp); }
.chain_banner { width: 100%; }

/* --- 12. VS tabs: three columns -------------------------------------------- */
.vs_tabs-menu.is-3 { grid-template-columns: 1fr 1fr 1fr; }
.vs_tab-link { position: relative; cursor: pointer; text-decoration: none; }
.vs_tab-link.is-hemptex.w--current { background-color: var(--bf-hemp-deep); }
.vs_tab-pane.is-hemptex { background-color: var(--bf-hemp-deep); }
.vs_tab-pane.is-hemptex .vs_detail-item { border-top-color: #ffffff3d; }
.vs_tab-pane { display: none; }
.vs_tab-pane.w--tab-active { display: block; }
@media screen and (max-width: 767px) { .vs_tabs-menu.is-3 { grid-template-columns: 1fr; } .vs_icon { display: none; } }

/* --- 13. FAQ: class-driven open state (was JS inline height) --------------- */
.faq_contents, .faq_contents.w-dropdown-list { display: block; position: static; height: 0; transition: height .4s cubic-bezier(.22, 1, .36, 1); overflow: hidden; }
.faq_plus, .faq_minus { transition: opacity .3s; }
.faq_minus { opacity: 0; }
.faq--open .faq_plus { opacity: 0 !important; }
.faq--open .faq_minus { opacity: 1 !important; }
.faq_toggle { cursor: pointer; user-select: none; }
.faq_rt a { color: var(--bf-red); }

/* --- 14. Footer: shorter, "Made with" as its own row ----------------------- */
.foote_menu-container { padding-bottom: 150px; }
.footer_ele { max-height: 110px; object-fit: cover; object-position: center top; }
.footer_menus-wrapper { margin-top: .75rem; }
.footer_link { padding-top: 6px; padding-bottom: 6px; font-size: 1.125rem; }
.social_link { padding-top: 8px; padding-bottom: 8px; font-size: 1.125rem; }
.logo_1-wrapper { margin-top: 1.25rem; }
.footer_made-with { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-top: 40px; padding-top: 28px; border-top: 1px solid #e6e6e6; position: relative; z-index: 1; }
.footer_made-with .overline { color: #1a1a1a; opacity: .45; font-size: .75rem; font-weight: 800; letter-spacing: 2px; white-space: nowrap; }
.footer_made-logos { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.footer_made-with img { display: block; width: auto; }
.footer_made-with img.is-ciclo { height: 40px; }
.footer_made-with img.is-hemptex { height: 36px; }
@media screen and (max-width: 991px) { .foote_menu-container { padding-bottom: 130px; } }
@media screen and (max-width: 767px) { .foote_menu-container { padding-bottom: 100px; } .footer_made-with { gap: 20px; margin-top: 28px; } .footer_made-logos { gap: 24px; } .footer_made-with img.is-ciclo { height: 32px; } .footer_made-with img.is-hemptex { height: 30px; } }
.footer_form .button.is-submit { cursor: pointer; }
.footer_menus-wrapper a.footer_link.is-current { color: var(--bf-red); }

/* --- 15. Lists (pillars) ---------------------------------------------------- */
.list_card .body_text { font-size: 1.0625rem; }

/* --- 16. Resources / contact small fixes ----------------------------------- */
.resouce_card { transition: transform .3s; }
.resouce_card.is-featured .resource_banner { max-height: 520px; overflow: hidden; }
.resouce_card.is-featured .resource_img-thumbnail { height: 100%; min-height: 360px; }
.resouce_card.is-list:hover .heading-style-h3 { color: var(--bf-red); }
.resource_bottom-details .heading-style-h3 { transition: color .3s; }
.resource_category.is-hemptex { background-color: var(--bf-hemp); }
.section_contact .field { width: 100%; padding: 8px 16px; }
.section_contact .field.textarea { padding-top: 14px; }
.section_contact .cb { display: flex; align-items: center; gap: 10px; }
.section_contact .w-checkbox-input { margin: 0; }
/* Pointer devices only: on touch screens bf-responsive.css §7d sets 20px. */
@media (hover: hover) { .section_contact .w-checkbox-input { width: 18px; height: 18px; } }
.section_contact .button.is-submit-btn { cursor: pointer; border: 0; }

/* --- 17. Cart button ------------------------------------------------------- */
/* Intentionally empty: `.bf-cart-fab` is owned by bf-responsive.css §9 (see
   the header). The designer's hover scale was dropped. */

/* --- 18. Hemp-green stat list (sustainability) ----------------------------- */
.stats_list.is-hemptex .stats_count { color: var(--bf-hemp-deep); }

/* --- 19. Generic helpers ---------------------------------------------------- */
.text-color-hemp { color: var(--bf-hemp); }
.bg-hemp { background-color: var(--bf-hemp-deep); }
.overline.is-hemp { color: var(--bf-hemp); }
.overline.is-indigo { color: var(--bf-indigo); }
.mt-2 { margin-top: 2rem; }
.section_intro .intro_contents .btn_group { margin-top: .5rem; }

/* --- 20. Motion respect ----------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .cobrand_track, .more_details-container, .solution_card, .nav_menus, .nav_link { transition: none !important; }
  .cobrand_texture, .cobrand_photo, .cobrand_sheen, .cobrand_lockup, .cobrand_progress, .marquee_mover { animation: none !important; }
  .more_details-container, .solution_card { opacity: 1 !important; transform: none !important; }
}

/* --- 21. Film section header + YouTube fallback -------------------------- */
.cobrand_header { max-width: 760px; margin: 0 auto; text-align: center; padding: 5rem 2.5rem 2.5rem; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cobrand_header .overline { color: var(--bf-yellow); }
.cobrand_header .heading-style-h2 { color: #fff; }
.cobrand_header .text-size-regular { color: #ffffffc7; max-width: 640px; }
.cobrand_yt { font-family: var(--primary-font); font-size: .8125rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--bf-yellow); text-decoration: underline; text-underline-offset: 4px; pointer-events: auto; }
.cobrand_yt:hover { color: #fff; }
.cobrand_caption .cobrand_yt { margin-top: 6px; align-self: flex-start; }
.cobrand_playing-bar { position: absolute; top: 20px; right: 20px; z-index: 6; display: none; align-items: center; gap: 16px; }
.cobrand_stage.is-playing .cobrand_playing-bar { display: flex; }
.cobrand_close { position: static; }
@media screen and (max-width: 767px) { .cobrand_header { padding: 3.75rem 1.5rem 2rem; } .cobrand_header .heading-style-h2 { font-size: 2.5rem; } }

/* --- 22. Ready-to-buy slider (home) ---------------------------------------- */
.flags_slider-nav { display: flex; justify-content: flex-end; gap: 10px; margin-bottom: 1.25rem; }
.flags_slider-nav .button { padding: .875rem 1.125rem; }
.flags_slider-nav .button[disabled] { opacity: .35; cursor: default; }
.flags_slider-nav .button[disabled] .btn_overlay { display: none; }
.flags_slider-nav .embed_icon.is-flip svg { transform: scaleX(-1); }
.flags_slider-nav .button:hover .embed_icon.is-flip svg { transform: scaleX(-1) translateX(4px); }
.flags_slider { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 6px; outline: none; }
.flags_slider::-webkit-scrollbar { display: none; }
.flags_slider:focus-visible { outline: 2px solid var(--bf-yellow); outline-offset: 4px; }
.flags_slider .flags_item { flex: 0 0 calc((100% - 48px) / 4); scroll-snap-align: start; }
@media screen and (max-width: 991px) { .flags_slider .flags_item { flex-basis: calc((100% - 16px) / 2); } }
@media screen and (max-width: 767px) { .flags_slider .flags_item { flex-basis: 84%; } .flags_slider-nav { justify-content: center; } }
.stock_img-thumbnail { position: relative; background: #f1f1f1; }
.stock_thumbnail.is-base, .stock_thumbnail.is-hover { transition: opacity .45s; }
.stock_thumbnail.is-hover { opacity: 0; position: absolute; inset: 0; }
.flags_card:hover .stock_thumbnail.is-hover, .flags_card:focus-visible .stock_thumbnail.is-hover { opacity: 1; }
.flags_card:hover .stock_thumbnail.is-base, .flags_card:focus-visible .stock_thumbnail.is-base { opacity: 0; }
.stock_thumbnail[src$=".svg"] { object-fit: cover; }

/* --- 23. Shop pages ---------------------------------------------------------- */
.section_custom-flag .flags_collection-lists { grid-template-columns: 1fr 1fr 1fr 1fr; }
@media screen and (max-width: 991px) { .section_custom-flag .flags_collection-lists { grid-template-columns: 1fr 1fr; } }
@media screen and (max-width: 479px) { .section_custom-flag .flags_collection-lists { grid-template-columns: 1fr; } }
.custom_flag .custom_flag-ico { width: 120px; height: 120px; }
.custom_flag .stock_materials { margin-bottom: .5rem; }
.custom_flag-details .btn_wrapper.is-flag .button { width: 100%; }
