/* Private practices page (doctors.html) additions. Loaded after styles.css. */

/* Each question looks at a different point in time */
.pp-q-when{display:block;margin-bottom:.35rem;font-family:var(--serif);font-style:italic;font-size:.98rem;color:var(--gold-ink)}

/* What a first review looks for: an icon per item instead of a dot */
.pp-review li{padding-left:2.1rem}
.pp-review li::before{display:none}
.pp-review li svg{position:absolute;left:0;top:.05em;width:1.4rem;height:1.4rem;fill:none;stroke:var(--gold-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion: no-preference){
  .pp-review.from-wait li svg path{stroke-dasharray:1;animation:mdDraw .7s ease .2s backwards}
  .pp-review.from-wait li:nth-child(2) svg path{animation-delay:.4s}
  .pp-review.from-wait li:nth-child(3) svg path{animation-delay:.6s}
}

/* =====================================================================
   Flow (Oct 25): each section hands the eye to the next with a picture
   ===================================================================== */

/* ---------- Who you'll work with: copy, then the people around the books ---------- */
.pp-intro-grid{grid-template-columns:minmax(0,26rem) minmax(0,1fr);align-items:center}
.pp-team{order:-1}
.pp-team svg{display:block;width:100%;height:auto;overflow:visible}
.pt-track{fill:none;stroke:var(--line);stroke-width:2}
.pt-link{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-dasharray:1}
.pt-dash{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:4 6;stroke-linecap:round}
.pt-ring{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-dasharray:1}
.pt-photo{transform-box:fill-box;transform-origin:center}
.pt-disc{fill:var(--paper);stroke:var(--gold);stroke-width:1.6}
.pt-halo{fill:none;stroke:var(--gold);stroke-width:.8;opacity:.45}
.pt-disc-dark{fill:var(--forest-800)}
.pt-ico{fill:none;stroke:var(--gold-ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pt-ico-dark{fill:none;stroke:var(--gold-bright);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pt-name{font:500 19px var(--serif);fill:var(--ink)}
.pt-sm{font-size:17px}
.pt-role{font:700 11px var(--sans);letter-spacing:.14em;fill:var(--gold-ink)}
.pt-sub{font:500 14.5px var(--sans);fill:var(--muted)}
.pt-pulse{fill:var(--gold)}
.pt-node{transform-box:fill-box;transform-origin:center}
.pp-pull{max-width:52rem;margin:clamp(3rem, 6vw, 4.5rem) auto 0;text-align:center}
.pp-pull-mark{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-bottom:var(--s4)}
.pp-pull-mark i{display:block;width:clamp(3rem, 12vw, 8rem);height:1px;background:var(--gold);transform-origin:right center}
.pp-pull-mark i:last-child{transform-origin:left center}
.pp-pull-mark svg{width:2.4rem;height:auto;fill:var(--gold)}
.pp-pull blockquote p{font:italic 400 clamp(1.2rem, 1.02rem + .7vw, 1.55rem)/1.55 var(--serif);color:var(--ink);text-wrap:pretty}
.pp-pull figcaption{margin-top:var(--s4)}
.pp-pull figcaption strong{display:block;font-size:1rem;font-weight:600;color:var(--ink)}
.pp-pull figcaption span{display:block;margin-top:.3rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink)}
@media (max-width: 1100px){.pp-intro-grid{grid-template-columns:minmax(0,22rem) minmax(0,1fr)}}
@media (max-width: 900px){
  .pp-intro-grid{grid-template-columns:minmax(0,1fr);text-align:left}
  .pp-team{order:0;width:100%;max-width:24rem;margin-inline:auto}
  .pp-intro-copy p:not(.eyebrow){margin-inline:0}
}
@media (prefers-reduced-motion: no-preference){
  .pp-team.reveal,.pp-cash-fig.reveal,.pp-roles.reveal,.pp-steps-wrap.reveal{transition:none}
  .pp-team.from-wait .pt-ring{animation:mdDraw .88s cubic-bezier(.45,.05,.35,1) .08s backwards}
  .pp-team.from-wait .pt-photo{animation:lfFade .8s ease .28s backwards}
  .pp-team.from-wait .pt-am{animation:mdPop .5s cubic-bezier(.34,1.56,.64,1) .44s backwards}
  .pp-team.from-wait :is(.pt-t1,.pt-t2){animation:lfFade .6s ease .6s backwards}
  .pp-team.from-wait .pt-link{animation:mdDraw .9s cubic-bezier(.45,.05,.35,1) .84s backwards}
  .pp-team.from-wait .pt-you{animation:mdPop .5s cubic-bezier(.34,1.56,.64,1) 1.44s backwards}
  .pp-team.from-wait .pt-t3{animation:lfFade .6s ease 1.56s backwards}
  .pp-team.from-wait .pt-dash{animation:lfWipe .6s ease 1.8s backwards}
  .pp-team.from-wait .pt-cpa{animation:mdPop .45s cubic-bezier(.34,1.56,.64,1) 2.16s backwards}
  .pp-team.from-wait .pt-t4{animation:lfFade .6s ease 2.24s backwards}
  .pp-pull.from-wait .pp-pull-mark i{animation:ruleDraw .8s cubic-bezier(.45,.05,.35,1) .25s backwards}
  .pp-pull.from-wait .pp-pull-mark svg{animation:mdPop .5s cubic-bezier(.34,1.56,.64,1) .1s backwards}
}
@media (prefers-reduced-motion: reduce){.pt-loop{display:none}}

/* ---------- Every month: the cycle beside the heading; four numbered stops ---------- */
.pp-page .lf-month-head{margin-bottom:var(--s6)}
.pp-extras{position:relative}
.pp-plus{position:absolute;top:-.95rem;left:0;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--gold)}
.pp-plus::before,.pp-plus::after{content:"";position:absolute;left:50%;top:50%;width:.8rem;height:2px;margin:-1px 0 0 -.4rem;background:#231A05;border-radius:1px}
.pp-plus::after{transform:rotate(90deg)}
.pp-extras h3{margin-top:var(--s2)}
@media (prefers-reduced-motion: no-preference){
  .pp-core.from-wait > li:nth-child(4){animation-delay:1.05s}
  .pp-core.from-wait > li:nth-child(4) .lf-disc svg{animation-delay:1.15s}
  .pp-core.from-wait > li:nth-child(4) .lf-disc g path{animation-delay:1.45s}
  .pp-core.from-wait > li:nth-child(4) .lf-disc b{animation-delay:1.8s}
  .pp-core.from-wait > li:nth-child(3)::after{animation-delay:1s}
  .pp-extras.from-wait .pp-plus{animation:mdPop .45s cubic-bezier(.34,1.56,.64,1) .5s backwards}
}

/* ---------- Profit and cash: where a profit goes before it reaches the bank ---------- */
.pp-cash-head{display:grid;grid-template-columns:minmax(0,28rem) minmax(0,1fr);gap:clamp(2rem, 5vw, 4.5rem);align-items:center;margin-bottom:var(--s6)}
.pp-cash-head .section-head{margin-bottom:0}
.pp-cash-fig{order:-1}
.pp-cash-fig svg{display:block;width:100%;height:auto;overflow:visible}
.pc-base{fill:none;stroke:#CDBF9C;stroke-width:1.5}
.pc-bar{transform-box:fill-box;transform-origin:center bottom}
.pc-profit{fill:var(--gold)}
.pc-cash{fill:var(--forest-600)}
.pc-bar-out{fill:rgba(201,162,75,.16);stroke:var(--gold);stroke-width:1.4;stroke-dasharray:4 4}
.pc-out{transform-box:fill-box;transform-origin:center top}
.pc-arrow{fill:none;stroke:var(--gold-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pc-step{fill:none;stroke:#B9AC88;stroke-width:1.4;stroke-dasharray:2 4}
.pc-lab{font:500 14px var(--sans);fill:var(--muted)}
.pc-strong{font-weight:700;fill:var(--ink)}
.pc-tag{font:700 11.5px var(--sans);letter-spacing:.16em;fill:var(--gold-ink)}
@media (max-width: 900px){
  .pp-cash-head{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .pp-cash-fig{order:0;width:100%;max-width:26rem;margin-inline:auto}
}
@media (prefers-reduced-motion: no-preference){
  .pp-cash-fig.from-wait .pc-profit{animation:trGrow .7s cubic-bezier(.22,.61,.36,1) .18s backwards}
  .pp-cash-fig.from-wait .pc-out{animation:lfDown .5s cubic-bezier(.22,.61,.36,1) backwards}
  .pp-cash-fig.from-wait .pc-o0{animation-delay:.88s}
  .pp-cash-fig.from-wait .pc-o1{animation-delay:1.28s}
  .pp-cash-fig.from-wait .pc-o2{animation-delay:1.67s}
  .pp-cash-fig.from-wait .pc-cash{animation:trGrow .6s cubic-bezier(.22,.61,.36,1) 2.16s backwards}
  .pp-cash-fig.from-wait .pc-step{animation:lfWipe .35s ease backwards}
  .pp-cash-fig.from-wait .pc-s0{animation-delay:.7s}
  .pp-cash-fig.from-wait .pc-s1{animation-delay:1.14s}
  .pp-cash-fig.from-wait .pc-s2{animation-delay:1.54s}
  .pp-cash-fig.from-wait .pc-s3{animation-delay:1.94s}
  .pp-cash-fig.from-wait :is(.pc-lab,.pc-tag){animation:lfFade .5s ease .44s backwards}
  .pp-cash-fig.from-wait .pc-l1{animation-delay:1.01s}
  .pp-cash-fig.from-wait .pc-l2{animation-delay:1.41s}
  .pp-cash-fig.from-wait .pc-l3{animation-delay:1.8s}
  .pp-cash-fig.from-wait .pc-l4{animation-delay:2.38s}
  .pp-cash-fig.is-live .pc-arrow{animation:pcDrip 2.6s ease-in-out 3.2s infinite}
  .pp-cash-fig.is-live .pc-o1 .pc-arrow{animation-delay:3.5s}
  .pp-cash-fig.is-live .pc-o2 .pc-arrow{animation-delay:3.8s}
}
@keyframes pcDrip{0%,60%,100%{transform:none}30%{transform:translateY(4px)}}

/* ---------- Getting started: the shortcut past step 2 ---------- */
.pp-steps-wrap{position:relative}
@media (min-width: 1101px){.pp-steps-wrap{padding-top:6.25rem}}
@media (max-width: 1100px){.pp-steps-wrap .lf-bypass{display:none}}
@media (prefers-reduced-motion: no-preference) and (min-width: 1101px){
  .pp-steps-wrap.from-wait .ln-skip{animation:lfWipe .72s cubic-bezier(.45,.05,.35,1) 1.94s backwards}
  .pp-steps-wrap.from-wait .ln-label{animation:lfFade .6s ease 2.23s backwards}
  .pp-steps-wrap.from-wait .ln-head{animation:lfFade .3s ease 2.59s backwards}
}

/* ---------- Fit: who handles what ---------- */
.pp-roles{display:grid;grid-template-columns:minmax(0,1fr) minmax(7rem,10rem) minmax(0,1.25fr) minmax(7rem,10rem) minmax(0,1fr);align-items:center;margin-bottom:clamp(2.5rem, 5vw, 3.5rem)}
.pp-role{height:100%;padding:1.35rem 1.25rem 1.45rem;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius)}
.pp-role-ico{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;border:1.5px solid var(--gold);background:var(--paper);margin-bottom:var(--s3)}
.pp-role-ico svg{width:1.3rem;height:1.3rem;fill:none;stroke:var(--gold-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pp-role h3{font-family:var(--sans);font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
.pp-role p{font-size:1rem;line-height:1.5;color:var(--ink)}
.pp-role-us{background:var(--forest-800);border-color:var(--forest-800);box-shadow:var(--shadow-card)}
.pp-role-us .pp-role-ico{background:var(--forest-700);border-color:var(--gold-bright)}
.pp-role-us .pp-role-ico svg{stroke:var(--gold-bright)}
.pp-role-us h3{color:var(--gold-bright)}
.pp-role-us p{color:var(--dark-cream)}
.pp-role-link{position:relative;padding:0 .6rem;text-align:center}
.pp-role-link p{margin-top:.55rem;font:italic 400 .98rem/1.35 var(--serif);color:var(--gold-ink)}
.pp-role-line{position:relative;display:block;height:2px;background:var(--gold);transform-origin:left center}
.pp-role-line::after{content:"";position:absolute;right:-1px;top:50%;width:.55rem;height:.55rem;border-top:2px solid var(--gold);border-right:2px solid var(--gold);transform:translateY(-50%) rotate(45deg)}
.pp-role-line i{position:absolute;left:0;top:50%;width:.5rem;height:.5rem;margin-top:-.25rem;border-radius:50%;background:var(--gold-ink);opacity:0}
@media (max-width: 900px){
  .pp-roles{grid-template-columns:minmax(0,1fr);max-width:28rem}
  .pp-role-link{display:flex;align-items:center;gap:var(--s3);padding:.55rem 0 .55rem 1.95rem;text-align:left}
  .pp-role-line{width:2px;height:2.6rem;transform-origin:center top}
  .pp-role-line::after{right:auto;left:50%;top:auto;bottom:-1px;transform:translateX(-50%) rotate(135deg)}
  .pp-role-line i{left:50%;top:0;margin:0 0 0 -.25rem}
  .pp-role-link p{margin-top:0}
}
@media (prefers-reduced-motion: no-preference){
  .pp-roles.from-wait > *{animation:staggerRise .6s cubic-bezier(.22,.61,.36,1) backwards}
  .pp-roles.from-wait > :nth-child(2){animation-delay:.35s}
  .pp-roles.from-wait > :nth-child(3){animation-delay:.6s}
  .pp-roles.from-wait > :nth-child(4){animation-delay:.95s}
  .pp-roles.from-wait > :nth-child(5){animation-delay:1.2s}
  .pp-roles.from-wait .pp-role-line{animation:ruleDraw .5s cubic-bezier(.45,.05,.35,1) .45s backwards}
  .pp-roles.from-wait > :nth-child(4) .pp-role-line{animation-delay:1.05s}
  .pp-roles.is-live .pp-role-line i{animation:prRun 3.2s cubic-bezier(.45,.05,.35,1) 2s infinite}
  .pp-roles.is-live > :nth-child(4) .pp-role-line i{animation-delay:3.6s}
}
@media (prefers-reduced-motion: no-preference) and (max-width: 900px){
  .pp-roles.from-wait .pp-role-line{animation-name:lfDown}
  .pp-roles.is-live .pp-role-line i{animation-name:prDrop}
}
@keyframes prRun{0%{left:0;opacity:0}8%{opacity:1}42%{opacity:1}50%,100%{left:calc(100% - .5rem);opacity:0}}
@keyframes prDrop{0%{top:0;opacity:0}8%{opacity:1}42%{opacity:1}50%,100%{top:calc(100% - .5rem);opacity:0}}

/* ---------- A hint of medicine (Oct 25): ECG paper, a heartbeat, the practice types, pulse eyebrows ---------- */
/* Cooler paper for this page's light sections, forms and cards */
main{--cream:#F1F5F2;--line:#DDE4DE}

/* Hero: faint ECG grid (strongest on the right, away from the copy) and a heartbeat trace */
.pp-ecg{position:absolute;inset:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.55) 45%, #000 78%);
          mask-image:linear-gradient(90deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.55) 45%, #000 78%)}
.pp-ecg::before{content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(201,162,75,.075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,162,75,.075) 1px, transparent 1px),
    linear-gradient(rgba(201,162,75,.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,162,75,.032) 1px, transparent 1px);
  background-size:40px 40px, 40px 40px, 8px 8px, 8px 8px;background-position:right bottom}
.pp-hero .page-hero-inner{padding-bottom:clamp(6.75rem, 9vw, 7.25rem)}
.pp-ecg-trace{position:absolute;left:0;bottom:2px;width:100%;height:110px;overflow:visible}
@media (max-width: 640px){.pp-ecg-trace{height:84px}}
.pp-ecg-trace path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.pp-ecg-line{stroke:#C9A24B;stroke-width:1.4;opacity:.55}
.pp-ecg-blip{stroke:#FFE9B0;stroke-width:2.2;stroke-dasharray:.03 .97;stroke-dashoffset:1;opacity:0;filter:drop-shadow(0 0 4px rgba(223,190,110,.85))}
@media (prefers-reduced-motion: no-preference){
  .pp-ecg-line{stroke-dasharray:1;animation:mdDraw 2.6s cubic-bezier(.45,.05,.35,1) .35s backwards}
  .pp-ecg-blip{opacity:1;animation:ppSweep 5.5s linear 3s infinite;animation-play-state:paused}
  .pp-ecg.is-live .pp-ecg-blip{animation-play-state:running}
}
@keyframes ppSweep{from{stroke-dashoffset:1}to{stroke-dashoffset:-.03}}

/* Your practice: medical, dental, and veterinary in turn */
.pt-cyc .pt-ico-dark{opacity:0}
.pt-cyc .pt-c1{opacity:1}
@media (prefers-reduced-motion: no-preference){
  .pt-cyc .pt-ico-dark{animation:ptCycle 9s ease-in-out infinite backwards;animation-play-state:paused}
  .pt-cyc .pt-c2{animation-delay:3s}
  .pt-cyc .pt-c3{animation-delay:6s}
  .pp-team.is-live .pt-cyc .pt-ico-dark{animation-play-state:running}
}
@keyframes ptCycle{0%{opacity:0}5%{opacity:1}31%{opacity:1}36%{opacity:0}100%{opacity:0}}

/* Eyebrow rules become a small pulse mark */
main .eyebrow::before,
main .section-head.centered .eyebrow::after{
  width:2.4rem;height:12px;background:var(--gold);margin-top:.3em;margin-top:calc(.5lh - 6px);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 12'%3E%3Cpath d='M0 7.5h12l2-3 2.5 6 3-9.5 2.5 8 1.5-1.5H36' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 12'%3E%3Cpath d='M0 7.5h12l2-3 2.5 6 3-9.5 2.5 8 1.5-1.5H36' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat}
.pp-pull-av{display:block;width:3.75rem;height:3.75rem;margin:0 auto var(--s3);border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--cream), 0 0 0 4px rgba(201,162,75,.6)}

/* Hero: the three kinds of practice, as small line icons */
.pp-types{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:var(--s4);padding:0}
.pp-types li{display:inline-flex;align-items:center;gap:.55rem;font-size:.92rem;font-weight:600;letter-spacing:.02em;color:var(--dark-cream)}
.pp-types svg{box-sizing:content-box;width:1.15rem;height:1.15rem;padding:.42rem;border-radius:50%;border:1px solid rgba(223,190,110,.55);background:rgba(12,35,29,.6);fill:none;stroke:var(--gold-bright);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion: no-preference){
  .pp-types li{animation:lfFade .5s ease backwards}
  .pp-types li:nth-child(1){animation-delay:.5s}
  .pp-types li:nth-child(2){animation-delay:.7s}
  .pp-types li:nth-child(3){animation-delay:.9s}
  .pp-types svg path{stroke-dasharray:1;animation:mdDraw .8s cubic-bezier(.45,.05,.35,1) backwards}
  .pp-types li:nth-child(1) svg path{animation-delay:.6s}
  .pp-types li:nth-child(2) svg path{animation-delay:.8s}
  .pp-types li:nth-child(3) svg path{animation-delay:1s}
}
@media (max-width: 480px){
  .pp-types{gap:.5rem .9rem}
  .pp-types li{gap:.4rem;font-size:.86rem}
  .pp-types svg{width:1rem;height:1rem;padding:.34rem}
}
/* entrance timing tightened by tools/tighten_timing.py (Oct 25) */
