@charset "utf-8";

/* ===== 풀페이지 섹션(히어로·Company Intro·RVDS) — 1910px 이하 또는 800px 이하 세로 여백 반응형 =====
   너비는 1920 그대로 두고 브라우저 세로만 줄이는 경우(가로 min-width 조건 밖)도 있어
   높이 조건을 OR로 같이 건다. 값들은 전부 min()/clamp()로 원본 px가 상한이라
   높이 조건만 추가해도 원본 디자인(1080px 이상)에서는 그대로 유지된다.

   높이 기준값 800은 "화면 해상도 1080"이 아니라 "브라우저 실제 innerHeight"로 잡은 값이다.
   1080px 화면도 taskbar(약 40px) + 브라우저 주소창/탭바(북마크바 포함 시 약 100~130px)를 빼면
   전체화면 상태에서도 실제 innerHeight는 보통 900~960px 선이다. 기준을 1080으로 걸면 리사이즈
   여부와 무관하게 거의 모든 PC 사용자에게 이 블록이 항상 발동해 디자인 원본(100vh 기준)보다
   작게 보이는 사고가 난다 — 반드시 실제 브라우저 창(주소창 포함)으로 확인하고 정할 것,
   CDP Emulation.setDeviceMetricsOverride 같은 "주소창 없는" 뷰포트로는 이 차이가 안 잡힌다. */
@media (max-width: 1910px), (max-height: 800px) {
	.visual__inner { padding-top: max(calc(var(--header-height) + 40px), 26.7vh); }
	.visual__chrome { padding-bottom: 10.2vh; }
	.visual__title { font-size: clamp(28px, 8.75vh, 82px); }
	.visual__marquee-text { font-size: clamp(18px, 2.56vh, 24px); }
	.visual__txt { gap: min(40px, 4.27vh); }

	.intro__content { padding-top: calc(var(--header-height) + 20px); justify-content: center; gap: min(140px, 15vh); }
	.intro__title { font-size: clamp(32px, 6.3vh, 68px); }
	.intro__desc { font-size: clamp(16px, 2.04vh, 22px); }
	.intro__body { gap: min(60px, 5.56vh); }
	.intro__links { height: min(405px, 37.5vh); }
	.intro__link { padding: min(60px, 5.56vh) 0; }
	.intro__link-ico { width: min(150px, 13.89vh); height: min(150px, 13.89vh); }
	.intro__link-ico img { max-width: 100%; max-height: 100%; }
	.intro__link-ico-split { width: min(100px, 9.26vh); height: min(150px, 13.89vh); }
	.intro__link-ico-split .intro__link-ico-half { width: 100%; height: 51%; }

	/* RVDS(섹션4): title이 4줄(font-size:100px, line-height:1)이라 세로가 짧아지면
	   .rvds__card(overflow:hidden) 위로 잘리기 가장 쉬운 섹션 — 폰트/원형 CTA를 함께 축소.
	   아래 1600/1280 폭 규칙(56px/64px, 120px)이 폭 기준 줄바꿈 방지용이라 이 vh 값보다 항상 우선해야 함 */
	.rvds__title { font-size: clamp(40px, 9.26vh, 100px); width: 100%;}
	.rvds__desc { font-size: clamp(16px, 2.04vh, 22px); }
	.rvds__more { width: min(150px, 13.89vh); height: min(150px, 13.89vh); }

	/* 섹션5(News): fp-noscroll이라 세로 높이가 부족하면 스크롤 없이 카드 아래(스크롤바)가 잘림 —
	   padding-top은 header 아래로 안 내려가게 max()로 하한을 걸고, 카드 높이가 줄어드는 만큼
	   내부 폰트/간격도 같이 줄여야 카드 안에서 텍스트가 넘친다. 각 값에 하한(px)을 둬서
	   너무 짧은 화면에서도 카드 내부 콘텐츠가 카드 밖으로 넘치지 않게 한다.
	   아래 1024/768/480 폭 규칙은 이 구간 전용 고정값이라 항상 이 vh 값보다 우선한다.

	   하한값(400px/150px) 자체가 너무 커서 실제 노트북 창(예: innerHeight 650~750px)에서는
	   padding-top(150) + title(~38) + gap(0) + swiper(400, 하한 고정) + scrollbar(24)만 더해도
	   ~610~700px로 뷰포트보다 커져 카드 아래가 잘렸다. 하한을 330px/120px로 낮춰 최소 필요
	   높이를 ~530px대로 줄임 — vh 비율(48.15vh 등)은 원본 1080 디자인 기준 그대로 유지하고
	   "더 짧아질 때만 개입하는 바닥"만 낮춘 것이라 800px 근처(원래 디자인)에는 영향이 없다. */
	.news__inner { padding-top: max(calc(var(--header-height)), 14.81vh); gap: min(60px, 1.56vh); }
	.news__title { font-size: clamp(32px, 6.3vh, 68px); }
	#newsSwiper.swiper { height: max(330px, min(520px, 48.15vh)) !important; }
	#newsSwiper .swiper-wrapper { height: max(330px, min(520px, 48.15vh)) !important; }
	#newsSwiper .news__card { height: max(330px, min(520px, 48.15vh)); padding: min(25px, 2.31vh); gap: min(25px, 2.31vh); }
	.news__thumb { height: max(120px, min(215px, 19.91vh)); }
	.news__txt { gap: min(25px, 2.31vh); }
	.news__post { gap: min(30px, 2.78vh); padding-bottom: min(25px, 2.31vh); }
	.news__category { font-size: clamp(12px, 1.3vh, 14px); }
	.news__date { font-size: clamp(13px, 1.48vh, 16px); }
	.news__card-title { font-size: clamp(18px, 2.04vh, 22px); }
	.news__more { font-size: clamp(15px, 1.67vh, 18px); }

	/* 섹션6(문의 카드): .inquiry에 overflow:hidden이 없고 padding-top(160px 고정) + 카드 높이(734px 고정,
	   호버 시 780/587↔980/734↔580/440으로 커지는데 컨테이너는 항상 최대치인 734로 고정)가 합쳐서
	   894px에 달해, News와 같은 이유(fp-noscroll이라 스크롤 없이 아래가 잘림)로 짧은 화면에서 카드가 잘렸다.
	   카드는 상태마다 width/height 조합이 다르므로 각각 vh clamp를 걸면 가로세로 비율이 틀어져 배경
	   이미지가 늘어난다 — 1024px 이하 폭 규칙에서 쓰던 방식(aspect-ratio로 비율 고정)을 그대로 가져와서,
	   --card-h 하나만 vh 기준으로 줄이고 나머지 폭/높이는 비율을 지켜 따라가게 한다. */
	.inquiry__inner { padding-top: max(calc(var(--header-height)), 14.81vh); }
	/* --card-h는 "컨테이너(=가장 큰 호버 상태) 높이"이고 평상시 카드는 그 587/734다.
	   높이만 vh로 줄이면 aspect-ratio 때문에 폭이 같이 커져서 좁은 폭에서 가로로 넘치므로
	   vw 상한도 같이 건다. 두 카드 총 폭 = 2 x (card-h x 780/734) + gap = 2.1253 x card-h + 40 이고
	   컨테이너 폭은 min(1600px, 100vw)이라 card-h <= (100vw - 40) / 2.1253 = 47vw - 19 인데,
	   딱 맞추면 1025px(1024 브레이크포인트 바로 위)에서 여유가 3px대라 -30px로 마진을 둔다.
	   1600px에서 722px(원본 734 대비 1.4% 축소, 원본은 정확히 1600px를 꽉 채워 여유가 0이었음),
	   1700px 이상에서는 vw항이 734를 넘어 min()이 원본값을 그대로 살린다. */
	.inquiry__cards {
		--card-h: max(400px, min(734px, 67.96vh, calc(47vw - 30px)));
		height: var(--card-h);
		gap: min(40px, 3.7vh);
		justify-content: center;
	}
	.inquiry__card--trial,
	.inquiry__card--general {
		width: auto;
		height: calc(var(--card-h) * 587 / 734);
		aspect-ratio: 780 / 587;
	}
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--trial {
		width: auto;
		height: var(--card-h);
		aspect-ratio: 980 / 734;
	}
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--general {
		width: auto;
		height: calc(var(--card-h) * 440 / 734);
		aspect-ratio: 580 / 440;
	}
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--trial {
		width: auto;
		height: calc(var(--card-h) * 440 / 734);
		aspect-ratio: 580 / 440;
	}
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--general {
		width: auto;
		height: var(--card-h);
		aspect-ratio: 980 / 734;
	}
}

/* ===== 1600 ===== */
@media (max-width: 1600px) {
	.header__inner { padding: 20px 40px 0; }
	.header__bottom { gap: 30px; }
	.gnb__link { padding: 0 16px; font-size: 16px; }
	.gnb__item:first-child .gnb__link { padding-left: 0; }
	.gnb__item:last-child .gnb__link { padding-right: 0; }

	.cta { padding: 0 16px; }
	.cta__item { padding: 0 8px; }
	.cta__text { font-size: 13px; }

	.footer__inner { padding: 60px 40px 40px; }

	.outro { padding: 80px 0 0; }
	.outro__content { padding: 80px 20px; }
	.outro__title { font-size: 36px; letter-spacing: -0.72px; }

	.sv__title { font-size: 56px; letter-spacing: -1.12px; }

	/* ----- 메인(풀페이지 유지 구간) ----- */
	/* .inquiry__cards의 flex-wrap:wrap + height:auto는 카드 폭이 780px 고정이라 1600px 미만에서
	   가로로 넘치던 시절의 대응이었다. 위 vh 블록에서 카드를 aspect-ratio 기반(높이→폭 파생)으로
	   바꾸고 --card-h에 vw 상한을 걸어 넘침을 막았으므로 더 이상 필요 없다.
	   특히 height:auto는 소스 순서상 위 블록의 height:var(--card-h)를 덮어 컨테이너를 카드 높이로
	   붕괴시켰고, 그 결과 견적문의 카드의 align-self:flex-end가 내려갈 공간을 잃어 두 카드가
	   나란히 위로 붙었다(원본은 587px 카드가 734px 컨테이너 안에서 하단 정렬돼 계단식으로 어긋남). */

	/* RVDS: 100px 그대로면 1280~1600 폭에서 "SEARCH SYSTEM"이 두 줄로 밀려 title이 5줄이 됨
	   → align-items:flex-end라 title 전체 높이가 늘어난 만큼 위로 밀리면서 %로 고정된 .rvds__more와 겹침. 폰트를 줄여 4줄 유지 */
	.rvds__title { font-size: 56px; letter-spacing: -1.12px; }
	/* 위쪽 vh 반응형 블록(max-width:1910px)이 이 폭 구간도 덮는데, desc/more는 이 구간 전용 고정값이
	   없어서 실제 노트북의 짧은 innerHeight 때문에(예: 1366x768 노트북 ≈ 22px→16px, 150px→107px)
	   PC보다 작게 보이는 문제가 있었다. title처럼 고정값으로 되돌려 노트북에서도 PC와 동일하게 유지 */
	.rvds__desc { font-size: 22px; }
	.rvds__more { width: 150px; height: 150px; }
	.system__solution-card{padding: 20px;}
	.press-list {
   	 grid-template-columns: repeat(3, 1fr);
	}
}

