/* ==========================================================================
   Homepage 2026 Chat (page-home-2026-chat.php)
   Everything is scoped under .bfh so nothing leaks into the theme, and the
   theme's global rules (section, h1-h3, p, ul) are reset inside .bfh only.
   ========================================================================== */

.bfh {
  --ink: #0E1218;
  --ink-2: #131A23;
  --orange: #E8842B;
  --orange-hover: #fa5519;
  --orange-deep: #B4570F;      /* orange that passes contrast on paper */
  --slate: #92A9C9;
  --paper: #F4F1EA;
  --paper-card: #FBFAF6;
  --cream: #F4F1EA;
  --mist: #D6DCE4;             /* light text on photos */
  --muted: #B9C3D0;            /* body text on ink */
  --muted-2: #A7B3C4;          /* captions on ink */
  --text-paper: #3B4450;       /* body text on paper */
  --line: rgba(146, 169, 201, 0.22);
  --f-display: 'Anton', 'Oswald', sans-serif;
  --f-cond: 'Oswald', sans-serif;
  --f-body: 'Barlow', sans-serif;
  --f-serif: 'Newsreader', Georgia, serif;
  --gutter: clamp(20px, 8.3vw, 120px);
  --section-y: clamp(72px, 8.3vw, 120px);

  display: block;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--f-body);
  -webkit-font-smoothing: antialiased;
}

/* ---- Local resets ----
   :where() keeps these at the lowest possible specificity, so every
   .bfh-* class below wins without. .bfh-s (one class) still
   beats a bare theme "section {}" rule. */
:where(.bfh) *, :where(.bfh) *::before, :where(.bfh) *::after { box-sizing: border-box; }
.bfh-s { width: auto; max-width: none; margin: 0; padding: 0; float: none; position: relative; overflow: hidden; }
:where(.bfh) :is(h1, h2, h3, p, figure, blockquote, ul) { margin: 0; padding: 0; }
:where(.bfh) ul { list-style: none; }
:where(.bfh) img { display: block; max-width: 100%; height: auto; }
:where(.bfh) a { text-decoration: none; }
:where(.bfh) cite { font-style: italic; }
/* Theme leaks (ui.css): blockquote gets a 5px gray left border, list items a 10px bottom margin */
.bfh blockquote { border: 0; padding: 0; margin: 0; background: none; }
.bfh li { margin: 0; }

.bfh-wrap { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: var(--gutter); }

/* ---- Type helpers ---- */
.bfh-eyebrow { font-family: var(--f-cond); font-weight: 500; font-size: clamp(13px, 1.05vw, 15px); line-height: 1.3; letter-spacing: 0.22em; text-transform: uppercase; color: var(--orange); }
.bfh-eyebrow--deep { color: var(--orange-deep); }
.bfh-display { font-family: var(--f-display); font-weight: 400; text-transform: uppercase; line-height: 0.96; letter-spacing: 0.005em; }
.bfh-serif { font-family: var(--f-serif); font-style: italic; font-weight: 400; }
.bfh-accent { color: var(--orange); }
.bfh-accent-deep { color: var(--orange-deep); }

/* ---- Buttons & links ---- */
.bfh-actions { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(14px, 1.6vw, 28px); }
.bfh-actions--center { justify-content: center; }
.bfh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 58px; padding: 0 30px; font-family: var(--f-cond); font-size: 16px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.bfh-btn--primary { background: var(--orange); color: var(--ink); }
.bfh-btn--primary:hover, .bfh-btn--primary:focus-visible { background: var(--orange-hover); color: var(--ink); }
.bfh-btn--ghost { border: 1.5px solid rgba(244, 241, 234, 0.55); color: var(--cream); font-weight: 500; }
.bfh-btn--ghost:hover, .bfh-btn--ghost:focus-visible { border-color: var(--cream); background: rgba(244, 241, 234, 0.08); color: var(--cream); }
.bfh-btn--glass { background: rgba(14, 18, 24, 0.35); }
.bfh-link { font-family: var(--f-cond); font-size: 15px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cream); border-bottom: 2px solid var(--orange); padding-bottom: 4px; transition: color .2s ease; }
.bfh-link:hover { color: var(--orange); }
.bfh-link--deep { align-self: flex-start; color: var(--orange-deep); border-color: var(--orange-deep); font-size: 16px; }
.bfh-link--deep:hover { color: var(--ink); }
.bfh a:focus-visible, .bfh button:focus-visible, .bfh input:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

