/* =============================================================
   2026 대구정원박람회 - common.css
   디자인 토큰 + 헤더/GNB/푸터/서브비주얼/브레드크럼/공통 버튼
   레퍼런스(프리미엄 스크롤형) 구조 + Garden Green 테마
   ============================================================= */

/* --- Design Tokens --- */
:root{
    /* Main — taekwanggroup.co.kr 기준: 미니멀 B&W + 샴페인 골드 포인트 */
    --color-garden:#b4985a;     /* Champagne Gold (브랜드 포인트, Taekwang --color-1) */
    --color-leaf:#cdb582;       /* Light Gold (다크 배경 위 액센트) */
    --color-beige:#eae3d2;      /* Natural Beige */
    /* Sub */
    --color-flower:#e59fb9;     /* Flower Pink */
    --color-sky:#79c3e0;        /* Sky Blue */
    --color-ivory:#fafafa;      /* Off-white Paper */
    /* Point */
    --color-forest:#1e1d1f;     /* Near-black (다크 섹션) */

    /* 시스템 매핑 */
    --color-primary:var(--color-garden);
    --color-primary-dark:#9a7f44;
    --color-primary-light:#f4efe4;
    --color-secondary:#86868b;
    --color-text:#1e1d1f;
    --color-text-sub:#666666;
    --color-text-muted:#999999;
    --color-border:#e5e5e5;
    --color-bg:#ffffff;
    --color-bg-paper:var(--color-ivory);
    --color-error:#e02020;

    --font-sans:'NanumSquareNeoVariable','NanumSquareNeo','Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;
    --font-display:'Poppins','NanumSquareNeoVariable',sans-serif;

    --radius:0px;
    --radius-card:24px;
    --shadow-1:0 1px 6px rgba(0,0,0,.06);
    --shadow-card:0 -8px 28px rgba(0,0,0,.05),0 30px 80px rgba(0,0,0,.10);

    --container-max:1400px;
    --header-h:80px;
    --section-py:120px;
    --grid-gutter:24px;
}
@media screen and (max-width:1199.98px){:root{--header-h:60px}}
@media screen and (max-width:1023.98px){:root{--section-py:80px}}
@media screen and (max-width:575.98px){:root{--section-py:56px}}

/* --- Reset --- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
/* Lenis(데스크톱 부드러운 스크롤) 활성 시 CSS smooth 비활성화 — 이중 스무딩 충돌 방지 */
html.lenis,html.lenis-smooth{scroll-behavior:auto}
.lenis.lenis-smooth{scroll-behavior:auto}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
body{font-family:var(--font-sans);font-weight:400;font-size:1.0625rem;line-height:1.65;color:var(--color-text);background:var(--color-bg);overflow-x:hidden}
:lang(ko){letter-spacing:-0.02em}
a{text-decoration:none;color:inherit}
ul,ol{list-style:none}
img{max-width:100%;display:block}
button{border:none;background:none;cursor:pointer;font-family:inherit;border-radius:var(--radius)}
address{font-style:normal}
h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-0.02em;line-height:1.25}
.color-point{color:var(--color-primary);font-weight:600}
.container-xxl{max-width:var(--container-max);margin-inline:auto;width:100%}

/* 공통 버튼 (pill) */
.btn-pill{display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 30px;border-radius:999px;
    font-size:1rem;font-weight:600;transition:all .35s cubic-bezier(.22,1,.36,1)}
