/*
Theme Name: Bauen Child - Beach House Architecture
Description: Child theme of Bauen for Beach House Architecture. Keeps Bauen's tan and grey
             and its display faces; swaps body copy to Source Sans 3 and introduces the BHA
             Atlantic blue as a sparing accent.
Author: Oak Leaf Media
Template: bauen
Version: 2.0
Text Domain: bauen-child
*/

/* ===== Tokens =====
   Bauen keeps the lead: tan #b19777, ink #272727, greys #f4f4f4 / #ececec.
   Atlantic is the guest, used once or twice a page, never as a field colour. */
:root{
  --bauen-tan:#b19777;
  --bauen-ink:#272727;
  --bauen-grey:#f4f4f4;
  --bauen-line:#ececec;
  --bha-atlantic:#17435B;
  --bha-atlantic-hover:#2E6284;
  --bha-sans:'Source Sans 3','Source Sans Pro',system-ui,sans-serif;
}

/* ===== Type =====
   Bauen's display faces stay. Body copy moves to the BHA sans. */
body,
p, li, td, th, blockquote, input, textarea, select, button,
.elementor-widget-text-editor, .bauen-text, .services-text, .footer-widget,
.wpcf7 input, .wpcf7 textarea, .wpcf7 select{
  font-family: var(--bha-sans);
}
body{ font-size:16px; line-height:1.7; }
p{ font-size:1rem; }

/* Headings, buttons, eyebrows and nav keep Bauen's condensed display face. */
h1,h2,h3,h4,h5,h6,
.navbar-nav li a, .main-menu a,
.btn, .button, a.btn, input[type=submit],
.section-head, .sec-head, .numb, .no{
  font-family:'Oswald', 'Didact Gothic', sans-serif;
}

/* ===== Atlantic accent, used sparingly =====
   1. the primary call to action
   2. the active state in filters and pagination
   Everything else stays Bauen tan. */
.btn-main, .btn-primary, .bauen-btn-main,
input[type=submit], .wpcf7 input[type=submit],
.elementor-button-primary .elementor-button{
  background-color: var(--bha-atlantic) !important;
  border-color: var(--bha-atlantic) !important;
  color:#fff !important;
}
.btn-main:hover, .btn-primary:hover, .bauen-btn-main:hover,
input[type=submit]:hover, .wpcf7 input[type=submit]:hover,
.elementor-button-primary .elementor-button:hover{
  background-color: var(--bha-atlantic-hover) !important;
  border-color: var(--bha-atlantic-hover) !important;
}
.portfolio-filter li.active, .filter li.active, .mix-filter .active,
.pagination .current, .page-numbers.current{
  color: var(--bha-atlantic) !important;
  border-color: var(--bha-atlantic) !important;
}

/* Bauen's own scroll-reveal is left alone; only the PACE loader is suppressed. */
.pace, .pace-activity{display:none !important}

/* ===== Password gate, in Bauen's dress ===== */
body.login{background:var(--bauen-grey);font-family:var(--bha-sans)}
.login h1 a{background:none!important;width:auto!important;height:auto!important;text-indent:0!important;font-size:0!important}
.login h1 a:after{content:"Beach House Architecture";font-family:'Oswald',sans-serif;font-size:1.4rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bauen-ink);display:block;text-align:center}
.login form{background:#fff;border:1px solid var(--bauen-line);box-shadow:none;border-radius:0;padding:38px 36px}
.login label{font-family:'Oswald',sans-serif;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bauen-tan)}
.login input[type=password],.login input[type=text]{border:1px solid var(--bauen-line);border-radius:0;box-shadow:none;padding:12px 14px}
.login .button-primary,.login #wp-submit{background:var(--bha-atlantic)!important;border-color:var(--bha-atlantic)!important;color:#fff!important;border-radius:0;box-shadow:none;text-shadow:none;width:100%;padding:12px 0;height:auto;font-family:'Oswald',sans-serif;letter-spacing:.16em;text-transform:uppercase}
.login #backtoblog,.login #nav,.login .privacy-policy-page-link,.login .language-switcher{display:none}
/* Belt and braces: the demo ships the preloader on, and it covers inner pages. */
#preloader, .preloader-bg, div.isdone{display:none !important}