/* ===== 1366 ===== */
@media (max-width: 1366px) {
	/* RVDS: 56px는 1366px 밑에서부터 "DATA SEARCH SYSTEM"이 두 줄로 밀리기 시작해서(실측 확인)
	   한 단계 더 줄인다. 아래 1330/1310/1250/1220 블록도 같은 이유로 폭이 줄어들 때마다 한 단계씩
	   더 줄인다 — 좌우(가로) 배치를 세로 스택으로 바꾸지 않고 유지하기 위한 값들이다.
	   타이틀은 "50 근처 유지, 40 밑으로는 안 내려간다"는 기준으로 잡았다 — 1220이 40px로 안 밀리는
	   마지노선(실측 확인)이라, 그보다 좁아지면 아래 1219 블록에서 세로 스택으로 전환한다. */
	.rvds__title { font-size: 52px; letter-spacing: -1.04px; }
	/* desc는 이 폭 구간 전용 값이 따로 없어서 위 1600 블록의 22px 고정값을 그대로 물려받는데,
	   title은 100→52px로 줄어드는데 desc는 그대로라 둘의 크기 차이가 눈에 잘 안 띈다(1.64배까지 좁혀짐).
	   title 축소 폭에 맞춰 desc도 같이 줄여 데스크톱과 비슷한 크기 대비를 유지한다. */
	.rvds__desc { font-size: 20px; }
}

/* ===== 1330 ===== */
@media (max-width: 1330px) {
	.rvds__title { font-size: 48px; letter-spacing: -0.96px; }
	.rvds__desc { font-size: 18px; }
}

