*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --white:#ffffff;
  --paper:#f3f4f1;
  --paper-2:#eceee8;
  --ink:#1d1e19;
  --charcoal:#2d302b;
  --charcoal-2:#23251f;
  --muted:#6f7268;
  --line:#e1e2dc;
  --line-dark:rgba(255,255,255,.13);
  --olive:#2f473c;
  --sage:#6f7d68;
  --sage-soft:rgba(111,125,104,.16);
  --ease:cubic-bezier(.19,1,.22,1);
  --radius:18px;
}
html{scroll-behavior:smooth;}
html{overflow-x:hidden;}
body{font-family:"Pretendard","Inter",system-ui,sans-serif;background:var(--white);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
img,video{display:block;max-width:100%;}
button,input,select,textarea{font:inherit;}
h1,h2,h3,p{word-break:keep-all;overflow-wrap:break-word;}
h1,h2{text-wrap:balance;}
.wrap{width:min(1180px,calc(100% - 48px));margin:0 auto;}

@keyframes slowZoom{from{transform:scale(1);}to{transform:scale(1.05);}}
@keyframes bgDrift{0%{transform:translate(0,0) scale(1.02);}50%{transform:translate(-1.5%,1%) scale(1.05);}100%{transform:translate(0,0) scale(1.02);}}

/* ── Header ── */
.fonts-loading .site-header,.fonts-loading .footer{opacity:0;}
.site-header{position:fixed;top:0;left:0;right:0;z-index:30;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 44px;color:var(--white);transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),opacity .2s ease;}
.footer{transition:opacity .2s ease;}
.site-header.solid,.site-header.scrolled{background:rgba(255,255,255,.94);color:var(--ink);border-bottom:1px solid var(--line);backdrop-filter:blur(10px);}
.brand{font-family:"Inter",sans-serif;font-size:15px;font-weight:800;letter-spacing:.02em;}
.nav{display:flex;align-items:center;gap:30px;font-size:15.5px;font-weight:600;}
.nav a{opacity:.82;transition:opacity .25s;}
.nav a:hover,.nav a.active{opacity:1;}
.nav .contact-link{border:1px solid currentColor;padding:9px 18px;opacity:1;}
.mobile-toggle{display:none;width:38px;height:38px;border:0;background:transparent;color:inherit;position:relative;align-items:center;justify-content:center;}
.mobile-toggle span,.mobile-toggle::before,.mobile-toggle::after{content:"";display:block;width:21px;height:1.5px;background:currentColor;position:absolute;transition:transform .3s var(--ease),opacity .3s;}
.mobile-toggle::before{transform:translateY(-7px);}
.mobile-toggle::after{transform:translateY(7px);}
.mobile-toggle.open span{opacity:0;}
.mobile-toggle.open::before{transform:rotate(45deg);}
.mobile-toggle.open::after{transform:rotate(-45deg);}
.mobile-panel{display:none;position:fixed;inset:72px 0 auto 0;background:var(--white);border-bottom:1px solid var(--line);z-index:29;padding:28px 24px;}
.mobile-panel.open{display:grid;gap:18px;}
.mobile-panel a{font-size:18px;font-weight:700;color:var(--ink);}

/* ── Hero (영상, 최소 오버레이, 줄 단위 천천히 reveal) ── */
.hero{min-height:100vh;position:relative;display:flex;align-items:flex-end;overflow:hidden;color:var(--white);background:var(--charcoal);}
.hero-media{position:absolute;inset:0;overflow:hidden;}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,10,8,.55) 0%,rgba(10,10,8,0) 22%),linear-gradient(to top,rgba(20,20,17,.5),rgba(20,20,17,.18) 55%,rgba(20,20,17,.04));}
.hero-content{position:relative;z-index:2;width:100%;padding:0 44px 76px;}
.eyebrow{font-family:"Pretendard",sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.14em;color:rgba(255,255,255,.66);margin-bottom:18px;display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:20px;height:1px;background:rgba(255,255,255,.4);}
.hero h1{font-size:clamp(32px,5vw,58px);font-weight:700;letter-spacing:-.02em;line-height:1.32;max-width:760px;overflow:hidden;}
.hero h1 .ln,.sub-hero h1 .ln{display:block;opacity:0;transform:translateY(24px);transition:opacity 1.05s var(--ease),transform 1.05s var(--ease);}
.hero.loaded h1 .ln:nth-child(1),.sub-hero.loaded h1 .ln:nth-child(1){opacity:1;transform:none;transition-delay:.15s;}
.hero.loaded h1 .ln:nth-child(2),.sub-hero.loaded h1 .ln:nth-child(2){opacity:1;transform:none;transition-delay:.42s;}
.hero-copy{font-size:clamp(15px,1.2vw,16px);line-height:1.85;color:rgba(255,255,255,.82);max-width:540px;margin-top:22px;}
.hero .hero-copy,.sub-hero .hero-copy{opacity:0;transform:translateY(14px);transition:opacity 1.1s var(--ease) .72s,transform 1.1s var(--ease) .72s;}
.hero.loaded .hero-copy,.sub-hero.loaded .hero-copy{opacity:1;transform:none;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;}
.hero .hero-actions,.sub-hero .hero-actions{opacity:0;transform:translateY(12px);transition:opacity 1s var(--ease) .96s,transform 1s var(--ease) .96s;}
.hero.loaded .hero-actions,.sub-hero.loaded .hero-actions{opacity:1;transform:none;}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px;font-size:14px;font-weight:700;transition:transform .25s var(--ease),background .25s var(--ease),border .25s var(--ease);}
.btn:hover{transform:translateY(-2px);}
.btn-white{background:var(--white);color:var(--ink);}
.btn-ghost{border:1px solid rgba(255,255,255,.46);color:var(--white);}
.btn-dark{background:var(--ink);color:var(--white);}
.btn-line{border:1px solid var(--line);color:var(--ink);}
.link-more{display:inline-block;font-size:14px;font-weight:700;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;transition:opacity .25s var(--ease);}
.link-more:hover{opacity:.6;}

