/* ==========================================================================
   HBFS Studio — cinematic system
   Hummingbird Film Studios Inc.

   Balance target: 55% black/charcoal, 25% photography, 15% warm ivory,
   4% crimson, 1% gold. Crimson carries action. Gold is reserved for
   hairlines, micro-labels and small marks — never large fills.
   ========================================================================== */

:root {
	--hbfs-black: #08090a;
	--hbfs-charcoal: #141416;
	--hbfs-border: #2b2928;
	--hbfs-ivory: #f7f3eb;
	--hbfs-ivory-warm: #f5f1e8;
	--hbfs-gray: #aaa6a0;
	--hbfs-near-black: #171719;
	--hbfs-crimson: #be1230;
	--hbfs-crimson-deep: #8e0d24;
	--hbfs-gold: #c39a47;

	--hbfs-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--hbfs-slow: 900ms;
	--hbfs-gutter: clamp(1.25rem, 5vw, 4.5rem);
	--hbfs-section-y: clamp(4.5rem, 9vw, 8.5rem);
	--hbfs-header-h: 84px;
	--hbfs-container: 1280px;
}

/* v4 master discipline pages */
.hbfs-masterhero{position:relative;min-height:clamp(620px,82vh,900px);display:grid;align-items:end;overflow:hidden;background:#111;color:#f8f1e7}.hbfs-masterhero .hbfs-mastermedia{position:absolute;inset:0;margin:0}.hbfs-masterhero .hbfs-mastermedia img{width:100%;height:100%;object-fit:cover}.hbfs-masterhero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,10,.88) 0%,rgba(10,10,10,.52) 48%,rgba(10,10,10,.18) 100%),linear-gradient(0deg,rgba(10,10,10,.72),transparent 55%)}.hbfs-masterhero__copy{position:relative;z-index:2;width:100%;padding-top:180px;padding-bottom:clamp(64px,9vw,120px)}.hbfs-masterhero h1{max-width:920px;margin:.35em 0 .35em;font-size:clamp(3rem,7vw,7rem);line-height:.94;letter-spacing:-.055em;color:#fff}.hbfs-masterhero__copy>p:not(.hbfs-label){max-width:720px;font-size:clamp(1rem,1.5vw,1.35rem);line-height:1.7}.hbfs-masterghost{display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;border:1px solid rgba(255,255,255,.55);color:#fff;text-decoration:none}.hbfs-mastersection{padding:clamp(72px,9vw,140px) 0;background:#f3eee5;color:#1b1a18}.hbfs-mastersection:nth-of-type(odd){background:#1b1a18;color:#f3eee5}.hbfs-mastersection>.hbfs-container{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);gap:clamp(40px,7vw,110px);align-items:center}.hbfs-mastersection:nth-of-type(even) .hbfs-mastermedia{order:2}.hbfs-mastermedia{margin:0;overflow:hidden;background:#292724;min-height:260px}.hbfs-mastermedia img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.hbfs-mastermedia--missing{display:grid;place-items:center;padding:30px;border:1px dashed rgba(172,139,77,.65);color:#a98952}.hbfs-mastersection h2,.hbfs-masterproposal h2{font-size:clamp(2.2rem,4.6vw,5rem);line-height:1;letter-spacing:-.045em;margin:.3em 0}.hbfs-mastersection__copy>p:not(.hbfs-label){font-size:1.1rem;line-height:1.8;max-width:700px}.hbfs-masterlist{columns:2;column-gap:34px;margin:30px 0 0;padding:0;list-style:none}.hbfs-masterlist li{break-inside:avoid;padding:12px 0;border-top:1px solid currentColor;font-size:.95rem;opacity:.86}.hbfs-masterproposal{padding:clamp(80px,10vw,150px) 0;background:#7f1424;color:#fff;text-align:center}.hbfs-masterproposal .hbfs-container{max-width:900px}.hbfs-masterproposal p:not(.hbfs-label){max-width:700px;margin:0 auto 34px;line-height:1.75}.hbfs-masterproposal .hbfs-sitefooter__btn{display:inline-flex;background:#fff;color:#7f1424}.hbfs-sitefooter__nav li,.hbfs-sitefooter__services li{margin-block:0!important}.hbfs-sitefooter__nav a,.hbfs-sitefooter__services a{line-height:1.25!important;padding-block:4px!important}
@media(max-width:800px){.hbfs-masterhero{min-height:720px}.hbfs-masterhero__shade{background:linear-gradient(0deg,rgba(10,10,10,.9) 0%,rgba(10,10,10,.45) 75%,rgba(10,10,10,.2))}.hbfs-masterhero__copy{padding-top:150px;padding-bottom:60px}.hbfs-masterhero .hbfs-actions{display:grid;gap:10px}.hbfs-mastersection>.hbfs-container{grid-template-columns:1fr}.hbfs-mastersection:nth-of-type(even) .hbfs-mastermedia{order:0}.hbfs-masterlist{columns:1}.hbfs-mastersection{padding:72px 0}.hbfs-masterhero h1{font-size:clamp(2.8rem,14vw,4.7rem)}}
.hbfs-masterprocess,.hbfs-masterdetails,.hbfs-artworks{padding:clamp(72px,9vw,130px) 0;background:#111;color:#f7f0e6}.hbfs-masterprocess h2,.hbfs-masterdetails h2,.hbfs-artworks h2{font-size:clamp(2.2rem,4.6vw,5rem);line-height:1;letter-spacing:-.045em;margin:.3em 0 1em}.hbfs-masterprocess__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.18)}.hbfs-masterprocess article{background:#171717;padding:clamp(24px,3vw,42px)}.hbfs-masterprocess article span{color:#b8955d;font-size:.8rem}.hbfs-masterprocess article h3{margin:1rem 0 .7rem;font-size:1.25rem}.hbfs-masterprocess article p{margin:0;opacity:.72;line-height:1.65}.hbfs-masterdetails{background:#ece5da;color:#1b1a18}.hbfs-masterdetails ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;padding:0;list-style:none}.hbfs-masterdetails li{padding:14px 0;border-top:1px solid rgba(20,20,20,.2)}.hbfs-artworks{background:#f3eee5;color:#1b1a18}.hbfs-artworks__intro{max-width:760px;line-height:1.7}.hbfs-artworks__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,42px);margin-top:48px}.hbfs-artworks article{border-top:1px solid #ad8a50;padding-top:16px}.hbfs-artworks__placeholder{aspect-ratio:4/5;background:#d9d0c2;display:grid;place-items:center;color:#796b58}.hbfs-artworks h3{margin:20px 0 4px}.hbfs-artworks article p{opacity:.68}.hbfs-artworks article strong{display:block;margin:12px 0}.hbfs-artworks article a{color:#7f1424;font-weight:600}.hbfs-sitefooter__nav ul,.hbfs-sitefooter__services ul{gap:0!important}.hbfs-sitefooter__nav li,.hbfs-sitefooter__services li{margin:0!important;padding:0!important}.hbfs-sitefooter__nav a,.hbfs-sitefooter__services a{display:inline-block;line-height:1.2!important;padding:3px 0!important}
@media(max-width:800px){html,body{max-width:100%;overflow-x:hidden}.hbfs-masterprocess__grid,.hbfs-artworks__grid{grid-template-columns:1fr}.hbfs-masterdetails ul{grid-template-columns:1fr}.hbfs-mastermedia,.hbfs-mastersection__copy{min-width:0}.hbfs-mapcard{width:100%;max-width:100%;overflow:hidden}}

/* v3 standalone shell: one measured container everywhere. */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
img{max-width:100%;height:auto}
.hbfs-container,.hbfs-section>div,.hbfs-hero__inner,.hbfs-archivehero>div{width:100%;max-width:var(--hbfs-container);margin-inline:auto}
.site-header .inside-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;width:100%;max-width:calc(var(--hbfs-container) + (2 * var(--hbfs-gutter)));margin-inline:auto;padding-inline:var(--hbfs-gutter)}
.site-logo{display:flex;align-items:center;flex:0 0 auto}
.site-logo img{display:block}
.main-navigation{margin-left:auto}
.main-navigation .main-nav{display:flex;align-items:center;gap:clamp(.75rem,1.7vw,1.6rem);list-style:none!important;margin:0!important;padding:0!important}
.main-navigation li{list-style:none!important;margin:0;padding:0}
.main-navigation a{display:block;text-decoration:none!important;color:var(--hbfs-ivory)!important}
.main-navigation .menu-item-has-children{position:relative}
.main-navigation .sub-menu{display:none;position:absolute;top:100%;left:0;z-index:1000;min-width:240px;margin:0!important;padding:.7rem!important;list-style:none!important;background:rgba(20,20,22,.98);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 45px rgba(0,0,0,.3)}
.main-navigation .menu-item-has-children:hover>.sub-menu,.main-navigation .menu-item-has-children:focus-within>.sub-menu{display:grid;grid-template-columns:1fr}
.main-navigation .sub-menu a{padding:.62rem .75rem!important;white-space:nowrap;font-size:.78rem;letter-spacing:.06em}
.main-navigation .sub-menu a:hover,.main-navigation .sub-menu a:focus{background:rgba(255,255,255,.08)}
.main-navigation .menu-cta a,.main-navigation li:last-child a{border:1px solid var(--hbfs-crimson);padding:.8rem 1rem}
.hbfs-nav-toggle{display:none;background:transparent;border:1px solid var(--hbfs-border);color:var(--hbfs-ivory);padding:.65rem .85rem;text-transform:uppercase;letter-spacing:.1em}
.site-content{width:100%;max-width:none;margin:0;padding:0}
.hbfs-page{margin:0;padding:0}
.hbfs-loop,.hbfs-single{padding:clamp(3rem,6vw,6rem) var(--hbfs-gutter)}
.hbfs-loop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.hbfs-loopcard a{color:inherit;text-decoration:none}
.hbfs-sitefooter a,.hbfs-sitefooter a:visited,.hbfs-footer__menu a,.hbfs-sitefooter__legal a{color:var(--hbfs-ivory)!important;text-decoration:none!important}
.hbfs-footer__menu,.hbfs-footer__menu li{list-style:none!important;margin-left:0!important;padding-left:0!important}
.hbfs-footer__menu li::marker{content:""}
.hbfs-contactgrid a{color:var(--hbfs-near-black);text-decoration:none}
.hbfs-founderpage{background:var(--hbfs-ivory-warm)!important;color:var(--hbfs-near-black)!important}
.hbfs-founderpage h2,.hbfs-founderpage h3,.hbfs-founderpage p{color:var(--hbfs-near-black)}
.hbfs-founderpage__cols{align-items:center;gap:clamp(2rem,6vw,6rem)}
.hbfs-founderpage__media{align-self:center}
.hbfs-founder__portrait{width:min(100%,520px);aspect-ratio:4/5;margin:0 auto;overflow:hidden;background:#ded8ce}
.hbfs-founder__portrait img,.hbfs-founder__portraitimg{display:block;width:100%;height:100%;min-height:0;object-fit:cover;object-position:center top}
.hbfs-sitefooter nav a,.hbfs-sitefooter__nav a,.hbfs-sitefooter__nav a:link,.hbfs-sitefooter__nav a:visited,.hbfs-sitefooter__base a,.hbfs-sitefooter__base a:visited{color:#f7f3eb!important;background:transparent!important;border:0;text-decoration:none!important}
.hbfs-sitefooter__nav a:hover,.hbfs-sitefooter__base a:hover{color:var(--hbfs-gold)!important}
.hbfs-section--ivory+.hbfs-section--ivory{border-top:1px solid rgba(23,23,25,.12)}
/* Section headings follow the same measured left edge at every viewport. */
@media(max-width:1100px){.hbfs-nav-toggle{display:block}.main-navigation{display:none;position:absolute;top:100%;left:0;right:0;background:var(--hbfs-charcoal);padding:1.25rem var(--hbfs-gutter)}body.hbfs-nav-open .main-navigation{display:block}.main-navigation .main-nav{align-items:stretch;flex-direction:column}.main-navigation .sub-menu{display:grid;position:static;min-width:0;padding:0 0 .5rem 1rem!important;border:0;box-shadow:none;background:transparent}.main-navigation .sub-menu a{min-height:40px!important;padding:.45rem 0!important}.hbfs-loop{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.hbfs-loop{grid-template-columns:1fr}.site-header .inside-header{padding-inline:1.25rem}.hbfs .site-logo img{height:36px}}

/* --------------------------------------------------------------------------
   1. Base
   -------------------------------------------------------------------------- */

body.hbfs {
	background-color: var(--hbfs-black);
	color: var(--hbfs-ivory);
	font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	font-weight: 400;
	line-height: 1.65;
	letter-spacing: 0.005em;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

.hbfs h1,
.hbfs h2,
.hbfs h3,
.hbfs h4 {
	font-weight: 600;
	letter-spacing: -0.022em;
	line-height: 1.1;
	text-wrap: balance;
}

.hbfs p {
	text-wrap: pretty;
}

/* Extremely light film grain. Present, never dirty, never retro. */
body.hbfs::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	opacity: 0.025;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

.hbfs :is(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--hbfs-gold);
	outline-offset: 3px;
}

.hbfs-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --------------------------------------------------------------------------
   2. Editorial marks — micro-labels, numbers, hairlines
   -------------------------------------------------------------------------- */

.hbfs-label {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--hbfs-gray);
	margin: 0 0 clamp(1rem, 2vw, 1.75rem);
	display: flex;
	align-items: center;
	gap: 0.75em;
}

.hbfs-label--gold {
	color: var(--hbfs-gold);
}

/*
 * Optical alignment: large display type is set with negative letter-spacing,
 * which pulls its first glyph very slightly left of the true text edge. The
 * micro-label above it is nudged by the same amount so the two share a visually
 * straight left edge rather than a mathematically straight one.
 */
.hbfs-label,
.hbfs-textlink {
	margin-left: 0;
	padding-left: 0;
	text-indent: -0.04em;
}

.hbfs-num {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	color: var(--hbfs-gold);
	letter-spacing: 0.04em;
}

.hbfs-label .hbfs-num::after {
	content: "";
	display: inline-block;
	width: 2.25rem;
	height: 1px;
	margin-left: 0.75em;
	vertical-align: middle;
	background: var(--hbfs-crimson);
}

.hbfs-hair {
	display: block;
	width: 64px;
	height: 1px;
	background: var(--hbfs-gold);
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.hbfs-display {
	font-size: clamp(1.9rem, 4.4vw, 3.6rem);
	line-height: 1.06;
	letter-spacing: -0.03em;
	max-width: 20ch;
	margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
}

.hbfs-lede {
	font-size: clamp(1.0625rem, 1.5vw, 1.3rem);
	color: var(--hbfs-gray);
	max-width: 56ch;
}

.hbfs-textlink a {
	color: var(--hbfs-ivory);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	padding-bottom: 0.35em;
	border-bottom: 1px solid var(--hbfs-crimson);
	transition: border-color 240ms var(--hbfs-ease), color 240ms var(--hbfs-ease);
}

.hbfs-textlink a:hover {
	color: var(--hbfs-gold);
	border-bottom-color: var(--hbfs-gold);
}

/* --------------------------------------------------------------------------
   3. Section rhythm — alternating dark and warm ivory
   -------------------------------------------------------------------------- */

.hbfs-section {
	padding: var(--hbfs-section-y) var(--hbfs-gutter);
	position: relative;
}

.hbfs-section--flush {
	padding-left: 0;
	padding-right: 0;
}

.hbfs-section--black {
	background: var(--hbfs-black);
}

.hbfs-section--charcoal {
	background: var(--hbfs-charcoal);
}

.hbfs-section--ivory {
	background: var(--hbfs-ivory-warm);
	color: var(--hbfs-near-black);
}

.hbfs-section--ivory :is(h1, h2, h3, h4) {
	color: var(--hbfs-near-black);
}

.hbfs-section--ivory .hbfs-label {
	color: #6b665f;
}

.hbfs-section--ivory .hbfs-lede,
.hbfs-section--ivory p {
	color: #47433e;
}

.hbfs-section--ivory .hbfs-textlink a {
	color: var(--hbfs-near-black);
}

/* Asymmetry: no two adjacent sections share the same text/image rhythm. */
.hbfs-split {
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}

.hbfs-split__aside {
	padding-top: clamp(0.5rem, 2.5vw, 2.75rem);
}

.hbfs-split__aside p {
	color: var(--hbfs-gray);
	max-width: 46ch;
}

/* --------------------------------------------------------------------------
   4. Header — transparent over the hero, warm charcoal once scrolled
   -------------------------------------------------------------------------- */

.hbfs .site-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 900;
	background: transparent;
	border-bottom: 1px solid transparent;
	transition: background-color 420ms var(--hbfs-ease), border-color 420ms var(--hbfs-ease), backdrop-filter 420ms var(--hbfs-ease);
}

.hbfs .site-header .inside-header {
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
}

/* Keep the fixed header below WordPress's toolbar while editors are signed in. */
body.admin-bar.hbfs .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar.hbfs .site-header {
		top: 46px;
	}
}

.hbfs.hbfs-scrolled .site-header {
	background: rgba(20, 20, 22, 0.92);
	backdrop-filter: saturate(140%) blur(10px);
	border-bottom-color: var(--hbfs-border);
}

/* Pages without a hero start on charcoal so the nav is always legible. */
.hbfs:not(.hbfs-has-hero) .site-header {
	background: var(--hbfs-charcoal);
	border-bottom-color: var(--hbfs-border);
}

.hbfs:not(.hbfs-has-hero) .site-content {
	padding-top: var(--hbfs-header-h);
}

/* Optional warm-ivory header treatment for the colour logo. */
.hbfs.hbfs-header-light .site-header,
.hbfs.hbfs-header-light.hbfs-scrolled .site-header {
	background: var(--hbfs-ivory-warm);
	border-bottom-color: rgba(23, 23, 25, 0.12);
	backdrop-filter: none;
}

.hbfs.hbfs-header-light .main-navigation a {
	color: var(--hbfs-near-black);
}

/*
 * Logo: generous clear space, never distorted, never recreated in text.
 * The wordmark already says "Hummingbird Film Studios Inc.", so GeneratePress's
 * text site title and tagline are suppressed — printing both duplicates the
 * name next to the mark and breaks the logo's clear space.
 */
body.hbfs .site-branding,
body.hbfs .main-title,
body.hbfs .site-description {
	display: none;
}

.hbfs .site-logo img {
	width: auto;
	height: clamp(35px, 3.9vw, 48px);
	max-width: none;
	padding: 0.25rem 0;
}

.hbfs .main-navigation,
.hbfs .main-navigation .main-nav ul li a {
	background: transparent;
	color: var(--hbfs-ivory);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.hbfs .main-navigation .main-nav ul li a {
	position: relative;
}

.hbfs .main-navigation .main-nav ul li a::after {
	content: "";
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 22px;
	height: 1px;
	background: var(--hbfs-crimson);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 280ms var(--hbfs-ease);
}

.hbfs .main-navigation .main-nav ul li:hover > a::after,
.hbfs .main-navigation .main-nav ul li.current-menu-item > a::after {
	transform: scaleX(1);
}

/* Persistent Start a Project CTA in the menu: add class "hbfs-nav-cta". */
.hbfs .main-navigation .main-nav ul li.hbfs-nav-cta > a {
	background: var(--hbfs-crimson);
	color: var(--hbfs-ivory);
	margin: 0 0 0 0.75rem;
}

.hbfs .main-navigation .main-nav ul li.hbfs-nav-cta > a:hover {
	background: var(--hbfs-crimson-deep);
}

.hbfs .main-navigation .main-nav ul li.hbfs-nav-cta > a::after {
	display: none;
}

/* --------------------------------------------------------------------------
   5. Hero
   -------------------------------------------------------------------------- */

.hbfs-hero {
	min-height: 100svh;
	display: grid;
	align-items: end;
	padding-bottom: clamp(3.5rem, 8vh, 7rem);
	padding-top: calc(var(--hbfs-header-h) + 2rem);
	isolation: isolate;
	overflow: clip;
}

.hbfs-hero--page {
	min-height: 62svh;
}

.hbfs-hero__media,
.hbfs-hero__picture {
	position: absolute;
	inset: 0;
	z-index: -1;
	display: block;
}

.hbfs-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.06);
	transition: transform 2400ms var(--hbfs-ease);
}

.hbfs-hero.is-revealed .hbfs-hero__img {
	transform: scale(1);
}

.hbfs-scrim {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, rgba(8, 9, 10, 0.94) 0%, rgba(8, 9, 10, 0.55) 42%, rgba(8, 9, 10, 0.18) 78%),
		linear-gradient(to right, rgba(8, 9, 10, 0.5), rgba(8, 9, 10, 0) 62%);
}

