@charset "utf-8";
/*
 * 웹진 테마 — 견적의뢰 랜딩 공용 디자인시스템
 *
 * 쓰는 곳: 1526 인쇄디자인(request_print)
 *
 * 원본: 더에코 웹진.dc.html (Design Canvas 산출물).
 * 앞선 두 랜딩과 달리 별도 디자인시스템 CSS 파일이 없고, 색은 전부 인라인 style 에
 * 리터럴(rgb(26,107,79) 등)로 박혀 있었다. 여기서는 그 리터럴을 토큰으로 정리해
 * .eco-landing.is-webzine 에 선언한다. 공통 폼(landing/common.css)이 요구하는
 * --color-* / --font-* / --space-* / --radius-md 는 전부 채워야 한다.
 *
 * 원본에 미디어쿼리가 전혀 없어(데스크톱 1240px 고정) 반응형은 여기서 새로 넣는다.
 */

.eco-landing.is-webzine {
	--color-bg: #ffffff;
	--color-surface: #f2f5f3;
	--color-text: #1d2621;
	--color-dark: #26302b;
	--color-dark-900: #1a201d;
	--color-divider: #e6eae7;

	--color-accent: #1a6b4f;
	--color-accent-600: #0f4a36;
	--color-accent-700: #0f4a36;
	--color-accent-300: #8fd3b6;
	--color-accent-100: #eaf3ee;

	--color-neutral-600: #6d7a73;
	--color-neutral-700: #5d6a63;
	--color-neutral-800: #3d4a43;

	--font-heading: "Noto Sans KR", "Pretendard", system-ui, sans-serif;
	--font-heading-weight: 900;
	--font-body: "Noto Sans KR", "Pretendard", system-ui, sans-serif;
	--font-mono: "IBM Plex Mono", ui-monospace, monospace;

	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-6: 24px;
	--space-8: 32px;

	--radius-sm: 2px;
	--radius-md: 4px;
	--radius-lg: 8px;
}

/* 원본 <style> 의 a 규칙. common.css 의 .eco-landing a 를 덮는다. */
.eco-landing.is-webzine a { color: var(--color-accent); }
.eco-landing.is-webzine a:hover { color: var(--color-accent-600); }

/* ── 굵기 상속 복원 ────────────────────────────────────────────────
 * 사이트 css/common.css 의 `* { font-weight:400 }` 가 모든 요소에 굵기를 직접 박아 상속을 끊는다.
 * 원본은 굵기를 부모(h·p·링크)에 주고 안쪽 span 이 물려받는 구조라, 히어로 제목의 초록 강조 span·
 * 섹션 제목 강조·상단 바 라벨이 원본 700/900 대신 400 으로 렌더된다.
 * 특정도 0(:where)이라 사이트 `*` 만 이기고(이 파일이 뒤에 로드된다) 인라인·클래스 규칙은 그대로 둔다.
 * 공용 폼(.lnd-form)은 원본에 없던 요소라 제외한다. */
:where(.eco-landing.is-webzine) :where(:not(.lnd-form, .lnd-form *)) { font-weight: inherit; }

/* ── 상단 CTA 바 (원본 상단 sticky 바: 섹션 메뉴 + 대표번호 + 견적의뢰 바로가기) ──
   랜딩 루트의 첫 자식이라 처음엔 사이트 헤더 아래에 있다가 스크롤하면 화면 상단에 붙는다.
   sticky 는 조상 중 하나라도 overflow 가 visible 이 아니면 동작하지 않으므로
   루트와 그 조상에 overflow 를 두지 말 것. 글자 크기는 08-26 매핑(15→16), 19px 는 그대로. */
.eco-landing.is-webzine .lnd-wz-topbar {
	position: sticky;
	top: 0;
	z-index: 20;
	background: #fff;
	border-bottom: 1px solid var(--color-divider);
}
.eco-landing.is-webzine .lnd-wz-topbar-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 32px;
	display: flex;
	align-items: center;
	gap: 36px;
	height: 72px;
}
.eco-landing.is-webzine .lnd-wz-topbar-menu {
	display: flex;
	align-items: center;
	gap: 36px;
	min-width: 0;
	white-space: nowrap;
}
.eco-landing.is-webzine .lnd-wz-topbar-menu a {
	flex: none;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--color-text);
	padding: 4px 0;
	border-bottom: 2px solid transparent;
	transition: color .18s ease, border-color .18s ease;
}
.eco-landing.is-webzine .lnd-wz-topbar-menu a:hover {
	color: var(--color-accent);
	border-bottom-color: var(--color-accent);
}
.eco-landing.is-webzine .lnd-wz-topbar-actions {
	flex: none;
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 20px;
	white-space: nowrap;
}
.eco-landing.is-webzine .lnd-wz-topbar-tel {
	display: flex;
	align-items: center;
	gap: 8px;
	line-height: 1;
	color: var(--color-accent);
}
.eco-landing.is-webzine .lnd-wz-topbar-tel-label { font-size: 16px; font-weight: 700; }
.eco-landing.is-webzine .lnd-wz-topbar-tel-num { font-size: 19px; font-weight: 900; letter-spacing: -0.5px; }
.eco-landing.is-webzine .lnd-wz-topbar-sep { width: 1px; height: 18px; background: #dfe5e1; }
.eco-landing.is-webzine .lnd-wz-topbar-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--color-accent);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	padding: 13px 24px;
	border-radius: 2px;
	transition: background .18s ease, color .18s ease;
}
/* 원본 style-hover="background:#0f4a36; color:#fff" */
.eco-landing.is-webzine .lnd-wz-topbar-cta:hover {
	background: var(--color-accent-600) !important;
	color: #fff !important;
}

