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

/* ---------- 02 the two filmed reviews ---------- */
.bhp-rev .filmgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.4vw,30px);
  margin-top:clamp(30px,3.8vh,42px)}
.bhp-rev .fcard{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;
  background:#fff;border:1px solid var(--line-light);box-shadow:0 18px 44px rgba(23,29,58,.08);
  transition:transform .22s ease,box-shadow .22s ease}
.bhp-rev .fcard:hover{transform:translateY(-4px);box-shadow:0 30px 66px rgba(23,29,58,.14)}
.bhp-rev .fcard .media{border-radius:0;margin:0}
/* the film's accessible name: read by screen readers and by the Elementor build's iframe */
.bhp-rev .vtitle{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.bhp-rev .fbody{display:flex;flex-direction:column;flex:1;
  padding:clamp(20px,2.4vh,26px) clamp(18px,1.8vw,24px) clamp(22px,2.6vh,28px)}
.bhp-rev .fcard h3{margin:0;font-family:var(--disp);font-weight:600;font-size:clamp(19px,1.6vw,22px);
  line-height:1.22;letter-spacing:-.02em;color:var(--navy)}
.bhp-rev .frole{margin:6px 0 0;font-family:var(--body);font-size:12.5px;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep)}
.bhp-rev .fcard p:not(.frole){margin:14px 0 0;font-size:14.5px;line-height:1.75;color:var(--on-light-2)}

/* ---------- 03 the two written reviews ---------- */
.bhp-rev .rvgrid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(18px,2.2vw,26px);
  margin-top:clamp(30px,3.8vh,42px);align-items:stretch}
.bhp-rev .rvcard{display:flex;flex-direction:column;border-radius:16px;
  padding:clamp(24px,3vh,32px) clamp(22px,2.2vw,30px);
  background:rgba(255,255,255,.045);border:1px solid var(--line-dark)}
.bhp-rev .rvcard .sk{display:block;font-family:var(--body);font-size:11px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.bhp-rev .rvq{margin:16px 0 0;font-family:var(--disp);font-weight:600;font-style:italic;
  font-size:clamp(21px,2.3vw,29px);line-height:1.26;letter-spacing:-.02em;color:#fff}
.bhp-rev .rvq p{margin:0;font:inherit;color:inherit;letter-spacing:inherit}
.bhp-rev .rvfig{display:block;margin:14px 0 0;font-family:var(--disp);font-weight:600;
  font-size:clamp(38px,5vw,62px);line-height:1;letter-spacing:-.03em;color:var(--gold)}
.bhp-rev .rvctx{margin:16px 0 0;font-size:14.5px;line-height:1.78;color:var(--on-dark-2)}
.bhp-rev .rvwho{margin-top:auto;padding-top:clamp(16px,2.2vh,22px);font-family:var(--body);
  font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep)}
.bhp-rev .rvwho::before{content:"";display:block;width:38px;height:2px;background:var(--gold);
  margin-bottom:12px}

/* ---------- 04 the kept link card ---------- */
.bhp-rev .linkcard{display:block;align-self:start;border-radius:16px;padding:clamp(22px,2.6vh,28px) clamp(20px,2vw,26px);
  background:#fff;border:1px solid var(--line-light);text-decoration:none;
  box-shadow:0 14px 34px rgba(23,29,58,.07);transition:transform .2s ease,box-shadow .2s ease,
  border-color .2s ease}
.bhp-rev .linkcard:hover{transform:translateY(-3px);box-shadow:0 24px 52px rgba(23,29,58,.12);
  border-color:rgba(255,176,0,.55)}
.bhp-rev .linkcard .sk{display:block;font-family:var(--body);font-size:11px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep)}
.bhp-rev .linkcard b{display:block;margin-top:12px;font-family:var(--disp);font-weight:600;
  font-size:clamp(19px,1.7vw,23px);line-height:1.24;letter-spacing:-.02em;color:var(--navy)}
.bhp-rev .linkcard .go{display:inline-flex;align-items:center;gap:8px;margin-top:16px;
  font-family:var(--body);font-size:13.5px;font-weight:500;color:var(--navy);
  border-bottom:1.5px solid rgba(255,176,0,.7);padding-bottom:2px}
.bhp-rev .linkcard .go svg{width:15px;height:15px;fill:none;stroke:var(--gold-deep);stroke-width:2}

@media (max-width:900px){
  .bhp-rev .filmgrid{grid-template-columns:1fr}
  .bhp-rev .rvgrid{grid-template-columns:1fr}
}

/* the final CTA is a centred band, so its badge strip centres with it */
.bhp-rev .a5 .badges{justify-content:center}


/* ---------- Elementor parity for this page ---------- */
.bhp-rev .paths .elementor-widget-button{width:auto;flex:0 0 auto}
.bhp-rev .paths{display:flex}
.bhp-rev .shead.e-con{margin-block-end:20px!important}
.bhp-rev .shead + .erow.e-con,.bhp-rev .shead + .filmgrid.e-con,
.bhp-rev .shead + .rvgrid.e-con{margin-block-start:0!important}
.bhp-rev .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-rev .author .abox img{width:56px;height:70px;border-radius:12px;object-fit:cover}
.bhp-rev .author .abox .elementor-widget-image{width:auto;flex:0 0 auto}
.bhp-rev .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-rev .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-rev .fcard h3,.bhp-rev .fcard p,.bhp-rev .rvcard p,.bhp-rev .linkcard p{margin-top:0!important}
.bhp-rev .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-rev .vtitle,.bhp-rev .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-rev .fcard .filmwrap{width:100%!important}
.bhp-rev .fcard .elementor-widget-video{width:100%!important}
.bhp-rev .fcard .elementor-widget-video .elementor-wrapper,
.bhp-rev .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-rev .fcard > .filmwrap{margin:0!important}
/* the shared text-editor rule outranks Elementor's own per widget CSS for these, so each is restated */
.bhp-rev .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-rev .rvcard .rvctx p{font-size:14.5px!important;line-height:1.78!important}
.bhp-rev .linkcard .go p,.bhp-rev .linkcard .go p a{font-size:13.5px!important;line-height:1.5!important}
.bhp-rev .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-rev .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-rev .filmgrid.e-con{grid-template-columns:1fr!important}
  .bhp-rev .rvgrid.e-con{flex-direction:column!important}
  .bhp-rev .linkcard{width:100%!important}
}