/* Faint 64px grid, borrowed from the PowerPlays pages */
.bfh-hero::before, .bfh-work::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(146,169,201,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(146,169,201,0.05) 1px, transparent 1px); background-size: 64px 64px; z-index: 1; }

/* ==========================================================================
   01 HERO
   ========================================================================== */
.bfh-hero { background: var(--ink); min-height: clamp(640px, 60vw, 860px); display: flex; align-items: center; }
.bfh-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.6; }
.bfh-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,18,24,0.94) 0%, rgba(14,18,24,0.7) 50%, rgba(14,18,24,0.35) 100%); }
.bfh-hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 4.5vw, 64px); align-items: center; padding-block: clamp(130px, 11vw, 160px) clamp(64px, 7vw, 100px); }  /* top padding clears the site header, which sits on top of the hero */
.bfh-hero__copy { display: flex; flex-direction: column; gap: clamp(20px, 2.1vw, 30px); }
.bfh-hero__title { font-size: clamp(48px, 6vw, 86px); line-height: 0.98; color: var(--cream); }
.bfh-hero__sub { max-width: 580px; font-size: clamp(18px, 1.6vw, 23px); line-height: 1.45; color: var(--mist); }

.bfh-hero__art { position: relative; display: flex; align-items: center; justify-content: center; min-height: clamp(360px, 48vw, 700px); }
.bfh-ring { position: absolute; top: 50%; left: 50%; aspect-ratio: 1; border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none; }
/* Light behind the book: a warm core (brand orange) plus a cool slate haze, so the dark cover separates from the dark slate */
.bfh-ring--glow { width: clamp(380px, 52vw, 760px); background: radial-gradient(circle, rgba(232,132,43,0.5) 0%, rgba(232,132,43,0.34) 42%, rgba(232,132,43,0.14) 58%, rgba(146,169,201,0.06) 66%, rgba(146,169,201,0) 76%); }
.bfh-ring--1 { width: clamp(280px, 36vw, 520px); border: 1px solid rgba(146,169,201,0.16); }
.bfh-ring--2 { width: clamp(380px, 50vw, 720px); border: 1px solid rgba(146,169,201,0.11); }
.bfh-ring--3 { width: clamp(480px, 64vw, 920px); border: 1px solid rgba(146,169,201,0.07); }

.bfh-cover { position: relative; z-index: 1; }
/* First drop-shadow is a 1px light rim that traces the cover's edge; second is a warm halo; the last two keep the depth shadow */
.bfh-cover__img { width: auto; height: clamp(300px, 43vw, 620px); max-width: none; filter: drop-shadow(0 0 1px rgba(244,241,234,0.45)) drop-shadow(0 0 36px rgba(232,132,43,0.28)) drop-shadow(0 48px 60px rgba(0,0,0,0.6)) drop-shadow(0 10px 18px rgba(0,0,0,0.35)); }
/* Bestseller rankings are part of the page flow, so the book cover stays unobstructed. */
.bfh-accolades { background: var(--ink-2); border-block: 1px solid var(--line); }
.bfh-accolades__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 960px; padding-block: 22px; }
.bfh-accolades__item { min-width: 0; padding: 4px clamp(20px, 3vw, 48px); }
.bfh-accolades__item + .bfh-accolades__item { border-left: 1px solid var(--line); }
.bfh-accolades__source { font-family: var(--f-cond); font-size: 12px; font-weight: 600; letter-spacing: 0.16em; color: var(--muted); }
.bfh-accolades__rank { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; font-family: var(--f-cond); font-size: clamp(18px, 2vw, 22px); font-weight: 500; line-height: 1.25; color: var(--cream); }
.bfh-accolades__rank strong { font-family: var(--f-display); font-size: clamp(29px, 3.5vw, 38px); font-weight: 400; color: var(--orange); }

/* ==========================================================================
   02 MEET BILL
   ========================================================================== */
