/* A movement vocabulary drawn for conditioning, joint training, and foot support. */
.motion-art { --motion-ink:#e9e7c8; --motion-soft:#efefd150; --motion-core:#254b3e; display:block; width:100%; height:auto; overflow:visible; pointer-events:none; }
.motion-draw { stroke:var(--motion-ink); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.motion-fine { stroke:var(--motion-ink); stroke-width:.8; opacity:.5; }
.motion-guide { stroke:var(--motion-soft); stroke-width:.55; stroke-dasharray:2 7; }
.motion-node { fill:var(--motion-core); stroke:var(--motion-ink); stroke-width:1.5; transform-box:fill-box; transform-origin:center; }
.motion-halo { stroke:var(--motion-ink); stroke-width:.7; opacity:.3; }
.hero-motion { position:absolute; top:13%; right:3%; width:min(41vw,590px); z-index:1; pointer-events:none; }
.hero-motion-scene { display:none; }
.hero-motion-scene.active { display:block; }
.hero-motion-scene .motion-art { --motion-core:#34594780; --motion-soft:#e5e8cc30; filter:drop-shadow(0 2px 12px #244b3b3d); }
.hero-motion-scene.active .motion-draw { stroke-dasharray:1; stroke-dashoffset:1; animation:motion-trace 1.8s .4s var(--ease) forwards; }
.hero-motion-scene.active .motion-draw.second { animation-delay:.65s; }
.hero-motion-scene.active .motion-node { animation:joint-arrive .7s .65s var(--ease) both; }
.hero-motion-scene.active .node-2 { animation-delay:.95s; }
.hero-motion-scene.active .node-3 { animation-delay:1.2s; }
.hero-motion-scene.active .node-4 { animation-delay:1.4s; }
.hero-motion-scene > span { display:block; text-align:right; font:500 16px/1.7 var(--serif); color:#e5e9d1; letter-spacing:.12em; margin:0 35px 8px 0; animation:fade-up .8s 1s both; }
.hero-motion > small { display:block; text-align:right; margin-right:35px; font-size:9px; letter-spacing:.13em; color:#d9e1ca; }
.hero-accent { position:relative; color:#eee5b8; }
.hero-accent:after { content:''; position:absolute; height:2px; left:0; right:0; bottom:.05em; background:linear-gradient(90deg,#eee5b8,#eee5b855); transform-origin:left; animation:accent-line 1.1s 1s var(--ease) both; }
.hero.scene-changing .hero-accent:after { animation-delay:.4s; }
.hero h1 { font-feature-settings:"palt"; }
.hero .hero-scene-picker { z-index:3; }
.service-motion { position:absolute; right:-15px; bottom:60px; width:80%; z-index:1; opacity:.8; }
.service-image .motion-node { --motion-core:#214832a3; }
.service-card.visible .motion-draw,.detail-image.visible .motion-draw { stroke-dasharray:1; stroke-dashoffset:1; animation:motion-trace 1.65s .2s var(--ease) forwards; }
.service-image:hover .motion-node { animation:joint-arrive .7s var(--ease) both; }
.service-card:nth-child(2) { padding-top:32px; }
.service-card:nth-child(3) { padding-top:64px; }
.service-card h3 { font-size:22px; letter-spacing:.015em; }
.service-card.is-relevant .service-image { outline:1px solid #a5b480; outline-offset:7px; }
.service-card.is-relevant > .eyebrow:after { content:' / 選んだお悩みの相談に'; font-size:9px; letter-spacing:.015em; color:#6c7748; }
.service-description { min-height:7.8em; }
.care-focus { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:21px 25px; margin:0 0 38px; background:radial-gradient(ellipse at 0 0,#d5dfc595,transparent),linear-gradient(110deg,#f9f9ef,#e8eddf); border:1px solid #bbc9aa; border-radius:2px 24px 2px 24px; }
.care-focus[hidden] { display:none; }
.care-focus > div > span { font-size:10px; color:#6a7d5c; }
.care-focus p { font-size:21px; margin-top:7px; }
.care-focus button { flex:none; font-size:11px; gap:14px; }
.detail-image { position:relative; overflow:hidden; border-radius:2px 65px 2px 2px; }
.detail-image:after { content:''; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,#123a2bbd); pointer-events:none; }
.detail-motion { position:absolute; width:82%; right:-8px; bottom:60px; z-index:1; }
.detail-photo-label { position:absolute; bottom:28px; left:26px; right:20px; z-index:2; color:#fffef2; font:500 19px/1.8 var(--serif); letter-spacing:.04em; }
.treatment-points { display:flex; gap:8px; flex-wrap:wrap; list-style:none; margin:0 0 23px; }
.treatment-points li { padding:7px 11px; border:1px solid #bac8aa; background:linear-gradient(120deg,#f8f9ef,#e8eddf); color:#537148; font-size:11px; border-radius:2px 12px 2px 12px; }
.motion-feedback { position:fixed; z-index:150; width:150px; height:122px; pointer-events:none; transform:translate(-50%,-50%); animation:feedback-expand .8s var(--ease) both; }
.motion-feedback .motion-art { --motion-ink:#cbbd7b; --motion-core:#6c8558; --motion-soft:#c6c68750; filter:drop-shadow(0 0 6px #f4e8bd75); }
.motion-feedback .motion-draw { stroke-width:2.7; }
.motion-feedback .motion-guide { display:none; }
.motion-feedback .motion-node { stroke-width:2; }
.motion-feedback.feedback-training { animation-name:feedback-link; }
.motion-feedback.feedback-insole { animation-name:feedback-walk; }
.motion-feedback.feedback-reserve { width:210px; height:171px; }
.feedback-insole .foot-2 { animation:step-arrive .5s .12s both; }
.button:disabled { opacity:.5; filter:saturate(.5); cursor:not-allowed; box-shadow:inset 0 1px 0 #ffffff28,0 2px 0 #15362c; }
.button:disabled:hover { transform:none; }
.unsure-consult { font-size:12px; gap:16px; margin-top:18px; text-align:left; }
.check-result-actions { margin-top:6px; }
.care-brief { background:linear-gradient(130deg,#fffcf2,#eff1e4); color:var(--ink); border:1px solid #b8c7a6; border-radius:2px 30px 2px 30px; margin-top:28px; box-shadow:0 14px 34px #213f2d13; overflow:hidden; scroll-margin-top:100px; animation:brief-reveal .7s var(--ease); }
.care-brief[hidden] { display:none; }
.care-brief:focus { outline:2px solid #a6a16b; outline-offset:5px; }
.brief-visual { position:relative; aspect-ratio:1.85; background:#a7b79b; overflow:hidden; }
.brief-visual:after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 45%,#163b2f9e); }
.brief-visual img { width:100%; height:100%; object-position:center 50%; }
.brief-stamp { position:absolute; left:20px; top:20px; z-index:1; display:flex; align-items:baseline; gap:7px; color:#fbf9df; border:1px solid #e6e0b59c; background:linear-gradient(125deg,#1f4d3bdf,#48664bd9); padding:7px 15px; border-radius:2px 16px 2px 16px; font-size:11px; box-shadow:0 3px 0 #15362c66; }
.brief-stamp b { font:400 28px/1.3 Georgia,serif; }
.brief-photo-note { position:absolute; bottom:13px; right:17px; z-index:1; color:#f5f3df; font-size:9px; }
.brief-content { padding:29px; }
.brief-content > .eyebrow { font-size:9px; }
.brief-content h3 { font-size:27px; margin:14px 0 12px; line-height:1.7; letter-spacing:.035em; }
.brief-selection { font-size:11px; color:#64775a; line-height:1.9; }
.brief-tabs { display:flex; flex-wrap:wrap; gap:9px; margin-top:21px; }
.brief-tab { position:relative; overflow:hidden; border:1px solid #b4c3a4; border-radius:2px 12px 2px 12px; background:linear-gradient(125deg,#fffef3,#e6ecdc); box-shadow:0 3px 0 #c3cfb6; min-height:44px; padding:9px 12px; font-size:11px; }
.brief-tab[aria-pressed=true] { color:#f8f5dc; background:linear-gradient(120deg,#4f6d50,#2b533d); border-color:#426346; box-shadow:0 3px 0 #213e2a; }
.brief-tab:active { transform:translateY(2px); box-shadow:inset 0 2px 6px #193c3233,0 1px 0 #213e2a; }
.brief-content h4 { font-size:23px; line-height:1.7; margin:25px 0 17px; }
.brief-route { list-style:none; }
.brief-route li { display:flex; gap:16px; padding:17px 0; border-top:1px solid #d4ddc5; }
.brief-route li > span { flex:none; width:25px; color:#9c9561; font:400 20px/1.5 Georgia,serif; }
.brief-route b { font-size:11px; font-weight:400; color:#617b53; }
.brief-route p { font-size:12px; line-height:1.95; margin-top:6px; }
.brief-actions { display:flex; flex-direction:column; align-items:flex-start; gap:13px; margin-top:20px; }
.brief-actions .button { font-size:12px; gap:20px; min-height:55px; }
.brief-actions .text-link { font-size:12px; gap:18px; }
.check-section.all-complete .care-brief { border-color:#b7a36c; box-shadow:0 14px 34px #213f2d16,0 0 0 4px #c3b77218; }
.check-section.all-complete .brief-stamp { background:linear-gradient(125deg,#a09251,#34583c); }
.message-copy h2 { font-size:clamp(28px,2.7vw,39px); }
.message-copy p { text-wrap:pretty; }
.booking-inner h2 { font-size:clamp(28px,3.2vw,44px); }
.dialog-inner h2 { font-size:28px; letter-spacing:.03em; }
#memo-selection { padding:15px 18px; margin:0 0 20px; border-left:2px solid #9baf7d; background:linear-gradient(100deg,#e0e7d3ad,#f4f4e9); }
#memo-selection[hidden] { display:none; }
.memo-selection-label { font-size:10px; color:#708561; }
#memo-selection-items { list-style:none; margin:8px 0 0; }
#memo-selection-items li { position:relative; padding-left:13px; margin-top:6px; font-size:12px; line-height:1.8; }
#memo-selection-items li:before { content:''; position:absolute; left:0; top:.8em; width:4px; height:4px; border-radius:50%; background:#8b9f75; }
.memo-fallback { margin-top:18px; }
.memo-fallback[hidden] { display:none; }
#memo-copy-text { width:100%; display:block; padding:12px; font:400 14px/1.8 var(--sans); margin-top:8px; border:1px solid #b6c5a6; color:var(--ink); background:#fffdf4; }
#summary-text { height:120px; min-height:100px; }
@keyframes motion-trace { to { stroke-dashoffset:0; } }
@keyframes joint-arrive { from { opacity:0; transform:scale(.3); } 65% { opacity:1; transform:scale(1.18); } to { opacity:1; transform:scale(1); } }
@keyframes accent-line { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes feedback-expand { from { opacity:0; transform:translate(-50%,-50%) scale(.4); } 25% { opacity:.9; } to { opacity:0; transform:translate(-50%,-65%) scale(1.15); } }
@keyframes feedback-link { from { opacity:0; transform:translate(-50%,-50%) rotate(-12deg) scale(.4); } 30% { opacity:.9; } to { opacity:0; transform:translate(-50%,-60%) rotate(8deg) scale(1.15); } }
@keyframes feedback-walk { from { opacity:0; transform:translate(-50%,-40%) scale(.6); } 25% { opacity:.9; } to { opacity:0; transform:translate(-50%,-90%) scale(1.1); } }
@keyframes step-arrive { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes brief-reveal { from { opacity:0; transform:translateY(20px) scale(.98); } to { opacity:1; transform:none; } }
@media(min-width:901px) and (min-height:750px) {
  .check-section { overflow:clip; }
  .check-intro { position:sticky; top:110px; align-self:start; }
}
@media(max-width:1150px) {
  .hero-motion { width:430px; right:-30px; top:13%; opacity:.75; }
  .hero-motion-scene > span { font-size:14px; }
  .hero-motion > small { font-size:8px; }
  .care-focus { align-items:flex-start; }
  .care-focus p { font-size:19px; }
  .service-card h3 { font-size:20px; }
  .brief-content { padding:24px; }
  .brief-content h3 { font-size:24px; }
  .brief-content h4 { font-size:21px; }
}
@media(max-width:900px) {
  .hero-motion { right:-120px; top:16%; opacity:.55; }
  .hero-motion-scene > span,.hero-motion > small { display:none; }
  .care-focus { flex-direction:column; gap:9px; }
  .check-intro { position:relative; top:auto; }
}
@media(max-width:600px) {
  .hero-motion { width:310px; top:130px; right:-165px; opacity:.45; }
  .hero .hero-scene-caption { font-size:11px; }
  .hero-accent:after { height:1px; bottom:.07em; }
  .service-card:nth-child(2),.service-card:nth-child(3) { width:100%; padding-top:0; margin:0; }
  .service-grid { gap:38px; }
  .service-card h3 { font-size:25px; }
  .service-card > h4 { font-size:12px; }
  .service-description { min-height:0; }
  .service-motion { width:75%; right:-6px; bottom:54px; opacity:.85; }
  .service-image { aspect-ratio:1.28; }
  .care-focus { padding:19px 21px; margin-bottom:30px; }
  .care-focus > div > span { font-size:10px; }
  .care-focus p { font-size:20px; }
  .care-focus button { min-height:44px; font-size:11px; padding:8px 0; }
  .service-card.is-relevant > .eyebrow:after { font-size:9px; }
  .care-brief { margin-top:24px; border-radius:2px 25px 2px 25px; scroll-margin-top:85px; }
  .brief-visual { aspect-ratio:1.7; }
  .brief-stamp { left:15px; top:15px; padding:6px 12px; font-size:10px; }
  .brief-stamp b { font-size:24px; }
  .brief-content { padding:23px 20px; }
  .brief-content h3 { font-size:24px; }
  .brief-selection { font-size:11px; }
  .brief-tabs { gap:8px; margin-top:18px; }
  .brief-tab { padding:9px 11px; }
  .brief-content h4 { font-size:21px; margin:23px 0 15px; }
  .brief-route li { gap:12px; padding:16px 0; }
  .brief-route li > span { font-size:18px; width:22px; }
  .brief-route p { font-size:12px; }
  .brief-actions .button { width:100%; padding:15px 17px; gap:12px; font-size:12px; min-height:55px; }
  .brief-actions .text-link { font-size:11px; gap:12px; }
  .unsure-consult { font-size:11px; gap:10px; line-height:1.9; min-height:44px; }
  .everyday h2 { font-size:clamp(26px,7.2vw,32px); letter-spacing:.025em; }
  .day-caption-label { font-size:10px; }
  .message-copy h2 { font-size:clamp(26px,6.8vw,32px); letter-spacing:.03em; }
  .booking-inner h2 { font-size:clamp(23px,5.9vw,30px); letter-spacing:.015em; }
  .booking-inner > p:not(.eyebrow) { font-size:12px; }
  .detail-motion { bottom:50px; width:75%; }
  .detail-photo-label { bottom:22px; left:21px; font-size:18px; }
  .treatment-points { gap:7px; margin-bottom:20px; }
  .treatment-points li { font-size:10px; padding:6px 10px; }
  .dialog-inner h2 { font-size:24px; line-height:1.7; }
  #memo-selection { padding:13px 16px; margin-bottom:16px; }
  #memo-selection-items li { font-size:11px; }
  #memo-copy-text { font-size:16px; }
  #summary-text { height:110px; }
  .motion-feedback { width:130px; height:106px; }
  .motion-feedback.feedback-reserve { width:180px; height:146px; }
}
@media(max-width:360px) {
  .check-result-actions .button { font-size:11px; padding:15px 17px; }
  .brief-content { padding:21px 17px; }
  .brief-content h3 { font-size:22px; }
  .brief-content h4 { font-size:20px; }
  .brief-tab { font-size:10px; }
  .brief-actions .button { font-size:11px; }
  .brief-actions .button .icon { width:19px; }
}
@media(prefers-reduced-motion:reduce) {
  .motion-feedback { display:none; }
  .motion-draw { animation:none!important; stroke-dashoffset:0!important; }
  .motion-node,.hero-accent:after { animation:none!important; transform:none; opacity:1; }
  .care-brief { animation:none; }
}

/* Third pass: one visual language from the first scene to the consultation. */
.eyebrow { letter-spacing:.075em; font-size:12px; }
.section-kicker { position:relative; align-items:center; gap:20px; padding-top:24px; }
.section-kicker > span { position:relative; z-index:1; }
.section-kicker > span:last-of-type { flex:none; }
.chapter-trace { width:210px; height:28px; color:#94a57c; overflow:visible; pointer-events:none; }
.section-kicker .chapter-trace { position:absolute; width:24%; left:40%; top:12px; opacity:.6; }
.chapter-trace path { stroke:currentColor; stroke-width:1; }
.chapter-trace circle { stroke:currentColor; stroke-width:1.1; fill:var(--cream); }
.visible .chapter-path { stroke-dasharray:1; stroke-dashoffset:1; animation:motion-trace 1.2s .2s var(--ease) forwards; }
.chapter-trace circle:nth-of-type(2) { fill:#abb791; }
.hero-image img { animation-duration:1.5s; }
.hero-line > span { animation-duration:1.05s; }
.hero-line:nth-child(1) > span { animation-delay:.34s; }
.hero-line:nth-child(2) > span { animation-delay:.5s; }
.hero-line:nth-child(3) > span { animation-delay:.66s; }
.hero .hero-actions .button-entered { animation-delay:.98s; }
.hero-motion-scene.active .motion-draw { animation-duration:1.4s; animation-delay:1s; }
.hero-motion-scene.active .motion-draw.second { animation-delay:1.18s; }
.hero-motion-scene.active .motion-node { animation-delay:1.05s; }
.hero-motion-scene.active .node-2 { animation-delay:1.24s; }
.hero-motion-scene.active .node-3 { animation-delay:1.42s; }
.hero-motion-scene.active .node-4 { animation-delay:1.55s; }
.hero-scene-picker > p { font-size:12px; }
.hero .hero-scene-caption { font-size:13px; }
.hero-bottom > span:first-child,.hero-bottom .scroll-link { font-size:11px; letter-spacing:.04em; }
.scene-button small { font-size:11px; letter-spacing:.05em; }
.sound-label { font-size:10px; }
.desktop-nav { font-size:12px; }
.icon { stroke-linecap:round; stroke-linejoin:round; }
.pressable:not(.button):not(.scene-button):not(:disabled) { transition:translate .13s,filter .2s,box-shadow .2s; }
.pressable.pressed:not(.button):not(.scene-button):not(:disabled) { translate:0 2px; filter:brightness(.93); }
.icon-button.pressed,.filter-button.pressed,.brief-tab.pressed,.approach-step.pressed,.day-scene.pressed,.visit-tabs button.pressed { box-shadow:inset 0 3px 7px #173c2b30,0 1px 0 #8f9f7f40; }
.is-tapping:not(.button) { animation:control-return .4s var(--ease); }
.care-path a.control-entered { animation-duration:.45s; }
.care-path a:nth-child(2) { animation-delay:.06s; }
.care-path a:nth-child(3) { animation-delay:.12s; }
.brief-tab:nth-child(2) { animation-delay:.035s; }
.brief-tab:nth-child(3) { animation-delay:.07s; }
.brief-tab:nth-child(4) { animation-delay:.105s; }
.brief-tab:nth-child(5) { animation-delay:.14s; }

.approach-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:7%; }
.approach .approach-visual { align-self:center; padding:0; aspect-ratio:.88; overflow:hidden; border-radius:2px 70px 2px 2px; background:#c0c6b4; }
.approach .approach-visual:before { display:none; }
.approach .approach-visual > img { position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none; border-radius:0; object-position:55% 57%; }
.approach .approach-visual[data-approach-frame="1"] > img { object-position:62% center; }
.approach .approach-visual[data-approach-frame="2"] > img { object-position:36% center; }
.approach-photo-shade { position:absolute; inset:0; background:linear-gradient(180deg,#153c2d22,transparent 45%,#173f32dd); }
.approach-scene-number { position:absolute; left:25px; top:18px; font:400 70px/1 Georgia,serif; color:#f4f3d3cc; }
.approach-photo-caption { position:absolute; left:27px; right:24px; bottom:59px; color:#fdfbea; font:500 24px/1.7 var(--serif); z-index:2; }
.approach-photo-note { position:absolute; bottom:26px; left:28px; color:#eeefdc; font-size:11px; z-index:2; }
.approach-motion { position:absolute; right:-30px; width:85%; bottom:100px; opacity:.65; }
.approach-copy .approach-lead { font-size:15px; margin-bottom:24px; line-height:1.9; }
.approach-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.approach-step { position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-height:93px; text-align:left; padding:13px 14px; color:#3a5b40; border:1px solid #b5c5a6; border-radius:2px 18px 2px 18px; background:linear-gradient(125deg,#fffef5,#e6eddb); box-shadow:0 3px 0 #c0cfb3; overflow:hidden; }
.approach-step > span { font:400 23px/1.2 Georgia,serif; color:#7b8e63; }
.approach-step b { font-size:13px; font-weight:400; line-height:1.5; white-space:nowrap; }
.approach-step .icon { width:18px; height:18px; position:absolute; top:16px; right:12px; opacity:.6; }
.approach-step[aria-pressed=true] { color:#fffce7; background:linear-gradient(130deg,#607850,#244d3b); border-color:#466644; box-shadow:0 3px 0 #1b3d2d; }
.approach-step[aria-pressed=true] > span { color:#e7dfaa; }
.approach-scene-copy { margin-top:25px; min-height:155px; }
.approach-scene-copy h3 { font-size:25px; line-height:1.65; margin-bottom:12px; }
.approach-copy .approach-scene-copy p { font-size:15px; line-height:2; }
.approach-visual.scene-switched > img { animation:scene-photo-settle .7s var(--ease); }
.approach-scene-copy.scene-switched { animation:fade-up .45s var(--ease); }
.approach-visual.scene-switched .motion-draw { stroke-dasharray:1; stroke-dashoffset:1; animation:motion-trace 1s .2s var(--ease) forwards; }

.brief-motion { position:absolute; right:-8px; bottom:20px; width:58%; z-index:1; opacity:.85; pointer-events:none; }
.brief-motion .motion-art { --motion-core:#2d5842a1; }
.care-brief[data-visual-mode=training] { border-radius:2px 36px 2px 12px; }
.care-brief[data-visual-mode=insole] { border-radius:2px 36px 20px 36px; }
.care-brief[data-visual-mode=conditioning] .brief-visual { aspect-ratio:1.75; }
.care-brief[data-visual-mode=training] .brief-visual > img { object-position:37% center; }
.care-brief[data-visual-mode=insole] .brief-visual > img { object-position:60% 43%; }
.care-brief.topic-changing .brief-visual > img { animation:scene-photo-settle .6s var(--ease); }
.care-brief.topic-changing .motion-draw { stroke-dasharray:1; stroke-dashoffset:1; animation:motion-trace 1s .25s var(--ease) forwards; }
.brief-route-heading { display:flex; gap:16px; align-items:center; margin-top:25px; color:#667b51; }
.brief-route-heading > span { font-size:12px; white-space:nowrap; }
.brief-route-heading .chapter-trace { flex:1; width:90px; height:23px; min-width:0; }
.brief-route { position:relative; padding-top:5px; }
.brief-route:before { content:''; position:absolute; left:13px; top:33px; bottom:42px; border-left:1px dashed #a6b28f; }
.brief-route li { position:relative; border-top:0; padding:17px 0; gap:15px; }
.brief-route li > span { display:grid; place-items:center; position:relative; z-index:1; width:27px; height:32px; margin-top:2px; font-size:16px; color:#47673f; background:linear-gradient(125deg,#eff1df,#dce4ce); border:1px solid #b2c19a; border-radius:40% 40% 2px 40%; }
.care-brief[data-visual-mode=training] .brief-route li > span { border-radius:50%; }
.care-brief[data-visual-mode=insole] .brief-route li:nth-child(even) > span { translate:4px 0; }
.care-brief.topic-changing .brief-route li { animation:route-arrive .55s var(--ease) both; }
.care-brief.topic-changing .brief-route li:nth-child(2) { animation-delay:.09s; }
.care-brief.topic-changing .brief-route li:nth-child(3) { animation-delay:.18s; }
.brief-next-links { display:flex; flex-wrap:wrap; gap:8px 25px; }
.brief-next-links .text-link { min-height:44px; font-size:13px; gap:16px; }
.brief-route p { font-size:14px; line-height:1.9; }
.brief-route b { font-size:12px; }
.brief-selection,.brief-tab,.care-path > p,.care-path a { font-size:12px; }
.care-path a { min-height:44px; align-items:center; }
.brief-content > .eyebrow { font-size:11px; }
.brief-stamp,.brief-photo-note { font-size:11px; }
.completion-seal { position:absolute; left:50%; top:44%; transform:translate(-50%,-50%); width:min(420px,83vw); padding:19px 25px 27px; background:radial-gradient(ellipse at 40% 0,#5e7959ed,#1d4b38f2); border:1px solid #dfd49b; border-radius:2px 35px 2px 35px; box-shadow:0 20px 80px #113c2d35,inset 0 0 0 5px #dbc88718; text-align:center; animation:seal-arrive 2.3s var(--ease) both; }
.completion-seal > div { display:flex; gap:8px; max-width:290px; margin:auto; }
.completion-seal .motion-art { width:calc((100% - 16px)/3); --motion-ink:#ede1ad; }
.completion-seal > span { display:block; font:500 clamp(18px,4.8vw,25px)/1.7 var(--serif); letter-spacing:.04em; color:#faf6d8; }

.cost-bridge { position:relative; display:grid; grid-template-columns:.8fr 1.2fr; gap:7%; margin-top:65px; padding:45px 48px; color:#f8f5df; overflow:hidden; border:1px solid #567356; border-radius:2px 65px 2px 25px; background:radial-gradient(ellipse at 0 0,#6d7c4e77,transparent 60%),repeating-linear-gradient(115deg,transparent 0 70px,#d9e5ad05 71px 72px),linear-gradient(130deg,#365b3e,#193f33 75%); box-shadow:0 14px 34px #24483018; scroll-margin-top:100px; }
.cost-heading { position:relative; }
.cost-heading > p,.cost-heading > h3 { position:relative; z-index:1; }
.cost-heading .eyebrow { color:#d6debd; font-size:12px; }
.cost-heading h3 { font-size:40px; margin:17px 0 20px; }
.cost-heading > p:not(.eyebrow) { font-size:14px; line-height:2; color:#e2e9d0; }
.cost-motion { position:absolute; width:190px; right:-5px; bottom:-25px; opacity:.28; }
.cost-menu > div { display:flex; justify-content:space-between; align-items:center; gap:20px; border-top:1px solid #d4ddbd45; padding:18px 0; }
.cost-menu > div:last-child { border-bottom:1px solid #d4ddbd45; }
.cost-menu dt { font-size:14px; line-height:1.75; }
.cost-menu dt small { font-size:12px; color:#d2dfc0; }
.cost-menu dd { flex:none; margin:0; font:400 31px/1.3 Georgia,serif; font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.cost-menu dd > span { font:400 12px/1 var(--sans); margin-left:6px; }
.cost-note { color:#d0dcbf; font-size:12px; line-height:1.9; margin-top:16px; }
.cost-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 23px; margin-top:25px; }
.cost-actions .button { font-size:13px; gap:22px; }
.cost-actions .text-link { font-size:13px; gap:15px; border-color:#cbd3ac6b; }
.cost-actions .icon { width:20px; }

.voice-stories { border-top:1px solid #c8d1bb; }
.voice-story { display:grid; grid-template-columns:115px minmax(0,1.1fr) minmax(0,1fr); gap:5%; align-items:center; padding:31px 0; border-bottom:1px solid #c8d1bb; }
.voice-figure { position:relative; width:115px; height:120px; display:grid; place-items:center; background:radial-gradient(ellipse at center,#dfe5ce,transparent 70%); }
.voice-figure .motion-art { --motion-ink:#6f875b; --motion-core:#f3f2df; --motion-soft:#8ba16e55; width:120%; }
.voice-figure > span { position:absolute; left:0; bottom:0; font:400 14px/1 Georgia,serif; color:#7f926c; }
.voice-topic { display:block; font-size:12px; color:#61764e; margin-bottom:12px; }
.voice-story h3 { font-size:29px; letter-spacing:.04em; line-height:1.65; }
.voice-body > p { font-size:14px; line-height:1.95; }
.voice-detail { margin-top:13px; }
.voice-detail summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; padding:13px 0; border-bottom:1px solid #bac8a4; font-size:12px; color:#526c43; cursor:pointer; }
.voice-detail summary::-webkit-details-marker { display:none; }
.voice-detail summary .icon { width:18px; height:18px; transition:rotate .25s; }
.voice-detail[open] summary .icon { rotate:45deg; }
.voice-detail > p { margin-top:15px; font-size:13px; line-height:2; }
.voice-story.visible .motion-draw { stroke-dasharray:1; stroke-dashoffset:1; animation:motion-trace 1.5s .2s var(--ease) forwards; }
.voice-section > .small-note { font-size:12px; }
.message-copy > p:not(.eyebrow) { font-size:15px; line-height:2.1; }
.message-copy p+p { margin-top:1.5em; }
.access-art { border-radius:2px 65px 2px 2px; background:radial-gradient(ellipse at 100% 0,#c5d2af,transparent 65%),repeating-linear-gradient(145deg,transparent 0 65px,#9cae8655 66px 67px),linear-gradient(140deg,#e9ecde,#dce3ce); overflow:hidden; }
.access-movement { position:absolute; width:115%; right:-28%; top:-2%; opacity:.6; }
.access-movement .motion-art { --motion-ink:#71885d; --motion-core:#e2e8d4; }
.access-art .access-address { background:linear-gradient(130deg,#3a6045ee,#1c4536f5); border:1px solid #81966a; }
.access-art .access-address > span,.access-art .access-address > small { font-size:12px; letter-spacing:.1em; }
.small-note,.memo-help,.memo-privacy { font-size:12px; }

@keyframes control-return { 0% { translate:0 2px; scale:.985; } 60% { translate:0 -1px; scale:1.005; } 100% { translate:0 0; scale:1; } }
@keyframes scene-photo-settle { from { opacity:.65; transform:scale(1.035); } to { opacity:1; transform:scale(1); } }
@keyframes route-arrive { from { opacity:.2; translate:0 9px; } to { opacity:1; translate:0 0; } }
@keyframes seal-arrive { 0% { opacity:0; scale:.8; } 18% { opacity:1; scale:1.03; } 28%,73% { opacity:1; scale:1; } 100% { opacity:0; scale:1.04; } }

@media(max-width:1150px) {
  .section-kicker .chapter-trace { width:18%; left:47%; }
  .approach-grid { gap:5%; }
  .approach-step { padding:12px 10px; }
  .approach-step b { font-size:12px; }
  .approach-scene-copy h3 { font-size:23px; }
  .approach-copy .approach-scene-copy p { font-size:14px; }
  .cost-bridge { gap:5%; padding:38px 35px; }
  .cost-heading h3 { font-size:35px; }
  .voice-story { grid-template-columns:95px minmax(0,1fr) minmax(0,1fr); gap:4%; }
  .voice-figure { width:95px; }
  .voice-story h3 { font-size:25px; }
}
@media(max-width:900px) {
  .section-kicker .chapter-trace { width:120px; left:auto; right:0; top:-18px; opacity:.45; }
  .approach-grid { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
  .approach .approach-visual { aspect-ratio:.7; border-radius:2px 50px 2px 2px; }
  .approach-photo-caption { font-size:21px; left:22px; }
  .approach-photo-note { left:22px; }
  .approach-step { padding:11px 8px; }
  .approach-step .icon { width:15px; right:8px; }
  .approach-step b { font-size:11px; }
  .approach-scene-copy { min-height:190px; }
  .cost-bridge { grid-template-columns:1fr; gap:28px; }
  .cost-heading h3 br { display:none; }
  .cost-heading h3 { margin:15px 0 12px; }
  .cost-heading > p:not(.eyebrow) br { display:none; }
  .cost-motion { right:-15px; width:155px; bottom:-50px; }
  .voice-story { grid-template-columns:85px minmax(0,1fr); gap:12px 28px; }
  .voice-figure { width:85px; height:105px; grid-row:1 / 3; align-self:start; }
  .voice-body { grid-column:2; }
  .voice-topic { margin-bottom:7px; }
  .voice-story h3 br { display:none; }
}
@media(max-width:600px) {
  .section-kicker { align-items:flex-start; font-size:12px; gap:20px; padding-top:21px; margin-bottom:28px; }
  .section-kicker .eyebrow { font-size:11px; line-height:1.8; max-width:55%; }
  .section-kicker > span:last-of-type { font-size:11px; line-height:1.8; }
  .section-kicker .chapter-trace { width:105px; top:-17px; }
  .hero { grid-template-rows:auto auto auto; gap:25px; padding:108px 22px 23px; align-content:space-between; }
  .hero h1 { font-size:clamp(31px,8.7vw,46px); line-height:1.5; }
  .hero .hero-description { font-size:14px; line-height:1.9; }
  .hero .hero-scene-caption { font-size:12px; line-height:1.9; }
  .hero .hero-actions { flex-wrap:wrap; gap:13px 20px; }
  .hero .hero-actions .button { font-size:14px; padding:16px 23px; }
  .hero .hero-check { font-size:12px; min-height:44px; }
  .hero-scene-picker > p { font-size:12px; line-height:1.8; margin-bottom:12px; }
  .hero .scene-button small { font-size:10px; }
  .hero .scene-button b { font-size:clamp(11px,3vw,13px); }
  .hero .scene-button img { height:53px; }
  .hero-bottom { flex-wrap:wrap; gap:13px; line-height:1.6; padding-top:15px; }
  .hero-bottom > span:first-child { font-size:11px; flex-basis:100%; }
  .hero-bottom .scroll-link { font-size:11px; }
  .hero .hero-index { margin-left:auto; }
  .hero-image .hero-scene[data-scene="0"] { object-position:62% center; }
  .hero-image .hero-scene[data-scene="1"] { object-position:36% center; }
  .hero-image .hero-scene[data-scene="2"] { object-position:59% center; }
  .brand small { font-size:9px; letter-spacing:.1em; }
  .sound-label { font-size:10px; }
  .fact-strip { font-size:11px; line-height:1.8; }
  .approach .approach-grid { display:flex; flex-direction:column; gap:28px; }
  .approach .approach-visual { width:100%; max-width:none; aspect-ratio:1.2; padding:0; border-radius:2px 48px 2px 2px; }
  .approach .approach-visual > img { min-height:0; height:100%; object-position:55% 55%; }
  .approach .approach-visual[data-approach-frame="1"] > img { object-position:62% center; }
  .approach .approach-visual[data-approach-frame="2"] > img { object-position:36% center; }
  .approach-scene-number { font-size:48px; left:20px; top:17px; }
  .approach-photo-caption { font-size:21px; left:20px; right:18px; bottom:48px; }
  .approach-photo-note { bottom:20px; left:21px; font-size:11px; }
  .approach-motion { bottom:70px; width:70%; }
  .approach-copy h2.serif { font-size:clamp(29px,7.4vw,36px); margin-bottom:20px; }
  .approach-copy .approach-lead { font-size:14px; margin:0 0 22px; }
  .approach-steps { gap:9px; }
  .approach-step { min-height:94px; padding:13px 11px; }
  .approach-step b { font-size:12px; }
  .approach-step > span { font-size:23px; }
  .approach-step .icon { width:16px; right:10px; }
  .approach-scene-copy { margin-top:24px; min-height:0; }
  .approach-scene-copy h3 { font-size:24px; margin-bottom:12px; }
  .approach-copy .approach-scene-copy p { font-size:15px; line-height:1.95; margin-top:0; }
  .approach-copy .text-link { font-size:13px; gap:20px; max-width:100%; }
  .check-intro > p { font-size:14px; }
  .growth-caption { font-size:10px; }
  .check-copy strong { font-size:15px; line-height:1.7; }
  .check-category { font-size:12px; }
  .check-detail,.check-insight { font-size:13px; line-height:1.8; }
  .check-card { padding-top:20px; padding-bottom:20px; }
  .check-response p + p { font-size:14px; line-height:1.9; }
  .check-panel > .small-note,.care-path > p,.care-path a { font-size:12px; }
  .care-path a { padding:10px 12px; }
  .check-result-actions { align-items:flex-start; gap:13px; flex-wrap:wrap; }
  .check-result-actions .button { font-size:14px; padding:17px 22px; gap:18px; }
  .reset-check,.unsure-consult { font-size:12px; min-height:44px; }
  .care-focus > div > span,.care-focus button { font-size:12px; }
  .care-focus p { font-size:20px; }
  .service-card > .eyebrow { font-size:12px; }
  .service-card h3 { font-size:25px; }
  .service-card > h4 { font-size:13px; }
  .service-card > p.service-description { font-size:15px; line-height:2; }
  .service-card.is-relevant > .eyebrow:after { font-size:11px; }
  .service-image > .service-cue { font-size:19px; right:55px; }
  .brief-content > .eyebrow { font-size:11px; }
  .brief-selection,.brief-tab { font-size:12px; }
  .brief-stamp,.brief-photo-note { font-size:11px; }
  .brief-content h3 { font-size:25px; }
  .brief-content h4 { font-size:23px; }
  .brief-route li { gap:13px; }
  .brief-route li > span { width:27px; font-size:16px; }
  .brief-route b { font-size:12px; }
  .brief-route p { font-size:14px; line-height:1.9; }
  .brief-actions .button { font-size:13px; }
  .brief-next-links { gap:9px 20px; }
  .brief-next-links .text-link { font-size:12px; gap:9px; }
  .cost-bridge { padding:28px 23px; margin-top:39px; gap:25px; border-radius:2px 42px 2px 22px; scroll-margin-top:90px; }
  .cost-heading h3 { font-size:31px; line-height:1.65; }
  .cost-heading > p:not(.eyebrow) { font-size:14px; }
  .cost-menu > div { gap:13px; padding:17px 0; }
  .cost-menu dt { font-size:13px; }
  .cost-menu dt small { font-size:12px; }
  .cost-menu dd { font-size:27px; }
  .cost-menu dd > span { font-size:12px; margin-left:5px; }
  .cost-note { font-size:12px; }
  .cost-actions { gap:16px; margin-top:23px; }
  .cost-actions .button { width:100%; font-size:13px; padding:17px 18px; gap:13px; }
  .cost-actions .text-link { font-size:13px; gap:13px; }
  .everyday-inner > p:not(.eyebrow):not(.image-note) { font-size:15px; }
  .everyday-words button { font-size:13px; min-height:46px; }
  .day-caption-label { font-size:12px; }
  .day-caption > p { font-size:19px; }
  .day-caption > a { font-size:13px; min-height:44px; }
  .image-note { font-size:12px; line-height:1.9; }
  .voice-story { grid-template-columns:66px minmax(0,1fr); gap:10px 18px; padding:26px 0; }
  .voice-figure { width:66px; height:100px; }
  .voice-figure .motion-art { width:140%; }
  .voice-figure > span { font-size:13px; }
  .voice-topic { font-size:12px; margin-bottom:10px; }
  .voice-story h3 { font-size:24px; letter-spacing:.02em; }
  .voice-body > p { font-size:14px; }
  .voice-detail summary { min-height:46px; font-size:12px; }
  .voice-detail > p { font-size:14px; }
  .voice-section > .small-note { font-size:12px; }
  .message-copy > p:not(.eyebrow) { font-size:15px; }
  .signature > span,.signature > small { font-size:12px; }
  .faq-answer,.faq-entries .faq-answer { font-size:14px; line-height:2; }
  .faq-entries .faq-item summary,.faq-preview .faq-item summary { font-size:15px; }
  .filter-button { font-size:13px; min-height:46px; }
  .faq-search label,.faq-count { font-size:13px; }
  .faq-search-clear { width:44px; height:44px; }
  .faq-search input::placeholder { font-size:13px; }
  .care-nav a { font-size:12px; min-height:44px; }
  .visit-tabs button { font-size:13px; }
  .visit-panel > p:not(.eyebrow),.treatment-grid p:not(.eyebrow) { font-size:15px; }
  .visit-note > span,.visit-note p,.visit-next,.visit-picture > small { font-size:12px; }
  .treatment-points li { font-size:12px; }
  .visit-actions .button { font-size:14px; }
  .access-copy dd small,.access-art .access-address > span,.access-art .access-address > small { font-size:12px; }
  .small-note,.memo-help,.memo-privacy,.dialog-inner .small-note { font-size:12px; line-height:1.9; }
  #consultation-summary label,.memo-selection-label { font-size:13px; }
  #memo-selection-items li { font-size:13px; }
  .copy-button { font-size:13px; }
  .dialog-inner > p:not(.eyebrow),.booking-inner > p:not(.eyebrow) { font-size:14px; }
  .dialog-buttons .button { font-size:14px; }
  .footer-bottom,.footer-main nav,.booking-hours { font-size:12px; }
}
@media(max-width:360px) {
  .hero { padding-left:20px; padding-right:20px; }
  .hero h1 { font-size:8.5vw; }
  .hero .hero-description { font-size:13px; }
  .approach-step { padding:12px 8px; }
  .approach-step b { font-size:11px; }
  .cost-bridge { padding:25px 18px; }
  .cost-menu dt { font-size:12px; }
  .cost-menu dd { font-size:24px; }
  .voice-story { grid-template-columns:52px minmax(0,1fr); gap:10px 15px; }
  .voice-figure { width:52px; }
  .voice-story h3 { font-size:22px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-delay:0s!important; }
  .chapter-path,.approach-visual.scene-switched > img,.approach-scene-copy.scene-switched,.care-brief.topic-changing .brief-visual > img,.care-brief.topic-changing .brief-route li,.completion-seal,.is-tapping:not(.button) { animation:none!important; opacity:1; translate:none; scale:none; transform:none; }
  .chapter-path { stroke-dashoffset:0!important; }
  .pressable.pressed:not(.button):not(.scene-button) { translate:none; }
}
