/* GENERATED by build/cnt-el/make_css.py - do not edit on the server. Source: build/cnt/cnt.css */
/* Contact Us (00-CORE-04) page components.
   Everything else on this page comes from the shared system stylesheets. */

/* ---------- 02 the split: form card left, direct contact card right ---------- */
.bhp-cnt .splitc{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(20px,2.6vw,34px);
  align-items:start}
.bhp-cnt .formcard{border-radius:18px;padding:clamp(26px,3.4vh,38px) clamp(22px,2.4vw,34px);
  background:#fff;border:1px solid var(--line-light);box-shadow:0 22px 54px rgba(23,29,58,.08)}
.bhp-cnt .formcard .shead{margin-bottom:clamp(18px,2.4vh,26px)}
.bhp-cnt .formcard .intro{max-width:52ch}

/* the form: the same fields, labels and order as the live Gravity Form, styled to the system */
.bhp-cnt .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.6vw,18px)}
.bhp-cnt .fld{display:flex;flex-direction:column;gap:7px}
.bhp-cnt .fld.wide{grid-column:1 / -1}
.bhp-cnt .fld label{font-family:var(--body);font-size:12.5px;font-weight:500;letter-spacing:.04em;
  color:var(--navy)}
.bhp-cnt .fld .req{margin-left:4px;color:var(--gold-deep)}
.bhp-cnt .fld input,.bhp-cnt .fld select,.bhp-cnt .fld textarea{min-height:48px;padding:12px 14px;
  border-radius:10px;border:1px solid var(--line-light);background:var(--field-cream);
  font-family:var(--body);font-size:15px;color:var(--navy);width:100%;
  transition:border-color .18s ease,box-shadow .18s ease}
.bhp-cnt .fld textarea{min-height:132px;resize:vertical}
.bhp-cnt .fld input:focus,.bhp-cnt .fld select:focus,.bhp-cnt .fld textarea:focus{outline:none;
  border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,176,0,.18)}
.bhp-cnt .gfrep .btn{margin-top:clamp(18px,2.4vh,24px)}
.bhp-cnt .fmicro{margin:12px 0 0;font-family:var(--body);font-size:13px;color:var(--on-light-3)}

