/* =============================================================
   2026 대구정원박람회 - main.css (메인페이지 전용)
   레퍼런스 스크롤형 비주얼 + Garden Green 섹션
   ============================================================= */

/* =========================================================
   SECTION: VISUAL HERO (scroll-driven clip-path)
   ========================================================= */
/* 가로 슬라이드 핀: 섹션 100vh, GSAP가 pin + 트랙을 좌로 이동 */
.sc-visual{position:relative;z-index:1;background:#0b1e12;height:100vh;overflow:hidden}
.vis-sticky{position:relative;height:100vh;overflow:hidden}
.vis-track{display:flex;height:100%;width:max-content;will-change:transform}
/* 풀스크린 패널 (각 100vw) */
.vis-panel{position:relative;flex:0 0 100vw;width:100vw;height:100vh;overflow:hidden}
.vis-pimg{position:absolute;inset:0;overflow:hidden}
.vis-pimg img{width:100%;height:100%;object-fit:cover;will-change:transform}
.vis-pimg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,24,14,.72) 0%,rgba(8,24,14,.4) 45%,rgba(8,24,14,.12) 100%)}
.vis-pcontent{position:absolute;inset:0;z-index:2;display:flex}
@media(max-width:1023.98px){.vis-pcontent{padding:6.8rem 1.6rem 5.5rem}}
@media(min-width:1024px){.vis-pcontent{padding:8rem}}
/* 인디케이터 */
.vis-indi{position:absolute;z-index:3;bottom:3rem;right:8rem;display:flex;align-items:center;gap:14px;color:#fff;font-family:var(--font-display)}
@media(max-width:1023.98px){.vis-indi{right:1.6rem;bottom:1.6rem}}
.vis-indi .cur{font-size:1.6rem;font-weight:700}
.vis-indi .tot{font-size:1rem;opacity:.6}
.vis-indi .line{width:60px;height:2px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.vis-indi .line i{position:absolute;left:0;top:0;height:100%;width:0;background:var(--color-leaf);transition:width .15s linear}
.visual-panel{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:1.4rem;max-width:58rem}
.visual-eyebrow{font-family:var(--font-display);font-weight:700;letter-spacing:.24em;color:var(--color-leaf);text-transform:uppercase}
@media(max-width:1023.98px){.visual-eyebrow{font-size:.8rem}}
@media(min-width:1024px){.visual-eyebrow{font-size:1.05rem}}
.visual-en{color:#fff;font-family:var(--font-display);font-weight:700;text-transform:capitalize;line-height:.96}
@media(max-width:1023.98px){.visual-en{font-size:2.8rem;letter-spacing:-.12rem}}
@media(min-width:1024px){.visual-en{font-size:6.4rem;letter-spacing:-.3rem}}
.visual-ko{color:rgba(255,255,255,.92);font-weight:500;line-height:1.6}
@media(max-width:1023.98px){.visual-ko{font-size:.95rem;max-width:24rem}}
@media(min-width:1024px){.visual-ko{font-size:1.5rem;max-width:40rem}}
.visual-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:.6rem}
.visual-meta span{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);color:#fff;font-size:.95rem;font-weight:500}
.visual-meta span .ico{color:var(--color-leaf)}

/* 진행 인디케이터 */
.visual-dots{position:absolute;z-index:3;right:8rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px}
@media(max-width:1023.98px){.visual-dots{right:1.4rem;gap:9px}}
.visual-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);transition:all .4s}
.visual-dots span.on{background:var(--color-leaf);height:26px;border-radius:999px}

.btn-scroll-next{z-index:2;position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;font-family:var(--font-display);font-size:.72rem;letter-spacing:.18em}
@media(max-width:1023.98px){.btn-scroll-next{bottom:1.4rem;left:50%;transform:translateX(-50%)}}
@media(min-width:1024px){.btn-scroll-next{bottom:3rem;left:8rem}}
.btn-scroll-next .mouse{width:24px;height:38px;border:2px solid rgba(255,255,255,.7);border-radius:14px;position:relative}
.btn-scroll-next .mouse::after{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:4px;height:8px;border-radius:2px;background:#fff;animation:scrollWheel 1.6s infinite}
@keyframes scrollWheel{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}80%{opacity:0;transform:translate(-50%,12px)}100%{opacity:0}}


/* =========================================================
   SECTION COMMON
   ========================================================= */
.sc{position:relative;z-index:10;padding:var(--section-py) 0;background:#fff}
.sc--paper{background:var(--color-bg-paper)}
.sc__inner{max-width:var(--container-max);margin:0 auto;padding:0 var(--grid-gutter)}
.sc-head{margin-bottom:54px}
.sc-head--center{text-align:center}
.sc-eyebrow{display:inline-block;font-family:var(--font-display);font-weight:700;font-size:.95rem;letter-spacing:.2em;color:var(--color-primary);text-transform:uppercase;margin-bottom:14px}
.sc-title{font-size:clamp(2rem,3.4vw,3.2rem);font-weight:800;color:var(--color-text);letter-spacing:-.03em;line-height:1.2}
.sc-lead{margin-top:18px;font-size:1.05rem;color:var(--color-text-sub);line-height:1.8;max-width:680px}
.sc-head--center .sc-lead{margin-inline:auto}
.sc-head--row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}


/* =========================================================
   SECTION: ABOUT / INTRO + D-DAY 카운트
   ========================================================= */
.sc-about{overflow:hidden}
.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
@media(max-width:991.98px){.about-grid{grid-template-columns:1fr;gap:40px}}
.about-visual{position:relative;border-radius:var(--radius-card);overflow:hidden;aspect-ratio:5/4;box-shadow:var(--shadow-card)}
.about-visual img{width:100%;height:100%;object-fit:cover}
.about-visual__badge{position:absolute;left:24px;bottom:24px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-radius:18px;padding:16px 22px}
.about-visual__badge .dday{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--color-primary);line-height:1}
.about-visual__badge .lbl{font-size:.82rem;color:var(--color-text-sub);margin-top:4px}
.about-keywords{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 28px}
.about-keywords span{padding:7px 16px;border-radius:999px;background:var(--color-primary-light);color:var(--color-primary);font-size:.88rem;font-weight:600}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.about-stat{padding:22px;border-radius:18px;background:var(--color-bg-paper);border:1px solid var(--color-border)}
.about-stat .num{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--color-primary-dark)}
.about-stat .num small{font-size:1rem}
.about-stat .lbl{margin-top:6px;font-size:.88rem;color:var(--color-text-sub)}


/* =========================================================
   SECTION: EXHIBIT (정원전시 · 정원산업전)
   택광형 확장 아코디언 톤앤매너 이식:
   flex 확장(1fr → 60rem) + grid-template-rows 0fr→1fr 로 설명/펠릿 펼침.
   순수 CSS hover (스크롤 진입 시 AOS 페이드업).
   ========================================================= */
