/* 
 * 글로벌 스타일 파일
 * 전체 사이트에서 사용되는 공통 스타일, 변수, 리셋 등을 정의
 */

/* Paperlogy 폰트 정의 */
@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-1Thin.ttf") format("truetype");
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-2ExtraLight.ttf") format("truetype");
  font-weight: 200;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-3Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-4Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-5Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-6SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-7Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-8ExtraBold.ttf") format("truetype");
  font-weight: 800;
  font-style: normal;
}

@font-face {
  font-family: "Paperlogy";
  src: url("/font/Paperlogy-9Black.ttf") format("truetype");
  font-weight: 900;
  font-style: normal;
}

/* CSS 변수 정의 */
:root {
  /* 색상 변수 */
  --primary-color: #ff4149; /* 메인 빨간색 */
  --secondary-color: #0073bc; /* 파란색 */
  --text-primary: #030a12; /* 진한 검정 */
  --text-secondary: #454545; /* 회색 */
  --text-light: #666666; /* 연한 회색 */
  --text-muted: #929292; /* 더 연한 회색 */
  --text-brown: #7b6262; /* 갈색 */
  --text-navy: #2c335b; /* 네이비 색상 */
  --text-light-navy: #646b92; /* 연한 네이비 색상 */
  --white: #ffffff; /* 흰색 */
  --background-light: #f9f9f9; /* 연한 배경색 */
  --background-peach: #fff5f1; /* 복숭아색 배경 */
  --highlight-orange: rgba(200, 93, 77, 1); /* 강조 주황색 */
  --button-green: #239b3f; /* 녹색 버튼 */
  --button-blue: #93b2f2; /* 파란색 버튼 */
  --border-color: #dddddd; /* 테두리 색상 */
  --border-light: #d4d2e3; /* 연한 테두리 색상 */
  --transparent-white: rgba(255, 255, 255, 0.7); /* 반투명 흰색 */
  --menu-bg: rgba(255, 255, 255, 0.9); /* 메뉴 배경색 */

  /* 그라데이션 색상 */
  --gradient-blue: #39b3e7;
  --gradient-orange: #ff4149;
  --gradient-gray: #dddddd;

  /* 폰트 변수 */
  --font-family: "Paperlogy", sans-serif;

  /* 폰트 크기 */
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-base: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-2xl: 24px;
  --font-size-3xl: 36px;
  --font-size-4xl: 56px;

  /* 폰트 두께 */
  --font-weight-light: 300;
  --font-weight-normal: 500;
  --font-weight-bold: 700;
  --font-weight-black: 900;

  /* 간격 변수 */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-2xl: 48px;
  --spacing-3xl: 64px;
  --spacing-4xl: 80px;
  --spacing-5xl: 100px;

  /* 테두리 반지름 */
  --border-radius-sm: 5px;
  --border-radius-md: 10px;
  --border-radius-lg: 20px;
  --border-radius-xl: 24px;
  --border-radius-2xl: 35px;
  --border-radius-full: 50%;

  /* 그림자 */
  --shadow-sm: 0px 0px 8px 0px rgba(0, 0, 0, 0.25);
  --shadow-md: 3px 3px 8px 0px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0px 4px 10px 0px rgba(20, 20, 43, 0.04);
  --shadow-xl: 0px 0px 12px 0px rgba(0, 0, 0, 0.25);

  /* 최대 너비 */
  --max-width-container: 1440px;
  --max-width-content: 1164px;

  /* 중단점 (미디어 쿼리용) */
  --breakpoint-mobile: 768px;
  --breakpoint-tablet: 1024px;
  --breakpoint-desktop: 1440px;
}

/* CSS 리셋 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

*::before,
*::after {
  box-sizing: border-box;
}

/* HTML 및 Body 기본 설정 */
html {
  font-size: 16px;
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-normal);
  line-height: 1.6;
  color: var(--text-primary);
  background-color: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* 링크 기본 스타일 */
a {
  color: inherit;
  text-decoration: none;
  transition: all 0.3s ease;
}

a:hover {
  opacity: 0.8;
}

