@charset 'utf-8';

/* ===== 1. Modern Reset & Box-model ===== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* 폰트 크기 조절 시 레이아웃 깨짐 방지 및 부드러운 스크롤 */
html {
  font-size: 100%;
  -webkit-text-size-adjust: none; /* iOS 가로 모드 시 텍스트 크기 자동 변경 방지 */
  text-size-adjust: none;
  scroll-behavior: smooth;
}

/* ===== 2. Body: Typography & Rendering ===== */
body {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif; 
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6; /* 가독성을 위해 1.5에서 1.6으로 소폭 상향 */
  background-color: #fff;
  color: #1C1A18;
  word-break: keep-all; /* 한글 가독성: 단어 단위 줄바꿈 */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ===== 3. Media & Elements ===== */
img, picture, video, canvas, svg {
  display: block;
  width:100%;
  max-width: 100%;
  height: auto;
  font-style: italic; /* 대체 텍스트(alt) 표시 시 스타일 */
  shape-margin: 0.75rem;
}

/* SVG 색상 제어를 위한 설정 */
svg {
  fill: currentColor;
}

/* ===== 4. Lists & Links ===== */
ul, ol { list-style: none; }

a {
  color: inherit;
  text-decoration: none;
  /* 터치 기기에서 클릭 시 하이라이트 색상 제거 */
  -webkit-tap-highlight-color: transparent;
}

/* ===== 5. Form Elements (Interactive) ===== */
/* 버튼 및 입력창의 기본 외형을 제거하여 커스텀하기 편하게 함 */
input, button, textarea, select {
  font: inherit;
  color: inherit;
  background-color: transparent;
  border: none;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}

button { cursor: pointer; }
button:disabled { cursor: default; }

textarea {
  resize: vertical;
  min-height: 4rem;
}

/* IE/Edge의 Input X 버튼 제거 */
input::-ms-clear, input::-ms-reveal { display: none; }

/* ===== 6. Table ===== */
table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

/* ===== 7. Accessibility & Selection ===== */
/* 키보드 사용자에게만 포커스 표시 (최신 브라우저 지원) */
:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: 2px solid #007BFF;
  outline-offset: 2px;
}

/* 숨김 콘텐츠 처리 (스크린 리더용) */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 하이라이트 색상 */
::selection {
  background-color: rgba(0, 123, 255, 0.2); /* 부드러운 배경색 선호 */
  color: #007BFF;
}


.blind{
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0;
}

.web-only { display:none !important; }
.web-only-flex { display:none !important; }
.mobile-only { }
.ts-all { transition: all 0.5s ease; }


body { overflow-x: hidden; }
body.scroll .site-header { background-color: rgba(247, 245, 239, 1.0); }

