/* Reviews, first-contact journey and the original, uncropped advisor portrait. */
img.advisor-portrait,img[src*="/advisor-portrait-"],img[src$="/advisor-original.png"] {
  object-fit:contain; object-position:center; border-radius:0;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%);
}
.home-advisor { border-bottom:0; margin-bottom:0; padding-bottom:64px; }
.home-advisor .advisor-photo { aspect-ratio:auto; height:auto; min-height:0; max-height:none; align-self:center; overflow:visible; }
.home-advisor .advisor-photo>img { display:block; width:min(100%,430px); height:auto; max-height:none; margin-inline:auto; }
.home-advisor .advisor-name { margin-top:-12px; padding-top:0; }
.home-advisor .advisor-services { border-bottom:0; padding-bottom:0; }
.page-hero.kind-person>figure { background:transparent; aspect-ratio:auto; min-height:0; height:auto; overflow:visible; }
.page-hero.kind-person>figure>img { width:min(100%,410px); height:auto; max-height:none; object-fit:contain; }
.home-advisor+.advisor-story,.home-advisor+.client-reviews { margin-top:0; }
.home-advisor .advisor-copy>.button,.home-advisor .advisor-copy>.text-link { min-height:54px; vertical-align:middle; }
.home-advisor .advisor-copy>.text-link { margin-left:10px; }

.client-reviews { padding-block:64px 72px; border-top:1px solid var(--line); }
.reviews-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.7fr); gap:32px; align-items:end; margin-bottom:32px; }
.reviews-heading h2 { font-size:clamp(2rem,4vw,3.6rem); line-height:1.12; letter-spacing:-.055em; margin:14px 0 0; }
.reviews-heading h2 span { color:var(--muted); }
.reviews-heading>p { color:var(--muted); font-size:1rem; line-height:1.8; max-width:38ch; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:start; }
.reviews-grid:has(>.review-card:only-child) { grid-template-columns:minmax(0,760px); }
.review-card { margin:0; padding:26px; border:1px solid var(--line); border-radius:20px; background:var(--paper); min-width:0; }
.review-card header { display:flex; align-items:center; gap:14px; }
.review-card header>div:last-child { min-width:0; }
.review-card h3 { font-size:1rem; line-height:1.5; letter-spacing:-.02em; font-weight:650; margin:0; overflow-wrap:anywhere; }
.review-avatar { flex:0 0 52px; width:52px; height:52px; border-radius:50%; position:relative; overflow:hidden; background:var(--leaf); color:var(--green); }
.review-initials { display:grid; place-items:center; width:100%; height:100%; font-size:1rem; font-weight:700; }
.review-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:var(--leaf); }
.review-meta { display:flex; flex-wrap:wrap; gap:2px 6px; color:var(--muted); font-size:.8125rem; line-height:1.6; margin-top:4px; }
.review-card blockquote { margin:22px 0 0; padding:0; font-style:normal; }
.review-card blockquote p { margin:0; font-size:1rem; line-height:1.85; overflow-wrap:anywhere; white-space:normal; }
.review-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:22px; }
.review-photos button { position:relative; padding:0; aspect-ratio:1.15; border:1px solid var(--line); border-radius:9px; overflow:hidden; background:var(--soft); cursor:zoom-in; }
.review-photos img { display:block; width:100%; height:100%; object-fit:contain; }
.review-photos button>span { position:absolute; right:5px; bottom:5px; background:var(--paper); color:var(--ink); border-radius:5px; padding:0 5px; }
.review-gallery { width:min(920px,calc(100vw - 24px)); max-height:calc(100dvh - 28px); border:1px solid var(--line); border-radius:20px; padding:20px; background:var(--paper); color:var(--ink); }
.review-gallery::backdrop { background:#061d18b8; backdrop-filter:blur(6px); }
.review-gallery header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:14px; }
.review-gallery h2 { font-size:1.15rem; line-height:1.45; }
.review-gallery button { min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:10px; background:var(--soft); color:var(--ink); font:inherit; cursor:pointer; }
.review-gallery [data-review-close] { font-size:1.5rem; }
#review-gallery-image { display:block; width:100%; height:auto; max-height:63dvh; object-fit:contain; }
#review-gallery-caption { font-size:.875rem; line-height:1.6; margin:12px 0; color:var(--muted); }
.review-gallery-nav { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px; }
.review-gallery-nav button:disabled { opacity:.4; cursor:default; }

