/* Homepage composition refresh: FAQ alignment, Meet John, resources, closing.
   Shared alignment system = the approved provider/therapy frame:
   92vw frame (≈4vw outer margins), one column gap, 3:2 or mirrored 2:3 splits;
   ≤1100px a single 720px column; fine rules only for groups and boundaries.
   Layout only: copy, media, order, colours and fonts come from the native document. */
.elementor-86 .sv-home{
  --sv-frame:92vw;
  --sv-gap:clamp(28px,4.4vw,72px);
  --sv-section-band:clamp(48px,6vw,88px);
  --sv-r-feature:clamp(24px,2.6vw,40px);
  --sv-h2-section:clamp(34px,3.3vw,52px);
  --sv-h2-closing:clamp(40px,5vw,80px);
  --sv-rule-on-dark:rgba(247,241,232,.16);
  --sv-rule-on-light:rgba(24,11,48,.14);
}
.elementor-86 .sv-home :is(.sv-faq>.sv-wrap,.sv-library>.sv-wrap,.sv-closing>.sv-wrap),
.elementor-86 .sv-home>.sv-doctor{width:var(--sv-frame);max-width:none;margin-inline:auto}
.elementor-86 .sv-home :is(.sv-faq-heading,.sv-doctor-copy-inner,.sv-library-header) h2{font-size:var(--sv-h2-section);line-height:1.06;text-wrap:balance}

/* FAQ: compact heading block beside the broader question list (mirrored 2:3). */
.elementor-86 .sv-faq-grid{grid-template-columns:minmax(0,2fr) minmax(0,3fr);column-gap:var(--sv-gap);padding-top:var(--sv-section-band)}
.elementor-86 .sv-faq{padding-bottom:var(--sv-section-band)}

/* Meet John: introduction and credentials as one narrow group; broad portrait. */
.elementor-86 .sv-home>.sv-doctor{
  grid-template-columns:minmax(0,2fr) minmax(0,3fr);grid-template-rows:auto 1fr;
  column-gap:var(--sv-gap);row-gap:clamp(28px,3vw,44px);align-items:start;padding:var(--sv-section-band) 0}
.elementor-86 .sv-doctor-copy{grid-column:1;grid-row:1}
.elementor-86 .sv-doctor-copy-inner{max-width:30rem;gap:clamp(16px,1.6vw,22px)}
.elementor-86 .sv-home .sv-portrait-wrap{
  grid-column:2;grid-row:1/3;justify-self:stretch;align-self:stretch;max-width:none;
  /* at least 5:4 from width; grows to meet the bottom rule of the credentials */
  aspect-ratio:auto;min-height:calc((var(--sv-frame) - var(--sv-gap)) * .6 * .8);border-radius:var(--sv-r-feature)}
.elementor-86 .sv-home .sv-portrait{object-position:center 24%}
.elementor-86 .sv-portrait-caption{left:clamp(16px,1.8vw,26px);bottom:clamp(14px,1.6vw,24px)}
.elementor-86 .sv-doctor-facts{
  grid-column:1;grid-row:2;align-self:end;display:block;margin:0;max-width:30rem;
  border-top:1px solid var(--sv-rule-on-dark)}
.elementor-86 .sv-home .sv-fact{gap:4px;padding:16px 0;border-radius:0;background:none;border-bottom:1px solid var(--sv-rule-on-dark)}
.elementor-86 .sv-home .sv-fact strong{font-size:20px;line-height:1.3}
.elementor-86 .sv-home .sv-fact span{line-height:1.5}

/* Resources: one dominant feature, compact supporting entries on aligned rules. */
.elementor-86 .sv-library{padding:var(--sv-section-band) 0}
.elementor-86 .sv-library-header{align-items:flex-end;margin-bottom:clamp(28px,3vw,44px)}
.elementor-86 .sv-library-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);column-gap:var(--sv-gap)}
.elementor-86 .sv-home .sv-feature-video-media{aspect-ratio:16/10;border-radius:var(--sv-r-feature)}
.elementor-86 .sv-home .sv-feature-video-copy{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--sv-gap);row-gap:8px;
  align-items:start;max-width:none;padding-top:clamp(20px,2vw,28px)}