/* ── Sub Hero (이미지) ── */
.sub-hero{min-height:46vh;position:relative;display:flex;align-items:flex-end;overflow:hidden;color:var(--white);background:var(--charcoal);}
.sub-hero .hero-media img{animation:slowZoom 28s var(--ease) infinite alternate;}
.sub-hero .hero-content{padding-bottom:56px;}
.sub-hero h1{font-size:clamp(32px,5vw,58px);}

/* ── Sections ── */
.section{padding:116px 0;min-height:88vh;display:flex;flex-direction:column;justify-content:center;}
.section.soft{background:var(--paper);}
.flow-content-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:64px;align-items:center;}
.section.charcoal{background:var(--charcoal);color:var(--white);}
.section h2{font-size:clamp(34px,4.2vw,55px);font-weight:800;letter-spacing:-.02em;line-height:1.3;word-break:keep-all;}
.section-sub{color:var(--muted);font-size:17px;line-height:1.85;margin-top:14px;max-width:560px;word-break:keep-all;}
.section.charcoal .section-sub{color:rgba(255,255,255,.72);}
.section-head{max-width:620px;}

/* ── Impact statement — opacity + letter-spacing 정리 (translateY 없음) ── */
.impact{text-align:center;padding:100px 0;position:relative;overflow:hidden;min-height:88vh;display:flex;flex-direction:column;justify-content:center;}
.impact h2{font-size:clamp(34px,4.2vw,55px);font-weight:800;letter-spacing:-.02em;line-height:1.3;word-break:keep-all;}

/* ── Story 섹션: 자체 88vh 가운데 정렬 여백을 없애서, Impact 쪽 여백만으로 Hero→Impact 간격과 동일하게 ── */
#story{min-height:auto;padding-top:0;}
.reveal-tracking{opacity:0;letter-spacing:.09em;transition:opacity 1.7s var(--ease),letter-spacing 1.7s var(--ease);}
.reveal-tracking.in{opacity:1;letter-spacing:normal;}

/* ── Reveal / Stagger (900~1200ms, 120~180ms 간격) ── */
.reveal{opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.15s;}
.reveal.d2{transition-delay:.3s;}
.stagger > *{opacity:0;transform:translateY(18px);transition:opacity .95s var(--ease),transform .95s var(--ease);transition-delay:calc(var(--i,0) * 150ms);}
.stagger.in > *{opacity:1;transform:none;}

/* ── Flow panel (좌→우 line draw) ── */
.flow-panel{position:relative;border-radius:var(--radius);background:linear-gradient(158deg,var(--charcoal-2),var(--charcoal) 60%);padding:48px 44px 42px;}
.flow-panel-label{font-family:"Inter",sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;color:rgba(255,255,255,.4);text-align:center;margin-bottom:6px;text-transform:uppercase;}
.flow-track-wrap{position:relative;max-width:960px;margin:0 auto;}
.flow-line{position:absolute;left:9%;right:9%;top:5px;height:1px;background:var(--line-dark);}
.flow-line-fill{position:absolute;left:0;top:0;height:100%;width:0;background:var(--sage);transition:width 2.2s var(--ease);}
.flow-track-wrap.active .flow-line-fill{width:100%;}
.flow-grid{display:grid;grid-template-columns:repeat(5,1fr);position:relative;}
.flow-item{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;}
.flow-daytag{font-family:"Inter",sans-serif;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--sage);opacity:0;transition:opacity .5s var(--ease);transition-delay:calc(var(--i) * 160ms + 60ms);}
.flow-track-wrap.active .flow-daytag{opacity:1;}
.flow-dot{width:11px;height:11px;border-radius:50%;background:var(--charcoal-2);border:2px solid var(--line-dark);transform:scale(0);transition:transform .55s var(--ease),border-color .55s;transition-delay:calc(var(--i) * 160ms);}
.flow-track-wrap.active .flow-dot{transform:scale(1);border-color:var(--sage);}
.flow-label{font-size:14px;font-weight:700;color:rgba(255,255,255,.92);opacity:0;transition:opacity .55s var(--ease);transition-delay:calc(var(--i) * 160ms + 140ms);}
.flow-track-wrap.active .flow-label{opacity:1;}
.flow-sub{text-align:center;margin-top:36px;font-size:14px;color:rgba(255,255,255,.5);}

