/* Visit Journey V2 — editorial patient path, intentionally distinct from doctor intro */
.visit-journey{
  --vj-line:rgba(179,138,69,.28);
  --vj-soft:rgba(179,138,69,.08);
  padding:58px 0 64px;
  background:var(--paper);
  overflow:hidden;
}
.visit-journey__inner{position:relative}

/* Intro is horizontal/editorial instead of another split image/text block */
.visit-journey__header{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(360px,1.18fr);
  gap:64px;
  align-items:end;
  margin-bottom:26px;
}
.visit-journey__heading-wrap{min-width:0}
.visit-journey__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--olive);
  font-size:10.5px;
  line-height:1.6;
  font-weight:500;
  letter-spacing:0;
}
.visit-journey__eyebrow-dot,
.visit-journey__badge-dot{
  display:block;
  flex:0 0 auto;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--gold);
}
.visit-journey__title{
  margin:8px 0 0;
  color:var(--ink);
  font-size:clamp(27px,2.35vw,34px);
  line-height:1.48;
  letter-spacing:-.018em;
  font-weight:600;
}
.visit-journey__lead{
  margin:0;
  max-width:680px;
  color:var(--muted);
  font-size:13px;
  line-height:2;
  font-weight:400;
}

/* One panoramic image only — short and calm */
.visit-journey__media{
  position:relative;
  height:224px;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(17,18,15,.07);
  background:#e7e1d6;
  isolation:isolate;
}
.visit-journey__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
}
.visit-journey__media-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(13,16,12,.05),transparent 34%,transparent 100%);
}
.visit-journey__badge{
  position:absolute;
  right:16px;
  bottom:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:29px;
  padding:0 11px;
  border-radius:8px;
  background:rgba(250,247,240,.92);
  color:#4e5148;
  border:1px solid rgba(255,255,255,.6);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  font-size:9.5px;
  font-weight:500;
}

/* Horizontal patient journey — no cards */
.visit-journey__steps{
  position:relative;
  display:grid;
  grid-template-columns:repeat(var(--journey-count,3),minmax(0,1fr));
  gap:30px;
  margin-top:30px;
  padding-top:0;
}
.visit-journey__steps::before{
  content:"";
  position:absolute;
  top:18px;
  right:calc(50% / var(--journey-count,3));
  left:calc(50% / var(--journey-count,3));
  height:1px;
  background:linear-gradient(90deg,rgba(179,138,69,.18),rgba(179,138,69,.48),rgba(179,138,69,.18));
  transform:scaleX(0);
  transform-origin:right center;
  transition:transform .85s cubic-bezier(.2,.7,.2,1) .08s;
}
.visit-journey__steps.is-in::before{transform:scaleX(1)}
.visit-journey__step{
  position:relative;
  min-width:0;
  text-align:center;
  padding:0 12px;
  color:var(--ink);
}
.visit-journey__step-marker{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  margin:0 auto 12px;
  border-radius:50%;
  border:1px solid rgba(179,138,69,.38);
  background:var(--paper);
  color:#9c7535;
  transition:border-color .22s ease,background-color .22s ease,color .22s ease;
}
.visit-journey__step-marker span{
  font-size:10.5px;
  font-weight:500;
  line-height:1;
}
.visit-journey__step h3{
  margin:0 0 4px;
  color:var(--ink);
  font-size:13.5px;
  line-height:1.65;
  font-weight:600;
  transition:color .22s ease;
}
.visit-journey__step p{
  margin:0 auto;
  max-width:300px;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.85;
  font-weight:400;
}
@media(hover:hover) and (pointer:fine){
  .visit-journey__step:hover .visit-journey__step-marker{
    border-color:var(--gold);
    background:var(--vj-soft);
    color:#886426;
  }
  .visit-journey__step:hover h3{color:#75603c}
}

/* Text CTA, not another heavy button */
.visit-journey__actions{
  display:flex;
  justify-content:center;
  margin-top:24px;
}
.visit-journey__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:32px;
  padding:0 1px 3px;
  border-bottom:1px solid rgba(17,18,15,.28);
  color:var(--ink);
  font-size:11px;
  line-height:1.5;
  font-weight:500;
  transition:color .22s ease,border-color .22s ease;
}
.visit-journey__cta svg{width:15px;height:15px}
.visit-journey__cta:hover{
  color:#886426;
  border-color:var(--gold);
}

