/* FarrWest hero kit — shared styles for bespoke hero product pages (.fw-hero). Extracted from the ModRAE block 2026-10-15. */
.fw-hero {
  --fw-charcoal:#1A1A1A; --fw-green:#336633; --fw-red:#AF002B;
  --ink-900:#0B0D10; --ink-850:#101317; --ink-800:#15171B; --ink-700:#1F2228; --ink-600:#2A2F37;
  --paper:#FBFAF7; --paper-2:#F2EEE8; --ink:#1A1A1A; --mute:#4D545E; --line:rgba(0,0,0,.12);
  --hairline:rgba(255,255,255,0.10); --hairline-2:rgba(255,255,255,0.18);
  --fg-mute:rgba(255,255,255,0.72); --fg-mute-2:rgba(255,255,255,0.55);
  --font-display:'Bebas Neue','Impact','Helvetica Neue',sans-serif; --font-body:'Montserrat',Helvetica,Arial,sans-serif; --font-mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --accent:var(--fw-green); --accent-2:#4CAF50; --max:1480px; --gutter:32px; --pad-y:88px; --fh-top:0px;
  font-family:var(--font-body); color:var(--ink); background:var(--paper); line-height:1.55; -webkit-font-smoothing:antialiased;
}
.fw-hero *, .fw-hero *::before, .fw-hero *::after { box-sizing:border-box; }
.fw-hero h1, .fw-hero h2, .fw-hero h3, .fw-hero h4, .fw-hero p, .fw-hero ul, .fw-hero ol, .fw-hero dl, .fw-hero dd, .fw-hero figure { margin:0; padding:0; }
.fw-hero ul, .fw-hero ol { list-style:none; }
.fw-hero a { color:inherit; text-decoration:none; }
.fw-hero img { max-width:100%; height:auto; display:block; }
.fw-hero .fh-wrap { max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
@media (max-width:640px){ .fw-hero { --gutter:20px; --pad-y:64px; } }

/* type */
.fw-hero .fh-eyebrow { font-family:var(--font-mono); font-size:11px; letter-spacing:.22em; font-weight:700; text-transform:uppercase; color:var(--accent); display:inline-flex; align-items:center; gap:12px; }
.fw-hero .fh-eyebrow::before { content:""; width:28px; height:3px; background:var(--accent); display:inline-block; }
.fw-hero .dark .fh-eyebrow, .fw-hero .dark2 .fh-eyebrow { color:var(--accent-2); }
.fw-hero .dark .fh-eyebrow::before, .fw-hero .dark2 .fh-eyebrow::before { background:var(--accent-2); }
.fw-hero .fh-h2 { font-family:var(--font-display); font-size:clamp(38px,4.6vw,66px); line-height:.94; font-weight:400; letter-spacing:.005em; margin:14px 0 0; color:var(--ink) !important; }
.fw-hero .fh-h2 .accent { color:var(--accent) !important; }
.fw-hero .fh-h3 { font-family:var(--font-display); font-size:clamp(26px,2.4vw,34px); line-height:1; font-weight:400; letter-spacing:.01em; margin:10px 0 10px; color:var(--ink) !important; }
.fw-hero .dark .fh-h2, .fw-hero .dark .fh-h3, .fw-hero .dark2 .fh-h2, .fw-hero .dark2 .fh-h3 { color:#fff !important; }
.fw-hero .dark .fh-h2 .accent, .fw-hero .dark2 .fh-h2 .accent { color:var(--accent-2) !important; }
.fw-hero .fh-sec { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:32px 64px; align-items:end; margin-bottom:44px; }
.fw-hero .fh-sec .fh-intro { color:var(--mute); font-size:15.5px; line-height:1.65; max-width:56ch; }
.fw-hero .dark .fh-sec .fh-intro, .fw-hero .dark2 .fh-sec .fh-intro { color:var(--fg-mute); }
@media (max-width:900px){ .fw-hero .fh-sec { grid-template-columns:1fr; gap:16px; align-items:start; margin-bottom:32px; } }

/* buttons */
.fw-hero .fh-btn { display:inline-flex; align-items:center; gap:12px; font-family:var(--font-mono); font-size:11px; letter-spacing:.2em; font-weight:700; text-transform:uppercase; padding:16px 26px; border:1.5px solid transparent; cursor:pointer; transition:background 140ms, color 140ms, border-color 140ms; line-height:1; }
.fw-hero .fh-btn .arr::after { content:"\2192"; font-family:var(--font-body); font-size:15px; line-height:1; }
.fw-hero .fh-btn.primary { background:var(--accent); color:#fff !important; border-color:var(--accent); }
.fw-hero .fh-btn.primary:hover { background:#2a552a; border-color:#2a552a; color:#fff; }
.fw-hero .fh-btn.ghost { color:#fff !important; border-color:var(--hairline-2); }
.fw-hero .fh-btn.ghost:hover { border-color:#fff; }
.fw-hero .light .fh-btn.ghost, .fw-hero .light2 .fh-btn.ghost { color:var(--ink) !important; border-color:rgba(0,0,0,.28); }
.fw-hero .light .fh-btn.ghost:hover, .fw-hero .light2 .fh-btn.ghost:hover { border-color:var(--ink); }
.fw-hero .fh-btn.small { padding:11px 16px; font-size:10px; }

/* anchor bar */
.fw-hero .fh-nav { position:sticky; top:var(--fh-top); z-index:40; background:rgba(11,13,16,.96); backdrop-filter:blur(8px); border-bottom:1px solid var(--hairline); color:#fff; }
/* fallback when an ancestor's overflow defeats position:sticky (XStore/Elementor wrappers): JS pins it */
.fw-hero .fh-nav.is-fixed { position:fixed; left:0; right:0; top:var(--fh-top); }
.fw-hero .fh-nav-sentinel { height:0; }
.fw-hero .fh-nav .fh-wrap { display:flex; align-items:center; gap:24px; min-height:56px; }
.fw-hero .fh-nav .brand { font-family:var(--font-display); font-size:22px; letter-spacing:.04em; line-height:1; white-space:nowrap; padding-right:20px; border-right:1px solid var(--hairline-2); }
.fw-hero .fh-nav .brand span { color:var(--accent-2); }
.fw-hero .fh-nav ul { display:flex; gap:4px; flex:1; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.fw-hero .fh-nav ul::-webkit-scrollbar { display:none; }
.fw-hero .fh-nav ul a { display:block; padding:19px 12px; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg-mute); white-space:nowrap; border-bottom:2px solid transparent; transition:color 120ms, border-color 120ms; }
.fw-hero .fh-nav ul a:hover, .fw-hero .fh-nav ul a.is-active { color:#fff; border-bottom-color:var(--accent-2); }
.fw-hero .fh-nav .cta { margin-left:auto; }
@media (max-width:900px){ .fw-hero .fh-nav .brand { display:none; } .fw-hero .fh-nav .fh-wrap { gap:0; } .fw-hero .fh-nav ul { min-width:0; }
  .fw-hero .fh-nav .cta { flex:none; margin-left:8px; padding:9px 11px; font-size:9.5px; letter-spacing:.1em; white-space:nowrap; } }

/* bands */
.fw-hero .fh-band { padding:var(--pad-y) 0; }
.fw-hero .fh-band.light { background:var(--paper); color:var(--ink); }
.fw-hero .fh-band.light2 { background:var(--paper-2); color:var(--ink); }
.fw-hero .fh-band.dark { background:var(--ink-900); color:#fff; }
.fw-hero .fh-band.dark2 { background:var(--ink-850); color:#fff; }

/* split feature */
.fw-hero .fh-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px 80px; align-items:center; }
.fw-hero .fh-split.flip .media { order:2; }
.fw-hero .fh-split .media { position:relative; }
.fw-hero .fh-split .media .frame { background:var(--ink-800); padding:40px; border:1px solid var(--hairline); position:relative; overflow:hidden; }
.fw-hero .fh-split .media .frame::after { content:""; position:absolute; inset:0; background:radial-gradient(70% 70% at 50% 50%, rgba(51,102,51,.25), transparent 70%); pointer-events:none; }
.fw-hero .fh-split .media .frame img { position:relative; z-index:1; width:100%; }
.fw-hero .fh-split .media .cap { margin-top:12px; font-family:var(--font-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--mute); }
.fw-hero .dark .fh-split .media .cap, .fw-hero .dark2 .fh-split .media .cap { color:var(--fg-mute-2); }
.fw-hero .fh-feat { display:grid; grid-template-columns:1fr; }
.fw-hero .fh-feat li { display:grid; grid-template-columns:48px 1fr; gap:18px; padding:22px 0; border-top:1px solid var(--line); }
.fw-hero .dark .fh-feat li, .fw-hero .dark2 .fh-feat li { border-top-color:var(--hairline); }
.fw-hero .fh-feat li:last-child { border-bottom:1px solid var(--line); }
.fw-hero .dark .fh-feat li:last-child, .fw-hero .dark2 .fh-feat li:last-child { border-bottom-color:var(--hairline); }
.fw-hero .fh-feat .ix { font-family:var(--font-display); font-size:34px; line-height:.9; color:var(--accent); letter-spacing:.02em; }
.fw-hero .dark .fh-feat .ix, .fw-hero .dark2 .fh-feat .ix { color:var(--accent-2); }
.fw-hero .fh-feat h4 { font-family:var(--font-body); font-size:15.5px; font-weight:700; color:var(--ink) !important; margin-bottom:6px; }
.fw-hero .dark .fh-feat h4, .fw-hero .dark2 .fh-feat h4 { color:#fff !important; }
.fw-hero .fh-feat p { font-size:14px; line-height:1.65; color:var(--mute); }
.fw-hero .dark .fh-feat p, .fw-hero .dark2 .fh-feat p { color:var(--fg-mute); }
@media (max-width:900px){ .fw-hero .fh-split { grid-template-columns:1fr; } .fw-hero .fh-split.flip .media { order:0; } }

/* specs */
.fw-hero .fh-tabs { display:flex; gap:0; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none; }
.fw-hero .fh-tabs::-webkit-scrollbar { display:none; }
.fw-hero .fh-tabs button { appearance:none; background:none; border:0; border-bottom:3px solid transparent; margin-bottom:-1px; padding:14px 18px; font-family:var(--font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--mute); cursor:pointer; white-space:nowrap; font-weight:700; }
.fw-hero .fh-tabs button:hover { color:var(--ink); }
.fw-hero .fh-tabs button.is-active { color:var(--ink); border-bottom-color:var(--accent); }
.fw-hero .fh-panel { display:none; padding-top:8px; }
.fw-hero .fh-panel.is-active { display:block; }
.fw-hero .fh-tbl { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); font-size:13.5px; }
.fw-hero .fh-tbl th, .fw-hero .fh-tbl td { padding:13px 18px; border-bottom:1px solid var(--line); vertical-align:top; text-align:left; line-height:1.5; }
.fw-hero .fh-tbl th { width:28%; font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); font-weight:700; background:var(--paper-2); }
.fw-hero .fh-tbl td { color:var(--mute); }
.fw-hero .fh-tbl td strong { color:var(--ink); font-weight:600; }
.fw-hero .fh-tbl tr:last-child th, .fw-hero .fh-tbl tr:last-child td { border-bottom:0; }
.fw-hero .fh-tbl .grp th { background:var(--ink-900); color:#fff; letter-spacing:.2em; }
.fw-hero .fh-tbl td ul li { padding-left:14px; position:relative; }
.fw-hero .fh-tbl td ul li::before { content:""; position:absolute; left:0; top:9px; width:5px; height:5px; background:var(--accent); }
.fw-hero .fh-foot { margin-top:14px; font-size:12.5px; line-height:1.6; color:var(--mute); }

/* resources */
.fw-hero .fh-res { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.fw-hero .fh-res a, .fw-hero .fh-res .r { display:block; background:var(--ink-800); border:1px solid var(--hairline); padding:28px 28px 26px; color:#fff; position:relative; transition:border-color 140ms, transform 140ms; }
.fw-hero .fh-res a:hover { border-color:var(--accent-2); transform:translateY(-2px); }
.fw-hero .fh-res .k { font-family:var(--font-mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-2); font-weight:700; }
.fw-hero .fh-res h4 { font-family:var(--font-display); font-size:28px; line-height:1; letter-spacing:.01em; color:#fff !important; margin:12px 0 8px; font-weight:400; }
.fw-hero .fh-res p { font-size:13.5px; line-height:1.6; color:var(--fg-mute); }
.fw-hero .fh-res .meta { margin-top:18px; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#fff; display:flex; align-items:center; gap:10px; }
.fw-hero .fh-res .meta::after { content:"\2192"; font-family:var(--font-body); font-size:15px; }
.fw-hero .fh-res .links { display:flex; gap:24px; flex-wrap:wrap; }
.fw-hero .fh-res .links a.meta { display:inline-flex; background:none; border:0; padding:0; transform:none; color:#fff; }
.fw-hero .fh-res .links a.meta:hover { color:var(--accent-2); }
@media (max-width:900px){ .fw-hero .fh-res { grid-template-columns:1fr; } }

/* faq */
.fw-hero .fh-faq { border-top:1px solid var(--line); max-width:960px; }
.fw-hero .fh-faq details { border-bottom:1px solid var(--line); }
.fw-hero .fh-faq summary { list-style:none; cursor:pointer; padding:22px 48px 22px 0; font-size:16px; font-weight:700; color:var(--ink); position:relative; line-height:1.4; }
.fw-hero .fh-faq summary::-webkit-details-marker { display:none; }
.fw-hero .fh-faq summary::after { content:"+"; position:absolute; right:4px; top:18px; font-family:var(--font-display); font-size:30px; line-height:1; color:var(--accent); transition:transform 160ms; }
.fw-hero .fh-faq details[open] summary::after { transform:rotate(45deg); }
.fw-hero .fh-faq .a { padding:0 0 24px; font-size:14.5px; line-height:1.7; color:var(--mute); max-width:72ch; }
.fw-hero .fh-faq .a a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.fw-hero .fh-faq .a strong { color:var(--ink); }

/* closing band */
.fw-hero .fh-close { position:relative; background:var(--ink-900); color:#fff; padding:var(--pad-y) 0; text-align:center; border-top:1px solid var(--hairline); overflow:hidden; }
.fw-hero .fh-close::before { content:""; position:absolute; inset:0; background:radial-gradient(50% 70% at 50% 100%, rgba(51,102,51,.35), transparent 70%); pointer-events:none; }
.fw-hero .fh-close .fh-wrap { position:relative; z-index:2; }
.fw-hero .fh-close .fh-eyebrow { justify-content:center; }
.fw-hero .fh-close .fh-h2 { color:#fff !important; margin-top:14px; }
.fw-hero .fh-close .fh-h2 .accent { color:var(--accent-2) !important; }
.fw-hero .fh-close .lede { max-width:62ch; margin:18px auto 0; font-size:15.5px; line-height:1.65; color:var(--fg-mute); }
.fw-hero .fh-close .actions { display:flex; gap:14px; justify-content:center; margin-top:30px; flex-direction:column; align-items:center; }
.fw-hero .fh-close .fh-eyebrow { color:var(--accent-2); }
.fw-hero .fh-close .fh-eyebrow::before { background:var(--accent-2); }
.fw-hero .fh-close .meta { margin-top:34px; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--fg-mute-2); }
.fw-hero .fh-close .meta a { color:#fff; }

/* cta module — <div class="fh-cta" data-product="ID"> filled by kit.js (price + Add to cart, or Request a quote / Request information) */
.fw-hero .fh-cta { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.fw-hero .fh-close .fh-cta { align-items:center; }
.fw-hero .fh-price { font-family:var(--font-display); font-size:clamp(34px,3.2vw,46px); line-height:1; letter-spacing:.01em; color:inherit; }
.fw-hero .fh-price small { display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; opacity:.7; margin-bottom:6px; }
.fw-hero .fh-cta-actions { display:flex; gap:14px; flex-wrap:wrap; }
.fw-hero .fh-cta-msg { font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; min-height:1.4em; }
.fw-hero .fh-cta-msg a { text-decoration:underline; text-underline-offset:3px; }
.fw-hero button.fh-btn { appearance:none; -webkit-appearance:none; margin:0; border-radius:0; }
.fw-hero button.fh-btn.primary { background:var(--accent) !important; color:#fff !important; }
.fw-hero button.fh-btn.primary:hover { background:#2a552a !important; }
.fw-hero .fh-btn[disabled] { opacity:.6; cursor:progress; }