.elementor-86 .sv-feature-video-copy>*{grid-column:1}
.elementor-86 .sv-feature-video-copy h3{font-size:clamp(24px,2vw,30px);line-height:1.15}
.elementor-86 .sv-feature-video-copy>p:not(.sv-media-status){grid-column:2;grid-row:1/4;color:var(--sv-on-dark-muted)}
.elementor-86 .sv-feature-video-copy>:is(button,a){grid-column:2;grid-row:4;justify-self:start;margin-top:8px}
.elementor-86 .sv-feature-video-copy>.sv-media-status{grid-column:2;grid-row:5}
.elementor-86 .sv-library-list{gap:0;align-content:start}
.elementor-86 .sv-up-next{margin:0;padding-bottom:12px;border-bottom:1px solid var(--sv-rule-on-dark)}
.elementor-86 .sv-home .sv-library-item{
  grid-template-columns:clamp(112px,10.5vw,160px) minmax(0,1fr);gap:clamp(16px,1.6vw,24px);
  padding:20px 0;border-radius:0;background:none;border-bottom:1px solid var(--sv-rule-on-dark)}
.elementor-86 .sv-home .sv-resource-thumb{border-radius:var(--sv-r-media);aspect-ratio:16/10}
.elementor-86 .sv-library-item .sv-media-unavailable{margin-top:6px}

/* Closing: broad headline, two options beneath with actions in one shared position. */
.elementor-86 .sv-closing{padding:var(--sv-section-band) 0}
.elementor-86 .sv-closing-top{align-items:flex-start;text-align:left;margin-bottom:clamp(28px,3vw,44px)}
.elementor-86 .sv-closing-top>div,.elementor-86 .sv-closing-top :is(.sv-eyebrow,.sv-eyebrow span){text-align:left}
.elementor-86 .sv-closing-top h2{font-size:var(--sv-h2-closing);line-height:1.02;text-wrap:balance;margin-top:14px}
.elementor-86 .sv-closing-routes{max-width:none;gap:clamp(16px,1.6vw,24px)}
.elementor-86 .sv-home .sv-route{
  display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr;column-gap:24px;row-gap:12px;
  align-items:end;padding:clamp(28px,3vw,44px);border-radius:var(--sv-r-feature)}
.elementor-86 .sv-route>h3{grid-column:1;grid-row:1;font-size:clamp(24px,2vw,30px)}
.elementor-86 .sv-route>p{grid-column:1;grid-row:2;align-self:start;max-width:26em}
.elementor-86 .sv-route>:is(a,.sv-button){grid-column:2;grid-row:2;align-self:end}

/* Very wide screens: media grows in width, not in section height. */
@media(min-width:1600px){
  .elementor-86 .sv-home .sv-feature-video-media{aspect-ratio:16/9;max-height:520px}
  .elementor-86 .sv-home .sv-portrait-wrap{min-height:min(calc((var(--sv-frame) - var(--sv-gap)) * .6 * .7),680px)}
}
/* Small desktop / landscape tablet: keep the asymmetric compositions (stacking
   here would add height). FAQ shares the therapy panel, so it keeps therapy's 720px edges. */
