@charset "utf-8";
/* 01. 글꼴 · 디자인 변수 (색, 글자 크기, 폭은 여기서만 관리, 1rem = 10px) */
@font-face {font-family: 'Pretendard';font-weight: 400;font-style: normal;font-display: swap;src: url('../fonts/Pretendard-Regular.woff2') format('woff2');}
@font-face {font-family: 'Pretendard';font-weight: 500;font-style: normal;font-display: swap;src: url('../fonts/Pretendard-Medium.woff2') format('woff2');}
@font-face {font-family: 'Pretendard';font-weight: 700;font-style: normal;font-display: swap;src: url('../fonts/Pretendard-Bold.woff2') format('woff2');}
@font-face {font-family: 'Playfair Display';font-weight: 400 800;font-style: normal;font-display: swap;src: url('../fonts/PlayfairDisplay-normal.woff2') format('woff2');}
@font-face {font-family: 'Playfair Display';font-weight: 400 800;font-style: italic;font-display: swap;src: url('../fonts/PlayfairDisplay-italic.woff2') format('woff2');}
@font-face {font-family: 'Inter';font-weight: 300 600;font-style: normal;font-display: swap;src: url('../fonts/Inter-normal.woff2') format('woff2');}
:root {--green: #2F7D4A;--forest: #174B32;--fresh: #79B971;--mint: #EAF5EA;--ivory: #FAF9F4;--beige: #F1EDE3;--charcoal: #202920;--sub: #6D756D;--line: #DDDBD0;--font-ko: 'Inter', 'Pretendard', 'Malgun Gothic', sans-serif;--font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;--wrap: 144rem;--wide: 180rem;--gutter: 7.2rem;--header-h: 10rem;--header-hs: 7.2rem;--ease: cubic-bezier(.22, .8, .2, 1);--radius: 1.6rem;}
:root {--fs-hero: clamp(4.6rem, 5.6vw, 8.8rem);--fs-xl: clamp(4rem, 5vw, 7.2rem);--fs-lg: clamp(3.4rem, 3.8vw, 6rem);--fs-h3: clamp(2.2rem, 1.8vw, 3rem);--fs-lead: clamp(1.8rem, 1.3vw, 2.2rem);--fs-body: 1.8rem;--fs-small: 1.5rem;}
html {font-size: 62.5%;-webkit-text-size-adjust: 100%;scroll-behavior: smooth;scroll-padding-top: calc(var(--header-hs) + 1.6rem);overflow-y: scroll;}
*, *::before, *::after {box-sizing: border-box;}
body {margin: 0;color: var(--charcoal);background: var(--ivory);font: 400 var(--fs-body)/1.75 var(--font-ko);-webkit-font-smoothing: antialiased;word-break: keep-all;overflow-wrap: break-word;}
body.menu_open, body.lb_open {overflow: hidden;}
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote {margin: 0;padding: 0;}
ul, ol {list-style: none;}
img, svg {display: block;max-width: 100%;}
a {color: inherit;text-decoration: none;}
button {padding: 0;border: 0;background: none;font: inherit;color: inherit;cursor: pointer;}
dialog {padding: 0;border: 0;}
i, em, b {font-style: normal;}
[hidden] {display: none !important;}
:focus-visible {outline: .3rem solid var(--green);outline-offset: .4rem;}
.wrap {width: 100%;max-width: calc(var(--wrap) + var(--gutter) * 2);padding-inline: var(--gutter);margin-inline: auto;}
.wrap_wide {width: 100%;max-width: calc(var(--wide) + var(--gutter) * 2);padding-inline: var(--gutter);margin-inline: auto;}
.skip_link {position: fixed;left: 1.6rem;top: -10rem;z-index: 1000;padding: 1.2rem 2rem;background: var(--forest);color: #fff;font-weight: 700;}
.skip_link:focus {top: 1.6rem;}
.section {position: relative;padding-block: 16rem;overflow: hidden;}
/* 02. 공통 요소: 영문 소제목 · 제목 · 버튼 · 아이콘 */
.eyebrow {display: flex;align-items: center;gap: 1.4rem;margin-bottom: 2.6rem;font: 500 1.4rem/1 var(--font-ko);letter-spacing: .28em;text-transform: uppercase;color: var(--green);}
.eyebrow::before {content: '';width: 4rem;height: .1rem;background: currentColor;transform-origin: left;transition: transform 1s .3s var(--ease);}
.reveal_ready:not(.is_visible) .eyebrow::before, .eyebrow.reveal_ready:not(.is_visible)::before {transform: scaleX(0);}
.title_lg {font-size: var(--fs-lg);font-weight: 700;line-height: 1.28;letter-spacing: -.04em;color: var(--charcoal);}
.title_xl {font-size: var(--fs-xl);font-weight: 700;line-height: 1.22;letter-spacing: -.04em;color: #fff;}
.title_lg em, .title_xl em {color: var(--green);}
.title_xl em {color: var(--fresh);}
.lead {margin-top: 3rem;font-size: var(--fs-lead);line-height: 1.85;color: var(--charcoal);}
.body_text {margin-top: 2rem;font-size: 1.7rem;color: var(--sub);}
.section_head {display: flex;align-items: flex-end;justify-content: space-between;gap: 8rem;margin-bottom: 9rem;}
.head_desc {max-width: 44rem;font-size: 1.6rem;color: var(--sub);}
.ico {width: 4.8rem;height: 4.8rem;fill: none;stroke: currentColor;stroke-width: 1.3;stroke-linecap: round;stroke-linejoin: round;}
.arrow {display: inline-grid;place-items: center;width: 2.4rem;height: 2.4rem;overflow: hidden;}
.arrow svg {width: 100%;height: 100%;fill: none;stroke: currentColor;stroke-width: 1.8;stroke-linecap: round;stroke-linejoin: round;transition: transform .45s var(--ease);}
a:hover .arrow svg, a:focus-visible .arrow svg {transform: translateX(.6rem);}
.btn {display: inline-flex;align-items: center;justify-content: center;gap: 1.4rem;min-height: 6rem;padding: 0 3.6rem;border: .1rem solid transparent;border-radius: 10rem;font-size: 1.6rem;font-weight: 700;transition: background .35s, color .35s, border-color .35s;}
.btn_sm {min-height: 4.8rem;padding: 0 2.6rem;font-size: 1.5rem;}
.btn_block {width: 100%;}
.btn_primary {background: var(--green);color: #fff;}
.btn_primary:hover, .btn_primary:focus-visible {background: var(--forest);}
.btn_light {background: var(--ivory);color: var(--forest);}
.btn_light:hover, .btn_light:focus-visible {background: var(--fresh);color: var(--forest);}
.btn_ghost {border-color: rgba(255, 255, 255, .7);color: #fff;}
.btn_ghost:hover, .btn_ghost:focus-visible {background: #fff;color: var(--forest);}
.btn_line {border-color: var(--green);color: var(--green);}
.btn_line:hover, .btn_line:focus-visible {background: var(--green);color: #fff;}
/* 03. 헤더 · 모바일 메뉴 */
.header {position: fixed;inset: 0 0 auto;z-index: 100;height: var(--header-h);color: #fff;transition: height .45s var(--ease), background .35s, color .35s, box-shadow .35s;}
.header_inner {display: flex;align-items: center;justify-content: space-between;gap: 4rem;max-width: calc(var(--wide) + var(--gutter) * 2);height: 100%;padding-inline: var(--gutter);margin-inline: auto;}
.header.is_scrolled {height: var(--header-hs);background: rgba(250, 249, 244, .94);backdrop-filter: blur(1.4rem);color: var(--charcoal);box-shadow: 0 .1rem 0 var(--line);}
.logo {display: inline-flex;align-items: center;gap: 1.2rem;flex-shrink: 0;}
.logo_mark {width: 4.6rem;height: 4.6rem;transition: transform .45s var(--ease), color .35s;}
.header.is_scrolled .logo_mark {color: var(--green);transform: scale(.88);}
.logo_text {display: grid;line-height: 1.1;}
.logo_text strong {font: 600 2.2rem/1 var(--font-serif);letter-spacing: .2em;}
.logo_text small {margin-top: .5rem;font: 500 1.1rem/1 var(--font-ko);letter-spacing: .22em;opacity: .8;}
.gnb_list {display: flex;gap: clamp(2.4rem, 3.4vw, 5.6rem);}
.gnb_list a {position: relative;display: block;padding-block: 1rem;font-size: 1.6rem;font-weight: 500;white-space: nowrap;}
.gnb_list a::after {content: '';position: absolute;left: 0;right: 0;bottom: .2rem;height: .1rem;background: currentColor;transform: scaleX(0);transform-origin: left;transition: transform .45s var(--ease);}
.gnb_list a:hover::after, .gnb_list a:focus-visible::after, .gnb_list a.is_active::after {transform: scaleX(1);}
.header.is_scrolled .gnb_list a.is_active {color: var(--green);font-weight: 700;}
.header_util {display: flex;align-items: center;gap: 1.6rem;}
.header:not(.is_scrolled) .btn_primary {background: var(--ivory);color: var(--forest);}
.header:not(.is_scrolled) .btn_primary:hover {background: var(--fresh);}
.gnb_toggle {display: none;width: 4.8rem;height: 4.8rem;place-content: center;gap: .7rem;}
.gnb_toggle span {display: block;width: 2.8rem;height: .2rem;background: currentColor;}
.gnb_panel {width: 100%;max-width: none;height: 100vh;height: 100dvh;max-height: none;margin: 0;padding: 2rem var(--gutter) 4rem;color: var(--charcoal);background: var(--ivory);}
.gnb_panel[open] {display: flex;flex-direction: column;animation: fade_in .35s var(--ease);}
.gnb_panel::backdrop {background: var(--ivory);}
.panel_head {display: flex;align-items: center;justify-content: space-between;min-height: 6.4rem;}
.panel_head .logo_text strong {color: var(--forest);}
.gnb_close {display: grid;place-items: center;width: 4.8rem;height: 4.8rem;font-size: 3.6rem;line-height: 1;}
.panel_nav {margin-block: auto;padding-block: 3rem;}
.panel_nav a {display: flex;align-items: baseline;gap: 2rem;padding-block: 1.6rem;border-bottom: .1rem solid var(--line);font-size: clamp(2.6rem, 7vw, 4rem);font-weight: 500;letter-spacing: -.03em;}
.panel_nav a span {font: 400 1.4rem/1 var(--font-serif);letter-spacing: .12em;color: var(--green);}
@keyframes fade_in {from {opacity: 0;} to {opacity: 1;}}
/* 04. 히어로 */
.hero {position: relative;display: flex;flex-direction: column;justify-content: center;min-height: 100vh;min-height: 100svh;max-height: 120rem;padding-top: var(--header-h);overflow: hidden;color: #fff;background: var(--forest);}
.hero_media {position: absolute;inset: 0;}
.hero_media img {width: 100%;height: 100%;object-fit: cover;transform-origin: 60% 50%;animation: hero_zoom 14s var(--ease) both;}
.hero_media::after {content: '';position: absolute;inset: 0;background: linear-gradient(90deg, rgba(14, 44, 29, .78) 0%, rgba(23, 75, 50, .46) 40%, rgba(23, 75, 50, 0) 74%), linear-gradient(0deg, rgba(14, 38, 25, .6) 0%, transparent 34%), linear-gradient(180deg, rgba(14, 38, 25, .5) 0%, transparent 22%);}
.hero_inner {position: relative;z-index: 2;padding-block: 10rem 18rem;}
.hero .eyebrow {color: var(--fresh);}
.hero_title {max-width: 100rem;font-size: var(--fs-hero);font-weight: 500;line-height: 1.2;letter-spacing: -.05em;}
.hero_title span, .hero_title strong {display: block;}
.hero_title strong {font-weight: 700;}
.hero_sub {margin-top: 4.2rem;font-size: var(--fs-lead);line-height: 1.85;color: rgba(255, 255, 255, .9);}
.hero_cta {display: flex;flex-wrap: wrap;gap: 1.4rem;margin-top: 5.6rem;}
.hero_foot {position: absolute;inset: auto 0 4rem;z-index: 3;display: flex;align-items: flex-end;justify-content: space-between;width: auto;}
.hero_note {display: inline-flex;align-items: center;gap: 1rem;padding: 1rem 2rem;border: .1rem solid rgba(255, 255, 255, .45);border-radius: 10rem;background: rgba(14, 38, 25, .3);backdrop-filter: blur(.8rem);font-size: 1.4rem;font-weight: 500;}
.open_status::before {content: '';display: inline-block;width: .9rem;height: .9rem;margin-right: 1rem;border-radius: 50%;background: var(--fresh);box-shadow: 0 0 0 .4rem rgba(121, 185, 113, .3);}
.open_status.is_closed::before {background: #D9A441;box-shadow: 0 0 0 .4rem rgba(217, 164, 65, .3);}
.scroll_cue {display: grid;justify-items: center;gap: 1.2rem;font: 500 1.2rem/1 var(--font-ko);letter-spacing: .3em;text-transform: uppercase;}
.scroll_cue i {display: block;width: .1rem;height: 6.4rem;background: #fff;transform-origin: top;animation: cue 2.4s var(--ease) infinite;}
.hero_in {opacity: 0;transform: translateY(3rem);animation: hero_rise 1.2s var(--ease) forwards;animation-delay: calc(.15s + var(--i, 0) * .14s);}
@keyframes hero_zoom {from {transform: scale(1.12);} to {transform: scale(1);}}
@keyframes hero_rise {from {opacity: 0;transform: translateY(3rem);} to {opacity: 1;transform: none;}}
@keyframes cue {0% {transform: scaleY(0);transform-origin: top;} 45% {transform: scaleY(1);transform-origin: top;} 55% {transform: scaleY(1);transform-origin: bottom;} 100% {transform: scaleY(0);transform-origin: bottom;}}
/* 05. 브랜드 스토리 */
.story {background: var(--ivory);}
.story_bg {position: absolute;left: -2vw;top: 4rem;z-index: 0;font: italic 400 clamp(18rem, 26vw, 44rem)/.9 var(--font-serif);letter-spacing: -.02em;color: var(--mint);white-space: nowrap;pointer-events: none;user-select: none;}
.story_grid {position: relative;z-index: 1;display: grid;grid-template-columns: 6fr 5fr;gap: 10rem;align-items: center;}
.story_points {margin-top: 6rem;border-top: .1rem solid var(--line);}
.story_points li {display: grid;grid-template-columns: 5rem 14rem 1fr;gap: 1.6rem;align-items: baseline;padding-block: 2.4rem;border-bottom: .1rem solid var(--line);}
.story_points span {font: 400 1.5rem/1 var(--font-serif);letter-spacing: .12em;color: var(--green);}
.story_points strong {font: 600 2.2rem/1 var(--font-serif);}
.story_points em {font-size: 1.6rem;color: var(--sub);}
.story_visual {position: relative;padding-bottom: 12rem;}
.story_img {overflow: hidden;border-radius: var(--radius);background: var(--beige);}
.story_img img {width: 100%;height: 100%;object-fit: cover;transform: translate3d(0, var(--py, 0px), 0) scale(var(--sc, 1));transition: transform 1.2s var(--ease);}
.story_img_a {width: 80%;margin-left: auto;aspect-ratio: 4 / 5;}
.story_img_b {position: absolute;left: 0;bottom: 0;width: 48%;aspect-ratio: 1 / 1;border: .9rem solid var(--ivory);border-radius: 2.4rem;}
.badge {position: absolute;left: 4%;top: -4rem;z-index: 2;display: grid;place-items: center;width: 14rem;height: 14rem;border-radius: 50%;background: var(--forest);color: var(--fresh);}
.badge > svg:first-child {position: absolute;inset: 0;width: 100%;height: 100%;animation: badge_spin 24s linear infinite;}
.badge text {font: 500 15px/1 var(--font-ko);letter-spacing: 3.4px;fill: #fff;}
.badge_leaf {width: 4rem;height: 4rem;}
@keyframes badge_spin {to {transform: rotate(360deg);}}
/* 06. 시그니처 메뉴 (비대칭 구성) */
.menu {background: var(--beige);}
.menu_img {position: relative;overflow: hidden;border-radius: var(--radius);background: #e6e0d2;}
.menu_img img {width: 100%;height: 100%;object-fit: cover;transform: translate3d(0, var(--py, 0px), 0) scale(var(--sc, 1));transition: transform 1.2s var(--ease);}
[data-parallax] {--sc: 1.1;transition: none;}
.menu_tag {display: inline-block;margin-bottom: 1.8rem;font: 500 1.3rem/1 var(--font-ko);letter-spacing: .22em;text-transform: uppercase;color: var(--green);}
.menu_info h3 {font-size: var(--fs-h3);font-weight: 700;line-height: 1.35;letter-spacing: -.03em;}
.menu_info p {margin-top: 1.4rem;font-size: 1.6rem;color: var(--sub);}
.menu_info .menu_meta {display: flex;align-items: baseline;gap: 1.6rem;margin-top: 2.4rem;}
.price {font: 600 3rem/1 var(--font-serif);color: var(--forest);}
.price small {margin-left: .3rem;font: 500 1.4rem/1 var(--font-ko);color: var(--sub);}
.note {font: 500 1.2rem/1 var(--font-ko);letter-spacing: .2em;color: var(--green);}
.menu_feature {display: grid;grid-template-columns: 7fr 5fr;gap: 8rem;align-items: center;}
.menu_feature .menu_img {aspect-ratio: 4 / 3;}
.menu_feature .menu_info h3 {font-size: clamp(3rem, 2.8vw, 4.4rem);}
.menu_feature .menu_info p {font-size: 1.8rem;}
.menu_trio {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 4rem;align-items: start;margin-top: 14rem;}
.menu_card_a {margin-top: 10rem;}
.menu_card_c {margin-top: 18rem;}
.menu_card .menu_img {aspect-ratio: 4 / 5;}
.menu_card_c .menu_img {aspect-ratio: 1 / 1;}
.menu_card .menu_info {padding-top: 2.6rem;}
.menu_wide {display: grid;grid-template-columns: 7fr 4fr;gap: 8rem;align-items: center;margin-top: 14rem;}
.menu_wide .menu_img {aspect-ratio: 3 / 2;}
.menu_wide_rev {grid-template-columns: 4fr 7fr;}
.menu_wide_rev .menu_img {order: 2;}
/* 07. Why Verdant (카드 없이 선과 아이콘으로 구성) */
.why {background: var(--mint);}
.why_grid {display: grid;grid-template-columns: 5fr 7fr;gap: 10rem;align-items: start;}
.why_head {position: sticky;top: 14rem;}
.why_list {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 0 6rem;}
.why_list li {position: relative;padding: 5rem 0 5.2rem;border-top: .1rem solid rgba(47, 125, 74, .35);}
.why_list .ico {width: 5.2rem;height: 5.2rem;margin-bottom: 3.2rem;color: var(--green);transition: transform .5s var(--ease), color .4s;}
.why_list li:hover .ico {color: var(--forest);transform: translateY(-.6rem) rotate(-6deg);}
.why_no {position: absolute;right: 0;top: 5rem;font: 400 1.6rem/1 var(--font-serif);letter-spacing: .12em;color: var(--green);}
.why_list h3 {font-size: 2.6rem;font-weight: 700;letter-spacing: -.03em;}
.why_list p {margin-top: 1.4rem;font-size: 1.7rem;color: var(--sub);}
/* 08. 커피 & 푸드 스토리 (화면 가득 교차) */
.craft {background: var(--ivory);}
.craft_intro {padding-block: 16rem 10rem;}
.craft_row {display: grid;align-items: stretch;}
.craft_row_a {grid-template-columns: 1fr 1fr;background: var(--ivory);}
.craft_row_b {grid-template-columns: 1fr 1fr;background: var(--beige);}
.craft_row_c {grid-template-columns: 7fr 5fr;background: var(--forest);color: #fff;}
.craft_img {position: relative;min-height: 80rem;overflow: hidden;}
.craft_img img {position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover;transform: translate3d(0, var(--py, 0px), 0) scale(var(--sc, 1));}
.craft_text {display: flex;flex-direction: column;justify-content: center;padding: 10rem clamp(4rem, 8vw, 14rem);}
.craft_row_a .craft_text {padding-right: max(var(--gutter), calc((100vw - var(--wrap)) / 2));}
.craft_row_b .craft_text {padding-left: max(var(--gutter), calc((100vw - var(--wrap)) / 2));}
.craft_row_c .craft_text {padding-right: max(var(--gutter), calc((100vw - var(--wrap)) / 2));}
.craft_no {margin-bottom: 2.4rem;font: italic 400 clamp(6rem, 7vw, 10rem)/1 var(--font-serif);color: var(--fresh);}
.craft_text h3 {font-size: clamp(2.8rem, 2.6vw, 4rem);font-weight: 700;line-height: 1.35;letter-spacing: -.04em;}
.craft_text p {margin-top: 2.4rem;font-size: 1.8rem;color: var(--sub);}
.craft_row_c .craft_text p {color: rgba(255, 255, 255, .8);}
.craft_steps {display: flex;gap: 4rem;margin-top: 4.4rem;padding-top: 3rem;border-top: .1rem solid var(--line);}
.craft_steps li {display: grid;gap: .6rem;font-size: 1.5rem;color: var(--sub);}
.craft_steps b {font: 600 2rem/1 var(--font-serif);color: var(--green);}
.craft_tags {display: flex;flex-wrap: wrap;gap: 1rem;margin-top: 3.6rem;}
.craft_tags li {padding: .9rem 2rem;border: .1rem solid var(--green);border-radius: 10rem;font: 500 1.4rem/1 var(--font-ko);letter-spacing: .08em;color: var(--green);}
/* 09. 공간 갤러리 (비대칭 그리드 + 라이트박스) */
.space {background: var(--ivory);}
.gallery {display: grid;grid-template-columns: repeat(12, minmax(0, 1fr));grid-auto-rows: 10rem;gap: 2rem;}
.g1 {grid-column: 1 / 8;grid-row: 1 / 7;}
.g2 {grid-column: 8 / 13;grid-row: 1 / 8;}
.g3 {grid-column: 1 / 5;grid-row: 7 / 11;}
.g4 {grid-column: 5 / 8;grid-row: 7 / 11;}
.g5 {grid-column: 1 / 8;grid-row: 11 / 15;}
.g6 {grid-column: 8 / 13;grid-row: 8 / 15;}
.g {min-width: 0;}
.g_btn {position: relative;display: block;width: 100%;height: 100%;overflow: hidden;border-radius: var(--radius);background: var(--beige);text-align: left;}
.g_btn img {width: 100%;height: 100%;object-fit: cover;transition: transform 1.2s var(--ease);}
.g_btn:hover img, .g_btn:focus-visible img {transform: scale(1.07);}
.g_cap {position: absolute;left: 2rem;bottom: 2rem;padding: .8rem 1.6rem;border-radius: 10rem;background: rgba(250, 249, 244, .92);font: 500 1.3rem/1 var(--font-ko);letter-spacing: .12em;text-transform: uppercase;color: var(--forest);transform: translateY(1.2rem);opacity: 0;transition: opacity .4s, transform .5s var(--ease);}
.g_btn:hover .g_cap, .g_btn:focus-visible .g_cap {opacity: 1;transform: none;}
.lightbox {position: fixed;inset: 0;z-index: 300;display: grid;grid-template-columns: 8rem 1fr 8rem;align-items: center;justify-items: center;background: rgba(14, 26, 18, .94);animation: fade_in .3s var(--ease);}
.lb_figure {display: grid;justify-items: center;gap: 1.6rem;max-width: 100%;padding: 4rem 0;}
.lb_img {max-width: min(120rem, 100%);max-height: 80vh;border-radius: 1.2rem;object-fit: contain;}
.lb_cap {font-size: 1.5rem;color: rgba(255, 255, 255, .8);}
.lb_close, .lb_prev, .lb_next {display: grid;place-items: center;width: 5.6rem;height: 5.6rem;border: .1rem solid rgba(255, 255, 255, .5);border-radius: 50%;font-size: 2.4rem;color: #fff;transition: background .3s, color .3s;}
.lb_close:hover, .lb_prev:hover, .lb_next:hover, .lb_close:focus-visible, .lb_prev:focus-visible, .lb_next:focus-visible {background: #fff;color: var(--forest);}
.lb_close {position: absolute;right: 3rem;top: 3rem;}
/* 10. 방문 안내 */
.visit {background: var(--beige);}
.info_grid {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 0 6rem;}
.info_grid li {display: grid;grid-template-columns: 5.6rem 1fr;gap: 2.4rem;align-items: start;padding-block: 4rem;border-top: .1rem solid rgba(32, 41, 32, .2);}
.info_grid .ico {width: 4.6rem;height: 4.6rem;color: var(--green);transition: transform .5s var(--ease);}
.info_grid li:hover .ico {transform: translateY(-.5rem) scale(1.06);}
.info_grid strong {display: block;margin-bottom: .8rem;font-size: 1.8rem;font-weight: 700;}
.info_grid p {font-size: 1.6rem;line-height: 1.8;color: var(--sub);}
/* 11. 예약 CTA (딥그린) */
.reserve {position: relative;padding-block: 18rem;overflow: hidden;color: #fff;background: var(--forest);}
.reserve_inner {position: relative;z-index: 1;}
.reserve .eyebrow {color: var(--fresh);}
.reserve .lead {max-width: 56rem;color: rgba(255, 255, 255, .82);}
.reserve_cta {display: flex;flex-wrap: wrap;gap: 1.4rem;margin-top: 5rem;}
.reserve_fx {position: absolute;inset: 0;pointer-events: none;}
.reserve_fx i {position: absolute;border-radius: 50%;animation: blob_float 22s ease-in-out infinite alternate;}
.reserve_fx i:nth-child(1) {right: -10%;top: -20%;width: 70rem;height: 70rem;background: radial-gradient(circle, rgba(121, 185, 113, .28), transparent 65%);}
.reserve_fx i:nth-child(2) {left: -8%;bottom: -30%;width: 60rem;height: 60rem;background: radial-gradient(circle, rgba(47, 125, 74, .5), transparent 65%);animation-duration: 28s;}
.reserve_fx i:nth-child(3) {left: 42%;top: 10%;width: 40rem;height: 40rem;background: radial-gradient(circle, rgba(250, 249, 244, .12), transparent 65%);animation-duration: 34s;}
.reserve_leaf {position: absolute;right: 6%;bottom: -4rem;width: 38rem;height: 62rem;color: rgba(121, 185, 113, .35);transform-origin: 50% 100%;animation: branch_sway 9s ease-in-out infinite alternate;}
@keyframes blob_float {from {transform: translate(0, 0) scale(1);} to {transform: translate(-5rem, 7rem) scale(1.1);}}
@keyframes branch_sway {from {transform: rotate(-2deg);} to {transform: rotate(3deg);}}
/* 12. 푸터 */
.footer {color: rgba(250, 249, 244, .74);background: var(--charcoal);}
.footer_top {display: flex;align-items: flex-start;justify-content: space-between;gap: 8rem;padding-block: 9rem 6rem;}
.footer .logo {color: #fff;}
.footer .logo_mark {color: var(--fresh);}
.footer_brand p {margin-top: 2.4rem;font-size: 1.6rem;}
.sns {display: flex;gap: 1rem;margin-top: 3rem;}
.sns a {display: grid;place-items: center;width: 4.8rem;height: 4.8rem;border: .1rem solid rgba(250, 249, 244, .3);border-radius: 50%;color: #fff;transition: background .3s, color .3s, border-color .3s;}
.sns a:hover, .sns a:focus-visible {border-color: var(--fresh);background: var(--fresh);color: var(--forest);}
.sns svg {width: 2.2rem;height: 2.2rem;}
.footer_info {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 3rem 8rem;font-size: 1.5rem;}
.footer_info div {display: grid;gap: .6rem;}
.footer_info dt {font-size: 1.3rem;letter-spacing: .14em;color: rgba(250, 249, 244, .5);}
.footer_bottom {display: grid;gap: .6rem;padding-block: 3rem 4rem;border-top: .1rem solid rgba(250, 249, 244, .14);font-size: 1.3rem;line-height: 1.8;color: rgba(250, 249, 244, .55);}
/* 13. 모바일 하단 바 · 맨 위로 */
.m_bar {display: none;}
.btn_top {position: fixed;right: 2.8rem;bottom: 2.8rem;z-index: 50;display: grid;place-items: center;width: 5.6rem;height: 5.6rem;border-radius: 50%;background: var(--ivory);box-shadow: 0 0 0 .1rem var(--line), 0 .8rem 2.4rem rgba(32, 41, 32, .12);color: var(--forest);font-size: 2.2rem;visibility: hidden;opacity: 0;transition: opacity .3s, visibility .3s, background .3s, color .3s;}
.btn_top:hover {background: var(--green);color: #fff;}
.btn_top.is_visible {visibility: visible;opacity: 1;}
/* 14. 스크롤 등장 (끝나면 JS 가 클래스를 제거해 호버 효과와 충돌하지 않게 함) */
.reveal_ready {opacity: 0;transform: translateY(4rem);transition: opacity 1s var(--ease), transform 1s var(--ease);transition-delay: var(--d, 0s);}
.reveal_ready.is_visible {opacity: 1;transform: none;}
.reveal_ready.is_curtain {opacity: 1;transform: none;clip-path: inset(0 0 98% 0);transition: clip-path 1.4s var(--ease);transition-delay: var(--d, 0s);}
.reveal_ready.is_curtain.is_visible {clip-path: inset(0);}