/* the direct contact card */
.bhp-cnt .reachcard{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;
  padding:clamp(26px,3.4vh,34px) clamp(20px,2.2vw,28px) 0;
  background:linear-gradient(165deg,#171D3A 0%,#112337 100%);
  border:1px solid rgba(255,255,255,.08);box-shadow:0 22px 54px rgba(23,29,58,.18)}
.bhp-cnt .reachcard h2{margin:0 0 clamp(16px,2.2vh,22px);font-family:var(--disp);font-weight:600;
  font-size:clamp(22px,2vw,28px);line-height:1.16;letter-spacing:-.02em;color:#fff}
.bhp-cnt .telrow,.bhp-cnt .offrow{display:block;text-decoration:none;padding:16px 0;
  border-top:1px solid rgba(255,255,255,.1)}
.bhp-cnt .telrow{border-top:0;padding-top:0}
.bhp-cnt .tk{display:block;font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold)}
.bhp-cnt .telrow b{display:block;margin-top:8px;font-family:var(--disp);font-weight:600;
  font-size:clamp(26px,2.6vw,34px);line-height:1.1;letter-spacing:-.02em;color:#fff}
.bhp-cnt .telrow .th{display:block;margin-top:6px;font-family:var(--body);font-size:13.5px;
  color:var(--on-dark-2)}
.bhp-cnt .offrow .oa{display:block;margin-top:8px;font-family:var(--body);font-size:15px;line-height:1.6;
  color:#fff;border-bottom:1.5px solid rgba(255,176,0,.55);width:fit-content}
.bhp-cnt .offrow:hover .oa,.bhp-cnt .telrow:hover b{color:var(--gold)}
.bhp-cnt .mapwrap{position:relative;margin:6px -20px 0;aspect-ratio:16/10;background:#0D1730}
.bhp-cnt .mapwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
  filter:saturate(.9)}
.bhp-cnt .calrow{margin:0;padding:16px 0 clamp(20px,2.4vh,26px);font-family:var(--body);font-size:14px;
  line-height:1.65;color:var(--on-dark-2)}
.bhp-cnt .calrow a{color:#fff;font-weight:500;text-decoration:none;
  border-bottom:1.5px solid rgba(255,176,0,.7)}

/* ---------- 05 the final CTA carries the phone as a tap target ---------- */
.bhp-cnt .cta-core .body a{color:#fff;font-weight:600;text-decoration:none;
  border-bottom:1.5px solid rgba(255,176,0,.7)}

@media (max-width:900px){
  /* the brief's mobile note: form first, contact card second */
  .bhp-cnt .splitc{grid-template-columns:1fr}
  .bhp-cnt .fgrid{grid-template-columns:1fr}
}


/* ---------- Elementor parity for this page ---------- */
/* the phone in the closing CTA is a tap target, set at the same weight the static page gives it */
.bhp-cnt .cta-core .body p a{font-weight:600!important;color:#fff!important;text-decoration:none;
  border-bottom:1.5px solid rgba(255,176,0,.7)}
.bhp-cnt .paths .elementor-widget-button{width:auto;flex:0 0 auto}
.bhp-cnt .paths{display:flex}
.bhp-cnt .shead.e-con{margin-block-end:20px!important}
.bhp-cnt .shead + .erow.e-con,.bhp-cnt .shead + .filmgrid.e-con,
.bhp-cnt .shead + .rvgrid.e-con{margin-block-start:0!important}
.bhp-cnt .erow.e-con{margin-block-start:clamp(28px,3.4vh,38px)!important}
/* the author headshot matches the other pages exactly: 56 by 70 on a 12px corner */
.bhp-cnt .author .abox img{width:56px;height:70px;border-radius:12px;object-fit:cover}
.bhp-cnt .author .abox .elementor-widget-image{width:auto;flex:0 0 auto}
.bhp-cnt .a5 .badges{justify-content:center}
/* 2026-09-04: the badge strip in the closing CTA is centred on the same axis as the headline and the
   button. A grid container does not take the flex justify setting, so it is stated here. */
.bhp-cnt .cta-core .badges{justify-content:center!important;justify-items:center;width:fit-content;
  margin-inline:auto}

/* every widget wrapper carries the card's vertical rhythm in its own margin, and the embedded static
   rules would otherwise add the same gap again on the element inside */
.bhp-cnt .fcard h3,.bhp-cnt .fcard p,.bhp-cnt .rvcard p,.bhp-cnt .linkcard p{margin-top:0!important}
.bhp-cnt .rvcard .rvwho{margin-top:auto!important}
/* the film card's video widget fills the card's full width, with no rounding of its own: the card
   already clips it */
/* the hidden film title: the widget wrapper is clipped, so the heading inside it must be too, or it
   reports as a 500px overflow of a 1px box */
.bhp-cnt .vtitle,.bhp-cnt .vtitle .elementor-heading-title{position:absolute!important;width:1px!important;
  height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.bhp-cnt .fcard .filmwrap{width:100%!important}
.bhp-cnt .fcard .elementor-widget-video{width:100%!important}
.bhp-cnt .fcard .elementor-widget-video .elementor-wrapper,
.bhp-cnt .fcard .elementor-widget-video{border-radius:0!important}
/* the shared section rhythm gives a container that follows another one a top margin; inside a card
   the film sits flush against the top edge */
.bhp-cnt .fcard > .filmwrap{margin:0!important}
/* the shared text-editor rule outranks Elementor's own per widget CSS for these, so each is restated */
.bhp-cnt .rvcard .rvq p{font-family:var(--disp)!important;font-weight:600!important;font-style:italic;
  font-size:clamp(21px,2.3vw,29px)!important;line-height:1.26!important;color:#fff!important;
  letter-spacing:-.02em}
.bhp-cnt .rvcard .rvctx p{font-size:14.5px!important;line-height:1.78!important}
.bhp-cnt .linkcard .go p,.bhp-cnt .linkcard .go p a{font-size:13.5px!important;line-height:1.5!important}
.bhp-cnt .linkcard .go p a{color:var(--navy);text-decoration:none;
  border-bottom:1.5px solid rgba(255,176,0,.7)}
/* in-copy links, the same treatment the rest of the set uses */
.bhp-cnt .ecol p a{color:var(--navy);font-weight:500;text-decoration:none;
  border-bottom:1.5px solid rgba(255,176,0,.7)}
@media (max-width:900px){
  .bhp-cnt .filmgrid.e-con{grid-template-columns:1fr!important}
  .bhp-cnt .rvgrid.e-con{flex-direction:column!important}
  .bhp-cnt .linkcard{width:100%!important}
}

/* ---------- the production Gravity Form, styled to the mockup ---------- */
.bhp-cnt .gform-slot .gform_wrapper{max-width:none}
.bhp-cnt .gform-slot .gform_fields{display:grid!important;grid-template-columns:1fr 1fr!important;
  gap:clamp(14px,1.6vw,18px)!important}
.bhp-cnt .gform-slot .gfield{grid-column:auto!important;display:flex;flex-direction:column;gap:7px}
.bhp-cnt .gform-slot .gfield--width-full,
.bhp-cnt .gform-slot .gfield:has(textarea),
.bhp-cnt .gform-slot .gfield:has(select){grid-column:1 / -1!important}
.bhp-cnt .gform-slot .gfield_label{font-family:var(--body);font-size:12.5px;font-weight:500;
  letter-spacing:.04em;color:var(--navy);margin:0}
.bhp-cnt .gform-slot .gfield_required{color:var(--gold-deep)}
.bhp-cnt .gform-slot input[type=text],.bhp-cnt .gform-slot input[type=email],
.bhp-cnt .gform-slot input[type=tel],.bhp-cnt .gform-slot select,
.bhp-cnt .gform-slot textarea{min-height:48px!important;padding:12px 14px!important;
  border-radius:10px!important;border:1px solid var(--line-light)!important;
  background:var(--field-cream)!important;font-family:var(--body)!important;font-size:15px!important;
  color:var(--navy)!important;width:100%!important;box-shadow:none!important}
.bhp-cnt .gform-slot textarea{min-height:132px!important;resize:vertical}
.bhp-cnt .gform-slot input:focus,.bhp-cnt .gform-slot select:focus,
.bhp-cnt .gform-slot textarea:focus{outline:none!important;border-color:var(--gold)!important;
  box-shadow:0 0 0 3px rgba(255,176,0,.18)!important}
.bhp-cnt .gform-slot .gform_footer{margin:clamp(18px,2.4vh,24px) 0 0!important;padding:0!important}
/* Gravity Forms ships its own theme stylesheet after ours, so the button is restated at a
   specificity it cannot beat */
.bhp-cnt .gform-slot .gform_wrapper .gform_footer input.gform_button,
.bhp-cnt .gform-slot input.gform_button{background:var(--gold)!important;color:var(--navy)!important;
  border:0!important;border-radius:999px!important;width:auto!important;min-height:52px!important;
  padding:0 26px!important;font-family:var(--body)!important;font-size:15.5px!important;
  font-weight:600!important;box-shadow:0 14px 34px rgba(255,176,0,.28)!important;cursor:pointer}
.bhp-cnt .gform-slot input.gform_button:hover{transform:translateY(-2px);
  box-shadow:0 20px 44px rgba(255,176,0,.36)!important}
.bhp-cnt .gform-slot .gform_button{display:inline-flex;align-items:center;gap:10px;
  min-height:52px;padding:0 26px;border:0;border-radius:999px;background:var(--gold);
  font-family:var(--body);font-size:15.5px;font-weight:600;color:var(--navy);cursor:pointer;
  box-shadow:0 14px 34px rgba(255,176,0,.28);transition:transform .18s ease,box-shadow .18s ease}
.bhp-cnt .gform-slot .gform_button:hover{transform:translateY(-2px);
  box-shadow:0 20px 44px rgba(255,176,0,.36)}
.bhp-cnt .gform-slot .gform_validation_errors{border-radius:10px}
/* the map bleeds to the card's edges, the way it does on the static page */
.bhp-cnt .reachcard .mapwrap{margin:6px -24px 0!important;width:auto!important;
  position:relative;aspect-ratio:16/10;background:#0D1730}
/* the map iframe inside its own widget */
.bhp-cnt .mapwrap .elementor-widget-html,.bhp-cnt .mapwrap .elementor-widget-container{height:100%}
.bhp-cnt .mapwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* the office address is a link inside a dark card: the theme's link colour and weight would win */
.bhp-cnt .offrow .oa p,.bhp-cnt .offrow .oa p a{color:#fff!important;font-weight:400!important;
  font-size:15px!important;line-height:1.6!important}
.bhp-cnt .telrow .th .elementor-heading-title{font-weight:400!important}
/* the step cards are white cards on a deep band, so their copy is dark, not light. The text-editor
   selector is deliberate: a plain .fstage p also matches the step number, which is a heading widget */
.bhp-cnt .fstage .elementor-widget-text-editor p{font-size:15px!important;line-height:1.6!important;
  color:rgba(23,29,58,.62)!important}
/* the FAQ row is the shared 4fr/8fr grid: as a flex row the accordion's min-content squeezed the
   head column down to 166px and the heading overflowed it */
.bhp-cnt .g48.e-con{display:grid!important;grid-template-columns:4fr 8fr!important;
  gap:clamp(32px,4vw,56px)!important;align-items:start!important}
.bhp-cnt .g48.e-con > .e-con{width:auto!important;min-width:0}
@media (max-width:900px){.bhp-cnt .g48.e-con{grid-template-columns:1fr!important}}

/* ---------- the FAQ, the homepage's accordion exactly: hairlines and a circled plus ---------- */
.bhp-cnt .faq .elementor-accordion .elementor-accordion-item{border:0!important;
  border-top:1px solid rgba(23,29,58,.14)!important}
.bhp-cnt .faq .elementor-accordion .elementor-accordion-item:last-child{
  border-bottom:1px solid rgba(23,29,58,.14)!important}
.bhp-cnt .faq .elementor-tab-title{display:flex;align-items:center;justify-content:space-between;
  gap:20px;text-align:left}
.bhp-cnt .faq .elementor-tab-title .elementor-accordion-title{order:1;flex:1;text-align:left}
.bhp-cnt .faq .elementor-tab-title .elementor-accordion-icon{order:2;width:30px;height:30px;
  border-radius:50%;border:1px solid rgba(23,29,58,.14);display:grid;place-items:center;float:none;
  transition:background .2s,border-color .2s}
.bhp-cnt .faq .elementor-tab-title .elementor-accordion-icon i,
.bhp-cnt .faq .elementor-tab-title .elementor-accordion-icon svg{font-size:12px;width:12px;height:12px;
  line-height:1}
.bhp-cnt .faq .elementor-tab-title.elementor-active .elementor-accordion-icon{background:#FFB000;
  border-color:#FFB000}
.bhp-cnt .faq .elementor-tab-content{border:0!important}
/* the accordion answers read at body size, like every other FAQ in the set */
.bhp-cnt .accs .elementor-tab-content p{font-size:15.5px;line-height:1.78;color:var(--on-light-2)}
@media (max-width:900px){
  .bhp-cnt .splitc.e-con{flex-direction:column!important}
  .bhp-cnt .gform-slot .gform_fields{grid-template-columns:1fr!important}
  .bhp-cnt .formcard,.bhp-cnt .reachcard{width:100%!important}
}