/* ── Hub / 거점 네트워크 그래픽 (개략형, 연결선 draw + 은은한 pulse) ── */
.hub{display:grid;grid-template-columns:0.9fr 1.1fr;gap:60px;align-items:center;}
.hub-copy p{color:var(--muted);font-size:17px;line-height:1.85;margin:20px 0 24px;max-width:440px;word-break:keep-all;}
.hub-tags{display:flex;flex-wrap:wrap;gap:10px;}
.hub-tag{border:1px solid var(--line);background:var(--white);padding:9px 16px;font-size:13px;font-weight:700;color:var(--ink);border-radius:999px;}
.hub-map-wrap{position:relative;background:transparent;padding:0;}
.hub-map{width:100%;height:auto;display:block;}
.hub-satellite{font-family:"Pretendard",sans-serif;font-size:12px;font-weight:700;fill:var(--muted);}
.hub-pin-label{font-family:"Pretendard",sans-serif;font-size:9px;font-weight:700;fill:var(--white);}
.hub-pin-name{font-family:"Pretendard",sans-serif;font-size:13px;font-weight:800;fill:var(--ink);}
.hub-footnote{margin-top:-10px;font-size:15px;color:var(--muted);text-align:center;}

/* ── 체크포인트 리스트 (사진 대신 라인 그래픽) ── */
.checklist{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px;border-radius:14px;overflow:hidden;}
.checklist-item{background:var(--white);padding:30px 22px;display:flex;flex-direction:column;gap:16px;}
.checklist-icon{width:34px;height:34px;color:var(--olive);}
.checklist-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.checklist-kr{font-size:14.5px;font-weight:700;color:var(--ink);}

/* ── 온도대별 대응: 하나의 패널 + 3구역 분할 ── */
.temp-panel{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--charcoal-2);margin-top:44px;}
.temp-bg{position:absolute;inset:-4%;background-size:cover;background-position:center;opacity:.22;animation:slowZoom 30s var(--ease) infinite alternate;}
.temp-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(24,25,20,.9),rgba(24,25,20,.68));}
.temp-zones{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);}
.temp-zone{padding:44px 30px;border-left:1px solid var(--line-dark);}
.temp-zone:first-child{border-left:none;}
.temp-zone-icon{width:30px;height:30px;color:var(--sage);margin-bottom:18px;}
.temp-zone-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.temp-zone strong{display:block;font-size:16px;color:var(--white);}

/* ── Split (image + text) ── */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.split-media{position:relative;overflow:hidden;min-height:300px;border-radius:var(--radius);}
.split-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;animation:slowZoom 28s var(--ease) infinite alternate;}
.split-media::after{content:"";position:absolute;inset:0;background:rgba(20,20,17,.14);}

/* ── Numbers (count-up, rounded dark panel) ── */
.numbers-panel{position:relative;overflow:hidden;border-radius:var(--radius);padding:60px 48px;background:var(--charcoal-2);}
.numbers-bg{position:absolute;inset:-4%;background-size:cover;background-position:center;opacity:.24;animation:slowZoom 30s var(--ease) infinite alternate;z-index:0;}
.numbers-panel::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(120deg,rgba(22,23,19,.92),rgba(22,23,19,.74));}
.numbers-inner{position:relative;z-index:2;}
.numbers-eyebrow{font-family:"Inter",sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;color:rgba(255,255,255,.44);margin-bottom:14px;text-transform:uppercase;}
.numbers-title{font-size:clamp(20px,2.4vw,28px);font-weight:800;color:var(--white);margin-bottom:38px;}
.numbers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.numbers-card{border-left:1px solid var(--line-dark);padding-left:22px;}
.numbers-card:first-child{border-left:none;padding-left:0;}
.numbers-val{font-family:"Inter",sans-serif;font-size:clamp(32px,3.8vw,46px);font-weight:800;color:var(--white);line-height:1;letter-spacing:-.02em;}
.numbers-unit{font-size:16px;font-weight:700;margin-left:3px;color:rgba(255,255,255,.62);}
.numbers-label{margin-top:12px;font-size:13.5px;color:rgba(255,255,255,.54);}
.numbers-caption{margin-top:32px;font-size:13.5px;color:rgba(255,255,255,.4);}