.bfh-bill { background: var(--paper); color: var(--ink); padding-bottom: var(--section-y); }
.bfh-bill__photo { position: relative; height: clamp(340px, 46vw, 660px); }
.bfh-bill__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 100%; }
.bfh-bill__photo::after { content: ""; position: absolute; inset: 0 0 -2px 0; background: linear-gradient(180deg, rgba(244,241,234,0) 0%, rgba(244,241,234,0) 58%, rgba(244,241,234,0.75) 82%, var(--paper) 100%); }
.bfh-topo { position: absolute; fill: none; stroke: rgba(14,18,24,0.09); stroke-width: 1.4; pointer-events: none; }
/* The contour art has two clusters: 11 large rings, then 5 small ones (paths 12-16). Hide the small set. */
.bfh-topo path:nth-child(n+12) { display: none; }
.bfh-topo--bill { right: -180px; bottom: -260px; width: clamp(520px, 62vw, 900px); height: auto; aspect-ratio: 1; }
.bfh-bill__inner { position: relative; z-index: 1; margin-top: -20px; display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 72px); align-items: start; }
.bfh-bill__head { display: flex; flex-direction: column; gap: 22px; }
.bfh-bill__title { font-size: clamp(40px, 4.45vw, 64px); line-height: 1; color: var(--ink); }
.bfh-bill__text { display: flex; flex-direction: column; gap: 24px; padding-top: 44px; }
.bfh-bill__body { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; color: var(--text-paper); }
.bfh-bill__quote { font-size: clamp(26px, 2.4vw, 34px); line-height: 1.25; color: var(--ink); }
.bfh-chips { display: flex; flex-wrap: wrap; gap: 12px; }
.bfh-chip { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border: 1px solid rgba(14,18,24,0.35); font-family: var(--f-cond); font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); }
.bfh-chip--dark { background: var(--ink); border-color: var(--ink); color: var(--cream); }

/* ==========================================================================
   03 WORK WITH BILL
   ========================================================================== */
.bfh-work { background: var(--ink); padding-block: var(--section-y); }
#work-with-bill { scroll-margin-top: 90px; }  /* "Work with Bill" jump lands below the fixed nav */
.bfh-work .bfh-wrap { position: relative; z-index: 2; }
.bfh-work__head { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(24px, 4.5vw, 64px); align-items: end; margin-bottom: clamp(36px, 3.9vw, 56px); }
.bfh-work__head .bfh-eyebrow { margin-bottom: 22px; }
.bfh-work__title { font-size: clamp(44px, 5.2vw, 74px); color: var(--cream); }
.bfh-work__lede { font-size: clamp(21px, 1.95vw, 28px); line-height: 1.4; color: var(--mist); margin-bottom: 8px; }
.bfh-work__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

