/* =============================================================
   2026 대구정원박람회 - common.css
   디자인 토큰 + 헤더/GNB/푸터/서브비주얼/브레드크럼/공통 버튼
   레퍼런스(프리미엄 스크롤형) 구조 + Garden Green 테마
   ============================================================= */

/* --- Design Tokens --- */
:root{
    /* Main */
    --color-garden:#2f7a4d;     /* Garden Green */
    --color-leaf:#7bb661;       /* Leaf Green */
    --color-beige:#eae3d2;      /* Natural Beige */
    /* Sub */
    --color-flower:#e59fb9;     /* Flower Pink */
    --color-sky:#79c3e0;        /* Sky Blue */
    --color-ivory:#faf7f0;      /* Warm Ivory */
    /* Point */
    --color-forest:#14432a;     /* Deep Forest Green */

    /* 시스템 매핑 */
    --color-primary:var(--color-garden);
    --color-primary-dark:var(--color-forest);
    --color-primary-light:#e8f1e9;
    --color-secondary:#6b7269;
    --color-text:#1c241e;
    --color-text-sub:#566056;
    --color-text-muted:#9aa39a;
    --color-border:#e2e6dd;
    --color-bg:#ffffff;
    --color-bg-paper:var(--color-ivory);
    --color-error:#e02020;

    --font-sans:'SCDream','Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;
    --font-display:'Jost','Pretendard Variable',sans-serif;

    --radius:0px;
    --radius-card:24px;
    --shadow-1:0 1px 6px rgba(20,67,42,.06);
    --shadow-card:0 -8px 28px rgba(20,67,42,.05),0 30px 80px rgba(20,67,42,.10);

    --container-max:1400px;
    --header-h:80px;
    --section-py:120px;
    --grid-gutter:24px;
}
@media screen and (max-width:1023.98px){:root{--header-h:60px;--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:1rem;line-height:1.6;color:var(--color-text);background:var(--color-bg);overflow-x:hidden}
:lang(ko){letter-spacing:-0.045rem}
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}

/* 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:30px;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}
.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}
.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}

/* 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}
/* 밝고 산뜻 + 자연스러운 웜톤: 깨끗한 이미지 + 부드러운 슬로우 줌 */
.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.05) brightness(1.02) sepia(.06)}
@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(255,225,178,.22) 0%,rgba(150,100,55,.15) 100%)}
/* 은은한 햇살 블룸 (screen, 우상단 광원 + 아주 느린 호흡) */
.sub-visual__bg::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen;will-change:opacity;
    background:radial-gradient(50% 46% at 80% 6%,rgba(255,242,212,.26) 0%,rgba(255,236,190,.1) 34%,transparent 64%);
    animation:subSun 13s ease-in-out infinite alternate}
@keyframes subSun{from{opacity:.7}to{opacity:.9}}
@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-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{margin-top:22px;opacity:0;animation:subUp .8s cubic-bezier(.19,1,.22,1) .6s forwards}
.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{background:#fff;overflow:hidden}
.sub-head__inner{position:relative;max-width:var(--container-max);margin:0 auto;padding:clamp(50px,6vw,88px) 24px clamp(22px,3vw,38px)}
/* 상단 중앙 라벨 (서브페이지명) */
.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.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}