/* 리스트 기본 스타일 */
ul,
ol {
  list-style: none;
}

/* 이미지 기본 스타일 */
img {
  max-width: 100%;
  display: block;
}

/* 버튼 기본 스타일 */
button {
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.3s ease;
}

button:focus {
  outline: 2px solid var(--primary-color);
  outline-offset: 2px;
}

/* 입력 요소 기본 스타일 */
input,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-sm);
  padding: var(--spacing-sm) var(--spacing-md);
  transition: border-color 0.3s ease;
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--primary-color);
}

/* 제목 기본 스타일 */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
}

h1 {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-black);
}

h2 {
  font-size: var(--font-size-3xl);
}

h3 {
  font-size: var(--font-size-2xl);
}

/* 문단 기본 스타일 */
p {
  line-height: 1.67;
}

/* 컨테이너 공통 스타일 */
.container {
  max-width: var(--max-width-container);
  margin: 0 auto;
  padding: 0 var(--spacing-lg);
}

.content-container {
  max-width: var(--max-width-content);
  margin: 0 auto;
  padding: 0 var(--spacing-lg);
}

/* 섹션 공통 스타일 */
.section {
  padding: var(--spacing-5xl) 0;
}

.section-header {
  text-align: center;
  /* margin-bottom: var(--spacing-4xl); */
}


/* 유틸리티 클래스 */
.text-center {
  text-align: center;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}

.d-none {
  display: none;
}
.d-block {
  display: block;
}
.d-flex {
  display: flex;
}
.d-inline-block {
  display: inline-block;
}

.flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

.flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.flex-column {
  display: flex;
  flex-direction: column;
}

.gap-sm {
  gap: var(--spacing-sm);
}
.gap-md {
  gap: var(--spacing-md);
}
.gap-lg {
  gap: var(--spacing-lg);
}
.gap-xl {
  gap: var(--spacing-xl);
}

.mb-0 {
  margin-bottom: 0;
}
.mb-sm {
  margin-bottom: var(--spacing-sm);
}
.mb-md {
  margin-bottom: var(--spacing-md);
}
.mb-lg {
  margin-bottom: var(--spacing-lg);
}
.mb-xl {
  margin-bottom: var(--spacing-xl);
}

.mt-0 {
  margin-top: 0;
}
.mt-sm {
  margin-top: var(--spacing-sm);
}
.mt-md {
  margin-top: var(--spacing-md);
}
.mt-lg {
  margin-top: var(--spacing-lg);
}
.mt-xl {
  margin-top: var(--spacing-xl);
}

/* 반응형 유틸리티 */
.mobile-only {
  display: none;
}

.desktop-only {
  display: block;
}

/* 접근성 */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 스크롤바 스타일링 (웹킷 브라우저) */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: var(--background-light);
}

::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: var(--border-radius-sm);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--text-muted);
}

/* 선택 영역 스타일 */
::selection {
  background-color: var(--primary-color);
  color: var(--white);
}

::-moz-selection {
  background-color: var(--primary-color);
  color: var(--white);
}

/* 포커스 표시 개선 */
:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 2px;
}

/* 미디어 쿼리 - 태블릿 */
@media (max-width: 1023px) {
  :root {
    --font-size-4xl: 42px;
    --font-size-3xl: 28px;
    --font-size-2xl: 20px;
  }

  .container,
  .content-container {
    padding: 0 var(--spacing-md);
  }

  .section {
    padding: var(--spacing-3xl) 0;
  }

  .desktop-only {
    display: none;
  }
}

/* 미디어 쿼리 - 모바일 */
@media (max-width: 767px) {
  :root {
    --font-size-4xl: 32px;
    --font-size-3xl: 24px;
    --font-size-2xl: 18px;
    --font-size-lg: 16px;
  }

  .container,
  .content-container {
    padding: 0 var(--spacing-md);
  }

  .section {
    padding: var(--spacing-2xl) 0;
  }

  .mobile-only {
    display: block;
  }

  .desktop-only {
    display: none;
  }
}
