@charset 'utf-8';

/* container */
.container.sub-page { padding: 32px 24px 60px 24px; max-width:1920px; margin:0 auto; }

/* sub-header */ 
 .sub-header { } 

.sub-header--stiff { padding-bottom:0; }
.sub-header--stiff .sub-header__inner { border-bottom:1px solid #1C1A1833; padding-bottom:25px; }

.sub-header--custom { position:relative; background-color:#EBE3D9; padding:16px 24px; margin:-32px -24px 0 -24px; }
.sub-header--custom .sub-header__title { margin-top:0; }



/* 1. DRESS
* * * * * * * * * * * * * * * * * * * * * * * * * * */
.btn-history-back { position:relative; display:flex; align-items:center; gap:8px; font-size:14px; font-family: 'Cormorant Garamond', serif; height:44px; width:fit-content; }
.btn-history-back:before { content:""; display:block; width:19px; height:24px; background-repeat:no-repeat; background-position:center; background-image:url('../img/icons/icon_back_mobile.png'); background-size:100% auto; }
.sub-header__title { font-size:40px; font-family: 'Cormorant Garamond', serif; font-weight:400; line-height:1.1; margin-top:12px; }
.sub-header__title.ko { font-family: 'Pretendard Variable', 'Pretendard', sans-serif; }

/* All 탭일 때 기본 상태 */
.sub-header__brand-back { display: none; }
/* 브랜드 탭 활성화 상태 */
.sub-header.is-brand-mode { padding-bottom:12px; }
.sub-header.is-brand-mode .sub-header__home,
.sub-header.is-brand-mode .sub-header__title { display: none; }
.sub-header.is-brand-mode .sub-header__brand-back { /* display: inline-flex; */ display:flex; }

/* 탭 영역 공통 */
.dress-tab { position: sticky; top: 56px; z-index: 100; display: flex; align-items: stretch; overflow: hidden; height:44px; background-color:#F7F5EF; margin:0 -24px; margin-top:24px; }

/* All 고정 영역 */
.dress-tab__fixed-list { flex: 0 0 auto; display: flex; align-items: center; margin: 0; padding: 0; list-style: none; position: relative; border-right:1px solid #adaca8; z-index: 3; }
.dress-tab__fixed { position: relative; display:flex; height:100%; flex-shrink: 0; }

/* All 제외한 브랜드 탭 스와이프 영역 */
.dress-tab__scroll { flex: 1 1 auto; min-width: 0; width: 100%; max-width: 100%; overflow: hidden; }
.dress-tab__inner { width: 100%; height:100%; min-width: 0; overflow: hidden; }
.dress-tab__list { display: flex; align-items: center; justify-content: space-between !important; margin: 0; gap: 0 !important; padding: 0; list-style: none; width: auto; }
.dress-tab__list .swiper-slide { width: auto !important; flex-shrink: 0; position: relative; }

/* 탭 버튼 */
.dress-tab .button { display:flex; align-items:center; height:100%; font-family: 'Cormorant Garamond', serif; border: none; background: none; font-size: 18px; font-weight:400; color: #1C1A18; white-space: nowrap; padding: 0 20px; cursor: pointer; box-sizing: border-box; }
.dress-tab .button {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

    /* 모바일 길게 누르면 뜨는 컨텍스트 메뉴/콜아웃 차단 */
    -webkit-touch-callout: none;

    /* 모바일 탭 하이라이트 제거 */
    -webkit-tap-highlight-color: transparent;
}
/* 활성화 */
.dress-tab [data-target].is-active button { color: #000; font-weight: 400; }
.dress-tab [data-target].is-active::before { content: ''; position: absolute; left: 4px; right: 4px; bottom: 0; height: 2px; background: #C9A96E; }

/* 콘텐츠 Swiper */
.dress-contents-swiper { overflow: hidden; }
.dress-contents-swiper .swiper-wrapper { align-items: flex-start; }
.dress-contents-swiper .swiper-slide { height: auto; }

/* 브랜드 섹션 */
.dress-brand-section { display: block; width: 100%; opacity: 0; transition: opacity 0.35s ease; }
.dress-brand-section.is-active,
.dress-brand-section.swiper-slide-active { opacity: 1; }
.dress-tab__scroll { flex: 1 1 auto; width: 100%; min-width: 0; overflow: hidden; }
.dress-tab__list .swiper-slide { width: auto; flex-shrink: 0; }

.dress-page .dress-contents-group { position:relative; margin:0 -24px; }
.dress-page .dress-contents-group .contents { margin-top:32px; padding:0 24px; }

/* bride-dress__list */
.bride-dress__list { display:grid; grid-template-columns:repeat(2, 1fr); gap:24px 10px;  }
.bride-dress__list li { }
.bride-dress__list li a { display:block; }
.bride-dress__list a { display: block; -webkit-tap-highlight-color: transparent; }
.bride-dress__list .brand__cover { position: relative; overflow: hidden; }
.bride-dress__list .brand__cover::after { content: ''; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.18); opacity: 0; transition: opacity 0.2s ease; pointer-events: none; }
/* PC hover */
.bride-dress__list a:hover .brand__cover::after { opacity: 1; }
/* 모바일 터치 */
.bride-dress__list a:active .brand__cover::after { opacity: 1; }

.brand__cover { }
.brand__name { font-size:14px; text-align:center; font-family: 'Cormorant Garamond', serif; margin-top:4px; }

/* brand-detail */
.brand-detail { position:relative; }
.brand-detail__title { font-size:40px; line-height:1.1; font-weight:400; font-family: 'Cormorant Garamond', serif; text-transform: uppercase;
}
.brand-detail__title.ko,
.brand-detail__title span.ko { font-family: 'Pretendard Variable', 'Pretendard', sans-serif; }
.brand-detail__name { font-size:16px; line-height:1.3; margin-top:10px; color:#1C1A18CC; }
.brand-detail__desc { font-size:14px; margin-top:24px; color:#1C1A18CC; }
.brand-detail .page-cta { position:absolute; right:0; bottom:0; }

/* brand-detail__visual*/
.brand-detail__visual { position:relative; margin-top:48px; overflow:hidden; }
.brand-detail__visual .swiper-slide { aspect-ratio: 342 / 445; }
.brand-detail__visual .swiper-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.brand-detail__visual .swiper-pagination { position:absolute; right:16px; top:16px; left:auto; display:flex; align-items:center; justify-content:center; width:66px; height:30px; background-color:#1C1A18B2; border-radius:30px; font-size:18px; color:#F7F5EF; font-family: 'Cormorant Garamond', serif;  }

/* related-collection */
.related-collection { position:relative; margin-top:50px; padding-top:56px; }
.related-collection:before { content:""; position:absolute; left:-24px; right:-24px; top:0; display:block; height:1px; background-color:#1C1A1833; }
.related-collection__head { }
.related-collection__title { font-size:28px; line-height:1.10; font-family: 'Cormorant Garamond', serif; font-weight:400; }
.related-collection__desc { font-size:14px; }

.related-collection__list { position:relative; margin-top:24px; }
.related-collection__item { }
.related-collection__item a { display:block; }
.related-collection__cover { aspect-ratio: 166 / 208; overflow:hidden; }
.related-collection__name { text-align:center; font-size:14px; font-family: 'Cormorant Garamond', serif; margin-top:16px; }

.related-collection__list .swiper-pagination { position:static; margin-top:20px; display:flex; gap:10px; align-items:center; justify-content:center; }
.related-collection__list .swiper-pagination .swiper-pagination-bullet { width:24px; border-radius:0; height:2px; }
.related-collection__list .swiper-pagination .swiper-pagination-bullet-active { background-color:#1C1A18; }
.related-collection__list .swiper-button-prev,
.related-collection__list .swiper-button-next { width:44px; height:44px; background-repeat:no-repeat; background-position:center; background-size:100% auto; top:50% !important; margin-top:-64px !important; display:none; }
.related-collection__list .swiper-button-prev svg,
.related-collection__list .swiper-button-next svg { display:none !important; }
.related-collection__list .swiper-button-prev { background-image:url('../img/icons/m_btn_arrow_left.png'); left:0 !important; }
.related-collection__list .swiper-button-next { background-image:url('../img/icons/m_btn_arrow_right.png'); right:0 !important; }

.page-fixed-cta { position:fixed; left:0; bottom:0; right:0; height:69px; display:flex; align-items:center; justify-content:center; font-size:28px; color:#F7F5EF; font-family: 'Cormorant Garamond', serif; z-index:101; border-radius:5px 5px 0 0; background-color:#C9A96E; display: none; }
.page-fixed-cta.is-visible { display: flex; }

.page-cta { width:100%; max-width:260px; height:45px; border:1px solid #1C1A18; display:flex; align-items:center; justify-content:center; font-size:24px; color:#1C1A18; font-family: 'Cormorant Garamond', serif; }
.page-cta:hover { background-color:#C9A96E; color:#fff; border-color:#C9A96E; }

.site-footer.has-fixed-cta { padding-bottom: 69px; }

.dress-contents-swiper { touch-action: pan-y; }
.dress-contents-swiper .swiper-wrapper { will-change: transform; }
.dress-contents-swiper .swiper-slide { height: auto; }

/* modal */
body.is-modal-open { overflow: hidden; }
.modal-contact { position: fixed; inset: 0; z-index: 10001; visibility: hidden; pointer-events: none; }
.modal-contact.is-open { visibility: visible; pointer-events: auto; }
.modal-contact__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.55); opacity: 0; transition: opacity 0.3s ease; }
.modal-contact.is-open .modal-contact__overlay { opacity: 1; }

.modal-contact__panel { position: absolute; left: 0; right: 0; bottom: 0; background: #fff; border-radius: 8px 8px 0 0; transform: translateY(100%); transition: transform 0.3s ease; }
.modal-contact.is-open .modal-contact__panel { transform: translateY(0); }
.modal-contact__head { display: flex; align-items: center; justify-content: center; padding: 21px 10px; background-color:#C9A96E; }
.modal-contact__brand { font-size: 24px; line-height:1.1; font-weight: 400; text-transform: uppercase; color: #F7F5EF; font-family: 'Cormorant Garamond', serif; text-align:center; letter-spacing:-0.5px; }
.modal-contact__brand br { display:none; }
.modal-contact__title { font-size: 18px; line-height:1.1; font-weight: 400; color: #F7F5EF; text-align:center;  }
.modal-contact__close { position:absolute; top:40px; right:40px; width:44px; height:44px; border: 0; background: none; font-size: 0; color: #999; background-image:url('../img/icons/btn_x.png'); background-size:100% auto;  display:none; }

.modal-contact__body { padding: 24px; max-height: 80vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.modal-contact__field { margin-bottom:24px; }

.modal-contact__field dt { font-size: 18px; line-height:1.2; font-weight:400; color: #1C1A18; margin-bottom: 14px; }
.modal-contact__field dt span { }

.modal-contact__input { width: 100%; height: 57px; border: 1px solid #1C1A1899; background-color: transparent; border-radius: 2px; padding: 0 24px; font-size: 16px; outline:none; box-sizing: border-box; }
.modal-contact__input:focus,
.modal-contact__input:not(:placeholder-shown) { border-color: #C9A96E; outline: none; color: #C9A96E; }
/* is-error */
.modal-contact__input.is-error { border-color:#C04A3F; }
.modal-contact__input.is-error::placeholder { color: #C04A3F; }

.modal-contact__date { display: flex; gap: 0; border: 1px solid #1C1A1899; border-radius: 2px;  }
.modal-contact__date .modal-contact__input { flex: 1; border:0; height:52px; padding-right:0; }
.modal-contact__calendar { display:flex; align-items:center; flex: 0 0 auto; width:44px; height:52px; background-color: transparent; font-size: 16px; background-repeat:no-repeat; background-position:center; background-image:url('../img/icons/btn_calender.png'); background-size:100% auto; font-size:0; margin:0 24px; }
.modal-contact__date.has-value { border-color: #C9A96E; }
.modal-contact__date.has-value .modal-contact__input { color: #C9A96E; }
.modal-contact__date.has-value .modal-contact__calendar { background-image:url('../img/icons/btn_calender_select.png');  }

.modal-contact__agree { margin-top: 24px; }
.modal-contact__agree label { position:relative; display: flex; gap: 8px; font-size: 16px; line-height:1.25; letter-spacing:-1px; color: #1C1A1899; }
.modal-contact__agree label input { display:none; }
.modal-contact__agree label span { display:block; padding-left:32px; padding-top:2px;}
.modal-contact__agree label span:before { content:""; position:absolute; left:0; top:0; display:block; width:24px; height:24px; background-repeat:no-repeat; background-position:center; background-size:100% auto; border:1px solid #C9A96E; }
.modal-contact__agree label input:checked + span:before { background-image:url('../img/icons/icon_check.png'); }
.modal-contact__alert { display: none; margin-top: 8px; font-size: 18px; color: #C04A3F; }

.modal-contact__submit { margin-top: 40px; }
.modal-contact__submit-btn { display:flex; align-items:center; justify-content:center; width: 100%; height: 57px; border: 0; background-color: #fff; border:1px solid #1C1A18; color: #1C1A18; font-size: 24px; font-weight: 400; transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease; }
.modal-contact__submit-btn:hover, 
.modal-contact__submit-btn:active {background-color: #C9A96E; border:0; color: #fff; }

.modal-contact .contact-complete { position: absolute; }
.modal-contact .contact-calendar { position: absolute; }


/* modal :: contact-calendar */
.contact-calendar { position: fixed; inset: 0; z-index: 10002; display: flex; align-items: center; justify-content: center; box-sizing: border-box; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 0.25s ease, visibility 0.25s ease; }
.contact-calendar.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
/* 반투명 배경 */
.contact-calendar__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.50); }
/* 캘린더 패널 */
.contact-calendar__panel { position: relative; z-index: 1; width: 100%; max-width: 560px; background: #fff; border-radius: 6px 6px 0 0; overflow: hidden; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18); transform: scale(0.98); opacity: 0; transition: opacity 0.25s ease, transform 0.25s ease; }
.contact-calendar.is-open .contact-calendar__panel { opacity: 1; transform: scale(1); }
/* 상단 */
.contact-calendar__head { display: flex; align-items: center; justify-content: space-between; padding: 24px 32px 20px 32px; }
.contact-calendar__month { margin: 0; font-size: 15px; line-height:1.1; font-weight: 400; font-family: 'Cormorant Garamond', serif; color: #1C1A18; }
.contact-calendar__nav { display: flex; align-items: center; gap: 12px; }
.contact-calendar__nav-btn { width: 22px; height: 22px; border: 0; font-size: 0; position: relative; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.contact-calendar__nav-btn::before { content: ''; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border-top: 2px solid #999; border-right: 2px solid #999; }
.contact-calendar__nav-btn--prev::before { transform: translate(-35%, -50%) rotate(-135deg); }
.contact-calendar__nav-btn--next::before { transform: translate(-65%, -50%) rotate(45deg); }
.contact-calendar__nav-btn:hover,
.contact-calendar__nav-btn:active { }

/* 본문 */
.contact-calendar__body { padding: 0 20px 40px; }
.contact-calendar__table { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: center; }
.contact-calendar__table th { height: 44px; font-size: 15.5px; font-weight: 400; color: #1C1A18CC; font-family: 'Cormorant Garamond', serif; }
.contact-calendar__table th:first-child { color: #d45b5b; }
.contact-calendar__table td { height: 32px; font-size: 14px; font-weight: 400; vertical-align: middle;  font-family: 'Cormorant Garamond', serif; }
.contact-calendar__table td.is-disabled { color: #1C1A1833; }

.contact-calendar__day { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 14px; cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease; -webkit-tap-highlight-color: transparent; }

.contact-calendar__day:hover { background: rgba(201, 169, 110, 0.16); }
.contact-calendar__day:active { background: rgba(201, 169, 110, 0.28); }
.contact-calendar__day.is-selected { background: #C9A96E; color: #fff; }
.contact-calendar__table td.is-disabled .contact-calendar__day,
.contact-calendar__day.is-disabled { color: #ccc; cursor: default; pointer-events: none; }

/* 하단 버튼 */
.contact-calendar__foot { display: flex; }
.contact-calendar__btn { flex: 1; height: 57px; border: 0; outline:none; font-size: 24px; font-weight: 400; cursor: pointer; transition: background-color 0.2s ease; -webkit-tap-highlight-color: transparent; }

.contact-calendar__btn--cancel { background: #B3B0AB; color: #F7F5EF; }
.contact-calendar__btn--confirm { background: #C9A96E; color: #F7F5EF; }
.contact-calendar__btn--cancel:hover,
.contact-calendar__btn--cancel:active { background: #e5e2dc; }
.contact-calendar__btn--confirm:hover,
.contact-calendar__btn--confirm:active { background: #B89455; }


/* modal :: contact-complete */
.contact-complete { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 24px;
box-sizing: border-box; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 0.25s ease, visibility 0.25s ease; }
.contact-complete.is-open { visibility: visible; opacity: 1; pointer-events: auto; }

/* 반투명 배경 */
.contact-complete__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.50); }

/* 완료 팝업 박스 */
.contact-complete__panel { position: relative; z-index: 1; width: 100%; max-width: 486px; padding: 24px 25px; box-sizing: border-box;
background: #fdfbf6; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25); text-align: center; opacity: 0; transform: scale(0.96); transition: opacity 0.25s ease, transform 0.25s ease; }
.contact-complete.is-open .contact-complete__panel { opacity: 1; transform: scale(1); }

/* 체크 아이콘 */
.contact-complete__panel::before { content: ''; display: block; 	width: 44px; height: 44px; margin: 0 auto; border-radius: 50%; background: #C9A96E; background-repeat:no-repeat; background-position:center; background-image:url('../img/icons/ic_baseline-check.png'); background-size:24px auto; }

/* 텍스트 */
.contact-complete__title { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.35; color: #1C1A18; margin-top:24px; }
.contact-complete__text { margin-top: 8px; font-size: 16px; font-weight: 400; line-height: 1.35; color: #333; }

/* 확인 버튼 */
.contact-complete__btn { width: 100%; height: 57px; margin-top: 48px; border: 1px solid #1C1A18; background-color:#fff; color: #111; font-size: 24px; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease; -webkit-tap-highlight-color: transparent; }
.contact-complete__btn:hover,
.contact-complete__btn:active { background: #111; color: #fff; }


/* 2. Studio
* * * * * * * * * * * * * * * * * * * * * * * * * * */
.sub-contents { margin-top:32px; } 
.studio-list { display:grid; grid-template-columns:repeat(2, 1fr); gap:24px 10px; }
.studio-list__item { }
.studio-card { }
.studio-card__cover { overflow:hidden; }
.studio-card__name { font-size:14px; margin-top:4px; }

/* 상세 */
.studio .related-collection__cover { aspect-ratio: 220 / 256; }
.studio .related-collection__name { font-family: 'Pretendard Variable', 'Pretendard', sans-serif; }


/* 3. Hall
* * * * * * * * * * * * * * * * * * * * * * * * * * */
.common-tab { position:relative; margin:0 -24px; }
.common-tab__list { display:flex; }
.common-tab__item { position:relative; flex: auto; font-size:18px; }
.common-tab__item:after { content:""; position:absolute; left:8px; right:8px; bottom:0; display:block; height:1px; background-color:#C9A96E; opacity:0;  transition: opacity 0.2s ease; }
.common-tab__item.is-active:after { opacity:1; }
.common-tab__link { display:flex; align-items:center; justify-content:center; width:100%; height:44px; }
.common-tab__link.en { font-family: 'Cormorant Garamond', serif; }

.hall-list { display:grid; grid-template-columns:repeat(1, 1fr);  gap:64px; }
/*.hall-list__item { display: none; }*/
.hall-list__item.is-visible { display: block;  }

.hall-list__thumb { overflow: hidden; aspect-ratio: 342 / 240; border-radius:4px; }
.hall-list__thumb img { width: 100%; height: 100%; object-fit: cover; }
.hall-list__info { margin-top:8px; }
.hall-list__name { font-size:18px; line-height:1.2; font-weight:500; }
.hall-list__details { display:flex; font-size:16px; line-height:1.2; color:#1C1A1899; gap:15px; margin-top:8px; }
.hall-list__tag { position:relative; }
.hall-list__tag:after { content:"|"; position:absolute; right:-10px; top:0; }
.hall-list__tag:last-child:after { display:none; }

.hall-list.is-all-view { grid-template-columns:repeat(2, 1fr); gap:32px 8px; } 
.hall-list.is-all-view .hall-list__thumb { aspect-ratio: 1 / 1;  }
.hall-list.is-all-view .hall-list__info { margin-top:4px; }
.hall-list.is-all-view .hall-list__name { font-size:14px; }
.hall-list.is-all-view .hall-list__details { font-size:11px; margin-top:4px; gap:10px; }
.hall-list.is-all-view .hall-list__tag:after { right:-7px; }

.hall-more { margin-top:32px; }

/* 상세 */
.sub-header .brand-detail { margin-top:12px; }

.common-tab.is-swiper { position:relative; margin-top:24px; }
.common-tab.is-swiper .common-tab__item { width: fit-content; flex:none; }
.common-tab.is-swiper .common-tab__link { padding:0 24px; }

.sub-contents__title { font-size:18px; line-height:1.35; margin-bottom:14px; }

.info-list { display:grid; grid-template-columns:repeat(1, 1fr); gap:24px;  }
.info-list .info-list__group { display:grid; grid-template-columns:repeat(2, 1fr); gap:24px; }
.info-list .info-list__group.is-details { grid-template-columns:repeat(1, 1fr); }
.info-list__item { }
.info-list__label { font-size:18px; font-weight:500; line-height:1.2; }
.info-list__value { font-size:14px; color:#1C1A18CC; margin-top:8px; }
/*
.info-list__item.is-address { grid-column: 1 / -1; }
.info-list__item.is-guide { grid-column: 1 / -1; }
*/
.hall-gallery-area { border-top:1px solid #1C1A1833; margin-top:48px; padding-top:48px; }
/* .hall-gallery .mainSwiper  > .swiper-wrapper { gap: 104px } */


.section-hall-location { margin-top:48px; }
.map-container { overflow:hidden; height:250px; transition: max-height 0.4s ease-in-out, opacity 0.3s ease; opacity: 1; max-height: 500px; /* 지도가 충분히 보일 수 있는 높이 */ }
.map-container.is-collapsed { max-height: 0; opacity: 0; }
.map-container #ncpMap { width: 100% !important; height: 100% !important; }
.map-container .root_daum_roughmap { position:relative; margin:-1px; width: auto !important; height: 100% !important; }
.map-container .root_daum_roughmap .wrap_map { width: 100% !important; height: 100% !important; }

.map-toggle-box { max-width:1280px; margin:0 auto; margin-top:4px; }
.map-toggle-box.noline { border-bottom:0; }
.btn-map-toggle { display: flex; align-items: center; justify-content: center; width: 100%; height:44px; background: transparent; border: 0; cursor: pointer; font-size:12px; max-width:1280px; margin:0 auto; }
.btn-map-toggle span { display:flex; height:100%; align-items:center; position:relative; gap:4px; }
.btn-map-toggle span::after { content:""; display:block; width:24px; height:24px; background-repeat:no-repeat; background-position:center; background-image:url('../img/icons/ic_toggle_arrow@2x.png'); background-size:50% auto; transition: transform 0.3s ease; }
.btn-map-toggle.is-closed span::after { transform: rotate(180deg); }



/* 탭 콘텐츠 제어 */
.hall-detail-group { display: none; }
.hall-detail-group.is-active { display: block; }

/* hall-gallery */
.hall-gallery { position:relative; }
.hall-gallery .swiper-pagination { position:absolute; right:16px; top:16px; left:auto; display:flex; align-items:center; justify-content:center; width:66px; height:30px; background-color:#1C1A18B2; border-radius:30px; font-size:18px; color:#F7F5EF; font-family: 'Cormorant Garamond', serif;  }

.gallery-thumbs { position:relative; max-width:1280px; margin:0 auto; margin-top:36px; padding:0 95px; overflow:hidden; }
.gallery-thumbs .swiper-wrapper { align-items:center; aspect-ratio: 1090 / 167; /* height:167px;*/ }
.gallery-thumbs .swiper-slide { display:flex; align-items:center; width:calc(25%  - 24px); height:100%; opacity: 0.5; transition: opacity 0.4s ease; }
.gallery-thumbs .swiper-slide img { display: block; width: 100%; height: 100%; object-position: center; object-fit: cover; }
.gallery-thumbs .swiper-slide .thumbs-box { display:block; width: 100%; height:80%; overflow:hidden; transition: all 0.3s ease; }
.gallery-thumbs .swiper-slide-thumb-active { opacity: 1; }
.gallery-thumbs .swiper-slide-thumb-active .thumbs-box { border: 5px solid #C9A96E; height:100%; }

.gallery-thumbs .swiper-button-prev,
.gallery-thumbs .swiper-button-next { width:44px; height:44px; background-repeat:no-repeat; background-position:center; background-size:100% auto; top:50% !important; margin-top:-22px !important; }
.gallery-thumbs .swiper-button-prev svg,
.gallery-thumbs .swiper-button-next svg { display:none !important; }
.gallery-thumbs .swiper-button-prev { background-image:url('../img/icons/m_btn_arrow_left.png'); left:0 !important; }
.gallery-thumbs .swiper-button-next { background-image:url('../img/icons/m_btn_arrow_right.png'); right:0 !important; }


/* 스크린 리더용 숨김 타이틀 */
.skip { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }




/* 4. PARTNERS
* * * * * * * * * * * * * * * * * * * * * * * * * * */
.partners .sub-header { padding-bottom:12px; }
.partners .sub-contents { margin-top:48px; }
.brand-detail__category { font-size:12px; font-family: 'Cormorant Garamond', serif; margin-bottom:10px; }
.brand-detail__category.ko { font-family: 'Pretendard Variable', 'Pretendard', sans-serif; }
.brand-detail__summary { font-size:14px; color:#1C1A18CC; margin-top:24px; }

.brand-detail__visual.is-partners { max-width:1280px; margin:0 auto; margin-top:48px; }
.brand-detail__visual.is-partners .swiper-slide { aspect-ratio: 342 / 357; }

.event-banner { position:relative; margin:0 -24px; margin-top:96px; border-top:1px solid #C9A96E; border-bottom:1px solid #C9A96E;  }

/* follow-instagram */
.follow-instagram { position:relative; margin-top:40px; display:none; }
.follow-instagram__head { }
.follow-instagram__title { font-size:28px; line-height:1.10; font-family: 'Cormorant Garamond', serif; font-weight:400; }
.follow-instagram__desc { font-size:14px; }

.follow-instagram__list { position:relative; margin-top:8px; }
.follow-instagram__item { }
.follow-instagram__item a { display:block; }
.follow-instagram__cover { aspect-ratio: 1 / 1; overflow:hidden; }
.follow-instagram__name { text-align:center; font-size:14px; font-family: 'Cormorant Garamond', serif; margin-top:16px; }

.follow-instagram__list .swiper-pagination { position:static; margin-top:20px; }
.follow-instagram__list .swiper-pagination .swiper-pagination-bullet { width:24px; border-radius:0; height:2px; }
.follow-instagram__list .swiper-pagination .swiper-pagination-bullet-active { background-color:#1C1A18; }
.follow-instagram__list .swiper-button-prev,
.follow-instagram__list .swiper-button-next { width:44px; height:44px; background-repeat:no-repeat; background-position:center; background-size:100% auto; top:50% !important; margin-top:-64px !important; }
.follow-instagram__list .swiper-button-prev svg,
.follow-instagram__list .swiper-button-next svg { display:none !important; }
.follow-instagram__list .swiper-button-prev { background-image:url('../img/icons/m_btn_arrow_left.png'); left:0 !important; }
.follow-instagram__list .swiper-button-next { background-image:url('../img/icons/m_btn_arrow_right.png'); right:0 !important; }




/* 5. MOMENT
* * * * * * * * * * * * * * * * * * * * * * * * * * */
.moment-list { display: grid; grid-template-columns:repeat(1, 1fr); gap: 8px; }
.moment-list__item { display: none; }
.moment-list__item.is-visible { display: block;  }
.moment-list__thumb { flex-shrink: 0; overflow: hidden; aspect-ratio: 34 / 20; }
.moment-list__thumb img { width: 100%; height: 100%; object-fit: cover; }
.moment-list__info { flex: 1; border:1px solid #1C1A1899; border-top:0; padding:10px 16px; }
.moment-list__date { font-size: 18px; font-family: 'Cormorant Garamond', serif; color: #1C1A18; }
.moment-list__subject { font-size: 20px; font-weight: 500; color: #222; margin-top: 4px; }
.moment-list__desc { font-size: 16px; line-height: 1.5; color: #1C1A18CC; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; text-overflow: ellipsis; margin-top: 4px;  }
.moment-more { text-align: center; margin-top:32px; }
.moment-more.is-hidden { display: none; }
.btn-view-more { display:flex; width:100%; height:40px; align-items:center; justify-content:center;  border:0; font-size: 32px;  font-family: 'Cormorant Garamond', serif; cursor: pointer; color:#1C1A18CC; font-weight:600;  }


/* Details */
.view-article { }
.view-article__header {  }
.view-article__date {  font-size:24px; color:#1C1A18CC; font-family: 'Cormorant Garamond', serif; }
.view-article__title { font-size:18px; margin-top:4px; font-weight:400; }
.view-article__body { padding-bottom:32px; margin-top:24px; }
.view-article__img { overflow:hidden; margin-bottom:24px; }
.view-article__text { font-size:14px; color:#1C1A18CC; }
.view-article__footer { margin-top:32px; display:flex; justify-content: space-between; }

.btn--white { display:flex; align-items:center; justify-content:center; width:120px; height:44px; font-size:16px; border:1px solid #1C1A18; font-family: 'Cormorant Garamond', serif; }
.btn--black { }
.btn--gray { }

.post-nav { position:relative; margin:0 -24px; background-color:#F0EEE9; padding:10px 24px; box-sizing:border-box; margin-top:64px; }
.post-nav__list { }
.post-nav__item { display:grid; grid-template-columns:60px 1fr 70px; align-items:center; height:45px; margin-bottom:4px; }
.post-nav__label { display:block; font-size:10px; color:#1C1A18CC; }
.post-nav__link { display:block; font-size:14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.post-nav__date { display:block; font-size:10px; color:#1C1A18CC; text-align:right; }
.post-nav__item.prev { }
.post-nav__item.next { margin-bottom:0; }



/* 6. EVENT
* * * * * * * * * * * * * * * * * * * * * * * * * * */
.sub-header__location { display:none; }
.sub-header__location .sub-header__location-item { position:relative; font-size:20px; font-weight:400; padding-left:17px; margin-left:8px; font-family: 'Cormorant Garamond', serif; color:#1C1A1899; }
.sub-header__location .sub-header__location-item.ko { font-family: 'Pretendard Variable', 'Pretendard', sans-serif; }
.sub-header__location .sub-header__location-item:before { position:absolute; left:0; top:50%; transform:translateY(-50%); content:"/"; color:#1C1A1899; }
.sub-header__location .sub-header__location-item.home { padding-left:0; margin-left:0; }
.sub-header__location .sub-header__location-item.home:before { display:none; }
.sub-header__location .sub-header__location-item.current { color:#1C1A18;  }

.event-info { display:grid; grid-template-columns:repeat(1, 1fr); gap:16px; }
.event-info__card { position:relative; padding:16px 0; }
.event-info__card:before { content:""; position:absolute; left:28px; right:28px; top:-8px; display:block; height:1px; background-color:#1C1A1833; }
.event-info__card:first-child:before { display:none; }

.event-info__header { }
.event-info__title { font-size:20px; font-family: 'Cormorant Garamond', serif; line-height:1.1; }
.event-info__desc { font-size:14px;}
.event-info__list { display:grid; grid-template-columns:repeat(2, 1fr); gap:4px; margin-top:10px; }
.event-info__item { }
.event-info__num { position:relative; font-size:16px; font-family: 'Cormorant Garamond', serif; }
.event-info__content { padding-left:22px; margin-top:5px; }
.event-info__platform { font-size:16px; font-family: 'Cormorant Garamond', serif; }
.event-info__benefit { font-size:12px; color:#1C1A18CC; margin-top:4px; }
.event-info__benefit em { font-family: 'Cormorant Garamond', serif; font-style:normal; }

.event-info__item .event-info__num:after { position:absolute; left:20px; top:0; content:""; display:inline-block; width:24px; height:24px; background-repeat:no-repeat; background-position:center; background-size:100% auto; }
.event-info__item.is-instagram .event-info__num:after { background-image:url('../img/icons/pc_icon_insta.png'); }
.event-info__item.is-blog .event-info__num:after { background-image:url('../img/icons/pc_icon_naver.png'); }

.review-event-banner { position:relative; margin:0 -24px; margin-top:32px; }

.event-notice { background-color:#F0EEE9; position:relative; margin:0 -24px; padding:24px; margin-top:48px; }
.event-notice__inner { position:relative; max-width:1400px; margin:0 auto; }
.event-notice__title { font-size:20px; font-family: 'Cormorant Garamc-application__titleond', serif; }
.event-notice__list { margin-top:8px; }
.event-notice__list li {  font-size:12px; margin-top:4px; color:#1C1A18CC; }
.event-notice__list li .num  { }
.event-notice__list li .num:after { content:"]"; }
.event-notice__list li .text  { }

.c-application { margin-top:48px; }
.c-application__header { margin-bottom:48px; }
.c-application__title { font-size:40px; font-weight:400; line-height:1.1; }
.c-application__title br { display:none; }
.c-application__summary { font-size:16px; margin-top:16px; color:#1C1A18CC; }
.c-application__summary b { font-weight:500; }

.c-form { }
.input-group { }
.input-item { margin-bottom:30px; }
.input-item__label { font-size:18px; }
.input-item__label label { }
.input-item__field { margin-top:15px; }

.c-input { width: 100%; height: 57px; border: 1px solid #1C1A1899; background-color: transparent; border-radius: 2px; padding: 0 24px; font-size: 16px; outline:none; box-sizing: border-box; }
.c-input:focus,
.c-input:not(:placeholder-shown) { border-color: #C9A96E; outline: none; color: #C9A96E; }
/* is-error */
.c-input.is-error { border-color:#C04A3F; }
.c-input.is-error::placeholder { color: #C04A3F; }

.c-textarea { display:block; width: 100%; height:226px; border: 1px solid #1C1A1899; background-color: transparent; border-radius: 2px; padding: 36px 24px; font-size: 16px; outline:none; box-sizing: border-box; }
.c-textarea:focus { border-color: #C9A96E; outline: none; color: #C9A96E; }

.c-form__agree { margin-top: 32px; }
.c-form__agree label { position:relative; display: flex; gap: 8px; font-size: 16px; line-height:1.25; letter-spacing:-1px; color: #1C1A1899; }
.c-form__agree label input { display:none; }
.c-form__agree label span { display:block; padding-left:32px; padding-top:4px; min-height:24px; }
.c-form__agree label span:before { content:""; position:absolute; left:0; top:0; display:block; width:24px; height:24px; background-repeat:no-repeat; background-position:center; background-size:100% auto; border:1px solid #1C1A1899; border-radius:1px; }
.c-form__agree label input:checked + span:before { background-image:url('../img/icons/icon_check.png'); border:1px solid #C9A96E; }
.c-form__alert { display: none; margin-top: 8px; font-size: 16px; color: #C04A3F; }

.c-form__submit { margin-top: 72px; }
.submit-btn { display:flex; align-items:center; justify-content:center; width: 100%; height: 57px; border: 0; background-color: transparent; border:1px solid #1C1A18; color: #1C1A18; font-size: 24px; font-weight: 400; transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease; }
.submit-btn:hover, 
.submit-btn:active {background-color: #C9A96E; border:0; color: #fff; }

.custom-placeholder-wrap { position: relative; }
.custom-placeholder { position: absolute; top: 36px; left: 24px; right:24px;  color: #1C1A1899; pointer-events: none; /* 클릭 시 textarea가 클릭되도록 */
font-size: 16px; line-height: 1.2; }
.custom-placeholder small { display: block; font-size: 12px;  margin-top: 10px; }
/* 텍스트 입력 시 가짜 placeholder 숨기기 */
.c-textarea.is-value + .custom-placeholder { display: none; }



/* 7. ABOUT
* * * * * * * * * * * * * * * * * * * * * * * * * * */ 
.container.our-story { padding-top:0; padding-bottom:0; }
.story-intro { }
.story-intro .contents { padding:32px 0 60px 0; }
.story-intro__header { position:relative; }
.story-intro__title { position:absolute; left:0; bottom:-30px; font-size:80px; line-height:0.8; font-weight: 400; font-family: 'Cormorant Garamond', serif; color: #1C1A18;  z-index:10; display:none; }
.story-intro__img { position:relative; margin:0 -24px; }

.story-intro__content { margin-top:40px; }
.story-intro__slogan { font-size:18px; font-weight:700; }
.story-intro__description { font-size:14px; color:#1C1A18CC; margin-top:40px; display:grid; grid-template-columns:repeat(1, 1fr); gap:20px; }

.story-philosophy { background-color:#F8F4EB; }
.story-philosophy .contents { padding:60px 0; }
.story-philosophy__title { font-size:40px; line-height:1.0;  font-weight: 400; font-family: 'Cormorant Garamond', serif; color: #1C1A18; }
.story-philosophy__sub-text { font-size:16px; margin-top:8px; }
.story-philosophy__sub-text .en { font-family: 'Cormorant Garamond', serif; }

.story-philosophy__slider { position:relative; margin-top:32px; }
.philosophy-card { padding:0 10px; }
.philosophy-card__visual { aspect-ratio: 1 / 1; overflow:hidden; }
.philosophy-card__content { margin-top:24px; }
.philosophy-card__label { font-size:18px; font-family: 'Cormorant Garamond', serif; font-weight:700; }
.philosophy-card__desc { font-size:14px; line-height:1.15; }

.story-philosophy__slider .swiper-pagination { position:static; margin-top:30px; }
.story-philosophy__slider .swiper-pagination .swiper-pagination-bullet { }
.story-philosophy__slider .swiper-pagination .swiper-pagination-bullet-active { background-color:#1C1A18;  }

.story-cta { position:relative; overflow: hidden; margin:0 -24px; }
.story-cta::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: url('../img/contents/bg_story_cta.jpg'); background-size: cover; background-position: center; opacity: 0.65; z-index: 0;  }
.story-cta .contents { position:relative; padding: 60px 24px; z-index:1; }
.story-cta__header { max-width:1920px; margin:0 auto; }
.story-cta__title { font-size:80px; line-height:1.0; font-family: 'Cormorant Garamond', serif; font-weight:400; }
.story-cta__title .t-line1 { text-align:left; }
.story-cta__sub-text { font-size:18px; color:#1C1A18CC; margin-top:24px; }
.story-cta__action { margin-top:40px; }
.story-cta__action .btn-contact { display:flex; height:55px; align-items:center; justify-content:center; font-size:24px; border:1px solid #1C1A18; font-family: 'Cormorant Garamond', serif; font-weight:600; }


/* Location */
.location-intro { padding-top:24px; }
.location-intro__eng { font-size:28px;  font-family: 'Cormorant Garamond', serif; }
.location-intro__kor { font-size:18px; color:#1C1A18CC; margin-top:8px; }

.location-info { margin-top:62px; }
.location-info__item { margin-top:16px; }
.location-info__item dt { font-size:18px;  font-family: 'Cormorant Garamond', serif; }
.location-info__item dd { font-size:14px; color:#1C1A18CC; margin-top:8px; }
.location-info__item.address dd { font-weight:500; }
.location-info__item.tel { display:flex; gap:20px; align-items:center; margin-top:4px; }
.location-info__item.tel dt { font-size:14px; }
.location-info__item.tel dd { margin-top:0; }

#map { padding-top:56px; border-top:1px solid #1C1A1833; max-width:1720px; margin:0 auto; margin-top:56px; }
#map .map-inner { overflow:hidden; height:201px; }
#map .root_daum_roughmap { position:relative; margin:-1px; width: auto !important; height: 100% !important; }
#map .root_daum_roughmap .wrap_map { width: 100% !important; height: 100% !important; }




/* 8. CONTACT
* * * * * * * * * * * * * * * * * * * * * * * * * * */ 
.contact .c-application { margin-top:16px; }



/* 9. 약관
* * * * * * * * * * * * * * * * * * * * * * * * * * */ 
/* terms-container */
.terms-container { font-size:15px; }
.terms-container h2 { margin-bottom: 40px; }
.terms-container h3 { padding-bottom: 8px; margin-top: 40px; }
.terms-container h4 { margin-top: 20px; margin-bottom: 8px; }
.terms-container p { margin: 0 0 10px 0; text-align: justify; }
.terms-container ul, 
.terms-container ol {
	margin-top: 5px; margin-bottom: 15px; padding-left: 20px; }
.terms-container li { margin-bottom: 5px; }
.terms-container .supplement { margin-top: 40px; border-top: 1px dashed #ccc; padding-top: 20px; }