.sc-exhibit{background:#fff;overflow:hidden;padding-bottom:0}
.sc-exhibit .sc__inner{max-width:none;padding:0}        /* 풀블리드 리스트 */

/* 헤딩: "Garden Exhibition" 빅 타이포 + 화살표 */
.exb-head{padding:0 clamp(20px,4vw,56px)}
.exb-head-link{display:inline-flex;align-items:center;gap:14px;text-decoration:none}
.exb-heading-pc{font-family:var(--font-display);font-size:clamp(2.4rem,4vw,3.6rem);font-weight:700;color:var(--color-text);line-height:1;letter-spacing:-.035em;text-transform:capitalize}
.exb-arrow-pc{display:inline-flex;width:2.6rem;height:2.6rem;align-items:center;justify-content:center;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);transition:transform .45s cubic-bezier(.22,1,.36,1),background .3s}
.exb-head-link:hover .exb-arrow-pc{transform:translateX(8px);background:var(--color-primary);color:#fff}
.exb-sub-pc{margin-top:18px;font-size:1.05rem;color:var(--color-text-sub);line-height:1.7;max-width:50rem}

/* 리스트 (PC) */
.exb-list{display:flex;gap:2px;width:100%;margin-top:42px}
.exb-list > li{flex:1 1 0%;transition:flex .55s cubic-bezier(.33,1,.68,1);min-width:0}
.exb-list > li:hover{flex:0 1 58rem}
.exb-card{display:block;position:relative;overflow:hidden;height:42rem}
.exb-card-bg{position:absolute;inset:0}
.exb-card-bg img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.exb-list > li:hover .exb-card-bg img{transform:scale(1.07)}
.exb-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,24,14,.04) 0%,rgba(8,24,14,.34) 46%,rgba(8,24,14,.86) 100%)}
.exb-card-info{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;padding:0 2.6rem 3.4rem;white-space:nowrap}
.exb-card-no{font-family:var(--font-display);font-size:1rem;font-weight:700;color:#fff;letter-spacing:.12em;margin-bottom:.7rem}
.exb-card-title{display:flex;align-items:center;font-size:1.4rem;font-weight:700;color:#fff;line-height:1.28;letter-spacing:-.02em}
@media(min-width:1400px){.exb-card-title{font-size:1.7rem}}
/* hover 시 펼쳐지는 영역 (grid-rows 0fr→1fr, 참고 디자인 동일 메커니즘) */
.exb-card-expand{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s cubic-bezier(.33,1,.68,1)}
.exb-card-expand-inner{overflow:hidden}
.exb-list > li:hover .exb-card-expand{grid-template-rows:1fr}
.exb-card-desc{padding-top:1.3rem;font-size:1.05rem;color:#fff;line-height:1.6;white-space:normal;max-width:34rem}
.exb-card-subs{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.3rem;white-space:normal;pointer-events:none}
.exb-sub-pill{display:inline-flex;align-items:center;height:2.4rem;padding:0 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.42);font-size:.92rem;font-weight:600;color:#fff;transition:all .3s}
.exb-sub-pill:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.78)}

/* 모바일: 세로 스택 카드 */
.exb-head-mo{padding:0 4px 4px}
.exb-heading-mo{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--color-text);line-height:1.4;letter-spacing:-.03em;text-transform:capitalize}
.exb-arrow-mo{display:inline-flex;width:1.4rem;height:1.4rem;align-items:center;justify-content:center;color:var(--color-primary)}
.exb-sub-mo{margin-top:10px;font-size:.95rem;color:var(--color-text-sub);line-height:1.6}
.exb-card-mo{display:block;position:relative;height:9.2rem;overflow:hidden}
.exb-card-mo + .exb-card-mo{margin-top:3px}
.exb-card-mo-bg{position:absolute;inset:0}
.exb-card-mo-bg img{width:100%;height:100%;object-fit:cover}
.exb-card-mo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,24,14,.62),rgba(8,24,14,.06) 70%)}
.exb-card-mo-info{position:absolute;inset:0;z-index:1;display:flex;align-items:flex-end;padding:0 1.1rem 1rem}
.exb-card-mo-title{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:-.02em}


/* =========================================================
   SECTION: PROGRAM / INFO 카드 (3~4열)
   ========================================================= */
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:991.98px){.info-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575.98px){.info-grid{grid-template-columns:1fr}}
.info-card{display:block;padding:34px 28px;border-radius:var(--radius-card);background:#fff;border:1px solid var(--color-border);transition:all .4s cubic-bezier(.22,1,.36,1)}
.info-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card);border-color:transparent}
.info-card__ico{width:58px;height:58px;border-radius:16px;background:var(--color-primary-light);display:flex;align-items:center;justify-content:center;color:var(--color-primary);margin-bottom:22px}
.info-card__ico svg{width:30px;height:30px}
.info-card__title{font-size:1.25rem;font-weight:700;color:var(--color-text)}
.info-card__desc{margin-top:12px;font-size:.95rem;color:var(--color-text-sub);line-height:1.65}
.info-card__more{margin-top:18px;display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--color-primary);transition:gap .3s}
.info-card:hover .info-card__more{gap:12px}


/* =========================================================
   SECTION: NOTICE (공지) + 일정
   ========================================================= */