.wrap { min-width: 295px; background-color:#F7F5EF; padding-top:56px; }

.site-header { position:fixed; left:0; right:0; top:0; height:56px; min-width: 290px; z-index:102; transition: background-color 0.5s ease; background-color:#F7F5EF; border-bottom:1px solid #1C1A1833; }
.site-header__inner { position:relative; display:flex; align-items:center; max-width:1920px; width:100%; height:100%; margin:0 auto; }

/* site-header__logo */
.site-header__logo { display:flex; padding-left:24px; }
.site-header__logo-link { display:block; width:125px; height:34px; background-repeat:no-repeat; background-position:center; background-image:url('../img/common/logo.png'); background-size:100% auto; }

/* gnb mobile */
.site-aside { position:fixed; right:-100%; top:0; width:100%; height:100vh; background-color:#fff; transition: all 0.3s ease; display:block; opacity:0; z-index:10001; }
.site-aside.is-active { right:0; opacity:1; }
.site-aside .site-aside__inner { padding:56px 24px 60px 24px; }
.site-aside .site-aside__head { position:relative; height:57px; display:flex; align-items:center; padding-bottom:24px; border-bottom:1px solid #1C1A1833; }
.site-aside .site-aside__head .site-aside__logo { width: 181px; height:41px; background-repeat: no-repeat; background-position: center;     background-image: url('../img/common/logo-tit.png'); background-size: 100% auto; font-size:0; }
.site-aside .site-aside__head .site-aside__user-btn { position:absolute; top:50%; right: 3.0rem; display:block; width: min(2.0rem, 36px); height: min(2.0rem, 36px); background-repeat: no-repeat; background-position: center; background-image: url('../img/icons/ic_user_bk@2x.png'); background-size: 95% auto; transform:translateY(-50%); }
.site-aside .site-aside__head .site-aside__langs { position:absolute; right:4.0rem; top:50%; transform:translateY(-50%); display:flex; gap:1.0rem; }
.site-aside .site-aside__head .site-aside__langs li { position:relative; font-size:0.983rem; font-weight:700; opacity:0.5; }
.site-aside .site-aside__head .site-aside__langs li:after { content:""; position:absolute; top:50%; right:-0.5rem; transform:translateY(-50%); display:block; width:1px; height:0.8rem; background-color:#ccc; }
.site-aside .site-aside__head .site-aside__langs li a { color:#111;  }
.site-aside .site-aside__head .site-aside__langs li.is-current { opacity:1; }
.site-aside .site-aside__head .site-aside__langs li:last-child:after { display:none; }

.site-aside .site-aside__close { position:absolute; right:0; top:-10px; display:block; width:44px; height:44px; background-repeat:no-repeat; background-position:center; background-image:url('../img/icons/btn_x.png'); background-size:90% auto; outline:none; border:0; cursor:pointer; }

.site-aside .site-aside__body { position:relative; margin-right:-1.2rem; padding-right:1.2rem; height:calc(100vh - 250px); overflow-y:auto; }
.site-aside .aside-nav {  }
.site-aside .aside-nav__list { padding-top:22px; }
.aside-nav__item { }
.aside-nav__item .aside-nav__toggle { position:relative; display:flex; align-items:center; font-size:22px; line-height:1.2; width:100%; font-weight:600; border:0; cursor:pointer; padding:10px 0; font-family: 'Cormorant Garamond', serif; }
/*
.aside-nav__item .aside-nav__toggle:after { content:""; position:absolute; right:0; top:50%; transform:translateY(-50%); display:block; width:min(1.5rem, 30px); height:min(1.5rem, 30px); background-repeat:no-repeat; background-position:center; background-image:url('../img/icons/ic_menu_open.png'); background-size:100% auto; outline:none; border:0; cursor:pointer; }
*/
.aside-nav__item.is-open .aside-nav__toggle { color:#C9A96E; }
/* .aside-nav__item.is-open .aside-nav__toggle:after { background-image:url('../img/icons/ic_menu_close.png');  } */

.aside-nav__item .aside-nav__panel { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.aside-nav__item.is-open .aside-nav__panel { max-height: 600px; /* 충분히 큰 값 */ }

.aside-nav__sublist { padding-bottom:5px;  }
.aside-nav__sublist li { font-size:18px; font-family: 'Cormorant Garamond', serif; }
.aside-nav__sublist li a { display:inline-block; padding:5px 0; }
.aside-nav__sublist li a:hover { color:#C9A96E; }

.aside-nav__item.moment { border-top:1px solid #1C1A1833; padding-top:10px; margin-top:10px; }

.site-aside__footer { margin-top:10px; }
.aside-sns { display:flex; gap:16px; }
.aside-sns__link { width:44px; height:44px; background-repeat:no-repeat; background-position:center; background-size:100% auto; }
.aside-sns__link--instagram { background-image:url('../img/icons/btn_insta.png'); }
.aside-sns__link--kakao { background-image:url('../img/icons/btn_kakao.png'); }


/* site-nav */
.site-nav { position: absolute; right:24px; top:0; display:none; transition: all 0.3s ease; }
.site-nav__list { display: flex; align-items: center; gap: 25px; transition: all 0.3s ease; }
.site-nav__item { position: relative; font-size:18px; font-family: 'Cormorant Garamond', serif; }
.site-nav__link { display: inline-flex; align-items: center; height: 100px; }
.site-nav__col { position: absolute; top: 100%; left:-75px; min-width: 220px; padding: 16px 20px;  background-color: rgba(247, 245, 239, 1.0);  border: 1px solid #ddd; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .25s ease, transform .25s ease, visibility .25s ease; z-index: 100; }
.site-nav__item.is-open .site-nav__col { opacity: 1; visibility: visible; transform: translateY(0); }
.site-nav__subitem + .site-nav__subitem { margin-top: 10px; }
.site-nav__subitem { text-align:center; font-size:18px; }
.site-nav__sublink { display: block; white-space: nowrap; }
.site-nav__sublink:hover { color:#C9A96E; }
.site-nav__item:last-of-type .site-nav__col { left:auto; right:-24px; }



/* site-footer */
.site-footer { border-top:1px solid #ccc9c4; }
.site-footer__inner { position:relative; max-width:1920px; padding:40px 24px; }
.site-footer__brand { flex: 1; }
.site-footer__brand-name { font-size:32px; font-family: 'Cormorant Garamond', serif; line-height:0.9; }
.site-footer__brand-text { font-size:16px; color:#1C1A18CC; margin-top:24px; }
.site-footer__sns { display:flex; gap:16px; margin-top:40px;}
.site-footer__sns-btn { width:44px; height:44px; cursor:pointer; font-size:0; background-repeat:no-repeat; background-position:center; background-size:100% auto; }
.site-footer__sns-btn--instagram { background-image:url('../img/icons/btn_insta.png'); }
.site-footer__sns-btn--kakao { background-image:url('../img/icons/btn_kakao.png'); }

.site-footer__content { margin-top:20px; }
.site-footer__nav { display:flex; gap:56px; }
.site-footer__nav-group { }
.site-footer__nav-title { font-size:20px; font-family: 'Cormorant Garamond', serif; font-weight:500; }
.site-footer__nav-cont { }
.site-footer__nav-list { }
.site-footer__nav-item { font-size:20px; line-height:1.2; font-family: 'Cormorant Garamond', serif; font-weight:500; margin-top:10px; }

.site-footer__info { border-top:1px solid #1C1A1833; padding-top:24px; margin-top:20px; }
.site-footer__info-text { font-size:11px; color:#1C1A18CC; }
.site-footer__info-text span { display:block; margin-bottom:5px; }
.site-footer__policy { font-size:12px; border-top:1px solid #1C1A1833; padding-top:10px; margin-top:24px; }
.site-footer__policy-link { color:#1C1A18CC; }
.site-footer__policy-divider { color:#1C1A18CC; }
.site-footer__copyright { font-size:11px; margin-top:4px; color:#1C1A18CC;  }



/* header__menu-btn */
.menu-btn { position: absolute; right: 24px; top: 50%; width: 44px; height: 44px; border: none; background: none; cursor: pointer; padding: 0; transform: translateY(-50%); }
.menu-btn span { position: absolute; left: 9px; width: 26px; height: 2px; background-color: #1C1A18; transition: all 0.3s ease; }
.menu-btn span:nth-child(1) { top: 50%; transform:translateY(-500%); }
.menu-btn span:nth-child(2) { top: 50%; transform:translateY(-50%); }
.menu-btn span:nth-child(3) { top: 50%; transform:translateY(400%); }
/*
.menu-btn.is-active span:nth-child(1) { top: 16px; transform: rotate(45deg); }
.menu-btn.is-active span:nth-child(2) { opacity: 0; transform: translateX(-20px); }
.menu-btn.is-active span:nth-child(3) { top: 16px; transform: rotate(-45deg); }
*/