/* ── 비교 표(운영 사례): 2년 전 → 현재 ── */
.compare-table-wrap{margin-top:44px;overflow-x:auto;border:1px solid var(--line);border-radius:14px;}
.compare-table{width:100%;border-collapse:collapse;min-width:520px;}
.compare-table th,.compare-table td{padding:16px 22px;text-align:left;font-size:13.5px;border-bottom:1px solid var(--line);white-space:nowrap;}
.compare-table th{background:var(--paper);font-weight:800;color:var(--ink);font-size:12.5px;letter-spacing:.02em;}
.compare-table td{color:var(--muted);}
.compare-table td:first-child{font-weight:700;color:var(--ink);}
.compare-table td.now{color:var(--ink);font-weight:700;}
.compare-table tr:last-child td{border-bottom:none;}

/* ── 운영 사례 티저(메인): 성장 라인 차트 ── */
.growth-chart .chart-line{stroke-dasharray:700;stroke-dashoffset:700;transition:stroke-dashoffset 2s var(--ease);}
.growth-chart.active .chart-line{stroke-dashoffset:0;}

/* ── Vertical process timeline (파트너십) ── */
.pv-panel{position:relative;border-radius:var(--radius);background:linear-gradient(158deg,var(--charcoal-2),var(--charcoal) 60%);padding:52px 48px;}
.pv-line{position:relative;margin-top:52px;padding-left:38px;}
.pv-track{position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line-dark);}
.pv-track-fill{position:absolute;left:0;top:0;width:1px;height:0;background:var(--sage);transition:height 2.2s var(--ease);}
.pv-line.active .pv-track-fill{height:100%;}
.pv-item{position:relative;padding-bottom:34px;opacity:0;transform:translateY(14px);transition:opacity .75s var(--ease),transform .75s var(--ease);transition-delay:calc(var(--i) * 170ms);}
.pv-item:last-child{padding-bottom:0;}
.pv-line.active .pv-item{opacity:1;transform:none;}
.pv-dot{position:absolute;left:-38px;top:3px;width:11px;height:11px;border-radius:50%;background:var(--charcoal-2);border:2px solid var(--line-dark);transform:scale(0);transition:transform .55s var(--ease),border-color .55s;transition-delay:calc(var(--i) * 170ms + 140ms);}
.pv-line.active .pv-dot{transform:scale(1);border-color:var(--sage);}
.pv-step{font-family:"Inter",sans-serif;font-size:11px;font-weight:700;color:var(--sage);letter-spacing:.03em;margin-bottom:7px;}
.pv-title{font-size:16px;font-weight:700;color:var(--white);margin-bottom:5px;}
.pv-desc{font-size:13px;color:rgba(255,255,255,.54);line-height:1.75;max-width:520px;}

/* ── CTA (fade-up + background slow drift) ── */
.cta-drift{position:relative;overflow:hidden;}
.cta-drift::before{content:"";position:absolute;inset:-10%;background:radial-gradient(circle at 30% 30%,rgba(111,125,104,.14),transparent 55%),radial-gradient(circle at 72% 68%,rgba(47,71,60,.18),transparent 50%);animation:bgDrift 16s ease-in-out infinite;z-index:0;}
.cta-drift > .wrap{position:relative;z-index:1;}

/* ── Footer ── */
.footer{background:var(--charcoal);color:rgba(255,255,255,.6);padding:48px 0 30px;font-size:13px;}
.footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start;width:min(1400px,calc(100% - 48px));}
.footer strong{color:var(--white);display:block;margin-bottom:8px;font-size:14px;}
.footer-links{display:flex;gap:20px;flex-wrap:wrap;}

/* ── 8단계 흐름(입고→...→대응) 전용: 촘촘한 가로 flow ── */
.flow-grid.cols-8{grid-template-columns:repeat(8,1fr);}
.flow-grid.cols-8 .flow-label{font-size:12px;}
.flow-grid.cols-8 .flow-dot{width:9px;height:9px;}

/* ── 세로/대각선 zigzag flow (브랜드 소개 페이지 전용, 메인 가로 flow와 구분) ── */
.zigzag-flow{position:relative;margin-top:52px;}
.zigzag-line{position:absolute;left:50%;top:6px;bottom:6px;width:1px;background:var(--line);transform:translateX(-50%);}
.zigzag-line-fill{position:absolute;left:0;top:0;width:1px;height:0;background:var(--sage);transition:height 2.4s var(--ease);}
.zigzag-flow.active .zigzag-line-fill{height:100%;}
.zigzag-row{display:grid;grid-template-columns:1fr 32px 1fr;align-items:center;min-height:72px;}
.zigzag-dot-col{display:flex;justify-content:center;}
.zigzag-dot{width:10px;height:10px;border-radius:50%;background:var(--white);border:2px solid var(--line);transform:scale(0);transition:transform .5s var(--ease),border-color .5s;transition-delay:calc(var(--i) * 190ms);position:relative;z-index:1;}
.zigzag-flow.active .zigzag-dot{transform:scale(1);border-color:var(--sage);}
.zigzag-label{font-size:15px;font-weight:700;color:var(--ink);opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i) * 190ms + 120ms);}
.zigzag-label.side-left{grid-column:1;text-align:right;padding-right:22px;transform:translateX(-18px);}
.zigzag-label.side-right{grid-column:3;text-align:left;padding-left:22px;transform:translateX(18px);}
.zigzag-flow.active .zigzag-label{opacity:1;transform:translateX(0);}

