/* A progressive enhancement of the real heading and chooser. No duplicate content. */
.journey-track{--journey-copy:1;--journey-reveal:0;--journey-settle:1;position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:start;height:calc(var(--journey-stage) + var(--journey-distance));isolation:isolate;background:var(--paper);overflow:clip}
.journey-track>.experience-hero,.journey-track>#care-guide{grid-area:1/1;align-self:start;position:sticky;top:var(--journey-header);width:100%;max-width:none;min-height:var(--journey-stage);margin:0}
.journey-track>.experience-hero{z-index:2;height:var(--journey-stage);overflow:clip}
.journey-track .experience-hero-grid{min-height:calc(var(--journey-stage) - 55px);height:auto;gap:clamp(32px,5vw,75px);padding-block:clamp(25px,4vh,58px)}
.journey-track .experience-hero h1{position:relative;z-index:4;transform-origin:center}
.journey-letter{position:relative}
.journey-track .experience-hero-copy>:not(h1),.journey-track .experience-photo,.journey-track .hero-bottom-line{opacity:var(--journey-copy);transition:none;transform:translate3d(0,calc(-16px * (1 - var(--journey-copy))),0)}
.journey-track .photo-frame{height:clamp(260px,calc(var(--journey-view) - 120px),500px)}
.journey-track>#care-guide{z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:stretch;box-sizing:border-box;padding:clamp(28px,6vh,72px) max(24px,calc((100% - 1180px)/2));background:radial-gradient(ellipse at 75% 25%,#f5d5c866,transparent 60%),#f8f7f3;opacity:var(--journey-reveal);overflow:hidden}
.journey-track>#care-guide:before{content:"";pointer-events:none;position:absolute;left:-15%;top:8%;width:65%;height:80%;border-radius:50%;background:radial-gradient(ellipse,#edb89d27,transparent 70%);transform:translateX(var(--choice-position,0%));transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.journey-track>#care-guide>.editorial-heading,.journey-track>#care-guide>.guide-choices,.journey-track>#care-guide>.guide-results{position:relative;transform:translate3d(0,calc(24px * var(--journey-settle)),0);transform-origin:center}
.journey-track #care-guide .eyebrow{color:#975f55}
.journey-track #care-guide h2 em{color:#86394a}
.journey-track #care-guide .guide-choices{gap:14px}
.journey-track #care-guide .guide-choice{position:relative;border-color:#d9c4be;background:#fffcf7;box-shadow:0 4px 0 #e8ded72b,0 12px 30px #6c303608;transition:transform .3s cubic-bezier(.2,.75,.2,1),box-shadow .3s,border-color .3s,background .3s}
.journey-track #care-guide .guide-choice:before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 0 #fff9;pointer-events:none}
.journey-track #care-guide .guide-choice[aria-pressed=true]{background:#68172d;border-color:#68172d;color:#fff8ed;box-shadow:0 12px 30px #68172d29;transform:translateY(-3px)}
.journey-track #care-guide .choice-icon{transition:transform .35s,background .35s}
.journey-track #care-guide .guide-choice[aria-pressed=true] .choice-icon{transform:rotate(-5deg) scale(1.05);background:#ffffff22}
.journey-track #care-guide .guide-results{border:1px solid #e0ccc4;background:#fffcf8;box-shadow:0 18px 55px #713b2f0b;border-radius:24px;margin-top:22px;overflow:hidden}
.journey-track #care-guide .guide-result{padding:30px 34px}
.journey-track #care-guide .guide-choice:focus-visible{outline:3px solid #a55069;outline-offset:4px}
@media(hover:hover) and (pointer:fine){.journey-track #care-guide .guide-choice:hover{transform:translateY(-6px);border-color:#ad727b;box-shadow:0 16px 32px #752b3717}.journey-track #care-guide .guide-choice:hover .choice-icon{transform:rotate(-5deg) translateY(-2px)}}
html[data-site-theme=dark] .journey-track>#care-guide{background:radial-gradient(ellipse at 75% 25%,#6a31442e,transparent 60%),#1c1921}
html[data-site-theme=dark] .journey-track #care-guide :is(.eyebrow,h2 em){color:#f2b4cd}
html[data-site-theme=dark] .journey-track #care-guide .guide-choice{background:#2c2530;border-color:#67515e;color:#f2e4ec}
html[data-site-theme=dark] .journey-track #care-guide .guide-choice[aria-pressed=true]{background:#93405f;border-color:#b87a94;color:white}
html[data-site-theme=dark] .journey-track #care-guide .guide-results{background:#24212a;border-color:#64505d}
html[data-site-theme=dark] .journey-track #care-guide .guide-choice:before{box-shadow:inset 0 1px 0 #ffffff0c}
@media(max-width:720px){
 .journey-track>.experience-hero{min-height:var(--journey-stage)}
 .phone-paging .journey-track .experience-hero-grid{height:var(--journey-view);min-height:0;padding-block:20px;grid-template-rows:auto minmax(130px,1fr);gap:15px}
 .phone-paging .journey-track .experience-hero .photo-frame{height:100%;min-height:0}
 .journey-track>#care-guide{padding:24px 18px;min-height:var(--journey-stage)}
 .journey-track #care-guide .editorial-heading{margin-bottom:22px}
 .journey-track #care-guide .guide-choices{gap:10px}
 .journey-track #care-guide .guide-choice{min-height:74px;border-radius:17px}
 .journey-track #care-guide .guide-results{margin-top:16px;border-radius:21px}
 .journey-track #care-guide .guide-result{padding:22px;gap:16px}
 html.phone-paging.large-text #main .journey-track .experience-hero-grid{height:var(--journey-view);min-height:0;grid-template-rows:auto minmax(130px,1fr)}
 html.phone-paging.large-text #main .journey-track .guide-result{padding:20px}
}
@media(prefers-reduced-motion:reduce){.journey-track #care-guide *,#care-guide .guide-choice{transition:none!important;animation:none!important}}

/* A wayfinding sign below the selected next step, followed by the phone story. */
#services .card-phone{object-fit:contain;border-radius:0;background:transparent;box-shadow:none;filter:drop-shadow(-7px 10px 14px #2f0d2640)}
/* Keep the complete desktop service overview within the landing viewport.
   Natural card heights remain the fallback for zoom and unusually short windows. */
@media(min-width:1100px){
 #services{box-sizing:border-box;min-height:var(--cinema-view,calc(100svh - 110px));padding-block:clamp(18px,2.8vh,28px)}
 #services .editorial-heading{margin-bottom:20px;gap:30px}
 #services .editorial-heading .eyebrow{margin-bottom:10px}
 #services .editorial-heading h2{font-size:clamp(34px,5.4vh,48px);line-height:1.06}
 #services .editorial-heading>p{font-size:16px;line-height:1.5;padding-bottom:0}
 #services .service-gallery{gap:14px}
 #services .care-card{min-height:230px;padding:20px}
 #services :is(.care-card--prescription,.care-card--vaccine){min-height:clamp(255px,31vh,305px);padding:24px}
 #services .card-top{margin-bottom:14px;gap:10px}
 #services .card-service{flex-direction:row;align-items:center;gap:9px;line-height:1.4}
 #services .card-service .icon{width:24px;height:24px;flex:none}
 #services .card-copy h3{font-size:clamp(22px,2.6vh,27px);line-height:1.12;margin-bottom:10px;letter-spacing:-.7px}
 #services :is(.care-card--prescription,.care-card--vaccine) .card-copy h3{font-size:clamp(27px,3.5vh,34px)}
 #services .card-copy p{font-size:16px;line-height:1.5}
 #services .card-bottom{padding-top:14px;gap:10px}
 #services .round-arrow{width:32px;height:32px}
 #services .card-phone{height:clamp(235px,30vh,300px);width:clamp(157px,20vh,200px);bottom:-35px;right:-10px}
 html.large-text #services .care-card{min-height:255px}
 html.large-text #services .card-copy p{font-size:18px;line-height:1.45}
 html.large-text #services .card-bottom{font-size:14px}
}
@media(min-width:1100px) and (max-height:800px){
 #services{padding-block:16px}
 #services .editorial-heading{margin-bottom:14px}
 #services .editorial-heading .eyebrow{margin-bottom:8px}
 #services .care-card{min-height:210px;padding:16px}
 #services :is(.care-card--prescription,.care-card--vaccine){min-height:235px;padding:20px}
 #services .card-top{margin-bottom:10px}
 #services .card-bottom{padding-top:10px}
 #services .round-arrow{width:30px;height:30px}
}
html[data-site-theme=dark] #services .care-card:not(.care-card--prescription):not(.care-card--vaccine){background:#2a2530;border-color:#55424e}
html[data-site-theme=dark] #services .care-card:not(.care-card--prescription):not(.care-card--vaccine) :is(.card-service,.card-bottom){color:#f2b4cd}
html[data-site-theme=dark] #services .card-index{color:#d3b6c5}
#care-guide .guide-choices{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.service-signpost{position:relative;align-self:center;width:max-content;max-width:calc(100% - 40px);margin:26px auto 0;padding:0 12px}
.service-signpost:before{content:"";position:absolute;top:50%;left:-18px;right:-18px;height:1px;background:linear-gradient(90deg,transparent,#a8757c55,transparent);pointer-events:none}
.service-explore-link{position:relative;display:flex;align-items:center;gap:14px;padding:13px 20px;color:var(--wine);background:var(--paper);border:1px solid #b9879155;border-radius:10px;text-decoration:none;font-weight:650;box-shadow:0 6px 20px #60213209;min-height:48px;transition:transform .25s,box-shadow .25s}
.service-explore-link .choice-icon{display:none}
.service-explore-link>svg{width:20px;height:20px;margin-left:20px}
.service-explore-link:hover{transform:translateY(-3px);box-shadow:0 9px 24px #60213219}
.service-explore-link:focus-visible{outline:3px solid #a55069;outline-offset:4px}
.service-explore-link[aria-busy=true]{pointer-events:none}
/* The same photographed mark is used at both ends of the camera move. A small
   composited disc scales up, rather than allocating a viewport-sized texture. */
.logo-portal-overlay{position:fixed;inset:0;z-index:20000;pointer-events:none;overflow:clip}
.logo-portal-disc{position:absolute;overflow:hidden;transform-origin:top left;will-change:transform;box-sizing:border-box}
.logo-portal-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;white-space:nowrap}
.logo-portal-symbol{position:absolute;inset:0;opacity:0;border-radius:inherit;background-color:#000;background-image:url('/assets/jasper-logo.png'),radial-gradient(ellipse 22% 24% at 53% 96%,#fff 98%,transparent 100%);background-size:405% 100%,100% 100%;background-position:0 0;background-repeat:no-repeat}
.service-cinema-track{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:start;isolation:isolate}
.service-cinema-track>.phone-cinema,.service-cinema-track>#services{grid-area:1/1;align-self:start;width:100%;max-width:none}
.service-cinema-track>#services{margin-top:var(--cinema-distance);will-change:transform;transform-origin:top center}
.phone-cinema[hidden]{display:none!important}
.service-cinema-track>.phone-cinema{position:sticky;top:var(--cinema-header);height:var(--cinema-view);min-height:0;padding:0;margin:0;z-index:4;pointer-events:none;overflow:clip}
.phone-cinema:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,#8c3d4b,#49152c 72%);transform:translateY(calc(-100% * var(--scene-reveal,0)));will-change:transform}
.cinema-skip{position:absolute;right:24px;bottom:24px;z-index:5;pointer-events:auto;color:#fff4e9;background:#49152caa;border:1px solid #e3c4bd66;border-radius:24px;padding:10px 17px;font-size:13px;text-decoration:none;opacity:calc(1 - var(--scene-reveal,0))}
.cinema-skip:focus-visible{outline:3px solid #f6c7b0;outline-offset:3px;opacity:1}
.phone-cinema-art,.phone-flight-clip{position:absolute;inset:0;pointer-events:none;background:none}
.phone-flight-clip{z-index:0}
.phone-flight-image{position:absolute;transform-origin:center;will-change:transform}
.phone-flight-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:none;filter:drop-shadow(0 20px 25px #280c2033)}
.phone-flight-ready,.phone-flight-welcome{opacity:0}
.phone-flight-words{position:absolute;inset:0;z-index:2;background:none;color:color-mix(in srgb,color-mix(in srgb,#101014,#fff5ed var(--words-lift,0%)),var(--ink) var(--words-land,0%));opacity:0;white-space:nowrap;pointer-events:none}
.flight-line-one,.flight-line-two{position:absolute;transform-origin:top left;white-space:nowrap}
.flight-type-sans,.flight-type-serif{position:absolute;left:0;top:0;transform-origin:top left;white-space:nowrap}
.flight-type-serif{font-style:italic;color:color-mix(in srgb,color-mix(in srgb,#101014,#f5c1aa var(--words-lift,0%)),var(--wine) var(--words-land,0%))}
html[data-site-theme=dark] .phone-flight-words{color:color-mix(in srgb,color-mix(in srgb,#101014,#fff5ed var(--words-lift,0%)),#f2edf0 var(--words-land,0%))}
html[data-site-theme=dark] .flight-type-serif{color:color-mix(in srgb,color-mix(in srgb,#101014,#f5c1aa var(--words-lift,0%)),#f0adc7 var(--words-land,0%))}
html[data-site-theme=dark] .service-explore-link{background:#25212b;color:#f2b4cd;border-color:#765360}
@media(max-width:720px){
 #care-guide .guide-choice{flex-direction:column;justify-content:center;text-align:center;gap:8px;font-size:14px;padding:12px 6px}
 #care-guide .guide-choice>svg{display:none}
 .service-signpost{margin-top:14px}
 .service-explore-link{font-size:15px;padding:9px 17px}
 .journey-track>#care-guide{padding-block:18px}
 .journey-track #care-guide .editorial-heading{margin-bottom:18px}
 .phone-flight-words{letter-spacing:-1px}
 .cinema-skip{right:18px;bottom:16px;font-size:12px;padding:9px 14px}
 html.large-text #care-guide .guide-choice{font-size:16px;min-height:110px}
 html.phone-paging.large-text #main #care-guide .guide-choices{grid-template-columns:1fr!important;gap:8px}
 html.phone-paging.large-text #main #care-guide .guide-choice{flex-direction:row;justify-content:flex-start;text-align:left;min-height:50px;padding:10px 14px;font-size:18px}
}
@media(prefers-reduced-motion:reduce){.service-explore-link{transition:none}}

/* Keep the complete authentic mark, including its white child silhouette. */
.phone-sender-mark{position:absolute;left:25.78125%;top:37.6302083%;width:9.765625%;height:6.5104167%;border-radius:50%;background-color:#000;background-image:url('/assets/jasper-logo.png'),radial-gradient(ellipse 22% 24% at 53% 96%,#fff 98%,transparent 100%);background-size:405% 100%,100% 100%;background-position:0 0;background-repeat:no-repeat;transform:rotate(1.5deg);opacity:0}
.service-cinema-track>.phone-cinema.is-logo-pullback{position:fixed;left:0;right:0;top:var(--cinema-header);height:var(--cinema-view)}
.journey-track.journey-logo-hold{overflow:visible}
.card-phone>img{display:block;width:100%;height:100%;object-fit:contain;background:none}.card-phone>.phone-sender-mark{opacity:1}
.guide-awaiting-choice{visibility:hidden;pointer-events:none}
.refill-pour-overlay{position:fixed;inset:0;z-index:20001;pointer-events:none;overflow:clip}
.refill-capsule{position:absolute;width:90px;height:38px;filter:drop-shadow(0 5px 8px #49152c26);will-change:transform;transform-origin:center}
.capsule-half{position:absolute;top:0;width:45px;height:38px;border:2px solid #bd8696;box-sizing:border-box;box-shadow:inset 0 3px 5px #ffffff42}
.capsule-half--left{left:0;border-radius:22px 3px 3px 22px;background:linear-gradient(135deg,#a74860,#68172d);transform-origin:right center}
.capsule-half--right{right:0;border-radius:3px 22px 22px 3px;background:linear-gradient(135deg,#fff5e6,#edc5a6);transform-origin:left center}
.refill-grain{position:absolute;left:0;top:0;width:5px;height:5px;border-radius:50%;background:var(--grain-color);box-shadow:0 1px 2px #49152c15;will-change:transform}
.refill-word{display:inline-block}
.refill-pouring{pointer-events:none}
.visit-mini-map{position:absolute;transform-origin:center;filter:drop-shadow(0 9px 15px #49152c24);will-change:transform}
.visit-mini-map>svg{display:block;width:100%;height:100%;overflow:visible}
.map-paper{fill:#f7eadb;stroke:#d7b7a3;stroke-width:1.5}
.map-blocks{fill:#e5cfb9}
.map-roads{fill:none;stroke:#fffaf2;stroke-width:10;stroke-linecap:round}
.map-square{fill:#cda2a2;stroke:#9e556a;stroke-width:1.5}
.map-building{fill:none;stroke:#783048;stroke-width:2;stroke-linejoin:round}
.map-trees{fill:#a5ae8e}
.visit-falling-pin{position:absolute;width:44px;height:52px;transform-origin:center;filter:drop-shadow(0 5px 5px #49152c30);will-change:transform}
.visit-falling-pin>svg{width:100%;height:100%;fill:#fff6e8;stroke:#7d2542;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.visit-map-ripple{position:absolute;left:50%;top:50%;width:38px;height:24px;border:2px solid #a65e72;border-radius:50%;opacity:0}