/* ===== 1280 ===== */
@media (max-width: 1280px) {
	.header__inner { padding: 16px 30px 0; }
	.header__top { gap: 16px; }
	.header__bottom { gap: 20px; }
	.gnb__link { padding: 0 12px; font-size: 15px; }

	.cta { padding: 0 12px; }
	.cta__item { padding: 0 6px; gap: 3px; }
	.cta__text { font-size: 12px; }

	.footer__inner { padding: 60px 30px 40px; }
	.footer__row--mid { margin-top: 40px; }
	.footer__row--bottom { margin-top: 20px; }

	.outro { padding: 70px 0 0; }
	.outro__content { padding: 70px 20px; }
	.outro__title { font-size: 32px; letter-spacing: -0.64px; }

	/* ----- 메인(풀페이지 유지 구간) ----- */
	.visual__inner { padding: 200px 80px 0; }
	.visual__chrome { padding: 0 80px 40px; }
	.intro__body { padding: 0 60px 0 40px; }

	/* RVDS: 가로 2단(title/side) 배치 유지. "DATA SEARCH SYSTEM" 한 줄이 폭 안에 들어가는
	   최대 폰트를 실측(headless 렌더링, title.offsetHeight로 줄바꿈 여부 확인)해서 잡은 값 —
	   이보다 크면 이 줄이 두 줄로 밀려 title이 5줄이 되고 위쪽 줄이 원형 CTA와 겹친다. */
	.rvds__title { font-size: 44px; letter-spacing: -0.88px; }
	.rvds__desc { font-size: 17px; }

	/* 분석(platform/disease/service) 탭 — 균등폭(flex:1) 탭이 1493~1024 구간에서 텍스트보다 좁아져 겹침 → 가로 탭바 대신 드롭다운(.srch__select/.cf-select와 동일 패턴)으로 전환. 앵커(a) 자체는 그대로 유지하고 보이는 모양만 바꿈 */
	/* 드롭다운으로 부피가 작아졌으니 모바일에서도 PC처럼 상단에 sticky로 따라오게 둠(position은 sticky 유지, 팝업 목록의 absolute 기준점 역할도 그대로 함) */
	.ana-tab { padding: 0; background: none; border-radius: 0; margin: 40px auto 60px; }
	.ana-select-btn { display: flex; align-items: center; justify-content: space-between; width: 100%; box-sizing: border-box; padding: 16px 20px; background: var(--color-white); border: 1px solid #dddddd; border-radius: 10px; font: inherit; cursor: pointer; }
	/* 열렸을 때 버튼과 목록을 틈 없이 붙여, sticky 탭바 밑으로 넘어간 본문(예: 섹션 제목)이 그 틈 사이로 비쳐 보이는 것을 막음 */
	.ana-tab.is-open .ana-select-btn { border-radius: 10px 10px 0 0; border-bottom-color: transparent; }
	.ana-select-value { color: var(--color-primary); font-size: 16px; font-family: var(--baseFont); font-weight: 600; line-height: 1.3; letter-spacing: -0.32px; }
	.ana-select-arrow { flex: none; pointer-events: none; transition: transform .2s ease; }
	.ana-tab.is-open .ana-select-arrow { transform: rotate(180deg); }

	/* 드롭다운으로 바뀌면 좌우로 슬라이드하는 인디케이터는 의미가 없어짐 */
	.ana-tab__indicator { display: none; }

	.ana-tab__list { display: none; /* popup */ position: absolute; top: 100%; left: 0; right: 0; z-index: 10; flex-direction: column; gap: 4px; box-sizing: border-box; padding: 8px; background: var(--color-white); border: 1px solid #e5e5e5; border-top: none; border-radius: 0 0 10px 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .1); }
	.ana-tab.is-open .ana-tab__list { display: flex; }
	.ana-tab__item { flex: none; min-width: 0; }
	.ana-tab__link { justify-content: flex-start; padding: 12px 16px; border-radius: 6px; color: #111111 !important; font-size: 16px; font-weight: 500; letter-spacing: -0.32px; white-space: normal; }
	.ana-tab__item.is-active .ana-tab__link,
	.ana-tab__link:hover { background: var(--color-primary); color: var(--color-white) !important; }

	/* 맞춤형 프로바이오틱스 */
	.hcprobiotics__tit-tit { font-size: 36px; letter-spacing: -0.72px; }

	/* 의약품 임상시험: 이미지·텍스트 사이 간격이 폭 대비 과해짐 → 완만하게 축소 */
	.drug__row { gap: 80px; }
}

/* ===== 1250 ===== */
@media (max-width: 1250px) {
	/* RVDS: 1280 블록과 같은 이유 — 이 폭에서 44px는 다시 줄바꿈이 생겨 42px로 한 단계 더 줄인다 */
	.rvds__title { font-size: 42px; letter-spacing: -0.84px; }
	.rvds__desc { font-size: 16px; }
}

/* ===== 1220 ===== */
@media (max-width: 1220px) {
	/* RVDS: "타이틀은 40px 밑으로 내려가지 않는다"는 기준의 마지노선 — 42px는 여기서부터 다시
	   줄바꿈이 생겨(실측 확인) 40px로 한 단계 더 줄인다. 이보다 좁아지면(아래 1219 블록) 좌우 배치를
	   포기하고 세로 스택으로 전환한다 — 40px 밑으로 더 줄이지 않기로 했기 때문. */
	.rvds__title { font-size: 40px; letter-spacing: -0.8px; }
	.rvds__desc { font-size: 15px; }
}

/* ===== 1219 ===== */
@media (max-width: 1219px) {
	/* RVDS: 좌우 배치를 유지하는 마지막 폭(1220)보다 좁아지는 지점. 여기서부터는 40px 밑으로
	   더 줄이는 대신(타이틀 하한선 40px 유지 방침) 세로 스택으로 전환한다 — 세로 스택은 한 줄에
	   카드 폭을 통째로 쓰므로 좌우 배치 때의 줄바꿈 제약이 없어져 44px로 한 단계 더 여유를 둔다.
	   1219→1024 사이는 전부 이 스택 레이아웃을 그대로 쓰고, 1024 블록은 크기 값만 추가로 조정한다.
	   폰트는 아래 1024 블록과 같은 48px로 맞춰서 1219~1024 구간 전체가 하나로 이어지게 한다. */
	.rvds__card { flex-direction: column; align-items: stretch; justify-content: center; gap: 24px; padding: 60px; }
	/* 데스크톱 전용 퍼센트 좌표(카드 기준 절대 위치)는 세로 스택에선 title/desc 사이에 끼어 겹치므로 흐름으로 되돌림 */
	.rvds__more { position: relative; left: auto; top: auto; width: 120px; height: 120px; }
	.rvds__title { font-size: 48px; letter-spacing: -0.96px; }
	.rvds__desc { max-width: none; font-size: 18px; letter-spacing: -0.36px; }
	/* max-width:700px 기준으로 잡은 줄바꿈 지점 — 바로 위에서 max-width:none으로 풀리는 시점부터 숨김 */
	.rvds__desc br { display: none; }
}

/* ===== 1024 : GNB → 햄버거 전환, 올메뉴 → 세로 아코디언 전환 ===== */
@media (max-width: 1024px) {
	:root { --header-height: 90px; }

	/* fullPage.js가 responsiveWidth(1024) 아래에서 스냅 스크롤을 끄고 일반 스크롤로 전환하지만,
	   데스크톱에서 JS로 준 섹션별 인라인 height(뷰포트 높이)는 그대로 남는 경우가 있어 콘텐츠가 짧은
	   섹션(News 등) 아래로 빈 여백이 크게 남는다 — 인라인 height보다 우선하도록 !important로 해제 */
	#fullpage .section { height: auto !important; min-height: auto !important; }

	/* 이 폭 아래에서는 fullPage의 자동 스크롤(moveTo/moveSectionDown)이 꺼지고 문서가 일반
	   스크롤로 전환되므로, 섹션 점프용 고정 네비게이션(.section-nav)은 의미가 없어져 숨긴다. */
	.section-nav { display: none; }

	.header__inner { padding: 0 24px; }
	.header__logo { width: 140px; height: 48px; }

	.header__right { justify-content: center; }

	/* 상단 lang·cta 줄 숨김 (cta는 올메뉴에서만 노출, lang은 햄버거 옆 복제본으로 대체) */
	.header__top { display: none; }

	.header__bottom { gap: 20px; }
	.gnb { display: none; }

	.header__lang-mobile { display: flex; }

	/* ----- 올메뉴 ----- */
	.allmenu { padding: 32px 24px 48px; }
	.allmenu__header { margin-bottom: 32px; }
	.allmenu__logo { width: 140px; height: 48px; }

	.allmenu__grid { flex-direction: column; flex-wrap: nowrap; gap: 0; }

	.allmenu__card {
		width: 100%;
		height: auto;
		padding: 24px 0;
		gap: 0;
		background: none;
		border-radius: 0;
		border-bottom: 1px solid #e5e5e5;
	}
	.allmenu__card:hover { background: none; }
	.allmenu__card:hover .allmenu__card-title { color: #111111; }

	.allmenu__card-title { font-size: 22px; letter-spacing: -0.44px; }
	.allmenu__card-sub { font-size: 18px; margin-top: 8px; }

	.allmenu__card-list {
		max-height: 0;
		gap: 16px;
		margin-top: 0;
		overflow: hidden;
		transition: max-height .3s ease, margin-top .3s ease;
	}
	.allmenu__card.is-open .allmenu__card-list { max-height: 600px; margin-top: 20px; }
	/* 모바일은 hover 배경 전환이 없어 흰 배경 위에 그대로 보여야 함 — 데스크탑 hover용 흰 글자색(!important)을 무효화 */
	.allmenu__card:hover .allmenu__card-list a { color: #aaaaaa !important; }
	.allmenu__card:hover .allmenu__card-list a:hover { color: #aaaaaa !important; }

	.allmenu__cta {
		width: 100%;
		height: auto;
		align-items: flex-start;
		padding: 24px 0 0;
		gap: 16px;
	}

	/* ----- 푸터 ----- */
	.footer__inner { padding: 48px 24px 32px; }

	.outro { padding: 60px 0 0; }
	.outro__content { padding: 60px 20px; gap: 24px; }
	.outro__title { font-size: 28px; letter-spacing: -0.56px; }
	.outro__btn { height: 48px; padding: 0 28px; font-size: 15px; }

	/* ----- 서브페이지 공통 ----- */
	.sv__inner { padding: 60px 0 40px; }

	.greeting__inner,
	.history__inner,
	.partner__inner,
	.location__inner,
	.platform__inner,
	.disease__inner,
	.service__inner,
	.why__inner,
	.drug__inner,
	.health__inner,
	.ivd__inner,
	.tissue__inner,
	.logistics__inner,
	.system__inner,
	.rvdsintro__inner,
	.hcintro__inner,
	.hcbiome__inner,
	.hcprobiotics__inner { padding: 24px 0 140px; gap: 70px; }
	.notice__inner,
	.notice-view__inner,
	.press__inner { padding: 24px 0 140px; }
	.press-list { grid-template-columns: repeat(2, 1fr); }

	/* 개인정보처리방침(privacy) */
	.privacy__inner { padding: 24px 0 140px; gap: 50px; }
	.privacy__sec-tit { font-size: 22px; letter-spacing: -0.44px; }
	.privacy__lead,
	.privacy__sub-tit,
	.privacy__item { font-size: 17px; letter-spacing: -0.34px; }

	/* 분석(platform/disease/service) — 탭 드롭다운 전환은 1280 구간 규칙이 그대로 이어짐 */
	.ana-row,
	.ana-row--rev { flex-direction: column; gap: 24px; margin-bottom: 70px; }
	.ana-row__img,
	.ana-row__content { width: 100%; }
	/* .ana-row__img는 overflow:hidden이 있어 flex 기본 min-height:auto 바닥이 사라짐 → row에서 쓰던 flex:1 1 1px(높이 축 기준 1px)가 column 전환 후에도 그대로 적용되어 이미지가 1px로 찌그러짐 → flex:none으로 리셋해 aspect-ratio가 높이를 정하게 함 */
	/* HTML은 content(제목·설명)가 먼저, img가 나중(PC 2단 zigzag 배치용) → 1열로 쌓이면 이미지가 자기 항목 맨 아래에 붙어 다음 항목 제목과 헷갈림 → order로 시각적 순서만 이미지 먼저로 변경(DOM 순서는 유지) */
	.ana-row__img { flex: none; order: -1; }
	.ana-row__content { gap: 24px; }
	/* platform/disease/service 공통 컴포넌트(ana-row) 본문 <br>은 PC 2단(740px 폭) 기준으로 잡은 줄바꿈 지점 — 전체폭 1열로 바뀌는 시점부터 어색해져 숨김. HTML에 br 앞 공백을 넣어둬서 숨겨도 단어가 붙지 않음 */
	.platform .ana-row__desc-bold br,
	.platform .ana-row__desc br,
	.disease .ana-row__desc-bold br,
	.disease .ana-row__desc br,
	.service .ana-row__desc-bold br,
	.service .ana-row__desc br { display: none; }
	.ana-row__tit { font-size: 42px; letter-spacing: -0.84px; }
	.ana-row__eng { font-size: 20px; letter-spacing: -0.4px; }
	.ana-row__desc-bold { font-size: 22px; letter-spacing: -0.44px; }
	.ana-check-list li { font-size: 16px; letter-spacing: -0.32px; }
	.ana-tag { font-size: 16px; letter-spacing: -0.32px; }

	/* 의약품 임상시험(drug.php) — ana-row와 동일한 이미지+본문 2단(740px 폭) 컴포넌트. 같은 이유로 1열 전환 시 <br> 숨김 */
	.drug__row-tit br,
	.drug__row-desc br { display: none; }

	.service__divider { margin-bottom: 70px; }
	.service__table-tit { font-size: 34px; letter-spacing: -0.68px; }

	/* 게시판(notice) — 회사소식·언론보도 */
	.notice__link { padding: 30px; gap: 24px; }
	.notice__thumb { width: 96px; }
	.notice__title { font-size: 20px; letter-spacing: -0.4px; }
	.notice-view__title { font-size: 28px; letter-spacing: -0.56px; }

	/* 회사소개: 원형 3단 다이어그램은 텍스트가 원 안에 안 들어가 넘침 → 사각 카드로 전환(@docs/05-responsive 겹침 레이아웃 단순화 허용) */
	.greeting__pillars { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 64px; }
	.greeting__pillar { width: 100%; height: auto; box-sizing: border-box; padding: 28px 24px; border-radius: 20px; margin-left: 0 !important; }
	.greeting__pillar-tit { font-size: 24px; letter-spacing: -0.48px; }
	.greeting__pillar-txt { font-size: 16px; letter-spacing: -0.32px; }
	/* 원형(400px, 좌우 padding 50px) 안에서 잡은 줄바꿈 지점 — 사각 카드(전체폭)로 바뀌며 폭이 크게 넓어져 어색해짐 */
	.greeting__intro { margin-bottom: 64px; }
	.greeting__intro-label { font-size: 26px; letter-spacing: -0.52px; margin-bottom: 32px; }
	.greeting__intro-tit { font-size: 22px; letter-spacing: -0.44px; margin-bottom: 32px; }
	.greeting__intro-txt p { font-size: 16px; letter-spacing: -0.32px; }
	.greeting__sec-tit { font-size: 26px; letter-spacing: -0.52px; margin-bottom: 32px; }
	.greeting__biz-row,
	.greeting__biz-row--rev { flex-direction: column; gap: 16px; margin-bottom: 36px; }
	.greeting__biz-img,
	.greeting__biz-txt { width: 100%; flex: none; }
	.greeting__biz-txt { gap: 12px; }
	.greeting__biz-tit { font-size: 22px; letter-spacing: -0.44px; }
	.greeting__biz-desc { font-size: 17px; letter-spacing: -0.34px; }
	.greeting__biz-sub { font-size: 15px; letter-spacing: -0.3px; }
	/* greeting__biz-row도 ana-row/drug__row와 동일한 2단(이미지+본문) 컴포넌트 — 1열로 바뀌는 이 시점(1024)부터 바로 숨겨야 함(기존엔 480에서만 숨겨 1024~480 구간이 어색했음) */
	.greeting__biz-desc br,
	.greeting__biz-sub br { display: none; }

	/* 연혁 */
	.history__item { gap: 24px; padding-bottom: 50px; }
	.history__year { font-size: 26px; letter-spacing: -0.52px; }

	/* 파트너십 & 네트워크 */
	.partner__lead { font-size: 26px; letter-spacing: -0.52px; }
	.partner__divider { margin: 32px 0 70px; }
	.partner__group { margin-bottom: 80px; }
	.partner__sec-tit { font-size: 32px; letter-spacing: -0.64px; }
	.partner__sec-desc { font-size: 18px; letter-spacing: -0.36px; margin-bottom: 40px; }
	.partner__logo-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 40px; }
	.partner__icon-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.partner__icon-card { gap: 24px; padding: 28px; }
	.partner__icon-img { width: 80px; height: 80px; }
	.partner__icon-img img { max-width: 44px; max-height: 44px; }

	/* 오시는길 */
	.location__body { flex-direction: column; gap: 40px; }
	.location__map,
	.location__info { width: 100%; }
	/* column 전환 시 flex-basis(0px)가 세로축(height) 기준이 되어 aspect-ratio 대신 0에 가깝게 찌그러짐 → flex:none으로 aspect-ratio가 높이를 온전히 결정하게 함 */
	.location__map,
	.location__info { flex: none; }

	/* SERVICE 공통(svc-*) */
	.svc-sec { gap: 40px; }
	.svc-sec-tit { font-size: 32px; letter-spacing: -0.64px; }
	.svc-sub-tit__txt { font-size: 26px; letter-spacing: -0.52px; }
	.svc-feat-card { padding: 32px; }
	.svc-donut-card { padding: 32px; gap: 40px; }
	.svc-donut { width: 220px; height: 220px; }
	.svc-mini-card { padding: 22px 24px; }
	.svc-stat-tile__num { font-size: 44px; letter-spacing: -0.88px; }
	.svc-stat-list { flex: 1 1 0; }

	/* WHY U2XLab */
	.why__tit-kr { font-size: 40px; letter-spacing: -0.8px; }
	.why__diagram-box { padding: 40px; gap: 40px; }
	.why__diagram-intro-tit { font-size: 30px; letter-spacing: -0.6px; }
	.why__diagram-row { flex-wrap: wrap; }
	.why__diagram-node { width: 220px; height: 220px; }

	/* 의약품 임상시험 */
	.drug__rows { gap: 48px; }
	.drug__row,
	.drug__row--rev { flex-direction: column; gap: 24px; }
	.drug__row-img,
	.drug__row-content { width: 100%; }
	/* column 전환 시 flex-basis(1px)가 세로축(height) 기준이 되어 aspect-ratio 대신 거의 0으로 찌그러짐 → flex:none으로 aspect-ratio가 높이를 온전히 결정하게 함 */
	.drug__row-img,
	.drug__row-content { flex: none; }
	.drug__row-content { gap: 24px; }
	.drug__row-label { font-size: 26px; letter-spacing: -0.52px; }
	.drug__row-tit { font-size: 20px; letter-spacing: -0.4px; }
	.drug__row-desc { font-size: 17px; letter-spacing: -0.34px; }
	/* flow-row가 2줄로 줄바꿈되므로 pill(100px) 대신 완만한 radius로 전환 */
	.drug__flow-diagram { border-radius: 40px; padding: 24px 20px; }
	.drug__flow-row { flex-wrap: wrap; gap: 20px; }
	.drug__flow-step { flex: 1 1 200px; height: 200px; }
	.drug__flow-cols { gap: 24px 40px; }

	/* 건강기능식품 인체적용시험 */
	.health__ref-row { gap: 24px; }
	.health__ref-row .svc-stat-list { flex: 1 1 320px; min-width: 0; }
	.health__cap-grid { grid-template-columns: repeat(3, 1fr); }

	/* 바이오물류 */
	.logistics__highlight { padding: 32px; }
	.logistics__highlight-num { font-size: 48px; }
	.logistics__map-card { flex: 1 1 100%; }
	.logistics__map-tit { font-size: 24px; letter-spacing: -0.48px; }
	.logistics__svc-card { padding: 32px; gap: 32px; }
	.logistics__svc-head { gap: 20px; min-height: 80px; }
	.logistics__svc-ico { display: flex; align-items: center; justify-content: center; width: 80px; height: 80px; }
	.logistics__svc-ico img { width: auto; height: auto; max-width: 44px; max-height: 44px; object-fit: contain; }
	.logistics__svc-tit { font-size: 20px; letter-spacing: -0.4px; }
	.logistics__svc-desc { font-size: 16px; letter-spacing: -0.32px; }

	/* U2XLab IT SYSTEM */
	.system__inner { gap: 90px; }
	.system__tit { font-size: 32px; letter-spacing: -0.64px; }
	.system__banner { aspect-ratio: auto; }
	.system__banner-txt { position: relative; left: auto; top: auto; transform: none; padding: 40px 24px; }
	.system__banner-tit { font-size: 24px; letter-spacing: -0.48px; }
	.system__banner-desc br { display: none; }
	.system__solution-card { flex: 1 1 100%; padding: 32px; gap: 32px; }
	.system__value-body { padding-right: 40px; }
	.system__timeline { flex-wrap: wrap; }
	.system__timeline-line { display: none; }
	.system__timeline-step { flex: 1 1 260px; }

	/* RVDS 소개 */
	.rvdsintro__inner { gap: 60px; }
	.rvdsintro__tit { font-size: 38px; letter-spacing: -0.76px; }
	.rvdsintro__grid { grid-template-columns: repeat(2, 1fr); }
	.rvdsintro__card { padding: 32px; gap: 32px; }

	/* 맞춤형 헬스케어 */
	.hcintro__sec { padding: 80px 32px; gap: 40px; }
	.hcintro__tit-main { font-size: 32px; letter-spacing: -0.64px; }
	.hcintro__block-tit-main { font-size: 26px; letter-spacing: -0.52px; }
	/* 카드 3개 고정폭 합산이 좁아진 inner 폭을 넘어 마지막 카드가 밀려나므로 카드 좌우 여백만 축소 */
	.hcintro__card { padding: 0 12px; }

	/* 유투바이옴 검사 */
	.hcbiome__group { gap: 40px; }
	.hcbiome__report,
	.hcbiome__process { padding: 70px 40px; gap: 40px; }
	.hcbiome__report-list { grid-template-columns: repeat(2, 1fr); }
	.hcbiome__target { padding: 40px; flex-wrap: wrap; }
	.hcbiome__report-title,
	.hcbiome__process-title { font-size: 26px; letter-spacing: -0.52px; }
	.hcbiome__process-item { flex-wrap: wrap; }
	.hcbiome__process-tit { flex: 0 0 100%; }
	.hcbiome__app-mobile { flex-wrap: wrap; justify-content: center; }

	/* 맞춤형 프로바이오틱스 */
	.hcprobiotics__groups { gap: 80px; }
	.hcprobiotics__group { gap: 40px; }
	.hcprobiotics__row { flex-wrap: wrap; }
	.hcprobiotics__row-tit { width: auto; }
	.hcprobiotics__row-desc { flex: 1 1 100%; }

	/* 문의폼(cf-*) — 견적문의(quote.php)·일반문의(inquiry.php) 공용. 라벨(고정폭) + 필드(가로배치)를 세로 1단으로 전환 */
	.cf-sec { flex-direction: column; align-items: stretch; gap: 24px; padding: 48px 0; }
	.cf-sec__label { flex: none; font-size: 36px; letter-spacing: -0.72px; }
	.cf-sec__body { flex: none; }

	.cf-row,
	.cf-row--top { flex-direction: column; align-items: stretch; gap: 10px; }
	.cf-row--radio { height: auto; }
	.cf-row__label,
	.cf-row__field { flex: none; }

	/* ----- 메인(풀페이지 비활성 · 일반 스크롤 전환, main.js responsiveWidth:1024) ----- */
	/* fullPage.js가 1024 초과에서 section에 인라인 height를 직접 주입해 특정도 싸움이 안 됨 → !important로 무력화 */
	#fullpage,
	#fullpage .section { height: auto !important; }

	/* height:100%로 section 실제 높이를 그대로 따라가야 남색(#section1) 배경이 위아래로 비어 보이지 않음 — aspect-ratio/auto로 독립적으로 줄이면 section과 어긋나 틈이 생김 */
	.visual { height: 100%; min-height: min(100dvh, 560px); }
	/* 상단 여백(140px)만큼 아래로 밀려 있던 타이틀+마퀴 텍스트를 히어로 박스 정중앙으로 */
	.visual__inner { padding: 0 40px; justify-content: center; }
	.visual__chrome { padding: 0 40px 60px; }
	.visual__title { font-size: 48px; letter-spacing: -0.96px; }
	.visual__marquee-text { font-size: 18px; letter-spacing: -0.36px; }
	.quick { right: 24px; bottom: 24px; width: 320px; height: auto; }
	.quick__box { padding: 24px; }

	.analysis { height: auto; }
	.analysis__inner { padding: 80px 24px; }
	.analysis__top { flex-direction: column; align-items: flex-start; gap: 32px; }
	.analysis__title { font-size: 40px; letter-spacing: -0.8px; }
	.analysis__desc { font-size: 18px; letter-spacing: -0.36px; }
	/* analysis__top이 좌우 분할(desc + scroll 원)에서 column으로 바뀌며 본문 폭이 넓어짐 — PC 폭 기준 br 숨김 */
	.analysis__desc br { display: none; }
	.analysis__scroll { width: 100px; height: 100px; }
	.analysis__scroll-arrow { width: 16px; height: 16px; top: calc(50% - 8px); left: calc(50% - 8px); }

	/* 1024px 이하부터는 옆으로 나란한 %비율 카드 대신, 원래대로 세로 스택 + 카드 100% 폭으로 전환 */
	.analysis__cards { flex-direction: column; flex-wrap: nowrap; gap: 24px; margin-top: 60px; }
	.analysis__col { width: 100%; gap: 24px; }
	.analysis__card { padding: 24px; }
	.analysis__card--01,
	.analysis__card--03,
	.analysis__card--02 { width: 100%; height: auto; margin-top: 0; }
	.analysis__card--01 { aspect-ratio: 740 / 500; }
	.analysis__card--03 { aspect-ratio: 1 / 1; }
	.analysis__card--02 { aspect-ratio: 540 / 640; }
	.analysis__card-title { font-size: 28px; letter-spacing: -0.56px; }
	/* 모바일은 hover가 없어 :hover로만 열리던 부가 설명이 영원히 안 보임 → 기본 상태를 hover 상태 값으로 고정 */
	.analysis__card-txt { max-height: none; margin-top: 20px; opacity: 1; }
	.analysis__card-en { font-size: 22px; letter-spacing: -0.44px; }
	.analysis__card-desc { font-size: 16px; letter-spacing: -0.32px; }
	/* 카드 고정폭(740px/540px)에 맞춰 잡은 줄바꿈 — 카드가 100% 폭으로 바뀌는 시점부터 숨김 */
	.analysis__card-desc br { display: none; }
	.analysis__card-more { top: 24px; right: 24px; font-size: 18px; letter-spacing: -0.36px; opacity: .3; }
	/* 텍스트가 항상 노출되므로 옅은 브랜드 오렌지 딤 대신 어두운 블랙 딤으로 가독성 확보 */
	.analysis__card-gradient { background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 45%, rgba(0, 0, 0, .85) 100%); }

	.analysis__more { position: static; margin-top: 40px; }
	/* hover로만 오렌지 그라디언트가 나오던 텍스트/화살표 — 모바일은 hover가 없어 기본 색을 오렌지로 고정 */
	.analysis__more-text { font-size: 56px; letter-spacing: -1.12px; color: var(--color-primary); }
	.analysis__more-arrow { width: 24px; height: 24px; color: var(--color-primary); }

	/* height:auto로 강제하면 fullPage.js가 남겨둔 인라인 height와 실제 콘텐츠 높이가 어긋나 section 배경이 빈 띠로 노출됨 → 100%를 유지해 부모(section)가 실제로 갖는 높이를 그대로 따라가게 함 */
	.intro { flex-direction: column; }
	.intro__visual { display: none; }
	/* justify-content:space-between는 남는 공간이 있어야 벌어짐 — height:auto라 남는 공간이 없어 본문과 링크가 붙어버림 → gap으로 직접 간격 지정 */
	.intro__content { height: auto; padding-top: 60px; padding-bottom: 60px; justify-content: flex-start; gap: 48px; }
	.intro__body { padding: 0 24px; gap: 24px; }
	.intro__title { font-size: 36px; letter-spacing: -0.72px; }
	.intro__desc { font-size: 16px; letter-spacing: -0.32px; }
	/* intro가 좌우 분할(visual + body)에서 column으로 바뀌고 visual이 숨겨지며 본문 폭이 넓어짐 — PC 폭 기준 br 숨김 */
	.intro__desc br { display: none; }

	.intro__links { grid-template-columns: repeat(2, 1fr); height: auto; }
	.intro__link { padding: 32px 0; border-bottom: 1px solid rgba(255, 255, 255, .2); }
	.intro__link:nth-child(2n) { border-right: 0; }
	.intro__link:nth-last-child(-n+2) { border-bottom: 0; }
	.intro__link-ico { width: 100px; height: 100px; }
	.intro__link-ico img { max-width: 100%; max-height: 100%; }
	.intro__link-ico-split { transform: scale(.67); }
	.intro__link-title { font-size: 20px; letter-spacing: -0.4px; }
	.intro__link-more { font-size: 16px; letter-spacing: -0.32px; opacity: 1; }

	/* fullPage.js가 .fp-tableCell에 남겨둔 인라인 height(뷰포트 기준 1스크린 값)가 그대로 남아
	   카드를 content 높이로 줄여도 셀 자체가 줄지 않고 빈 여백만 남음 → 이 섹션의 셀만 auto로 되돌림
	   (#section4 배경이 흰색(main.css)이라 아래로 남는 공간은 그냥 흰 배경이라 티가 안 남) */
	.fp-tableCell:has(.rvds) { height: auto !important; }
	.rvds { padding: 0; height: auto; }
	/* RVDS: 여기(1024)부터 세로 스택으로 전환. 1152까지는 좌우 배치를 폰트만 줄여 유지했지만
	   1024는 좌우 유지에 필요한 폰트가 18px까지 내려가 가독성이 무너져서 스택으로 바꾼다 */
	.rvds__card { flex-direction: column; align-items: stretch; justify-content: center; gap: 20px; height: auto; padding: 60px 24px; border-radius: 0; }
	.rvds__title { font-size: 48px; letter-spacing: -0.96px; }
	/* 데스크톱 전용 퍼센트 좌표(카드 기준 절대 위치)는 세로 스택에선 title/desc 사이에 끼어 겹치므로 흐름으로 되돌림 */
	.rvds__more { position: relative; left: auto; top: auto; width: 100px; height: 100px; }
	.rvds__desc { max-width: none; font-size: 18px; letter-spacing: -0.36px; }
	/* max-width:700px 기준으로 잡은 줄바꿈 지점 — 바로 위에서 max-width:none으로 풀리는 시점부터 숨김 */
	.rvds__desc br { display: none; }

	.news__inner { padding: 60px 24px; gap: 32px; }
	.news__title { font-size: 40px; letter-spacing: -0.8px; }
	#newsSwiper .news__card { box-shadow: none; }
	/* 모바일은 드래그 스크롤바 UI가 어색해 숨기고 터치 스와이프만 사용 */
	.news__scrollbar.swiper-scrollbar { display: none; }

	.quote__inner,
	.inquiry__inner { padding: 60px 24px; }
	.inquiry__cards,
	.inquiry__cards:has(.inquiry__card--trial:hover),
	.inquiry__cards:has(.inquiry__card--general:hover) { flex-direction: column; flex-wrap: nowrap; height: auto; gap: 16px; }
	.inquiry__card--trial,
	.inquiry__card--general,
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--trial,
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--general,
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--trial,
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--general { width: 100%; height: auto; align-self: auto; }
	/* 위 vh 블록의 :has() 규칙들이 aspect-ratio를 상태별로 바꾸는데 그 특정도가 (0,4,0)이라,
	   여기서 단순 선택자 (0,1,0)로만 덮으면 소스 순서가 뒤라도 진다 — 일반문의에 hover가 걸린 순간
	   두 카드의 비율이 서로 뒤바뀐다(터치기기는 탭 후 hover가 고착돼 실제로 발생).
	   바로 위 width/height 규칙과 동일하게 상태 선택자를 전부 나열해 특정도를 맞춘다 */
	.inquiry__card--trial,
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--trial,
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--trial { aspect-ratio: 980 / 734; }
	.inquiry__card--general,
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--general,
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--general { aspect-ratio: 580 / 440; }
	.inquiry__card-title { font-size: 26px; letter-spacing: -0.52px; }
	/* 일반문의 카드는 hover로 트리거되는 :has() 스왑 전에는 more-view가 opacity:0 상태 → 모바일은 hover가 없어 영원히 안 보임 */
	.inquiry__card-more,
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--trial .inquiry__card-more,
	.inquiry__cards:has(.inquiry__card--trial:hover) .inquiry__card--general .inquiry__card-more,
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--trial .inquiry__card-more,
	.inquiry__cards:has(.inquiry__card--general:hover) .inquiry__card--general .inquiry__card-more { opacity: .3; }
}

/* ===== 768 ===== */
@media (max-width: 768px) {
	.press-list {
		grid-template-columns: repeat(1, 1fr);
	}
	.press-card__thumb--default img {
		width: 100%;
	}
	.header__inner { padding: 0 20px; }

	.allmenu { padding: 24px 20px 40px; }

	.outro { padding: 48px 0 0; }
	.outro__content { padding: 48px 20px; gap: 20px; }
	.outro__title { font-size: 24px; letter-spacing: -0.48px; }
	.outro__btn { height: 46px; padding: 0 26px; font-size: 14px; }

	.footer__inner { padding: 48px 20px 32px; }
	.footer__row--top { flex-direction: column; align-items: flex-start; gap: 20px; }

	.footer__row--mid { flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 32px; }
	.footer__family-toggle { width: 100%; }
	.footer__family-list { width: 100%; }

	.footer__row--bottom { flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 32px; }
	.footer__info { max-width: 100%; }
	.footer__top { align-self: flex-end; margin-top: -60px; }

	/* ----- 서브페이지 공통 ----- */
	.sv__title { font-size: 40px; letter-spacing: -0.8px; }

	/* 브레드크럼이 가운데 정렬이라 클릭한 항목이 화면 오른쪽에 가까우면 왼쪽 정렬(left:0) 드롭다운이 뷰포트 밖으로 밀려 잘림
	   → 항목 좌우 가운데 기준으로 뜨게 바꾸고, 좁은 화면에 맞춰 여백/글자 크기도 축소 (폭은 js/sub.js가 내용 길이에 맞춰 지정) */
	.sv__crumb-dropdown { left: 50%; transform: translateX(-50%); padding: 14px 20px 14px 14px; gap: 10px; }
	.sv__crumb-dropdown-link { font-size: 13px; }

	.greeting__inner,
	.history__inner,
	.partner__inner,
	.location__inner,
	.platform__inner,
	.disease__inner,
	.service__inner,
	.why__inner,
	.drug__inner,
	.health__inner,
	.ivd__inner,
	.tissue__inner,
	.logistics__inner,
	.system__inner,
	.rvdsintro__inner,
	.hcintro__inner,
	.hcbiome__inner,
	.hcprobiotics__inner { padding: 20px 0 100px; gap: 60px; }
	.notice__inner,
	.notice-view__inner,
	.press__inner { padding: 20px 0 100px; }
	.press-list { gap: 16px; }
	.press-card { padding: 20px; gap: 20px; height: auto;}
	.press-card__title { font-size: 20px; letter-spacing: -0.4px; }

	/* 개인정보처리방침(privacy) */
	.privacy__inner { padding: 20px 0 100px; gap: 40px; }
	.privacy__sec-tit { font-size: 20px; letter-spacing: -0.4px; }
	.privacy__lead,
	.privacy__sub-tit,
	.privacy__item { font-size: 16px; letter-spacing: -0.32px; }

	/* 분석(platform/disease/service) — 이미지가 항목 마지막에 오는 구조라 다음 항목 제목과 붙어 보여 어떤 항목의 이미지인지 구분이 안 됨 → 항목 사이 구분선 강화 */
	.ana-row { padding-bottom: 40px; border-bottom: 2px solid #dddddd; }
	.ana-row:last-child { border-bottom: 0; padding-bottom: 0; }
	.ana-row__tit { font-size: 38px; letter-spacing: -0.76px; }
	.ana-row__eng { font-size: 20px; letter-spacing: -0.4px; }
	.ana-row__desc-bold { font-size: 20px; letter-spacing: -0.4px; }
	.ana-check-list li { font-size: 15px; letter-spacing: -0.3px; }
	.ana-tag { font-size: 15px; letter-spacing: -0.3px; padding: 7px 16px; }
	.service__table-tit { font-size: 28px; letter-spacing: -0.56px; }
	.service__table-tool { justify-content: flex-start; }
	.srch { width: 100%; }
	.srch__select-btn,
	.srch__field { padding: 16px 20px; }
	.srch__field { flex: 1 1 auto; gap: 10px; }
	.srch__input { font-size: 14px; }

	/* 게시판(notice) — 회사소식·언론보도 */
	.notice__tool { justify-content: flex-start; }
	.notice__link { padding: 24px 0; gap: 20px; }
	.notice__thumb { width: 80px; }
	.notice__title { font-size: 18px; letter-spacing: -0.36px; }
	.notice__arrow svg { width: 10px; height: 18px; }

	.notice-view__title-wrap { padding: 40px 0; }
	.notice-view__title { font-size: 26px; letter-spacing: -0.52px; }
	.notice-view__body { height: auto; padding: 24px; }
	.notice-view__body-label { font-size: 20px; letter-spacing: -0.4px; }
	.notice-view__body-content { font-size: 16px; }
	.notice-view__file-item { height: auto; padding: 20px 24px; }
	.notice-view__file-name { font-size: 15px; letter-spacing: -0.3px; }
	.notice-view__file-download { font-size: 15px; letter-spacing: -0.3px; }
	.notice-view__nav { gap: 12px; margin-top: 50px; }
	.notice-view__nav-btn { width: 44px; height: 44px; }
	.notice-view__nav-btn svg { width: 26px; height: 26px; }
	.notice-view__list-btn { flex: 1 1 auto; width: auto; height: 56px; font-size: 17px; }

	/* 회사소개 */
	.greeting__pillars { margin-bottom: 48px; }
	.greeting__pillar { padding: 24px 20px; border-radius: 16px; }
	.greeting__pillar-tit { font-size: 18px; letter-spacing: -0.36px; }
	.greeting__intro { margin-bottom: 48px; }
	.greeting__intro-label { font-size: 22px; letter-spacing: -0.44px; margin-bottom: 24px; }
	.greeting__intro-tit { font-size: 20px; letter-spacing: -0.4px; margin-bottom: 24px; }
	/* 인트로 리드 문장(콤마 기준 2줄) — partner__lead와 동일한 패턴으로 문단(greeting__intro-txt)과 나란히 숨김 */
	.greeting__intro-tit br { display: none; }
	.greeting__intro-txt p br { display: none; }
	.greeting__sec-tit { font-size: 22px; letter-spacing: -0.44px; margin-bottom: 24px; }
	.greeting__biz-row,
	.greeting__biz-row--rev { gap: 14px; margin-bottom: 28px; }
	.greeting__biz-tit { font-size: 20px; letter-spacing: -0.4px; }
	.greeting__biz-desc { font-size: 16px; letter-spacing: -0.32px; }

	/* 연혁: 지그재그 → 좌측 정렬 단일열 (DOM 순서는 유지, CSS만으로 시각 순서만 재배치) */
	.history__inner { padding-left: 20px; padding-right: 20px; }
	.history__list::before { left: 5px; }
	.history__item { gap: 24px; }
	.history__side--left,
	.history__side--right { text-align: left; align-items: flex-start; }
	.history__side:empty { display: none; }
	.history__dot { order: -1; margin-top: 11px; } /* .history__year(26px, lh1.3)와 수직 중심 정렬 */
	.history__side--left .history__desc-list li { flex-direction: row; }
	.history__progress { left: 5px; }
	.history__progress-dot i:first-child { width: 36px; height: 36px; margin: -18px 0 0 -18px; }
	.history__progress-dot i:last-child { width: 22px; height: 22px; margin: -11px 0 0 -11px; }

	/* 파트너십 & 네트워크 */
	.partner__lead { font-size: 22px; font-weight: 600; letter-spacing: -0.44px; }
	.partner__sec-tit { font-size: 26px; letter-spacing: -0.52px; }
	.partner__sec-desc { font-size: 17px; letter-spacing: -0.34px; margin-bottom: 32px; }
	.partner__logo-grid { gap: 12px; margin-bottom: 32px; }
	.partner__logo-card { padding: 20px 20px 18px; gap: 16px; }
	.partner__logo-img { height: 140px; }
	.partner__logo-name { font-size: 18px; letter-spacing: -0.36px; padding: 0 8px; }
	.partner__icon-grid { gap: 12px; }
	/* 2단 그리드에서 아이콘+텍스트를 가로로 두면 텍스트 폭이 좁아져 줄바꿈이 심해짐 → 세로 스택으로 전환 */
	.partner__icon-card { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; min-height: 0; }
	.partner__icon-img { width: 64px; height: 64px; }
	.partner__icon-img img { max-width: 36px; max-height: 36px; }
	.partner__icon-txt strong { font-size: 20px; letter-spacing: -0.4px; }
	.partner__icon-txt span { font-size: 16px; letter-spacing: -0.32px; }
	/* 지도를 폭에 맞춰 축소하면 국가명/핀이 안 보일 정도로 작아짐 → 원본 크기로 유지하고 가로 스크롤로 확인 */
	/* direction 반전으로 JS 없이 초기 스크롤 위치를 오른쪽(한국 위치)으로 시작 */
	.partner__map { overflow-x: auto; aspect-ratio: auto; -webkit-overflow-scrolling: touch; direction: rtl; }
	.partner__map-img { width: 900px; min-width: 900px; height: auto; aspect-ratio: 1600 / 745; direction: ltr; }

	/* 오시는길 */
	.location__divider { margin: 40px 0; }
	.location__addr-txt { font-size: 24px; letter-spacing: -0.48px; }

	/* SERVICE 공통(svc-*) */
	.svc-intro p { font-size: 17px; letter-spacing: -0.34px; }
	/* drug/health/ivd/tissue 공통 인트로 문단 — 문장 단위로 잡은 줄바꿈이라 폭이 좁아지면 어색해져 숨김(다른 본문 설명과 동일 패턴) */
	.svc-intro p br { display: none; }
	.svc-sec-tit { font-size: 26px; letter-spacing: -0.52px; }
	.svc-feat-list,
	.svc-chip-list { flex-direction: column; }
	.svc-feat-card { flex: none; width: 100%; }
	.svc-chip { flex: none; width: 100%; height: auto; padding: 16px 20px; }
	.svc-mini-grid { grid-template-columns: repeat(2, 1fr); }
	.svc-donut-row { flex-direction: column; }
	/* column 전환 시 flex-basis(0px)가 세로축(height) 기준이 되어 height:520px가 무시되고 0에 가깝게 찌그러짐 → flex:none + aspect-ratio(원본 SVG 1060:520)로 높이를 폭에 비례해 확보 */
	.svc-donut-card { flex: none; width: 100%; height: auto; aspect-ratio: auto; padding: 20px; }
	.svc-stat-list { flex: none; width: 100%; }
	.svc-logo-card { flex: 1 1 100%; }

	/* WHY U2XLab */
	.why__tit-kr { font-size: 30px; letter-spacing: -0.6px; }
	.why__diagram-intro-tit { font-size: 26px; letter-spacing: -0.52px; }
	.why__diagram-intro-sub { font-size: 19px; letter-spacing: -0.38px; }
	.why__diagram-row { flex-direction: column; }
	/* 원형 카드는 좁은 폭에서 텍스트가 원 안에 안 들어가 답답해 보임 → 사각 카드로 전환(@docs/05-responsive 겹침 레이아웃 단순화 허용, greeting__pillar와 동일 패턴) */
	.why__diagram-node { width: 100%; height: auto; padding: 30px 20px; border-radius: 20px; }
	.why__diagram-arrow { transform: rotate(90deg); }

	/* 의약품 임상시험 */
	.drug__rows { gap: 40px; }
	.drug__row-content { gap: 20px; }
	.drug__row-text { gap: 14px; }
	/* 화살표 다이어그램 + 별도 설명 목록 구조는 좁은 폭에서 스텝과 설명이 멀어져 대응관계가 안 보임 → 스텝별 카드로 통합한 모바일 전용 마크업으로 교체 */
	.drug__flow-diagram,
	.drug__flow-cols { display: none; }
	.drug__flow-mobile { display: grid; grid-template-columns: 1fr; gap: 16px; }

	/* 건강기능식품 인체적용시험 */
	.health__ref-row .svc-stat-list { flex: none; width: 100%; }
	.health__cap-grid { grid-template-columns: repeat(2, 1fr); }
	/* 그래프가 좁은 폭에 맞춰 줄어들면 막대·글씨·숫자가 뭉개져 안 보임 → 다른 다이어그램(system__diagram-img 등)과 동일하게 원본 크기를 유지하고 좌우 스크롤로 보게 함 */
	.health__chart { padding: 20px; aspect-ratio: auto; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.health__chart img { display: block; width: 700px; max-width: none; height: auto; }

	/* 바이오물류 */
	.logistics__map-row { flex-direction: column; }
	/* 병원명 나열 문장이 좁은 폭에서 줄바꿈될 때 가운데 정렬로는 어색해 보임 → 왼쪽 정렬 + 둘째 줄부터 들여쓰기 */
	.logistics__highlight-desc { text-align: left; }
	.logistics__highlight-desc-indent { display: block; padding-left: 20px; }
	/* map-card는 자식이 전부 position:absolute라 실제 높이를 aspect-ratio로만 잡는데, column 전환 후에도 1024 구간의 flex-basis(100%)가 세로축(height) 기준으로 남아있으면 지도가 찌그러지거나 사라짐 → flex:none으로 리셋해 width 100%가 폭을 정하고 aspect-ratio가 높이를 정하게 함 */
	.logistics__map-card { flex: none; width: 100%; }
	/* 768 이하는 3칸을 한 줄에 우겨넣으면 텍스트가 너무 작아져 세로 나열로 전환 */
	.logistics__stat-row { flex-direction: column; gap: 12px; }
	.logistics__stat-row .svc-stat-tile,
	.logistics__stat-row .svc-stat-tile--wide { flex: none; width: 100%; padding: 24px 20px; gap: 10px; }
	.logistics__stat-row .svc-stat-tile__num { font-size: 32px; letter-spacing: -0.64px; }
	.logistics__stat-row .svc-stat-tile__label { font-size: 15px; letter-spacing: -0.3px; line-height: 1.4; }
	.logistics__svc-grid { flex-direction: column; }
	.logistics__svc-card { flex: none; width: 100%; }
	.logistics__step-list { flex-direction: column; gap: 40px; }
	.logistics__step { flex: none; width: 100%; }
	/* 세로 스택 전환 시 5개 박스가 순서 없는 카드 나열로 보임 → why__diagram-arrow와 동일한 방식으로 단계 사이에 아래 방향 화살표를 넣어 순차적 흐름임을 표시 */
	.logistics__step-arrow { display: flex; flex: none; width: 15px; height: 20px; margin: 0 auto; color: var(--color-primary); transform: rotate(90deg); }
	/* 문구가 길면 height:100px 고정에 텍스트가 넘쳐 박스 밖으로 삐져나감 → min-height로 풀어 내용만큼 늘어나게 함(쉐브론 배경은 100%/100% 이미지라 늘어난 높이에 맞춰 같이 늘어남) */
	.logistics__step-box { height: auto; min-height: 100px; }
	/* 카드 폭이 좁아지며 이미지 높이가 aspect-ratio에 맞춰 줄어드는데 height:544px는 고정이라 아래쪽에 빈 여백이 크게 남음 */
	.logistics__pack-card { height: auto; }

	/* U2XLab IT SYSTEM */
	.system__tit { font-size: 28px; letter-spacing: -0.56px; }
	/* 다이어그램이 뭉개져 텍스트가 안 보이므로, 원본 크기를 유지하고 좌우 스크롤로 보게 함 */
	.system__diagram-img { width: 900px; max-width: none; }
	.system__value-tit { font-size: 20px; letter-spacing: -0.4px; }
	.system__value-body { padding-right: 20px; }
	/* Core Value 본문 설명 — 문장 단위로 잡은 줄바꿈이라 폭이 좁아지면 어색해져 숨김 */
	.system__value-body p br { display: none; }
	.system__timeline-step { flex: 1 1 100%; }

	/* RVDS 소개 */
	.rvdsintro__head { gap: 20px; padding-bottom: 40px; }
	.rvdsintro__tit { font-size: 30px; letter-spacing: -0.6px; }
	.rvdsintro__eng { font-size: 22px; letter-spacing: -0.44px; }
	.rvdsintro__desc { font-size: 17px; letter-spacing: -0.34px; }
	.rvdsintro__desc br { display: none; }
	.rvdsintro__grid { grid-template-columns: 1fr; }

	/* 맞춤형 헬스케어 */
	.hcintro__sec { padding: 60px 24px; gap: 32px; }
	.hcintro__card-list { flex-direction: column; gap: 10px; }
	.hcintro__card { height: auto;  padding: 24px 20px; }
	.hcintro__block-tit-main { font-size: 24px; letter-spacing: -0.48px; }
	.hcintro__block-tit-desc { font-size: 16px; letter-spacing: -0.32px; }
	/* 이미지 위 오버레이 캡션은 좁아진 이미지 폭 대비 텍스트가 빽빽해 보여, 이미지 밖 일반 텍스트(hcintro__product-cap-mobile)로 대체 노출 */
	.hcintro__product-cap { display: none; }
	.hcintro__product-cap-mobile { display: flex; }
	/* 스텝 3개는 비중 있게 크게 보여줄 정보가 아니라, 세로로 쌓지 않고 한 줄에 압축해서 노출 */
	.hcintro__step-item { gap: 12px; padding: 12px 16px; }
	.hcintro__step-ico { width: 30px; height: 30px; }
	.hcintro__step-txt { font-size: 14px; letter-spacing: -0.28px; }
	/* 질환 다이어그램 이미지는 폭이 좁아지면 텍스트가 뭉개지므로, 원본 크기를 유지하고 좌우 스크롤로 보게 함 */
	.hcintro__disease { aspect-ratio: auto; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.hcintro__disease img { display: block; width: 600px; max-width: none; height: auto; }

	/* 유투바이옴 검사 */
	.hcbiome__group { gap: 30px; }
	.hcbiome__intro-tit,
	.hcbiome__app-title-kr { font-size: 32px; letter-spacing: -0.64px; }
	.hcbiome__report,
	.hcbiome__process { padding: 60px 24px; }
	.hcbiome__report-list { grid-template-columns: 1fr; }
	.hcbiome__report-card { height: auto; min-height: 200px; padding: 24px 20px; }
	/* 비교 이미지는 폭이 좁아지면 텍스트가 뭉개지므로, 원본 크기를 유지하고 좌우 스크롤로 보게 함 */
	.hcbiome__compare { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.hcbiome__compare img { display: block; width: 600px; max-width: none; height: auto; }
	.hcbiome__app-phone { width: 180px; }

	/* 맞춤형 프로바이오틱스 */
	.hcprobiotics__tit-tit { font-size: 28px; letter-spacing: -0.56px; }
	.hcprobiotics__tit-desc { font-size: 17px; letter-spacing: -0.34px; }
	.hcprobiotics__compare-wrap { overflow-x: auto; }
	.hcprobiotics__compare { min-width: 640px; }

	/* 문의폼(cf-*) */
	.cf-sec { gap: 20px; padding: 40px 0; }
	.cf-sec__label { font-size: 28px; letter-spacing: -0.56px; }
	.cf-row__label { font-size: 16px; letter-spacing: -0.32px; }

	.cf-input { padding: 16px 20px; font-size: 16px; }
	textarea.cf-input { height: 160px; }
	.cf-select-btn { padding: 16px 20px; }
	.cf-select-value { font-size: 16px; }

	.cf-radio-group { gap: 24px; }
	.cf-radio__txt { font-size: 16px; }

	.cf-file__name { padding: 16px 20px; font-size: 16px; }
	.cf-file__btn { width: 160px; padding: 16px 20px; font-size: 16px; }

	.cf-code__img { width: 120px; height: 54px; }

	.cf-agree { margin-top: 32px; }
	.cf-agree__txt { font-size: 17px; letter-spacing: -0.34px; }
	.cf-agree__link { font-size: 15px; }

	.cf-btns { margin-top: 32px; }

	.cf-modal__head { padding: 20px 40px; }
	.cf-modal__tit { font-size: 22px; letter-spacing: -0.44px; }
	.cf-modal__body { max-height: 360px; padding: 16px; gap: 20px; }

	/* ----- 메인 ----- */
	.visual__inner { padding: 0 20px; }
	.visual__chrome { padding: 0 20px 40px; }
	.visual__title { font-size: 36px; letter-spacing: -0.72px; }
	.visual__marquee-text { font-size: 16px; letter-spacing: -0.32px; }
	/* 히어로 서브텍스트도 본문 설명 문장이라 폭이 좁아지면 어색해져 숨김 */
	.visual__marquee-text br { display: none; }
	.visual__pagination { gap: 16px; }
	.quick { right: 20px; bottom: 20px; width: calc(100% - 40px); max-width: 320px; }

	.analysis__inner { padding: 60px 20px; }
	.analysis__title { font-size: 32px; letter-spacing: -0.64px; }
	.analysis__scroll { display: none; }
	.analysis__card { padding: 20px; }
	.analysis__card-title { font-size: 24px; letter-spacing: -0.48px; }
	.analysis__more-text { font-size: 40px; letter-spacing: -0.8px; }

	.intro__content { padding-top: 40px; padding-bottom: 40px; gap: 40px; }
	.intro__body { padding: 0 20px; }
	.intro__title { font-size: 28px; letter-spacing: -0.56px; }
	.intro__link { padding: 24px 0; }
	.intro__link-ico { width: 80px; height: 80px; }
	.intro__link-ico-split { transform: scale(.53); }

	.rvds__card { padding: 40px 20px; }
	.rvds__title { font-size: 36px; letter-spacing: -0.72px; }
	.rvds__desc { font-size: 16px; letter-spacing: -0.32px; }
	.rvds__more { width: 80px; height: 80px; }

	.news__inner { padding: 40px 20px; gap: 24px; }
	.news__title { font-size: 32px; letter-spacing: -0.64px; }

	.quote__inner,
	.inquiry__inner { padding: 40px 20px; }
	.inquiry__card-title { font-size: 22px; letter-spacing: -0.44px; }
	.system__block {
		display: flex;
		flex-direction: column;
		gap: 20px;
	}
	.m_on_br{display: block;}
	.system__value-tit-en { display: block; margin-left: 12px; }
}

/* ===== 480 ===== */
@media (max-width: 480px) {
	:root { --header-height: 70px; }

	.header__inner { padding: 0 16px; }
	.header__logo { width: 120px; height: 40px; }

	.header__lang-mobile { gap: 8px; }

	.allmenu { padding: 20px 16px 32px; }
	.allmenu__header { margin-bottom: 24px; }
	.allmenu__logo { width: 120px; height: 40px; }
	.allmenu__close { width: 40px; height: 40px; }

	.allmenu__card-title { font-size: 20px; letter-spacing: -0.4px; }
	.allmenu__card-list a { font-size: 16px; }
	.allmenu__card-list--lg a { font-size: 18px; }
	.allmenu__card-sub { font-size: 16px; }

	.allmenu__cta-item { font-size: 22px; }

	.outro { padding: 40px 0 0; }
	.outro__content { padding: 40px 16px; gap: 16px; }
	.outro__title { font-size: 20px; letter-spacing: -0.4px; }
	.outro__btn { height: 44px; padding: 0 24px; font-size: 14px; }

	.footer__inner { padding: 40px 16px 24px; }
	.footer__logo { width: 150px; height: 51px; }

	.footer__info { gap: 14px; }
	.footer__info-item strong,
	.footer__info-item span,
	.footer__copy { font-size: 15px; }

	.footer__social-link { width: 40px; height: 40px; }

	.footer__top { width: 70px; height: 70px; margin-top: -45px; }
	.footer__top svg { width: 20px; height: 22px; }

	/* ----- 서브페이지 공통 ----- */
	.sv__crumb-item { font-size: 12px; letter-spacing: -0.24px; }
	.sv__title { font-size: 32px; letter-spacing: -0.64px; }

	.greeting__inner,
	.history__inner,
	.partner__inner,
	.location__inner,
	.platform__inner,
	.disease__inner,
	.service__inner,
	.why__inner,
	.drug__inner,
	.health__inner,
	.ivd__inner,
	.tissue__inner,
	.logistics__inner,
	.system__inner,
	.rvdsintro__inner,
	.hcintro__inner,
	.hcbiome__inner,
	.hcprobiotics__inner { padding: 16px 0 60px; gap: 50px; }
	.notice__inner,
	.notice-view__inner,
	.press__inner { padding: 16px 0 60px; }
	.press-list { grid-template-columns: 1fr; gap: 16px; }
	.press-card { padding: 16px; gap: 16px; }
	.press-card__title { font-size: 18px; letter-spacing: -0.36px; }
	.press-card__more { font-size: 15px; letter-spacing: -0.3px; }

	/* 개인정보처리방침(privacy) */
	.privacy__inner { padding: 16px 0 60px; gap: 32px; }
	.privacy__sec { gap: 16px; }
	.privacy__sec-tit { font-size: 18px; letter-spacing: -0.36px; }
	.privacy__lead,
	.privacy__sub-tit,
	.privacy__item { font-size: 15px; letter-spacing: -0.3px; }

	/* 분석(platform/disease/service) */
	.ana-row,
	.ana-row--rev { margin-bottom: 50px; }
	.ana-row__tit { font-size: 32px; letter-spacing: -0.64px; }
	.ana-row__eng { font-size: 18px; letter-spacing: -0.36px; }
	.ana-row__desc-bold { font-size: 19px; letter-spacing: -0.38px; }
	.ana-check-list li { font-size: 14px; letter-spacing: -0.28px; }
	.ana-tag { min-height: 32px; padding: 6px 14px; font-size: 13px; }
	.service__divider { margin-bottom: 50px; }
	.service__table-tit { font-size: 24px; letter-spacing: -0.48px; }
	.service__table thead th { padding: 20px 12px; font-size: 15px; }
	.service__table tbody td { padding: 14px 12px; font-size: 14px; }
	/* 검색창(srch) — 768 축소값(14px/16px 20px)으로도 "Please enter a keyword" 같은 긴 placeholder가 좁은 폭에서 돋보기 아이콘과 겹쳐 보여 한 단계 더 축소 */
	.srch__select-wrap { width: 110px; }
	.srch__select-btn { padding: 14px 16px; }
	.srch__field { padding: 14px 16px; gap: 8px; }
	.srch__input { font-size: 13px; }
	.paging { gap: 4px; }
	.paging .arr { gap: 4px; }
	.paging .arr a,
	.paging li a { width: 36px; height: 36px; font-size: 14px; }
	.paging ul { gap: 4px; }

	/* 게시판(notice) — 회사소식·언론보도 */
	.notice__link { padding: 20px 0; gap: 16px; }
	.notice__thumb { width: 64px; }
	.notice__title { font-size: 16px; letter-spacing: -0.32px; }
	.notice__meta { flex-wrap: wrap; gap: 10px; }
	.notice__date,
	.notice__views { font-size: 13px; }
	.notice__arrow svg { width: 8px; height: 15px; }

	.notice-view__title-wrap { padding: 30px 0; gap: 14px; }
	.notice-view__title { font-size: 20px; letter-spacing: -0.4px; }
	.notice-view__date,
	.notice-view__views { font-size: 13px; }
	.notice-view__body { height: auto; padding: 20px; }
	.notice-view__body-label { font-size: 16px; letter-spacing: -0.32px; }
	.notice-view__body-content { font-size: 15px; }
	.notice-view__file-item { padding: 16px 20px; }
	.notice-view__file-name { font-size: 14px; letter-spacing: -0.28px; }
	.notice-view__file-download { font-size: 14px; letter-spacing: -0.28px; }
	.notice-view__nav-btn { width: 44px; height: 44px; }
	.notice-view__nav-btn svg { width: 26px; height: 26px; }
	.notice-view__list-btn { height: 48px; font-size: 15px; }

	/* 회사소개 */
	.greeting__pillars { margin-bottom: 36px; }
	.greeting__pillar { padding: 20px 18px; border-radius: 14px; gap: 8px; }
	.greeting__pillar-tit { font-size: 17px; letter-spacing: -0.34px; }
	.greeting__pillar-txt { font-size: 14px; letter-spacing: -0.28px; }
	.greeting__intro { margin-bottom: 36px; }
	.greeting__intro-label { font-size: 20px; letter-spacing: -0.4px; margin-bottom: 18px; }
	.greeting__intro-tit { font-size: 18px; letter-spacing: -0.36px; margin-bottom: 18px; }
	.greeting__intro-txt { gap: 14px; }
	.greeting__intro-txt p { font-size: 15px; letter-spacing: -0.3px; }
	.greeting__intro-txt p br { display: none; }
	.greeting__sec-tit { font-size: 20px; letter-spacing: -0.4px; margin-bottom: 18px; }
	.greeting__biz-row,
	.greeting__biz-row--rev { gap: 10px; margin-bottom: 22px; }
	.greeting__biz-txt { gap: 8px; }
	.greeting__biz-tit { font-size: 19px; letter-spacing: -0.38px; }
	.greeting__biz-desc { font-size: 15px; letter-spacing: -0.3px; }
	.greeting__biz-sub { font-size: 14px; letter-spacing: -0.28px; }

	/* 연혁 */
	.history__year { font-size: 22px; letter-spacing: -0.44px; }
	.history__dot { margin-top: 8px; } /* .history__year(22px, lh1.3)와 수직 중심 정렬 */
	.history__progress-dot i:first-child { width: 30px; height: 30px; margin: -15px 0 0 -15px; }
	.history__progress-dot i:last-child { width: 18px; height: 18px; margin: -9px 0 0 -9px; }

	/* 파트너십 & 네트워크 */
	.partner__lead { font-size: 18px; font-weight: 600; letter-spacing: -0.36px; }
	.partner__lead br { display: none; }
	.partner__sec-tit { font-size: 22px; letter-spacing: -0.44px; }
	.partner__sec-desc { font-size: 16px; letter-spacing: -0.32px; margin-bottom: 24px; }
	.partner__logo-grid,
	.partner__icon-grid { grid-template-columns: 1fr; gap: 12px; }
	.partner__logo-grid { margin-bottom: 24px; }
	.partner__logo-card { padding: 20px 16px; gap: 12px; }
	.partner__logo-img { height: 120px; }
	.partner__logo-name { font-size: 16px; letter-spacing: -0.32px; padding: 0 4px; }
	.partner__icon-card { padding: 20px; gap: 12px; }
	.partner__icon-img { width: 56px; height: 56px; }
	.partner__icon-img img { max-width: 32px; max-height: 32px; }

	/* 오시는길 */
	.location__divider { margin: 32px 0; }
	.location__contact-row { align-items: flex-start; }
	.location__addr-txt { font-size: 20px; letter-spacing: -0.4px; }

	/* SERVICE 공통(svc-*) */
	.svc-sec-tit { font-size: 28px; letter-spacing: -0.44px; }
	.svc-sub-tit__txt { font-size: 22px; letter-spacing: -0.44px; }
	.svc-feat-card { padding: 24px; }
	.svc-feat-card__tit { font-size: 18px; letter-spacing: -0.36px; }
	.svc-mini-grid { grid-template-columns: 1fr; }
	.svc-mini-card { padding: 18px 20px; }
	.svc-donut { width: 180px; height: 180px; }
	.svc-donut-legend__label,
	.svc-donut-legend__pct { font-size: 15px; }
	.svc-stat-tile__num { font-size: 36px; letter-spacing: -0.72px; }
	.svc-logo-card { flex: 0 0 100%; }

	/* WHY U2XLab */
	.why__tit-kr { font-size: 24px; letter-spacing: -0.48px; }
	.why__diagram-box { padding: 24px; }
	.why__diagram-intro-tit { font-size: 20px; letter-spacing: -0.4px; }
	.why__diagram-intro-sub { font-size: 16px; letter-spacing: -0.32px; }
	.why__diagram-node { padding: 24px 20px; }

	/* 의약품 임상시험 */
	.drug__rows { gap: 32px; }
	.drug__row-img { aspect-ratio: 4 / 3; }
	.drug__row-content { gap: 16px; }
	.drug__row-label { font-size: 22px; letter-spacing: -0.44px; }
	.drug__row-tit { font-size: 18px; letter-spacing: -0.36px; }
	.drug__row-desc { font-size: 16px; letter-spacing: -0.32px; }
	.drug__flow-mobile { gap: 12px; }
	.drug__flow-mobile-card { padding: 20px 16px; }

	/* 건강기능식품 인체적용시험 */
	.health__cap-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.health__chart { padding: 12px; }

	/* 바이오물류 */
	.logistics__highlight { padding: 24px; }
	.logistics__highlight-num { font-size: 40px; }
	.logistics__map-tit { font-size: 20px; letter-spacing: -0.4px; left: 24px; top: 24px; }
	.logistics__pack-card { padding: 24px; }
	/* 세로 나열 유지, 좁은 폭에 맞춰 패딩/폰트만 한 번 더 줄임 */
	.logistics__stat-row { gap: 10px; }
	.logistics__stat-row .svc-stat-tile { padding: 20px 16px; gap: 8px; }
	.logistics__stat-row .svc-stat-tile__num { font-size: 26px; letter-spacing: -0.52px; }
	.logistics__stat-row .svc-stat-tile__label { font-size: 13px; letter-spacing: -0.26px; line-height: 1.3; }

	/* U2XLab IT SYSTEM */
	.system__diagram { margin-top: 30px; }
	.system__solution-card { padding: 24px; gap: 24px; }
	.system__solution-ico { width: 70px; height: 70px; }
	.system__value-list::before { display: none; }
	.system__value-item { flex-direction: column; gap: 10px; }
	.system__value-content { padding-top: 0; }
	.system__value-tit { font-size: 18px; letter-spacing: -0.36px; }
	.system__value-body { padding-right: 0; }

	/* RVDS 소개 */
	.rvdsintro__tit { font-size: 24px; letter-spacing: -0.48px; }
	.rvdsintro__card { padding: 24px; gap: 24px; }
	.rvdsintro__ico { width: 70px; height: 70px; }
	.rvdsintro__ico img { width: 40px; height: 40px; }

	/* 맞춤형 헬스케어 */
	.hcintro__sec { padding: 40px 16px; gap: 24px; }
	.hcintro__tit-main { font-size: 26px; letter-spacing: -0.52px; }
	.hcintro__tit-desc { font-size: 16px; letter-spacing: -0.32px; }
	.hcintro__block-tit-main { font-size: 20px; letter-spacing: -0.4px; }
	.hcintro__step-list { gap: 6px; }
	.hcintro__step-item { gap: 8px; padding: 10px 8px; }
	.hcintro__step-ico { width: 24px; height: 24px; }
	.hcintro__step-txt { font-size: 12px; line-height: 1.3; letter-spacing: -0.24px; }

	/* 유투바이옴 검사 */
	.hcbiome__intro-tit,
	.hcbiome__app-title-kr { font-size: 26px; letter-spacing: -0.52px; }
	.hcbiome__intro-desc,
	.hcbiome__app-desc { font-size: 17px; letter-spacing: -0.34px; }
	.hcbiome__report { padding: 40px 24px; gap: 30px; }
	.hcbiome__process { padding: 40px 16px; gap: 30px; }
	.hcbiome__target { padding: 24px 16px; flex-direction: column; align-items: flex-start; gap: 10px; }
	.hcbiome__target-bar { display: none; }
	.hcbiome__report-title,
	.hcbiome__process-title { font-size: 22px; letter-spacing: -0.44px; }
	.hcbiome__process-item { padding: 16px; gap: 12px; }
	.hcbiome__process-desc { flex: 1 1 100%; }
	.hcbiome__app-mobile { flex-direction: column; }
	.hcbiome__app-phone { width: 100%; max-width: 240px; }

	/* 맞춤형 프로바이오틱스 */
	.hcprobiotics__tit-tit { font-size: 24px; letter-spacing: -0.48px; }
	.hcprobiotics__brand-logo { width: 160px; }
	.hcprobiotics__brand-logo--02 { width: 200px; }
	.hcprobiotics__row-badge { width: 32px; height: 32px; font-size: 14px; }
	.hcprobiotics__compare-cell { padding: 14px 10px; }

	/* 문의폼(cf-*) */
	.cf-sec { gap: 16px; padding: 32px 0; }
	.cf-sec__label { font-size: 22px; letter-spacing: -0.44px; }
	.cf-row__label { font-size: 15px; letter-spacing: -0.3px; }

	.cf-input { padding: 14px 16px; font-size: 15px; }
	textarea.cf-input { height: 140px; }
	.cf-select-btn { padding: 14px 16px; }
	.cf-select-value { font-size: 15px; }

	/* 이메일 행(성명 입력+@+도메인 입력+도메인 선택 드롭다운, flex:1 4개)이 좁은 폭에서 서로 눌림 → 드롭다운만 다음 줄로 내림 */
	.cf-mail { flex-wrap: wrap; row-gap: 8px; }
	.cf-mail [data-role="email-domain"] { flex: 1 1 100%; }

	.cf-radio-group { gap: 16px; }
	.cf-radio__txt { font-size: 15px; }

	.cf-file__name { padding: 14px 16px; font-size: 14px; }
	.cf-file__btn { width: 120px; padding: 14px 10px; font-size: 14px; }

	.cf-code__img { width: 100px; height: 46px; }

	/* 체크박스+안내문구+전문보기 링크가 한 줄엔 다 안 들어가므로 줄바꿈 허용 */
	.cf-agree { flex-wrap: wrap; justify-content: center; row-gap: 8px; margin-top: 28px; }
	.cf-agree__txt { font-size: 15px; letter-spacing: -0.3px; }
	.cf-agree__link { font-size: 14px; }

	.cf-btns { flex-direction: column; margin-top: 28px; }
	.cf-btn { width: 100%; max-width: none; height: 56px; font-size: 17px; letter-spacing: -0.34px; }

	.cf-modal__head { padding: 16px 40px; }
	.cf-modal__tit { font-size: 18px; letter-spacing: -0.36px; }
	.cf-modal__body { max-height: 280px; padding: 14px; gap: 16px; }
	.cf-modal__group h3,
	.cf-modal__group p { font-size: 14px; }

	/* ----- 메인 ----- */
	.visual__inner { padding: 0 16px; }
	.visual__chrome { padding: 0 16px 24px; }
	.visual__title { font-size: 28px; letter-spacing: -0.56px; }
	.visual__marquee-text { font-size: 14px; letter-spacing: -0.28px; }
	.quick { right: 16px; bottom: 16px; width: calc(100% - 32px); }
	.quick__box { padding: 20px; }
	.quick__form-label { width: 64px; font-size: 14px; letter-spacing: -0.28px; }

	.analysis__inner { padding: 40px 16px; }
	.analysis__title { font-size: 26px; letter-spacing: -0.52px; }
	.analysis__desc { font-size: 15px; letter-spacing: -0.3px; }
	.analysis__card { padding: 16px; }
	.analysis__card-title { font-size: 20px; letter-spacing: -0.4px; }
	.analysis__card-en { font-size: 18px; letter-spacing: -0.36px; }
	.analysis__card-desc { font-size: 14px; letter-spacing: -0.28px; }
	.analysis__more-text { font-size: 32px; letter-spacing: -0.64px; }

	.intro__content { gap: 32px; }
	.intro__body { padding: 0 16px; gap: 16px; }
	.intro__title { font-size: 22px; letter-spacing: -0.44px; }
	.intro__desc { font-size: 14px; letter-spacing: -0.28px; }
	.intro__links { grid-template-columns: 1fr; }
	.intro__link { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .2); }
	.intro__link:last-child { border-bottom: 0; }
	.intro__link-ico { width: auto; height: 64px; }
	.intro__link-ico-split { transform: scale(.43); }
	.intro__link-title { font-size: 18px; letter-spacing: -0.36px; }

	.rvds__card { padding: 32px 16px; gap: 16px; }
	.rvds__title { font-size: 28px; letter-spacing: -0.56px; }
	.rvds__desc { font-size: 14px; letter-spacing: -0.28px; }
	.rvds__more { width: 64px; height: 64px; }
	.rvds__more svg { width: 16px; height: 16px; }

	.news__inner { padding: 32px 16px; gap: 20px; }
	.news__title { font-size: 26px; letter-spacing: -0.52px; }
	#newsSwiper .news__card { width: 300px; height: 400px; padding: 20px; gap: 20px; }
	#newsSwiper.swiper,
	#newsSwiper .swiper-wrapper { height: 400px !important; }
	.news__thumb { width: 100%; height: 165px; }
	.news__txt { gap: 16px; }
	.news__post { gap: 18px; padding-bottom: 16px; }
	.news__category { font-size: 12px; letter-spacing: -0.24px; padding: 4px 12px; }
	.news__date { font-size: 13px; letter-spacing: -0.26px; }
	.news__card-title { font-size: 18px; letter-spacing: -0.36px; }
	.news__more { font-size: 15px; letter-spacing: -0.3px; }

	.quote__inner,
	.inquiry__inner { padding: 32px 16px; }
	.inquiry__card--trial,
	.inquiry__card--general { padding: 20px; }
	.inquiry__card-title { font-size: 20px; letter-spacing: -0.4px; }
	.inquiry__card-sub { font-size: 16px; letter-spacing: -0.32px; }
}


@media(max-width:1910px){
	.intro__desc br,
	.rvds__desc br,
	.hcintro__block-tit-desc br,
	.hcintro__block-tit-main br
	{display: none;}
}