/* ── 브랜드 소개 안내 캡션 + 작은 보조 태그(협력 대상, 품목) ── */
.micro-caption{margin-top:16px;font-size:12.5px;color:var(--muted);line-height:1.8;}
.micro-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.micro-tag{font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--line);padding:4px 10px;border-radius:999px;}

/* ── 가벼운 클로징 CTA(제목 없이 문장+버튼만) ── */
.cta-light{padding:88px 0;background:var(--paper);text-align:center;}
.cta-light p{font-size:16px;font-weight:600;color:var(--ink);max-width:520px;margin:0 auto;}

/* ── 용인 거점 카드(운영역량 페이지, 지도 반복 없이 split) ── */
.location-split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px;}
.location-card{background:var(--white);padding:34px 30px;}
.location-card h3{font-size:15px;font-weight:800;margin-bottom:12px;}
.location-card p{font-size:14px;color:var(--muted);line-height:1.8;}

/* ── index.html 전용 밝은 flow 패널(operations.html 어두운 flow-panel과 분리, 배경 이미지 은은하게) ── */
.flow-panel.bright{background:linear-gradient(158deg,#43463d,#54574b 55%,#63665a 100%);}
.flow-panel.bright > *:not(.flow-bg){position:relative;z-index:2;}
.flow-panel .flow-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.2;border-radius:var(--radius);z-index:0;}
.flow-panel.bright::after{content:"";position:absolute;inset:0;border-radius:var(--radius);background:linear-gradient(158deg,rgba(35,37,31,.55),rgba(35,37,31,.8));z-index:1;}
.flow-panel.bright .flow-line-fill{transition:width 2.6s var(--ease);}
.flow-panel.bright .flow-dot{transition:transform 1.2s var(--ease),border-color 1.2s;transition-delay:calc(var(--i) * 220ms);}
.flow-panel.bright .flow-label{transition:opacity 1.15s var(--ease);transition-delay:calc(var(--i) * 220ms + 200ms);}

/* ── index.html CTA 전용: 밝은 차콜 그라데이션 + 은은한 라인 패턴(operations.html의 .section.charcoal과 분리) ── */
.section.charcoal-warm{position:relative;background:linear-gradient(160deg,#43463d 0%,#2d302b 55%,#23251f 100%);color:var(--white);}
.section.charcoal-warm .section-sub{color:rgba(255,255,255,.72);}
.section.charcoal-warm::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0px,rgba(255,255,255,.03) 1px,transparent 1px,transparent 28px);pointer-events:none;}

/* ── 거점 지도 브랜드 워시(기술 데모 느낌 완화) ── */
.hub-map-wrap{background:transparent;}
.hub-connector{stroke:var(--olive);stroke-width:1.8;opacity:.55;}

/* ── 브랜드 소개 페이지 전용: 기준 체크 패널(좌측 문장 + 우측 번호 리스트) ── */
.criteria-panel{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:start;}
.criteria-list{display:flex;flex-direction:column;}
.criteria-item{display:flex;align-items:baseline;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);}
.criteria-item:last-child{border-bottom:none;}
.criteria-num{font-family:"Inter",sans-serif;font-size:13px;font-weight:700;color:var(--sage);min-width:26px;}
.criteria-label{font-size:15.5px;font-weight:700;color:var(--ink);}

/* ── Responsive ── */
@media(max-width:960px){
  .site-header{padding:0 22px;}
  .nav{display:none;}
  .mobile-toggle{display:flex;position:relative;}
  .hero-content,.sub-hero .hero-content{padding-left:22px;padding-right:22px;}
  .section{padding:76px 0;min-height:auto;}
  .impact{min-height:100vh;}
  .split,.criteria-panel{grid-template-columns:1fr;gap:30px;}
  .numbers-grid{grid-template-columns:repeat(2,1fr);}
  .numbers-card{border-left:none;padding-left:0;border-bottom:1px solid var(--line-dark);padding-bottom:18px;}
  .flow-grid{grid-template-columns:1fr;gap:20px;}
  .flow-line{display:none;}
  .flow-item{flex-direction:row;text-align:left;justify-content:flex-start;}
  .checklist{grid-template-columns:repeat(2,1fr);}
  .temp-zones{grid-template-columns:1fr;}
  .temp-zone{border-left:none;border-top:1px solid var(--line-dark);}
  .temp-zone:first-child{border-top:none;}
  .footer .wrap{flex-direction:column;}
  .flow-grid.cols-8{grid-template-columns:1fr;gap:16px;}
  .location-split{grid-template-columns:1fr;}
  .zigzag-row{grid-template-columns:24px 1fr;min-height:auto;padding:10px 0;}
  .zigzag-dot-col{grid-column:1;}
  .zigzag-line{left:12px;}
  .zigzag-label.side-left,.zigzag-label.side-right{grid-column:2;text-align:left;padding-left:14px;padding-right:0;transform:translateX(0);}
}
@media(max-width:560px){
  .flow-content-grid{grid-template-columns:1fr;gap:36px;}
  .flow-content-grid > div:last-child{order:2;}
  .hub{grid-template-columns:1fr;gap:36px;}
  .wrap{width:min(calc(100% - 32px),1180px);}
  .checklist{grid-template-columns:1fr;}
  .flow-panel,.pv-panel,.numbers-panel{padding:36px 24px;}
}

