:root {
  --color-main-green: #1E552B;
  --color-dark-green: #174522;
  --color-ivory: #F2F0E9;
  --color-soft-ivory: #F7F5EF;
  --color-brown: #351F19;
  --color-text: #20231F;
  --color-muted: #70746A;

  --bg: var(--color-ivory);
  --paper: var(--color-soft-ivory);
  --ink: var(--color-text);
  --muted: var(--color-muted);
  --forest: var(--color-main-green);
  --line: rgba(32, 35, 31, .18);
  --max: 1440px;
  --pad: clamp(24px, 5vw, 80px);
  --content-pad-x: clamp(40px, 5vw, 80px);
  --content-width: 1138px;
  --editorial-width: min(88vw, 1440px);

  --font-sans:"Gothic A1", sans-serif;
  --font-brand:"Cormorant Garamond", serif;
  --font-season:
    "Pretendard Variable",
    Pretendard,
    -apple-system,
    BlinkMacSystemFont,
    "Apple SD Gothic Neo",
    "Noto Sans KR",
    sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
#season,
#experience,
#visit { scroll-margin-top:96px; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--font-sans); font-size:15px; line-height:1.65; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.mobile-only { display:none; }

.site-header { position:fixed; z-index:20; top:0; left:0; width:100%; height:88px; display:flex; align-items:center; gap:40px; padding:0 var(--pad); color:var(--color-ivory); background:var(--forest); border-bottom:1px solid rgba(242,240,233,.12); }
.brand { display:inline-flex; align-items:center; flex-shrink:0; }
.brand img {
  display:block;
  width:auto;
  height:46px;
  object-fit:contain;
}
.desktop-nav { margin-left:auto; display:flex; gap:28px; font-size:12px; letter-spacing:.1em; }
.desktop-nav a { opacity:.88; }
.book-button { border:1px solid rgba(242,240,233,.7); border-radius:100px; padding:10px 18px; font-size:12px; letter-spacing:.1em; }
.menu-button { display:none; margin-left:auto; background:none; color:inherit; border:0; font:inherit; letter-spacing:.1em; }
.mobile-menu { display:none; }

.hero {
  position:relative;
  min-height:74vh;
  margin-top:88px;
  margin-bottom:0;
  padding:clamp(40px,5vw,64px) clamp(24px,5vw,96px) 56px;
  color:var(--color-ivory);
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
}
.hero-bg {
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.hero-bg img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
  transform-origin:center center;
  will-change:transform;
  animation:hero-bg-drift 16s ease-in-out infinite alternate;
}
@keyframes hero-bg-drift {
  from {
    transform:scale(1.03) translate3d(0, 0, 0);
  }
  to {
    transform:scale(1.06) translate3d(-0.8%, 0.6%, 0);
  }
}
.hero-overlay {
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(0,0,0,.22);
  pointer-events:none;
}
.hero-copy {
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:42em;
  margin:0 auto;
  padding:0;
  text-align:center;
  word-break:keep-all;
  color:var(--color-ivory);
}
.hero-copy .eyebrow {
  margin:0 0 15px;
  font-family:var(--font-brand);
  font-size:clamp(52px,5.2vw,68px);
  font-style:italic;
  font-weight:400;
  letter-spacing:.02em;
  color:var(--color-ivory);
  opacity:.88;
}
.hero h1 {
  margin:0 0 32px;
  font-size:clamp(14px,1.25vw,18px);
  line-height:1.28;
  letter-spacing:.1em;
  font-weight:300;
  max-width:none;
  word-break:keep-all;
  color:var(--color-ivory);
}
.hero-actions {
  display:flex;
  gap:26px;
  align-items:center;
  justify-content:center;
}
.scroll-cue {
  position:absolute;
  left:50%;
  bottom:22px;
  z-index:2;
  transform:translateX(-50%);
  font-weight:500;
  font-size:11px;
  line-height:1;
  letter-spacing:.1em;
  color:var(--color-ivory);
}

.section { max-width:var(--max); margin:0 auto; padding:120px var(--pad); }
.eyebrow { margin:0 0 16px; font-weight:500; font-size:11px; line-height:1; letter-spacing:.1em; opacity:.7; }
.eyebrow.dark { color:var(--muted); }
h2 { margin:0; font-size:clamp(32px,4.2vw,62px); line-height:1.12; letter-spacing:-.05em; font-weight:400; }
.text-link { display:inline-flex; width:max-content; border-bottom:1px solid currentColor; padding-bottom:5px; font-size:13px; }
.text-link.light { color:var(--color-ivory); }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 22px; border-radius:100px; font-size:13px; }
.button-light { background:var(--paper); color:var(--ink); }