/* Entrance motion — visual reveal + timeline drawing */
[data-journey-reveal]{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .58s cubic-bezier(.2,.7,.2,1),transform .58s cubic-bezier(.2,.7,.2,1);
}
[data-journey-reveal="visual"]{
  clip-path:inset(0 0 0 100% round 18px);
  transform:none;
  transition:opacity .72s ease,clip-path .82s cubic-bezier(.2,.7,.2,1);
}
[data-journey-reveal="item"]:nth-child(2){transition-delay:.05s}
[data-journey-reveal="item"]:nth-child(3){transition-delay:.1s}
[data-journey-reveal="steps"]{transition-delay:.12s}
[data-journey-reveal].is-in{
  opacity:1;
  transform:none;
}
[data-journey-reveal="visual"].is-in{clip-path:inset(0 0 0 0 round 18px)}
.visit-journey__steps .visit-journey__step{
  opacity:0;
  transform:translateY(7px);
}
.visit-journey__steps.is-in .visit-journey__step{
  animation:vjStepIn .44s cubic-bezier(.2,.7,.2,1) forwards;
}
.visit-journey__steps.is-in .visit-journey__step:nth-child(2){animation-delay:.10s}
.visit-journey__steps.is-in .visit-journey__step:nth-child(3){animation-delay:.20s}
.visit-journey__steps.is-in .visit-journey__step:nth-child(4){animation-delay:.30s}
.visit-journey__steps.is-in .visit-journey__step:nth-child(5){animation-delay:.40s}
.visit-journey__steps.is-in .visit-journey__step:nth-child(6){animation-delay:.50s}
@keyframes vjStepIn{to{opacity:1;transform:none}}

@media(max-width:1050px){
  .visit-journey{padding:50px 0 56px}
  .visit-journey__header{grid-template-columns:1fr 1fr;gap:38px;margin-bottom:22px}
  .visit-journey__title{font-size:29px}
  .visit-journey__media{height:205px}
  .visit-journey__steps{gap:18px;margin-top:26px}
  .visit-journey__step{padding:0 6px}
}

@media(max-width:780px){
  .visit-journey{padding:34px 0 38px}
  .visit-journey__header{
    display:block;
    margin-bottom:18px;
  }
  .visit-journey__eyebrow{font-size:9.5px}
  .visit-journey__title{
    margin-top:6px;
    font-size:24px;
    line-height:1.55;
    font-weight:600;
  }
  .visit-journey__lead{
    margin-top:8px;
    max-width:none;
    font-size:12px;
    line-height:1.9;
  }
  .visit-journey__media{
    height:174px;
    border-radius:14px;
  }
  .visit-journey__badge{
    right:9px;
    bottom:9px;
    min-height:27px;
    padding:0 9px;
    font-size:8.8px;
  }
  .visit-journey__steps{
    display:block;
    margin-top:20px;
    padding-right:0;
  }
  .visit-journey__steps::before{
    top:18px;
    bottom:18px;
    right:17px;
    left:auto;
    width:1px;
    height:auto;
    background:linear-gradient(180deg,rgba(179,138,69,.22),rgba(179,138,69,.46),rgba(179,138,69,.18));
    transform:scaleY(0);
    transform-origin:top center;
  }
  .visit-journey__steps.is-in::before{transform:scaleY(1)}
  .visit-journey__step{
    display:grid;
    grid-template-columns:35px minmax(0,1fr);
    gap:12px;
    align-items:start;
    min-height:66px;
    padding:0 0 13px;
    text-align:right;
  }
  .visit-journey__step:last-child{padding-bottom:0;min-height:auto}
  .visit-journey__step-marker{
    width:35px;
    height:35px;
    margin:0;
  }
  .visit-journey__step-copy{padding-top:1px}
  .visit-journey__step h3{
    margin-bottom:2px;
    font-size:13px;
    font-weight:600;
  }
  .visit-journey__step p{
    margin:0;
    max-width:none;
    font-size:11px;
    line-height:1.72;
  }
  .visit-journey__actions{
    justify-content:flex-start;
    margin-top:18px;
    padding-right:47px;
  }
  .visit-journey__cta{font-size:10.5px}
  [data-journey-reveal="visual"]{
    clip-path:inset(0 0 100% 0 round 14px);
  }
  [data-journey-reveal="visual"].is-in{clip-path:inset(0 0 0 0 round 14px)}
}

@media(max-width:480px){
  .visit-journey{padding:30px 0 34px}
  .visit-journey__title{font-size:22.5px}
  .visit-journey__lead{font-size:11.5px}
  .visit-journey__media{height:160px}
  .visit-journey__step{min-height:62px;gap:10px}
  .visit-journey__step h3{font-size:12.5px}
  .visit-journey__step p{font-size:10.5px}
  .visit-journey__actions{padding-right:45px}
}

@media(prefers-reduced-motion:reduce){
  [data-journey-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  [data-journey-reveal="visual"]{clip-path:none!important}
  .visit-journey__steps::before{transform:none!important}
  .visit-journey__steps .visit-journey__step{opacity:1!important;transform:none!important;animation:none!important}
}