/* ── Nav auto-theme ── */
.site-header.nav-on-light:not(.solid):not(.scrolled){color:var(--ink);}


/* ══ Partnership & additional styles ══ */
/* ── Identity 섹션(index.html): 키워드 3개 ── */
.identity-keywords{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.identity-keyword{font-size:13.5px;font-weight:700;color:var(--ink);border:1px solid var(--line);padding:9px 18px;border-radius:999px;}

/* ── 3~4열 카드 그리드(공용, 사진/아이콘 없이 텍스트 위주) ── */
.trio-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px;border-radius:14px;overflow:hidden;}
.trio-cards.cols-4{grid-template-columns:repeat(4,1fr);}
.trio-card{background:var(--white);padding:30px 26px;}
.section.charcoal .trio-card{background:rgba(255,255,255,.03);}
.trio-card h3{font-size:15.5px;font-weight:800;color:var(--ink);margin-bottom:10px;}
.section.charcoal .trio-card h3{color:var(--white);}
.trio-card p{font-size:13.5px;color:var(--muted);line-height:1.75;}
.section.charcoal .trio-card p{color:rgba(255,255,255,.6);}

/* ── Standard 섹션(operations.html): 기준 심플 리스트 ── */
.standard-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.standard-item{font-size:14px;font-weight:700;color:var(--ink);border:1px solid var(--line);padding:11px 20px;border-radius:999px;}

