/* ==========================================================================
   wp-base.css
   WordPress(FSE)가 런타임에 생성하던 글로벌 스타일 + 코어 블록 CSS를
   정적 사이트용으로 옮겨 적은 파일.
   원본: suku/theme.json + wp-includes 블록 라이브러리
   ========================================================================== */

/* ---------- 폰트 (theme.json > settings.typography.fontFamilies) ---------- */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100; src: url("../fonts/inter_normal_100.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 200; src: url("../fonts/inter_normal_200.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 300; src: url("../fonts/inter_normal_300.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; src: url("../fonts/inter_normal_400.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; src: url("../fonts/inter_normal_500.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; src: url("../fonts/inter_normal_600.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; src: url("../fonts/inter_normal_700.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 800; src: url("../fonts/inter_normal_800.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 900; src: url("../fonts/inter_normal_900.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 100; src: url("../fonts/public-sans_normal_100.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 200; src: url("../fonts/public-sans_normal_200.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 300; src: url("../fonts/public-sans_normal_300.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 400; src: url("../fonts/public-sans_normal_400.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 500; src: url("../fonts/public-sans_normal_500.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 600; src: url("../fonts/public-sans_normal_600.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 700; src: url("../fonts/public-sans_normal_700.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 800; src: url("../fonts/public-sans_normal_800.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 900; src: url("../fonts/public-sans_normal_900.ttf") format("truetype"); font-display: swap; }

/* ---------- 프리셋 변수 (theme.json > settings) ---------- */
:root {
	/* 색상 팔레트 */
	--wp--preset--color--black: #000000;
	--wp--preset--color--white: #ffffff;
	--wp--preset--color--custom-primary-button: #325ce8;
	--wp--preset--color--custom-footer-background: #1a1a1a;
	--wp--preset--color--custom-paragraph-color: #717171;

	/* 그라디언트 */
	--wp--preset--gradient--gradient-1: linear-gradient(to bottom, #eff3ff 50%, #ffffff 50%);

	/* 폰트 패밀리 */
	--wp--preset--font-family--system-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	--wp--preset--font-family--inter: "Inter", sans-serif;
	--wp--preset--font-family--public-sans: "Public Sans", sans-serif;

	/* 폰트 크기 (fluid) */
	--wp--preset--font-size--xsmall: clamp(16px, 1.2vw, 18px);
	--wp--preset--font-size--small: clamp(18px, 1.5vw, 22px);
	--wp--preset--font-size--medium: clamp(22px, 2vw, 28px);
	--wp--preset--font-size--xmedium: clamp(28px, 2.3vw, 32px);
	--wp--preset--font-size--large: clamp(32px, 2.7vw, 38px);
	--wp--preset--font-size--xlarge: clamp(38px, 3vw, 42px);
	--wp--preset--font-size--xxlarge: clamp(42px, 3.4vw, 48px);
	--wp--preset--font-size--xxxlarge: clamp(48px, 3.7vw, 52px);
	--wp--preset--font-size--huge: clamp(52px, 4.3vw, 60px);

	/* 레이아웃 (theme.json > settings.layout) */
	--wp--style--global--content-size: 1170px;
	--wp--style--global--wide-size: 100%;
	--wp--style--block-gap: 24px;
}

/* ---------- 루트 스타일 (theme.json > styles) ---------- */
*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--wp--preset--font-family--inter);
	color: var(--wp--preset--color--custom-paragraph-color);
	background-color: var(--wp--preset--color--white);
	-webkit-font-smoothing: antialiased;
}

/* elements.heading */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--wp--preset--font-family--public-sans);
	color: var(--wp--preset--color--custom-footer-background);
	margin-top: 0;
}
h1 { font-size: var(--wp--preset--font-size--xxxlarge); }
h2 { font-size: var(--wp--preset--font-size--xxlarge); }
h3 { font-size: var(--wp--preset--font-size--xlarge); }
h4 { font-size: var(--wp--preset--font-size--large); }
h5 { font-size: var(--wp--preset--font-size--medium); }
h6 { font-size: var(--wp--preset--font-size--small); }

/* blocks > core/heading */
.wp-block-heading { color: #12141d; }

/* blocks > core/paragraph */
p {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 18px;
	line-height: 1.9;
	color: #717171;
	margin-top: 0;
	margin-bottom: 24px;
}
p.has-text-color { color: inherit; }

/* elements.link */
a {
	font-family: var(--wp--preset--font-family--inter);
	color: var(--wp--preset--color--custom-primary-button);
}
a:hover { color: var(--wp--preset--color--custom-footer-background); }

/* blocks > core/list-item */
li {
	color: var(--wp--preset--color--custom-paragraph-color);
	font-size: var(--wp--preset--font-size--xsmall);
	line-height: 1.7;
}

/* ---------- 레이아웃 지원 (block supports: layout) ---------- */
.is-layout-flow > *,
.is-layout-constrained > * { margin-block-start: var(--wp--style--block-gap, 24px); margin-block-end: 0; }
.is-layout-flow > :first-child,
.is-layout-constrained > :first-child { margin-block-start: 0; }
.is-layout-flow > :last-child,
.is-layout-constrained > :last-child { margin-block-end: 0; }

.is-layout-constrained > :not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright) {
	max-width: var(--wp--style--global--content-size);
	margin-left: auto !important;
	margin-right: auto !important;
}
.is-layout-constrained > .alignwide { max-width: var(--wp--style--global--wide-size); }
.is-layout-constrained > .alignfull { max-width: none; }

.is-layout-flex {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--style--block-gap, 0.5em);
}
.is-layout-flex > * { margin: 0; }
.is-layout-flex.is-vertical { flex-direction: column; align-items: stretch; }
.is-layout-flex.is-vertical.is-content-justification-center { align-items: center; }
.is-layout-flex.is-nowrap { flex-wrap: nowrap; }
.is-content-justification-left { justify-content: flex-start; }
.is-content-justification-center { justify-content: center; }
.is-content-justification-right { justify-content: flex-end; }
.is-content-justification-space-between { justify-content: space-between; }

/* ---------- core/columns ---------- */
.wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	align-items: normal !important;
	box-sizing: border-box;
	gap: var(--wp--style--block-gap, 2em);
}
.wp-block-columns.are-vertically-aligned-center { align-items: center !important; }
.wp-block-columns.are-vertically-aligned-top { align-items: flex-start !important; }
.wp-block-columns.are-vertically-aligned-bottom { align-items: flex-end !important; }

@media (min-width: 782px) {
	.wp-block-columns { flex-wrap: nowrap !important; }
	.wp-block-columns > .wp-block-column { flex-basis: 0; flex-grow: 1; }
	.wp-block-columns > .wp-block-column[style*="flex-basis"] { flex-grow: 0; }
}
@media (max-width: 781px) {
	.wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
}

.wp-block-column {
	flex-grow: 1;
	min-width: 0;
	word-break: break-word;
	overflow-wrap: break-word;
}
.wp-block-column.is-vertically-aligned-center { align-self: center; }
.wp-block-column.is-vertically-aligned-top { align-self: flex-start; }
.wp-block-column.is-vertically-aligned-bottom { align-self: flex-end; }

/* ---------- core/cover ---------- */
.wp-block-cover {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 430px;
	padding: 1em;
	overflow: hidden;
	background-position: 50%;
	background-size: cover;
}
.wp-block-cover .wp-block-cover__background { position: absolute; inset: 0; z-index: 1; background-color: #000; }
.wp-block-cover .has-background-dim-0 { opacity: 0; }
.wp-block-cover img.wp-block-cover__image-background {
	position: absolute; inset: 0; margin: 0; padding: 0; border: none;
	width: 100%; height: 100%; max-width: none; object-fit: cover; z-index: 0;
}
.wp-block-cover .wp-block-cover__inner-container { position: relative; z-index: 1; width: 100%; color: #fff; }
.wp-block-cover.is-light .wp-block-cover__inner-container { color: inherit; }

/* ---------- core/buttons, core/button ---------- */
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--style--block-gap, 0.5em);
	font-family: var(--wp--preset--font-family--inter);
	font-style: normal;
	font-weight: 500;
}
.wp-block-button { box-sizing: border-box; }
.wp-block-button__link,
.wp-element-button {
	display: inline-block;
	box-sizing: border-box;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	word-break: break-word;
	font-family: var(--wp--preset--font-family--inter);
	font-size: inherit;
	line-height: inherit;
	padding: calc(0.667em + 2px) calc(1.333em + 2px);
	border: none;
	border-radius: 10px;
	background-color: var(--wp--preset--color--custom-primary-button);
	color: var(--wp--preset--color--white);
}
.wp-block-button__link:hover { color: var(--wp--preset--color--white); }
/* 참고: 마크업에는 is-style-outline 이 붙어 있지만, theme.json 의 core/button 스타일이
   우선하여 실제 라이브 사이트에서는 '채워진(파란 배경 + 흰 글씨)' 버튼으로 렌더됩니다.
   외곽선 버튼으로 바꾸려면 아래 주석을 해제하세요. */
/*
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid;
	padding: 0.667em 1.333em;
	background-color: transparent;
	background-image: none;
	color: var(--wp--preset--color--custom-primary-button);
}
*/

/* ---------- core/image ---------- */
.wp-block-image { margin: 0 0 1em; }
.wp-block-image img { max-width: 100%; height: auto; vertical-align: bottom; box-sizing: border-box; }
figure { margin: 0; }

/* ---------- core/navigation ---------- */
.wp-block-navigation {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 18px;
	color: var(--wp--preset--color--custom-footer-background);
}
.wp-block-navigation__container {
	display: flex;
	align-items: center;
	gap: 50px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.wp-block-navigation-item__content {
	color: inherit;
	text-decoration: none;
	font-size: 18px;
}
.wp-block-navigation-item__content:hover { color: var(--wp--preset--color--custom-primary-button); }

/* ---------- 색상 유틸리티 클래스 ---------- */
.has-text-align-left { text-align: left; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }

.has-white-color { color: var(--wp--preset--color--white) !important; }
.has-black-color { color: var(--wp--preset--color--black) !important; }
.has-custom-primary-button-color { color: var(--wp--preset--color--custom-primary-button) !important; }
.has-custom-footer-background-color { color: var(--wp--preset--color--custom-footer-background) !important; }
.has-custom-paragraph-color-color { color: var(--wp--preset--color--custom-paragraph-color) !important; }

.has-white-background-color { background-color: var(--wp--preset--color--white) !important; }
.has-black-background-color { background-color: var(--wp--preset--color--black) !important; }
.has-custom-primary-button-background-color { background-color: var(--wp--preset--color--custom-primary-button) !important; }
.has-custom-footer-background-background-color { background-color: var(--wp--preset--color--custom-footer-background) !important; }

.has-gradient-1-gradient-background { background: var(--wp--preset--gradient--gradient-1) !important; }

/* ---------- 사이트 래퍼 ---------- */
.wp-site-blocks > * { margin-block-start: 24px; margin-block-end: 0; }
.wp-site-blocks > :first-child { margin-block-start: 0; }
.wp-site-blocks > :last-child { margin-block-end: 0; }