.notice-wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:48px}
@media(max-width:991.98px){.notice-wrap{grid-template-columns:1fr;gap:36px}}
.notice-list li{border-top:1px solid var(--color-border)}
.notice-list li:last-child{border-bottom:1px solid var(--color-border)}
.notice-list a{display:flex;align-items:center;gap:18px;padding:22px 4px;transition:padding .3s}
.notice-list a:hover{padding-left:14px}
.notice-list .cat{flex:0 0 auto;font-size:.78rem;font-weight:600;color:var(--color-primary);padding:5px 12px;border-radius:999px;background:var(--color-primary-light)}
.notice-list .tit{flex:1;font-size:1.05rem;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notice-list a:hover .tit{color:var(--color-primary)}
.notice-list .date{flex:0 0 auto;font-family:var(--font-display);font-size:.85rem;color:var(--color-text-muted)}
.dday-board{border-radius:var(--radius-card);background:var(--color-primary-dark);color:#fff;padding:38px 34px;background-image:radial-gradient(circle at 100% 0%,rgba(123,182,97,.35),transparent 55%)}
.dday-board .lbl{font-family:var(--font-display);letter-spacing:.2em;font-size:.85rem;color:var(--color-leaf)}
.dday-board .big{font-family:var(--font-display);font-size:4.4rem;font-weight:700;line-height:1;margin:10px 0 6px}
.dday-board .period{font-size:1.05rem;color:rgba(255,255,255,.85)}
.dday-board .place{margin-top:6px;font-size:.95rem;color:rgba(255,255,255,.65)}
.dday-board .btn-pill{margin-top:26px}


/* =========================================================
   SECTION: GALLERY 슬라이더
   ========================================================= */
.gallery-slider{overflow:visible;position:relative}
.gallery-card{display:block}
.gallery-card__thumb{overflow:hidden;border-radius:18px;aspect-ratio:4/3;margin-bottom:16px}
.gallery-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.gallery-card:hover .gallery-card__thumb img{transform:scale(1.07)}
.gallery-card__cat{display:inline-block;font-size:.78rem;font-weight:600;color:var(--color-primary);margin-bottom:8px}
.gallery-card__title{font-size:1.08rem;font-weight:600;color:var(--color-text);line-height:1.5}
.gallery-card:hover .gallery-card__title{color:var(--color-primary)}
.gallery-card__date{margin-top:8px;font-size:.8rem;color:var(--color-text-muted);font-family:var(--font-display)}
.slider-nav{display:flex;gap:8px;justify-content:center;margin-top:36px}
.slider-nav button{width:46px;height:46px;border-radius:50%;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-sub);transition:all .3s}
.slider-nav button:hover{border-color:var(--color-primary);background:var(--color-primary);color:#fff}


/* =========================================================
   SECTION: PARTNERS 마퀴
   ========================================================= */
.sc-partners{padding:64px 0;background:#fff;border-top:1px solid var(--color-border)}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee__track{display:flex;gap:60px;width:max-content;animation:marquee 28s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__track span{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--color-text-muted);white-space:nowrap;transition:color .3s}
.marquee__track span:hover{color:var(--color-primary)}
@keyframes marquee{to{transform:translateX(-50%)}}


/* =========================================================
   HERO — 등장 모션 강화 (한화 hanwha.co.kr 스타일: 정제된 마스크/페이드업)
   활성 패널에서만 순차 등장, 비활성 시 초기화되어 재진입 시 재생
   공통 이징: cubic-bezier(.19,1,.22,1) (expo-out, 우아하게 감속)
   ========================================================= */
/* 활성 이미지 밝게 포커스(비활성은 어둡게) */
.vis-pimg::after{transition:opacity .9s cubic-bezier(.19,1,.22,1)}
.vis-panel:not(.is-active) .vis-pimg::after{opacity:1}
.vis-panel.is-active .vis-pimg::after{opacity:.7}

/* 콘텐츠 앞 액센트 라인 (0 → 64px 로 그려짐) */
.vis-pcontent .visual-panel::before{content:"";display:block;width:0;height:3px;border-radius:2px;background:var(--color-leaf);margin-bottom:1.6rem;transition:width .9s cubic-bezier(.19,1,.22,1)}
.vis-panel.is-active .vis-pcontent .visual-panel::before{width:64px;transition-delay:.08s}

/* 아이브로 */
.vis-panel .visual-eyebrow{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.19,1,.22,1),transform .8s cubic-bezier(.19,1,.22,1)}
.vis-panel.is-active .visual-eyebrow{opacity:1;transform:none;transition-delay:.16s}

/* 큰 타이틀: 마스크 아래에서 한 줄씩 솟아오름 (더 길고 우아하게) */
.visual-en .tline{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.08em}
.visual-en .tline > span{display:block;transform:translateY(120%);transition:transform 1.15s cubic-bezier(.19,1,.22,1)}
.vis-panel.is-active .visual-en .tline > span{transform:translateY(0)}
.vis-panel.is-active .visual-en .tline:nth-child(1) > span{transition-delay:.26s}
.vis-panel.is-active .visual-en .tline:nth-child(2) > span{transition-delay:.40s}

/* 본문: 페이드업 */
.vis-panel .visual-ko{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1)}
.vis-panel.is-active .visual-ko{opacity:1;transform:none;transition-delay:.6s}

/* 메타: 항목별 stagger */
.vis-panel .visual-meta span{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.19,1,.22,1),transform .8s cubic-bezier(.19,1,.22,1)}
.vis-panel.is-active .visual-meta span:nth-child(1){opacity:1;transform:none;transition-delay:.74s}
.vis-panel.is-active .visual-meta span:nth-child(2){opacity:1;transform:none;transition-delay:.84s}

.visual-dots span{cursor:pointer}

/* =========================================================
   PHASE 2 — 관람안내 FAQ / 이용정보
   ========================================================= */
.visit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:48px}
@media(max-width:991.98px){.visit-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575.98px){.visit-grid{grid-template-columns:1fr}}
.visit-card{padding:28px 24px;border-radius:18px;background:#fff;border:1px solid var(--color-border);text-align:center}
.visit-card .ico{width:52px;height:52px;border-radius:14px;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.visit-card .ico svg{width:26px;height:26px}
.visit-card .lbl{font-size:.85rem;color:var(--color-text-muted)}
.visit-card .val{font-size:1.2rem;font-weight:700;color:var(--color-text);margin-top:6px;line-height:1.4}
.visit-card .val small{display:block;font-size:.82rem;font-weight:400;color:var(--color-text-sub);margin-top:4px}

.faq-list{max-width:880px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--color-border)}
.faq-q{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:24px 4px;font-size:1.1rem;font-weight:600;color:var(--color-text)}
.faq-q .qmark{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700}
.faq-q .qtxt{flex:1}
.faq-q .arw{flex:0 0 auto;transition:transform .35s}
.faq-item.open .faq-q .arw{transform:rotate(180deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.22,1,.36,1)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a__inner{overflow:hidden}
.faq-a p{padding:0 4px 24px 58px;font-size:1rem;color:var(--color-text-sub);line-height:1.8}
@media(max-width:575.98px){.faq-a p{padding-left:4px}}


/* ============================================================
   OCEANEASE형 가로 풀페이지 슬라이드 덱 (메인)
   ============================================================ */
body.page-fp{overflow:hidden}
body.page-fp .to-top{display:none!important}

/* wrapper: 첫 화면(100vh) 히어로 — 아래로 본문 섹션이 이어지는 스크롤형 메인 */
.fp{position:relative;height:100vh;overflow:hidden;background:#0b1e12;z-index:1}
/* 트랙: 가로 정렬 + 부드러운 이동 */
.fp-track{display:flex;height:100%;width:100%;transition:transform .7s ease-in-out;will-change:transform}
/* 슬라이드: 100vw × 100vh */
.fp-slide{position:relative;flex:0 0 100vw;width:100vw;height:100vh;overflow:hidden}
.fp-bg{position:absolute;inset:0;z-index:0}
/* Taekwang 기준: 깨끗한 프리미엄 이미지(웜 세피아 제거, 뉴트럴) + 슬로우 줌 */
.fp-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 14s ease-out;
    filter:saturate(1.02) contrast(1.05)}
.fp-slide.is-active .fp-bg img{transform:scale(1.13)}
/* 뉴트럴 시네마틱 그레이드 (soft-light, 은은) */
.fp-slide::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:soft-light;
    background:linear-gradient(160deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.18) 100%)}
@media(prefers-reduced-motion:reduce){.fp-slide::after{animation:none}}
/* 고급 그라데이션 — 딥 포레스트 그린 틴트 · 다단계 부드러운 전환 · 상/하단 시네마틱 프레임
   (텍스트/프레임 영역에만, 나머지는 완전 투명 → 밝게 유지) */
.fp-bg::after{content:"";position:absolute;inset:0;z-index:2;background:
    linear-gradient(95deg,rgba(6,22,14,.88) 0%,rgba(6,22,14,.68) 22%,rgba(6,22,14,.42) 42%,rgba(6,22,14,.18) 58%,rgba(6,22,14,0) 72%),
    linear-gradient(180deg,rgba(6,22,14,.42) 0%,rgba(6,22,14,0) 18%,rgba(6,22,14,0) 70%,rgba(6,22,14,.46) 100%)}
