/*
Theme Name: Brampton Home Additions
Theme URI: https://bramptonhomeaddition.ca/
Author: Brampton Home Additions
Description: Premium custom WordPress theme for Brampton Home Additions. Includes one-click starter content import, WPForms shortcode settings, premium service pages, blog layouts, FAQ schema, and conversion-focused design.
Version: 1.2.0
Text Domain: brampton-home-additions
*/

:root {
  --bha-ink: #171918;
  --bha-charcoal: #232624;
  --bha-charcoal-2: #30342f;
  --bha-stone: #cfc4b2;
  --bha-sand: #ede8df;
  --bha-ivory: #f7f4ee;
  --bha-paper: #fffdf9;
  --bha-bronze: #92785b;
  --bha-bronze-dark: #6d5943;
  --bha-line: rgba(23,25,24,.14);
  --bha-muted: #6f716d;
  --bha-white: #fff;
  --bha-max: 1240px;
  --bha-reading: 800px;
  --bha-shadow: 0 24px 70px rgba(19,22,20,.10);
  --bha-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --bha-sans: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--bha-ink);
  background: var(--bha-ivory);
  font-family: var(--bha-sans);
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
body.admin-bar .site-header { top: 32px; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--bha-bronze-dark); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
::selection { background: #d7c8b2; color: #171918; }

.bha-wrap { width: min(calc(100% - 48px), var(--bha-max)); margin-inline: auto; }
.bha-reading { width: min(calc(100% - 48px), var(--bha-reading)); margin-inline: auto; }
.bha-section { padding: clamp(72px, 8vw, 118px) 0; position: relative; }
.bha-section--tight { padding: clamp(54px, 6vw, 82px) 0; }
.bha-section--paper { background: var(--bha-paper); }
.bha-section--sand { background: var(--bha-sand); }
.bha-section--dark { background: var(--bha-charcoal); color: var(--bha-white); }
.bha-section--ink { background: var(--bha-ink); color: var(--bha-white); }
.bha-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(34px, 6vw, 82px); align-items: center; }
.bha-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.bha-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }

.bha-eyebrow {
  margin: 0 0 16px;
  color: var(--bha-bronze-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}
.bha-section--dark .bha-eyebrow,
.bha-section--ink .bha-eyebrow { color: #d6b995; }
.bha-display,
.bha-title,
h1, h2, h3, h4 {
  margin-top: 0;
  color: inherit;
  font-family: var(--bha-serif);
  font-weight: 500;
  letter-spacing: -.025em;
}
h1 { font-size: clamp(50px, 7vw, 88px); line-height: .98; }
h2 { font-size: clamp(38px, 5vw, 60px); line-height: 1.03; }
h3 { font-size: clamp(26px, 3vw, 34px); line-height: 1.12; }
h4 { font-size: 24px; line-height: 1.2; }
p { margin-top: 0; }
.bha-lede { color: #474a46; font-size: clamp(19px, 2vw, 23px); line-height: 1.65; }
.bha-section--dark .bha-lede, .bha-section--ink .bha-lede { color: #d4d4cf; }
.bha-muted { color: var(--bha-muted); }

.bha-button,
.wp-element-button,
input[type="submit"],
.wpforms-submit {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 24px;
  border: 1px solid var(--bha-charcoal);
  border-radius: 0;
  background: var(--bha-charcoal);
  color: #fff !important;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.bha-button:hover,
.wp-element-button:hover,
input[type="submit"]:hover,
.wpforms-submit:hover { background: var(--bha-bronze-dark); border-color: var(--bha-bronze-dark); color:#fff !important; transform: translateY(-1px); }
.bha-button--light { border-color: #fff; background: #fff; color: var(--bha-ink) !important; }
.bha-button--light:hover { background: #e9dfd2; border-color: #e9dfd2; color: var(--bha-ink) !important; }
.bha-button--outline { background: transparent; color: var(--bha-ink) !important; }
.bha-button--outline:hover { background: var(--bha-ink); color: #fff !important; }
.bha-section--dark .bha-button--outline, .bha-section--ink .bha-button--outline { border-color: rgba(255,255,255,.72); color:#fff !important; }
.bha-section--dark .bha-button--outline:hover, .bha-section--ink .bha-button--outline:hover { background:#fff; color:var(--bha-ink)!important; }
.bha-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }

/* Header */
.site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  border-bottom: 1px solid rgba(255,255,255,.10);
  background: rgba(22,24,23,.96);
  color: #fff;
  backdrop-filter: blur(16px);
}
.site-header__inner { min-height: 94px; display:flex; align-items:center; justify-content:space-between; gap:26px; }
.site-branding { min-width: 300px; line-height:1; }
.custom-logo-link img { max-height: 70px; width:auto; }
.site-branding__name { display:block; color:#fff; font-family:var(--bha-serif); font-size:29px; font-weight:600; letter-spacing:-.02em; text-decoration:none; }
.site-branding__tag { display:block; margin-top:6px; color:#bbb9b3; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.primary-nav { display:flex; align-items:center; gap:2px; margin-left:auto; }
.primary-nav ul { list-style:none; margin:0; padding:0; }
.primary-nav > ul { display:flex; align-items:center; gap:2px; }
.primary-nav li { position:relative; }
.primary-nav a { display:block; padding:14px 13px; color:#f4f3ef; font-size:13px; font-weight:700; text-decoration:none; }
.primary-nav a:hover { color:#d6b995; }
.primary-nav .sub-menu { position:absolute; top:100%; left:0; min-width:250px; padding:10px; opacity:0; visibility:hidden; transform:translateY(8px); background:#1e211f; border:1px solid rgba(255,255,255,.1); box-shadow:var(--bha-shadow); transition:.2s ease; }
.primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu { opacity:1; visibility:visible; transform:none; }
.primary-nav .sub-menu a { padding:11px 12px; }
.site-header__cta { white-space:nowrap; }
.menu-toggle { display:none; width:46px; height:46px; border:1px solid rgba(255,255,255,.24); background:transparent; color:#fff; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { display:block; width:20px; height:1px; margin:5px auto; background:currentColor; content:""; }

/* Hero */
.bha-hero {
  position: relative;
  min-height: min(810px, calc(100vh - 86px));
  display: grid;
  align-items: end;
  overflow: hidden;
  background: #272b28;
  color: #fff;
}
.bha-hero::before { position:absolute; inset:0; content:""; background: linear-gradient(90deg, rgba(17,19,18,.92) 0%, rgba(17,19,18,.74) 42%, rgba(17,19,18,.25) 70%, rgba(17,19,18,.4) 100%), var(--bha-hero-image, none) center/cover no-repeat; }
.bha-hero::after { position:absolute; inset:auto 0 0; height:180px; content:""; background:linear-gradient(0deg, rgba(13,15,14,.78), transparent); }
.bha-hero__inner { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.18fr) minmax(360px,.62fr); gap:clamp(46px,7vw,92px); align-items:end; padding:clamp(76px,10vw,126px) 0; }
.bha-hero__content { max-width:780px; }
.bha-hero h1 { max-width:820px; margin-bottom:24px; text-shadow:0 4px 28px rgba(0,0,0,.18); }
.bha-hero .bha-lede { max-width:710px; color:#e7e5df; }
.bha-hero .bha-eyebrow { color:#dbc09e; }
.bha-hero__form { padding:30px; background:rgba(247,244,238,.96); color:var(--bha-ink); box-shadow:0 26px 80px rgba(0,0,0,.22); backdrop-filter:blur(12px); }
.bha-hero__form h2 { margin-bottom:6px; font-size:34px; }
.bha-hero__form p { color:#656861; font-size:14px; }
.bha-hero__meta { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:30px; color:#cecfc9; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }

/* Image panels */
.bha-image { position:relative; min-height:520px; overflow:hidden; background:#d8d0c4; }
.bha-image img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; transition:transform .7s ease; }
.bha-image:hover img { transform:scale(1.025); }
.bha-image::after { position:absolute; inset:0; content:""; border:1px solid rgba(255,255,255,.25); pointer-events:none; }
.bha-image--portrait { min-height:660px; }
.bha-image--wide { min-height:420px; }
.bha-image__caption { position:absolute; z-index:2; right:18px; bottom:18px; left:18px; padding:13px 15px; background:rgba(21,23,22,.78); color:#f5f1eb; font-size:12px; line-height:1.5; backdrop-filter:blur(8px); }

/* Cards */
.bha-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(23,25,24,.13); border:1px solid rgba(23,25,24,.13); }
.bha-service-card { position:relative; min-height:470px; display:flex; align-items:flex-end; overflow:hidden; background:#262a27; color:#fff; text-decoration:none; }
.bha-service-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.bha-service-card::before { position:absolute; z-index:1; inset:0; content:""; background:linear-gradient(0deg,rgba(16,18,17,.9) 0%,rgba(16,18,17,.46) 48%,rgba(16,18,17,.08) 100%); }
.bha-service-card:hover img { transform:scale(1.035); }
.bha-service-card__body { position:relative; z-index:2; width:100%; padding:34px; }
.bha-service-card__body h3 { margin-bottom:10px; font-size:38px; }
.bha-service-card__body p { max-width:570px; margin-bottom:0; color:#dcddd8; }
.bha-service-card__link { display:inline-block; margin-top:18px; color:#e0c4a2; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }

.bha-card { padding:30px; border-top:3px solid var(--bha-bronze); background:var(--bha-paper); }
.bha-card h3 { margin-bottom:12px; }
.bha-card p:last-child { margin-bottom:0; }
.bha-number-card { padding:26px 26px 30px; border-top:1px solid var(--bha-line); }
.bha-number { display:block; margin-bottom:20px; color:var(--bha-bronze); font-family:var(--bha-serif); font-size:42px; line-height:1; }

/* Gallery */
.bha-gallery { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:14px; }
.bha-gallery__item { position:relative; min-height:330px; grid-column:span 4; overflow:hidden; background:#d4c9bb; }
.bha-gallery__item--wide { grid-column:span 8; }
.bha-gallery__item--tall { min-height:530px; }
.bha-gallery__item img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; transition:transform .65s ease; }
.bha-gallery__item:hover img { transform:scale(1.025); }
.bha-gallery__caption { position:absolute; z-index:2; right:0; bottom:0; left:0; padding:18px; background:linear-gradient(0deg,rgba(17,19,18,.86),rgba(17,19,18,0)); color:#fff; font-size:13px; }

/* Page header */
.bha-page-hero { position:relative; min-height:530px; display:flex; align-items:end; overflow:hidden; background:#252825; color:#fff; }
.bha-page-hero::before { position:absolute; inset:0; content:""; background:linear-gradient(90deg,rgba(16,18,17,.90),rgba(16,18,17,.36)),var(--bha-page-image,none) center/cover no-repeat; }
.bha-page-hero__inner { position:relative; z-index:2; padding:94px 0 74px; max-width:900px; }
.bha-page-hero h1 { margin-bottom:20px; }
.bha-page-hero .bha-lede { color:#e1e1dc; }
.bha-breadcrumbs { margin-bottom:18px; color:#cfcfc9; font-size:12px; }
.bha-breadcrumbs a { color:#fff; }

/* Content */
.entry-content > *:not(.alignwide):not(.alignfull), .bha-article__content > * { max-width:var(--bha-reading); margin-left:auto; margin-right:auto; }
.entry-content > .bha-section,
.entry-content > .bha-callout,
.entry-content > .bha-feature-row,
.entry-content > .bha-card-grid,
.entry-content > .bha-faq,
.entry-content > .bha-form-section { max-width:none; }
.entry-content { background:var(--bha-ivory); }
.entry-content .bha-section h2 { margin-bottom:20px; }
.entry-content ul, .entry-content ol, .bha-article__content ul, .bha-article__content ol { padding-left:1.25em; }
.entry-content li + li, .bha-article__content li + li { margin-top:.5em; }
.bha-copy { max-width:760px; }
.bha-copy > :last-child { margin-bottom:0; }
.bha-feature-row { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(38px,7vw,92px); align-items:center; }
.bha-feature-row--reverse { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); }
.bha-feature-row--reverse .bha-feature-row__media { order:2; }
.bha-feature-row--reverse .bha-feature-row__content { order:1; }
.bha-checklist { list-style:none!important; padding:0!important; margin:25px 0 0!important; display:grid; gap:9px; }
.bha-checklist li { position:relative; padding-left:24px; }
.bha-checklist li::before { position:absolute; left:0; top:.72em; width:9px; height:1px; content:""; background:var(--bha-bronze); }
.bha-callout { margin:0; padding:clamp(40px,6vw,78px) 0; background:var(--bha-charcoal); color:#fff; }
.bha-callout__inner { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.5fr); gap:40px; align-items:center; }
.bha-callout h2 { margin-bottom:0; }
.bha-callout p { color:#d9d9d3; }
.bha-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.bha-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:38px; border-top:1px solid var(--bha-line); border-bottom:1px solid var(--bha-line); }
.bha-fact { padding:25px 25px 25px 0; }
.bha-fact + .bha-fact { padding-left:25px; border-left:1px solid var(--bha-line); }
.bha-fact strong { display:block; font-family:var(--bha-serif); font-size:29px; font-weight:500; line-height:1.15; }
.bha-fact span { display:block; margin-top:7px; color:var(--bha-muted); font-size:13px; }

/* FAQ */
.bha-faq { display:grid; gap:10px; }
.bha-faq details { border:1px solid var(--bha-line); background:var(--bha-paper); }
.bha-faq summary { position:relative; padding:22px 58px 22px 24px; cursor:pointer; list-style:none; font-family:var(--bha-serif); font-size:24px; font-weight:600; line-height:1.25; }
.bha-faq summary::-webkit-details-marker { display:none; }
.bha-faq summary::after { position:absolute; right:24px; top:50%; content:"+"; color:var(--bha-bronze); font-family:var(--bha-sans); font-size:25px; font-weight:400; transform:translateY(-50%); }
.bha-faq details[open] summary::after { content:"−"; }
.bha-faq__answer { padding:0 24px 24px; color:#555852; }
.bha-faq__answer p:last-child { margin-bottom:0; }

/* Forms / WPForms */
.bha-form-section { padding:clamp(70px,8vw,110px) 0; background:#dcd1c0; }
.bha-form-shell { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); overflow:hidden; background:var(--bha-paper); box-shadow:var(--bha-shadow); }
.bha-form-shell__intro { padding:clamp(38px,5vw,64px); background:var(--bha-charcoal); color:#fff; }
.bha-form-shell__intro p { color:#d4d4cf; }
.bha-form-shell__form { padding:clamp(36px,5vw,60px); }
div.wpforms-container-full { margin:0!important; }
div.wpforms-container-full .wpforms-field { padding:8px 0!important; }
div.wpforms-container-full input[type=text],
div.wpforms-container-full input[type=email],
div.wpforms-container-full input[type=tel],
div.wpforms-container-full input[type=number],
div.wpforms-container-full input[type=url],
div.wpforms-container-full select,
div.wpforms-container-full textarea {
  min-height:48px!important;
  border:1px solid rgba(23,25,24,.22)!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:none!important;
  color:var(--bha-ink)!important;
}
div.wpforms-container-full textarea { min-height:128px!important; }
div.wpforms-container-full .wpforms-field-label { margin-bottom:6px!important; color:var(--bha-ink)!important; font-size:13px!important; font-weight:800!important; }
div.wpforms-container-full .wpforms-submit-container { padding-top:14px!important; }
div.wpforms-container-full button[type=submit],
div.wpforms-container-full input[type=submit] { min-height:52px!important; padding:14px 24px!important; border:1px solid var(--bha-charcoal)!important; border-radius:0!important; background:var(--bha-charcoal)!important; color:#fff!important; font-size:13px!important; font-weight:800!important; letter-spacing:.06em!important; text-transform:uppercase!important; }
div.wpforms-container-full button[type=submit]:hover,
div.wpforms-container-full input[type=submit]:hover { border-color:var(--bha-bronze-dark)!important; background:var(--bha-bronze-dark)!important; }
.bha-form-placeholder { padding:22px; border:1px dashed #9d8a72; background:#f5efe6; color:#554a3d; font-size:14px; }

/* Blog */
.bha-blog-hero { position:relative; min-height:460px; display:flex; align-items:end; overflow:hidden; padding:0; background:var(--bha-charcoal); color:#fff; }
.bha-blog-hero::before { position:absolute; inset:0; content:""; background:var(--bha-blog-image,none) center/cover no-repeat; transform:scale(1.01); }
.bha-blog-hero::after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,rgba(16,18,17,.92) 0%,rgba(16,18,17,.72) 42%,rgba(16,18,17,.35) 75%,rgba(16,18,17,.48) 100%); }
.bha-blog-hero .bha-wrap { position:relative; z-index:2; padding-top:110px; padding-bottom:76px; }
.bha-blog-hero .bha-lede { max-width:760px; color:#e5e2dc; }
.bha-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.bha-post-card { display:flex; flex-direction:column; min-height:100%; background:var(--bha-paper); border:1px solid var(--bha-line); text-decoration:none; }
.bha-post-card__media { aspect-ratio:16/10; overflow:hidden; background:#d6cec2; }
.bha-post-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.bha-post-card:hover img { transform:scale(1.025); }
.bha-post-card__body { padding:25px; }
.bha-post-card__meta { margin-bottom:12px; color:var(--bha-bronze-dark); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.bha-post-card h2, .bha-post-card h3 { margin-bottom:12px; font-size:31px; }
.bha-post-card p { color:#676a64; font-size:15px; }
.bha-pagination { margin-top:45px; }
.bha-pagination .page-numbers { display:inline-flex; min-width:42px; height:42px; align-items:center; justify-content:center; margin:3px; border:1px solid var(--bha-line); background:#fff; text-decoration:none; }
.bha-pagination .current { background:var(--bha-charcoal); color:#fff; }
.bha-article { padding:70px 0 100px; background:var(--bha-paper); }
.bha-article__header { max-width:940px; margin:0 auto 54px; text-align:center; }
.bha-article__header h1 { font-size:clamp(48px,6vw,76px); }
.bha-article__meta { margin-bottom:18px; color:var(--bha-bronze-dark); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.bha-article__content { font-size:18px; }
.bha-article__content h2 { margin-top:1.5em; margin-bottom:.45em; font-size:43px; }
.bha-article__content h3 { margin-top:1.25em; margin-bottom:.4em; font-size:29px; }
.bha-article__content p { margin-bottom:1.25em; }
.bha-article__content .wp-block-image { max-width:1040px; margin-top:42px; margin-bottom:42px; }

/* Universal content tables */
.entry-content .wp-block-table,
.entry-content table,
.bha-article__content .wp-block-table,
.bha-article__content table { width:100%; margin:30px auto; overflow-x:auto; border-collapse:collapse; background:#fff; }
.entry-content .wp-block-table table,
.bha-article__content .wp-block-table table { margin:0; }
.entry-content table th,
.bha-article__content table th { padding:15px 17px; border:1px solid #c8c1b6; background:var(--bha-charcoal); color:#fff; font-size:13px; font-weight:800; letter-spacing:.03em; text-align:left; }
.entry-content table td,
.bha-article__content table td { padding:15px 17px; border:1px solid #d7d0c6; background:#fff; vertical-align:top; }
.entry-content table tr:nth-child(even) td,
.bha-article__content table tr:nth-child(even) td { background:#f2eee8; }
.entry-content table caption,
.bha-article__content table caption { padding:12px 0; color:var(--bha-muted); font-size:13px; text-align:left; }

/* Footer */
.site-footer { background:#141615; color:#e7e5df; }
.site-footer__top { padding:72px 0 54px; }
.site-footer__grid { display:grid; grid-template-columns:1.25fr repeat(3,minmax(0,.72fr)); gap:50px; }
.site-footer h2, .site-footer h3 { color:#fff; }
.site-footer h3 { margin-bottom:16px; font-family:var(--bha-sans); font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.site-footer p, .site-footer li { color:#bfc0ba; font-size:14px; }
.site-footer ul { list-style:none; margin:0; padding:0; }
.site-footer li + li { margin-top:8px; }
.site-footer a { color:#d8d9d4; text-decoration:none; }
.site-footer a:hover { color:#d6b995; }
.site-footer__brand { max-width:360px; }
.site-footer__brand .site-branding__name { font-size:34px; }
.site-footer__bottom { padding:20px 0; border-top:1px solid rgba(255,255,255,.1); color:#90938d; font-size:12px; }
.site-footer__bottom-inner { display:flex; justify-content:space-between; gap:20px; }

/* 404 */
.bha-404 { min-height:64vh; display:grid; place-items:center; text-align:center; }
.bha-404__code { color:var(--bha-bronze); font-family:var(--bha-serif); font-size:110px; line-height:.8; }

@media (max-width: 1080px) {
  .site-header__cta { display:none; }
  .primary-nav a { padding-inline:9px; }
  .bha-hero__inner { grid-template-columns:minmax(0,1fr) minmax(320px,.55fr); }
  .bha-blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bha-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  body.admin-bar .site-header { top:46px; }
  .site-branding { min-width:0; flex:1 1 auto; }
  .site-branding__asset, .custom-logo-link { width:min(285px,100%); }
  .menu-toggle { display:block; }
  .primary-nav { position:fixed; top:94px; right:0; left:0; display:none; max-height:calc(100vh - 94px); overflow:auto; padding:18px 24px 28px; background:#181a19; }
  body.admin-bar .primary-nav { top:140px; }
  .primary-nav.is-open { display:block; }
  .primary-nav > ul { display:block; }
  .primary-nav a { padding:13px 5px; }
  .primary-nav .sub-menu { position:static; min-width:0; display:block; padding:0 0 6px 16px; opacity:1; visibility:visible; transform:none; border:0; box-shadow:none; background:transparent; }
  .bha-hero { min-height:auto; }
  .bha-hero__inner { grid-template-columns:1fr; padding:94px 0 72px; }
  .bha-hero__form { max-width:620px; }
  .bha-grid-2, .bha-feature-row, .bha-feature-row--reverse, .bha-form-shell, .bha-callout__inner { grid-template-columns:1fr; }
  .bha-feature-row--reverse .bha-feature-row__media, .bha-feature-row--reverse .bha-feature-row__content { order:initial; }
  .bha-card-grid, .bha-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bha-gallery__item, .bha-gallery__item--wide { grid-column:span 6; }
}
@media (max-width: 640px) {
  body { font-size:16px; }
  .bha-wrap, .bha-reading { width:min(calc(100% - 30px), var(--bha-max)); }
  .site-header__inner { min-height:74px; }
  .site-branding__name { font-size:24px; }
  .site-branding__tag { display:none; }
  .primary-nav { top:74px; }
  body.admin-bar .primary-nav { top:120px; }
  .bha-hero__inner { padding:72px 0 46px; }
  .bha-hero__form { padding:22px; }
  .bha-actions { align-items:stretch; flex-direction:column; }
  .bha-button { width:100%; }
  .bha-service-grid, .bha-blog-grid, .bha-card-grid, .bha-grid-3, .bha-grid-4 { grid-template-columns:1fr; }
  .bha-service-card { min-height:390px; }
  .bha-service-card__body { padding:25px; }
  .bha-service-card__body h3 { font-size:33px; }
  .bha-gallery { gap:10px; }
  .bha-gallery__item, .bha-gallery__item--wide { grid-column:span 12; min-height:350px; }
  .bha-gallery__item--tall { min-height:430px; }
  .bha-facts { grid-template-columns:1fr; }
  .bha-fact, .bha-fact + .bha-fact { padding:20px 0; border-left:0; }
  .bha-fact + .bha-fact { border-top:1px solid var(--bha-line); }
  .site-footer__grid { grid-template-columns:1fr; gap:34px; }
  .site-footer__bottom-inner { flex-direction:column; }
  .bha-image, .bha-image--portrait { min-height:420px; }
  .bha-page-hero { min-height:450px; }
}

/* =========================================================
   v1.1 CONTENT QUALITY + BRANDING
   ========================================================= */
.site-branding__asset { display:block; width:clamp(300px,27vw,370px); text-decoration:none; }
.site-branding__asset img { width:100%; height:auto; max-height:70px; object-fit:contain; object-position:left center; }
.custom-logo-link { display:block; width:clamp(300px,27vw,370px); }
.custom-logo-link img { width:100%; max-height:70px; object-fit:contain; object-position:left center; }

.entry-content > h2,
.entry-content > h3,
.entry-content > h4 { max-width:var(--bha-reading); margin-left:auto; margin-right:auto; }
.entry-content > h2 { margin-top:1.55em; margin-bottom:.48em; font-size:clamp(35px,4.2vw,48px); }
.entry-content > h3 { margin-top:1.35em; margin-bottom:.42em; font-size:clamp(27px,3vw,33px); }
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote { font-size:18px; }
.entry-content > p { margin-top:0; margin-bottom:1.25em; }
.entry-content > ul,
.entry-content > ol { margin-top:0; margin-bottom:1.5em; }
.entry-content > table { max-width:min(100% - 48px, 980px)!important; }

.bha-answer-box,
.bha-reference-box,
.bha-related-links,
.bha-inline-cta {
  width:min(calc(100% - 48px), 880px);
  margin:36px auto;
  padding:30px 34px;
  border:1px solid var(--bha-line);
  background:var(--bha-paper);
}
.bha-answer-box { border-left:5px solid var(--bha-bronze); background:#f0ebe3; }
.bha-answer-box p:last-child,
.bha-reference-box p:last-child,
.bha-related-links p:last-child,
.bha-inline-cta p:last-child { margin-bottom:0; }
.bha-answer-box strong { color:var(--bha-ink); }
.bha-reference-box { border-top:4px solid var(--bha-bronze); background:#f4f0e9; }
.bha-reference-box ul,
.bha-related-links ul { margin-bottom:0; }
.bha-reference-box a,
.bha-related-links a { color:var(--bha-bronze-dark); font-weight:700; }
.bha-related-links { background:#fff; }
.bha-inline-cta { padding:36px; border:0; background:var(--bha-charcoal); color:#fff; }
.bha-inline-cta h2 { margin-bottom:14px; font-size:clamp(32px,4vw,45px); }
.bha-inline-cta p { color:#d6d6d1; }
.bha-inline-cta .bha-eyebrow { color:#d6b995; }
.bha-inline-cta .bha-button { margin-top:10px; border-color:#fff; background:#fff; color:var(--bha-ink)!important; }
.bha-inline-cta .bha-button:hover { border-color:#d6b995; background:#d6b995; }

.bha-topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:32px; }
.bha-topic-card { display:block; padding:26px; border:1px solid var(--bha-line); background:var(--bha-paper); text-decoration:none; }
.bha-topic-card:hover { border-color:rgba(146,120,91,.55); transform:translateY(-1px); }
.bha-topic-card h3 { margin-bottom:8px; font-size:29px; }
.bha-topic-card p { margin-bottom:0; color:var(--bha-muted); font-size:15px; }

.bha-audit-badge { display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border:1px solid rgba(146,120,91,.35); background:#f5efe7; color:var(--bha-bronze-dark); font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }

@media (max-width:760px){
  .entry-content > table,
  .bha-article__content > table { display:block; width:min(calc(100% - 30px), 100%)!important; max-width:100%!important; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .entry-content table th,
  .entry-content table td,
  .bha-article__content table th,
  .bha-article__content table td { min-width:170px; }
  .bha-answer-box,.bha-reference-box,.bha-related-links,.bha-inline-cta { width:min(calc(100% - 30px),880px); padding:24px; }
  .bha-topic-grid { grid-template-columns:1fr; }
  .site-branding__asset,.custom-logo-link { width:min(285px,100%); }
}


/* =========================================================
   v1.2 FEATURED IMAGES + UNIVERSAL POST/PAGE TABLES
   ========================================================= */
/* A page's Featured Image is the visual source for its hero. These rules keep
   Gutenberg, Classic Editor and raw HTML tables consistent on every current
   and future post/page using the theme templates. */
.single-post .bha-article__content .wp-block-table,
.page .entry-content .wp-block-table,
.single-post .bha-article__content figure.wp-block-table,
.page .entry-content figure.wp-block-table {
  width:min(calc(100% - 48px),980px);
  max-width:980px;
  margin:34px auto;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  background:transparent;
}
.single-post .bha-article__content table,
.page .entry-content table,
.single-post .bha-article__content .wp-block-table table,
.page .entry-content .wp-block-table table {
  width:100%;
  max-width:980px;
  margin:34px auto;
  border:1px solid #cfc6ba;
  border-collapse:collapse;
  border-spacing:0;
  background:#fff;
  color:var(--bha-ink);
  font-size:15px;
  line-height:1.55;
}
.single-post .bha-article__content .wp-block-table table,
.page .entry-content .wp-block-table table { margin:0; max-width:none; }
.single-post .bha-article__content table thead,
.page .entry-content table thead { background:var(--bha-charcoal); color:#fff; }
.single-post .bha-article__content table th,
.page .entry-content table th {
  padding:16px 18px;
  border:1px solid #555b56;
  background:var(--bha-charcoal);
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.025em;
  text-align:left;
  vertical-align:top;
}
.single-post .bha-article__content table td,
.page .entry-content table td {
  padding:16px 18px;
  border:1px solid #d7d0c6;
  background:#fff;
  vertical-align:top;
}
.single-post .bha-article__content table tbody tr:nth-child(even) td,
.page .entry-content table tbody tr:nth-child(even) td,
.single-post .bha-article__content .wp-block-table.is-style-stripes tbody tr:nth-child(even) td,
.page .entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(even) td { background:#f3efe8; }
.single-post .bha-article__content table tbody tr:hover td,
.page .entry-content table tbody tr:hover td { background:#eee8de; }
.single-post .bha-article__content table caption,
.page .entry-content table caption {
  padding:0 0 12px;
  color:var(--bha-muted);
  font-size:13px;
  font-weight:600;
  text-align:left;
}
.single-post .bha-article__content table a,
.page .entry-content table a { color:var(--bha-bronze-dark); font-weight:700; }

@media (max-width:760px) {
  .single-post .bha-article__content .wp-block-table,
  .page .entry-content .wp-block-table,
  .single-post .bha-article__content figure.wp-block-table,
  .page .entry-content figure.wp-block-table { width:min(calc(100% - 30px),980px); }
  .single-post .bha-article__content > table,
  .page .entry-content > table {
    display:block;
    width:min(calc(100% - 30px),100%)!important;
    max-width:100%!important;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .single-post .bha-article__content table th,
  .single-post .bha-article__content table td,
  .page .entry-content table th,
  .page .entry-content table td { min-width:165px; padding:14px 15px; }
}