.hbfs-scrim--soft {
	background: linear-gradient(to right, rgba(8, 9, 10, 0.92) 0%, rgba(8, 9, 10, 0.72) 45%, rgba(8, 9, 10, 0.25) 100%);
}

/* Text sits centre-right so the subject on the left of the image stays clear. */
.hbfs-hero__inner {
	width: 100%;
	margin-inline: auto;
}

.hbfs-hero__title {
	font-size: clamp(2.75rem, 7.4vw, 6.25rem);
	line-height: 0.98;
	letter-spacing: -0.04em;
	margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
	max-width: 15ch;
}

.hbfs-hero__title--page {
	font-size: clamp(2.1rem, 5vw, 4rem);
	max-width: 18ch;
}

.hbfs-hero__lede {
	font-size: clamp(1rem, 1.4vw, 1.25rem);
	color: var(--hbfs-gray);
	max-width: 50ch;
	margin: 0 0 clamp(1.75rem, 3vw, 2.5rem);
}

.hbfs-hero__rule {
	position: absolute;
	left: var(--hbfs-gutter);
	right: var(--hbfs-gutter);
	bottom: 0;
	height: 1px;
	background: linear-gradient(to right, var(--hbfs-crimson) 0%, var(--hbfs-crimson) 12%, var(--hbfs-border) 12%, var(--hbfs-border) 100%);
}

/*
 * The hero shares the same left edge as every other section. The composition
 * stays cinematic through scale and the scrim rather than by shifting the text
 * across the page, which broke alignment with the sections below it.
 */
@media (min-width: 1025px) {
	.hbfs-hero__inner > * {
		max-width: 44ch;
	}

	.hbfs-hero__title {
		max-width: 14ch;
	}

	.hbfs-hero__lede {
		max-width: 46ch;
	}
}

/* --------------------------------------------------------------------------
   6. Buttons — crimson with ivory text. No gradients, no glow.
   -------------------------------------------------------------------------- */

.hbfs .wp-block-button__link {
	background: var(--hbfs-crimson);
	color: var(--hbfs-ivory);
	border-radius: 0;
	border: 1px solid var(--hbfs-crimson);
	padding: 1rem 2.1rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	transition: background-color 240ms var(--hbfs-ease), border-color 240ms var(--hbfs-ease), color 240ms var(--hbfs-ease);
}

.hbfs .wp-block-button__link:hover {
	background: var(--hbfs-crimson-deep);
	border-color: var(--hbfs-crimson-deep);
}

.hbfs .hbfs-btn-ghost .wp-block-button__link {
	background: transparent;
	border-color: var(--hbfs-border);
	color: var(--hbfs-ivory);
}

.hbfs .hbfs-btn-ghost .wp-block-button__link:hover {
	border-color: var(--hbfs-gold);
	color: var(--hbfs-gold);
	background: transparent;
}

.hbfs-section--ivory .hbfs-btn-ghost .wp-block-button__link {
	color: var(--hbfs-near-black);
	border-color: rgba(23, 23, 25, 0.25);
}

.hbfs-actions {
	gap: 0.75rem 1rem;
}

/* --------------------------------------------------------------------------
   7. Selected Work — horizontal poster track (desktop), stack (mobile)
   -------------------------------------------------------------------------- */

.hbfs-work {
	position: relative;
	margin: clamp(2.5rem, 5vw, 4rem) 0;
}

.hbfs-work__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(260px, 25vw);
	gap: clamp(1rem, 2vw, 2rem);
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scroll-padding-left: var(--hbfs-gutter);
	padding: 0 var(--hbfs-gutter) 1.25rem;
	scrollbar-width: thin;
	scrollbar-color: var(--hbfs-border) transparent;
	overscroll-behavior-x: contain;
}

.hbfs-work__item {
	scroll-snap-align: start;
}

.hbfs-work__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.hbfs-work__frame {
	display: block;
	position: relative;
	aspect-ratio: 2 / 3;
	overflow: hidden;
	background: var(--hbfs-charcoal);
	border: 1px solid var(--hbfs-border);
}

.hbfs-work__frame::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8, 9, 10, 0.55), transparent 55%);
	opacity: 0;
	transition: opacity 420ms var(--hbfs-ease);
}

.hbfs-work__img {
	transition: transform 1200ms var(--hbfs-ease);
}

.hbfs-work__link:hover .hbfs-work__img {
	transform: scale(1.035);
}

.hbfs-work__link:hover .hbfs-work__frame::after {
	opacity: 1;
}

.hbfs-work__meta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1.15rem;
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--hbfs-gray);
}

.hbfs-work__title {
	font-size: clamp(1.25rem, 1.7vw, 1.6rem);
	margin: 0.5rem 0 0.5rem;
}

.hbfs-work__link:hover .hbfs-work__title {
	color: var(--hbfs-gold);
}

.hbfs-work__excerpt {
	color: var(--hbfs-gray);
	font-size: 0.9375rem;
	margin: 0;
	max-width: 34ch;
}

.hbfs-work__controls {
	display: none;
	gap: 0.5rem;
	padding-inline: var(--hbfs-gutter);
}

.hbfs-work__btn {
	width: 44px;
	height: 44px;
	background: transparent;
	border: 1px solid var(--hbfs-border);
	color: var(--hbfs-ivory);
	cursor: pointer;
	transition: border-color 240ms var(--hbfs-ease), color 240ms var(--hbfs-ease);
}

.hbfs-work__btn:hover:not(:disabled) {
	border-color: var(--hbfs-gold);
	color: var(--hbfs-gold);
}

.hbfs-work__btn:disabled {
	opacity: 0.35;
	cursor: default;
}

@media (min-width: 1025px) {
	.hbfs-work__controls {
		display: flex;
	}
}

@media (max-width: 782px) {
	.hbfs-work__track {
		grid-auto-flow: row;
		grid-auto-columns: auto;
		overflow-x: visible;
		gap: clamp(2rem, 6vw, 3rem);
	}
}

/* --------------------------------------------------------------------------
   8. Capabilities list
   -------------------------------------------------------------------------- */

/*
 * Compact capability grid. The earlier stacked list ran the full height of the
 * screen for five short statements; this says the same thing in about a third
 * of the space and reads as a considered set rather than a long scroll.
 */
.hbfs-capgrid {
	display: grid;
	gap: 0;
	background: var(--hbfs-ivory-warm);
	border: 1px solid rgba(23, 23, 25, 0.12);
	margin: clamp(2rem, 4vw, 3rem) 0 clamp(1.75rem, 3vw, 2.5rem);
}

.hbfs-cap {
	position: relative;
	background: var(--hbfs-ivory-warm);
	border-right: 1px solid rgba(23, 23, 25, 0.12);
	border-bottom: 1px solid rgba(23, 23, 25, 0.12);
	padding: clamp(1.4rem, 2.4vw, 2rem);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.hbfs-cap__link {
	position: absolute;
	inset: 0;
	z-index: 2;
}

.hbfs-cap:focus-within {
	outline: 2px solid var(--hbfs-crimson);
	outline-offset: -2px;
}

.hbfs-cap__media {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 8;
	margin: 0 0 0.7rem;
	overflow: hidden;
	background: #d8d3c8;
}

.hbfs-cap__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.78) contrast(1.04);
	transition: transform 500ms var(--hbfs-ease), filter 500ms var(--hbfs-ease);
}

.hbfs-cap:hover .hbfs-cap__media img {
	transform: scale(1.035);
	filter: saturate(0.95) contrast(1.04);
}

.hbfs-capgrid > *,
.hbfs-capgrid .hbfs-cap {
	margin: 0;
}

.hbfs-cap__num {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--hbfs-crimson);
}

.hbfs-cap__title {
	font-size: clamp(1.0625rem, 1.35vw, 1.25rem);
	line-height: 1.25;
	margin: 0;
}

.hbfs-cap__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.55;
	max-width: 40ch;
}

@media (min-width: 700px) {
	.hbfs-capgrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1025px) {
	.hbfs-capgrid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.hbfs-capgrid > .hbfs-cap {
		grid-column: auto;
	}
}

/* --------------------------------------------------------------------------
   9. Signature statement
   -------------------------------------------------------------------------- */

.hbfs-statement {
	padding-block: clamp(6rem, 14vw, 12rem);
	text-align: left;
}

.hbfs-statement__text {
	font-size: clamp(1.75rem, 4vw, 3.25rem);
	line-height: 1.14;
	letter-spacing: -0.028em;
	margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
	max-width: 22ch;
}

.hbfs-statement__sub {
	color: var(--hbfs-gray);
	max-width: 54ch;
	margin: 0;
}

/* --------------------------------------------------------------------------
   10. Founder section
   -------------------------------------------------------------------------- */

.hbfs-section--founder {
	position: relative;
	isolation: isolate;
	padding-block: clamp(5rem, 12vw, 10rem);
	overflow: clip;
}

.hbfs-sectionbg {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.hbfs-sectionbg__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hbfs-founder__inner {
	position: relative;
}

.hbfs-founder__panel {
	max-width: 620px;
}

.hbfs-founder__panel p {
	color: var(--hbfs-gray);
}

/* --------------------------------------------------------------------------
   Founder portrait — Studio page only.
   Shown on a clean charcoal surface at full size, never cropped to a forced
   ratio and never layered over atmospheric imagery.
   -------------------------------------------------------------------------- */

.hbfs-founderpage__media {
	align-self: start;
}

.hbfs-founder__portrait {
	margin: 0;
	position: relative;
	max-width: 460px;
}

.hbfs-founder__portrait .hbfs-img,
.hbfs-founder__portraitimg {
	width: 100%;
	height: auto;
	aspect-ratio: auto;
	object-fit: contain;
	display: block;
}

.hbfs-founder__portrait::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -10px;
	width: 40%;
	height: 2px;
	background: var(--hbfs-crimson);
}

@media (max-width: 860px) {
	.hbfs-founder__portrait {
		margin-top: clamp(2rem, 5vw, 3rem);
		max-width: 340px;
	}
}

/* Legacy homepage placement, retained only as a safety net. */
.hbfs-section--founder .hbfs-founder__portrait {
	display: none;
}

.hbfs-founder__portrait--legacy {
	margin: clamp(2.5rem, 5vw, 0) 0 0;
	max-width: 320px;
	position: relative;
}

.hbfs-founder__portrait::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 44%;
	height: 2px;
	background: var(--hbfs-crimson);
}

/* --------------------------------------------------------------------------
   10b. Clients and partners band
   -------------------------------------------------------------------------- */

.hbfs-clients {
	background: #101012;
	color: var(--hbfs-ivory);
	padding: clamp(3rem, 5vw, 4.5rem) var(--hbfs-gutter);
	border-top: 1px solid rgba(201,164,86,.2);
}

.hbfs-clients__inner {
	max-width: var(--hbfs-container);
	margin-inline: auto;
}

.hbfs-clients__heading { display:grid; gap:1rem 3rem; align-items:end; }
.hbfs-clients__heading h2 { color:var(--hbfs-ivory); margin:.55rem 0 0; max-width:820px; font-size:clamp(2rem,3.25vw,3.35rem); line-height:1.04; font-weight:450; letter-spacing:-.035em; }
.hbfs-clients__heading > p { color:rgba(245,240,229,.62); max-width:30rem; margin:0; font-size:clamp(.95rem,1.15vw,1.08rem); line-height:1.7; }

.hbfs-clients .hbfs-partners {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(.75rem,1.5vw,1.25rem);
	background: transparent;
	border: 0;
}

.hbfs-clients .hbfs-partner {
	min-width: 0;
	min-height: 126px;
	padding: 1.35rem;
	align-items: center;
	justify-content: center;
	background: #171719;
	border: 1px solid rgba(255,255,255,.07);
	filter: none;
	opacity: 1;
	transition: background 240ms ease, border-color 240ms ease, transform 240ms ease;
}

.hbfs-clients .hbfs-partner:hover {
	background: #1d1d20;
	border-color: rgba(201,164,86,.34);
	transform: translateY(-3px);
}