/* ── Growth 타임라인(olhta.html) ── */
.growth-timeline{display:flex;flex-direction:column;margin-top:44px;}
.growth-row{display:grid;grid-template-columns:90px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.growth-row:last-child{border-bottom:none;}
.growth-year{font-family:"Inter",sans-serif;font-size:20px;font-weight:800;color:var(--sage);}
.growth-desc{font-size:14.5px;font-weight:600;color:var(--ink);}
.numbers-grid.cols-3{grid-template-columns:repeat(3,1fr);}

/* ── Partnership 영상형 HERO(infra-partnership.html 전용, 서브 배너보다 크게) ── */
/* min-height/max-height를 각각 쓰면 화면이 클 때 min-height가 항상 이겨 900px 캡이 무시되므로 height:min()으로 처리 */
.partnership-video-hero{min-height:100vh;height:100vh;background:#0f1110;}
.partnership-video-hero .hero-media{z-index:0;}
.partnership-video-hero .hero-video-stage{position:absolute;inset:0;}
.partnership-video-hero .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block;opacity:0;transition:opacity 1.1s ease;}
.partnership-video-hero .hero-video-a{opacity:1;}
.partnership-video-hero .hero-content{text-shadow:0 2px 14px rgba(0,0,0,.6);}
.partnership-video-hero .eyebrow,
.partnership-video-hero h1{opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
.partnership-video-hero .eyebrow{transition-delay:.15s;}
.partnership-video-hero h1{transition-delay:.32s;}
.partnership-video-hero.loaded .eyebrow,
.partnership-video-hero.loaded h1{opacity:1;transform:none;}

/* ── Partnership Fit(infra-partnership.html): 오빗형 조건 클러스터 + 업종별 와이드 밴드 ── */
/* 중앙 문구를 중심에 두고 5개 기준이 둘러싸는 구조. 희미한 원형 가이드만 사용, 항목 간 연결선 없음(순서/프로세스로 안 보이게) */
.fit-orbit{position:relative;margin:72px auto 0;min-height:620px;max-width:820px;}
.fit-orbit::before{content:"";position:absolute;left:50%;top:50%;width:360px;height:360px;transform:translate(-50%,-50%);border:1px dashed var(--line);border-radius:50%;pointer-events:none;}
.fit-orbit-center{position:absolute;left:50%;top:50%;transform:translate(-50%,calc(-50% + 16px));max-width:260px;text-align:center;z-index:2;opacity:0;transition:opacity .9s var(--ease),transform .9s var(--ease);}
.fit-orbit.active .fit-orbit-center{opacity:1;transform:translate(-50%,-50%);}
.fit-orbit-center p{margin:0;font-size:17px;line-height:1.75;color:var(--muted);}

.fit-orbit-item{position:absolute;width:210px;text-align:center;z-index:2;opacity:0;transition:opacity .8s var(--ease);transition-delay:calc(var(--i) * 150ms);}
.fit-orbit.active .fit-orbit-item{opacity:1;}
.fit-orbit-icon{width:32px;height:32px;margin:0 auto 14px;color:var(--sage);}
.fit-orbit-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.fit-orbit-item h3{margin:0 0 8px;font-size:20px;font-weight:800;color:var(--ink);}
.fit-orbit-item p{margin:0;font-size:14px;line-height:1.75;color:var(--muted);word-break:keep-all;}

.fit-orbit .item-top{left:50%;top:10%;transform:translate(-50%,-50%);}
.fit-orbit .item-left{left:15%;top:38%;transform:translate(-50%,-50%);}
.fit-orbit .item-right{left:85%;top:38%;transform:translate(-50%,-50%);}
.fit-orbit .item-bottom-left{left:32%;top:82%;transform:translate(-50%,-50%);}
.fit-orbit .item-bottom-right{left:68%;top:82%;transform:translate(-50%,-50%);}

.fit-use-bands{border-top:1px solid var(--line);max-width:1180px;margin:0 auto;}
.fit-use-band{
  display:grid;
  grid-template-columns:44px 255px 310px 1fr;
  grid-template-areas:"num title keywords desc";
  gap:24px;
  align-items:baseline;
  padding:32px 0;
  border-bottom:1px solid var(--line);
}
.fit-use-band-num{grid-area:num;font-family:"Inter",sans-serif;font-size:17px;font-weight:800;color:var(--sage);}
.fit-use-band-title{grid-area:title;margin:0;font-size:20px;font-weight:800;color:var(--ink);}
.fit-use-band-keywords{grid-area:keywords;margin:0;font-size:16.5px;font-weight:600;color:var(--muted);letter-spacing:.01em;}
.fit-use-band-desc{grid-area:desc;margin:0;font-size:16.5px;color:var(--ink);opacity:.8;line-height:1.65;}

/* ── 거래처 신뢰 문장(로고 대체, 아주 작게) ── */
.trust-line{margin-top:18px;font-size:12.5px;color:var(--muted);}

/* ── 문의 폼(파트너십 전용, 실제 폼은 이 페이지 1곳에만) ── */
.contact-panel{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:start;margin-top:80px;}
.contact-info-card{background:var(--white);border:1px solid var(--line);padding:32px 28px;border-radius:var(--radius);}
.contact-info-card h3{font-size:15px;font-weight:800;margin-bottom:20px;color:var(--ink);}
.contact-row{display:flex;flex-direction:column;gap:4px;margin-bottom:18px;}
.contact-row:last-child{margin-bottom:0;}
.contact-label{font-family:"Inter",sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.contact-value{font-size:15px;font-weight:700;color:var(--ink);}
.cform{display:flex;flex-direction:column;gap:16px;background:var(--white);border:1px solid var(--line);padding:32px 28px;border-radius:var(--radius);}
.cform-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.cfield{display:flex;flex-direction:column;gap:7px;}
.cfield.full{grid-column:1 / -1;}
.cfield label{font-size:12.5px;font-weight:700;color:var(--ink);}
.cfield input,.cfield select,.cfield textarea{font-family:inherit;font-size:13.5px;padding:12px 14px;border:1px solid var(--line);background:var(--white);color:var(--ink);transition:border-color .3s;width:100%;}
.cfield input:focus,.cfield select:focus,.cfield textarea:focus{outline:none;border-color:var(--sage);}
.cfield textarea{resize:vertical;min-height:96px;}
.cform-note{font-size:11.5px;color:var(--muted);margin-top:2px;}

/* ── Responsive ── */
@media(max-width:960px){
  .site-header{padding:0 22px;}
  .nav{display:none;}
  .mobile-toggle{display:flex;position:relative;}
  .hero-content,.sub-hero .hero-content{padding-left:22px;padding-right:22px;}
  .section{padding:76px 0;}
  .split,.criteria-panel{grid-template-columns:1fr;gap:30px;}
  .numbers-grid{grid-template-columns:repeat(2,1fr);}
  .numbers-card{border-left:none;padding-left:0;border-bottom:1px solid var(--line-dark);padding-bottom:18px;}
  .flow-grid{grid-template-columns:1fr;gap:20px;}
  .flow-line{display:none;}
  .flow-item{flex-direction:row;text-align:left;justify-content:flex-start;}
  .checklist{grid-template-columns:repeat(2,1fr);}
  .footer .wrap{flex-direction:column;}
  .flow-grid.cols-8{grid-template-columns:1fr;gap:16px;}
  .location-split{grid-template-columns:1fr;}
  .zigzag-row{grid-template-columns:24px 1fr;min-height:auto;padding:10px 0;}
  .zigzag-dot-col{grid-column:1;}
  .zigzag-line{left:12px;}
  .zigzag-label.side-left,.zigzag-label.side-right{grid-column:2;text-align:left;padding-left:14px;padding-right:0;transform:translateX(0);}
  .trio-cards{grid-template-columns:1fr;}
  .trio-cards.cols-4{grid-template-columns:repeat(2,1fr);}
  .numbers-grid.cols-3{grid-template-columns:repeat(2,1fr);}
  .growth-row{grid-template-columns:64px 1fr;gap:16px;}
  .contact-panel{grid-template-columns:1fr;gap:28px;}
  .cform-row{grid-template-columns:1fr;}
  .fit-orbit{min-height:auto;max-width:none;margin-top:48px;display:flex;flex-direction:column;align-items:center;}
  .fit-orbit::before{display:none;}
  .fit-orbit-center,
  .fit-orbit .item-top,
  .fit-orbit .item-left,
  .fit-orbit .item-right,
  .fit-orbit .item-bottom-left,
  .fit-orbit .item-bottom-right{position:static;left:auto;right:auto;top:auto;transform:none;width:100%;max-width:360px;}
  .fit-orbit.active .fit-orbit-center{transform:none;}
  .fit-orbit-center{margin-bottom:40px;}
  .fit-orbit-item{margin-bottom:32px;}
  .fit-orbit-item:last-child{margin-bottom:0;}
  .fit-use-band{
    grid-template-columns:160px 1fr;
    grid-template-areas:"num keywords" "title desc";
    row-gap:8px;column-gap:24px;padding:28px 0;
  }
}
@media(max-width:560px){
  .fit-use-band{
    grid-template-columns:auto 1fr;
    grid-template-areas:"num title" "keywords keywords" "desc desc";
    row-gap:6px;column-gap:12px;padding:24px 0;
  }
  .fit-use-band-title{font-size:18px;}
  .fit-use-band-keywords{font-size:12px;}
  .fit-use-band-desc{font-size:13px;line-height:1.55;}
  .wrap{width:min(calc(100% - 32px),1180px);}
  .checklist{grid-template-columns:1fr;}
  .flow-panel,.numbers-panel{padding:36px 24px;}
}
@media(max-width:768px){
  .partnership-video-hero{height:100vh;min-height:100vh;}
  .section.charcoal-warm{min-height:100vh;}
}

/* ── sec-timeflow 배경 영상 ── */
.sec-timeflow{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;}
.timeflow-video-bg{position:absolute;inset:0;z-index:0;background:#0f1110;}
/* 영상을 105% 높이로 키워 하단 워터마크 잘라냄 */
.tfv-a,.tfv-b{position:absolute;left:0;top:0;width:100%;height:118%;object-fit:cover;object-position:top;opacity:0;transition:opacity 1.5s ease;}
.tfv-a{opacity:1;}
/* 항상 텍스트가 보이도록 반투명 어두운 오버레이 */
.timeflow-video-bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,0.45);z-index:1;}
.sec-timeflow .wrap{position:relative;z-index:2;}

/* ── Use Cases 섹션 배경 ── */
.sec-use-cases{background:var(--paper);}

/* ── 로고 이미지 ── */
.brand-logo{height:32px;width:auto;display:block;transition:filter .3s ease;filter:brightness(0);}
.footer-logo{height:28px;width:auto;display:block;margin-bottom:12px;filter:brightness(0) invert(1);}
/* 어두운 배경: 흰색 */
.nav-on-dark .brand-logo{filter:brightness(0) invert(1);}
.site-header.solid .brand-logo,.site-header.scrolled .brand-logo{filter:brightness(0)!important;}
/* 밝은 배경: 검정 */
.nav-on-light .brand-logo{filter:brightness(0);}

/* ── Olhta 텍스트 워드마크 (헤더 color 자동전환을 그대로 상속) ── */
.brand{display:inline-flex;align-items:center;color:inherit;}
.brand-wordmark{font-family:"Inter",sans-serif;font-weight:800;font-size:21px;letter-spacing:-.012em;line-height:1;color:inherit;}

/* ── 푸터: 회사 정보 ── */
.footer-company{max-width:520px;}
.footer-wordmark{font-family:"Inter",sans-serif;font-weight:800;font-size:20px;letter-spacing:-.012em;line-height:1;color:var(--white);display:block;margin-bottom:12px;}
.footer-corp{color:rgba(255,255,255,.82);font-weight:700;font-size:14px;margin-bottom:12px;}
.footer-info{line-height:1.95;color:rgba(255,255,255,.6);}
.footer-info a{color:rgba(255,255,255,.82);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.28);transition:color .2s,border-color .2s;}
.footer-info a:hover{color:var(--white);border-color:rgba(255,255,255,.6);}
.footer-copy{margin-top:16px;color:rgba(255,255,255,.4);font-size:12.5px;letter-spacing:.01em;}
.footer-links{max-width:440px;align-content:flex-start;}
.footer-links a{color:rgba(255,255,255,.62);text-decoration:none;transition:color .2s;}
.footer-links a:hover{color:var(--white);}