.bfh-card { position: relative; overflow: hidden; min-height: clamp(480px, 39vw, 560px); display: flex; flex-direction: column; justify-content: space-between; padding: 32px 34px; color: var(--cream); isolation: isolate; }
.bfh-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; z-index: -2; transition: transform .6s ease; }
.bfh-card__img--coach { object-position: 60% 20%; }
.bfh-card__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14,18,24,0.55) 0%, rgba(14,18,24,0.1) 30%, rgba(14,18,24,0.55) 58%, rgba(14,18,24,0.96) 100%); }
.bfh-card:hover .bfh-card__img { transform: scale(1.04); }
.bfh-card__top { display: flex; justify-content: space-between; gap: 16px; font-family: var(--f-cond); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mist); }
.bfh-card__num { font-family: var(--f-cond); font-size: 13px; font-weight: 600; letter-spacing: 0.16em; color: var(--orange); }
.bfh-card__body { display: flex; flex-direction: column; gap: 14px; }
.bfh-card__title { font-family: var(--f-display); font-size: clamp(38px, 3.5vw, 50px); line-height: 1; text-transform: uppercase; }
.bfh-card__desc { font-size: 17px; line-height: 1.5; color: var(--mist); }
.bfh-card__cta { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid rgba(244,241,234,0.25); font-family: var(--f-cond); font-size: 14px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.bfh-card__arrow { font-size: 26px; line-height: 1; color: var(--orange); transition: transform .2s ease; }
.bfh-card:hover .bfh-card__arrow { transform: translateX(4px); }

.bfh-stack { display: flex; flex-direction: column; gap: 20px; }
.bfh-mini { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 22px 28px; background: rgba(146,169,201,0.06); border: 1px solid var(--line); color: var(--cream); transition: border-color .2s ease, background-color .2s ease; }
.bfh-mini:hover, .bfh-mini:focus-visible { border-color: var(--orange); background: rgba(146,169,201,0.1); color: var(--cream); }
.bfh-mini__head { display: flex; justify-content: space-between; align-items: center; }
.bfh-mini__arrow { font-size: 22px; line-height: 1; color: var(--orange); }
.bfh-mini__title { font-family: var(--f-display); font-size: clamp(26px, 2.2vw, 32px); line-height: 1.05; text-transform: uppercase; }
.bfh-mini__desc { font-size: 15px; line-height: 1.5; color: var(--muted); }

/* ==========================================================================
   04 LOGO STRIP
   ========================================================================== */
.bfh-logos { background: var(--paper); padding-block: clamp(52px, 5.5vw, 80px); }
.bfh-logos__label { font-family: var(--f-cond); font-weight: 400; font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase; color: #505A68; text-align: center; margin-bottom: clamp(28px, 2.5vw, 36px); }
.bfh-logos__row { display: flex; justify-content: space-between; align-items: center; gap: 24px; opacity: 0.78; }
/* --h (set per logo in the template, unitless) is the logo's height at a
   1440px-wide screen. It balances visual weight between wide wordmarks and
   square marks. 0.0694vw = 1px at 1440, so the whole row scales with the
   screen and never wraps; min() stops it growing past --h on huge monitors. */
.bfh-logos__row img { width: auto; max-width: none; height: min(calc(var(--h) * 1px), calc(var(--h) * 0.0694vw)); }

/* ==========================================================================
   05 THE BOOK
   ========================================================================== */
.bfh-book { display: grid; grid-template-columns: 1fr 1fr; background: var(--ink); }
.bfh-book__photo { position: relative; min-height: 100%; grid-column: 2; grid-row: 1; }
.bfh-book__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.bfh-book__photo::after { content: ""; position: absolute; z-index: 1; inset: 0 -2px 0 0; background: linear-gradient(0deg, rgba(14,18,24,0.94) 0%, rgba(14,18,24,0.58) 23%, rgba(14,18,24,0) 55%), linear-gradient(90deg, var(--ink) 0%, rgba(14,18,24,0.85) 8%, rgba(14,18,24,0) 45%); pointer-events: none; }
.bfh-book__content { display: flex; flex-direction: column; gap: 20px; grid-column: 1; grid-row: 1; padding: clamp(64px, 5.5vw, 80px) clamp(32px, 5vw, 72px) clamp(56px, 4.5vw, 68px) max(var(--gutter), calc((100vw - 1440px) / 2 + var(--gutter))); }  /* left edge lines up with other sections on wide screens */
.bfh-book__title { font-size: clamp(46px, 5.2vw, 76px); color: var(--cream); }
.bfh-book__body { font-size: clamp(17px, 1.3vw, 19px); line-height: 1.6; color: var(--muted); }
.bfh-book__tools { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.bfh-book__tools-title { font-size: clamp(26px, 2.3vw, 34px); line-height: 1.1; color: var(--cream); }
.bfh-book__tools p { font-size: clamp(17px, 1.3vw, 19px); line-height: 1.55; color: var(--muted); }
.bfh-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bfh-pair__item { display: flex; flex-direction: column; gap: 12px; padding: 28px 28px 28px 0; }
.bfh-pair__item + .bfh-pair__item { padding: 28px 0 28px 28px; border-left: 1px solid var(--line); }
.bfh-pair__label { display: flex; align-items: center; gap: 10px; font-family: var(--f-cond); font-size: 17px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; }
.bfh-pair__label--map { color: var(--slate); }
.bfh-pair__label--terrain { color: var(--orange); }
.bfh-pair__text { font-size: 17px; line-height: 1.55; color: var(--muted); }
.bfh-book__praise { position: absolute; z-index: 2; inset: auto clamp(28px, 5vw, 72px) clamp(32px, 4vw, 56px) clamp(28px, 5vw, 72px); display: flex; flex-direction: column; gap: 12px; max-width: 560px; }
.bfh-book__praise blockquote { font-size: clamp(22px, 2vw, 29px); line-height: 1.35; color: var(--cream); }
.bfh-book__praise figcaption { font-family: var(--f-cond); font-size: 12px; line-height: 1.5; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cream); }
.bfh-book__praise cite { font-family: var(--f-serif); font-size: 14px; letter-spacing: 0; text-transform: none; }

/* ==========================================================================
   06 WHAT LEADERS SAY
   ========================================================================== */
.bfh-praise { background: var(--paper); color: var(--ink); padding-block: clamp(72px, 7.8vw, 112px); }
.bfh-praise .bfh-wrap { position: relative; z-index: 1; }
.bfh-topo--praise { left: -300px; top: -380px; width: clamp(560px, 57vw, 820px); height: auto; aspect-ratio: 1; stroke: rgba(14,18,24,0.08); }
.bfh-praise__feature { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 40px; }
.bfh-praise__side { display: flex; flex-direction: column; gap: 30px; }
.bfh-praise__mark { font-family: var(--f-serif); font-size: 200px; line-height: 0.8; color: var(--orange); }
.bfh-praise__main { display: flex; flex-direction: column; gap: 30px; }
.bfh-praise__main blockquote { font-size: clamp(26px, 2.65vw, 38px); line-height: 1.3; color: var(--ink); }
.bfh-praise__main figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-top: 22px; border-top: 1px solid rgba(14,18,24,0.16); }
.bfh-praise__name { font-family: var(--f-display); font-size: 28px; text-transform: uppercase; }
.bfh-praise__rule { width: 1px; height: 28px; background: rgba(14,18,24,0.25); }
.bfh-praise__role { font-size: 17px; color: var(--text-paper); }
.bfh-praise__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: clamp(40px, 3.6vw, 52px); }
.bfh-quote { display: flex; flex-direction: column; gap: 22px; padding: clamp(28px, 2.8vw, 40px); }
.bfh-quote blockquote { flex-grow: 1; font-size: clamp(19px, 1.6vw, 23px); line-height: 1.42; }
.bfh-quote figcaption { display: flex; flex-direction: column; gap: 2px; }
.bfh-quote__name { font-family: var(--f-cond); font-size: 16px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; }
.bfh-quote__org { font-size: 15px; }
.bfh-quote--light { background: var(--paper-card); border: 1px solid rgba(14,18,24,0.1); box-shadow: 0 20px 40px rgba(14,18,24,0.06); color: var(--ink); }
.bfh-quote--light .bfh-quote__org { color: #505A68; }
.bfh-quote--dark { background: var(--ink); color: var(--cream); }
.bfh-quote--dark .bfh-quote__org { color: var(--muted-2); }

/* ==========================================================================
   07 CTA CLOSE + NEWSLETTER
   ========================================================================== */
.bfh-cta { background: var(--ink); padding-bottom: clamp(56px, 5.5vw, 80px); }
.bfh-cta__photo { position: relative; height: clamp(560px, 55.5vw, 800px); }
.bfh-cta__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 100%; }
.bfh-cta__photo::after { content: ""; position: absolute; inset: 0 0 -2px 0; background: linear-gradient(180deg, rgba(14,18,24,0.86) 0%, rgba(14,18,24,0.55) 38%, rgba(14,18,24,0.2) 62%, rgba(14,18,24,0.35) 85%, var(--ink) 100%); }
.bfh-cta__content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; padding-top: clamp(64px, 7vw, 100px); }
.bfh-cta__title { font-size: clamp(40px, 5.3vw, 76px); line-height: 1; color: var(--cream); }
.bfh-cta__sub { font-size: clamp(24px, 2.65vw, 38px); line-height: 1.3; color: var(--orange); }
.bfh-cta__content .bfh-actions { padding-top: 14px; }