.hbfs-clients .hbfs-partnerlogo {
	display: block;
	width: auto;
	height: auto;
	max-width: min(78%, 180px);
	max-height: 70px;
	object-fit: contain;
	filter: none;
	opacity: .92;
	transition: filter 240ms ease, opacity 240ms ease, transform 240ms ease;
}

.hbfs-clients .hbfs-partner:hover .hbfs-partnerlogo {
	filter: none;
	opacity: 1;
	transform: translateY(-2px);
}

.hbfs-partners--placeholders { display:grid!important; grid-template-columns:repeat(6,minmax(0,1fr)); }
.hbfs-partner--placeholder { min-height:110px; border:1px solid rgba(23,23,25,.18)!important; color:#635d55; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.55rem; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; background:rgba(255,255,255,.28); }
.hbfs-placeholdermark { font-family:Georgia,serif; font-size:1.7rem; letter-spacing:-.08em; color:#8c7950; }

/* Social rows — compact in the header, more expressive in the footer. */
.hbfs-social { display:flex; align-items:center; gap:.55rem; }
.hbfs-social__link { width:34px; height:34px; border:1px solid rgba(255,255,255,.24); color:var(--hbfs-ivory); display:grid; place-items:center; transition:color .2s ease,border-color .2s ease,background .2s ease; }
.hbfs-social__link:hover { color:var(--hbfs-gold); border-color:var(--hbfs-gold); background:rgba(255,255,255,.05); }
.hbfs-social svg { width:15px; height:15px; fill:currentColor; stroke:currentColor; stroke-width:1.5; }
.hbfs-social__link--facebook svg { stroke:none; }
.hbfs-social__link--instagram svg,.hbfs-social__link--email svg { fill:none; }
.hbfs-social__dot { fill:currentColor!important; stroke:none!important; }
.hbfs-social--header { margin-left:auto; }

.hbfs-section--project { background:linear-gradient(120deg,#721d26 0%,#a32935 55%,#6d1922 100%); color:var(--hbfs-ivory); }
.hbfs-section--project .hbfs-panel { max-width:var(--hbfs-container); margin-inline:auto; background:transparent; border-left-color:var(--hbfs-gold); padding-block:clamp(1rem,3vw,2rem); }
.hbfs-section--project .hbfs-btn-ghost .wp-block-button__link { background:transparent; border-color:rgba(255,255,255,.6); color:var(--hbfs-ivory); }
.hbfs-section--closing { background:#d8cdbd; color:var(--hbfs-near-black); }
.hbfs-section--closing h2,.hbfs-section--closing p { color:var(--hbfs-near-black); }
.hbfs-section--closing::after { content:""; position:absolute; right:var(--hbfs-gutter); top:50%; width:clamp(90px,15vw,240px); aspect-ratio:1; border:1px solid rgba(23,23,25,.15); border-radius:50%; transform:translateY(-50%); box-shadow:0 0 0 28px rgba(23,23,25,.035),0 0 0 56px rgba(23,23,25,.025); pointer-events:none; }
.hbfs-section--closing > * { position:relative; z-index:1; }

.hbfs-sitefooter__connect { color:var(--hbfs-gray); }
.hbfs-sitefooter__connect p { margin:.65rem 0; }
.hbfs-sitefooter__email { color:var(--hbfs-ivory); text-decoration:none; font-size:clamp(1rem,1.5vw,1.25rem); }
.hbfs-sitefooter__email:hover { color:var(--hbfs-gold); }
.hbfs-sitefooter__connect .hbfs-social { margin-top:1.4rem; }

@media (min-width:861px) {
	.hbfs-clients__heading { grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr); }
	.hbfs-sitefooter__inner--simple { grid-template-columns:minmax(0,1.5fr) minmax(180px,.55fr) minmax(220px,.65fr)!important; }
}

@media (max-width:1100px) {
	.hbfs-social--header { display:none; }
	.hbfs-partners--placeholders { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.hbfs-clients .hbfs-partners { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:620px) {
	.hbfs-partners--placeholders { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.hbfs-clients__heading h2 { font-size:clamp(1.85rem,9vw,2.45rem); }
	.hbfs-clients .hbfs-partner { min-height:100px; padding:1rem .75rem; }
	.hbfs-clients .hbfs-partnerlogo { max-width:82%; max-height:54px; }
	.hbfs-section--closing::after { opacity:.45; right:-55px; }
}

/* --------------------------------------------------------------------------
   11. Journey timeline
   -------------------------------------------------------------------------- */

.hbfs-journey {
	list-style: none;
	margin: clamp(2.5rem, 5vw, 4rem) 0 0;
	padding: 0;
	display: grid;
	gap: 0;
	counter-reset: journey;
}

.hbfs-journey__item {
	display: grid;
	gap: 0.5rem clamp(2rem, 5vw, 5rem);
	padding: clamp(1.5rem, 3vw, 2.25rem) 0;
	border-top: 1px solid var(--hbfs-border);
	position: relative;
}

.hbfs-journey__item::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 34px;
	height: 1px;
	background: var(--hbfs-gold);
}

.hbfs-journey__marker {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hbfs-gold);
}

.hbfs-journey__body p {
	margin: 0;
	color: var(--hbfs-gray);
	max-width: 60ch;
}

@media (min-width: 861px) {
	.hbfs-journey__item {
		grid-template-columns: 260px minmax(0, 1fr);
	}
}

/* --------------------------------------------------------------------------
   12. Ventures
   -------------------------------------------------------------------------- */

.hbfs-ventures {
	display: grid;
	gap: 1px;
	background: var(--hbfs-border);
	border: 1px solid var(--hbfs-border);
	margin: clamp(2.5rem, 5vw, 4rem) 0;
}

.hbfs-venture {
	background: var(--hbfs-charcoal);
	padding: clamp(1.75rem, 3.5vw, 3rem);
	transition: background-color 320ms var(--hbfs-ease);
}

.hbfs-venture:hover {
	background: #17171a;
}

.hbfs-venture__logo {
	margin-bottom: 1.5rem;
	min-height: 40px;
	display: flex;
	align-items: center;
}

.hbfs-partnerlogo {
	width: auto;
	max-width: 180px;
	max-height: 44px;
	height: auto;
	object-fit: contain;
}

.hbfs-venture__title {
	font-size: clamp(1.2rem, 1.8vw, 1.5rem);
	margin: 0 0 0.75rem;
}

.hbfs-venture__title a {
	text-decoration: none;
	color: inherit;
}

.hbfs-venture__title a:hover {
	color: var(--hbfs-gold);
}

.hbfs-venture__text {
	color: var(--hbfs-gray);
	margin: 0;
	font-size: 0.9375rem;
}

.hbfs-venture__note {
	margin: 1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--hbfs-border);
	font-size: 0.8125rem;
	color: var(--hbfs-gold);
}

@media (min-width: 861px) {
	.hbfs-ventures {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
   13. Panels, journal, partners
   -------------------------------------------------------------------------- */

.hbfs-panel {
	background: var(--hbfs-charcoal);
	padding: clamp(2.5rem, 6vw, 5rem);
	border-left: 2px solid var(--hbfs-crimson);
}

.hbfs-panel--crimson .hbfs-lede {
	max-width: 60ch;
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.hbfs-section--ivory .hbfs-panel {
	background: transparent;
	color: var(--hbfs-near-black);
	border-left-color: var(--hbfs-crimson);
	padding-block: clamp(1rem, 3vw, 2rem);
}

.hbfs-section--ivory .hbfs-panel .hbfs-lede {
	color: #47433e;
}

.hbfs-journal {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	margin: clamp(2.5rem, 5vw, 4rem) 0;
}

.hbfs-journal__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	margin-bottom: 1.25rem;
	border: 1px solid var(--hbfs-border);
}

.hbfs-journal__img {
	transition: transform 1000ms var(--hbfs-ease);
}

.hbfs-journal__item:hover .hbfs-journal__img {
	transform: scale(1.03);
}

.hbfs-journal__title {
	font-size: clamp(1.1rem, 1.5vw, 1.35rem);
	margin: 0 0 0.6rem;
}

.hbfs-journal__title a {
	text-decoration: none;
	color: inherit;
}

.hbfs-journal__title a:hover {
	color: var(--hbfs-gold);
}

.hbfs-journal__excerpt {
	color: var(--hbfs-gray);
	font-size: 0.9375rem;
	margin: 0;
}

@media (min-width: 861px) {
	.hbfs-journal {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hbfs-partners {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(1.75rem, 4vw, 3.5rem);
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.hbfs-partner {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	filter: grayscale(1);
	opacity: 0.75;
	transition: filter 320ms var(--hbfs-ease), opacity 320ms var(--hbfs-ease);
}

.hbfs-partner:hover {
	filter: none;
	opacity: 1;
}

.hbfs-partner__rel {
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hbfs-gray);
}

/* --------------------------------------------------------------------------
   14. Case study, gallery, trailer facade
   -------------------------------------------------------------------------- */

.hbfs-case__statement {
	font-size: clamp(1.25rem, 2.2vw, 1.75rem);
	line-height: 1.35;
	letter-spacing: -0.018em;
	color: var(--hbfs-ivory);
	padding-left: 1.25rem;
	border-left: 2px solid var(--hbfs-crimson);
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.hbfs-case__h {
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--hbfs-gold);
	margin-top: clamp(2rem, 4vw, 3rem);
}

.hbfs-gallery-grid {
	display: grid;
	gap: 1px;
	background: var(--hbfs-border);
}

.hbfs-gallery-grid__item {
	margin: 0;
	background: var(--hbfs-black);
}

.hbfs-gallery-grid figcaption {
	font-size: 0.8125rem;
	color: var(--hbfs-gray);
	padding: 0.75rem 1rem 1.25rem;
}

@media (min-width: 861px) {
	.hbfs-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.hbfs-trailer {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--hbfs-charcoal);
}

.hbfs-trailer__poster {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hbfs-trailer__play {
	position: absolute;
	inset: auto auto 2rem 2rem;
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.9rem 1.6rem;
	background: var(--hbfs-crimson);
	color: var(--hbfs-ivory);
	border: 0;
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	cursor: pointer;
}

.hbfs-trailer__play:hover {
	background: var(--hbfs-crimson-deep);
}

.hbfs-trailer__icon {
	width: 0;
	height: 0;
	border-left: 10px solid currentColor;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
}

.hbfs-trailer iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.hbfs-credits-list {
	margin: 1.5rem 0 0;
}

.hbfs-credits-list__row {
	display: grid;
	gap: 0.25rem 2rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--hbfs-border);
}

.hbfs-credits-list dt {
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hbfs-gray);
}

.hbfs-credits-list dd {
	margin: 0;
}

@media (min-width: 641px) {
	.hbfs-credits-list__row {
		grid-template-columns: 220px minmax(0, 1fr);
	}
}

/* --------------------------------------------------------------------------
   15. Footer
   -------------------------------------------------------------------------- */

.hbfs-footer {
	background: var(--hbfs-black);
	border-top: 1px solid var(--hbfs-border);
	padding: clamp(3.5rem, 7vw, 6rem) var(--hbfs-gutter) clamp(2rem, 4vw, 3rem);
}

.hbfs-footer__mark {
	width: auto;
	height: 38px;
	margin-bottom: 1.5rem;
}

.hbfs-footer__blurb {
	color: var(--hbfs-gray);
	max-width: 46ch;
	font-size: 0.9375rem;
}

.hbfs-footer__nav a {
	color: var(--hbfs-ivory);
	text-decoration: none;
	font-size: 0.875rem;
}

.hbfs-footer__nav a:hover {
	color: var(--hbfs-gold);
}

.hbfs-footer__legal a,
.hbfs-footer__base {
	color: var(--hbfs-gray);
	font-size: 0.8125rem;
}

.hbfs-footer__base {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: 1.5rem;
	border-top: 1px solid var(--hbfs-border);
}

/* --------------------------------------------------------------------------
   15b. Site footer — rendered automatically on every page
   -------------------------------------------------------------------------- */

/* GeneratePress credit bar is removed in PHP; this is belt and braces. */
body.hbfs .site-info,
body.hbfs .copyright-bar {
	display: none;
}

.hbfs-sitefooter {
	position: relative;
	background: var(--hbfs-black);
	padding: clamp(3.5rem, 7vw, 6.5rem) var(--hbfs-gutter) clamp(1.75rem, 3vw, 2.5rem);
}

.hbfs-sitefooter__rule {
	position: absolute;
	top: 0;
	left: var(--hbfs-gutter);
	right: var(--hbfs-gutter);
	height: 1px;
	background: linear-gradient(to right, var(--hbfs-crimson) 0%, var(--hbfs-crimson) 9%, var(--hbfs-border) 9%, var(--hbfs-border) 100%);
}

.hbfs-sitefooter__inner {
	max-width: var(--hbfs-container);
	margin-inline: auto;
	display: grid;
	gap: clamp(2.5rem, 5vw, 4rem);
}

.hbfs-sitefooter .hbfs-footer__mark {
	width: auto;
	height: 40px;
	margin-bottom: 1.5rem;
	display: block;
}

.hbfs-footer__mark--light {
	background: var(--hbfs-ivory-warm);
	padding: .65rem .85rem;
}

.hbfs-sitefooter__name {
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 0 0 1.25rem;
}

.hbfs-sitefooter__blurb {
	color: var(--hbfs-gray);
	font-size: 0.9375rem;
	max-width: 42ch;
	margin: 0 0 1.5rem;
}

.hbfs-sitefooter__menu {
	list-style: none !important;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.7rem;
}

.hbfs-sitefooter__menu a {
	color: var(--hbfs-ivory) !important;
	text-decoration: none !important;
	font-size: 0.9375rem;
	position: relative;
	padding-bottom: 2px;
	border-bottom: 1px solid transparent;
	transition: color 240ms var(--hbfs-ease), border-color 240ms var(--hbfs-ease);
}

.hbfs-sitefooter__menu li,
.hbfs-sitefooter__menu li::marker {
	list-style: none !important;
	content: "";
}

.hbfs-sitefooter__menu a:hover {
	color: var(--hbfs-gold);
	border-bottom-color: var(--hbfs-gold);
}

.hbfs-sitefooter__pitch {
	font-size: clamp(1.125rem, 1.6vw, 1.4rem);
	font-weight: 600;
	letter-spacing: -0.015em;
	margin: 0 0 1.5rem;
	max-width: 18ch;
}

.hbfs-sitefooter__btn {
	display: inline-block;
	padding: 0.95rem 1.9rem;
	background: var(--hbfs-crimson);
	color: var(--hbfs-ivory);
	text-decoration: none;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border: 1px solid var(--hbfs-crimson);
	transition: background-color 240ms var(--hbfs-ease), border-color 240ms var(--hbfs-ease);
}

.hbfs-sitefooter__btn:hover {
	background: var(--hbfs-crimson-deep);
	border-color: var(--hbfs-crimson-deep);
	color: var(--hbfs-ivory);
}

.hbfs-sitefooter__base {
	max-width: var(--hbfs-container);
	margin: clamp(3rem, 6vw, 5rem) auto 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--hbfs-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
	align-items: baseline;
	justify-content: space-between;
}

.hbfs-sitefooter__base p {
	margin: 0;
	color: var(--hbfs-gray);
	font-size: 0.8125rem;
}

.hbfs-sitefooter__note {
	max-width: 46ch;
}

.hbfs-sitefooter__legal {
	display: flex;
	gap: 1.5rem;
}

.hbfs-sitefooter__legal a {
	color: var(--hbfs-gray);
	text-decoration: none;
}

.hbfs-sitefooter__legal a:hover {
	color: var(--hbfs-gold);
}

@media (min-width: 861px) {
	.hbfs-sitefooter__inner {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr);
	}
}

/* --------------------------------------------------------------------------
   16. Motion — slow cinematic reveals, fully optional
   -------------------------------------------------------------------------- */

.hbfs-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity var(--hbfs-slow) var(--hbfs-ease), transform var(--hbfs-slow) var(--hbfs-ease);
	will-change: opacity, transform;
}

.hbfs-reveal.is-revealed {
	opacity: 1;
	transform: none;
	will-change: auto;
}

/* If JavaScript never runs, content must still be visible. */
.no-js .hbfs-reveal {
	opacity: 1;
	transform: none;
}

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

	.hbfs-reveal {
		opacity: 1;
		transform: none;
	}

	.hbfs-hero__img {
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   17. GeneratePress integration
   Set Customize → Layout → Container to "One Container" and Sidebars to
   "Content (no sidebars)". These rules then let the cinematic sections run
   edge to edge inside GP's shell.
   -------------------------------------------------------------------------- */

/*
 * GeneratePress prints its dynamic CSS inline in wp_head, after this
 * stylesheet. On equal specificity GP would win, so these overrides are
 * deliberately qualified with body.hbfs to sit one class higher.
 */
body.hbfs,
body.hbfs .site-content,
body.hbfs .content-area,
body.hbfs .site-main,
body.hbfs .inside-article,
body.hbfs .entry-content,
body.hbfs.one-container .site-content,
body.hbfs.separate-containers .inside-article,
body.hbfs.separate-containers .site-main {
	background-color: var(--hbfs-black);
	background-image: none;
	box-shadow: none;
	border: 0;
}

body.hbfs .site-content,
body.hbfs .content-area,
body.hbfs .site-main,
body.hbfs .inside-article,
body.hbfs .entry-content {
	padding: 0;
	margin: 0;
	width: 100%;
	max-width: none;
}

/* Parent theme layout choices must never reserve a widget column. */
body.hbfs #right-sidebar,
body.hbfs #left-sidebar,
body.hbfs .widget-area.sidebar {
	display: none !important;
}

body.hbfs.right-sidebar .content-area,
body.hbfs.left-sidebar .content-area,
body.hbfs.both-sidebars .content-area {
	float: none;
	width: 100% !important;
	max-width: none;
}

/*
 * Only the CONTENT container is released to full width. The header keeps its
 * measured column — releasing it too is what pushed the logo to the far left
 * edge, out of line with every section below it.
 */
body.hbfs .site-content > .container,
body.hbfs .site-content > .grid-container {
	max-width: none;
	padding: 0;
}

/* Header sits in exactly the same column as the page content. */
body.hbfs .site-header .inside-header {
	/*
	 * Sections use a 1280px content column plus outer gutters. Include those
	 * gutters in the header's measured box so the logo and CTA align exactly
	 * with section text at every viewport width.
	 */
	max-width: calc(var(--hbfs-container) + (2 * var(--hbfs-gutter)));
	margin-inline: auto;
	padding-inline: var(--hbfs-gutter);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1.5rem, 4vw, 3rem);
	width: 100%;
}

/* Sections paint their own surface so nothing depends on the container. */
body.hbfs .hbfs-hero,
body.hbfs .hbfs-section {
	background-color: var(--hbfs-black);
}

body.hbfs .hbfs-section--charcoal {
	background-color: var(--hbfs-charcoal);
}

body.hbfs .hbfs-section--ivory {
	background-color: var(--hbfs-ivory-warm);
}

/* Buttons: GP's own button colours are printed inline and must be overridden. */
body.hbfs .wp-block-button__link,
body.hbfs .wp-block-button .wp-block-button__link {
	background-color: var(--hbfs-crimson);
	color: var(--hbfs-ivory);
	border-color: var(--hbfs-crimson);
}

body.hbfs .wp-block-button__link:hover,
body.hbfs .wp-block-button .wp-block-button__link:hover {
	background-color: var(--hbfs-crimson-deep);
	border-color: var(--hbfs-crimson-deep);
	color: var(--hbfs-ivory);
}

body.hbfs .hbfs-btn-ghost .wp-block-button__link {
	background-color: transparent;
	border-color: var(--hbfs-border);
	color: var(--hbfs-ivory);
}

body.hbfs .hbfs-btn-ghost .wp-block-button__link:hover {
	background-color: transparent;
	border-color: var(--hbfs-gold);
	color: var(--hbfs-gold);
}

body.hbfs .hbfs-section--ivory .hbfs-btn-ghost .wp-block-button__link {
	color: var(--hbfs-near-black);
	border-color: rgba(23, 23, 25, 0.25);
}

/*
 * The content wrapper is already full width above, so full-bleed sections need
 * no negative margins. Negative margins based on 100vw overflow by the width of
 * the scrollbar, which is what was pushing sections out of alignment.
 */
body.hbfs .entry-content > .alignfull,
body.hbfs .entry-content > .alignwide {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
	max-width: none;
}

/*
 * ONE measured column for the whole site.
 *
 * Every section is full-bleed for its background and imagery, but its content
 * sits in the same 1360px column with the same gutters. That shared left edge
 * is what makes the pages feel composed rather than drifting.
 */
body.hbfs .hbfs-section > *,
body.hbfs .hbfs-hero > .hbfs-hero__inner,
body.hbfs .hbfs-section__head,
body.hbfs .hbfs-section__foot {
	width: 100%;
	max-width: var(--hbfs-container);
	margin-inline: auto;
}

/* Media and decorative layers must stay full-bleed, not join the column. */
body.hbfs .hbfs-section > .hbfs-hero__media,
body.hbfs .hbfs-section > .hbfs-sectionbg,
body.hbfs .hbfs-section > .hbfs-scrim,
body.hbfs .hbfs-section > .hbfs-hero__rule {
	max-width: none;
	margin-inline: 0;
}

/* Nothing may cause a horizontal scrollbar. */
body.hbfs,
body.hbfs .site,
body.hbfs .site-content {
	overflow-x: clip;
	max-width: 100%;
}

body.hbfs * {
	min-width: 0;
}

/*
 * Page titles are suppressed on pages: every HBFS section pattern supplies its
 * own H1, so GP's title would create a second, competing one. Posts keep theirs.
 */
.hbfs.page .entry-header,
.hbfs.page .page-header,
.hbfs .page .entry-header .entry-title {
	display: none;
}

.hbfs .entry-content > *:last-child {
	margin-bottom: 0;
}

/* GP separator/footer defaults that fight the dark system. */
.hbfs .site-footer,
.hbfs .site-info {
	background: var(--hbfs-black);
	color: var(--hbfs-gray);
	border-top: 1px solid var(--hbfs-border);
}

/* --------------------------------------------------------------------------
   17b. Navigation, ivory-section behaviour and empty states
   -------------------------------------------------------------------------- */

/* Primary navigation, floated into the header beside the logo. */
body.hbfs .main-navigation {
	background: transparent;
	flex: 0 1 auto;
}

body.hbfs .main-navigation .inside-navigation {
	padding: 0;
	max-width: none;
}

body.hbfs .main-navigation .main-nav > ul {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: clamp(0.25rem, 1vw, 0.75rem);
}

/* Never inherit a parent-theme desktop rule that hides the primary menu. */
@media (min-width: 1101px) {
	body.hbfs .main-navigation,
	body.hbfs .main-navigation .main-nav,
	body.hbfs .main-navigation .main-nav > ul {
		display: flex !important;
		visibility: visible;
		opacity: 1;
	}
}

@media (max-width: 1100px) {
	body.hbfs .site-header .inside-header { padding: 0.75rem var(--hbfs-gutter); }
	body.hbfs .site-logo img { height: 34px; max-width: min(62vw, 230px); }
	body.hbfs .hbfs-nav-toggle { display: flex !important; align-items: center; min-height: 44px; padding: 0.5rem 0.7rem; cursor:pointer; }
	body.hbfs .main-navigation { display:none !important; }
	body.hbfs-nav-open .main-navigation { display:block !important; position:fixed; top:var(--hbfs-header-h); left:0; right:0; z-index:999; max-height:calc(100dvh - var(--hbfs-header-h)); overflow-y:auto; background:rgba(20,20,22,.98); border-top:1px solid var(--hbfs-border); padding:1rem var(--hbfs-gutter) 1.5rem; }
	body.hbfs-nav-open { overflow:hidden; }
	body.hbfs-nav-open .main-navigation .main-nav { display:flex !important; flex-direction:column; align-items:stretch; gap:0; }
	body.hbfs .main-navigation .main-nav li a { display:flex; align-items:center; min-height:48px; padding:.8rem 0; }
	body.hbfs .main-navigation .main-nav li.hbfs-nav-cta > a,
	body.hbfs .main-navigation .main-nav li.menu-cta > a { display:inline-flex; width:auto; margin:.75rem 0 0; padding:.8rem 1.2rem; }
	body.hbfs.hbfs-header-light .main-navigation .main-nav li.hbfs-nav-cta > a,
	body.hbfs.hbfs-header-light .main-navigation .main-nav li.menu-cta > a { color:var(--hbfs-ivory); }
}

.hbfs-prose { max-width: 820px; }
.hbfs-prose p { color: inherit; }
.hbfs-prose h2 { margin-top: 2.5rem; }
.hbfs-servicegrid, .hbfs-contactgrid { display: grid; gap: 1px; background: rgba(23,23,25,.14); margin-top: clamp(2rem,4vw,4rem); }
.hbfs-servicecard, .hbfs-contactgrid > div { background: var(--hbfs-ivory-warm); padding: clamp(1.5rem,3vw,2.75rem); }
.hbfs-servicecard h3 { margin: .8rem 0; color: var(--hbfs-near-black); }
.hbfs-servicecard p, .hbfs-contactgrid p { color: #47433e; }
.hbfs-textlink { color: var(--hbfs-crimson) !important; font-weight: 700; }
.hbfs-legalpage { padding-top: calc(var(--hbfs-header-h) + clamp(4rem,8vw,8rem)); min-height: 70vh; }
.hbfs-legalpage__updated { color: #716c65; font-size: .9rem; margin-bottom: 3rem; }
.hbfs-archivehero > div { width: 100%; max-width: var(--hbfs-container); margin-inline: auto; }
.hbfs-archivehero h1 { max-width: 20ch; }
.hbfs-archivehero p:last-child { max-width: 62ch; color: var(--hbfs-gray); }
.post-type-archive-hbfs_project .site-main, .post-type-archive-hbfs_venture .site-main, body.blog .site-main { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(1.25rem,2.5vw,2.5rem); padding: clamp(3rem,6vw,6rem) var(--hbfs-gutter); max-width: var(--hbfs-container); margin-inline: auto; }
.hbfs-archivecard { background: var(--hbfs-charcoal); border: 1px solid var(--hbfs-border); }
.hbfs-archivecard .inside-article { padding: 0; background: transparent; }
.hbfs-archivecard .post-image, .hbfs-archivecard .post-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin: 0; }
.hbfs-archivecard .entry-header, .hbfs-archivecard .entry-summary { display: block !important; padding: 0 1.5rem; }
.hbfs-archivecard .entry-header { padding-top: 1.5rem; }
.hbfs-archivecard .entry-summary { padding-bottom: 1.5rem; color: var(--hbfs-gray); }
@media (min-width: 700px) { .hbfs-servicegrid { grid-template-columns: repeat(2,minmax(0,1fr)); } .hbfs-contactgrid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 960px) { .post-type-archive-hbfs_project .site-main, .post-type-archive-hbfs_venture .site-main, body.blog .site-main { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .post-type-archive-hbfs_project .site-main, .post-type-archive-hbfs_venture .site-main, body.blog .site-main { grid-template-columns: 1fr; } }

/* v3.1 — photographic services, project inquiry and hardened global shell. */
.hbfs-container,
.hbfs-section > .hbfs-container,
.hbfs-hero__inner,
.hbfs-sitefooter__inner,
.hbfs-sitefooter__base {
	width: 100%;
	max-width: var(--hbfs-container);
	margin-inline: auto;
}
.hbfs-section { overflow: hidden; }
.hbfs-servicegrid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; background: transparent; }
.hbfs-servicecard--photo { padding: 0; overflow: hidden; background: #fff; border: 1px solid rgba(23,23,25,.12); box-shadow: 0 10px 35px rgba(23,23,25,.06); }
.hbfs-servicecard--photo > img { display:block; width:100%; height:clamp(180px,16vw,245px); object-fit:cover; transition:transform 700ms var(--hbfs-ease); }
.hbfs-servicecard--photo:hover > img { transform:scale(1.035); }
.hbfs-servicecard__body { padding:clamp(1.35rem,2.2vw,2rem); }
.hbfs-servicecard__body h3 { margin:0 0 .8rem; font-size:clamp(1.15rem,1.6vw,1.45rem); }
.hbfs-servicecard__body p { margin:0; }

.hbfs-inquiry { background:#e8e0d2; color:var(--hbfs-near-black); padding:var(--hbfs-section-y) var(--hbfs-gutter); }
.hbfs-inquiry__intro { max-width:760px; margin-bottom:clamp(2.5rem,5vw,4rem); }
.hbfs-inquiry__intro h2 { color:var(--hbfs-near-black); font-size:clamp(2rem,4.5vw,4rem); margin:.2rem 0 1rem; }
.hbfs-inquiry__intro p { color:#575149; }
.hbfs-projectform { background:#f9f6ef; border:1px solid rgba(23,23,25,.14); padding:clamp(1.5rem,4vw,3.5rem); box-shadow:0 20px 55px rgba(23,23,25,.08); }
.hbfs-formgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.35rem 1.5rem; }
.hbfs-formgrid label { display:flex; flex-direction:column; gap:.55rem; color:var(--hbfs-near-black); font-size:.82rem; font-weight:700; letter-spacing:.04em; }
.hbfs-formgrid label span { color:var(--hbfs-crimson); }
.hbfs-formgrid input,.hbfs-formgrid select,.hbfs-formgrid textarea { width:100%; border:1px solid #cbc2b5; border-radius:0; background:#fff; color:#171719; font:inherit; font-weight:400; letter-spacing:0; padding:.95rem 1rem; min-height:50px; }
.hbfs-formgrid textarea { resize:vertical; }
.hbfs-formgrid input:focus,.hbfs-formgrid select:focus,.hbfs-formgrid textarea:focus { border-color:var(--hbfs-gold); outline:2px solid rgba(195,154,71,.22); }
.hbfs-formgrid__wide { grid-column:1/-1; }
.hbfs-formnote { color:#6b665f; font-size:.85rem; margin:1.25rem 0; }
.hbfs-formsubmit { border:1px solid var(--hbfs-crimson); border-radius:0; background:var(--hbfs-crimson); color:#fff; padding:1rem 1.6rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.hbfs-formsubmit:hover { background:var(--hbfs-crimson-deep); }
.hbfs-honeypot { position:absolute!important; left:-9999px!important; }
.hbfs-formnotice { padding:1rem 1.2rem; margin:0 0 1.25rem; border:1px solid; }
.hbfs-formnotice--success { background:#edf7ed; border-color:#659665; color:#214b21; }
.hbfs-formnotice--error { background:#fff0f0; border-color:#b96b6b; color:#741e1e; }

.hbfs-sitefooter__inner--simple { grid-template-columns:minmax(0,1.6fr) minmax(220px,.7fr)!important; align-items:start; }
.hbfs-sitefooter .hbfs-footer__mark { width:auto; height:clamp(118px,10vw,156px); max-width:min(100%,560px); object-fit:contain; object-position:left center; margin-bottom:1.25rem; }
.hbfs-founderpage { padding-bottom:var(--hbfs-section-y)!important; }
.hbfs-founderpage__cols { margin-bottom:0!important; }
.hbfs-founderpage__media,.hbfs-founder__portrait { margin-bottom:0!important; }
.hbfs-section--charcoal::after,.hbfs-founderpage::after { display:none!important; }

@media(max-width:980px){.hbfs-servicegrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v3.7 — rich six-discipline services architecture. */
.hbfs-servicesintro { text-align: center; }
.hbfs-servicesintro .hbfs-display,
.hbfs-servicesintro .hbfs-lede,
.hbfs-servicescta p { margin-inline: auto; }
.hbfs-servicesintro .hbfs-lede { max-width: 68ch; }
.hbfs-serviceindex { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border:1px solid rgba(23,23,25,.16); margin-top:clamp(2rem,4vw,3.5rem); }
.hbfs-serviceindex a { padding:1.05rem .75rem; color:var(--hbfs-near-black); text-decoration:none; font-size:.82rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; border-right:1px solid rgba(23,23,25,.16); }
.hbfs-serviceindex a:last-child { border-right:0; }
.hbfs-serviceindex a:hover,.hbfs-serviceindex a:focus-visible { color:var(--hbfs-crimson); background:#fff; }
.hbfs-servicechapter { scroll-margin-top:100px; padding:clamp(5rem,9vw,8rem) 0; }
.hbfs-servicechapter--dark { background:var(--hbfs-charcoal); color:#fff; }
.hbfs-servicechapter--light { background:var(--hbfs-ivory-warm); color:var(--hbfs-near-black); }
.hbfs-servicechapter--accent { background:var(--hbfs-crimson); color:#fff; }
.hbfs-servicechapter--accent .hbfs-label,.hbfs-servicechapter--accent .hbfs-servicechapter__num { color:#f1cf9e; }
.hbfs-servicechapter__head { display:grid; grid-template-columns:minmax(70px,12%) minmax(0,1fr); gap:clamp(1.5rem,4vw,4rem); align-items:start; max-width:1040px; }
.hbfs-servicechapter__num { margin:0; font-size:clamp(2.4rem,6vw,5rem); font-weight:300; line-height:.9; color:var(--hbfs-gold); opacity:.8; }
.hbfs-servicechapter__head h2 { margin:.45rem 0 1.1rem; font-size:clamp(2rem,4.6vw,4.6rem); line-height:1.02; letter-spacing:-.04em; font-weight:400; }
.hbfs-servicechapter__head div>p:last-child { max-width:66ch; font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.75; opacity:.82; }
.hbfs-servicechapter__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:clamp(3rem,6vw,5rem); background:currentColor; border:1px solid currentColor; }
.hbfs-servicechapter__grid article { padding:clamp(1.5rem,3vw,2.6rem); background:var(--hbfs-charcoal); }
.hbfs-servicechapter--light .hbfs-servicechapter__grid article { background:var(--hbfs-ivory-warm); }
.hbfs-servicechapter--accent .hbfs-servicechapter__grid article { background:var(--hbfs-crimson); }
.hbfs-servicechapter__grid h3 { margin:0 0 .8rem; font-size:clamp(1.08rem,1.55vw,1.35rem); font-weight:500; }
.hbfs-servicechapter__grid p { margin:0; max-width:58ch; line-height:1.7; opacity:.78; }
.hbfs-servicescta { text-align:center; background:var(--hbfs-black); color:#fff; }
.hbfs-servicescta p { max-width:60ch; }
.hbfs-servicescta .hbfs-sitefooter__btn { display:inline-flex; margin-top:1.5rem; }
@media(max-width:900px){.hbfs-serviceindex{grid-template-columns:repeat(3,minmax(0,1fr))}.hbfs-serviceindex a:nth-child(3){border-right:0}.hbfs-serviceindex a:nth-child(-n+3){border-bottom:1px solid rgba(23,23,25,.16)}}
@media(max-width:620px){.hbfs-servicechapter__head{grid-template-columns:1fr}.hbfs-servicechapter__num{font-size:2rem}.hbfs-servicechapter__grid{grid-template-columns:1fr}.hbfs-serviceindex{grid-template-columns:repeat(2,minmax(0,1fr))}.hbfs-serviceindex a:nth-child(3){border-right:1px solid rgba(23,23,25,.16)}.hbfs-serviceindex a:nth-child(2n){border-right:0}.hbfs-serviceindex a:nth-child(-n+4){border-bottom:1px solid rgba(23,23,25,.16)}}
@media(max-width:680px){
	.hbfs-servicegrid,.hbfs-formgrid{grid-template-columns:1fr}
	.hbfs-formgrid__wide{grid-column:auto}
	.hbfs-sitefooter__inner--simple{grid-template-columns:1fr!important}
	.hbfs-servicecard--photo>img{height:210px}
	.hbfs-section,.hbfs-inquiry,.hbfs-sitefooter{padding-inline:1.25rem}
	.hbfs-sitefooter__rule{left:1.25rem;right:1.25rem}
	.hbfs-sitefooter .hbfs-footer__mark{height:118px;max-width:88vw;margin-bottom:1rem}
}

/* v3.2 mobile composition: intentional spacing, readable type and no overflow. */
@media (max-width: 680px) {
	:root {
		--hbfs-gutter: 1.25rem;
		--hbfs-section-y: clamp(3.75rem, 15vw, 5.25rem);
		--hbfs-header-h: 72px;
	}

	body.hbfs .site-header .inside-header {
		min-height: var(--hbfs-header-h);
		padding: 0.7rem var(--hbfs-gutter);
		gap: 0.75rem;
	}

	body.hbfs .site-logo img {
		height: 34px;
		max-width: min(66vw, 225px);
	}

	body.hbfs .hbfs-section,
	body.hbfs .hbfs-inquiry,
	body.hbfs .hbfs-sitefooter {
		padding-left: var(--hbfs-gutter);
		padding-right: var(--hbfs-gutter);
	}

	.hbfs-display,
	.hbfs-hero h1,
	.hbfs-archivehero h1 {
		font-size: clamp(2.15rem, 11.5vw, 3.4rem);
		line-height: 1.02;
		overflow-wrap: anywhere;
	}

	.hbfs-capgrid {
		grid-template-columns: 1fr;
		margin-top: 2rem;
	}

	.hbfs-cap {
		border-right: 0;
		padding: 1rem;
	}

	.hbfs-cap__media {
		aspect-ratio: 16 / 8.5;
	}

	.hbfs-sitefooter__base,
	.hbfs-sitefooter__legal {
		align-items: flex-start;
		flex-direction: column;
	}

	.hbfs-sitefooter__legal {
		gap: 0.7rem;
	}

	.hbfs-projectform {
		padding: 1.25rem;
	}

	.hbfs-formgrid input,
	.hbfs-formgrid select,
	.hbfs-formgrid textarea,
	.hbfs-formsubmit {
		font-size: 16px;
	}

	.hbfs-formsubmit {
		width: 100%;
		min-height: 50px;
	}
}

body.hbfs .main-navigation .main-nav ul li a {
	padding: 0.75rem 0.9rem;
	line-height: 1;
}

body.hbfs .main-navigation .main-nav ul li a::after {
	left: 0.9rem;
	right: 0.9rem;
	bottom: 0.4rem;
}

/* Persistent desktop CTA; on mobile it lives inside the opened menu only. */
body.hbfs .main-navigation .main-nav li.hbfs-nav-cta > a,
body.hbfs .main-navigation .main-nav li.menu-cta > a {
	background: var(--hbfs-crimson);
	color: var(--hbfs-ivory);
	padding: 0.8rem 1.4rem;
	margin-left: 0.6rem;
}

body.hbfs .main-navigation .main-nav li.hbfs-nav-cta > a:hover,
body.hbfs .main-navigation .main-nav li.menu-cta > a:hover {
	background: var(--hbfs-crimson-deep);
}

body.hbfs .menu-toggle {
	background: transparent;
	color: var(--hbfs-ivory);
}

/*
 * Sections on warm ivory: rules, timeline and cards must switch to the dark-on-
 * light palette or they vanish against the light ground.
 */
.hbfs-section--ivory .hbfs-journey__item {
	border-top-color: rgba(23, 23, 25, 0.14);
}

.hbfs-section--ivory .hbfs-journey__item::before {
	background: var(--hbfs-crimson);
}

.hbfs-section--ivory .hbfs-journey__marker {
	color: #8a6d2f;
}

.hbfs-section--ivory .hbfs-journey__body p {
	color: #47433e;
}

.hbfs-section--ivory .hbfs-num {
	color: #8a6d2f;
}

/* Venture cards read as black on the charcoal band, not charcoal on charcoal. */
.hbfs-section--charcoal .hbfs-venture {
	background: var(--hbfs-black);
}

.hbfs-section--charcoal .hbfs-venture:hover {
	background: #101013;
}

/* A tighter display size for section headings that are not the page opener. */
.hbfs-display--tight {
	font-size: clamp(1.7rem, 3.2vw, 2.75rem);
	max-width: 24ch;
}

/* Founder copy keeps a readable measure instead of running edge to edge. */
.hbfs-founder__panel {
	max-width: 620px;
}

.hbfs-founder__panel p,
.hbfs-founder__panel .hbfs-display {
	max-width: 34ch;
}

.hbfs-founder__panel .hbfs-display {
	font-size: clamp(1.8rem, 3.4vw, 3rem);
}

/*
 * Empty states: a section with nothing in it is worse than no section. Selected
 * Work hides itself until a project is marked "Feature on homepage", and the
 * same applies to the journey, ventures and journal bands.
 */
.hbfs-section--work:not(:has(.hbfs-work)),
.hbfs-section--journey:not(:has(.hbfs-journey)),
.hbfs-section--ventures:not(:has(.hbfs-ventures)),
.hbfs-section--journal:not(:has(.hbfs-journal)) {
	display: none;
}

/* --------------------------------------------------------------------------
   18. Editor parity
   -------------------------------------------------------------------------- */

.editor-styles-wrapper {
	background-color: var(--hbfs-black);
	color: var(--hbfs-ivory);
}

.editor-styles-wrapper .hbfs-reveal {
	opacity: 1;
	transform: none;
}

/* The editor body has no .hbfs class, so button styling is repeated here. */
.editor-styles-wrapper .wp-block-button__link {
	background: var(--hbfs-crimson);
	color: var(--hbfs-ivory);
	border: 1px solid var(--hbfs-crimson);
	border-radius: 0;
	padding: 1rem 2.1rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.editor-styles-wrapper .hbfs-btn-ghost .wp-block-button__link {
	background: transparent;
	border-color: var(--hbfs-border);
	color: var(--hbfs-ivory);
}

.editor-styles-wrapper .hbfs-section--ivory .hbfs-btn-ghost .wp-block-button__link {
	color: var(--hbfs-near-black);
	border-color: rgba(23, 23, 25, 0.25);
}

.hbfs-notice {
	padding: 1rem 1.25rem;
	border: 1px dashed var(--hbfs-gold);
	color: var(--hbfs-gold);
	font-size: 0.875rem;
}

/* v3.3 final cascade locks: legacy section/footer rules above must not flatten
   the new homepage colour rhythm or its three-column footer. */
body.hbfs .hbfs-section--project {
	background: linear-gradient(120deg,#721d26 0%,#a32935 55%,#6d1922 100%);
	color: var(--hbfs-ivory);
}

body.hbfs .hbfs-section--closing {
	background: #d8cdbd;
	color: var(--hbfs-near-black);
}

body.hbfs .hbfs-section--closing :is(h2,p) { color: var(--hbfs-near-black); }

/* Header social links live in their own quiet utility strip; never between the
   logo and navigation. */
body.hbfs .hbfs-utility {
	background:#0b0b0d;
	border-bottom:1px solid rgba(255,255,255,.09);
	min-height:34px;
}

body.hbfs .hbfs-utility__inner {
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:1.2rem;
	min-height:34px;
	font-size:.62rem;
	font-weight:600;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:#8f8b85;
}

body.hbfs .hbfs-utility .hbfs-social--header { margin:0; display:flex; gap:.35rem; }
body.hbfs .hbfs-utility .hbfs-social__link { width:25px; height:25px; border:0; color:#b8b3aa; }
body.hbfs .hbfs-utility .hbfs-social__link:hover { color:var(--hbfs-gold); background:transparent; }
body.hbfs .hbfs-utility .hbfs-social svg { width:13px; height:13px; }

/* Compact, intentional footer: brand / navigation / contact share one row. */
body.hbfs .hbfs-sitefooter { padding-top:clamp(3rem,5vw,4.5rem); padding-bottom:1.5rem; }
body.hbfs .hbfs-sitefooter__inner { gap:clamp(2.5rem,5vw,5rem); align-items:start; }
body.hbfs .hbfs-sitefooter__brand .hbfs-sitefooter__blurb { max-width:37rem; }
body.hbfs .hbfs-sitefooter__connect { align-self:start; }
body.hbfs .hbfs-sitefooter__base { margin-top:clamp(2.5rem,4vw,3.5rem); }
body.hbfs .hbfs-sitefooter__connect .hbfs-social { margin-top:1.2rem; }

/* CTA must remain readable even when an older cached section class is present. */
body.hbfs .hbfs-closing,
body.hbfs .hbfs-section--closing { background:#d8cdbd !important; }
body.hbfs .hbfs-closing :is(h2,p),
body.hbfs .hbfs-section--closing :is(h2,p) { color:#171719 !important; }

@media (min-width:861px) {
	body.hbfs .hbfs-sitefooter__inner.hbfs-sitefooter__inner--simple {
		grid-template-columns: minmax(0,1.5fr) minmax(180px,.55fr) minmax(220px,.65fr) !important;
	}
}

@media (min-width:1101px) {
	body.hbfs { --hbfs-header-h:118px; }
}

@media (max-width:1100px) {
	body.hbfs .hbfs-utility { display:none; }
}

/* v3.4 — Founder portrait and editorial typography. */
body.hbfs .hbfs-founderpage__cols {
	align-items:center;
	gap:clamp(2.5rem,5vw,5.5rem);
}
body.hbfs .hbfs-founderpage__cols > .wp-block-column:first-child { flex-basis:58%!important; }
body.hbfs .hbfs-founderpage__media { flex-basis:42%!important; align-self:center; }
body.hbfs .hbfs-founderpage .hbfs-display {
	font-size:clamp(2.35rem,3.35vw,3.35rem);
	font-weight:520;
	letter-spacing:-.035em;
}
body.hbfs .hbfs-founderpage p:not(.hbfs-label) {
	font-size:clamp(1rem,1.15vw,1.12rem);
	line-height:1.72;
	font-weight:390;
	color:#4f4a44;
}
body.hbfs .hbfs-founder__portrait {
	width:min(100%,480px)!important;
	height:auto!important;
	aspect-ratio:4/5!important;
	max-width:480px!important;
	margin:0 auto!important;
	overflow:hidden!important;
	background:#dcd6cd;
}
body.hbfs .hbfs-founder__portrait :is(img,.hbfs-img,.hbfs-founder__portraitimg) {
	display:block!important;
	width:100%!important;
	height:100%!important;
	min-height:0!important;
	max-height:none!important;
	aspect-ratio:auto!important;
	object-fit:cover!important;
	object-position:50% 18%!important;
}

/* v3.4 — Contact page: cinematic hero, practical form and integrated map. */
.hbfs-contacthero { position:relative; min-height:min(760px,78vh); display:grid; align-items:end; overflow:hidden; color:var(--hbfs-ivory); }
.hbfs-contacthero > .hbfs-img,.hbfs-contacthero > picture,.hbfs-contacthero > picture img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hbfs-contacthero__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,6,8,.9) 0%,rgba(6,6,8,.58) 48%,rgba(6,6,8,.14) 100%),linear-gradient(0deg,rgba(6,6,8,.78),transparent 55%); }
.hbfs-contacthero__inner { position:relative; z-index:2; padding-block:clamp(5rem,10vw,8rem); }
.hbfs-contacthero h1 { margin:.75rem 0 1.5rem; max-width:11ch; font-size:clamp(3.5rem,7.8vw,7.8rem); line-height:.86; letter-spacing:-.065em; font-weight:600; }
.hbfs-contacthero h1 span,.hbfs-contacthero h1 em { display:block; }
.hbfs-contacthero h1 em { color:var(--hbfs-gold); font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.hbfs-contacthero__inner > p:not(.hbfs-label) { max-width:38rem; color:rgba(247,243,235,.78); font-size:clamp(1.05rem,1.5vw,1.3rem); line-height:1.6; }
.hbfs-contacthero__jump { display:inline-flex; gap:1.25rem; margin-top:2rem; color:var(--hbfs-ivory); text-decoration:none; padding-bottom:.6rem; border-bottom:1px solid rgba(247,243,235,.45); }
.hbfs-contactstudio { background:#eee9e0; color:var(--hbfs-near-black); padding-block:clamp(5rem,9vw,9rem); }
.hbfs-contactstudio__head { display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(3rem,7vw,8rem); align-items:end; margin-bottom:clamp(3rem,6vw,6rem); }
.hbfs-contactstudio__head h2 { margin:.6rem 0 0; font-size:clamp(2.6rem,5vw,5.1rem); line-height:.98; letter-spacing:-.055em; }
.hbfs-contactstudio__head > p { color:#5b554e; line-height:1.75; }
.hbfs-contactstudio__layout { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); background:#171719; color:var(--hbfs-ivory); box-shadow:0 24px 70px rgba(25,20,15,.13); }
.hbfs-contactstudio__details { padding:clamp(2rem,4vw,4.5rem); background:linear-gradient(155deg,#7d202a 0%,#9e2935 55%,#641922 100%); }
.hbfs-contactdetail { display:grid; grid-template-columns:2.2rem 1fr; gap:1rem; padding:1.55rem 0; border-top:1px solid rgba(255,255,255,.2); }
.hbfs-contactdetail > span { color:rgba(255,255,255,.5); font-size:.68rem; letter-spacing:.12em; }
.hbfs-contactdetail p { margin:0 0 .45rem; color:rgba(255,255,255,.62); font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; }
.hbfs-contactdetail a,.hbfs-contactdetail address { color:#fff; font-style:normal; text-decoration:none; line-height:1.55; overflow-wrap:anywhere; }
.hbfs-contactstudio__note { margin-top:2rem; color:rgba(255,255,255,.68); font-size:.78rem; letter-spacing:.08em; }
.hbfs-contactstudio__form { padding:clamp(2rem,5vw,5rem); }
.hbfs-contactstudio__form h3 { margin:.5rem 0 2.5rem; color:var(--hbfs-ivory); font-size:clamp(1.9rem,3vw,3.2rem); letter-spacing:-.035em; }
.hbfs-contactstudio__form .hbfs-projectform { margin-top:0; }
.hbfs-contactstudio__form :is(label,.hbfs-formlabel) { color:rgba(255,255,255,.75); }
.hbfs-contactstudio__form :is(input,select,textarea) { color:#fff; background:transparent; border-color:rgba(255,255,255,.22); }
.hbfs-contactstudio__form :is(input,select,textarea):focus { border-color:var(--hbfs-gold); }
.hbfs-mapcard { display:grid; grid-template-columns:.68fr 1.32fr; min-height:430px; margin-top:clamp(2.5rem,5vw,5rem); background:#d8cdbd; overflow:hidden; }
.hbfs-mapcard__copy { padding:clamp(2rem,4vw,4rem); }
.hbfs-mapcard__copy h3 { margin:.65rem 0 1.2rem; font-size:clamp(2rem,3.6vw,3.8rem); line-height:1; letter-spacing:-.045em; }
.hbfs-mapcard__copy p { color:#585149; line-height:1.65; }
.hbfs-mapcard__copy a { display:inline-block; margin-top:1rem; color:var(--hbfs-near-black); font-weight:650; text-decoration:none; border-bottom:1px solid currentColor; }
.hbfs-mapcard iframe { width:100%; min-height:430px; height:100%; border:0; filter:grayscale(1) contrast(.92) sepia(.08); }

@media (max-width:860px) {
	body.hbfs .hbfs-founderpage__cols { display:block; }
	body.hbfs .hbfs-founder__portrait { max-width:390px!important; margin:2.5rem 0 0!important; }
	.hbfs-contacthero { min-height:620px; }
	.hbfs-contactstudio__head,.hbfs-contactstudio__layout,.hbfs-mapcard { grid-template-columns:1fr; }
	.hbfs-contactstudio__head { gap:1.5rem; }
	.hbfs-mapcard iframe { min-height:340px; }
}

@media (max-width:560px) {
	.hbfs-contacthero h1 { font-size:clamp(3rem,16vw,4.5rem); }
	.hbfs-contactstudio__form,.hbfs-contactstudio__details,.hbfs-mapcard__copy { padding:1.6rem; }
	.hbfs-contactstudio__form .hbfs-formgrid { grid-template-columns:1fr!important; }
	body.hbfs .hbfs-founder__portrait { width:100%!important; max-width:none!important; }
}

/* v3.5 — restored Contact hero, unified light contact surface, reference-scale footer. */
body.hbfs .hbfs-contacthero > .hbfs-hero__media,
body.hbfs .hbfs-contacthero > .hbfs-hero__media picture,
body.hbfs .hbfs-contacthero > .hbfs-hero__media img {
	position:absolute;
	inset:0;
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}
body.hbfs .hbfs-contacthero > .hbfs-hero__media { z-index:0; }
body.hbfs .hbfs-contacthero__shade { z-index:1; }
body.hbfs .hbfs-contacthero { min-height:min(720px,76vh); }
body.hbfs .hbfs-contacthero h1 { font-size:clamp(3.6rem,6.6vw,6.7rem); max-width:12ch; }

body.hbfs .hbfs-contactstudio { background:#f3efe8; padding-block:clamp(4.5rem,8vw,7.5rem); }
body.hbfs .hbfs-contactstudio__head { align-items:start; margin-bottom:clamp(2.5rem,5vw,4.5rem); }
body.hbfs .hbfs-contactstudio__head h2 { font-size:clamp(2.5rem,4.4vw,4.45rem); }
body.hbfs .hbfs-contactstudio__layout {
	grid-template-columns:minmax(300px,.65fr) minmax(0,1.35fr);
	gap:0;
	background:#fbf8f2;
	color:var(--hbfs-near-black);
	border:1px solid rgba(23,23,25,.1);
	box-shadow:0 24px 65px rgba(35,29,22,.09);
}
body.hbfs .hbfs-contactstudio__details {
	background:#e6ded2;
	color:var(--hbfs-near-black);
	border-right:1px solid rgba(23,23,25,.1);
}
body.hbfs .hbfs-contactdetail { border-top-color:rgba(23,23,25,.16); grid-template-columns:2.4rem minmax(0,1fr); }
body.hbfs .hbfs-contactdetail > p:empty { display:none!important; }
body.hbfs .hbfs-contactdetail > div { min-width:0; }
body.hbfs .hbfs-contactdetail > span { color:#9a2632; }
body.hbfs .hbfs-contactdetail p { color:#7c262f; }
body.hbfs .hbfs-contactdetail a,
body.hbfs .hbfs-contactdetail address {
	color:#262326;
	overflow-wrap:normal;
	word-break:normal;
	font-size:.98rem;
	letter-spacing:0;
	text-transform:none;
}
body.hbfs .hbfs-contactdetail a { white-space:nowrap; }
body.hbfs .hbfs-contactstudio__note { color:#6a625a; }
body.hbfs .hbfs-contactstudio__form { background:#fbf8f2; }
body.hbfs .hbfs-contactstudio__form h3 { color:var(--hbfs-near-black); }
body.hbfs .hbfs-contactstudio__form :is(label,.hbfs-formlabel) { color:#514b45; }
body.hbfs .hbfs-contactstudio__form :is(input,select,textarea) {
	color:#262326;
	background:rgba(255,255,255,.52);
	border-color:rgba(23,23,25,.22);
}
body.hbfs .hbfs-contactstudio__form :is(input,select,textarea)::placeholder { color:#8a837b; opacity:1; }
body.hbfs .hbfs-contactstudio__form :is(input,select,textarea):focus { border-color:#9a2632; box-shadow:0 1px 0 #9a2632; }
body.hbfs .hbfs-mapcard {
	grid-template-columns:.62fr 1.38fr;
	gap:24px;
	padding:24px;
	margin-top:clamp(2.5rem,5vw,4.5rem);
	background:#e6ded2;
	border:1px solid rgba(23,23,25,.1);
	box-shadow:0 18px 50px rgba(35,29,22,.07);
}
body.hbfs .hbfs-mapcard__copy { padding:clamp(1.5rem,3vw,3.25rem); }
body.hbfs .hbfs-mapcard > p { display:flex; min-width:0; margin:0; }
body.hbfs .hbfs-mapcard iframe { display:block; flex:1 1 auto; margin:0; width:100%; height:auto; min-height:430px; border-radius:2px; }

body.hbfs .hbfs-sitefooter { background:#0b1016; padding:0!important; color:rgba(255,255,255,.58); }
body.hbfs .hbfs-sitefooter__rule { display:none; }
body.hbfs .hbfs-sitefooter__inner,
body.hbfs .hbfs-sitefooter__inner.hbfs-sitefooter__inner--simple {
	width:min(calc(100% - 80px),1280px);
	margin:0 auto;
	padding:72px 0 60px;
	display:grid;
	grid-template-columns:minmax(260px,1.25fr) minmax(120px,.55fr) minmax(150px,.7fr) minmax(180px,.75fr)!important;
	gap:clamp(2rem,4vw,4.5rem)!important;
}
body.hbfs .hbfs-sitefooter .hbfs-footer__mark { height:92px!important; width:auto!important; max-width:300px!important; margin:0 0 1.5rem!important; object-position:left center; }
body.hbfs .hbfs-sitefooter__blurb { max-width:300px!important; margin:0 0 1rem; color:rgba(255,255,255,.72); font-size:15px!important; line-height:1.75!important; font-weight:300!important; }
body.hbfs .hbfs-sitefooter .hbfs-label { margin:0 0 .85rem; color:#ba9042!important; font-size:10px!important; line-height:1.1!important; font-weight:500!important; letter-spacing:.08em; }
body.hbfs .hbfs-sitefooter__brand > .hbfs-label { margin-top:1rem; color:rgba(255,255,255,.42)!important; font-size:10px!important; }
body.hbfs .hbfs-footer__menu { display:block!important; margin:0!important; padding:0!important; list-style:none!important; }
body.hbfs .hbfs-footer__menu li { margin:0 0 .3rem!important; padding:0!important; }
body.hbfs .hbfs-footer__menu a,
body.hbfs .hbfs-sitefooter__email,
body.hbfs .hbfs-sitefooter__connect > p:not(.hbfs-label) {
	color:rgba(255,255,255,.7)!important;
	font-size:14.5px!important;
	line-height:1.7!important;
	font-weight:300!important;
}
body.hbfs .hbfs-sitefooter__connect > p:not(.hbfs-label) { margin:.4rem 0; }
body.hbfs .hbfs-sitefooter__connect .hbfs-social { margin-top:1rem; }
body.hbfs .hbfs-sitefooter__base {
	width:min(calc(100% - 80px),1280px);
	margin:0 auto!important;
	padding:28px 0 34px;
	border-top:1px solid rgba(255,255,255,.12);
	display:grid;
	grid-template-columns:1fr auto 1fr;
	align-items:center;
	gap:2rem;
	color:rgba(255,255,255,.42);
}
body.hbfs .hbfs-sitefooter__base p,
body.hbfs .hbfs-sitefooter__base a { font-size:12.5px!important; line-height:1.5!important; font-weight:300!important; }
body.hbfs .hbfs-sitefooter__legal { justify-self:center; }
body.hbfs .hbfs-sitefooter__credit { justify-self:end; text-align:right; }

@media (max-width:980px) {
	body.hbfs .hbfs-sitefooter__inner,
	body.hbfs .hbfs-sitefooter__inner.hbfs-sitefooter__inner--simple { grid-template-columns:1.25fr .75fr .9fr!important; }
	body.hbfs .hbfs-sitefooter__services { display:none; }
	body.hbfs .hbfs-contactstudio__layout { grid-template-columns:1fr; }
	body.hbfs .hbfs-contactstudio__details { border-right:0; border-bottom:1px solid rgba(23,23,25,.1); }
}
@media (max-width:700px) {
	body.hbfs .hbfs-contacthero { min-height:600px; }
	body.hbfs .hbfs-contacthero__inner { padding-block:4.5rem 3.75rem; }
	body.hbfs .hbfs-contactstudio__details { padding:1.6rem; }
	body.hbfs .hbfs-contactdetail { grid-template-columns:2rem minmax(0,1fr); gap:.75rem; }
	body.hbfs .hbfs-contactdetail a,
	body.hbfs .hbfs-contactdetail address { font-size:1rem; line-height:1.55; }
	body.hbfs .hbfs-contactdetail address { max-width:24ch; }
	body.hbfs .hbfs-mapcard { grid-template-columns:1fr; }
	body.hbfs .hbfs-mapcard { gap:18px; padding:18px; }
	body.hbfs .hbfs-mapcard__copy { padding:1.35rem .35rem .5rem; }
	body.hbfs .hbfs-mapcard iframe { margin:0; width:100%; min-height:330px; }
	body.hbfs .hbfs-sitefooter__inner,
	body.hbfs .hbfs-sitefooter__base { width:min(calc(100% - 40px),1280px); }
	body.hbfs .hbfs-sitefooter__inner,
	body.hbfs .hbfs-sitefooter__inner.hbfs-sitefooter__inner--simple { grid-template-columns:1fr 1fr!important; padding:52px 0 42px; }
	body.hbfs .hbfs-sitefooter__brand { grid-column:1/-1; }
	body.hbfs .hbfs-sitefooter__base { grid-template-columns:1fr; gap:.75rem; }
	body.hbfs .hbfs-sitefooter__legal,
	body.hbfs .hbfs-sitefooter__credit { justify-self:start; text-align:left; }
}
@media (max-width:460px) {
	body.hbfs .hbfs-sitefooter__inner,
	body.hbfs .hbfs-sitefooter__inner.hbfs-sitefooter__inner--simple { grid-template-columns:1fr!important; }
	body.hbfs .hbfs-sitefooter__brand { grid-column:auto; }
}

img.hbfs-protected-image {
	-webkit-user-drag:none;
	-webkit-user-select:none;
	user-select:none;
}

/* v3.6 — four restrained hero signatures, isolated from content and controls. */
.hbfs-hero,
.hbfs-contacthero { isolation:isolate; }
.hbfs-hero-fx {
	position:absolute;
	inset:0;
	z-index:2;
	pointer-events:none;
	overflow:hidden;
	opacity:1;
	transition:opacity .6s ease;
}
.hbfs-hero-fx canvas { display:block; width:100%; height:100%; }
.hbfs-hero-fx.is-finished { opacity:0; }
.hbfs-hero > :not(.hbfs-hero__media):not(.hbfs-hero-fx),
.hbfs-contacthero > :not(.hbfs-hero__media):not(.hbfs-hero-fx):not(.hbfs-contacthero__shade) { position:relative; z-index:3; }
.hbfs-contacthero__shade { z-index:1!important; }
.hbfs-filmbeam {
	position:absolute;
	top:-35%;
	left:-42%;
	width:34%;
	height:175%;
	transform:rotate(11deg);
	background:linear-gradient(90deg,transparent,rgba(255,232,178,.06) 25%,rgba(255,242,211,.3) 52%,rgba(255,224,159,.04) 78%,transparent);
	filter:blur(7px);
	animation:hbfs-film-sweep 2.55s cubic-bezier(.22,.65,.3,1) both;
}
.hbfs-filmflare {
	position:absolute;
	top:45%;
	left:-12%;
	width:14rem;
	height:14rem;
	border-radius:50%;
	background:radial-gradient(circle,rgba(255,244,215,.56) 0,rgba(201,142,60,.14) 22%,transparent 67%);
	filter:blur(2px);
	animation:hbfs-flare-pass 2.55s ease-out both;
}
.hbfs-filmgrain { position:absolute; inset:0; opacity:.08; background-image:repeating-radial-gradient(circle at 17% 31%,rgba(255,255,255,.5) 0 1px,transparent 1px 4px); background-size:7px 7px; animation:hbfs-grain 1.8s steps(5,end) both; }
@keyframes hbfs-film-sweep { 0%{transform:translateX(0) rotate(11deg);opacity:0} 16%{opacity:1} 82%{opacity:.8} 100%{transform:translateX(470%) rotate(11deg);opacity:0} }
@keyframes hbfs-flare-pass { 0%{transform:translateX(0) scale(.55);opacity:0} 22%{opacity:.7} 100%{transform:translateX(760%) scale(1.1);opacity:0} }
@keyframes hbfs-grain { 0%{transform:translate(0);opacity:0} 18%{opacity:.08} 42%{transform:translate(-1%,1%)} 72%{transform:translate(1%,-1%)} 100%{opacity:0} }
@media (max-width:700px) {
	.hbfs-filmbeam { width:48%; opacity:.72; }
	.hbfs-filmflare { width:9rem; height:9rem; }
}
@media (prefers-reduced-motion:reduce) {
	.hbfs-hero-fx { display:none!important; }
}

/* --------------------------------------------------------------------------
   v6.5 final feedback consolidation — black / white / HBFS red only
   -------------------------------------------------------------------------- */
:root { --hbfs-gold:#b51f34; }
body.hbfs .hbfs-label--gold,
body.hbfs .hbfs-label { color:#b51f34!important; }
body.hbfs :is(.hbfs-masterhero,.hbfs-contacthero,.hbfs-section--charcoal,.hbfs-masterprocess,.hbfs-masterproposal) .hbfs-label { color:#fff!important; opacity:.78; }

/* Calm motion behind selected dark sections, with no new palette colour. */
body.hbfs :is(.hbfs-masterprocess,.hbfs-platforms,.hbfs-section--charcoal,.hbfs-serviceprocess) { position:relative; isolation:isolate; overflow:hidden; }
body.hbfs :is(.hbfs-masterprocess,.hbfs-platforms,.hbfs-section--charcoal,.hbfs-serviceprocess)::before {
	content:''; position:absolute; z-index:-1; width:min(58vw,760px); aspect-ratio:1; right:-18%; bottom:-52%;
	border:1px solid rgba(255,255,255,.1); border-radius:50%; box-shadow:0 0 0 44px rgba(255,255,255,.025),0 0 0 92px rgba(181,31,52,.055);
	animation:hbfs-orbit-drift 16s ease-in-out infinite alternate; pointer-events:none;
}
@keyframes hbfs-orbit-drift { to { transform:translate3d(-7%,-6%,0) rotate(12deg) scale(1.04); } }

/* Two-column introductions share one top axis. */
body.hbfs :is(.hbfs-contactstudio__head,.hbfs-servicesgateway__intro,.hbfs-clients__heading) { align-items:start!important; }
body.hbfs :is(.hbfs-contactstudio__head,.hbfs-servicesgateway__intro,.hbfs-clients__heading) > p { align-self:start!important; margin-top:0!important; padding-top:0!important; }

/* Ayesha: artwork remains proportional and aligns to the editorial copy—not a stretched panel. */
body.hbfs .hbfs-homefeature__grid { align-items:center!important; }
body.hbfs .hbfs-homefeature__media,
body.hbfs .hbfs-homefeature__media .hbfs-mastermedia { display:block!important; min-height:0!important; }
body.hbfs .hbfs-homefeature__media img { width:100%!important; height:auto!important; min-height:0!important; max-height:560px; aspect-ratio:4/3!important; object-fit:cover; }

/* Services gateway becomes an alternating editorial sequence with larger imagery. */
body.hbfs .hbfs-servicesgateway__grid { display:grid; grid-template-columns:1fr!important; gap:0!important; }
body.hbfs .hbfs-serviceportal { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); min-height:430px; background:#0d0e10!important; }
body.hbfs .hbfs-serviceportal:nth-child(even) .hbfs-serviceportal__media { order:2; }
body.hbfs .hbfs-serviceportal:nth-child(4n+3),
body.hbfs .hbfs-serviceportal:nth-child(4n+4) { background:#18191c!important; }
body.hbfs .hbfs-serviceportal__media,
body.hbfs .hbfs-serviceportal__media .hbfs-mastermedia { height:100%; }
body.hbfs .hbfs-serviceportal__media img { width:100%; height:100%; min-height:430px; aspect-ratio:auto!important; object-fit:cover; cursor:zoom-in; }
body.hbfs .hbfs-serviceportal__body { display:flex; flex-direction:column; justify-content:center; padding:clamp(34px,5vw,72px)!important; }
body.hbfs .hbfs-serviceportal__body strong,
body.hbfs .hbfs-cap__title::after { color:#d52c43!important; background:#d52c43!important; }

/* Consistent two-tone editorial typography across page types. */
body.hbfs :is(.hbfs-masterhero,.hbfs-contacthero,.hbfs-hero) h1 em,
body.hbfs :is(.hbfs-mastersection,.hbfs-masterprocess,.hbfs-masterdetails,.hbfs-masterproposal,.hbfs-servicesgateway,.hbfs-contactstudio) h2 em { color:#d52c43!important; font-family:Georgia,'Times New Roman',serif; font-weight:400; }
body.hbfs .hbfs-masterhero h1 span { display:block; color:#fff; }
body.hbfs .hbfs-masterhero h1 em { display:block; margin-top:.08em; font-size:.72em; line-height:1.02; }

/* Compact, left-aligned desktop submenu: text determines the visual width. */
@media (min-width:1101px) {
	body.hbfs .main-navigation .menu-item-has-children > .sub-menu {
		left:0!important; right:auto!important; width:max-content!important; min-width:166px!important; max-width:190px!important;
		transform:none!important; padding:6px!important; text-align:left!important;
	}
	body.hbfs .main-navigation .sub-menu a { padding:7px 11px!important; font-size:.675rem!important; text-align:left!important; white-space:nowrap!important; }
	body.hbfs .main-navigation .sub-menu a::before { display:none!important; }
}

/* Hero photography settles in with a restrained zoom on every page load. */
body.hbfs [data-hero-signature] :is(.hbfs-mastermedia,.hbfs-hero__media) img,
body.hbfs [data-hero-signature] > img { animation:hbfs-hero-zoom 7s cubic-bezier(.18,.7,.2,1) both; }
@keyframes hbfs-hero-zoom { from { transform:scale(1.065); } to { transform:scale(1); } }

/* Client wall uses a brand colour and never an unrelated yellow/blue surface. */
body.hbfs .hbfs-clients { background:#fff!important; color:#111!important; border-color:#dedede!important; }
body.hbfs .hbfs-clients .hbfs-label { color:#b51f34!important; }
body.hbfs .hbfs-clients__heading h2 { color:#111!important; }
body.hbfs .hbfs-clients__heading > p { color:#555!important; }
body.hbfs .hbfs-clients__arrow { background:#b51f34!important; color:#fff!important; border-color:#b51f34!important; }
body.hbfs .hbfs-clients__arrow:hover { background:#111!important; }

/* Footer brand alignment corrects transparent padding inside the source PNG. */
body.hbfs .hbfs-sitefooter__brand { overflow:hidden; text-align:left!important; }
body.hbfs .hbfs-sitefooter .hbfs-footer__mark { height:82px!important; max-width:270px!important; margin:0 0 1.15rem -16px!important; transform:scale(.9); transform-origin:left center; object-position:left center!important; }
body.hbfs .hbfs-sitefooter__tagline,
body.hbfs .hbfs-sitefooter__blurb { margin-left:0!important; text-align:left!important; }
body.hbfs .hbfs-sitefooter__credit { justify-self:end!important; text-align:right!important; }
body.hbfs .hbfs-contactline { display:grid!important; grid-template-columns:22px 1fr; gap:10px; align-items:start; margin:.55rem 0!important; color:rgba(255,255,255,.76)!important; font-size:.88rem; line-height:1.55; text-decoration:none; }
body.hbfs .hbfs-contactline > span:first-child { color:#d52c43; font-size:1rem; line-height:1.35; text-align:center; }
body.hbfs .hbfs-contactline--address { font-style:normal; }
body.hbfs .hbfs-sitefooter__locations { margin:1rem 0!important; color:#d52c43!important; font-size:.72rem!important; letter-spacing:.075em; text-transform:uppercase; }
body.hbfs .hbfs-sitefooter__connect .hbfs-social { margin-top:1.1rem!important; }

/* Full-screen editorial image viewer. */
body.hbfs-lightbox-open { overflow:hidden; }
.hbfs-lightbox { display:none; position:fixed; inset:0; z-index:100000; place-items:center; padding:clamp(18px,4vw,56px); background:rgba(0,0,0,.94); }
.hbfs-lightbox.is-open { display:grid; }
.hbfs-lightbox__stage { max-width:min(92vw,1500px); max-height:88vh; text-align:center; }
.hbfs-lightbox__stage img { display:block; max-width:100%; max-height:80vh; margin:auto; object-fit:contain; user-select:none; }
.hbfs-lightbox__stage p { margin:.8rem 0 0; color:rgba(255,255,255,.62); font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; }
.hbfs-lightbox__close { position:absolute; top:20px; right:24px; width:44px; height:44px; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:transparent; color:#fff; font-size:1.8rem; cursor:pointer; }
body.hbfs :is(.hbfs-mastersection,.hbfs-servicesgateway,.hbfs-cap__media) img.hbfs-protected-image { cursor:zoom-in; }

@media (max-width:820px) {
	body.hbfs .hbfs-serviceportal { grid-template-columns:1fr; min-height:0; }
	body.hbfs .hbfs-serviceportal:nth-child(even) .hbfs-serviceportal__media { order:0; }
	body.hbfs .hbfs-serviceportal__media img { min-height:0; height:auto; aspect-ratio:16/10!important; }
	body.hbfs .hbfs-sitefooter__credit { justify-self:start!important; text-align:left!important; }
}
@media (prefers-reduced-motion:reduce) {
	body.hbfs :is(.hbfs-masterprocess,.hbfs-platforms,.hbfs-section--charcoal,.hbfs-serviceprocess)::before,
	body.hbfs [data-hero-signature] :is(.hbfs-mastermedia,.hbfs-hero__media) img { animation:none!important; }
}

/* --------------------------------------------------------------------------
   2026 v6.2 coherence layer
   One container, one spacing rhythm and resilient content visibility.
   -------------------------------------------------------------------------- */

/* Content must never disappear if an observer, cache or deferred script fails. */
body.hbfs .hbfs-reveal,
body.hbfs .hbfs-reveal.is-revealed { opacity:1; transform:none; }

/* Main navigation: Art Collection is top-level; dropdowns read as real panels. */
body.hbfs .main-navigation .sub-menu {
	width:270px;
	min-width:270px;
	padding:8px!important;
	background:linear-gradient(145deg,rgba(17,18,21,.99),rgba(32,28,29,.99));
	border:1px solid rgba(194,154,82,.32);
	border-top:3px solid var(--hbfs-gold);
	border-radius:0 0 8px 8px;
	box-shadow:0 20px 48px rgba(0,0,0,.42);
}
body.hbfs .main-navigation .sub-menu a {
	padding:8px 11px!important;
	border-bottom:1px solid rgba(255,255,255,.07);
	font-size:.72rem;
	line-height:1.25;
	letter-spacing:.075em;
}
body.hbfs .main-navigation .sub-menu li:last-child a { border-bottom:0; }
body.hbfs .main-navigation .sub-menu a:hover,
body.hbfs .main-navigation .sub-menu a:focus { background:rgba(194,154,82,.09); color:#fff!important; box-shadow:inset 2px 0 0 var(--hbfs-gold); transform:none; }

/* Homepage complete capability system. */
body.hbfs .hbfs-capgrid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; }
body.hbfs .hbfs-cap__media,
body.hbfs .hbfs-cap__media .hbfs-mastermedia { min-height:0; height:auto; margin:0; background:#292724; }
body.hbfs .hbfs-cap__media img { width:100%; aspect-ratio:4/3; object-fit:cover; }

.hbfs-homefeature { padding:clamp(76px,9vw,138px) 0; background:#141416; color:#f7f2e9; }
.hbfs-homefeature__grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr); gap:clamp(44px,7vw,110px); align-items:center; }
.hbfs-homefeature__media .hbfs-mastermedia { margin:0; min-height:0; }
.hbfs-homefeature__media img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.hbfs-homefeature__copy h2 { margin:.35em 0 .45em; max-width:720px; font-size:clamp(2.4rem,4.8vw,5rem); line-height:1; letter-spacing:-.045em; font-weight:430; }
.hbfs-homefeature__copy>p:not(.hbfs-label):not(.hbfs-textlink) { max-width:62ch; font-size:1.08rem; line-height:1.8; color:rgba(247,242,233,.76); }

.hbfs-platformgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:clamp(42px,6vw,80px); background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); }
body.hbfs .hbfs-section--ventures:has(.hbfs-platformgrid) { display:block!important; }
.hbfs-platformcard { padding:clamp(28px,4vw,52px); background:var(--hbfs-charcoal); }
.hbfs-platformcard h3 { margin:.4rem 0 .8rem; font-size:clamp(1.6rem,2.6vw,2.65rem); font-weight:450; color:#fff; }
.hbfs-platformcard>p:last-child { max-width:58ch; color:rgba(255,255,255,.68); line-height:1.7; }
.hbfs-platformcard__logo .hbfs-mastermedia { width:min(100%,320px); min-height:0; margin:0 0 28px; background:#080b0f; }
.hbfs-platformcard__logo img { width:100%; height:auto; object-fit:contain; }

/* Rich Services gateway. */
.hbfs-servicesgateway { padding:clamp(78px,9vw,140px) 0; background:#f2ede4; color:#19191b; }
.hbfs-servicesgateway__intro { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.65fr); gap:clamp(36px,7vw,100px); align-items:end; margin-bottom:clamp(50px,7vw,90px); }
.hbfs-servicesgateway__intro h2 { margin:.35em 0 0; font-size:clamp(2.5rem,5vw,5.4rem); line-height:.98; letter-spacing:-.05em; font-weight:420; }
.hbfs-servicesgateway__intro>p { margin:0; max-width:58ch; line-height:1.75; color:#5d5953; }
.hbfs-servicesgateway__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(22px,3vw,38px); }
.hbfs-serviceportal { position:relative; overflow:hidden; background:#171719; color:#fff; }
.hbfs-serviceportal>a { position:absolute; inset:0; z-index:3; }
.hbfs-serviceportal__media .hbfs-mastermedia { min-height:0; margin:0; }
.hbfs-serviceportal__media img { width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .7s var(--hbfs-ease); }
.hbfs-serviceportal:hover .hbfs-serviceportal__media img { transform:scale(1.035); }
.hbfs-serviceportal__body { position:relative; padding:clamp(24px,3.5vw,44px); }
.hbfs-serviceportal__body>span { position:absolute; right:clamp(24px,3.5vw,44px); top:clamp(24px,3.5vw,44px); color:var(--hbfs-gold); font-size:.78rem; letter-spacing:.18em; }
.hbfs-serviceportal__body h3 { max-width:16ch; margin:.45rem 0 .8rem; font-size:clamp(1.7rem,3vw,3rem); line-height:1.05; letter-spacing:-.035em; font-weight:430; }
.hbfs-serviceportal__body>p:not(.hbfs-label) { max-width:54ch; color:rgba(255,255,255,.66); line-height:1.65; }
.hbfs-serviceportal__body strong { display:block; margin-top:22px; color:var(--hbfs-gold); font-size:.78rem; letter-spacing:.09em; text-transform:uppercase; }
.hbfs-serviceprocess { padding:clamp(76px,9vw,136px) 0; background:#151517; color:#fff; }
.hbfs-serviceprocess h2 { max-width:900px; margin:.35em 0 1em; font-size:clamp(2.5rem,5vw,5.2rem); line-height:.98; letter-spacing:-.045em; font-weight:420; }
.hbfs-serviceprocess__steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.18); }
.hbfs-serviceprocess__steps article { padding:28px 24px 24px 0; border-right:1px solid rgba(255,255,255,.12); }
.hbfs-serviceprocess__steps span { color:var(--hbfs-gold); }
.hbfs-serviceprocess__steps h3 { margin:1.25rem 0 .7rem; font-size:1.25rem; }
.hbfs-serviceprocess__steps p { color:rgba(255,255,255,.62); line-height:1.6; }

/* Reusable proposal section: one centered axis and controlled measure. */
body.hbfs .hbfs-masterproposal { padding:clamp(76px,8vw,128px) var(--hbfs-gutter); text-align:center; }
body.hbfs .hbfs-masterproposal .hbfs-container { width:100%; max-width:1180px; margin-inline:auto; padding-inline:0; }
body.hbfs .hbfs-masterproposal .hbfs-label { margin-inline:auto; text-align:center; }
body.hbfs .hbfs-masterproposal h2 { max-width:1100px; margin:.35em auto .45em; font-size:clamp(2.75rem,5.5vw,5.6rem); line-height:1; text-wrap:balance; }
body.hbfs .hbfs-masterproposal p:not(.hbfs-label) { max-width:760px; margin:0 auto 34px; font-size:clamp(1rem,1.45vw,1.22rem); text-wrap:balance; }

/* Footer/client wall are one deliberate closing system. */
body.hbfs .hbfs-clients { border-bottom:1px solid rgba(255,255,255,.1); }
body.hbfs .hbfs-sitefooter .hbfs-footer__mark { width:min(100%,410px)!important; height:auto!important; max-height:none!important; margin:0 0 28px!important; object-fit:contain; object-position:left center; }
body.hbfs .hbfs-sitefooter__blurb { max-width:43ch; font-size:1rem; line-height:1.7; color:rgba(247,243,235,.72); }
body.hbfs .hbfs-sitefooter__relationship { width:min(100% - (2 * var(--hbfs-gutter)),1280px); margin:0 auto; padding:0 0 34px; color:rgba(247,243,235,.46); font-size:.76rem; }
body.hbfs .hbfs-sitefooter__nav .hbfs-footer__menu,
body.hbfs .hbfs-sitefooter__services .hbfs-footer__menu { display:flex!important; flex-direction:column; gap:0!important; margin:12px 0 0!important; padding:0!important; }
body.hbfs .hbfs-sitefooter__nav .hbfs-footer__menu li,
body.hbfs .hbfs-sitefooter__services .hbfs-footer__menu li { margin:0!important; padding:0!important; line-height:1!important; }
body.hbfs .hbfs-sitefooter__nav .hbfs-footer__menu a,
body.hbfs .hbfs-sitefooter__services .hbfs-footer__menu a { display:block; padding:5px 0!important; line-height:1.25!important; }

/* Services closing CTA: compact and deliberately connected to the footer. */
body.hbfs .hbfs-servicescta { padding:clamp(72px,7vw,112px) var(--hbfs-gutter)!important; min-height:0!important; }
body.hbfs .hbfs-servicescta .hbfs-container { max-width:1060px; margin-inline:auto; padding-inline:0; }
body.hbfs .hbfs-servicescta .hbfs-label { margin:0 auto 22px; }
body.hbfs .hbfs-servicescta .hbfs-display { max-width:980px; margin:0 auto; font-size:clamp(2.5rem,5vw,5.2rem); line-height:1.02; letter-spacing:-.045em; text-wrap:balance; }
body.hbfs .hbfs-servicescta .hbfs-sitefooter__btn { margin-top:34px; }

@media (max-width:1100px) {
	body.hbfs .hbfs-capgrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.hbfs-serviceprocess__steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
	.hbfs-homefeature__grid,.hbfs-servicesgateway__intro { grid-template-columns:1fr; }
	.hbfs-platformgrid,.hbfs-servicesgateway__grid { grid-template-columns:1fr; }
	body.hbfs .hbfs-capgrid { grid-template-columns:1fr; }
	.hbfs-serviceprocess__steps { grid-template-columns:1fr; }
	body.hbfs .main-navigation .sub-menu { width:auto; min-width:0; border:0; border-left:2px solid var(--hbfs-gold); border-radius:0; box-shadow:none; }
}

/* --------------------------------------------------------------------------
   v6.3 final UI/UX consolidation
   -------------------------------------------------------------------------- */

/* Compact futuristic service flyout: readable without becoming a mega-menu. */
body.hbfs .main-navigation .menu-item-has-children > .sub-menu {
	width:248px!important;
	min-width:248px!important;
	padding:10px!important;
	background:linear-gradient(155deg,rgba(12,16,22,.98),rgba(28,23,28,.98))!important;
	border:1px solid rgba(210,170,92,.28)!important;
	border-top:2px solid var(--hbfs-gold)!important;
	border-radius:0 0 12px 12px!important;
	box-shadow:0 28px 70px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.04)!important;
	backdrop-filter:blur(18px);
}
body.hbfs .main-navigation .sub-menu li + li { margin-top:2px!important; }
body.hbfs .main-navigation .sub-menu a {
	position:relative;
	padding:9px 12px 9px 20px!important;
	border:0!important;
	border-radius:6px;
	font-size:.69rem!important;
	line-height:1.22!important;
	letter-spacing:.075em!important;
	transition:background .2s ease,color .2s ease,transform .2s ease!important;
}
body.hbfs .main-navigation .sub-menu a::before {
	content:''; position:absolute; left:8px; top:50%; width:4px; height:4px;
	border-radius:50%; background:var(--hbfs-gold); opacity:.42; transform:translateY(-50%);
}
body.hbfs .main-navigation .sub-menu a:hover,
body.hbfs .main-navigation .sub-menu a:focus {
	background:linear-gradient(90deg,rgba(194,154,82,.16),rgba(194,154,82,.035))!important;
	box-shadow:none!important; transform:translateX(3px)!important;
}

/* Contact introduction follows one top grid line: CONNECT and support copy. */
body.hbfs .hbfs-contactstudio__head { align-items:start!important; }
body.hbfs .hbfs-contactstudio__head > p { margin:0!important; padding-top:0!important; align-self:start; }

/* Contact-inspired editorial typography for every detailed-page hero. */
body.hbfs .hbfs-masterhero__copy .hbfs-label { color:var(--hbfs-gold); }
body.hbfs .hbfs-masterhero h1 span,
body.hbfs .hbfs-masterhero h1 em { display:block; }
body.hbfs .hbfs-masterhero h1 em {
	color:var(--hbfs-gold); font-family:Georgia,'Times New Roman',serif;
	font-weight:400; font-style:italic; letter-spacing:-.045em;
}

/* Ayesha is content-height; the redundant manifesto no longer follows it. */
body.hbfs .hbfs-homefeature { min-height:0!important; padding-block:clamp(68px,7vw,112px)!important; }
body.hbfs .hbfs-homefeature + .hbfs-section { margin-top:0!important; }

/* The clients band deliberately contrasts the darker footage/final CTA above. */
body.hbfs .hbfs-clients {
	background:linear-gradient(135deg,#172433 0%,#213246 52%,#17212d 100%)!important;
	border-top:1px solid rgba(210,170,92,.25);
	padding-block:clamp(58px,6vw,92px)!important;
}
body.hbfs .hbfs-clients__carousel {
	position:relative; display:grid; grid-template-columns:48px minmax(0,1fr) 48px;
	align-items:center; gap:14px; margin-top:clamp(30px,4vw,50px);
}
body.hbfs .hbfs-clients__track {
	overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity;
}
body.hbfs .hbfs-clients__track::-webkit-scrollbar { display:none; }
body.hbfs .hbfs-clients__track .hbfs-partners {
	display:flex!important; flex-wrap:nowrap!important; grid-template-columns:none!important;
	gap:12px!important; margin:0!important; width:max-content; min-width:100%;
}
body.hbfs .hbfs-clients__track .hbfs-partner {
	flex:0 0 clamp(150px,16vw,205px); width:clamp(150px,16vw,205px);
	min-height:108px; scroll-snap-align:start;
}
body.hbfs .hbfs-clients__arrow {
	display:grid; place-items:center; width:44px; height:44px; padding:0;
	border:1px solid rgba(210,170,92,.5); border-radius:50%;
	background:rgba(9,14,20,.42); color:#e3bd70; font-size:1.25rem; cursor:pointer;
	transition:background .2s ease,transform .2s ease,border-color .2s ease;
}
body.hbfs .hbfs-clients__arrow:hover { background:var(--hbfs-gold); color:#121418; transform:scale(1.06); }

/* Footer brand hierarchy and one consistent axis. */
body.hbfs .hbfs-sitefooter__brand { text-align:left; }
body.hbfs .hbfs-sitefooter__tagline {
	margin:-10px 0 18px; color:#fff; font-family:Georgia,'Times New Roman',serif;
	font-size:clamp(1.15rem,1.6vw,1.45rem); font-style:italic; letter-spacing:-.01em;
}
body.hbfs .hbfs-sitefooter__brand > .hbfs-label {
	color:#d8ad5d!important; opacity:1!important; letter-spacing:.1em!important;
}
body.hbfs .hbfs-sitefooter .hbfs-footer__mark { width:min(100%,360px)!important; }
body.hbfs .hbfs-sitefooter__base { display:grid; }

/* Every closing proposal/CTA uses the same centred axis sitewide. */
body.hbfs :is(.hbfs-masterproposal,.hbfs-servicescta,.hbfs-section--closing) > .hbfs-container,
body.hbfs :is(.hbfs-masterproposal,.hbfs-servicescta,.hbfs-section--closing) .hbfs-panel {
	margin-inline:auto; text-align:center;
}

@media (max-width:760px) {
	body.hbfs .main-navigation .menu-item-has-children > .sub-menu {
		width:auto!important; min-width:0!important; padding:4px 0 8px 12px!important;
		background:transparent!important; border:0!important; border-left:1px solid rgba(210,170,92,.55)!important;
		border-radius:0!important; box-shadow:none!important; backdrop-filter:none;
	}
	body.hbfs .hbfs-clients__carousel { grid-template-columns:38px minmax(0,1fr) 38px; gap:8px; }
	body.hbfs .hbfs-clients__arrow { width:36px; height:36px; }
	body.hbfs .hbfs-clients__track .hbfs-partner { flex-basis:145px; width:145px; }
	body.hbfs .hbfs-sitefooter__brand { text-align:center; }
	body.hbfs .hbfs-sitefooter .hbfs-footer__mark { margin-inline:auto!important; }
	body.hbfs .hbfs-sitefooter__blurb { margin-inline:auto!important; }
}

/* --------------------------------------------------------------------------
   v6.4 final visual refinements
   -------------------------------------------------------------------------- */

/* Compact flyout: one authoritative desktop rule, separated from the header. */
body.hbfs .site-logo img {
	height:clamp(39px,4.25vw,53px)!important;
	padding-block:.2rem!important;
}
body.hbfs .main-navigation .main-nav li.hbfs-nav-cta > a,
body.hbfs .main-navigation .main-nav li.menu-cta > a {
	padding:.58rem 1.25rem!important;
	min-height:0!important;
}
@media (min-width:1101px) {
	body.hbfs .main-navigation .menu-item-has-children > .sub-menu {
		top:calc(100% + 9px)!important;
		left:50%!important;
		right:auto!important;
		width:218px!important;
		min-width:218px!important;
		max-width:218px!important;
		transform:translateX(-50%)!important;
		padding:7px!important;
		border-top-width:2px!important;
		border-radius:8px!important;
	}
	body.hbfs .main-navigation .sub-menu::before {
		content:'';
		position:absolute;
		left:0;
		right:0;
		top:-11px;
		height:11px;
	}
	body.hbfs .main-navigation .sub-menu li + li { margin-top:0!important; }
	body.hbfs .main-navigation .sub-menu a {
		padding:7px 10px 7px 18px!important;
		font-size:.665rem!important;
		line-height:1.2!important;
		white-space:normal!important;
	}
	body.hbfs .main-navigation .sub-menu a::before { left:7px; }
}

/* Ten disciplines remain a balanced 5 x 2, but read as open editorial cards. */
body.hbfs .hbfs-capgrid {
	gap:clamp(24px,2.5vw,42px)!important;
	background:transparent!important;
	border:0!important;
}
body.hbfs .hbfs-cap {
	padding:0 0 clamp(24px,3vw,38px)!important;
	border:0!important;
	background:transparent!important;
}
body.hbfs .hbfs-cap::before,
body.hbfs .hbfs-cap::after { display:none!important; }
body.hbfs .hbfs-cap__media { margin-bottom:20px!important; overflow:hidden; }
body.hbfs .hbfs-cap__media img { aspect-ratio:16/11!important; }
body.hbfs .hbfs-cap__title { font-size:clamp(1.15rem,1.45vw,1.48rem)!important; }
body.hbfs .hbfs-cap__text { font-size:clamp(.9rem,1vw,1rem)!important; line-height:1.65!important; }
body.hbfs .hbfs-cap__title::after {
	content:'';
	display:block;
	width:34px;
	height:2px;
	margin-top:12px;
	background:linear-gradient(90deg,var(--hbfs-gold),var(--hbfs-crimson));
	transition:width .35s ease;
}
body.hbfs .hbfs-cap:hover .hbfs-cap__title::after { width:76px; }

/* Ayesha artwork fills the same vertical span as label, copy and CTA. */
body.hbfs .hbfs-homefeature__grid { align-items:stretch!important; }
body.hbfs .hbfs-homefeature__media,
body.hbfs .hbfs-homefeature__media .hbfs-mastermedia { display:flex; min-height:100%; }
body.hbfs .hbfs-homefeature__media img {
	flex:1 1 auto;
	height:100%!important;
	min-height:clamp(430px,38vw,650px);
	aspect-ratio:auto!important;
	object-fit:cover;
}
body.hbfs .hbfs-homefeature__copy { display:flex; flex-direction:column; justify-content:center; padding-block:8px; }

/* Ventures are intentionally text-led until their individual pages/sites launch. */
body.hbfs .hbfs-platformgrid { background:transparent!important; border:0!important; gap:clamp(16px,2vw,28px)!important; }
body.hbfs .hbfs-platformcard { border:1px solid rgba(255,255,255,.12); }
body.hbfs .hbfs-platformcard__logo { display:none!important; }
body.hbfs .hbfs-platformcard__link {
	display:inline-block;
	position:relative;
	z-index:2;
	margin-top:22px;
	color:var(--hbfs-gold)!important;
	font-size:.76rem;
	font-weight:650;
	letter-spacing:.085em;
	text-transform:uppercase;
	text-decoration:none;
}

/* Gold client wall bridges a red closing CTA and charcoal footer without repetition. */
body.hbfs .hbfs-clients {
	background:linear-gradient(135deg,#b18a45 0%,#c5a15b 48%,#9b7435 100%)!important;
	color:#161719!important;
	border-color:rgba(20,20,20,.16)!important;
}
body.hbfs .hbfs-clients .hbfs-label { color:#432a12!important; }
body.hbfs .hbfs-clients__heading h2 { color:#161719!important; }
body.hbfs .hbfs-clients__heading > p { color:rgba(22,23,25,.72)!important; }
body.hbfs .hbfs-clients .hbfs-partner { background:#111318!important; border:1px solid rgba(255,255,255,.08); }
body.hbfs .hbfs-clients__arrow { background:rgba(17,19,24,.92)!important; color:#e6c276!important; border-color:rgba(17,19,24,.78)!important; }
body.hbfs .hbfs-clients__arrow:hover { background:#751728!important; color:#fff!important; }

/* Every page closes in the crimson brand family; the following gold client wall
   guarantees a distinct transition before the charcoal footer. */
body.hbfs .hbfs-servicescta,
body.hbfs .hbfs-section--closing,
body.hbfs .hbfs-masterproposal {
	background:linear-gradient(120deg,#681421 0%,#8d1c2d 54%,#59101b 100%)!important;
	color:#fff!important;
	text-align:center!important;
}
body.hbfs :is(.hbfs-servicescta,.hbfs-section--closing,.hbfs-masterproposal) :is(h2,p) { color:#fff!important; }
body.hbfs :is(.hbfs-servicescta,.hbfs-section--closing,.hbfs-masterproposal) .hbfs-label {
	display:block;
	width:100%;
	margin-inline:auto!important;
	color:#e4bd70!important;
	text-align:center!important;
}

/* Text joins the cinematic hero effect instead of appearing abruptly. */
body.hbfs [data-hero-signature] :is(.hbfs-masterhero__copy,.hbfs-contacthero__inner,.hbfs-hero__inner,.hbfs-archivehero__inner) > * {
	opacity:0;
	transform:translateY(24px);
	animation:hbfs-hero-copy-in .82s cubic-bezier(.2,.7,.2,1) forwards;
}
body.hbfs [data-hero-signature] :is(.hbfs-masterhero__copy,.hbfs-contacthero__inner,.hbfs-hero__inner,.hbfs-archivehero__inner) > *:nth-child(2) { animation-delay:.12s; }
body.hbfs [data-hero-signature] :is(.hbfs-masterhero__copy,.hbfs-contacthero__inner,.hbfs-hero__inner,.hbfs-archivehero__inner) > *:nth-child(3) { animation-delay:.24s; }
body.hbfs [data-hero-signature] :is(.hbfs-masterhero__copy,.hbfs-contacthero__inner,.hbfs-hero__inner,.hbfs-archivehero__inner) > *:nth-child(4) { animation-delay:.36s; }
@keyframes hbfs-hero-copy-in { to { opacity:1; transform:translateY(0); } }

@media (max-width:1100px) and (min-width:761px) {
	body.hbfs .hbfs-capgrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
	body.hbfs .site-logo img { height:37px!important; max-width:min(68vw,250px)!important; }
	body.hbfs .hbfs-homefeature__media img { min-height:0; height:auto!important; aspect-ratio:16/10!important; }
	body.hbfs .hbfs-sitefooter__brand { text-align:left!important; }
	body.hbfs .hbfs-sitefooter .hbfs-footer__mark,
	body.hbfs .hbfs-sitefooter__blurb { margin-left:0!important; margin-right:0!important; }
}
@media (prefers-reduced-motion:reduce) {
	body.hbfs [data-hero-signature] :is(.hbfs-masterhero__copy,.hbfs-contacthero__inner,.hbfs-hero__inner,.hbfs-archivehero__inner) > * {
		opacity:1; transform:none; animation:none;
	}
}