/* ===== Portfolio detail pages (plans and built homes) ===== */
.bha-detail{max-width:1140px;margin:0 auto;padding:0 20px}
.bha-detail .lead{font-size:1.12rem;line-height:1.75;color:#4a4a4a;max-width:62ch;margin:0 0 34px}
.bha-detail .hero{margin:0 0 40px;border:1px solid var(--bauen-line)}
.bha-detail .hero img{width:100%;height:auto;display:block}
.bha-detail .spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0;border-top:1px solid var(--bauen-ink);margin:0 0 40px}
.bha-detail .spec div{padding:18px 20px 20px;border-bottom:1px solid var(--bauen-line);border-right:1px solid var(--bauen-line)}
.bha-detail .spec div:last-child{border-right:0}
.bha-detail .spec dt{font-family:'Oswald',sans-serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bauen-tan);margin:0 0 7px}
.bha-detail .spec dd{margin:0;font-size:1.02rem;color:var(--bauen-ink)}
.bha-detail .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;margin:0 0 44px}
.bha-detail .gallery figure{margin:0;border:1px solid var(--bauen-line);overflow:hidden}
.bha-detail .gallery img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}
.bha-detail .cta{margin:0 0 20px}
.bha-detail .cta a{display:inline-block;background:var(--bha-atlantic);color:#fff;
  font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  padding:16px 34px;border:1px solid var(--bha-atlantic);transition:.25s;text-decoration:none}