.consultancy-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr); gap:7%; align-items:center; padding-block:42px 56px; }
.consultancy-hero h1 { font-size:clamp(2.4rem,5vw,4.7rem); max-width:15ch; letter-spacing:-.065em; line-height:1.08; margin:18px 0 24px; }
.consultancy-hero .hero-intro { max-width:51ch; font-size:1rem; color:var(--muted); line-height:1.85; }
.consultancy-hero .hero-actions { margin-top:26px; }
.consultancy-product { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:18px; padding:28px; border-left:1px solid var(--line); margin:0; }
.consultancy-product img { width:100%; max-height:335px; object-fit:contain; filter:drop-shadow(0 16px 16px #132d2010); }
.consultancy-product figcaption { display:flex; flex-direction:column; gap:28px; font-size:.875rem; color:var(--muted); }
.consultancy-product figcaption span { display:flex; flex-direction:column; gap:6px; }
.consultancy-product figcaption small { color:var(--green); font-size:.75rem; }
.consultancy-product figcaption strong { color:var(--ink); font-weight:550; }
.consultancy-journey { padding-block:48px 64px; border-top:1px solid var(--line); scroll-margin-top:100px; }
.journey-heading { display:grid; grid-template-columns:1.1fr .7fr; align-items:end; gap:48px; margin-bottom:32px; }
.journey-heading h2 { font-size:clamp(2rem,3.5vw,3.2rem); line-height:1.12; letter-spacing:-.05em; margin:14px 0 0; }
.journey-heading h2 span { color:var(--muted); }
.journey-heading>p { max-width:38ch; color:var(--muted); font-size:1rem; line-height:1.8; }
.journey-shell { display:grid; grid-template-columns:245px minmax(0,1fr); border:1px solid var(--line); border-radius:24px; overflow:hidden; background:var(--paper); box-shadow:0 12px 50px #102f1e07; }
.journey-rail { padding:30px 18px; background:#123f30; color:#fff; display:flex; flex-direction:column; align-items:stretch; }
.journey-rail>p { padding-inline:12px; font-size:.6875rem; letter-spacing:.09em; color:#b3cdc1; margin:0 0 26px; }
.journey-rail ol { padding:0; margin:0; list-style:none; display:grid; gap:10px; }
.journey-rail li { padding:0; margin:0; }
.journey-rail li button { display:flex; align-items:center; width:100%; gap:12px; border:1px solid transparent; border-radius:12px; padding:12px; color:#e0ece6; background:transparent; text-align:left; font:inherit; font-size:.875rem; line-height:1.5; cursor:pointer; }
.journey-rail li button>span { font-size:.75rem; color:#a3c2b3; border:1px solid #ffffff36; border-radius:50%; display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; }
.journey-rail li button[aria-current=step] { background:#ffffff14; border-color:#ffffff30; color:#fff; }
.journey-rail li button[aria-current=step]>span { background:#d7eadb; color:#133d2b; border-color:#d7eadb; }
.journey-rail li button:disabled { opacity:.52; cursor:default; }
.journey-rail-note { margin-top:auto; padding:44px 12px 4px; }
.journey-rail-note>span { font-size:1.6rem; letter-spacing:-.04em; }
.journey-rail-note p { color:#b8d1c3; font-size:.875rem; line-height:1.8; margin:10px 0 20px; }
.journey-help { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:12px; border:1px solid #ffffff40; background:#ffffff0d; border-radius:10px; font-size:.8125rem; }
.journey-workspace { padding:clamp(22px,3.5vw,42px); min-width:0; }
.journey-status { display:flex; justify-content:space-between; gap:20px; align-items:center; padding-bottom:22px; margin-bottom:26px; border-bottom:1px solid var(--line); }
.journey-status>span { font-size:.8125rem; color:var(--green); font-weight:600; }
.journey-status progress { appearance:none; border:0; height:4px; width:100px; border-radius:4px; background:var(--line); color:var(--green); }
.journey-status progress::-webkit-progress-bar { background:var(--line); border-radius:4px; }
.journey-status progress::-webkit-progress-value { background:var(--green); border-radius:4px; transition:width .2s; }
.journey-status progress::-moz-progress-bar { background:var(--green); border-radius:4px; }
.journey-workspace h3 { font-size:clamp(1.6rem,2.5vw,2.2rem); line-height:1.22; letter-spacing:-.035em; margin:0 0 16px; max-width:28ch; scroll-margin-top:105px; }
.journey-workspace h3:focus { outline:none; }
.journey-workspace h3:focus-visible { outline:2px solid var(--green); outline-offset:6px; }
.journey-workspace p { font-size:.9375rem; line-height:1.8; color:var(--muted); margin:12px 0 20px; }
.journey-workspace fieldset { padding:0; border:0; min-width:0; margin:24px 0; }
.journey-workspace legend { font-size:.9375rem; font-weight:600; color:var(--ink); padding:0; margin:0 0 14px; line-height:1.6; }
.journey-choices { display:grid; gap:12px; }
.journey-choices label { display:flex; align-items:center; gap:16px; padding:18px; border:1px solid var(--line); border-radius:14px; cursor:pointer; position:relative; }
.journey-choices input { position:absolute; opacity:0; width:1px; height:1px; }
.journey-choices label:has(input:checked) { border-color:var(--green); background:var(--leaf); }
.journey-choices label:has(input:focus-visible) { outline:2px solid var(--green); outline-offset:3px; }
.choice-symbol { font-size:.75rem; flex:0 0 34px; color:var(--green); }
.journey-choices label>span:nth-of-type(2) { flex:1; }
.journey-choices strong { font-size:1rem; font-weight:600; line-height:1.5; display:block; }
.journey-choices small { display:block; font-size:.8125rem; line-height:1.65; color:var(--muted); margin-top:5px; }
.choice-tick { width:20px; height:20px; border:1px solid var(--line); border-radius:50%; flex:0 0 20px; background:var(--paper); }
.journey-choices input:checked~.choice-tick { border:6px solid var(--green); }
.journey-ownership { display:flex; flex-wrap:wrap; gap:8px; }
.journey-ownership legend { width:100%; }
.journey-ownership label { cursor:pointer; display:flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid var(--line); border-radius:10px; font-size:.8125rem; line-height:1.5; }
.journey-ownership label:has(:checked) { background:var(--leaf); border-color:var(--green); }
.journey-workspace input[type=radio] { accent-color:var(--green); }
.journey-story { margin:26px 0; }
.journey-story article { display:flex; gap:20px; padding:20px 0; border-top:1px solid var(--line); }
.journey-story article>span { width:32px; height:32px; flex:0 0 32px; border-radius:50%; display:grid; place-items:center; background:var(--leaf); color:var(--green); font-size:.75rem; }
.journey-story h4,.journey-checklist h4 { font-size:1.0625rem; margin:0 0 6px; font-weight:600; line-height:1.5; }
.journey-story p { margin:0; }
.journey-understanding { padding:20px 22px; background:var(--soft); border-left:3px solid var(--green); border-radius:0 12px 12px 0; margin-top:24px; }
.journey-understanding .section-label { font-size:.6875rem; margin:0 0 14px; }
.journey-understanding fieldset { margin:0; }
.journey-understanding label { display:flex; align-items:flex-start; gap:10px; padding-block:8px; font-size:.9375rem; line-height:1.6; cursor:pointer; }
.journey-understanding input { flex:0 0 17px; width:17px; height:17px; margin-top:4px; }
.journey-understanding [data-check-feedback] { font-size:.8125rem; margin:10px 0 0; color:var(--green); }
.journey-understanding [data-check-feedback]:empty { display:none; }
.journey-program { display:grid; grid-template-columns:minmax(0,1fr) 140px; align-items:center; gap:22px; margin:24px 0; }
.journey-program h4 { font-size:1.55rem; letter-spacing:-.04em; line-height:1.25; margin-top:12px; }
.journey-program img { width:100%; height:175px; object-fit:contain; }
.journey-example { padding:20px; border:1px solid var(--line); border-radius:14px; }
.journey-example label { display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:.875rem; line-height:1.6; font-weight:500; }
#journey-sales-count { white-space:nowrap; font-size:1.1rem; font-weight:650; color:var(--green); }
#journey-sales { width:100%; margin-block:16px 8px; height:28px; accent-color:var(--green); cursor:pointer; }
.journey-milestones { display:flex; flex-wrap:wrap; gap:7px; }
.journey-milestones>span { flex:1; min-width:30px; height:30px; display:grid; place-items:center; border-radius:6px; background:var(--soft); color:var(--muted); font-size:.8125rem; }
.journey-milestones>span[data-reached=true] { background:var(--green); color:var(--on-green); }
.journey-example p { font-weight:600; color:var(--green); margin-block:18px 8px; }
.journey-workspace small { line-height:1.7; }
.journey-example>small,.journey-calculator>small { color:var(--muted); font-size:.8125rem; display:block; }
.journey-calculator { margin:22px 0; border-block:1px solid var(--line); padding-block:18px; }
.journey-calculator summary { cursor:pointer; font-size:.9375rem; font-weight:600; line-height:1.6; }
#journey-income-result { font-size:1.25rem; font-weight:650; color:var(--green); }
.journey-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; margin-top:26px; }
.journey-checklist article { border-top:1px solid var(--line); padding-top:16px; }
.journey-checklist p { font-size:.875rem; margin-bottom:0; }
.journey-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:26px; padding-top:24px; border-top:1px solid var(--line); }
.journey-controls .button { display:flex; width:100%; min-height:54px; justify-content:center; align-items:center; text-align:center; padding:12px; margin:0; line-height:1.5; font-size:.9375rem; }
.journey-controls .button:disabled { opacity:.4; cursor:default; transform:none; }
.journey-controls:has([data-journey-next][hidden]) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.journey-controls [hidden] { display:none; }
.journey-workspace .journey-error { color:#b64332; font-size:.875rem; margin:16px 0 0; }
.journey-error:empty { display:none; }
.journey-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.journey-workspace input:not([type=radio],[type=checkbox],[type=range]),.journey-workspace textarea,.journey-workspace select { width:100%; min-height:50px; border:1px solid var(--line); border-radius:10px; padding:12px 14px; background:var(--paper); color:var(--ink); font:inherit; font-size:1rem; line-height:1.5; }
.journey-form-row label,#consultant-application>label:not(.lead-consent) { display:block; margin:18px 0 8px; font-size:.875rem; font-weight:500; line-height:1.6; }
.journey-form-row label>input { display:block; margin-top:8px; }
#consultant-application .phone-field { display:grid; grid-template-columns:170px minmax(0,1fr); align-items:start; gap:10px; }
#consultant-application .phone-status { font-size:.8125rem; margin:8px 0 18px; }
#consultant-application .optional { color:var(--muted); font-weight:400; font-size:.75rem; margin-left:6px; }
#consultant-application .lead-consent { margin-top:20px; }
#consultant-application .application-submit { width:100%; justify-content:center; min-height:56px; font-size:.9375rem; line-height:1.5; margin-top:20px; }
.application-summary { border-left:3px solid var(--green); background:var(--soft); padding:14px 18px; margin:24px 0 10px; }
.application-summary span,.application-summary strong { display:block; }
.application-summary span { font-size:.75rem; color:var(--muted); margin-bottom:6px; }
.application-summary strong { font-size:.9375rem; font-weight:600; line-height:1.6; }
#application-success { padding:28px 0; }
.application-check { display:grid; place-items:center; width:54px; height:54px; background:var(--leaf); color:var(--green); border-radius:50%; margin-bottom:18px; font-size:1.5rem; }
#application-success h4 { font-size:1.6rem; margin-bottom:14px; }
#application-success .button { width:100%; justify-content:center; margin-top:18px; }
.consultancy-details { padding-bottom:56px; }
.consultancy-details h2 { font-size:1.9rem; letter-spacing:-.04em; margin-bottom:26px; }
.consultancy-details details { border-top:1px solid var(--line); padding:20px 0; }
.consultancy-details details:last-child { border-bottom:1px solid var(--line); }
.consultancy-details summary { font-size:1rem; font-weight:550; line-height:1.6; cursor:pointer; }
.consultancy-details details p { max-width:82ch; margin:16px 0 8px; color:var(--muted); font-size:.9375rem; line-height:1.9; }
.consultancy-details .related { margin-top:36px; }
[data-journey-step][hidden],#consultant-application[hidden],#application-success[hidden] { display:none; }
@media(max-width:1050px) {
  .journey-shell { grid-template-columns:205px minmax(0,1fr); }
  .journey-rail { padding:26px 12px; }
  .journey-rail li button { padding:10px 8px; font-size:.8125rem; gap:9px; }
  .reviews-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .home-advisor { padding-bottom:42px; }
  .home-advisor .advisor-photo>img { width:min(85%,340px); height:auto; max-height:none; }
  .home-advisor .advisor-name { margin-top:-8px; }
  .home-advisor .advisor-copy>.text-link { margin-left:0; }
  .page-hero.kind-person>figure>img { width:min(85%,320px); height:auto; }
  .client-reviews { padding-block:36px 44px; }
  .reviews-heading,.journey-heading { grid-template-columns:1fr; gap:16px; margin-bottom:24px; }
  .reviews-heading h2,.journey-heading h2 { font-size:2rem; }
  .reviews-heading>p,.journey-heading>p { margin:0; max-width:none; font-size:.9375rem; }
  .reviews-grid { grid-template-columns:1fr; gap:14px; }
  .review-card { padding:20px; border-radius:16px; }
  .review-gallery { padding:14px; }
  .consultancy-hero { grid-template-columns:1fr; gap:26px; padding-block:24px 32px; }
  .consultancy-hero h1 { font-size:clamp(2rem,8vw,3rem); max-width:20ch; }
  .consultancy-product { border-left:0; border-top:1px solid var(--line); padding:20px 22px 0; grid-template-columns:minmax(0,1fr) minmax(0,.7fr); gap:28px; }
  .consultancy-product img { height:210px; }
  .consultancy-product figcaption { gap:16px; }
  .consultancy-journey { padding-block:32px 40px; }
  .journey-shell { grid-template-columns:1fr; border-radius:18px; }
  .journey-rail { padding:12px 14px; }
  .journey-rail>p,.journey-rail-note { display:none; }
  .journey-rail ol { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
  .journey-rail li button { font-size:0; padding:6px; justify-content:center; gap:0; border-radius:9px; }
  .journey-rail li button>span { width:31px; height:31px; flex-basis:31px; }
  .journey-workspace { padding:22px 18px; }
  .journey-status { margin-bottom:22px; padding-bottom:18px; gap:10px; }
  .journey-status progress { width:64px; }
  .journey-workspace h3 { font-size:1.6rem; }
  .journey-choices label { padding:15px 12px; gap:10px; }
  .choice-symbol { flex-basis:22px; }
  .journey-choices strong { font-size:.9375rem; }
  .journey-ownership { gap:6px; }
  .journey-ownership label { padding:9px; }
  .journey-understanding { padding:18px 14px; }
  .journey-story article { gap:12px; }
  .journey-checklist { grid-template-columns:1fr; gap:18px; }
  .journey-program { grid-template-columns:minmax(0,1fr) 84px; gap:10px; }
  .journey-program img { height:130px; }
  .journey-program h4 { font-size:1.35rem; }
  .journey-example { padding:16px; }
  .journey-form-row { grid-template-columns:1fr; gap:0; }
  .journey-controls { gap:10px; }
  .journey-controls .button { min-width:0; min-height:54px; font-size:.875rem; padding:10px 8px; overflow-wrap:anywhere; }
  #consultant-application .phone-field { grid-template-columns:110px minmax(0,1fr); gap:8px; }
  .consultancy-details h2 { font-size:1.6rem; }
}
@media(prefers-reduced-motion:reduce) {
  .journey-status progress::-webkit-progress-value { transition:none; }
}

.journey-controls[hidden] { display:none; }
.journey-workspace .journey-program-note { font-size:.8125rem; margin:22px 0; padding-left:16px; border-left:2px solid var(--line); }
