/* ============================================================================
 * TERRACE — BUILDING & PROPERTY
 * Construction, property, civil
 *
 * BLOCKY and LOUD. Square corners, 2px borders, the most dramatic type ratio at 1.414 with an 800-weight display and near-zero leading on headings. Widest container, tightest rhythm — a dense, capable, site-board feel. Amber is a warning colour and is rationed to fills, bars and focus rings, never to body copy.
 *
 * THIS IS A STRUCTURAL SYSTEM, NOT A PALETTE. The five dials below — proportion,
 * density, type ratio, surface language and composition — are what make this
 * theme unlike the other four even where they share a section shape. A skin that
 * only swapped colours would leave two themes on the same shape looking
 * identical, which is precisely the "clones and different colours" charge.
 *
 * Type ratio 1.414 · line-height 1.55 · radius 0px ·
 * separation by BLOCK · container 1240px · tight density
 *
 * On-brand ink is RESOLVED: #101314 on #F2B705 = 10.27:1.
 * ========================================================================== */

.bfy-prime.bfy-terrace {
	/* ── PALETTE ── */
	--p-bg: #17191D; --p-surface: #1F2228; --p-ink: #F4F5F6;
	--p-muted: rgba(244,245,246,0.66); --p-border: rgba(255,255,255,0.18);
	--p-brand: #F2B705; --p-on-brand: #101314;
	--p-band-bg: #1F2228; --p-band-surface: #1F2228;
	--p-ink-bg: #0F1114; --p-ink-fg: #F7F8F9;
	--p-ink-muted: rgba(247,248,249,0.68); --p-ink-border: rgba(255,255,255,0.16);
	--p-ink-surface: rgba(255,255,255,0.05);

	/* ── TYPE SYSTEM — generated from a RATIO of 1.414, so every step
	   moves together. Hand-picked sizes are why the previous suite had one
	   theme carrying 28 distinct literal font-sizes and no scale at all. ── */
	--p-font-display: 'Archivo',system-ui,sans-serif;
	--p-font-body: 'IBM Plex Sans',system-ui,sans-serif;
	--p-t-hero: clamp(3.28rem, 6.2vw, 5.65rem);
	--p-t-h1: clamp(2.57rem, 5.5vw, 4.28rem);
	--p-t-display: clamp(2.01rem, 4.4vw, 3.25rem);
	--p-t-h2: clamp(1.62rem, 3.5vw, 2.46rem);
	--p-t-h2-sm: clamp(1.36rem, 2.4vw, 1.74rem);
	--p-t-h3: 1.210rem;
	--p-t-h4: 1.053rem;
	--p-t-lead: clamp(1.070rem, 1.4vw, 1.189rem);
	--p-t-body: 1rem;
	--p-t-sm: 0.900rem;
	--p-t-xs: 0.820rem;
	--p-t-micro: 0.750rem;
	--p-lh: 1.55;
	--p-lh-tight: 1.0;
	--p-track-tight: -0.028em;
	--p-track-micro: 0.2em;

	/* ── PROPORTION ── */
	--p-w: 1240px;
	--p-w-wide: 1388px;
	--p-w-mid: 967px;
	--p-w-prose: 700px;
	--p-w-narrow: 518px;
	--p-sect: clamp(2.5rem, 4vw, 3.5rem);
	--p-sect-tight: clamp(1.80rem, 2.9vw, 2.45rem);
	--p-sect-loose: clamp(3.12rem, 4.8vw, 4.38rem);
	--p-gut: clamp(1.25rem, 3.5vw, 2.5rem);

	/* ── SURFACE ── */
	--p-radius: 0px;
	--p-radius-sm: 0px;
	--p-hairline: 2px;

	/* ── DENSITY + COMPOSITION — these reach the shared component packs, so a
	   shape recomposes for this theme instead of merely recolouring. ── */
	--p-card-pad: clamp(1rem,1.8vw,1.35rem);
	--p-story-cols: 1fr 1.2fr;
	--p-story-ratio: 16/9;
	--p-story-gap: clamp(1.5rem, 3.5vw, 3.0rem);
	--p-faq-cols: 1fr 1.2fr;
	--p-contact-cols: 1fr 1.2fr;
	--p-hours-cols: 1fr 1.2fr;
	--bfy-head-mb: calc(var(--p-sect-tight, 2rem) * 1.15);
	--bfy-hero-cols: 1fr 1.2fr;
	--bfy-hero-ratio: 16/9;
	--bfy-quotes-gap: clamp(0.7rem,1.4vw,1rem);
	--bfy-svc-gap: clamp(0.7rem,1.4vw,1rem);
	--bfy-gal-gap: clamp(0.7rem,1.4vw,1rem);
	--bfy-proc-gap: clamp(0.7rem,1.4vw,1rem);
	--bfy-quote-pad: clamp(1rem,1.8vw,1.35rem);
	--bfy-svc-pad: clamp(1rem,1.8vw,1.35rem);
	--bfy-btn-radius: 0px;
	--bfy-quote-radius: 0px;
	--bfy-svc-radius: 0px;
	--bfy-gal-radius: 0px;
	--bfy-hero-radius: 0px;
	--bfy-proc-radius: 0px;
}