.season.section {
  max-width:none;
  margin:0 auto;
  padding:clamp(90px,8vw,130px) var(--content-pad-x) clamp(75px,6.5vw,110px);
  background:var(--color-ivory);
  color:var(--color-brown);
  font-family:var(--font-season);
  word-break:keep-all;
  height:auto;
  min-height:0;
}
.season-inner {
  width:var(--editorial-width);
  max-width:100%;
  margin:0 auto;
}
.season-eyebrow {
  margin:0 0 32px;
  font-weight:500;
  font-size:11px;
  line-height:1;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-brown);
}
.season-paragraph {
  margin:0;
  width:100%;
  max-width:min(72vw,1100px);
  font-size:clamp(17px,1.35vw,21px);
  line-height:1.95;
  font-weight:300;
  color:var(--color-brown);
}
.season-paragraph:first-of-type { text-align:left; }
.season-paragraph + .season-paragraph { text-align:right; margin-left:auto; }
.season-paragraph + .season-paragraph,
.season-closing {
  margin-top:clamp(48px,5vw,64px);
}
.season-closing {
  margin-bottom:0;
  margin-left:auto;
  margin-right:auto;
  max-width:min(72vw,1100px);
  font-size:clamp(19px,1.55vw,24px);
  line-height:1.72;
  font-weight:600;
  color:var(--color-brown);
  text-align:center;
}

.season-blend-divider-wrap {
  margin:0;
  padding:0 var(--content-pad-x);
  background:var(--color-ivory);
}
.season-blend-divider {
  width:var(--editorial-width);
  max-width:100%;
  height:1px;
  margin:0 auto;
  background:var(--color-brown);
}

.season-feature {
  max-width:none;
  margin:0 auto;
  padding:clamp(48px,4vw,68px) var(--content-pad-x) clamp(70px,6vw,100px);
  background:var(--color-ivory);
  color:var(--color-brown);
  font-family:var(--font-season);
  word-break:keep-all;
}
.season-feature-inner {
  display:grid;
  grid-template-columns:minmax(0,0.44fr) minmax(0,0.56fr);
  gap:clamp(56px,6vw,90px);
  align-items:stretch;
  width:var(--editorial-width);
  max-width:100%;
  margin:0 auto;
}
.season-feature-media { min-width:0; display:flex; }
.season-feature-slider {
  position:relative;
  width:100%;
  aspect-ratio:1 / 1;
  overflow:hidden;
}
.season-feature-track {
  display:flex;
  height:100%;
  transition:transform .45s ease;
}
.season-feature-slide {
  flex:0 0 100%;
  width:100%;
  height:100%;
  min-width:0;
}
.season-feature-slide img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.season-feature-content {
  display:flex;
  flex-direction:column;
  justify-content:center;
  box-sizing:border-box;
  height:0;
  min-height:100%;
  max-height:100%;
  min-width:0;
  padding:clamp(24px,3vw,44px) 0;
  margin:0;
  text-align:left;
  transform:translateY(-16px);
}
.season-feature-copy {
  flex:0 0 auto;
  max-height:100%;
}
.season-feature-heading {
  margin:0 0 clamp(32px,2.8vw,40px);
}
.season-feature-label {
  margin:0 0 16px;
  font-weight:500;
  font-size:11px;
  line-height:1;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-brown);
  opacity:.7;
}
.season-feature-title {
  margin:0;
  font-size:clamp(19px,1.55vw,24px);
  line-height:1.72;
  letter-spacing:-.03em;
  font-weight:600;
  color:var(--color-brown);
}
.season-feature-description {
  display:flex;
  flex-direction:column;
  gap:clamp(26px,2.2vw,32px);
}
.season-feature-body {
  margin:0;
  font-size:clamp(15px,1.05vw,19px);
  line-height:1.85;
  font-weight:400;
  color:var(--color-brown);
  opacity:.82;
}
.botanical-product-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  flex-shrink:0;
  margin-top:clamp(28px,2.5vw,36px);
  min-width:clamp(260px,24vw,300px);
  min-height:56px;
  padding:16px 36px;
  border:1px solid var(--color-brown);
  border-radius:100px;
  background:transparent;
  color:var(--color-brown);
  font-family:var(--font-sans);
  font-size:14px;
  font-weight:400;
  letter-spacing:inherit;
  transition:background .25s ease,color .25s ease;
}
.botanical-product-cta:hover {
  background:var(--color-brown);
  color:var(--color-ivory);
}

.season-transition {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:clamp(90px,9vw,140px);
  margin:0;
  padding:0;
  background:var(--color-brown);
  text-align:center;
}
.booking-link-group {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  text-decoration:none;
}
.season-transition-sep {
  color:var(--color-ivory);
  font-size:clamp(14px,1.1vw,17px);
  letter-spacing:.02em;
}
.season-transition-link {
  color:var(--color-ivory);
  font-size:clamp(14px,1.1vw,17px);
  font-weight:500;
  letter-spacing:.02em;
  text-decoration:none;
}
.booking-link-group:hover {
  opacity:.7;
  text-decoration:none;
}