.fp-slide.align-center .fp-bg::after{background:
    radial-gradient(68% 70% at 50% 50%,rgba(6,22,14,.82) 0%,rgba(6,22,14,.6) 34%,rgba(6,22,14,.28) 60%,rgba(6,22,14,0) 82%),
    linear-gradient(180deg,rgba(6,22,14,.42) 0%,rgba(6,22,14,0) 16%,rgba(6,22,14,0) 66%,rgba(6,22,14,.52) 100%)}
.fp-slide.align-right .fp-bg::after{background:
    linear-gradient(265deg,rgba(6,22,14,.82) 0%,rgba(6,22,14,.6) 22%,rgba(6,22,14,.34) 42%,rgba(6,22,14,.12) 58%,rgba(6,22,14,0) 70%),
    linear-gradient(180deg,rgba(6,22,14,.38) 0%,rgba(6,22,14,0) 18%,rgba(6,22,14,0) 72%,rgba(6,22,14,.4) 100%)}

/* 콘텐츠 영역 */
.fp-inner{position:absolute;inset:0;z-index:2;display:flex;align-items:center;padding:0 8vw}
@media(max-width:767.98px){.fp-inner{padding:0 1.6rem}}
.fp-content{position:relative;z-index:1;max-width:60rem;color:#fff}
.fp-slide.align-center .fp-inner{justify-content:center;text-align:center}
.fp-slide.align-center .fp-content{margin-inline:auto}
.fp-slide.align-right .fp-inner{justify-content:flex-end;text-align:right}

/* 콘텐츠 등장 (활성 슬라이드에서 순차) */
/* soyo형 — 느리고 긴 우아한 등장 (1.4~1.6s, 큰 딜레이) */
.fp-content > *{opacity:0;transform:translateY(26px);transition:opacity 1.5s cubic-bezier(.19,1,.22,1),transform 1.5s cubic-bezier(.19,1,.22,1)}
.fp-slide.is-active .fp-content > *{opacity:1;transform:none}
.fp-slide.is-active .fp-content > *:nth-child(1){transition-delay:.5s}
.fp-slide.is-active .fp-content > *:nth-child(2){transition-delay:.75s}
.fp-slide.is-active .fp-content > *:nth-child(3){transition-delay:1s}
.fp-slide.is-active .fp-content > *:nth-child(4){transition-delay:1.2s}
.fp-slide.is-active .fp-content > *:nth-child(5){transition-delay:1.4s}

/* soyo-hannam 톤: Jost 영문 · 가벼운 weight · 넓은 자간 */
.fp-eyebrow{display:inline-block;font-family:var(--font-display);font-weight:400;font-size:1.05rem;letter-spacing:.4em;color:#fff;text-transform:uppercase;margin-bottom:2rem;opacity:.92;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.fp-eyebrow::before{content:"";display:inline-block;width:30px;height:1px;background:rgba(255,255,255,.7);vertical-align:middle;margin-right:16px;margin-bottom:5px}
.fp-slide.align-center .fp-eyebrow::before{display:none}
.fp-title{font-weight:600;color:#fff;line-height:1.16;letter-spacing:-.01em;margin-bottom:2rem;text-shadow:0 2px 30px rgba(0,0,0,.55),0 1px 4px rgba(0,0,0,.45)}
@media(min-width:1024px){.fp-title{font-size:4.6rem}}
@media(max-width:1023.98px){.fp-title{font-size:2.6rem}}
.fp-desc{font-size:1.2rem;font-weight:300;line-height:1.75;color:rgba(255,255,255,.92);max-width:42rem;text-shadow:0 1px 18px rgba(0,0,0,.6),0 1px 2px rgba(0,0,0,.4)}
/* 컨택트 슬라이드 (브랜드형) — 상단 라인(산세리프) + 명조체 타이틀·서브텍스트 */
.fp-topline{display:block;font-family:var(--font-sans);font-size:clamp(1.05rem,1.4vw,1.25rem);font-weight:400;color:#fff;letter-spacing:.02em;margin-bottom:1.1rem;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.fp-content--brand .fp-title{font-family:'Nanum Myeongjo',serif;font-weight:700;margin-bottom:1.4rem}
.fp-sub{font-family:'Nanum Myeongjo',serif;font-weight:400;font-size:clamp(1.15rem,1.9vw,1.55rem);line-height:1.5;color:rgba(255,255,255,.95);margin-bottom:1.6rem;text-shadow:0 1px 14px rgba(0,0,0,.5)}
@media(max-width:767.98px){.fp-topline{font-size:1rem;margin-bottom:.8rem}.fp-sub{font-size:1.1rem}}
/* PC 전용 줄바꿈 (태블릿/모바일에서는 자연 줄바꿈) */
.br-pc{display:inline}
@media(max-width:991.98px){.br-pc{display:none}}
@media(max-width:767.98px){.fp-desc{font-size:1rem}}
.fp-slide.align-center .fp-desc{margin-inline:auto}
.fp-slide.align-right .fp-content .fp-desc{margin-left:auto}

.fp-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem}
.fp-slide.align-center .fp-meta{justify-content:center}
.fp-meta span{display:inline-flex;align-items:center;padding:11px 22px;border-radius:999px;background:rgba(255,255,255,.13);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);font-size:1rem;font-weight:500}

.fp-info{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem;justify-content:center}
.fp-info__item{min-width:150px;padding:20px 26px;border-radius:16px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);text-align:center}
.fp-info__item .lbl{display:block;font-size:.85rem;color:var(--color-leaf);font-weight:600;margin-bottom:8px}
.fp-info__item .val{display:block;font-size:1.35rem;font-weight:700;font-family:var(--font-display)}

/* ── 첫 슬라이드 : 좌측 인트로 문구 + 우측 행사개요 카드 (2단) ── */
.fp-slide.is-overview .fp-inner{justify-content:space-between;align-items:center;gap:5vw}
@media(max-width:991.98px){.fp-slide.is-overview .fp-inner{flex-direction:column;justify-content:center;gap:36px}}
/* 좌측 인트로(이미지 위 화이트 텍스트) — 양측 살짝 어둡게 */
.fp-slide.is-overview .fp-bg::after{background:
    linear-gradient(90deg,rgba(6,22,14,.72) 0%,rgba(6,22,14,.34) 30%,rgba(6,22,14,.12) 50%,rgba(6,22,14,.42) 100%),
    linear-gradient(180deg,rgba(6,22,14,.34) 0%,rgba(6,22,14,0) 18%,rgba(6,22,14,0) 74%,rgba(6,22,14,.4) 100%)}
.fp-lead{position:relative;flex:1 1 auto;max-width:34rem;color:#fff;align-self:center;margin:0}
/* 타이틀 우상단 — 흰색 선이 연필로 그리듯: 글자에서 줄기 → 잎 → 꽃잎 순으로 그려짐 (그리고 지우기 반복) */
/* 'u' 끝에 0 크기 마커로 삽입 → 글자 간격에 영향 없음. 꽃은 마커 기준 절대 배치 */
.fp-lead__draw{display:none;position:relative;width:0;height:0;vertical-align:baseline;pointer-events:none}
.fp-lead__draw svg{position:absolute;left:calc(.12em + var(--fx,0em));bottom:calc(-.12em + var(--fy,0em));
    height:calc(1.7em * var(--fs,1));width:auto;aspect-ratio:120/188;
    overflow:visible;transform:rotate(var(--fr,0deg));transform-origin:bottom center;
    filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.fp-lead__draw path,.fp-lead__draw circle{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
    stroke-dasharray:300;stroke-dashoffset:300}
/* 첫 슬라이드가 활성화될 때마다 줄기→잎→꽃잎 순으로 다시 그려짐 */
.fp-slide.is-active .fp-lead__draw .stem{animation:penDraw .9s ease .3s forwards}
.fp-slide.is-active .fp-lead__draw .leaf{animation:penDraw .9s ease .9s forwards}
.fp-slide.is-active .fp-lead__draw .bloom path{animation:penDraw .9s ease forwards;animation-delay:calc(1.3s + var(--i,0) * .07s)}
.fp-slide.is-active .fp-lead__draw .disk{animation:penDraw .9s ease 2.25s forwards}
.fp-slide.is-active .fp-lead__draw .core{animation:penDraw .9s ease 2.45s forwards}
@keyframes penDraw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.fp-lead__draw path,.fp-lead__draw circle{animation:none;stroke-dashoffset:0}}
.fp-lead__txt{display:none;font-size:clamp(1.05rem,1.5vw,1.35rem);font-weight:300;line-height:1.7;
    color:rgba(255,255,255,.92);margin-bottom:1.4rem;word-break:keep-all;text-shadow:0 1px 14px rgba(0,0,0,.5)}
/* BFC txtSplit 형: 대형 볼드 영문 + 글자 단위 등장 */
/* 굵고 강렬한 영문 타이틀 — Montserrat 대문자 + 넓은 자간 + 그림자 */
.fp-lead .fp-title{font-family:'Poppins',var(--font-display);font-weight:700;text-transform:none;
    letter-spacing:-.025em;font-size:4.8rem;line-height:1.04;color:#fff;
    text-shadow:0 2px 26px rgba(0,0,0,.5),0 1px 3px rgba(0,0,0,.4);opacity:1;transform:none}
@media(max-width:991.98px){.fp-lead .fp-title{font-size:3rem}}
@media(max-width:575.98px){.fp-lead .fp-title{font-size:2.2rem}}
@media(max-width:991.98px){.fp-lead{display:none}
    .fp-slide.is-overview .fp-inner{flex-direction:column;justify-content:center;align-items:center;padding:calc(var(--header-h) + 18px) 1.4rem 3.2rem}}
/* 글자별 무작위 등장 — 각 글자가 랜덤 타이밍(--d)으로 부드럽게 페이드인+제자리 정착 */
.fp-lead .fp-title .wd{display:inline-block;white-space:nowrap}
/* "2026"(첫 단어)만 얇게, 나머지(Daegu Garden Show)는 굵게 */
.fp-lead .fp-title .wd:first-child{font-weight:300}
.fp-lead .fp-title .ch{display:inline-block;opacity:0;transform:translateX(-.55em);will-change:opacity,transform}
.fp-slide.is-active .fp-lead .fp-title .ch{animation:fpCharRand 1.25s cubic-bezier(.22,1,.36,1) both;
    animation-delay:var(--d, 0s)}
@keyframes fpCharRand{from{opacity:0;transform:translateX(-.55em)}to{opacity:1;transform:none}}
/* 인트로 문구는 한 번에 페이드업 */
.fp-slide.is-active .fp-lead__txt{animation:leadUp 1s cubic-bezier(.19,1,.22,1) .35s both}
@keyframes leadUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
/* 우측 행사개요 카드 — 우측에서 부드럽게 밀려 들어오며 등장 */
.fp-ovw{flex:0 0 auto;width:min(44rem,52%);max-width:44rem;padding:clamp(34px,3.4vw,54px);
    background:rgba(255,255,255,.95);color:var(--color-text);
    border-radius:26px;box-shadow:0 40px 100px rgba(0,0,0,.42)}
/* PC: 카드를 조금 더 아래로 */
@media(min-width:992px){.fp-slide.is-overview .fp-ovw{margin-top:clamp(50px,6vh,140px)}}
@media(max-width:991.98px){.fp-ovw{width:100%;max-width:42rem}}
/* 카드 내부 요소는 정적(카드 전체가 슬라이드인) */
.fp-ovw > *{opacity:1;transform:none;transition:none}
.fp-slide.is-overview .fp-ovw{opacity:0;transform:translateX(64px);will-change:opacity,transform}
.fp-slide.is-active.is-overview .fp-ovw{animation:ovwIn 1.2s cubic-bezier(.22,1,.36,1) .35s both}
@keyframes ovwIn{from{opacity:0;transform:translateX(64px)}to{opacity:1;transform:none}}
.fp-ovw__eyebrow{font-family:var(--font-display);font-weight:600;font-size:.82rem;letter-spacing:.3em;
    text-transform:uppercase;color:var(--color-primary)}
.fp-ovw__title{font-family:'SebangGothic',var(--font-sans);font-size:clamp(1.8rem,2.7vw,2.3rem);font-weight:700;letter-spacing:-.02em;color:var(--color-text);
    margin:8px 0 16px;text-shadow:none}
/* 행사개요 메인 리스트 */
.fp-ovw__list{display:block;margin:0}
.fp-ovw__list > div{display:flex;align-items:baseline;gap:18px;padding:11px 2px;border-top:1px solid var(--color-border)}
.fp-ovw__list dt{flex:0 0 72px;color:var(--color-primary);font-weight:700;font-size:1rem}
.fp-ovw__list dd{margin:0;font-size:1.05rem;font-weight:600;color:var(--color-text);line-height:1.4;letter-spacing:-.01em}
@media(max-width:767.98px){.fp-ovw__list dd{font-size:1rem}}
.fp-ovw__list dd em{font-style:normal;font-weight:500;color:var(--color-secondary)}
.fp-ovw__list dd span{display:block;margin-top:3px;font-size:.86rem;font-weight:400;color:var(--color-text-muted)}
.fp-ovw__theme{color:var(--color-primary);font-weight:700}
/* 주제 의미 노트 */
.fp-ovw__note{margin-top:14px;padding-top:14px;border-top:1px solid var(--color-border);font-size:.82rem;line-height:1.65;color:var(--color-text-sub);word-break:keep-all;display:none}
/* fp-ovw__note 는 너비 1600px 이상 & 높이 790px 이상에서만 노출 */
@media(min-width:1600px) and (min-height:790px){.fp-ovw__note{display:block}}
/* 주최 · 행사대행 — 작게 */
.fp-ovw__foot{margin-top:14px;padding-top:14px;border-top:1px solid var(--color-border);
    font-size:.8rem;line-height:1.8;color:var(--color-text-sub)}
.fp-ovw__foot p{margin:0}
.fp-ovw__foot b{color:var(--color-text);font-weight:700;margin-right:4px}
.fp-ovw__foot .en{letter-spacing:.06em}
@media(max-width:767.98px){.fp-ovw{max-width:none;padding:26px 22px;border-radius:18px}.fp-ovw__list dt{flex-basis:64px}}
/* 소형 폰 — 행사개요 카드가 잘리지 않게 컴팩트 + 내부 스크롤 세이프티 */
@media(max-width:575.98px){
    .fp-slide.is-overview .fp-inner{justify-content:center;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(var(--header-h) + 10px) 1.1rem 1.6rem}
    .fp-ovw{padding:22px 20px;border-radius:16px}
    .fp-ovw__title{font-size:1.6rem;margin:2px 0 12px}
    .fp-ovw__list > div{padding:9px 2px}
    .fp-ovw__list dt{flex-basis:56px;font-size:.92rem}
    .fp-ovw__list dd{font-size:.95rem}
    .fp-ovw__note{font-size:.78rem;margin-top:12px;padding-top:12px}
    .fp-ovw__foot{font-size:.74rem}
}

.fp-cta{display:inline-flex;align-items:center;gap:10px;margin-top:2.4rem;height:56px;padding:0 32px;border-radius:999px;background:var(--color-primary);color:#fff;font-size:1.05rem;font-weight:600;transition:all .35s cubic-bezier(.22,1,.36,1)}
.fp-cta:hover{background:#fff;color:var(--color-primary-dark);gap:16px}
.fp-cta svg{transition:transform .35s}
.fp-cta:hover svg{transform:translateX(3px)}

.fp-foot{display:none;margin-top:2.4rem;font-size:.92rem;color:rgba(255,255,255,.7);line-height:1.9}
.fp-foot p{margin-bottom:0rem}
.fp-foot b{color:#fff}
.fp-foot .copy{font-size:.82rem;color:rgba(255,255,255,.45);margin-top:6px}

/* 인덱스 (현재/전체) */
.fp-index{position:absolute;left:8vw;bottom:3rem;z-index:6;display:flex;align-items:center;gap:12px;color:#fff;font-family:var(--font-display);font-weight:700}
@media(max-width:767.98px){.fp-index{left:1.6rem;bottom:1.6rem}}
.fp-index #fpCur{font-size:1.5rem}
.fp-index .bar{width:48px;height:1px;background:rgba(255,255,255,.4)}
.fp-index .tot{font-size:.9rem;opacity:.55}

/* 닷 네비 (우측 세로) */
.fp-dots{position:absolute;right:3rem;top:50%;transform:translateY(-50%);z-index:6;display:flex;flex-direction:column;gap:18px}
@media(max-width:767.98px){.fp-dots{right:1rem;gap:12px}}
.fp-dot{position:relative;width:10px;height:10px;display:flex;align-items:center;justify-content:center}
.fp-dot::after{content:"";width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);transition:all .35s}
.fp-dot.on::after{background:var(--color-leaf);transform:scale(1.5)}
.fp-dot:hover::after{background:#fff}
.fp-dot__lbl{display:none !important}

/* 진행 힌트 */
/* soyo형 — 바닥 중앙의 가느다란 세로 스크롤 라인 (흰 채움이 흘러내림) */
/* 가로 슬라이드 방향 힌트 (좌→우 진행 바) */
.fp-hint{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:6;display:flex;flex-direction:row;align-items:center;gap:14px;color:#fff}
@media(max-width:767.98px){.fp-hint{display:none}}
.fp-hint__txt{font-family:var(--font-display);font-size:.66rem;letter-spacing:.35em;opacity:.7}
.fp-hint__arrow{display:flex;align-items:center;color:#fff}
.fp-hint__arrow svg{display:block;animation:fpArrow 1.7s ease-in-out infinite}
@keyframes fpArrow{0%,100%{transform:translateX(0);opacity:.55}50%{transform:translateX(7px);opacity:1}}

/* 모바일 세로 전환 (가로 슬라이드는 좁은 화면에서 부담 → 세로 스택 스냅 느낌 유지) */
@media(max-width:767.98px){
  .fp-title{margin-bottom:1.2rem}
}


/* =========================================================
   메인 본문 섹션 보강 (정원전시 푸터 / 신청 밴드 / 약도)
   ========================================================= */
/* 정원전시 하단 CTA */
.exhibit-foot{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:48px}
.exhibit-foot .btn-pill svg{width:18px;height:18px}

/* 행사프로그램 — 관람 사전예약 밴드 */
.apply-band{margin-top:56px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
    padding:clamp(34px,4vw,52px) clamp(30px,4vw,60px);border-radius:var(--radius-card);
    background:linear-gradient(120deg,var(--color-forest) 0%,var(--color-primary) 100%);color:#fff;
    background-image:radial-gradient(circle at 92% 0%,rgba(123,182,97,.4),transparent 52%),linear-gradient(120deg,var(--color-forest) 0%,var(--color-primary) 100%);
    box-shadow:var(--shadow-card)}
.apply-band__eyebrow{display:inline-block;font-family:var(--font-display);font-weight:700;letter-spacing:.2em;font-size:.85rem;color:var(--color-leaf);text-transform:uppercase}
.apply-band__title{margin-top:10px;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:800;letter-spacing:-.02em;line-height:1.25}
.apply-band__desc{margin-top:12px;font-size:1rem;color:rgba(255,255,255,.82);line-height:1.7;max-width:46rem}
.apply-band__btn{flex:0 0 auto;background:#fff;color:var(--color-forest);border:none}
.apply-band__btn:hover{background:var(--color-leaf);color:#fff}
.apply-band__btn svg{width:18px;height:18px}
@media(max-width:767.98px){.apply-band{flex-direction:column;align-items:flex-start}.apply-band__btn{width:100%;justify-content:center}}

/* 약도 (Location) — poswel .cont_section__card / .item1 톤앤매너
   좌: 이미지 배경 카드(타이틀+설명+글래스 버튼), 우: 지도. (backdrop blur 미사용) */
/* height/overflow/border/margin 은 옛 템플릿 style.css 의 .map-wrap 규칙을 덮어씀
   (style.css: height:450px;overflow:hidden;border → 카드 하단·둥근 모서리 잘림 원인) */
.map-wrap{display:grid;grid-template-columns:620fr 1204fr;gap:16px;align-items:stretch;height:auto;overflow:visible;border:0;margin-bottom:0}
@media(max-width:991.98px){.map-wrap{grid-template-columns:1fr;gap:12px}}

/* 텍스트 카드 (poswel item1) */
.loc-card{position:relative;border-radius:40px;overflow:hidden;min-height:480px;display:flex;padding:clamp(32px,3.4vw,60px);color:#fff;box-shadow:var(--shadow-card);background:#2D3D3A}
/* 대형 반투명 워터마크 텍스트 (배경과 어울리게) */
.loc-card__wm{position:absolute;z-index:1;top:clamp(18px,2.4vw,40px);right:clamp(18px,2.4vw,44px);margin:0;text-align:right;pointer-events:none;font-family:var(--font-display);font-weight:800;font-size:clamp(3.4rem,8vw,8rem);line-height:.92;letter-spacing:-.03em;color:rgba(255,255,255,.07)}
.loc-card__inner{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;width:100%}
/* 글자효과 (jakomosofa .sect_tit): 흐릿한 베이스 + span 오버레이 좌→우 채움 */
.loc-card__title{position:relative;display:inline-block;font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,3vw,3rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:14px}
.loc-card__title .base{color:rgba(255,255,255,.22);white-space:nowrap}
.loc-card__title .fill{position:absolute;left:0;top:0;width:0;height:100%;overflow:hidden;white-space:nowrap;color:#fff;transition:width 1.1s cubic-bezier(.22,1,.36,1) .35s}
.map-wrap.aos-animate .loc-card__title .fill{width:100%}
.loc-card__desc{font-size:1.1rem;font-weight:500;line-height:1.55;color:rgba(255,255,255,.92);margin-bottom:26px}
.loc-card__desc .loc-card__addr{display:block;margin-top:4px;font-size:.95rem;font-weight:400;color:rgba(255,255,255,.72)}
.loc-card__btns{display:flex;flex-wrap:wrap;gap:10px}
/* 글래스 버튼 (블러 미사용 — rgba 배경 + 라인) */
.btn-glass{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 22px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.55);color:#fff;font-weight:600;font-size:.96rem;transition:all .3s cubic-bezier(.22,1,.36,1)}
.btn-glass:hover{background:#fff;color:var(--color-text);border-color:#fff}
.btn-glass svg{width:16px;height:16px;transition:transform .3s}
.btn-glass:hover svg{transform:translateX(4px)}

/* 지도 */
/* filter 는 부모(.map-figure)에 둔다 — iframe 에 걸면 별도 합성 레이어가 되어
   부모의 border-radius 클리핑을 벗어나 하단·우측 모서리가 사각으로 남기 때문 */
.map-figure{position:relative;margin:0;border-radius:40px;overflow:hidden;min-height:480px;box-shadow:var(--shadow-card);filter:grayscale(.1) contrast(1.02)}
.map-figure iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:991.98px){.loc-card,.map-figure{border-radius:24px;min-height:340px}.loc-card{padding:28px}}
/* 모바일: 제목(HOW TO GET HERE)·주소를 각각 한 줄로 + 카드 내용 세로 중앙정렬 */
@media(max-width:767.98px){.loc-card__title br{display:none}.loc-card__desc .loc-card__addr{display:inline;margin:0 0 0 .5em}.loc-card__inner{justify-content:center}}
@media(max-width:575.98px){.loc-card__btns{width:100%}.btn-glass{flex:1;justify-content:center}}


/* =========================================================
   SECTION: PROGRAM (행사프로그램 · 신청)
   sustain형 톤앤매너 이식 — 좌측 전환 텍스트 패널 ↔ 우측 원형 스와이퍼,
   GSAP ScrollTrigger pin + 원형 확대→축소 인트로, 텍스트↔슬라이드 동기화.
   ========================================================= */
.sc-program{position:relative;z-index:10;background:var(--color-bg-paper);overflow:hidden}
.pgm-head{padding-top:var(--section-py)}
.pgm-head .exb-sub-pc{max-width:none;white-space:nowrap}
@media(max-width:575.98px){.pgm-head .exb-sub-pc{white-space:normal}}
/* 모바일: 프로그램 섹션 서브문구·화살표 숨김 (.pgm-head 로 스코프 → 전시 섹션 영향 없음) + 헤딩 중앙정렬 */
@media(max-width:1399.98px){.pgm-head .exb-sub-pc,.pgm-head .exb-arrow-pc{display:none}.pgm-head{text-align:center}}
.pgm-wrap{position:relative;width:100%;height:100dvh;overflow:hidden}
@media(min-width:1400px){.pgm-wrap{display:flex;align-items:center}}
@media(max-width:1399.98px){.pgm-wrap{height:auto;padding:0 0 var(--section-py)}}

/* 원형 인트로 애니메이션 박스 (PC only) */
.pgm-ani-box{display:none}
@media(min-width:1400px){
  .pgm-ani-box{display:block}
  .pgm-ani-box.step-0{z-index:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;width:100px;height:100px}
  .pgm-ani-box.step-1{z-index:10;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;width:35rem;height:35rem}
  .pgm-ani-box.target{pointer-events:none;z-index:10;position:absolute;top:0;left:0;width:100px;height:100px;border-radius:100%;overflow:hidden}
}
.pgm-ani-img{position:absolute;inset:0;overflow:hidden}
.pgm-ani-img > img{object-fit:cover;width:100%;height:100%}

/* 콘텐츠 */
.pgm-content{width:100%;position:relative}
.pgm-zone{position:relative}

/* 좌측 텍스트 패널 */
.pgm-panel{pointer-events:none;z-index:2}
@media(min-width:1400px){.pgm-panel{position:absolute;top:0;height:50rem;padding-top:3rem;left:clamp(24px,5vw,5rem)}}
@media(max-width:1399.98px){.pgm-panel{position:static;padding:0 20px;text-align:center}}
.pgm-en{font-family:var(--font-display);font-weight:700;color:var(--color-text);line-height:1;text-transform:capitalize}
@media(min-width:1400px){.pgm-en{font-size:3.6rem;letter-spacing:-.04em}}
@media(max-width:1399.98px){.pgm-en{display:none}}

.pgm-text-list{list-style:none;margin:0;padding:0;pointer-events:auto;position:relative}
@media(min-width:1400px){.pgm-text-list{margin-top:3.5rem;min-height:21rem}}
@media(max-width:1399.98px){.pgm-text-list{margin-top:1.8rem;min-height:11rem}}
.pgm-text-list > li{position:absolute;top:0;left:0;right:0;transition:opacity .5s cubic-bezier(.33,1,.68,1);opacity:0;pointer-events:none}
@media(max-width:1399.98px){.pgm-text-list > li{display:flex;flex-direction:column;align-items:center}}
.pgm-text-list > li.on{opacity:1;pointer-events:auto}
.pgm-text-item{white-space:nowrap}
@media(max-width:1399.98px){.pgm-text-item{white-space:normal;text-align:center}}
.pgm-text-title{font-weight:700;color:var(--color-text);line-height:1.1}
@media(min-width:1400px){.pgm-text-title{font-size:2.1rem;letter-spacing:-.03em}}
@media(max-width:1399.98px){.pgm-text-title{font-size:1.4rem}}
.pgm-text-desc{white-space:normal;color:var(--color-text-sub);font-weight:400}
@media(min-width:1400px){.pgm-text-desc{margin-top:1.8rem;width:34rem;font-size:1.2rem;line-height:1.65;letter-spacing:-.02em}}
@media(max-width:1399.98px){.pgm-text-desc{margin:1rem auto 0;max-width:30rem;font-size:.95rem;line-height:1.7}}
.pgm-accent{color:var(--color-primary);font-weight:600}
.pgm-arrow{display:inline-flex;align-items:center;justify-content:center;width:fit-content;border-radius:50%;background:var(--color-primary);color:#fff;transition:transform .4s,background .3s}
@media(min-width:1400px){.pgm-arrow{margin-top:2.8rem;width:3.2rem;height:3.2rem}}
@media(max-width:1399.98px){.pgm-arrow{margin-top:1.4rem;width:2.6rem;height:2.6rem}}
.pgm-arrow:hover{transform:translateX(6px);background:var(--color-primary-dark)}
.pgm-arrow svg{width:42%;height:42%}

/* 우측 원형 스와이퍼 */
.pgm-swiper{pointer-events:auto}
@media(max-width:1399.98px){.pgm-swiper{margin-top:2.4rem}}
#pgmSlider{overflow:visible}
#pgmSlider .swiper-slide{width:-moz-fit-content;width:fit-content;overflow:visible;transition:scale .5s cubic-bezier(.33,1,.68,1),opacity .5s cubic-bezier(.33,1,.68,1);scale:.68;opacity:.4}
#pgmSlider .swiper-slide-active{scale:1;opacity:1}
#pgmSlider .swiper-slide-prev{opacity:0}
.pgm-slide-item{position:relative;margin-inline:auto}
@media(min-width:1400px){.pgm-slide-item{width:60rem;height:35rem}}
@media(max-width:1399.98px){.pgm-slide-item{width:17rem;height:17rem}}
.pgm-circle-img{position:relative;margin-inline:auto;clip-path:circle(50% at 50% 50%);overflow:hidden}
@media(min-width:1400px){.pgm-circle-img{width:35rem;height:35rem}}
@media(max-width:1399.98px){.pgm-circle-img{width:17rem;height:17rem}}
/* 1400px 이상: 현재(active) 원 이미지가 좌측 텍스트와 겹치지 않게 오른쪽으로 이동(15rem).
   인트로 원도 동일 15rem. 다음(next) 슬라이드 원은 그보다 6rem 왼쪽(=9rem)으로 당겨 간격 좁힘.
   Swiper 는 개별 슬라이드가 아닌 wrapper 를 transform 하므로 슬라이드 내부 .pgm-circle-img 이동은 충돌 없음 */
@media(min-width:1400px){
    .pgm-circle-img{transform:translateX(15rem)}
    .pgm-ani-box.step-1{transform:translate(-50%,-50%) translateX(15rem)}
    #pgmSlider .swiper-slide-next .pgm-circle-img{transform:translateX(9rem)}
}
.pgm-circle-img > img{width:100%;height:100%;object-fit:cover}
.pgm-circle-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,24,14,.12),rgba(8,24,14,.46))}
.pgm-circle-overlay{z-index:5;position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.pgm-circle-label{font-family:var(--font-display);font-weight:700;color:#fff;text-align:center;text-transform:capitalize;line-height:1.1;text-shadow:0 2px 18px rgba(0,0,0,.3)}
@media(min-width:1400px){.pgm-circle-label{font-size:2.6rem;letter-spacing:-.03em}}
@media(max-width:1399.98px){.pgm-circle-label{font-size:1.25rem}}

/* 네비게이션 (fraction) */
.pgm-nav{z-index:5;display:flex;align-items:center;justify-content:center;gap:1rem}
@media(min-width:1400px){.pgm-nav{position:absolute;bottom:-4.4rem;right:clamp(24px,5vw,5rem)}}
@media(max-width:1399.98px){.pgm-nav{margin-top:2.2rem}}
.pgm-btn{cursor:pointer;width:2.7rem;height:2.7rem;border-radius:50%;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-sub);background:#fff;transition:all .3s}
.pgm-btn:hover{border-color:var(--color-primary);background:var(--color-primary);color:#fff}
.pgm-btn svg{width:42%;height:42%}
.pgm-fraction{display:flex;align-items:center;gap:.3rem;font-family:var(--font-display);font-weight:500;color:var(--color-text-muted)}
.pgm-fraction .current{color:var(--color-text);width:1.6rem;text-align:center}
.pgm-fraction .total{width:1.6rem;text-align:center}
.pgm-fraction .bar{opacity:.4}


/* =========================================================
   SECTION: NOTICE / LATEST (우리은행 .latest 톤앤매너 이식)
   대형 헤딩 + 헤어라인 구분 에디토리얼 리스트, 행 hover 시
   padding 0.6s 이동 + Primary 풀필 하이라이트.
   ========================================================= */
.sc-latest{position:relative;background:#fff;overflow:hidden}
/* 로고 워터마크 — 가로 중앙, 하단으로 크게 내려 끝이 살짝 잘리는 바닥 워터마크 */
.sc-latest::before{
    content:"";
    position:absolute;
    right:15%;
    top:9%;
    width:min(62%,640px);
    aspect-ratio:1000/300;
    background:url('../../../images/main/logo.png') no-repeat center/contain;
    opacity:0;
    transform:translateY(36px);
    transition:opacity 1.1s ease,transform 1.2s cubic-bezier(.22,1,.36,1);
    pointer-events:none;
    z-index:0;
}
/* 섹션이 화면에 들어오면 서서히 떠오르며 등장 */
.sc-latest.is-in::before{opacity:.04;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.sc-latest::before{transition:none}}
@media(max-width:767.98px){
    .sc-latest::before{display:none}
}
.latest-frame{position:relative;z-index:1;max-width:var(--container-max);margin:0 auto;padding:0 var(--grid-gutter)}
.latest-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(34px,4.5vw,5rem)}
.latest-heading{color:var(--color-text);font-weight:700;font-size:clamp(2.2rem,3.8vw,3.6rem);line-height:1.3;letter-spacing:-.02em}
.latest-more{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;font-size:.95rem;font-weight:600;color:var(--color-text);transition:gap .3s,color .3s;padding-bottom:.4rem}
.latest-more:hover{gap:14px;color:var(--color-primary)}
.latest-more svg{width:18px;height:18px}
.latest-list{list-style:none;margin:0;padding:0}
.latest-link{display:flex;align-items:center;gap:2rem;padding:clamp(20px,2.4vw,2.5rem) 0;border-top:1px solid rgba(20,67,42,.16);transition:padding .6s cubic-bezier(.22,1,.36,1),background .4s}
.latest-list li:last-child .latest-link{border-bottom:1px solid rgba(20,67,42,.16)}
.latest-category{flex-shrink:0;width:4.5rem;color:var(--color-text-sub);font-weight:700;font-size:1rem;line-height:1.6}
.latest-title{display:flex;gap:1.25rem;flex:1;min-width:0}
.latest-title-text{min-width:0;color:var(--color-text);font-weight:500;font-size:clamp(.98rem,1.2vw,1.2rem);line-height:1.45;letter-spacing:-.02em;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;transition:color .3s}
.latest-date{flex-shrink:0;color:var(--color-text-muted);font-weight:700;font-size:1rem;line-height:1.6;font-family:var(--font-display)}
/* hover / focus: padding 이동 + Primary 풀필 (Woori focus 톤) */
.latest-link:hover,.latest-link:focus-visible{padding-left:2rem;padding-right:2rem;background:var(--color-primary);outline:none}
.latest-link:hover .latest-category,.latest-link:focus-visible .latest-category,
.latest-link:hover .latest-title-text,.latest-link:focus-visible .latest-title-text,
.latest-link:hover .latest-date,.latest-link:focus-visible .latest-date{color:#fff}
@media(max-width:767.98px){
  .latest-link{flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.3rem 0}
  .latest-link:hover,.latest-link:focus-visible{padding-left:1.1rem;padding-right:1.1rem}
  .latest-category{width:auto}
  .latest-title{width:100%}
  .latest-title-text{white-space:normal;-webkit-line-clamp:2;font-size:1rem}
}