/* ── MICRO-LABELS. Tracking is a signature people read without noticing: at
   0.2em this theme's eyebrows are a different object from the
   other four, on every single section. ── */
.bfy-prime.bfy-terrace .bfy-head__eyebrow, .bfy-prime.bfy-terrace .bfy-micro, .bfy-prime.bfy-terrace .bfy-pr__plan-tag,
.bfy-prime.bfy-terrace .bfy-svc__cat, .bfy-prime.bfy-terrace .bfy-pr__stat-l {
	letter-spacing: var(--p-track-micro, 0.1em);
	text-transform: uppercase;
	font-size: var(--p-t-micro, 0.75rem);
}

/* ── HEADINGS ── */
.bfy-prime.bfy-terrace h1, .bfy-prime.bfy-terrace h2, .bfy-prime.bfy-terrace h3, .bfy-prime.bfy-terrace h4 {
	line-height: var(--p-lh-tight, 1.15);
	letter-spacing: var(--p-track-tight, -0.014em);
	font-weight: 800;
}
.bfy-prime.bfy-terrace .bfy-head__title { font-size: var(--p-t-h2, 2rem); }
.bfy-prime.bfy-terrace .bfy-head__lede { max-width: 574px; line-height: var(--p-lh, 1.6); }

/* SEPARATION: heavy blocks. 2px borders, square corners, a brand bar on
   the leading edge of anything that matters. Reads as plant and equipment. */
.bfy-prime.bfy-terrace .bfy-pr__plan, .bfy-prime.bfy-terrace .bfy-quote, .bfy-prime.bfy-terrace .bfy-svc__item,
.bfy-prime.bfy-terrace .bfy-pr__contact-form, .bfy-prime.bfy-terrace .bfy-proc__item {
	border: 2px solid var(--p-border, rgba(255,255,255,0.18)); border-radius: 0;
}
.bfy-prime.bfy-terrace .bfy-pr__plan.is-featured, .bfy-prime.bfy-terrace .bfy-pr__contact-form {
	border-top: 5px solid var(--p-brand, #F2B705);
}
.bfy-prime.bfy-terrace .bfy-head__rule { height: 5px; width: 64px; background: var(--p-brand, #F2B705); }

/* COMPOSITION — a site board. Square everything, heavy display weight, and a
   brand rule under every section heading so the page scans like a schedule.
   Stat figures are the loudest element on the page because capability is what
   this trade is bought on. */
.bfy-prime.bfy-terrace .bfy-head__title { text-transform: uppercase; letter-spacing: -0.02em; }
.bfy-prime.bfy-terrace .bfy-pr__stat-v { font-weight: 800; font-size: var(--p-t-h1, 3rem); color: var(--p-brand, #F2B705); }
.bfy-prime.bfy-terrace .bfy-btn { border-radius: 0; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; }
.bfy-prime.bfy-terrace .bfy-btn-ghost { border-radius: 0; border-width: 2px; }
.bfy-prime.bfy-terrace .bfy-pr__hour { border-bottom-width: 2px; }
.bfy-prime.bfy-terrace .bfy-svc__name { text-transform: uppercase; letter-spacing: 0.02em; font-size: var(--p-t-h4, 1rem); }