/* 앵커가 sticky 바(데스크톱 73px) 밑으로 숨지 않도록 */
.eco-landing.is-webzine [id] { scroll-margin-top: 88px; }

/* ≤1023px: 사이트 .header-mobile(absolute, 0~54px, 불투명 #fff)이 랜딩 맨 위를 차지하므로
   루트를 54px 내린다. margin-top 은 조상으로 collapse 되어 #header 째 밀리므로 padding-top 이어야 한다.
   메뉴는 공간이 모자라면 가로 스크롤로 줄어든다. */
@media (max-width: 1023px) {
	.eco-landing.is-webzine { padding-top: 54px; }
	.eco-landing.is-webzine .lnd-wz-topbar-inner { height: 60px; padding: 0 24px; gap: 20px; }
	.eco-landing.is-webzine .lnd-wz-topbar-menu {
		gap: 20px;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.eco-landing.is-webzine .lnd-wz-topbar-menu::-webkit-scrollbar { display: none; }
	.eco-landing.is-webzine .lnd-wz-topbar-actions { gap: 14px; }
	.eco-landing.is-webzine .lnd-wz-topbar-cta { padding: 12px 18px; }
}
/* 768~860px(태블릿 세로): 메뉴 4개가 잘리지 않도록 간격을 줄인다("대표번호" 글자는 아래 규칙에서 숨김) */
@media (min-width: 768px) and (max-width: 860px) {
	.eco-landing.is-webzine .lnd-wz-topbar-inner { gap: 16px; padding: 0 20px; }
	.eco-landing.is-webzine .lnd-wz-topbar-menu { gap: 16px; }
	.eco-landing.is-webzine .lnd-wz-topbar-actions { gap: 12px; }
	.eco-landing.is-webzine .lnd-wz-topbar-cta { padding: 12px 14px; }
}
/* ≤767px: 한 줄에 메뉴까지 담을 수 없어 메뉴는 숨기고 대표번호 + 견적의뢰만 남긴다 */
@media (max-width: 767px) {
	.eco-landing.is-webzine .lnd-wz-topbar-inner { height: 56px; padding: 0 16px; }
	.eco-landing.is-webzine .lnd-wz-topbar-menu,
	.eco-landing.is-webzine .lnd-wz-topbar-sep { display: none; }
	.eco-landing.is-webzine .lnd-wz-topbar-actions {
		flex: 1 1 auto;
		margin-left: 0;
		justify-content: space-between;
		gap: 12px;
	}
	.eco-landing.is-webzine .lnd-wz-topbar-tel-num { font-size: 18px; }
	.eco-landing.is-webzine .lnd-wz-topbar-cta { padding: 12px 16px; font-size: 15px; }
}
/* 768~860px, ≤480px: "대표번호" 글자는 화면에서만 숨긴다(스크린리더는 읽는다) */
@media (min-width: 768px) and (max-width: 860px), (max-width: 480px) {
	.eco-landing.is-webzine .lnd-wz-topbar-tel-word {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
}
@media (max-width: 359px) {
	.eco-landing.is-webzine .lnd-wz-topbar-tel-num { font-size: 17px; }
	.eco-landing.is-webzine .lnd-wz-topbar-cta { padding: 11px 12px; font-size: 14px; }
}

/* ── 반응형 (원본에 미디어쿼리가 전혀 없어 여기서 새로 넣는다) ─────
   인라인 style 로 열 수가 박혀 있어 속성 선택자 + !important 로 덮는다. */
@media (max-width: 1080px) {
	.eco-landing.is-webzine [style*="repeat(3, 1fr)"] { grid-template-columns: repeat(2, 1fr) !important; }
	.eco-landing.is-webzine [style*="repeat(4, 1fr)"] { grid-template-columns: repeat(2, 1fr) !important; }
	.eco-landing.is-webzine [style*="1.15fr 0.85fr"] { grid-template-columns: 1fr !important; }
	.eco-landing.is-webzine .lnd-wz-quote { grid-template-columns: 1fr !important; }
}
@media (min-width: 1081px) {
	.eco-landing.is-webzine .lnd-wz-quote { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 760px) {
	.eco-landing.is-webzine [style*="repeat(3, 1fr)"],
	.eco-landing.is-webzine [style*="repeat(4, 1fr)"],
	.eco-landing.is-webzine [style*="grid-template-columns: 1fr 1fr"] { grid-template-columns: 1fr !important; }
}

/* ── 히어로 인증 칩 / CTA 버튼 / 해시 태그 ───── */
.eco-landing.is-webzine .lnd-wz-chip {
	display: inline-flex;
	align-items: center;
	font-size: 15px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.86);
	border: 1px solid rgba(255, 255, 255, 0.28);
	padding: 7px 13px;
	border-radius: 999px;
}
.eco-landing.is-webzine .lnd-wz-chip.is-strong {
	color: var(--color-accent-300);
	border-color: var(--color-accent-300);
	font-weight: 700;
}
.eco-landing.is-webzine .lnd-wz-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--color-accent);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	padding: 16px 30px;
	border-radius: 999px;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.eco-landing.is-webzine .lnd-wz-btn:hover { background: var(--color-accent-600); color: #fff; }
.eco-landing.is-webzine .lnd-wz-btn.is-ghost {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.45);
	color: #fff;
}
.eco-landing.is-webzine .lnd-wz-btn.is-ghost:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: #fff;
	color: #fff;
}
.eco-landing.is-webzine .lnd-wz-tag {
	display: inline-flex;
	align-items: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--color-accent);
	border: 1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);
	background: var(--color-accent-100);
	padding: 4px 10px;
	border-radius: 999px;
}
