/* ---------- 01. Hero: 브랜드 필름 포스터 / 영상 ---------- */
.hero { height:min(47.083333vw,1080px); min-height:640px; position:relative; background:var(--color-black); overflow:hidden; color:white }
.hero__poster,.hero__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.hero__scrim { position:absolute; inset:0; background:#1c1b291f }
.hero__content { position:absolute; inset:auto 0 -9px; display:flex; align-items:center; justify-content:space-between; gap:32px }
.hero__title { font:700 clamp(100px,9.375vw,180px)/1.19 'Gmarket Sans',var(--font-body); letter-spacing:0; color:transparent; -webkit-text-stroke:1px #ffffff99; opacity:1 }
.hero__content .button { flex:none }
/* 영상 토글은 CTA 왼쪽에 두고, stretch로 CTA와 세로 크기를 맞춥니다. */
.hero__actions { display:flex; align-items:stretch; gap:8px; flex:none; max-width:100% }
/* 좁은 화면: 토글이 들어온 만큼 CTA 폭을 줄여 우측 퀵배너와 겹치지 않게 합니다. */
@media(max-width:399px) {
    .hero__actions .button { min-width:0; padding-inline:14px }
}
@media(max-width:349px) {
    .hero__actions .button img { display:none }
}
.video-toggle { flex:none; display:grid; place-items:center; width:52px; padding:0; border:1px solid #ffffff80; background:#1c1b2970; color:white; transition:background-color .2s,border-color .2s }
.video-toggle:focus-visible { background:#1c1b29b3; border-color:white }
@media(hover:hover) {
    .video-toggle:hover { background:#1c1b29b3; border-color:white }
}
.video-toggle svg { grid-area:1/1; width:18px; height:18px; fill:currentColor }
/* 재생 중에는 일시정지 아이콘, 멈춘 상태(.is-paused)에서는 재생 아이콘 */
.video-toggle__play,.video-toggle.is-paused .video-toggle__pause { display:none }
.video-toggle.is-paused .video-toggle__play { display:block }
.hero.has-video .hero__content { bottom:36px }
/* ---------- 02. Scroll Typography: 스크롤에 따라 가로 이동하는 대형 텍스트 ---------- */
.scroll-type { height:56.25vw; max-height:1080px; min-height:440px; background:#030305; display:flex; align-items:center; overflow:hidden }
.scroll-type__text { position:relative; white-space:nowrap; font:700 clamp(130px,16.666667vw,320px)/1.1 var(--font-head); letter-spacing:-.01em; color:white; transform:translate3d(var(--type-x,12.5vw),0,0); will-change:transform }
/* ---------- 03. Germany: 지도 줌 장면과 위치 라벨 ---------- */
.germany { position:relative; aspect-ratio:16/9; background:var(--color-black); color:white; overflow:hidden }
.germany__visual { position:absolute; inset:0; overflow:hidden }
.germany__scene { position:absolute; left:0; top:0; width:1920px; height:1080px; transform:scale(var(--map-scale,1)); transform-origin:top left }
.map-poster { position:absolute; inset:0; max-width:none; width:1920px; height:1080px; object-fit:cover }
.map-overlay { position:absolute; left:0; top:0; max-width:none }
.map-halo,.map-ring { position:absolute; left:1119.55px; top:636.29px; max-width:none }
.map-dot { position:absolute; left:1144.55px; top:661.29px; max-width:none }
.map-label { position:absolute; left:1256px; top:626px; width:360px; background:var(--color-black); padding:12px 16px; font-family:var(--font-head) }
.map-label strong { font-size:36px; font-weight:500; line-height:42px; display:block }
.map-label span { font-size:18px; line-height:24px; color:#c1c5c9; display:block; margin-top:4px }
.germany__inner { position:relative; height:100%; padding-top:5vw; padding-bottom:3.75vw; display:flex; flex-direction:column; justify-content:space-between; pointer-events:none }
.germany__copy { max-width:600px; width:42% }
.germany .eyebrow { color:#c1c5c9 }
.germany h2 { font:700 clamp(72px,5.8333vw,112px)/.965 var(--font-head); margin-top:24px }
.germany__headline { font-size:28px; font-weight:700; line-height:1.5; margin-top:24px }
.germany__description { font-size:16px; line-height:24px; color:#c1c5c9; margin-top:24px }
/* 여정 단계 표시 */
.journey { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; font:500 18px/24px var(--font-head); color:#c1c5c9 }
.journey li { border-top:2px solid #ffffff38; padding-top:16px }
.journey [aria-current] { border-color:var(--color-red); color:white }
/* ---------- 브랜드 컬러 시그니처 바 (black · red · gold) ---------- */
.brand-signature { height:4px; display:grid; grid-template-columns:repeat(3,1fr) }
.brand-signature span:nth-child(1) { background:var(--color-black) }
.brand-signature span:nth-child(2) { background:var(--color-red) }
.brand-signature span:nth-child(3) { background:var(--color-gold) }
/* ---------- 04. Quality: 이미지 + 3개 품질 기둥 ---------- */
.quality__grid { display:grid; grid-template-columns:minmax(0,640fr) minmax(0,736fr); gap:64px }
.quality__figure { align-self:start; background:var(--color-black); color:white; overflow:hidden }
.quality__figure>img { width:100%; height:auto; aspect-ratio:640/541; object-fit:cover }
.quality__figure figcaption { padding:16px 24px; display:flex; flex-direction:column; gap:4px; font:500 18px/24px var(--font-head) }
.quality__pillars { display:grid; gap:32px }
.quality__pillars li { display:grid; grid-template-columns:44px minmax(0,1fr); gap:24px; border-top:1px solid var(--border); padding-top:24px }
.quality__number { font:500 48px/52px var(--font-head); color:var(--color-red) }
.quality__topic { font:500 18px/24px var(--font-head); color:#77797c }
.quality__pillars h3 { font-size:28px; line-height:42px; color:var(--text-heading); margin-top:12px }
.quality__pillars li>div>p:last-child { margin-top:12px; font-size:16px; line-height:24px; color:var(--text-body) }
/* Quality Assurance 카드 */
.assurance { border-top:1px solid var(--border); margin-top:48px; padding-top:64px }
.assurance__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:32px }
.assurance-card { padding:32px; background:var(--surface); min-height:332px }
.assurance-card__top { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:96px; margin-bottom:24px }
.assurance-card__top>p { font:500 18px/24px var(--font-head); color:var(--text-technical) }
.assurance-card__top img { flex:none; object-fit:contain }
.assurance-card h4 { font:500 36px/42px var(--font-head); color:var(--text-heading) }
.assurance-card__title { font-size:20px; font-weight:700; line-height:30px; margin-top:8px; color:var(--text-heading) }
.assurance-card>p:last-child { font-size:14px; line-height:20px; margin-top:8px; color:var(--text-body) }
/* ---------- 05. Surface: 제목 · VUV 소개 ---------- */
.surface { background:var(--color-black); color:white; overflow:hidden }
.surface .eyebrow { color:white }
.surface .section-heading { margin-bottom:72px }
.surface__heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:48px }
.surface__heading-row>h2 { flex:none }
.surface__intro { padding:20px; border:1px solid #ff383c80; max-width:740px }
.surface__intro h3 { font-size:20px; line-height:24px; margin-bottom:12px }
.surface__intro p { font-size:14px; line-height:20px; color:var(--white-60); font-weight:400 }
/* 도해: 912×936 원본 좌표를 유지하고 --surface-scale로 축소 */
.surface__body { position:relative; display:grid; grid-template-columns:minmax(0,912fr) minmax(0,432fr); gap:96px }
.surface-art-viewport { position:relative; min-width:0; aspect-ratio:912/936 }
.surface-art { position:absolute; top:0; left:0; width:912px; height:936px; transform:scale(var(--surface-scale,1)); transform-origin:top left }
.surface-art__light { position:absolute; left:880px; top:301px; max-width:none; pointer-events:none }
/* HSA 영역별 확대 이미지 (상부 · 하부 · 첨단부) */
.surface-details { position:absolute; inset:0 auto auto 0; width:432px }
.surface-details__list { margin-top:32px; height:880px; display:flex; flex-direction:column; justify-content:space-between }
.surface-detail { display:flex; gap:24px; align-items:center; height:176px; font-family:var(--font-head) }
.surface-detail__crop { width:160px; height:176px; flex:none; position:relative; overflow:hidden; border:1px solid white }
.surface-detail__crop img { display:block; width:100%; height:100%; object-fit:cover }
.surface-detail p { font-size:28px; line-height:36px }
.surface-detail span { display:block; font-size:18px; line-height:24px; margin-top:8px }
/* 중앙 픽스처 사진과 지시선 */
.surface-fixture { position:absolute; left:528px; top:0; width:384px; text-align:center; font:500 18px/24px var(--font-head) }
.surface-fixture figcaption { color:var(--white-60) }
.surface-fixture__photo { width:384px; height:856px; margin:16px 0; position:relative }
.surface-fixture__photo>div { position:absolute; left:-263px; top:-216px; width:882px; height:1288px }
.surface-fixture__photo img { position:absolute; top:68.0064px; left:249.9588px; width:724.0338px; height:1056.6528px; max-width:none }
.surface-leaders img { position:absolute; max-width:none }
/* VUV 효과 지표(90%)와 6단계 공정 */
.surface-process { position:relative; min-width:0; z-index:1 }
.surface-effect .eyebrow { color:var(--color-red) }
.surface-effect__metric { display:flex; gap:16px; align-items:center; margin:16px 0 }
.surface-effect__metric strong { font:700 112px/108px var(--font-head); color:var(--color-red) }
.surface-effect__metric h3 { font-size:20px; line-height:30px }
.surface-effect>p:last-child { font-size:16px; line-height:24px }
.surface-process__steps { border-top:1px solid rgba(255,255,255,.1); padding-top:32px; margin-top:48px }
.surface-process__steps h3 { font-size:20px; line-height:30px }
.surface-process__steps>.eyebrow { margin-top:4px; color:var(--white-40) }
.vuv-steps { display:grid; gap:16px; margin-top:32px }
.vuv-steps li { position:relative; display:flex; align-items:center; gap:16px; min-height:50px; border:1px solid var(--color-red); border-radius:40px; padding:8px 16px; font-size:16px }
.vuv-steps li:first-child,.vuv-steps li:last-child { border-color:var(--color-red) }
.vuv-steps li>span { display:grid; place-items:center; flex:none; width:32px; height:32px; border:1px solid var(--color-red); border-radius:50%; font:500 18px/24px var(--font-head); color:var(--color-red) }
/* 화살표 중심 = 번호 배지 중심축(padding + 배지/2), 단계 사이 간격의 중앙(border 1px + gap/2) */
.vuv-steps img { position:absolute; left:32px; bottom:-9px; transform:translate(-50%,50%) rotate(90deg) }
/* ---------- 06. Product System: Fixture · Surgical Kit ---------- */
.products__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px }
.product__stage { height:400px; background:var(--surface); display:flex; align-items:center; justify-content:center; padding:24px; overflow:hidden }
.product__stage--dark { background:var(--color-black) }
.product__fixture { width:276px; height:280px; object-fit:contain; mix-blend-mode:multiply }
.product h3 { font:500 36px/42px var(--font-head); margin-top:32px }
.product__actions { display:flex; gap:16px; margin-top:24px; flex-wrap:wrap }
/* Surgical Kit 이미지 */
.kit-viewport { width:382px; max-width:100%; aspect-ratio:382/224; position:relative }
.kit-art { position:absolute; width:382px; height:224px; transform:scale(var(--kit-scale,1)); transform-origin:top left }
.kit-art__shadow { position:absolute; left:1.8336px; top:1.8592px; width:377.934px; height:219.936px; mask-image:url('/front/assets/images/main/kit-art-shadow-mask.svg'),url('/front/assets/images/main/kit-art-shadow-clip.svg'); mask-position:-1.851px -1.85px,0 0; mask-size:382px 224px,377.934px 219.936px; mask-repeat:no-repeat; mask-composite:intersect; mix-blend-mode:multiply }
.kit-art__shadow img { max-width:none }
.kit-art__photo { position:absolute; left:3.3998px; top:3.3824px; width:366.822px; height:208.633px; mask:url('/front/assets/images/main/kit-art-photo-mask.svg') 0 0/366.822px 208.633px no-repeat }
.kit-art__photo img { width:366.822px; height:208.633px; object-fit:fill; max-width:none }
/* ---------- 07. Partnership ---------- */
.partnership { position:relative; background:var(--color-black); padding:72px 0; color:white; min-height:472px; display:flex; align-items:center; overflow:hidden }
.partnership__background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.partnership__scrim { position:absolute; inset:0; background:linear-gradient(90deg,#1c1b29e0 0%,#1c1b29a3 50%,#1c1b291a 100%) }
.partnership>.container { position:relative }
.partnership__copy { max-width:800px }
.partnership .eyebrow { color:var(--color-gold); margin-bottom:20px }
.partnership h2 { font:700 72px/76px var(--font-head) }
.partnership__message { font-size:24px; font-weight:700; line-height:36px; margin-top:20px }
.partnership .button { margin-top:40px; min-width:min(260px,100%) }
/* ---------- 08. Contact & Support: 서비스 바로가기 카드 ---------- */
.services { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px }
.service { min-height:140px; padding:24px; border:1px solid #44444b; display:flex; flex-direction:column; gap:8px; font-size:14px; line-height:24px; color:var(--text-body); transition:background-color .2s,border-color .2s }
.service__title { display:flex; justify-content:space-between; align-items:center; gap:10px; font:500 28px/36px var(--font-head); color:var(--color-black) }
.service__title img { flex:none }
.service__title .icon-external { width:24px; height:24px; margin-left:0 }
.service--primary { background:var(--action-primary); border-color:var(--action-primary); color:white }
.service--primary .service__title { color:white }
.service:focus-visible { background:var(--surface); border-color:var(--action-primary) }
.service--primary:focus-visible { background:#b9232b }
@media(hover:hover) {
    .service:hover { background:var(--surface); border-color:var(--action-primary) }
    .service--primary:hover { background:#b9232b }
}

/* ---------- 반응형: 1921px 이상 (와이드) — 1920 기준 고정 높이 ---------- */
@media(min-width:1921px) {
    .hero { height:904px }
    .germany { height:1080px; aspect-ratio:auto }
    .germany__visual { max-width:1920px; margin:auto }
    .germany__inner { padding-top:96px; padding-bottom:72px }
}

/* ---------- 반응형: 1599px 이하 ---------- */
@media(max-width:1599px) {
    /* Hero · Germany: 오른쪽 퀵배너와 겹치지 않도록 버튼을 안쪽으로 옮깁니다. */
    .hero__content { padding-right:48px }
    .hero__title { font-size:10vw }
    .germany__headline { font-size:24px }
    .germany__description { font-size:14px }
    .germany__copy { width:44%; max-width:520px }
    /* Quality */
    .quality__grid { gap:40px }
    .quality__pillars h3 { font-size:24px; line-height:1.5 }
    .quality__pillars li>div>p:last-child { font-size:14px; line-height:1.7 }
    .quality__pillars { gap:24px }
    .quality__pillars li { gap:16px; grid-template-columns:36px minmax(0,1fr) }
    .quality__number { font-size:40px }
    /* Assurance */
    .assurance-card { padding:24px }
    .assurance-card__top { gap:8px }
    .assurance-card__top img { width:76px; height:76px }
    /* Surface */
    .surface__heading-row { gap:32px }
    .surface__heading-row>h2 { flex:1; max-width:48% }
    .surface__intro { flex:1 }
    .surface__intro p br { display:none }
    .surface__body { gap:48px }
    .surface-effect__metric strong { font-size:96px }
    /* Product */
    .product__actions .button { width:calc(50% - 8px); min-width:0; padding-inline:14px }
    /* Contact */
    .service { padding:20px }
    .service__title { font-size:24px }
    /* Partnership */
    .partnership h2 { font-size:64px }
}

/* ---------- 반응형: 1199px 이하 (태블릿) ---------- */
@media(max-width:1199px) {
    /* Hero */
    .hero { min-height:620px; height:70vw }
    .hero__content { bottom:32px }
    .hero__title { font-size:11vw }
    /* Germany */
    .germany { aspect-ratio:auto; min-height:700px }
    .germany__visual { inset:auto 0 40px; height:56.25vw }
    .germany__inner { min-height:700px; padding-top:48px; padding-bottom:32px }
    .germany__copy { width:52% }
    .germany h2 { font-size:80px }
    .germany__headline { font-size:24px }
    .germany__description { max-width:400px }
    /* Quality */
    .quality__grid { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:32px }
    .quality__pillars li { grid-template-columns:30px 1fr; gap:12px; padding-top:18px }
    .quality__pillars h3 { font-size:20px }
    .quality__figure figcaption { font-size:15px; padding:16px }
    .quality__topic { font-size:16px }
    /* Assurance */
    .assurance-card { padding:20px; min-height:300px }
    .assurance-card h4 { font-size:30px }
    .assurance-card__title { font-size:17px; line-height:1.5 }
    .assurance-card__top { align-items:flex-start; min-height:80px }
    .assurance-card__top img { width:56px; height:56px }
    .assurance__grid { gap:16px }
    /* Surface */
    .surface__heading-row { flex-direction:column; gap:24px }
    .surface__heading-row>h2 { max-width:none }
    .surface__intro { width:100%; max-width:none }
    .surface__body { gap:32px; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) }
    .surface-effect__metric { flex-wrap:wrap; gap:0 16px }
    .surface-effect__metric strong { font-size:84px; line-height:1 }
    .surface-effect__metric h3 { font-size:18px }
    .surface-effect>p:last-child { font-size:14px }
    .surface-process__steps { margin-top:28px; padding-top:24px }
    .surface-process__steps h3 { font-size:18px }
    .vuv-steps { margin-top:24px; gap:14px }
    .vuv-steps li { font-size:13px; gap:10px; padding:8px 12px }
    .vuv-steps li>span { width:28px; height:28px }
    .vuv-steps img { left:26px; bottom:-8px }
    /* Product */
    .products__grid { gap:24px }
    .product__stage { height:320px }
    .product__actions { flex-direction:column; gap:12px }
    .product__actions .button { width:100%; padding-inline:20px }
    .product h3 { margin-top:24px }
    /* Contact */
    .services { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px }
    /* Partnership */
    .partnership__message { font-size:22px }
}

/* ---------- 반응형: 767px 이하 (모바일) ---------- */
@media(max-width:767px) {
    /* Hero */
    .hero { min-height:560px; height:calc(100svh - 24px); max-height:800px }
    .hero__poster,.hero__video { object-position:53% center }
    .hero__content { bottom:44px; flex-direction:column; align-items:flex-start; gap:28px }
    .hero__title { font-size:clamp(58px,14.8vw,110px); line-height:1.2; letter-spacing:-.055em }
    .hero__scrim { background:linear-gradient(180deg,#1c1b2933 0%,transparent 50%,#1c1b2980 100%) }
    /* Scroll Typography */
    .scroll-type { height:340px; min-height:0 }
    .scroll-type__text { font-size:120px; line-height:1.1 }
    /* Germany */
    .germany { min-height:780px }
    .germany__inner { min-height:780px; padding-top:40px; padding-bottom:28px }
    .germany__copy { width:100%; max-width:500px }
    .germany h2 { font-size:80px; margin-top:20px }
    .germany__headline { font-size:22px; margin-top:20px }
    .germany__description { font-size:14px; line-height:1.8; max-width:440px; margin-top:16px }
    .germany__visual { height:300px; bottom:90px }
    .germany__scene { left:50%; transform:translateX(-50%) scale(var(--map-scale,1)); transform-origin:top center }
    .journey { gap:12px; font-size:14px }
    .journey li { padding-top:12px }
    /* Quality */
    .quality__grid { grid-template-columns:1fr; gap:32px }
    .quality__figure { max-width:none }
    .quality__figure>img { aspect-ratio:640/440 }
    .quality__figure figcaption { font-size:14px; line-height:22px }
    .quality__pillars { gap:24px }
    .quality__pillars li { grid-template-columns:32px 1fr; gap:16px; padding-top:20px }
    .quality__number { font-size:36px; line-height:40px }
    .quality__pillars h3 { font-size:20px; line-height:1.6; margin-top:8px }
    .quality__pillars li>div>p:last-child { margin-top:10px; font-size:14px; line-height:1.8 }
    /* Assurance */
    .assurance { margin-top:40px; padding-top:32px }
    .assurance__grid { grid-template-columns:minmax(0,1fr); gap:16px; margin-top:24px }
    .assurance-card { min-height:0; padding:24px }
    .assurance-card__top { align-items:center; min-height:72px; margin-bottom:16px }
    .assurance-card__top img { width:72px; height:72px }
    .assurance-card__title { font-size:18px }
    .assurance-card h4 { font-size:34px }
    /* Surface */
    .surface .section-heading { margin-bottom:40px }
    .surface__intro { padding:20px }
    .surface__intro h3 { font-size:18px }
    .surface__intro p { line-height:1.8 }
    .surface__body { grid-template-columns:1fr; gap:40px }
    .surface-art-viewport { width:100%; max-width:560px; margin:auto }
    .surface-art__light { display:none }
    .surface-process { max-width:none }
    .surface-effect__metric { gap:16px; margin:12px 0 16px }
    .surface-effect__metric strong { font-size:96px }
    .surface-effect__metric h3 { font-size:20px }
    .surface-effect>p:last-child { font-size:15px; line-height:1.8 }
    .surface-process__steps { margin-top:32px; padding-top:24px }
    .vuv-steps { gap:16px }
    .vuv-steps li { font-size:14px; min-height:54px; padding:10px 16px }
    .vuv-steps li>span { width:32px; height:32px }
    .vuv-steps img { left:32px; bottom:-9px }
    /* Product */
    .products__grid { grid-template-columns:minmax(0,1fr); gap:40px }
    .product__stage { height:300px }
    .product h3 { font-size:32px; margin-top:24px }
    .product__actions { margin-top:20px; flex-direction:row; flex-wrap:wrap; gap:12px }
    .product__actions .button { width:calc(50% - 6px); font-size:12px; padding-inline:12px }
    .product__actions .button img { display:none }
    /* Partnership */
    .partnership { padding:56px 0; min-height:420px }
    .partnership__background { object-position:62% center }
    .partnership__scrim { background:linear-gradient(90deg,#1c1b29ed,#1c1b2980) }
    .partnership h2 { font-size:clamp(38px,10vw,56px); line-height:1.1 }
    .partnership__message { font-size:19px; line-height:1.7; margin-top:20px }
    .partnership .button { margin-top:32px }
    /* Contact */
    .services { grid-template-columns:1fr; gap:12px }
    .service { min-height:112px; padding:20px 24px }
    .service__title { font-size:28px }
}

/* ---------- 모션 최소화 설정: 스크롤 타이포 고정 ---------- */
@media(prefers-reduced-motion:reduce) {
    .scroll-type { height:auto; min-height:220px; padding:56px 24px }
    .scroll-type__text { white-space:normal; font-size:clamp(48px,9vw,160px); text-align:center; width:100%; transform:none; will-change:auto }
}

/* ---------- Hero 워드마크 서체 ---------- */
/* 원본 히어로 워드마크의 Gmarket Sans 서체를 유지합니다. */
.hero__title { font-family:'Gmarket Sans',var(--font-body); letter-spacing:0 }

/* ---------- 모바일: 지도 영역 높이 · 라벨 위치 보정 ---------- */
@media(max-width:767px) {
    .germany__visual { height:340px }
    .map-label { left:1000px; top:730px; width:440px }
}

@media(max-width:767px) {
    .germany__visual { height:340px }
    .map-label { left:1000px; top:730px; width:440px }
}

/* ========== Precision Journey: 스크롤 타이포 → 독일 지도 영상 연출 (구 germany-motion.css) ========== */
/* Continuous film: type 140vh + geographic travel 240vh; final 10% holds. */
/* ---------- 기본 레이아웃 (모션 비활성 상태에서도 적용) ---------- */
.precision-journey { --motion-header:84px; background:#1c1b29; color:white; position:relative }
.precision-journey__stage { position:relative; overflow:hidden; background:#1c1b29 }
.precision-journey .scroll-type { height:auto; min-height:0; padding:64px 24px; background:transparent }
.precision-journey .scroll-type__text { font-size:clamp(48px,10vw,120px); white-space:normal; transform:none }
.precision-journey .germany { position:relative; height:calc(100svh - var(--motion-header)); min-height:580px; aspect-ratio:auto }
.precision-journey .germany__visual { position:absolute; inset:0; height:100%; opacity:1 }
/* 도착 이미지 / 스크롤 연동 영상 */
.germany-arrival,.germany-film { position:absolute; inset:0; width:100%; height:100% }
.germany-arrival img { width:100%; height:100%; object-fit:cover; object-position:center }
.germany-film { object-fit:cover; object-position:center }
.film-ready .germany-arrival { visibility:hidden }
.precision-journey .germany__inner { position:relative; height:100%; padding-top:clamp(36px,5vw,96px); padding-bottom:36px; justify-content:space-between }
.precision-journey .germany__copy { width:42%; max-width:600px; margin:0 }
.precision-journey .germany h2 { font-size:clamp(60px,5.83vw,112px); margin-top:24px; min-height:1.94em }
.precision-journey .germany__headline { font-size:clamp(18px,1.46vw,28px); margin-top:24px }
.precision-journey .germany__description { font-family:var(--font-head); font-size:18px; line-height:24px; margin-top:24px; max-width:none }
/* 목적지 라벨 */
.film-destination { position:absolute; left:65%; top:62%; padding:10px 14px; background:#1c1b29; max-width:calc(100% - 24px); font-family:var(--font-head); pointer-events:none }
.film-destination strong { display:block; font-size:clamp(22px,1.875vw,36px); font-weight:500; line-height:1.15 }
.film-destination>span:not(.film-destination__leader) { display:block; font-size:clamp(10px,.94vw,18px); line-height:1.4; color:#c1c5c9; white-space:nowrap }
.film-destination__leader { position:absolute; width:24px; height:1px; right:100%; top:50%; background:#ffffff80 }

/* ---------- 모션 허용 시: 스테이지 sticky 고정 후 타이포 → 지도 영상 전환 ---------- */
@media(prefers-reduced-motion:no-preference) {
    .motion-enabled .precision-journey__stage { position:sticky; top:var(--motion-header); height:calc(100svh - var(--motion-header)) }
    .motion-enabled .scroll-type { position:absolute; inset:0; z-index:3; height:100%; max-height:none; padding:0; pointer-events:none }
    .motion-enabled .scroll-type__text { font-size:clamp(130px,16.666667vw,320px); white-space:nowrap; transform:translate3d(var(--type-x,12.5vw),0,0) }
    .motion-enabled .germany { position:absolute; inset:0; height:100%; min-height:0; opacity:0 }
}

/* ---------- 반응형: 767px 이하 (모바일) ---------- */
@media(max-width:767px) {
    .precision-journey .germany__inner { padding:24px 0 }
    .precision-journey .germany__copy { width:100%; max-width:none }
    .precision-journey .germany h2 { font-size:clamp(40px,11vw,52px); line-height:.98; min-height:1.96em; margin-top:12px }
    .precision-journey .germany__headline { font-size:16px; line-height:1.5; margin-top:12px }
    .precision-journey .germany__description { font-size:14px; margin-top:12px }
    .precision-journey .journey { gap:12px; font-size:13px; line-height:18px }
    .precision-journey .journey li { padding-top:10px }
    .film-destination { padding:6px 8px; left:55%; top:73% }
    .film-destination strong { font-size:19px }
    .film-destination>span:not(.film-destination__leader) { font-size:8px }
    .film-destination__leader { width:16px }
}

/* ---------- 모션 최소화 설정: 영상 숨김, 지도 즉시 표시 ---------- */
@media(prefers-reduced-motion:reduce) {
    .precision-journey { height:auto!important }
    .precision-journey .germany { opacity:1!important }
    .germany-film { display:none!important }
}

/* ---------- 모바일 낮은 화면(높이 600px 이하): 설명 숨김, 글자 축소 ---------- */
@media(max-width:767px) and (max-height:600px) {
    .precision-journey .germany__inner { padding:16px 0 }
    .precision-journey .germany h2 { font-size:32px; margin-top:8px }
    .precision-journey .germany__headline { font-size:14px; margin-top:8px }
    .precision-journey .germany__description { display:none }
    .precision-journey .journey { font-size:11px }
}

/* ---------- 모션 활성 시 스크롤 타이포 렌더링 보정 ---------- */
.motion-enabled .scroll-type__text { backface-visibility:hidden }
