/* 들녘하루 V3 — generated page comps translated into a responsive field-atlas system */
@font-face {
  font-family: "Asta Sans";
  src: url("assets/fonts/asta-sans-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Asta Sans";
  src: url("assets/fonts/asta-sans-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
}

@font-face {
  font-family: "Hahmlet";
  src: url("assets/fonts/hahmlet-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

:root {
  --paper: #f4f0e6;
  --paper2: #ebe5d8;
  --surface: #fffdf6;
  --ink: #26142e;
  --ink2: #51384d;
  --muted: #786b77;
  --soil: #26142e;
  --soil-deep: #180b20;
  --rice: #c9f04b;
  --rice-deep: #748d08;
  --tomato: #f4512c;
  --tomato-deep: #d93918;
  --clay: #b8a899;
  --straw: #d9cfbf;
  --stone: #ded7ca;
  --line: rgba(38, 20, 46, .24);
  --line-soft: rgba(38, 20, 46, .1);
  --line-ink: rgba(38, 20, 46, .82);
  --ok: #627800;
  --ok-bg: #f2f8d7;
  --warn: #d34222;
  --warn-bg: #fff0e9;
  --sans: "Asta Sans", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --myeongjo: "Hahmlet", "Batang", serif;
  --wrap: 1360px;
  --gutter: 40px;
  --section: 112px;
  --radius: 0;
  --radius-lg: 0;
  --shadow: none;
}

html { scroll-padding-top: 98px; background: var(--paper); }

body {
  min-width: 320px;
  overflow-x: clip;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.68;
  letter-spacing: -.016em;
}

body::before,
body::after {
  content: "";
  position: fixed;
  z-index: 80;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(38, 20, 46, .08);
  pointer-events: none;
}

body::before { left: max(18px, calc(50vw - 680px)); }
body::after { right: max(18px, calc(50vw - 680px)); }

::selection { background: var(--rice); color: var(--ink); }

:focus-visible {
  outline: 3px solid var(--tomato);
  outline-offset: 3px;
}

.wrap { max-width: var(--wrap); padding-inline: var(--gutter); }
.frame { border-radius: 0; background: var(--paper2); }
.frame img { transition: transform .42s cubic-bezier(.2,.7,.2,1); }
a:hover .frame img,
article:hover > .frame img { transform: scale(1.018); }

.masthead-title,
.page-title,
.section-title,
.brand-name,
.fieldset legend,
.summary h2,
.band-inner h2,
.detail-head h1,
.detail-block h2,
.journey h2,
.producer h3,
.goods-card h3,
.exp-card h3 {
  font-family: var(--myeongjo);
  font-weight: 700;
}

.masthead-title {
  font-size: clamp(62px, 6.1vw, 92px);
  line-height: 1.05;
  letter-spacing: -.07em;
}

.page-title {
  font-size: clamp(50px, 5vw, 76px);
  line-height: 1.08;
  letter-spacing: -.055em;
}

.section-title {
  font-size: clamp(36px, 3.4vw, 52px);
  line-height: 1.16;
  letter-spacing: -.05em;
}

.lead { font-size: 17px; line-height: 1.82; }
.caption { font-size: 13px; }
.eyebrow {
  color: var(--rice-deep);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.eyebrow::before { width: 30px; background: currentColor; }

.section { position: relative; padding-block: calc(var(--section) * .62); }
.section-lead { padding-top: var(--section); }
.section-last { padding-bottom: var(--section); }
.section-tint { background: #ece6db; }

.section-head {
  position: relative;
  margin-bottom: 46px;
  padding-top: 22px;
  border-top: 1px solid var(--line-ink);
}
.section-head::before { display: none; }
.section-head p { max-width: 68ch; margin-top: 15px; color: var(--ink2); }

.btn {
  min-height: 52px;
  padding: 0 22px;
  border-width: 1px;
  border-radius: 0;
  font-size: 14px;
  font-weight: 700;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.btn:hover { transform: translateY(-1px); box-shadow: none; }
.btn:active { transform: translateY(1px); }
.btn-sm { min-height: 46px; padding-inline: 17px; }
.btn-book { --btn-bg: var(--tomato); --btn-bd: var(--tomato); --btn-fg: #fff; }
.btn-soil { --btn-bg: var(--soil); --btn-bd: var(--soil); --btn-fg: #fff; }
.btn-line,
.btn-ghost { --btn-bg: transparent; --btn-bd: var(--line); --btn-fg: var(--ink); }
.btn-line:hover,
.btn-ghost:hover { --btn-bg: var(--ink); --btn-fg: #fff; --btn-bd: var(--ink); }
.btn-text { color: var(--ink); border-bottom-color: var(--ink); font-weight: 700; }

.st,
.axis,
.tag {
  border-radius: 0;
  padding: 5px 8px;
  font-size: 11px;
  font-weight: 700;
}
.axis-exp,
.tag-season,
.st-open { background: var(--rice); color: var(--ink); border-color: var(--rice); }
.axis-mkt { background: var(--ink); color: #fff; }
.st-soon { color: var(--ink); background: var(--paper2); }
.st-rain { color: var(--tomato-deep); background: #fff0eb; }

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(244, 240, 230, .96);
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(12px);
}
.site-header.is-stuck { background: rgba(244, 240, 230, .93); box-shadow: none; }
.nav { height: 96px; gap: 34px; }
.brand { min-width: 162px; }
.brand-name { color: var(--ink); font-size: 31px; letter-spacing: -.06em; }
.brand small { display: none; }
.navlinks { gap: clamp(22px, 2.4vw, 42px); margin-left: auto; }
.navlinks a { color: var(--ink); font-size: 13px; font-weight: 700; }
.navlinks a::after,
.navlinks a[aria-current="page"]::after { height: 3px; background: var(--tomato); }
.nav-actions { gap: 0; border-left: 1px solid var(--line); }
.nav-tel {
  width: 116px;
  min-height: 72px;
  display: grid;
  place-content: center;
  gap: 1px;
  color: var(--ink);
  border-right: 1px solid var(--line);
  text-align: center;
}
.nav-tel b { color: var(--rice-deep); font-size: 13px; }
.nav-tel small { font-size: 11px; color: var(--muted); }
.cart-btn,
.menu-btn,
.drawer-close,
.cart-close {
  width: 48px;
  height: 48px;
  border-radius: 0;
  background: transparent;
}
.cart-btn { border-right: 1px solid var(--line); }
.nav-actions > .btn-book {
  width: 78px;
  min-height: 72px;
  padding: 0 12px;
  text-align: center;
}
.drawer,
.cart-drawer { background: var(--surface); }

/* Home master composition */
.page-home .masthead { display: none; }
.page-home .hero { padding: 0; border-bottom: 1px solid var(--line); }
.page-home .hero > .wrap { max-width: var(--wrap); padding-inline: var(--gutter); }
.page-home .hero-grid {
  position: relative;
  min-height: 680px;
  display: grid;
  grid-template-columns: minmax(440px, 4fr) minmax(0, 5.7fr) minmax(190px, 2.1fr);
  gap: 0;
  align-items: stretch;
  border-inline: 1px solid var(--line-soft);
}
.page-home .hero-copy {
  grid-column: 1;
  position: static;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 58px 42px 54px 44px;
  background: var(--surface);
  border-right: 1px solid var(--line-soft);
}
.page-home .hero-copy .eyebrow { margin-bottom: 24px; }
.page-home .hero-copy .masthead-title { margin-bottom: 24px; }
.page-home .hero-copy .lead { color: var(--ink2); font-size: 15px; }
.page-home .hero-actions { display: grid; grid-template-columns: 1fr 1fr; margin: 30px 0 22px; gap: 10px; }
.page-home .hero-actions .btn:nth-child(2) { display: none; }
.page-home .hero-trust { display: none; }
.page-home .hero-figure {
  grid-column: 2;
  position: relative;
  min-width: 0;
  min-height: 680px;
  margin: 0;
  overflow: hidden;
  background: var(--paper2);
}
.page-home .hero-figure .frame { position: absolute; inset: 0; aspect-ratio: auto; border: 0; }
.page-home .hero-figure img { object-position: 58% center; }
.page-home .hero-figure figcaption {
  position: absolute;
  right: 18px;
  bottom: 16px;
  max-width: 330px;
  padding: 8px 10px;
  background: rgba(38,20,46,.86);
  color: #fff;
  font-size: 10px;
}
.page-home .hero-open {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: calc(18.5% - 1px);
  display: block;
  margin: 0;
  padding: 38px 22px;
  background: var(--surface);
  border-left: 1px solid var(--line);
  overflow: hidden;
}
.page-home .hero-open h2 {
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line-ink);
  font-family: var(--myeongjo);
  font-size: 18px;
}
.page-home .hero-open ul { display: grid; }
.page-home .hero-open li {
  display: grid;
  gap: 6px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line-soft);
}
.page-home .hero-open li > span:first-child { display: grid; gap: 5px; }
.page-home .hero-open b { font-size: 13px; }
.page-home .hero-open .when { font-size: 10px; color: var(--muted); }
.page-home .hero-open .st { justify-self: start; background: transparent; color: var(--tomato); padding-inline: 0; }

.quickbar { background: var(--soil-deep); color: #fff; border-bottom: 1px solid var(--line); }
.quickbar ul { max-width: 1360px; margin: 0 auto; padding-inline: var(--gutter); }
.quickbar li { border-left: 1px solid rgba(255,255,255,.19); }
.quickbar li:last-child { border-right: 1px solid rgba(255,255,255,.19); }
.quickbar a { min-height: 116px; padding: 24px 30px; }
.quickbar a:hover { background: rgba(255,255,255,.06); }
.quickbar .ico { color: var(--rice); }
.quickbar b { font-family: var(--myeongjo); font-size: 17px; }

.season-flow,
.js .season-flow { background: var(--paper); animation: none; }
.season-track {
  counter-reset: season;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.season-card {
  counter-increment: season;
  position: relative;
  min-width: 0;
  padding: 26px 20px 28px;
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
  box-shadow: none;
}
.season-card:last-child { border-right: 0; }
.season-card::before {
  content: "0" counter(season);
  display: block;
  margin-bottom: 16px;
  color: #d1c8bb;
  font-family: var(--myeongjo);
  font-size: 55px;
  line-height: 1;
}
.season-card .frame { aspect-ratio: 4 / 5; }
.season-card-body { min-height: 325px; padding: 18px 0 0; }
.season-card h3 { margin: 10px 0 7px; font-size: 22px; }
.season-mark { color: var(--rice-deep); font-size: 11px; }
.season-card-desc { color: var(--ink2); font-size: 13px; }
.season-card dl { border-top: 1px solid var(--line-soft); font-size: 12px; }
.season-card-foot { border-top: 1px solid var(--line); }
.rail-nav { display: none; }

.yard-grid { gap: 0; background: var(--surface); border: 1px solid var(--line); }
.yard {
  position: relative;
  min-height: 430px;
  padding: 50px;
  border: 0;
  color: #fff;
  isolation: isolate;
  overflow: hidden;
}
.yard::before { content: ""; position: absolute; inset: 0; z-index: -2; background-position: center; background-size: cover; opacity: .62; }
.yard::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(24,11,32,.72); }
.yard-exp::before { background-image: url("assets/planting.webp"); }
.yard-mkt::before { background-image: url("assets/market-v2.png"); }
.yard + .yard { border-left: 1px solid rgba(255,255,255,.45); }
.yard .axis { background: var(--rice); color: var(--ink); }
.yard h3 { max-width: 450px; margin: 20px 0 13px; font-size: 33px; }
.yard-desc { max-width: 45ch; color: rgba(255,255,255,.82); }
.yard-keys { margin-top: auto; padding-top: 28px; }
.yard-keys li { border-color: rgba(255,255,255,.28); }
.yard-keys li small { color: rgba(255,255,255,.7); }
.yard-foot .btn { --btn-bg: var(--tomato); --btn-fg: #fff; --btn-bd: var(--tomato); }

.wx { border: 1px solid var(--line); background: var(--surface); }
.wx-top { padding: 22px 26px; background: var(--surface); color: var(--ink); border-bottom: 1px solid var(--line); }
.wx-top .ico { color: var(--ink); }
.wx-now span,
.wx-policy { color: var(--muted); }
.wx-day { min-height: 130px; padding: 20px 10px; }
.wx-day[data-run="on"] .wx-run { color: var(--rice-deep); }

.page-home .market-layout { display: block; }
.page-home .market-feature { display: none; }
.page-home .goods-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--line);
}
.page-home .goods-card {
  display: flex;
  padding: 16px;
  border: 0;
  border-right: 1px solid var(--line);
  background: var(--surface);
  box-shadow: none;
}
.page-home .goods-card:last-child { border-right: 0; }
.page-home .goods-card .frame { aspect-ratio: 16 / 9; }
.page-home .goods-spec { display: none; }
.page-home .goods-card > p:nth-of-type(1) { display: block; }
.page-home .goods-card > .btn { margin-top: 12px; }
.goods-price b { color: var(--ink); }

.collage-grid { gap: 72px; align-items: center; }
.collage-grid > div:first-child { max-width: 520px; }
.collage { padding: 0; gap: 12px; overflow: visible; }
.collage figure { padding: 7px; border: 1px solid var(--line); background: var(--surface); box-shadow: none; transform: none !important; }
.collage .c1 { grid-column: 1 / 5; }
.collage .c2 { grid-column: 5 / 7; margin-top: 70px; }
.collage .c3 { grid-column: 1 / 3; margin-top: -55px; }
.collage .c4 { grid-column: 3 / 7; }
.collage figcaption { color: var(--muted); }

.stat-row { gap: 0; border: 1px solid var(--line); background: transparent; }
.stat { padding: 32px 22px; border-right: 1px solid var(--line); background: var(--surface); }
.stat:last-child { border-right: 0; }
.stat b { color: var(--ink); font-family: var(--myeongjo); font-size: 43px; }

.band { background: var(--soil-deep); }
.band .frame { opacity: .18; }
.band-inner { padding: 76px 0; text-align: left; }
.band-inner h2 { font-size: clamp(34px, 4vw, 54px); }
.band-inner p { margin-inline: 0; }
.band-actions { justify-content: flex-start; }

/* Secondary page mastheads and atlas numbers */
.page-sub .section-lead { padding-top: 84px; }
.page-sub .section-lead > .wrap { position: relative; }
.page-sub .section-lead > .wrap > .section-head { padding-right: 220px; }
.page-programs .section-lead > .wrap > .section-head::after,
.page-market .section-lead > .wrap > .section-head::after,
.page-booking .section-lead > .wrap > .section-head::after,
.page-program .detail-head::after {
  position: absolute;
  right: 22px;
  top: 4px;
  color: #d2cabe;
  font-family: var(--myeongjo);
  font-size: clamp(88px, 9vw, 138px);
  font-weight: 700;
  line-height: .9;
  letter-spacing: -.08em;
  pointer-events: none;
}
.page-programs .section-lead > .wrap > .section-head::after { content: "02"; }
.page-market .section-lead > .wrap > .section-head::after { content: "04"; }
.page-booking .section-lead > .wrap > .section-head::after { content: "05"; }

/* Experience finder */
.filters {
  margin-bottom: 28px;
  padding: 0;
  border: 1px solid var(--line);
  background: var(--surface);
}
.filter-row { min-height: 58px; gap: 10px; padding: 8px 14px; }
.filter-row + .filter-row { margin-top: 0; padding-top: 8px; border-top: 1px solid var(--line-soft); }
.filter-label { min-width: 74px; color: var(--ink); font-weight: 800; }
.chip {
  min-width: 82px;
  min-height: 40px;
  justify-content: center;
  padding: 0 14px;
  border-radius: 0;
  background: transparent;
  color: var(--ink2);
  font-size: 12px;
}
.chip:hover { border-color: var(--ink); }
.chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.filter-row:nth-child(1) .chip[data-val="봄"][aria-pressed="true"],
.mkt-filters .chip[aria-pressed="true"] { background: var(--rice); border-color: var(--rice); color: var(--ink); }
.split { grid-template-columns: 350px minmax(0, 1fr); gap: 0; border-top: 1px solid var(--line); }
.map-panel {
  top: 110px;
  border: 0;
  border-right: 1px solid var(--line);
  background: var(--surface);
}
.map-fig { background: #dfe5c8; }
.map-fig svg { filter: saturate(.7) hue-rotate(18deg); }
.map-pin circle { fill: var(--ink); }
.map-pin:hover circle,
.map-pin:focus-visible circle { fill: var(--tomato); }
.map-list a:hover { background: #f3f7dc; }
.exp-list { gap: 0; counter-reset: experience; }
.exp-card {
  counter-increment: experience;
  position: relative;
  grid-template-columns: minmax(250px, 40%) minmax(0, 1fr);
  gap: 0;
  padding: 0;
  border: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.exp-card:nth-child(even) .frame { order: 2; }
.exp-card::before {
  content: "0" counter(experience);
  position: absolute;
  z-index: 2;
  top: 12px;
  left: calc(40% + 18px);
  color: var(--ink);
  font-family: var(--myeongjo);
  font-size: 34px;
  line-height: 1;
}
.exp-card:nth-child(even)::before { left: 18px; }
.exp-card .frame { min-height: 245px; }
.exp-body { gap: 9px; padding: 54px 22px 20px; }
.exp-card h3 { font-size: 24px; }
.exp-facts li { padding: 3px 0; border: 0; background: transparent; }
.exp-foot { border-top: 1px solid var(--line-soft); }
.exp-actions .btn { min-height: 44px; }
.pager a,
.pager span { min-width: 42px; min-height: 42px; border-radius: 0; }
.pager [aria-current="page"] { background: var(--ink); border-color: var(--ink); }
.table-scroll { border-radius: 0; background: var(--surface); }
.cmp thead th { background: var(--paper2); }
.info-grid { gap: 0; border: 1px solid var(--line); }
.info-card { border: 0; border-right: 1px solid var(--line); border-radius: 0; background: var(--surface); box-shadow: none; }
.info-card:last-child { border-right: 0; }

/* Detail page */
.page-program .section-lead { padding-top: 36px; }
.page-program .section-lead > .wrap > .caption:first-child { margin: 0 0 16px !important; }
.detail-banner { border-radius: 0; border: 1px solid var(--line); }
.page-sub .detail-banner .frame { aspect-ratio: 1360 / 430; }
.detail-banner img { object-position: center 48%; }
.detail-head {
  position: relative;
  margin: 0;
  padding: 34px 190px 32px 22px;
  border: 1px solid var(--line);
  border-top: 0;
  background: var(--surface);
}
.page-program .detail-head::after { content: "03"; top: 32px; }
.detail-price { position: relative; z-index: 2; text-align: right; }
.detail-price b { font-family: var(--myeongjo); font-size: 37px; }
.tabs { position: sticky; top: 96px; z-index: 20; border-radius: 0; border: 0; background: var(--soil-deep); }
.tabs a { min-height: 58px; border-left-color: rgba(255,255,255,.2); color: #fff; }
.tabs a:hover,
.tabs a.is-active { background: var(--rice); color: var(--ink); }
.detail-grid { grid-template-columns: minmax(0, 8fr) minmax(330px, 4fr); gap: 0; margin-top: 0; border-inline: 1px solid var(--line); }
.detail-grid > div { padding: 44px 42px 30px 22px; border-right: 1px solid var(--line); }
.detail-block + .detail-block { margin-top: 42px; }
.detail-block h2 { padding-top: 16px; border-top: 1px solid var(--line-ink); font-size: 29px; }
.detail-block p { color: var(--ink2); }
.pack-grid { gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.pack-grid > div { padding: 20px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.notice { border-radius: 0; background: var(--surface); }
.notice-warn { border-left-color: var(--tomato); background: #fff3eb; }
.reviews { gap: 0; border-top: 1px solid var(--line); }
.review { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
.journey {
  position: sticky;
  top: 154px;
  padding: 44px 32px 32px;
  border: 0;
  background: var(--surface);
  box-shadow: none;
}
.journey h2 { font-size: 26px; }
.rail-path { stroke: var(--rice); }
.rail-step::before { background: var(--rice); border-color: var(--surface); }
.journey-foot { border-top: 1px solid var(--line); }
.journey-sum b { font-family: var(--myeongjo); }
.page-program .section-tint .goods-grid { grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); }
.page-program .section-tint .goods-card { border: 0; border-right: 1px solid var(--line); }

/* Producer market */
.page-market .notice { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0; border-left-width: 1px; }
.page-market .notice p { padding: 22px; border-right: 1px solid var(--line); }
.page-market .notice p:nth-child(3) { border-right: 0; }
.page-market .notice .muted { grid-column: 1 / -1; border-top: 1px solid var(--line); border-right: 0; }
.producer-grid { grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); }
.producer {
  position: relative;
  min-height: 610px;
  padding: 350px 24px 24px;
  gap: 9px;
  border: 0;
  border-right: 1px solid var(--line);
  background: var(--surface);
  overflow: hidden;
}
.producer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 326px;
  background: url("assets/producers-v3.png") no-repeat;
  background-size: 300% 100%;
}
.producer:nth-child(1)::before { background-position: 0 0; }
.producer:nth-child(2)::before { background-position: 50% 0; }
.producer:nth-child(3)::before { background-position: 100% 0; }
.producer:nth-child(3) { border-right: 0; }
.producer:nth-child(n+4) {
  grid-column: span 1;
  min-height: 116px;
  padding: 20px 24px;
  border-top: 1px solid var(--line);
}
.producer:nth-child(n+4)::before { display: none; }
.producer:nth-child(n+4) > p:not(.producer-where),
.producer:nth-child(n+4) dl { display: none; }
.producer h3 { font-size: 24px; }
.producer-chip { min-height: 44px; border-radius: 0; }
.producer-chip[aria-pressed="true"] { background: var(--rice); border-color: var(--rice); color: var(--ink); }

.page-market #goods { background: var(--paper); }
.page-market .goods-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--line);
}
.page-market .goods-card {
  border: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  box-shadow: none;
}
.page-market .goods-card:nth-child(4n) { border-right: 0; }
.page-market .goods-card:first-child { grid-column: span 2; grid-row: span 2; }
.page-market .goods-card:first-child .frame { aspect-ratio: 16 / 11; }
.page-market .goods-card:nth-child(8) { grid-column: span 2; }
.goods-card .btn { border-radius: 0; }
.accordion { border-radius: 0; }
.acc-trigger { min-height: 66px; }

/* Booking */
.booking-steps {
  position: absolute;
  right: 0;
  bottom: 2px;
  width: min(50%, 560px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.booking-steps::before { content: ""; position: absolute; top: 17px; left: 16%; right: 16%; height: 1px; background: var(--line); }
.booking-steps li { position: relative; z-index: 1; display: grid; justify-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.booking-steps b { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--ink); }
.booking-steps [aria-current="step"] { color: var(--rice-deep); }
.booking-steps [aria-current="step"] b { background: var(--rice); border-color: var(--rice); }
.book-grid { grid-template-columns: minmax(0, 8fr) minmax(350px, 4fr); gap: 0; align-items: start; border-top: 1px solid var(--line); }
.book-form { border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.fieldset { margin: 0; padding: 32px; border: 0; border-bottom: 1px solid var(--line); background: var(--surface); }
.fieldset legend { padding: 24px 0 0; color: var(--ink); font-size: 24px; }
.fieldset legend small { font-family: var(--sans); font-size: 12px; color: var(--muted); }
.control { min-height: 52px; border-radius: 0; background: var(--paper); }
.control:focus { border-color: var(--ink); background: var(--surface); box-shadow: 0 0 0 3px rgba(244,81,44,.12); }
.check-row input { accent-color: var(--rice-deep); }
.people-total { border-radius: 0; background: var(--paper2); }
.booking-selection-card {
  display: grid;
  grid-template-columns: 150px minmax(0,1fr) auto;
  align-items: stretch;
  margin-bottom: 22px;
  border: 1px solid var(--line);
}
.booking-selection-card .frame { min-height: 112px; }
.booking-selection-card > div { display: grid; align-content: center; justify-items: start; gap: 5px; padding: 16px 18px; }
.booking-selection-card b { font-family: var(--myeongjo); font-size: 20px; }
.booking-selection-card small { color: var(--muted); }
.booking-selection-card > strong { display: grid; place-items: center; padding: 18px; border-left: 1px solid var(--line); font-family: var(--myeongjo); font-size: 20px; }
.calendar-ledger { margin: 22px 0; border: 1px solid var(--line); background: var(--surface); }
.calendar-head { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; min-height: 54px; border-bottom: 1px solid var(--line); text-align: center; }
.calendar-head button { width: 48px; height: 54px; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
.calendar-head b { font-family: var(--myeongjo); font-size: 18px; }
.calendar-week,
.calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); }
.calendar-week span { padding: 10px 0 5px; color: var(--muted); text-align: center; font-size: 11px; font-weight: 700; }
.calendar-days button,
.calendar-days span { min-height: 44px; display: grid; place-items: center; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 12px; }
.calendar-days button { cursor: pointer; }
.calendar-days button:hover { background: var(--paper2); }
.calendar-days .is-off { color: #b6ada3; }
.calendar-days .is-selected { width: 36px; min-height: 36px; place-self: center; border-radius: 50%; background: var(--rice); font-weight: 800; }
.session-ledger { display: grid; grid-template-columns: repeat(3, 1fr); margin: 2px 0 22px; border: 1px solid var(--line); }
.session-ledger button { min-height: 72px; display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; align-content: center; padding: 12px 14px; border: 0; border-right: 1px solid var(--line); background: var(--surface); color: var(--ink); text-align: left; cursor: pointer; }
.session-ledger button:last-child { border-right: 0; }
.session-ledger b { font-size: 13px; }
.session-ledger span { color: var(--muted); font-size: 11px; }
.session-ledger em { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--rice-deep); font-size: 11px; font-style: normal; font-weight: 800; }
.session-ledger .is-selected { box-shadow: inset 0 -4px 0 var(--rice); background: #f8fbe9; }
.addon-list { border: 1px solid var(--line); }
.addon-row { display: grid; grid-template-columns: 104px minmax(0,1fr) auto 48px; align-items: center; min-height: 104px; border-bottom: 1px solid var(--line); }
.addon-row:last-child { border-bottom: 0; }
.addon-row .frame { width: 104px; height: 103px; }
.addon-row > div { display: grid; gap: 4px; padding: 14px 18px; }
.addon-row small { display: block; color: var(--muted); font-size: 12px; }
.addon-row strong { padding: 0 18px; white-space: nowrap; }
.addon-add { width: 48px; height: 48px; border: 0; background: var(--tomato); color: #fff; font-size: 23px; cursor: pointer; }
.summary { top: 116px; border-radius: 0; border: 0; border-right: 1px solid var(--line); background: var(--surface); box-shadow: none; }
.summary h2 { padding: 24px; background: var(--paper2); font-size: 25px; }
.summary-sec { padding: 22px 24px; }
.sum-total { background: var(--paper2); }
.sum-total .sum-line { font-family: var(--myeongjo); font-size: 24px; }
.policy-box { border-radius: 0; background: var(--paper); }
.done-panel { border-radius: 0; }
.page-booking #faq { background: #ece6db; }

/* Footer and overlays */
.site-footer { padding: 66px 0 30px; background: var(--soil-deep); }
.site-footer .brand-name { color: #fff; }
.footer-grid { gap: 36px; }
.social a { border-radius: 0; }
.toast { border-radius: 0; background: var(--ink); }
.cart-drawer,
.drawer { border-radius: 0; }

.js .reveal,
.js .reveal.in { opacity: 1; transform: none; }

@media (max-width: 1180px) {
  :root { --gutter: 28px; --section: 96px; }
  .nav { height: 82px; }
  .navlinks { gap: 18px; }
  .nav-tel { display: none; }
  .page-home .hero-grid { min-height: 610px; grid-template-columns: minmax(380px, 4fr) minmax(0, 5.5fr) minmax(170px, 2fr); }
  .page-home .hero-copy { padding-inline: 30px; }
  .page-home .hero-figure { min-height: 610px; }
  .split { grid-template-columns: 310px minmax(0,1fr); }
  .exp-card { grid-template-columns: 230px minmax(0,1fr); }
  .exp-card::before { left: 248px; }
  .producer { min-height: 570px; padding-top: 315px; }
  .producer::before { height: 292px; }
}

@media (max-width: 1024px) {
  :root { --gutter: 26px; --section: 88px; }
  .nav { height: 74px; }
  .page-home .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
  .page-home .hero-copy { grid-column: 1; }
  .page-home .hero-figure { grid-column: 2; min-height: 600px; }
  .page-home .hero-open { position: static; width: auto; margin-top: 24px; padding: 18px 0 0; border: 0; border-top: 1px solid var(--line); }
  .page-home .hero-open h2 { font-size: 16px; }
  .page-home .hero-open li { grid-template-columns: 1fr auto; padding: 11px 0; }
  .page-home .hero-open li:nth-child(n+3) { display: none; }
  .season-track { grid-template-columns: repeat(2, 1fr); }
  .season-card:nth-child(2) { border-right: 0; }
  .season-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .page-home .goods-grid { grid-template-columns: repeat(2, 1fr); }
  .page-home .goods-card:nth-child(2) { border-right: 0; }
  .page-home .goods-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .split { grid-template-columns: 1fr; border-left: 1px solid var(--line); }
  .map-panel { position: relative; top: auto; display: grid; grid-template-columns: 1fr 1fr; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .exp-card { grid-template-columns: minmax(240px, 38%) minmax(0, 1fr); }
  .exp-card::before { left: calc(38% + 18px); }
  .page-market .goods-grid { grid-template-columns: repeat(3, 1fr); }
  .page-market .goods-card:nth-child(4n) { border-right: 1px solid var(--line); }
  .page-market .goods-card:nth-child(3n) { border-right: 0; }
  .producer { min-height: 520px; padding-top: 275px; }
  .producer::before { height: 252px; }
  .detail-grid { grid-template-columns: minmax(0, 1fr) 320px; }
  .detail-grid > div { padding-right: 28px; }
  .book-grid { grid-template-columns: minmax(0,1fr) 330px; }
}

@media (max-width: 760px) {
  :root { --gutter: 20px; --section: 72px; }
  body { font-size: 15px; }
  body::before { left: 10px; }
  body::after { right: 10px; }
  .wrap { padding-inline: var(--gutter); }
  .masthead-title { font-size: clamp(43px, 13vw, 58px); }
  .page-title { font-size: clamp(39px, 12vw, 52px); }
  .section-title { font-size: clamp(30px, 9vw, 40px); }
  .section { padding-block: calc(var(--section) * .7); }
  .section-head { margin-bottom: 30px; }
  .site-header { backdrop-filter: blur(8px); }
  .nav { height: 68px; }
  .brand { min-width: 0; }
  .brand-name { font-size: 25px; }
  .nav-actions { border-left: 0; }
  .nav-actions > .btn-book { display: none; }
  .cart-btn { display: grid; width: 48px; height: 48px; border: 1px solid var(--line); }
  .menu-btn { display: grid; width: 48px; height: 48px; background: var(--ink); color: #fff; }
  .page-home .hero > .wrap { padding-inline: var(--gutter); }
  .page-home .hero-grid { display: flex; min-height: 0; flex-direction: column; border-inline: 1px solid var(--line); }
  .page-home .hero-figure { order: -1; min-height: 260px; aspect-ratio: 16 / 9; }
  .page-home .hero-copy { padding: 34px 24px 30px; border-right: 0; }
  .page-home .hero-copy .eyebrow { margin-bottom: 16px; }
  .page-home .hero-actions { margin: 24px 0 18px; }
  .page-home .hero-open { display: block; }
  .page-home .hero-open ul { grid-template-columns: repeat(2, 1fr); }
  .page-home .hero-open li { display: grid !important; grid-template-columns: 1fr; padding: 11px; border: 1px solid var(--line-soft); }
  .page-home .hero-open li:nth-child(3) { grid-column: 1 / -1; }
  .quickbar ul { grid-template-columns: repeat(2, 1fr); padding-inline: var(--gutter); }
  .quickbar a { min-height: 98px; padding: 18px; }
  .quickbar li:nth-child(2) { border-right: 1px solid rgba(255,255,255,.19); }
  .quickbar li:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.19); }
  .season-track { display: grid; grid-template-columns: 1fr; border-bottom: 0; }
  .season-card {
    display: grid;
    grid-template-columns: 64px minmax(110px, 38%) minmax(0, 1fr);
    align-items: stretch;
    padding: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line) !important;
  }
  .season-card::before { margin: 0; padding: 20px 8px; font-size: 36px; }
  .season-card .frame { aspect-ratio: auto; min-height: 185px; }
  .season-card-body { min-height: 0; padding: 18px 14px; }
  .season-card-desc,
  .season-card dl { display: none; }
  .season-card h3 { font-size: 18px; }
  .season-card-foot { margin-top: 12px; padding-top: 10px; }
  .season-card-foot .st { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
  .yard-grid { grid-template-columns: 1fr; }
  .yard { min-height: 430px; padding: 34px 26px; }
  .yard + .yard { border-left: 0; border-top: 1px solid rgba(255,255,255,.45); }
  .wx-top { display: grid; gap: 14px; padding: 22px 18px; }
  .wx-policy { margin-left: 0; }
  .wx-days { grid-template-columns: repeat(2, 1fr); }
  .wx-day { border-bottom: 1px solid var(--line-soft); }
  .page-home .goods-grid { grid-template-columns: repeat(2, 1fr); }
  .page-home .goods-card { padding: 10px; }
  .page-home .goods-card h3 { font-size: 15px; }
  .collage-grid { grid-template-columns: 1fr; gap: 38px; }
  .collage { gap: 8px; }
  .stat-row { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(2) { border-right: 0; }
  .stat:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .band-inner { padding: 60px 0; }

  .page-sub .section-lead { padding-top: 54px; }
  .page-sub .section-lead > .wrap > .section-head { min-height: 152px; padding-right: 92px; }
  .page-programs .section-lead > .wrap > .section-head::after,
  .page-market .section-lead > .wrap > .section-head::after,
  .page-booking .section-lead > .wrap > .section-head::after { right: 0; font-size: 78px; }
  .filters { margin-inline: 0; overflow: hidden; }
  .filter-row { align-items: flex-start; gap: 8px; padding: 12px; }
  .filter-label { flex: 0 0 100%; min-width: 0; }
  .chip { min-width: calc(25% - 6px); min-height: 44px; padding-inline: 8px; }
  .filter-count { flex: 0 0 100%; margin: 4px 0 0; }
  .map-panel { grid-template-columns: 1fr; }
  .map-list a { min-height: 50px; }
  .exp-card,
  .exp-card:nth-child(even) {
    display: grid;
    grid-template-columns: 1fr;
  }
  .exp-card .frame,
  .exp-card:nth-child(even) .frame { order: 0; min-height: 0; aspect-ratio: 16 / 9; }
  .exp-card::before,
  .exp-card:nth-child(even)::before { top: calc((100vw - 42px) * .5625 + 14px); left: 18px; font-size: 31px; }
  .exp-body { padding: 54px 18px 22px; }
  .exp-card h3 { font-size: 23px; }
  .exp-foot { align-items: stretch; }
  .exp-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .exp-actions .btn { justify-content: center; }
  .table-scroll { margin-inline: 0; overflow: visible; }
  .cmp { display: block; min-width: 0; }
  .cmp thead { display: none; }
  .cmp tbody,
  .cmp tr,
  .cmp th,
  .cmp td { display: block; width: 100%; min-width: 0; }
  .cmp tbody tr { border-bottom: 1px solid var(--line); }
  .cmp tbody th { width: 100%; padding: 12px 14px; background: var(--paper2); color: var(--ink); }
  .cmp tbody td { display: grid; grid-template-columns: minmax(104px, .85fr) minmax(0, 1.15fr); gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line-soft); }
  .cmp tbody td::before { color: var(--muted); font-size: 11px; font-weight: 700; }
  .cmp tbody td:nth-of-type(1)::before { content: "모내기 한나절"; }
  .cmp tbody td:nth-of-type(2)::before { content: "새참 짓는 밥상"; }
  .cmp tbody td:nth-of-type(3)::before { content: "새벽 물꼬 산책"; }
  .info-grid { grid-template-columns: 1fr; }
  .info-card { border-right: 0; border-bottom: 1px solid var(--line); }

  .page-program .section-lead { padding-top: 22px; }
  .page-sub .detail-banner .frame { aspect-ratio: 4 / 3; }
  .detail-head { align-items: flex-start; padding: 26px 82px 26px 18px; }
  .page-program .detail-head::after { top: 28px; right: 10px; font-size: 72px; }
  .detail-price { width: 100%; margin-top: 12px; text-align: left; }
  .detail-price b { font-size: 30px; }
  .tabs { top: 68px; overflow-x: auto; }
  .tabs a { min-width: 112px; min-height: 52px; }
  .detail-grid { grid-template-columns: 1fr; border-inline: 1px solid var(--line); }
  .detail-grid > div { padding: 34px 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .pack-grid { grid-template-columns: 1fr; }
  .journey { position: relative; top: auto; padding: 34px 22px; }
  .page-program .section-tint .goods-grid { grid-template-columns: repeat(2, 1fr); }
  .page-program .section-tint .goods-card:nth-child(2) { border-right: 0; }

  .page-market .notice { grid-template-columns: 1fr; }
  .page-market .notice p { border-right: 0; border-bottom: 1px solid var(--line); }
  .page-market .notice .muted { grid-column: auto; border-top: 0; }
  .producer-grid { grid-template-columns: 1fr; }
  .producer { min-height: 0; padding: 68% 20px 24px; border-right: 0; border-bottom: 1px solid var(--line); }
  .producer::before { height: auto; aspect-ratio: 1.55 / 1; }
  .producer:nth-child(n+4) { grid-column: auto; min-height: 92px; padding: 18px 20px; }
  .page-market .goods-grid { grid-template-columns: repeat(2, 1fr); }
  .page-market .goods-card:nth-child(3n) { border-right: 1px solid var(--line); }
  .page-market .goods-card:nth-child(2n) { border-right: 0; }
  .page-market .goods-card:first-child { grid-column: 1 / -1; grid-row: auto; }
  .page-market .goods-card:nth-child(8) { grid-column: auto; }

  .booking-steps { position: relative; right: auto; bottom: auto; width: 100%; margin-top: 26px; }
  .page-booking .section-lead > .wrap > .section-head { padding-right: 82px; }
  .book-grid { grid-template-columns: 1fr; border-top: 1px solid var(--line); }
  .fieldset { padding: 28px 18px; }
  .fieldset legend { font-size: 21px; }
  .grid2,
  .people-row { grid-template-columns: 1fr; }
  .people-total { justify-content: space-between; }
  .booking-selection-card { grid-template-columns: 96px minmax(0,1fr); }
  .booking-selection-card .frame { min-height: 108px; }
  .booking-selection-card > div { padding: 12px; }
  .booking-selection-card > strong { grid-column: 2; padding: 0 12px 12px; border-left: 0; place-items: start; font-size: 17px; }
  .calendar-week span { padding-inline: 0; }
  .calendar-days button,
  .calendar-days span { min-height: 42px; }
  .session-ledger { grid-template-columns: 1fr; }
  .session-ledger button { min-height: 58px; border-right: 0; border-bottom: 1px solid var(--line); }
  .session-ledger button:last-child { border-bottom: 0; }
  .addon-row { grid-template-columns: 78px minmax(0,1fr) 46px; min-height: 84px; }
  .addon-row .frame { width: 78px; height: 83px; }
  .addon-row > div { padding: 10px 12px; }
  .addon-row > strong { grid-column: 2; padding: 0 12px 10px; }
  .addon-row .addon-add { grid-column: 3; grid-row: 1 / 3; width: 46px; height: 100%; }
  .summary { position: relative; top: auto; border-left: 1px solid var(--line); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .site-footer nav a { display: flex; min-height: 44px; align-items: center; }
}

@media (max-width: 420px) {
  .page-home .hero-actions { grid-template-columns: 1fr; }
  .quickbar ul { padding-inline: 0; }
  .chip { min-width: calc(33.333% - 6px); }
  .exp-actions { grid-template-columns: 1fr; }
  .page-market .goods-card { padding: 10px; }
  .goods-spec { display: none; }
  .footer-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .frame img { transform: none !important; }
  .js .reveal { opacity: 1 !important; transform: none !important; }
}