.experience {
  width:100%;
  color:var(--color-text);
  height:auto;
  min-height:0;
  margin:0;
  padding:0;
  word-break:keep-all;
}
.experience-inner {
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}
.experience-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:1fr;
  gap:1px;
  width:100%;
  max-width:none;
  margin:0;
  height:auto;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.35);
  overflow:hidden;
}
.experience-cell {
  position:relative;
  width:100%;
  aspect-ratio:1 / 1;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:hidden;
  background:var(--color-ivory);
}
.experience-media {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  margin:0;
  padding:0;
  border-radius:0;
  overflow:hidden;
}
.experience-media img {
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}
.experience-media::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.18));
}
.experience-caption {
  position:absolute;
  right:20px;
  bottom:18px;
  left:auto;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  padding:0;
  max-width:90%;
  color:#F2F0E9;
  background:none;
  text-align:right;
  text-shadow:0 1px 8px rgba(0,0,0,.28);
}
.experience-label {
  font-weight:500;
  font-size:10px;
  line-height:1;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.experience-title {
  font-weight:400;
  font-size:clamp(15px,1.2vw,18px);
  line-height:1.35;
  letter-spacing:-.02em;
}

.visit {
  margin:0;
  padding:0;
  max-width:none;
}
.visit-panel {
  min-height:0;
  height:auto;
  background:var(--color-dark-green);
  color:var(--color-ivory);
  padding:clamp(92px,8vw,118px) max(var(--content-pad-x),calc((100% - var(--content-width)) / 2)) clamp(56px,6vw,72px);
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:80px;
  align-items:end;
  max-width:none;
  box-sizing:border-box;
}
.visit-copy { max-width:470px; }
.visit-copy .eyebrow { margin:0 0 20px; }
.visit-copy h2 {
  margin:0 0 32px;
  max-width:470px;
  font-family:"Gothic A1", sans-serif;
  font-size:clamp(19px,1.47vw,25px);
  line-height:1.2;
  letter-spacing:.04em;
  font-weight:300;
}
.visit-info dd {
  margin:0;
  font-size:14px;
  line-height:1.65;
  font-family:"Gothic A1", sans-serif;
  letter-spacing:.03em;
}
.visit-place { font-weight:400; font-size:13px; line-height:1.4; opacity:.72; }
.visit-actions { margin-top:24px; display:flex; align-items:center; gap:24px; }
.visit-actions .button {
  min-height:0;
  padding:6px 12px;
  font-size:12px;
  letter-spacing:.05em;
}
.visit-info dl { margin:0; border-top:1px solid rgba(242,240,233,.25); }
.visit-info dl div { display:grid; grid-template-columns:100px 1fr; gap:24px; padding:15px 0; border-bottom:1px solid rgba(242,240,233,.18); }
.visit-info dt { font-weight:500; font-size:10px; line-height:1.5; letter-spacing:.1em; opacity:.6; }

.site-footer {
  width:100%;
  margin:0 auto;
  padding:58px max(var(--content-pad-x),calc((100% - var(--content-width)) / 2)) 50px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px 56px;
  align-items:start;
  border-top:1px solid var(--line);
  box-sizing:border-box;
}
.footer-links {
  display:flex;
  gap:24px;
  font-size:12px;
  align-self:flex-start;
}
.footer-brand {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  align-self:flex-start;
}
.footer-brand > img:first-child {
  display:block;
  width:auto;
  height:42px;
  object-fit:contain;
  margin:0 0 12px;
}
.footer-slogan {
  margin:0;
  font-family:var(--font-brand);
  font-size:clamp(20px,1.8vw,25px);
  font-style:italic;
  font-weight:400;
  line-height:1.4;
  letter-spacing:.02em;
  color:var(--color-text);
}
.copyright {
  margin:36px 0 0;
  font-weight:500;
  font-size:11px;
  line-height:1;
  letter-spacing:.1em;
  color:var(--muted);
  opacity:.6;
}
.mobile-bottom-nav { display:none; }

@media (max-width: 900px) {
  .mobile-only { display:initial; }
  .desktop-nav,.book-button { display:none; }
  .menu-button { display:block; }
  .mobile-menu { position:fixed; z-index:19; inset:70px 0 auto; padding:28px var(--pad) 34px; background:var(--forest); color:var(--color-ivory); border-top:1px solid rgba(242,240,233,.12); border-bottom:1px solid rgba(242,240,233,.12); grid-template-columns:1fr 1fr; gap:0; transform:translateY(-120%); visibility:hidden; opacity:0; transition:transform .35s ease,opacity .25s ease,visibility .35s; }
  .mobile-menu.is-open { display:grid; transform:translateY(0); visibility:visible; opacity:1; }
  .mobile-menu a { padding:15px 0; border-bottom:1px solid rgba(242,240,233,.14); font-weight:500; font-size:13px; line-height:1.2; letter-spacing:.1em; }
  .mobile-menu a:nth-child(even) { padding-left:20px; }
  .site-header { height:70px; }
  #season,
  #experience,
  #visit { scroll-margin-top:78px; }
  .brand img { height:40px; }
  .hero {
    min-height:72vh;
    margin-top:70px;
    padding:56px clamp(24px,5vw,48px) 64px;
  }
  .hero h1 { font-size:clamp(14px,3.5vw,18px); line-height:1.28; }
  .scroll-cue { bottom:20px; }
  .section { padding-top:88px; padding-bottom:88px; }
  :root { --content-pad-x: clamp(24px, 5vw, 40px); }
  .season.section { padding:72px var(--content-pad-x) 58px; }
  .season-eyebrow { margin-bottom:28px; }
  .season-paragraph {
    font-size:clamp(15px,1.05vw,19px);
    line-height:1.85;
    font-weight:400;
  }
  .season-closing {
    font-size:clamp(12px,3.55vw,14px);
    line-height:1.72;
    white-space:nowrap;
  }
  .season-feature { padding:42px var(--content-pad-x) 64px; }
  .season-feature-inner {
    grid-template-columns:1fr;
    gap:32px;
    align-items:start;
  }
  .season-feature-content {
    height:auto;
    min-height:0;
    max-height:none;
    justify-content:flex-start;
    padding:0;
    transform:none;
  }
  .season-feature-copy {
    max-height:none;
  }
  .season-feature-description {
    gap:16px;
  }
  .botanical-product-cta {
    display:flex;
    width:fit-content;
    margin:40px auto 24px;
    min-width:240px;
    min-height:52px;
    padding:12px 28px;
  }
  .season-transition { height:clamp(72px,10vw,96px); }
  .experience { padding:0; margin:0; }
  .experience-inner { max-width:none; padding:0; }
  .experience-caption { right:18px; bottom:16px; }
  .experience-title { font-size:15px; }
  .visit { margin:0; padding:0; }
  .visit-panel { grid-template-columns:1fr; min-height:auto; padding-inline:var(--content-pad-x); align-items:start; }
}

@media (max-width: 768px) {
  .experience-grid {
    display:flex;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    -ms-overflow-style:none;
    gap:0;
    height:auto;
  }
  .experience-grid::-webkit-scrollbar { display:none; }
  .experience-cell {
    flex:0 0 100%;
    width:100%;
    scroll-snap-align:start;
    aspect-ratio:1 / 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .mobile-menu { transition:none; }
  .hero-bg img {
    animation:none;
    transform:none;
  }
  .season-feature-track { transition:none; }
}

@media (max-width: 560px) {
  body { padding-bottom:58px; }
  :root { --pad:20px; }
  .hero { padding:48px 20px 64px; }
  .hero h1 { font-size:clamp(14px,3.5vw,18px); line-height:1.28; }
  .hero-actions { flex-wrap:wrap; justify-content:center; gap:22px; }
  .scroll-cue { bottom:20px; }
  .section { padding-top:72px; padding-bottom:72px; }
  h2 { font-size:36px; }
  :root { --content-pad-x: clamp(24px, 5vw, 40px); }
  .season.section { padding:64px var(--content-pad-x) 52px; }
  .season-paragraph + .season-paragraph,
  .season-closing { margin-top:clamp(40px,10vw,52px); }
  .experience { padding:0; margin:0; }
  .experience-inner { max-width:none; padding:0; }
  .experience-caption { right:14px; bottom:14px; gap:5px; }
  .experience-label { font-size:10px; }
  .experience-title { font-size:15px; }
  .visit { margin:0; padding:0; }
  .visit-panel { padding:52px var(--content-pad-x); gap:56px; }
  .visit-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  .site-footer { grid-template-columns:1fr; gap:32px; padding:58px var(--content-pad-x) 50px; }
  .footer-brand { align-items:flex-start; text-align:left; }
  .footer-brand > img:first-child { height:36px; margin-bottom:10px; }
  .footer-links { flex-wrap:wrap; }
  .copyright { margin-top:32px; }
  .mobile-bottom-nav { position:fixed; z-index:50; bottom:0; left:0; right:0; height:58px; background:rgba(247,245,239,.96); backdrop-filter:blur(12px); display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
  .mobile-bottom-nav a { display:flex; align-items:center; justify-content:center; font-size:12px; border-right:1px solid var(--line); }
  .mobile-bottom-nav a:last-child { border-right:0; }
}