.bfh-news { margin-top: 20px; display: grid; grid-template-columns: 5fr 7fr; gap: clamp(24px, 3.3vw, 48px); align-items: center; padding: clamp(28px, 2.5vw, 36px) clamp(24px, 3vw, 44px); border: 1px solid rgba(146,169,201,0.25); }
.bfh-news__copy { display: flex; flex-direction: column; gap: 8px; }
.bfh-news__eyebrow { font-family: var(--f-cond); font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--orange); }
.bfh-news__title { font-family: var(--f-display); font-size: clamp(26px, 2.2vw, 32px); line-height: 1.05; text-transform: uppercase; color: var(--cream); }
.bfh-news__desc { font-size: 16px; line-height: 1.5; color: var(--muted); }
.bfh-news__field { position: relative; display: flex; flex-direction: column; gap: 10px; }
.bfh-news__field label { font-family: var(--f-cond); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mist); }
.bfh-news__row { display: flex; gap: 12px; }
.bfh-news__row input { flex: 1; min-width: 0; height: 58px; margin: 0; padding: 0 18px; background: var(--ink-2); border: 1px solid rgba(146,169,201,0.35); border-radius: 0; color: var(--cream); font-family: var(--f-body); font-size: 17px; box-shadow: none; }
.bfh-news__row input::placeholder { color: rgba(167,179,196,0.7); }
.bfh-news__row button { height: 58px; margin: 0; padding: 0 30px; background: var(--cream); color: var(--ink); border: 0; border-radius: 0; font-family: var(--f-cond); font-size: 15px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; transition: background-color .2s ease; }
.bfh-news__row button:hover { background: var(--orange); }
.bfh-hp { position: absolute; left: -5000px; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
  .bfh-hero { min-height: 0; }
  .bfh-hero__inner { grid-template-columns: 1fr; gap: 24px; padding-block: 120px 64px; }
  .bfh-hero__art { order: -1; min-height: 340px; }

  .bfh-bill__inner { grid-template-columns: 1fr; gap: 8px; }
  .bfh-bill__text { padding-top: 16px; }

  .bfh-work__head { grid-template-columns: 1fr; }
  .bfh-work__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bfh-stack { grid-column: 1 / -1; flex-direction: row; }

  .bfh-book { grid-template-columns: 1fr; }
  .bfh-book__photo { height: clamp(300px, 56vw, 520px); min-height: 0; grid-column: auto; grid-row: auto; }
  .bfh-book__photo::after { inset: 0 0 -2px 0; background: linear-gradient(180deg, rgba(14,18,24,0) 28%, rgba(14,18,24,0.55) 58%, var(--ink) 100%); }
  .bfh-book__content { max-width: none; grid-column: auto; grid-row: auto; padding: 16px var(--gutter) 72px; }
  .bfh-book__praise { right: var(--gutter); bottom: 32px; left: var(--gutter); }

  .bfh-praise__feature { grid-template-columns: 1fr; gap: 8px; }
  .bfh-praise__side { flex-direction: column; align-items: flex-start; gap: 24px; }
  .bfh-praise__mark { font-size: 120px; }

  .bfh-news { grid-template-columns: 1fr; }
  .bfh-logos__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-items: center; row-gap: 36px; }
  .bfh-logos__row img { height: auto; max-width: 100%; max-height: calc(var(--h) * 1px); }
}