.bha-detail .cta a:hover{background:var(--bha-atlantic-hover);border-color:var(--bha-atlantic-hover);color:#fff}
.bha-detail .note{font-family:'Oswald',sans-serif;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:#8a8a8a;margin:0 0 10px}
@media(max-width:768px){ .bha-detail .spec{grid-template-columns:1fr 1fr} .bha-detail .gallery{grid-template-columns:1fr} }
.bha-plan-notice{font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bha-atlantic);border-left:3px solid var(--bha-atlantic);padding:12px 16px;margin:0 0 22px;background:#fff}

/* ===== Off-canvas wordmark =====
   The panel is 270px; Bauen's letter-spacing pushes "ARCHITECTURE" past it and
   the word breaks mid-way. Keep it on word boundaries and size it to fit. */
.if-call-white .logo a, aside .logo a, .bauen-sidebar-logo a,
.if-call-white .text-logo, aside .text-logo{
  word-break:normal !important; overflow-wrap:normal !important; hyphens:none !important;
}
.if-call-white h2, aside .logo h2, .bauen-sidebar-logo h2{
  font-size:1.05rem !important; letter-spacing:.1em !important; line-height:1.45 !important;
  word-break:normal !important; overflow-wrap:normal !important; white-space:normal !important;
}
.if-call-white h2 span, aside .logo h2 span{
  font-size:.52rem !important; letter-spacing:.2em !important; display:block; margin-top:6px;
}
/* The consultation submit is the page's primary action, so it takes the Atlantic. */
.wpcf7 input.wpcf7-submit, .wpcf7 .wpcf7-form input[type=submit], form.wpcf7-form input[type=submit]{
  background:var(--bha-atlantic) !important; border:1px solid var(--bha-atlantic) !important;
  color:#fff !important; border-radius:0 !important; box-shadow:none !important; text-shadow:none !important;
  font-family:'Oswald',sans-serif; letter-spacing:.16em; text-transform:uppercase; padding:16px 34px; cursor:pointer;
}
.wpcf7 input.wpcf7-submit:hover, form.wpcf7-form input[type=submit]:hover{
  background:var(--bha-atlantic-hover) !important; border-color:var(--bha-atlantic-hover) !important;
}
/* CF7 6.x wraps the submit in a span and renders a <button class="butn-dark">. */
.wpcf7-submit button, button.butn-dark[type=submit], .wpcf7 button[type=submit]{
  background:var(--bha-atlantic) !important; border:1px solid var(--bha-atlantic) !important;
  color:#fff !important; border-radius:0 !important; box-shadow:none !important;
}
.wpcf7-submit button:hover, button.butn-dark[type=submit]:hover, .wpcf7 button[type=submit]:hover{
  background:var(--bha-atlantic-hover) !important; border-color:var(--bha-atlantic-hover) !important; color:#fff !important;
}
.wpcf7-submit button span, button.butn-dark[type=submit] span{color:#fff !important}

/* ===== BHA portfolio grid (used where Bauen's widget cannot filter by collection) ===== */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:22px;margin:0 0 10px}
.plan-card{position:relative;display:block;overflow:hidden;text-decoration:none;background:var(--bauen-grey)}
.plan-card .thumb{aspect-ratio:4/3;overflow:hidden}
.plan-card .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.plan-card:hover .thumb img{transform:scale(1.06)}
.plan-card .meta{position:absolute;left:0;right:0;bottom:0;padding:26px 24px 22px;
  background:linear-gradient(transparent,rgba(20,20,20,.78));color:#fff}
.plan-card .k{font-family:'Oswald',sans-serif;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bauen-tan);margin-bottom:7px}
.plan-card h3{font-family:'Oswald',sans-serif;font-size:1.12rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin:0}
.plan-card .sf{font-family:'Oswald',sans-serif;font-size:.62rem;letter-spacing:.14em;color:rgba(255,255,255,.8);margin-top:6px}
@media(max-width:768px){.plan-grid{grid-template-columns:1fr}}

/* ============ Services-led site (v3) ============ */
.lede{font-size:1.2rem;line-height:1.7;color:#4a4a4a;max-width:70ch}
.bha-svc-body{max-width:70ch}
.bha-svc-body h2{font-family:'Oswald',sans-serif;font-size:1.72rem;line-height:1.3;letter-spacing:.02em;
  color:var(--bauen-ink);margin:0 0 22px}
.bha-svc-body h3{font-family:'Oswald',sans-serif;font-size:1.06rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--bauen-ink);margin:34px 0 12px}
.bha-svc-body h3:first-child{margin-top:0}
.bha-svc-body p{font-size:1.01rem;line-height:1.8;color:#4a4a4a;margin:0 0 16px}
.bha-list{list-style:none;margin:0 0 22px;padding:0}
.bha-list li{position:relative;padding:9px 0 9px 26px;border-bottom:1px solid var(--bauen-line);
  font-size:1rem;color:#4a4a4a}
.bha-list li:before{content:"";position:absolute;left:0;top:18px;width:11px;height:1px;background:var(--bauen-tan)}

.bha-cta{text-align:center;padding:26px 0 6px}
.bha-cta h3{font-family:'Oswald',sans-serif;font-size:1.5rem;letter-spacing:.02em;color:var(--bauen-ink);margin:0 0 12px}
.bha-cta p{font-size:1.02rem;color:#4a4a4a;max-width:60ch;margin:0 auto}
.bha-cta .butn-dark{margin-top:26px}

.bha-contact-left h2{font-family:'Oswald',sans-serif;font-size:1.9rem;line-height:1.28;color:var(--bauen-ink);margin:0 0 18px}
.bha-contact-left p{font-size:1.02rem;line-height:1.8;color:#4a4a4a;max-width:52ch;margin:0 0 30px}
.bha-contact-lines{border-top:1px solid var(--bauen-ink)}
.bha-contact-lines > div{padding:16px 0;border-bottom:1px solid var(--bauen-line);font-size:1.02rem;color:var(--bauen-ink)}
.bha-contact-lines span{display:block;font-family:'Oswald',sans-serif;font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--bauen-tan);margin-bottom:6px}
.bha-contact-lines a{color:var(--bha-atlantic);text-decoration:none;border-bottom:1px solid rgba(23,67,91,.3)}
.bha-contact-lines a:hover{color:var(--bha-atlantic-hover);border-bottom-color:var(--bha-atlantic-hover)}

/* work cards: project, not product. no sheet numbers. */
.plan-card .k{color:var(--bauen-tan)}
.plan-card .sf{display:none}
@media(max-width:768px){.lede{font-size:1.08rem}.bha-svc-body h2{font-size:1.42rem}}

/* Hero line breaks are set for desktop measure; let phones re-wrap naturally. */
@media(max-width:767px){
  .o-hidden p br, .caption p br, .slider-text p br{display:none}
  .bha-cta{padding:20px 0 4px}
  .bha-contact-left h2{font-size:1.5rem}
}

/* ---- Services grid (photo cards in Bauen's idiom) ---- */
.bha-svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 26px}
.bha-svc{display:block;text-decoration:none;color:inherit}
.bha-svc .shot{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:var(--bauen-grey)}
.bha-svc .shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}
.bha-svc:hover .shot img{transform:scale(1.05)}
.bha-svc .num{position:absolute;right:14px;bottom:10px;font-family:'Oswald',sans-serif;font-style:normal;
  font-size:2.1rem;line-height:1;color:#fff;opacity:.85;letter-spacing:.04em;
  text-shadow:0 1px 14px rgba(0,0,0,.45)}
.bha-svc .body{display:block;padding:18px 2px 0}
.bha-svc .t{display:block;font-family:'Oswald',sans-serif;font-size:1.02rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--bauen-ink);margin-bottom:10px}
.bha-svc .d{display:block;font-size:.96rem;line-height:1.75;color:#5a5a5a;margin-bottom:12px}
.bha-svc .more{display:inline-block;font-family:'Oswald',sans-serif;font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--bauen-tan);border-bottom:1px solid transparent;padding-bottom:2px;
  transition:border-color .3s ease}
.bha-svc:hover .more{border-bottom-color:var(--bauen-tan)}
.bha-svc:hover .t{color:var(--bauen-tan)}
@media(max-width:1024px){.bha-svcs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.bha-svcs{grid-template-columns:1fr;gap:34px}}

/* Bauen's button is a block-level wrapper; inside our blocks it must hug its label. */
.bha-cta .butn-dark,
.bha-svc-body .butn-dark{display:inline-block;width:auto}
.bha-cta .butn-dark a,
.bha-svc-body .butn-dark a{padding-left:34px;padding-right:34px}

/* ===== Logo =====
   The firm's lighthouse mark replaces the text wordmark. The heading text stays in the
   markup for screen readers and search; it is hidden visually behind the image. */
.bauen-logo h2, aside .logo h2, .bauen-sidebar-logo h2{
  position:relative; font-size:0 !important; line-height:0 !important; color:transparent !important;
  display:block !important; width:190px !important; min-width:190px; height:142px; margin:0 auto;
  background:url(assets/brand/bha-logo-dark.png) center/contain no-repeat;
}
.bauen-logo a{ display:block; }
.bauen-logo h2 span, aside .logo h2 span{ display:none !important; }
@media(max-width:1024px){
  .bauen-logo h2, aside .logo h2, .bauen-sidebar-logo h2{ width:120px !important; min-width:120px; height:62px; background-position:left center; margin:0; }
}

/* ===== Town pages, Service Areas, Long Beach Island sections ===== */
.bha-town h2,.bha-areas h2{font-family:'Oswald',sans-serif;font-size:1.4rem;line-height:1.3;letter-spacing:.02em;color:var(--bauen-ink);margin:34px 0 12px}
.bha-town h2:first-child{margin-top:0}
.bha-town-more{border-top:1px solid var(--bauen-line);padding-top:20px;margin-top:30px !important}
.bha-town-more a,.bha-town-links a,.bha-area a{color:var(--bha-atlantic);text-decoration:none;border-bottom:1px solid rgba(23,67,91,.3)}
.bha-town-more a:hover,.bha-town-links a:hover,.bha-area a:hover{border-bottom-color:var(--bha-atlantic)}
.bha-town-links{list-style:none !important;margin:0 0 10px;padding:0;columns:2;column-gap:32px}
.bha-town-links li{margin:0 0 8px;break-inside:avoid}
.bha-areas{max-width:none}
.bha-area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:30px 34px;margin:30px 0 34px;border-top:1px solid var(--bauen-ink);padding-top:28px}
.bha-area h3{margin:0 0 10px !important}
.bha-area h3 small{display:block;font-family:var(--bha-sans);font-size:.78rem;letter-spacing:0;text-transform:none;color:#8a8a8a;margin-top:3px}
.bha-area ul{list-style:none !important;margin:0;padding:0}
.bha-area li{margin:0 0 6px;font-size:.95rem}
.bha-lbi{border-top:1px solid var(--bauen-line);margin-top:34px;padding-top:30px}
@media(max-width:768px){.bha-town-links{columns:1}}

.bha-town-links li,.bha-area li{list-style:none !important;padding-left:0 !important}
.bha-town-links li::before,.bha-area li::before{content:none !important;display:none !important}
.bha-areas-more{margin-top:14px !important}
.bha-areas-more a{color:var(--bha-atlantic);border-bottom:1px solid currentColor;text-decoration:none}
.bha-svc-intro{margin:10px auto 0}
.bha-videos{scroll-margin-top:40px;margin:20px 0 10px}
.bha-videos h3{font-family:'Oswald',sans-serif;font-size:1.5rem;letter-spacing:.02em;margin:0 0 18px}
.bha-video{margin:0;max-width:980px}
.bha-video video{display:block;width:100%;aspect-ratio:16/9;background:#111}
.bha-video figcaption{font-size:.86rem;color:#8a8a8a;margin-top:10px}

/* Long page titles ("About Beach House Architecture") overran a 375px screen at Bauen's
   40px / 10px tracking. Tighten the tracking and size on phones so the longest word fits. */
@media(max-width:480px){
  .section-title{font-size:30px !important;letter-spacing:5px !important;overflow-wrap:break-word}
}
/* Slides 2+ are demoted to <h2> (one H1 per page); keep them sized like the first. */
.header .caption h2.bn-slider-title-class,h2.bn-slider-title-class{font-size:48px;line-height:1.35em;margin-bottom:20px}
@media screen and (max-width:991px){.header .caption h2.bn-slider-title-class,h2.bn-slider-title-class{font-size:40px}}
@media screen and (max-width:767px){.header .caption h2.bn-slider-title-class,h2.bn-slider-title-class{font-size:30px;margin-bottom:15px;letter-spacing:10px}}
/* Submit is now a plain <button> (no nested link), so it carries the padding itself. */
.wpcf7 button.butn-dark[type=submit]{padding:16px 34px !important;line-height:1.2 !important;font-family:'Oswald',sans-serif;
  font-size:.8rem !important;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;height:auto !important}
.wpcf7 button.butn-dark[type=submit] span{font:inherit;letter-spacing:inherit}
/* Contact and Privacy now open under the standard banner; give the content the same breathing room. */
.page-id-1946 .elementor > .elementor-section:first-child,
.page-id-1946 .elementor-section-wrap > .elementor-section:first-child{padding-top:90px}
.privacy-policy .bha-privacy{padding:90px 0 60px;max-width:760px}
.bha-form-note{font-size:.85rem !important;color:#8a8a8a !important;margin-top:14px !important}
.bha-form-note a{color:var(--bha-atlantic);border-bottom:1px solid currentColor;text-decoration:none}

/* ===== Consultation form (2026-10-22): real boxed fields on a two-column grid ===== */
.bha-f{max-width:760px}
.bha-f-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.bha-f-field{display:block;margin:0 0 20px;font-weight:400}
.bha-f-field > span:first-child{display:block;margin-bottom:8px;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#272727}
.bha-f .wpcf7-form-control-wrap{display:block}
.bha-f input[type=text],.bha-f input[type=tel],.bha-f input[type=email],.bha-f select,.bha-f textarea{
  display:block;width:100% !important;box-sizing:border-box;margin:0 !important;height:auto !important;
  padding:14px 16px !important;font-size:16px !important;line-height:1.4 !important;color:#272727;
  background:#fff !important;border:1px solid #cfc8bb !important;border-radius:0;box-shadow:none;transition:border-color .2s}
.bha-f textarea{min-height:140px;resize:vertical}
.bha-f select{appearance:none;-webkit-appearance:none;padding-right:44px !important;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23272727' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center !important}
.bha-f input:focus,.bha-f select:focus,.bha-f textarea:focus{outline:none;border-color:#17435B !important}
.bha-f ::placeholder{color:#a39d92}
.bha-f-submit{margin-top:6px}
.bha-f .wpcf7-not-valid{border-color:#a3412f !important}
.bha-f .wpcf7-not-valid-tip{font-size:.8rem;margin-top:6px;color:#a3412f}
@media (max-width:767px){.bha-f-grid{grid-template-columns:1fr}}

/* ===== About (2026-10-22) ===== */
.bha-about{--ink:#272727;--tan:#B19777;--rule:#e6e1d8}
.bha-about .bp-eyebrow{display:block;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--tan);margin-bottom:14px;line-height:1.6}
.ba-photo{margin:0 0 56px !important;aspect-ratio:2/1;overflow:hidden}
.ba-photo img{width:100%;height:100%;object-fit:cover;object-position:55% 40%;display:block}
.ba-lede{font-family:var(--bha-serif);font-size:30px !important;line-height:1.45 !important;color:var(--ink) !important;max-width:920px;margin:0 0 90px !important}
.ba-split{display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:start;border-top:1px solid var(--ink);padding-top:44px}
.ba-copy h2{font-size:38px !important;margin:0 0 22px !important}
.ba-list{list-style:none !important;margin:0 !important;padding:0 !important;counter-reset:ba}
.ba-list li{counter-increment:ba;list-style:none !important;margin:0 !important;padding:16px 0 16px 46px !important;border-bottom:1px solid var(--rule);position:relative;font-size:17px;line-height:1.5}
.ba-list li::before{content:counter(ba,decimal-leading-zero);position:absolute;left:0;top:18px;font-family:'Oswald',sans-serif;font-size:.75rem;letter-spacing:.18em;color:var(--tan)}
.ba-list li::marker{content:none}
@media (max-width:991px){.ba-split{grid-template-columns:1fr;gap:40px}.ba-lede{font-size:23px !important;margin-bottom:56px !important}.ba-photo{aspect-ratio:3/2}}
.bha-home-care .ba-photo{aspect-ratio:21/9;margin-bottom:60px !important}.bha-home-care .ba-photo img{object-position:50% 45%}.bha-home-care .ba-split{border-top:0;padding-top:0}

/* ===== Line breaks (2026-10-23): no orphans, balanced headings and centered blocks ===== */
h1,h2,h3,h4,h5,h6,.section-title,.bn-slider-title-class,.bp-eyebrow,figcaption,.bha-svc h3,.bt-h{text-wrap:balance}
p,li,dd,.bha-mg-note{text-wrap:pretty}
.bha-cta p,.text-center p,[style*="text-align:center"] p,.bha-cta h3,.elementor-widget-text-editor.elementor-align-center p{text-wrap:balance}
.bha-cta p{max-width:620px;margin-left:auto !important;margin-right:auto !important}
.bha-svc-drawing .shot{background:#fff;border:1px solid #e6e1d8}.bha-svc-drawing .num{color:#272727 !important;text-shadow:none !important;opacity:.55}
.bha-svc .d{text-wrap:pretty}
/* Spam trap field: off screen for people, still in the form for bots. */
.bha-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}

/* ===== Project pages (2026-10-23) ===== */
.bha-detail .gallery a{display:block;overflow:hidden;cursor:zoom-in}
.bha-detail .gallery a img{transition:transform .6s ease}
.bha-detail .gallery a:hover img{transform:scale(1.03)}
.bha-proj-cta{display:flex;justify-content:space-between;align-items:center;gap:40px;margin:56px 0 20px;padding:44px 48px;background:#17435B;color:#fff}
.bha-proj-cta .bp-eyebrow{display:block;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:#d9c4a3;margin-bottom:10px}
.bha-proj-cta h2{color:#fff !important;margin:0 0 10px !important;font-size:36px !important}
.bha-proj-cta p{color:rgba(255,255,255,.82) !important;margin:0 !important;max-width:560px}
.bha-proj-btns{display:flex;flex-direction:column;align-items:flex-start;gap:14px;flex:none}
.bha-proj-cta .bt-btn{font-family:'Oswald',sans-serif;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;padding:16px 28px;background:#B19777;color:#fff !important;text-decoration:none}
.bha-proj-cta .bt-btn:hover{background:#9c8262}
.bha-proj-lot{font-family:'Oswald',sans-serif;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#fff !important;border-bottom:1px solid rgba(255,255,255,.5);text-decoration:none}
@media (max-width:991px){.bha-proj-cta{flex-direction:column;align-items:flex-start;padding:34px 26px}}