.btn-pill--solid{background:var(--color-primary);color:#fff}
.btn-pill--solid:hover{background:var(--color-primary-dark)}
.btn-pill--line{border:1.5px solid var(--color-primary);color:var(--color-primary)}
.btn-pill--line:hover{background:var(--color-primary);color:#fff}
.btn-pill--ghost{border:1.5px solid rgba(255,255,255,.6);color:#fff}
.btn-pill--ghost:hover{background:#fff;color:var(--color-primary-dark);border-color:#fff}

.btn-view-all{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:600;color:var(--color-text);transition:gap .3s,color .3s}
.btn-view-all:hover{gap:12px;color:var(--color-primary)}


/* =============================================================
   HEADER (레퍼런스 #header 패턴 + 메가메뉴)
   ============================================================= */
.header{z-index:1000;position:fixed;top:0;left:0;width:100dvw;transition:all .5s cubic-bezier(.33,1,.68,1);transform:translateY(-100%)}
.header.show{transform:translateY(0)}
html[data-scroll-diretion="down"] .header{transform:translateY(-100%)}

.header-inner{position:relative;z-index:10;background:#fff;border-bottom:1px solid rgba(20,67,42,.06);transition:background .5s cubic-bezier(.33,1,.68,1),border-color .5s}
/* 데스크톱(≥1200px): 헤더 바 높이 81px 고정 (row 80px + border 1px). <1200px 은 모바일 헤더(--header-h 60px) 라 제외 */
@media(min-width:1200px){.header-inner{height:81px}}

/* Logo */
.header-logo{display:inline-flex;align-items:center;gap:10px;height:var(--header-h)}
.header-logo .logo-mark{width:34px;height:34px;flex:0 0 auto}
.header-logo .logo-mark svg{width:100%;height:100%;display:block}
/* 로고 이미지: 흰 헤더=초록 로고 / 다크(투명) 헤더=흰 로고 */
.logo-img{height:50px;width:auto;display:block}
@media(max-width:1023.98px){.logo-img{height:26px}}
.logo-img--light{display:none}
body:not(.header-sub-open) .header[data-header-theme="dark"] .logo-img--dark{display:none}
body:not(.header-sub-open) .header[data-header-theme="dark"] .logo-img--light{display:block}
.logo-text{font-family:var(--font-display);font-size:1.18rem;font-weight:700;line-height:1.05;color:var(--color-primary-dark);transition:color .5s cubic-bezier(.33,1,.68,1)}
.logo-text small{display:block;font-size:.62rem;font-weight:600;letter-spacing:.12em;color:var(--color-primary);transition:color .5s}

/* GNB 중앙 absolute */
.gnb{position:absolute;top:0;left:0;right:0;height:var(--header-h);display:flex;align-items:center;justify-content:center;pointer-events:none}
.gnb ul{pointer-events:auto}
.gnb-d1-item{cursor:pointer;min-width:150px;height:var(--header-h);padding-inline:26px;display:flex;align-items:center;justify-content:center}
/* 1200~1399px: 중앙 GNB 가 좌측 로고와 겹치지 않도록 항목 폭 압축 */
@media(min-width:1200px) and (max-width:1399.98px){.gnb-d1-item{min-width:auto;padding-inline:16px}}
.gnb-d1-link{position:relative;display:flex;align-items:center;gap:6px}
.gnb-d1-label{position:relative;text-align:center;font-size:1.12rem;font-weight:600;line-height:100%;color:var(--color-text);transition:all .5s cubic-bezier(.33,1,.68,1)}
.gnb-d1-label::after{content:"";position:absolute;z-index:0;top:-10px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:999px;background:var(--color-leaf);opacity:0;transition:all .5s cubic-bezier(.33,1,.68,1);pointer-events:none}
.gnb-d1-item.hover .gnb-d1-label,.gnb-d1-item:hover .gnb-d1-label{color:var(--color-primary)}
.gnb-d1-item.hover .gnb-d1-label::after,.gnb-d1-item:hover .gnb-d1-label::after{opacity:1}
.gnb-d1-item.is-active .gnb-d1-label{color:var(--color-primary)}

/* Sub-GNB 메가 드롭다운 */
.sub-gnb{position:relative;z-index:5;background:#fff;overflow:hidden;height:0;transition:all .5s cubic-bezier(.33,1,.68,1)}
.sub-gnb-line-top{pointer-events:none;border-top:1px solid var(--color-border);opacity:0;transition:opacity .5s cubic-bezier(.33,1,.68,1)}
.header.header-sub-open .sub-gnb-line-top{opacity:1}
.sub-gnb-line-bottom{pointer-events:none;border-top:1px solid var(--color-border)}
.sub-gnb-col{min-width:150px;padding:26px 16px 38px;transition:all .5s cubic-bezier(.33,1,.68,1)}
.sub-gnb-col + .sub-gnb-col{border-left:1px solid var(--color-border)}
.sub-gnb-col.hover,.sub-gnb-col:hover{background-color:var(--color-primary-light)}
.sub-gnb-d2-wrap a{color:var(--color-text-sub);font-size:.98rem;font-weight:400;line-height:100%;transition:color .3s,text-decoration .3s}
.sub-gnb-d2-wrap a:hover{color:var(--color-primary);text-decoration:underline;text-underline-offset:4px;font-weight:600}
.sub-gnb-sns a{transition:color .3s}
.sub-gnb-sns a:hover{color:var(--color-primary)!important}

/* Dark Theme (메인 비주얼 위 투명 헤더) */
body:not(.header-sub-open) .header[data-header-theme="dark"] .header-inner{background:transparent;border-color:transparent;position:relative}
/* 상단 메뉴 가독성 — 헤더 뒤 상단 그라데이션 (다크 헤더일 때만) */
body:not(.header-sub-open) .header[data-header-theme="dark"] .header-inner::before{content:"";position:absolute;left:0;top:0;width:100%;height:240px;pointer-events:none;z-index:0;background:linear-gradient(180deg,rgba(6,22,14,.62) 0%,rgba(6,22,14,.28) 45%,rgba(6,22,14,0) 100%)}
body:not(.header-sub-open) .header[data-header-theme="dark"] .logo-text{color:#fff}
body:not(.header-sub-open) .header[data-header-theme="dark"] .logo-text small{color:#cfe6d6}
body:not(.header-sub-open) .header[data-header-theme="dark"] .logo-mark svg path{fill:#fff}
body:not(.header-sub-open) .header[data-header-theme="dark"] .gnb-d1-label{color:#fff}
body:not(.header-sub-open) .header[data-header-theme="dark"] .lang-current{color:#fff}
body:not(.header-sub-open) .header[data-header-theme="dark"] .btn-hamburger span{background:#fff}

body.header-sub-open .header{transform:translateY(0)!important}
html[data-scroll-diretion="down"] body.header-sub-open .header{transform:translateY(0)!important}

/* Header bg overlay */
.header-bg{z-index:20;pointer-events:none;position:fixed;top:0;left:0;width:100dvw;height:100dvh;background:rgba(11,30,18,.55);opacity:0;transition:all .5s cubic-bezier(.33,1,.68,1)}
.header-bg.on{opacity:1;pointer-events:auto}

/* Header right */
.header-util{display:flex;align-items:center;gap:14px}
.lang-sel-box{position:relative}
/* 언어 선택기 숨김 (Bootstrap d-lg-block 의 !important 를 덮기 위해 !important 사용) */
.lang-sel-box{display:none!important}
.lang-current{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--color-text);transition:color .5s}
.lang-options{width:60px;padding-block:10px;position:absolute;top:31px;left:50%;transform:translateX(-50%);border-radius:6px;border:1px solid var(--color-border);background:#fff;box-shadow:var(--shadow-1);display:none;z-index:30}
.lang-options.is-open{display:block}
.lang-option{height:30px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.9rem;font-weight:600;transition:background .3s}
.lang-option.on,.lang-option:hover{background:var(--color-primary-light);color:var(--color-primary)}
.header-cta{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:999px;background:var(--color-primary);color:#fff;font-size:.9rem;font-weight:600;transition:background .3s}
.header-cta:hover{background:var(--color-primary-dark)}
body:not(.header-sub-open) .header[data-header-theme="dark"] .header-cta{background:rgba(255,255,255,.16);backdrop-filter:blur(6px)}
/* 헤더 SNS 아이콘 (CTA 대체) */
.header-sns{display:flex;align-items:center;gap:4px}
.header-sns a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;color:var(--color-text-sub);transition:color .3s,background .3s}
.header-sns a:hover{color:var(--color-primary);background:var(--color-primary-light)}
body:not(.header-sub-open) .header[data-header-theme="dark"] .header-sns a{color:#fff}
body:not(.header-sub-open) .header[data-header-theme="dark"] .header-sns a:hover{background:rgba(255,255,255,.16)}

.btn-hamburger{flex-direction:column;gap:5px;padding:8px}
.btn-hamburger span{display:block;width:24px;height:2px;background:var(--color-text);transition:all .3s}

/* ── 모바일 헤더(<1200px): 상단 고정 + 흰 배경 + 로고·햄버거 검정 계열 (히어로 다크테마 위에서도) ── */
@media(max-width:1199.98px){
    /* 스크롤 방향과 무관하게 항상 상단 노출 (숨김 transform 무효화) */
    .header,
    html[data-scroll-diretion="down"] .header{transform:translateY(0)}
    /* 다크(투명) 테마 → 흰 배경 + 상단 다크 그라데이션 제거 */
    body:not(.header-sub-open) .header[data-header-theme="dark"] .header-inner{background:#fff;border-color:rgba(20,67,42,.06)}
    body:not(.header-sub-open) .header[data-header-theme="dark"] .header-inner::before{display:none}
    /* 로고: 초록(다크) 로고 노출 / 흰 로고 숨김 + 모바일에서 크게 */
    body:not(.header-sub-open) .header[data-header-theme="dark"] .logo-img--dark{display:block}
    body:not(.header-sub-open) .header[data-header-theme="dark"] .logo-img--light{display:none}
    .logo-img{height:36px}
    /* 햄버거 바 검정 계열 */
    body:not(.header-sub-open) .header[data-header-theme="dark"] .btn-hamburger span{background:var(--color-text)}
}

/* Mobile menu */
.mo-menu{position:fixed;inset:0;z-index:10000;background:#fff;transform:translateX(100%);transition:transform .5s cubic-bezier(.33,1,.68,1);overflow-y:auto;opacity:0;pointer-events:none}
.mo-menu.is-open{transform:translateX(0);opacity:1;pointer-events:auto}
.mo-menu-logo{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--color-primary)}
.btn-mo-close{color:var(--color-text)}
.mo-gnb-title{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:18px 0;font-size:1.1rem;font-weight:600;color:var(--color-text)}
.mo-gnb-title::after{content:"+";font-size:1.3rem;font-weight:400;color:var(--color-primary)}
.mo-gnb-item.is-open .mo-gnb-title::after{content:"–"}
.mo-gnb-sub{padding:0 0 14px;display:none}
.mo-gnb-item.is-open .mo-gnb-sub{display:block}
.mo-gnb-sub li a{display:block;padding:9px 0 9px 14px;font-size:.95rem;color:var(--color-text-sub)}
.mo-gnb-sub li a:hover{color:var(--color-primary)}
.mo-foot-link{font-size:.85rem;color:var(--color-text-sub)}
/* 모바일 하단 SNS 아이콘 버튼 */
.mo-foot-sns{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 auto;
    border-radius:50%;border:1px solid var(--color-border);color:var(--color-text-sub);transition:all .3s}
.mo-foot-sns:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}


/* =============================================================
   SUB VISUAL (서브 상단 비주얼 + 브레드크럼)
   ============================================================= */
/* oceanease #visual 형: 풀스크린급 비주얼 + 줌인 배경 + 분할 타이틀 + 마우스휠 */
.sub-visual{position:relative;z-index:6;height:380px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--color-primary-dark)}
@media(max-width:767.98px){.sub-visual{height:320px}}
.sub-visual__bg{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit}
/* Taekwang 기준: 깨끗한 프리미엄 이미지(웜 세피아 제거, 뉴트럴) + 슬로우 줌 */
.sub-visual__bg .bg{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;
    transform:scale(1.06);animation:subZoom 8s cubic-bezier(.19,1,.22,1) forwards;
    filter:saturate(1.02) contrast(1.04)}
@keyframes subZoom{to{transform:scale(1)}}
/* 뉴트럴 시네마틱 그레이드 (soft-light, 아주 은은하게) */
.sub-visual__bg .bg::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;
    background:linear-gradient(160deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.16) 100%)}
@media(prefers-reduced-motion:reduce){.sub-visual__bg::before{animation:none}}
/* 가독성 그라데이션 — 타이틀이 또렷하게 보이도록 딤 강화 */
.sub-visual::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:
    radial-gradient(78% 64% at 50% 52%,rgba(0,0,0,.46) 0%,rgba(0,0,0,.24) 46%,rgba(0,0,0,.06) 78%),
    linear-gradient(180deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.08) 30%,rgba(0,0,0,.1) 62%,rgba(0,0,0,.42) 100%)}
.sub-visual__inner{position:relative;z-index:2;color:#fff;padding-top:var(--header-h)}
.sub-visual__eyebrow{display:none}
@keyframes subUp{to{opacity:.85;transform:none}}
/* soyo .svis .txt p 톤: 크고 여백 있는 소프트화이트 + 넓은 자간 */
.sub-visual__title{font-family:'SebangGothic',var(--font-sans);font-size:3.6rem;font-weight:500;color:#f8f8f8;line-height:1.18;letter-spacing:.03em;text-shadow:0 2px 22px rgba(0,0,0,.3)}
@media(max-width:767.98px){.sub-visual__title{font-size:2.2rem}}
/* 글자 단위 분할 등장 (Splitting 형) — JS가 .ch span 생성 */
.sub-visual__title .ch{display:inline-block;opacity:0;transform:translateY(.5em) rotate(4deg);
    animation:chUp .7s cubic-bezier(.19,1,.22,1) forwards;animation-delay:calc(.3s + var(--i) * .035s)}
.sub-visual__title .ch.sp{width:.3em}
@keyframes chUp{to{opacity:1;transform:none}}
.sub-visual__desc{margin-top:18px;font-size:1.08rem;color:rgba(255,255,255,.85);opacity:0;animation:subUp .8s cubic-bezier(.19,1,.22,1) .55s forwards}
/* 히어로 내 브레드크럼 (화이트 톤, 홈 아이콘 + 세로선 구분) */
.sub-visual .navigation{display:none}
.sub-visual .navigation .breadcrumb{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}
.sub-visual .navigation .breadcrumb li{display:flex;align-items:center;
    font-family:'Pretendard Variable',Pretendard,var(--font-sans);font-size:.9rem;font-weight:400;
    letter-spacing:-.01em;color:rgba(255,255,255,.82)}
.sub-visual .navigation .breadcrumb li:last-child{color:#fff;font-weight:600}
.sub-visual .navigation .breadcrumb li a[href]{color:inherit;transition:opacity .25s}
.sub-visual .navigation .breadcrumb li a[href]:hover{opacity:.7}
.sub-visual .navigation .breadcrumb li:first-child a{display:flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.7'%3E%3Cpath d='M3 11l9-8 9 8M5 10v10h14V10'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-size:contain;background-position:center}
.sub-visual .navigation .breadcrumb li:first-child a span{position:absolute;overflow:hidden;width:1px;height:1px;margin:-1px;clip:rect(0 0 0 0)}
.sub-visual .navigation .breadcrumb li::after{content:"";display:block;width:1px;height:11px;background:rgba(255,255,255,.4);margin:0 13px}
.sub-visual .navigation .breadcrumb li:last-child::after{display:none}
/* 마우스휠 스크롤 인디케이터 */
.sub-visual__scroll{position:absolute;left:50%;bottom:30px;z-index:3;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:9px;color:#fff;
    opacity:0;animation:subUp .8s ease .9s forwards}
.sub-visual__scroll svg{display:block}
.sub-visual__scroll .wheel{animation:wheelMove 1.7s ease-in-out infinite}
@keyframes wheelMove{0%{transform:translateY(0);opacity:1}60%{transform:translateY(7px);opacity:.2}100%{transform:translateY(0);opacity:1}}
.sub-visual__scroll-txt{font-family:var(--font-display);font-size:.66rem;letter-spacing:.2em;opacity:.85}
.sub-visual__scroll:hover{color:var(--color-leaf)}

/* =============================================================
   페이지 헤더 — GS Power 형 (중앙 라벨 + 대형 워터마크 + 좌측 큰 헤드라인 + 하단 구분선)
   ============================================================= */
/* 서브 본문 영역 (sub-head + 페이지 콘텐츠) — 상단(.sub-head__inner top) 여백과 하단 여백을 동일하게 맞춤 */
#sub_body{padding-bottom:clamp(48px,7vw,110px)}
.sub-head{background:#fff;overflow:hidden}
.sub-head__inner{max-width:var(--container-max);margin:0 auto;padding:clamp(48px,7vw,110px) 24px clamp(48px,6vw,88px);text-align:center}
/* bfc .sub_tit 형: 중앙 대형 타이틀 + 중앙 브레드크럼 */
.sub-head__title{font-size:2.75em;line-height:1.2;font-weight:800;letter-spacing:-.02em;color:var(--color-text)}
@media(max-width:767.98px){.sub-head__title{font-size:2rem}}
.sub-head__crumb{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:26px;row-gap:6px;margin-top:22px}
.sub-head__crumb li{position:relative;font-size:.875rem;color:var(--color-text-muted);line-height:1.4}
.sub-head__crumb li a{color:inherit;transition:color .25s}
.sub-head__crumb li a:hover{color:var(--color-primary)}
.sub-head__crumb li::after{content:"";position:absolute;top:50%;right:-15px;transform:translateY(-50%) rotate(45deg);width:5px;height:5px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;opacity:.55}
.sub-head__crumb li:last-child{font-weight:600;color:var(--color-text)}
.sub-head__crumb li:last-child::after{display:none}
.sub-head__crumb li.home{line-height:0}
.sub-head__crumb li.home a{display:inline-flex}
.sub-head__crumb li.home svg{width:18px;height:18px;color:var(--color-primary)}
@media(max-width:767.98px){.sub-head__crumb{display:none}}
/* 상단 중앙 라벨 (서브페이지명) */
.sub-head__label{text-align:center;font-family:var(--font-sans);font-size:2.2rem;
    font-weight:700;letter-spacing:-.02em;color:var(--color-text);margin-bottom:clamp(40px,5vw,76px)}
/* 헤드라인 영역 (워터마크 + 카피) */
.sub-head__main{position:static}
/* 워터마크 — inner 하단(구분선 부근)에 앵커 */
.sub-head__wm{display:none;position:absolute;left:50%;right:auto;bottom:calc(clamp(22px,3vw,38px) - 0.5em + 18px);transform:translateX(-50%);z-index:0;pointer-events:none;
    font-family:'DaeguJunggu','대구중구읍성체','대구중구읍성',var(--font-sans);font-weight:800;white-space:nowrap;
    font-size:clamp(2rem,4.5vw,4rem);line-height:1;letter-spacing:-.02em;color:rgba(20,67,42,.06)}
.sub-head__sub{position:relative;z-index:1;text-align:center;font-family:var(--font-display);
    font-size:.92rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
    color:var(--color-primary);margin-bottom:16px}
.sub-head__copy{position:relative;z-index:1;font-family:var(--font-sans);
    font-size:clamp(1.3rem,2.3vw,2.1rem);font-weight:300;line-height:1.45;letter-spacing:-.02em;
    color:var(--color-text);word-break:keep-all;max-width:20em;margin:0 auto;text-align:center}
.sub-head__copy b,.sub-head__copy em{color:var(--color-primary);font-style:normal;font-weight:700}
.sub-head__copy .pt{color:#2f7a4d}
/* 하단 구분선 + 브레드크럼 */
.sub-head__bottom{display:flex;align-items:center;gap:24px;margin-top:clamp(34px,5vw,68px)}
.sub-head__rule{flex:1 1 auto;height:1px;background:var(--color-border)}
@media(max-width:767.98px){.sub-head__label{margin-bottom:34px}.sub-head__copy{font-size:1.5rem}
    .sub-head__bottom{gap:14px}}
/* breadcrumb (구분선 우측) */
.sub-head .sub-bc{flex:0 0 auto}
.sub-bc .breadcrumb{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.sub-bc .breadcrumb li{display:flex;align-items:center;
    font-family:'Pretendard Variable',Pretendard,var(--font-sans);font-size:.875rem;font-weight:400;
    letter-spacing:0;color:var(--color-text-muted)}
.sub-bc .breadcrumb li:last-child{color:var(--color-primary);font-weight:600}
.sub-bc .breadcrumb li a[href]{color:inherit;transition:color .25s}
.sub-bc .breadcrumb li a[href]:hover{color:var(--color-primary)}
/* 홈 아이콘 (텍스트 숨김) */
.sub-bc .breadcrumb li:first-child a{display:flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='1.7'%3E%3Cpath d='M3 11l9-8 9 8M5 10v10h14V10'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-size:contain;background-position:center;transition:opacity .25s}
.sub-bc .breadcrumb li:first-child a span{position:absolute;overflow:hidden;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0 0 0 0)}
/* 구분자 — 세로선 (LX 톤) */
.sub-bc .breadcrumb li::after{content:"";display:block;width:1px;height:11px;background:var(--color-border);margin:0 13px}
.sub-bc .breadcrumb li:last-child::after{display:none}
@media(max-width:767.98px){.sub-bc .breadcrumb li{font-size:.8rem}.sub-bc .breadcrumb li::after{margin:0 9px}}


/* =============================================================
   FOOTER
   ============================================================= */
.footer{background:#2a2d2c;color:rgba(255,255,255,.7)}
.footer-top{padding:64px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.footer-logo-img{height:34px;width:auto;display:block}
.footer-slogan{font-size:1.4rem;font-weight:700;color:#fff;line-height:1.4;letter-spacing:-.02em}
.footer-info{margin-top:22px;font-size:.9rem;line-height:1.9;color:rgba(255,255,255,.66)}
.footer-info .en{letter-spacing:.05em}
.footer-info .sep{color:rgba(255,255,255,.18)}
.footer-info b{color:#fff;font-weight:600}
.footer-col-title{font-size:.95rem;font-weight:600;color:#fff;margin-bottom:14px}
.footer-links li a{display:block;padding:4px 0;font-size:.88rem;color:rgba(255,255,255,.6);transition:color .3s}
.footer-links li a:hover{color:var(--color-leaf)}
.footer-bottom{padding:36px 0}
.footer-bottom .footer-info{margin-top:0;margin-bottom:16px}
.footer-policy{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:8px}
.footer-policy a{font-size:.82rem;color:rgba(255,255,255,.7);transition:color .3s}
.footer-policy a.is-strong{font-weight:600;color:#fff}
.footer-policy a:hover{color:var(--color-leaf)}
.footer-copyright{font-size:.8rem;color:rgba(255,255,255,.45)}
.footer-sns{display:flex;gap:10px}
.footer-sns a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.7);transition:all .3s}
.footer-sns a:hover{background:var(--color-leaf);border-color:var(--color-leaf);color:var(--color-forest)}

/* 상단 이동 버튼 */
.to-top{position:fixed;right:24px;bottom:24px;z-index:900;width:50px;height:50px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .35s}
.to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.to-top:hover{background:var(--color-primary-dark)}

/* AOS fallback (라이브러리 미로딩 시 콘텐츠 보이도록) */
.no-aos [data-aos]{opacity:1!important;transform:none!important}


/* =============================================================
   PHASE 2 — 전역 인터랙션 / 비주얼 디테일
   ============================================================= */

/* 스크롤 진행 바 */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:1100;
    background:linear-gradient(90deg,var(--color-leaf),var(--color-primary));transition:width .1s linear}
/* 서브페이지에서는 스크롤 진행바 숨김 */
body.page-sub .scroll-progress{display:none}

/* 페이지 로드 페이드인 */
body{opacity:0;transition:opacity .5s ease}
body.page-ready{opacity:1}

/* 공통 섹션 진입 reveal (AOS 보완) */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.reveal.is-in{opacity:1;transform:none}

/* 링크 밑줄 슬라이드 */
.link-underline{position:relative;display:inline-block}
.link-underline::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1.5px;background:currentColor;transition:width .35s cubic-bezier(.22,1,.36,1)}
.link-underline:hover::after{width:100%}

/* 섹션 디바이더 (잎사귀/웨이브) */
.sec-divider{display:block;width:100%;height:auto;line-height:0}
.sec-divider svg{display:block;width:100%;height:60px}
@media(max-width:767.98px){.sec-divider svg{height:36px}}

/* =============================================================
   플로팅 퀵 메뉴 (관람예약 / SNS / Top)
   ============================================================= */
.quick-menu{display:none !important;position:fixed;right:24px;bottom:90px;z-index:900;flex-direction:column;gap:10px}
@media(max-width:767.98px){.quick-menu{right:14px;bottom:78px}}
.quick-menu a,.quick-menu button{width:54px;height:54px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;
    background:#fff;border:1px solid var(--color-border);color:var(--color-primary-dark);box-shadow:var(--shadow-card);transition:all .3s;gap:2px}
.quick-menu a:hover,.quick-menu button:hover{transform:translateY(-3px)}
.quick-menu .qm-reserve{background:var(--color-primary);color:#fff;border-color:var(--color-primary);width:54px;height:auto;padding:14px 0;border-radius:27px}
.quick-menu .qm-reserve:hover{background:var(--color-primary-dark)}
.quick-menu .qm-reserve span{font-size:.66rem;font-weight:700;writing-mode:vertical-rl;letter-spacing:.12em;line-height:1.3}
.quick-menu svg{width:22px;height:22px}
.quick-menu .qm-lbl{font-size:.56rem;font-weight:600}

/* =============================================================
   메인 팝업 레이어
   ============================================================= */
/* .popup-layer{position:fixed;z-index:1050;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(8,24,14,.35);
    width:340px;max-width:calc(100vw - 32px);opacity:0;transform:translateY(16px);transition:all .4s cubic-bezier(.22,1,.36,1);pointer-events:none} */
.popup-layer{position:fixed;z-index:1050;border-radius:18px;
    width:10px;max-width:calc(100vw - 32px);opacity:0;transform:translateY(16px);transition:all .4s cubic-bezier(.22,1,.36,1);pointer-events:none}
.popup-layer.show{opacity:1;transform:none;pointer-events:auto}
.popup-layer__img{display:block}
.popup-layer__img img{width:100%;display:block}
.popup-layer__body{padding:22px 24px}
.popup-layer__tag{font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--color-primary)}
.popup-layer__title{font-size:1.2rem;font-weight:700;margin:8px 0 8px;line-height:1.4;color:var(--color-text)}
.popup-layer__desc{font-size:.9rem;color:var(--color-text-sub);line-height:1.6}
.popup-layer__btns{display:flex;gap:8px;margin-top:16px}
.popup-layer__btns a{flex:1;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--color-primary);color:#fff;font-weight:600;font-size:.9rem}
.popup-layer__foot{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-top:1px solid var(--color-border);background:var(--color-bg-paper)}
.popup-layer__foot label{font-size:.82rem;color:var(--color-text-sub);display:flex;align-items:center;gap:6px;cursor:pointer}
.popup-layer__foot button{font-size:.82rem;color:var(--color-text-muted)}

/* =============================================================
   범용 모달
   ============================================================= */
.dg-modal-ov{position:fixed;inset:0;z-index:11000;background:rgba(8,24,14,.6);display:none;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s}
.dg-modal-ov.show{display:flex;opacity:1}
.dg-modal{background:#fff;border-radius:20px;max-width:540px;width:100%;max-height:90vh;overflow:auto;transform:translateY(20px) scale(.98);transition:transform .35s cubic-bezier(.22,1,.36,1)}
.dg-modal-ov.show .dg-modal{transform:none}
.dg-modal__head{display:flex;align-items:center;justify-content:space-between;padding:24px 26px 0}
.dg-modal__title{font-size:1.3rem;font-weight:700}
.dg-modal__close{color:var(--color-text-sub)}
.dg-modal__body{padding:18px 26px 26px}
