/* GENERATED by build/ptm-el/make_css.py - do not edit on the server. Source: build/ptm/ptm.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-ptm .filmgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.4vw,30px);
  margin-top:clamp(30px,3.8vh,42px)}
.bhp-ptm .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-ptm .fcard:hover{transform:translateY(-4px);box-shadow:0 30px 66px rgba(23,29,58,.14)}
.bhp-ptm .fcard .media{border-radius:0;margin:0}
/* the film's accessible name: read by screen readers and by the Elementor build's iframe */
.bhp-ptm .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-ptm .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-ptm .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-ptm .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-ptm .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-ptm .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-ptm .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-ptm .rvcard .sk{display:block;font-family:var(--body);font-size:11px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.bhp-ptm .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-ptm .rvq p{margin:0;font:inherit;color:inherit;letter-spacing:inherit}
.bhp-ptm .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-ptm .rvctx{margin:16px 0 0;font-size:14.5px;line-height:1.78;color:var(--on-dark-2)}
.bhp-ptm .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-ptm .rvwho::before{content:"";display:block;width:38px;height:2px;background:var(--gold);
  margin-bottom:12px}

/* ---------- 04 the kept link card ---------- */
.bhp-ptm .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-ptm .linkcard:hover{transform:translateY(-3px);box-shadow:0 24px 52px rgba(23,29,58,.12);
  border-color:rgba(255,176,0,.55)}
.bhp-ptm .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-ptm .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-ptm .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-ptm .linkcard .go svg{width:15px;height:15px;fill:none;stroke:var(--gold-deep);stroke-width:2}

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

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

/* ---------- this page's own additions ---------- */
/* the Radix credential line: the client's words, set as a credential rather than as body copy */
.bhp-ptm .credline{display:flex;align-items:center;gap:12px;margin:clamp(18px,2.4vh,26px) 0 0;
  padding:14px 20px;border-radius:12px;background:var(--field-cream);
  border:1px solid var(--line-light);font-family:var(--body);font-size:14px;font-weight:500;
  line-height:1.5;color:var(--navy);width:fit-content;max-width:100%}
.bhp-ptm .credline .ck{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--gold)}
/* a kept subhead sits under its heading at reading size, with the client's accent phrase in italic */
.bhp-ptm .herosub{margin:clamp(6px,1vh,12px) 0 clamp(14px,2vh,20px);font-family:var(--disp);font-weight:600;
  font-size:clamp(18px,1.8vw,24px);line-height:1.3;letter-spacing:-.01em;color:#fff}
/* 2026-09-04: this was a highlight, not an underline: the gradient band started at 74% of the line
   box, which is inside the letterforms. A real underline sits below the baseline, skips the
   descenders, and never crosses a glyph. */
.bhp-ptm .herosub em{font-style:italic;color:var(--gold);text-decoration:underline;
  text-decoration-color:rgba(255,176,0,.75);text-decoration-thickness:2px;
  text-underline-offset:.18em;text-decoration-skip-ink:auto}
.bhp-ptm .shead .sub{margin-top:12px}
.bhp-ptm .shead .sub em{font-style:italic;color:var(--navy);text-decoration:underline;
  text-decoration-color:rgba(255,176,0,.85);text-decoration-thickness:2px;
  text-underline-offset:.18em;text-decoration-skip-ink:auto}
/* four film cards, two per row, each with more copy than the Reviews pair */
.bhp-ptm .fcard p:not(.frole)+p{margin-top:12px}

/* the kept Radix links inside a film card, and the treatment-seeker paths they carry */
.bhp-ptm .fcard p a{color:var(--navy);font-weight:500;text-decoration:none;
  border-bottom:1.5px solid rgba(255,176,0,.7)}
.bhp-ptm .fcard p a:hover{border-bottom-color:var(--gold)}


/* ---------- Elementor parity for this page ---------- */
.bhp-ptm .paths .elementor-widget-button{width:auto;flex:0 0 auto}
.bhp-ptm .paths{display:flex}
.bhp-ptm .shead.e-con{margin-block-end:20px!important}
.bhp-ptm .shead + .erow.e-con,.bhp-ptm .shead + .filmgrid.e-con,
.bhp-ptm .shead + .rvgrid.e-con{margin-block-start:0!important}
.bhp-ptm .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-ptm .author .abox img{width:56px;height:70px;border-radius:12px;object-fit:cover}
.bhp-ptm .author .abox .elementor-widget-image{width:auto;flex:0 0 auto}
.bhp-ptm .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-ptm .cta-core .badges{justify-content:center!important;justify-items:center;width:fit-content;
  margin-inline:auto}

/* the credential line's field is the shared cream gradient, not a flat colour */
.bhp-ptm .credline{background:var(--field-cream)!important}
/* 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-ptm .fcard h3,.bhp-ptm .fcard p,.bhp-ptm .rvcard p,.bhp-ptm .linkcard p{margin-top:0!important}
.bhp-ptm .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-ptm .vtitle,.bhp-ptm .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-ptm .fcard .filmwrap{width:100%!important}
.bhp-ptm .fcard .elementor-widget-video{width:100%!important}
.bhp-ptm .fcard .elementor-widget-video .elementor-wrapper,
.bhp-ptm .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-ptm .fcard > .filmwrap{margin:0!important}
/* the shared text-editor rule outranks Elementor's own per widget CSS for these, so each is restated */
.bhp-ptm .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-ptm .rvcard .rvctx p{font-size:14.5px!important;line-height:1.78!important}
.bhp-ptm .linkcard .go p,.bhp-ptm .linkcard .go p a{font-size:13.5px!important;line-height:1.5!important}
.bhp-ptm .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-ptm .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-ptm .filmgrid.e-con{grid-template-columns:1fr!important}
  .bhp-ptm .rvgrid.e-con{flex-direction:column!important}
  .bhp-ptm .linkcard{width:100%!important}
}