@media (max-width: 720px) {
  .bfh-hero__inner { padding-top: 110px; }
  .bfh-hero__title { font-size: clamp(42px, 11vw, 62px); }
  .bfh-hero__sub { font-size: 19px; }
  .bfh-actions .bfh-btn { flex: 1 1 100%; }
  .bfh-hero__art { min-height: 320px; }
  .bfh-cover__img { height: 300px; }
  .bfh-accolades__inner { grid-template-columns: 1fr; padding-block: 6px; }
  .bfh-accolades__item { padding: 12px 0; }
  .bfh-accolades__item + .bfh-accolades__item { border-left: 0; border-top: 1px solid var(--line); }
  .bfh-accolades__source { font-size: 11px; letter-spacing: 0.08em; }
  .bfh-accolades__rank { font-size: 18px; }
  .bfh-accolades__rank strong { font-size: 29px; }

  .bfh-work__grid { grid-template-columns: 1fr; }
  .bfh-stack { flex-direction: column; }
  .bfh-card { min-height: 440px; padding: 26px 24px; }
  .bfh-card__title { line-height: 1.14; }
  .bfh-book__tools-title { font-size: clamp(26px, 7vw, 32px); }
  .bfh-work__title { font-size: clamp(40px, 10vw, 56px); }

  .bfh-logos__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }

  .bfh-pair { grid-template-columns: 1fr; }
  .bfh-pair__item, .bfh-pair__item + .bfh-pair__item { padding: 22px 0; border-left: 0; }
  .bfh-pair__item + .bfh-pair__item { border-top: 1px solid var(--line); }
  .bfh-book__title { font-size: clamp(42px, 10vw, 58px); }
  .bfh-book__praise { bottom: 24px; gap: 8px; }
  .bfh-book__praise blockquote { font-size: clamp(18px, 5vw, 22px); }
  .bfh-book__praise figcaption { font-size: 10px; letter-spacing: 0.08em; }

  .bfh-praise__cards { grid-template-columns: 1fr; }
  .bfh-cta__photo { height: 640px; }
  .bfh-news__row { flex-direction: column; }
  .bfh-news__row input { flex: none; width: 100%; }
  .bfh-news__row button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .bfh *, .bfh *::before, .bfh *::after { transition: none !important; }
}