@media(max-width:1100px){
  .elementor-86 .sv-home .sv-faq>.sv-wrap{width:min(100% - 2*var(--sv-pad),720px)}
  .elementor-86 .sv-home :is(.sv-faq-heading,.sv-doctor-copy-inner,.sv-library-header) h2{font-size:clamp(32px,4.3vw,44px)}
  .elementor-86 .sv-home .sv-route{grid-template-columns:minmax(0,1fr);grid-template-rows:none;align-content:start;align-items:start}
  .elementor-86 .sv-route>:is(h3,p,a,.sv-button){grid-column:1;grid-row:auto}
  .elementor-86 .sv-route>:is(a,.sv-button){justify-self:start;margin-top:auto}
  .elementor-86 .sv-route>p{margin-bottom:12px}
  .elementor-86 .sv-home .sv-route{grid-template-rows:auto auto 1fr}
  /* Meet John: portrait keeps a landscape crop; credentials become one row beneath. */
  .elementor-86 .sv-home>.sv-doctor{grid-template-rows:auto auto}
  .elementor-86 .sv-home .sv-portrait-wrap{grid-row:1;align-self:start;min-height:0;aspect-ratio:5/4}
  .elementor-86 .sv-doctor-facts{grid-column:1/-1;grid-row:2;max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--sv-gap)}
  .elementor-86 .sv-home .sv-fact{border-bottom:0;padding-bottom:0}
  /* Feature copy as one narrow column under the media. */
  .elementor-86 .sv-home .sv-feature-video-copy{grid-template-columns:minmax(0,1fr)}
  .elementor-86 .sv-feature-video-copy>p:not(.sv-media-status),
  .elementor-86 .sv-feature-video-copy>:is(button,a),
  .elementor-86 .sv-feature-video-copy>.sv-media-status{grid-column:1;grid-row:auto}
}
/* Tablet portrait and below: the approved single 720px column. */
@media(max-width:860px){
  .elementor-86 .sv-home :is(.sv-library>.sv-wrap,.sv-closing>.sv-wrap),
  .elementor-86 .sv-home>.sv-doctor{width:min(100% - 2*var(--sv-pad),720px)}
  .elementor-86 .sv-home :is(.sv-faq-heading,.sv-doctor-copy-inner,.sv-library-header) h2{font-size:clamp(32px,8.6vw,44px)}
  .elementor-86 .sv-faq-grid{grid-template-columns:minmax(0,1fr);row-gap:32px}
  .elementor-86 .sv-home>.sv-doctor{grid-template-columns:minmax(0,1fr);grid-template-rows:none;row-gap:28px}
  .elementor-86 .sv-home .sv-portrait-wrap{grid-column:1;grid-row:1;align-self:start;min-height:0;aspect-ratio:16/10;border-radius:var(--sv-r-card);order:0}
  .elementor-86 .sv-doctor-copy{grid-row:2}
  .elementor-86 .sv-doctor-facts{grid-column:1;grid-row:3;max-width:none;display:block}
  .elementor-86 .sv-home .sv-fact{border-bottom:1px solid var(--sv-rule-on-dark);padding-bottom:16px}
  .elementor-86 .sv-doctor-copy-inner{max-width:none}
  .elementor-86 .sv-library-layout{grid-template-columns:minmax(0,1fr);row-gap:clamp(32px,5vw,44px)}
  .elementor-86 .sv-home .sv-feature-video-media{border-radius:var(--sv-r-card)}
  .elementor-86 .sv-home .sv-feature-video-copy{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .elementor-86 .sv-feature-video-copy>p:not(.sv-media-status){grid-column:2;grid-row:1/4}
  .elementor-86 .sv-feature-video-copy>:is(button,a){grid-column:2;grid-row:4}
  .elementor-86 .sv-feature-video-copy>.sv-media-status{grid-column:2;grid-row:5}
  .elementor-86 .sv-home .sv-route{border-radius:var(--sv-r-card)}
  .elementor-86 .sv-closing-top h2{font-size:clamp(36px,7vw,56px)}
}
/* Phone: clean stacking, sensible image heights. */
@media(max-width:560px){
  .elementor-86 .sv-home .sv-portrait-wrap{aspect-ratio:1/1}
  .elementor-86 .sv-home .sv-feature-video-media{aspect-ratio:16/10}
  .elementor-86 .sv-home .sv-feature-video-copy{grid-template-columns:minmax(0,1fr)}
  .elementor-86 .sv-feature-video-copy>p:not(.sv-media-status),
  .elementor-86 .sv-feature-video-copy>:is(button,a),
  .elementor-86 .sv-feature-video-copy>.sv-media-status{grid-column:1;grid-row:auto}
  .elementor-86 .sv-feature-video-copy>p:not(.sv-media-status){margin-top:4px}
  .elementor-86 .sv-home .sv-library-item{grid-template-columns:96px minmax(0,1fr)}
  .elementor-86 .sv-home .sv-route{grid-template-columns:minmax(0,1fr);grid-template-rows:none;align-items:start}
  .elementor-86 .sv-route>:is(h3,p,a,.sv-button){grid-column:1;grid-row:auto}
  .elementor-86 .sv-route>:is(a,.sv-button){justify-self:start;margin-top:8px}
  .elementor-86 .sv-closing-top h2{font-size:clamp(34px,10vw,44px)}
}
