/* ============================================================
   CHOMCHOM × ENACTUS — Marketing Challenge 2026
   브랜드: 촘촘(한지·길상·민화·명조) × 데이터 챌린지(모노 라벨)
   레이아웃: Optikka 에디토리얼 골격 / 스킨: 촘촘 본연
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  /* 한지 cream */
  --hanji:        #F1E8D6;
  --hanji-2:      #F7F1E4;   /* lighter card */
  --hanji-deep:   #E8DCC4;   /* shaded */
  --paper-edge:   #DED0B5;

  /* 전통 green */
  --green:        #325336;
  --green-deep:   #243A2A;   /* dark sections */
  --green-ink:    #2B4131;
  --sage:         #8AA67E;

  /* 단청 rose / koi / gold (accents) */
  --rose:         #CE6A7E;   /* primary interactive accent (핑크) */
  --rose-deep:    #B14C62;
  --koi:          #DE6630;   /* warm pop */
  --gold:         #BE9A52;
  --gold-soft:    #CDB079;
  --maroon:       #7E3B36;

  /* ink / neutrals */
  --ink:          #2C2720;
  --ink-soft:     #6B6051;
  --line:         rgba(44,39,32,.13);
  --line-soft:    rgba(44,39,32,.07);
  --cream-on-dark:#EFE6D2;

  --maxw: 1280px;
  --pad: clamp(20px, 5vw, 84px);

  /* 한글 제목 폰트 — Pretendard(산세리프) 또는 'Nanum Myeongjo'/'Gowun Batang'(세리프) */
  --ko-head: 'Gowun Batang', serif;
  --serif: 'Playfair Display', var(--ko-head);
  --sans:  'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --mono:  'JetBrains Mono', ui-monospace, monospace;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--sans);
  background:var(--hanji);
  color:var(--ink);
  line-height:1.55;
  font-size:16px;
  letter-spacing:-.01em;
  word-break:keep-all;        /* 한글 어절 단위 줄바꿈 (단어 중간 끊김 방지) */
  overflow-wrap:break-word;
  overflow-x:hidden;
  position:relative;
  /* 닥종이 grain + 은은한 산수 빛 */
  background-image:
    radial-gradient(120% 90% at 50% -10%, #FAF4E8 0%, rgba(250,244,232,0) 46%),
    radial-gradient(80% 60% at 100% 0%, rgba(206,106,126,.05) 0%, rgba(206,106,126,0) 40%),
    radial-gradient(90% 70% at 0% 100%, rgba(50,83,54,.05) 0%, rgba(50,83,54,0) 45%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
  background-attachment: fixed, fixed, fixed, fixed;
}
a{ color:inherit; text-decoration:none; }
img,svg,canvas{ display:block; max-width:100%; }
em{ font-style:normal; }
::selection{ background:var(--rose); color:#fff; }

.mono{ font-family:var(--mono); font-weight:400; letter-spacing:.04em; text-transform:uppercase; }


/* ---------- grid overlay (faint modular lines) ---------- */
.grid-overlay{ position:fixed; inset:0; z-index:1; pointer-events:none;
  display:grid; grid-template-columns:repeat(5,1fr); max-width:var(--maxw);
  margin-inline:auto; padding-inline:var(--pad); }
.grid-overlay span{ border-left:1px solid var(--line-soft); }
.grid-overlay span:last-child{ border-right:1px solid var(--line-soft); }
@media(max-width:760px){ .grid-overlay{ display:none; } }

/* cursor dot (desktop flair) */
.cursor-dot{ position:fixed; top:0; left:0; width:7px; height:7px; border-radius:50%;
  background:var(--rose); z-index:9999; pointer-events:none; mix-blend-mode:multiply;
  transform:translate(-50%,-50%); transition:opacity .3s; opacity:0; }
@media(hover:hover) and (pointer:fine){ .cursor-dot{ opacity:1; } }

/* ============================================================
   NAV
   ============================================================ */
.nav{ position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; gap:24px;
  padding:18px var(--pad); max-width:var(--maxw); margin-inline:auto;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), padding .4s var(--ease); }
.nav.is-scrolled{ background:rgba(241,232,214,.82); backdrop-filter:blur(14px) saturate(1.1);
  box-shadow:0 1px 0 var(--line); padding-block:13px; }
.brand{ display:flex; align-items:center; gap:10px; font-family:var(--mono);
  font-weight:700; font-size:13px; letter-spacing:.06em; color:var(--green); }
.brand__logo{ height:34px; width:auto; }
.brand__enactus{ height:26px; width:auto; }
.brand__x{ color:var(--rose); margin:0 7px; font-weight:400; }
.nav__links{ display:flex; gap:30px; margin-left:auto; font-size:14px; color:var(--ink); }
.nav__links a{ position:relative; padding:4px 0; opacity:.78; transition:opacity .25s; }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0;
  background:var(--rose); transition:width .3s var(--ease); }
.nav__links a:hover{ opacity:1; } .nav__links a:hover::after{ width:100%; }
.nav__cta{ display:inline-flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600;
  padding:9px 18px; border:1.4px solid var(--green); border-radius:40px; color:var(--green);
  transition:.28s var(--ease); white-space:nowrap; }
.nav__cta:hover{ background:var(--green); color:var(--hanji-2); }
.nav__cta .dot{ color:var(--rose); }
.nav__cta:hover .dot{ color:var(--hanji-2); }
.nav__burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.nav__burger span{ width:24px; height:2px; background:var(--ink); transition:.3s var(--ease); }

@media(max-width:900px){
  .nav__links{ position:fixed; inset:0 0 auto 0; top:0; padding:96px var(--pad) 40px;
    flex-direction:column; gap:6px; background:var(--hanji); transform:translateY(-105%);
    transition:transform .45s var(--ease); height:100dvh; margin:0; }
  .nav.is-open .nav__links{ transform:translateY(0); }
  .nav__links a{ font-family:var(--serif); font-size:30px; opacity:1; padding:14px 0;
    border-bottom:1px solid var(--line); }
  .nav__cta{ margin-left:auto; }
  .nav__burger{ display:flex; z-index:101; }
  .nav.is-open .nav__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav.is-open .nav__burger span:nth-child(2){ opacity:0; }
  .nav.is-open .nav__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

/* ============================================================
   shared section bits
   ============================================================ */
main{ position:relative; z-index:2; }
section{ max-width:var(--maxw); margin-inline:auto; padding:clamp(80px,12vh,150px) var(--pad); position:relative; }
.section-tag{ display:inline-block; font-size:11.5px; color:var(--rose-deep); margin-bottom:26px; letter-spacing:.12em; }
.section-head{ max-width:920px; margin-bottom:clamp(48px,7vw,86px); }
.big-statement{ font-family:var(--serif); font-weight:700; line-height:1.28;
  font-size:clamp(19px,2.4vw,29px); letter-spacing:-.01em; color:var(--green-ink); max-width:30em; }
.big-statement .accent{ color:var(--green); }
.accent{ color:var(--rose); }
/* 인트로 리드 문단 — 세리프(고운바탕) 통일 */
.overview__lead, .prize__lead, .databank__lead{ font-family:var(--serif); }

/* reveal animation */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease) var(--d,0s), transform .9s var(--ease) var(--d,0s); }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } html{scroll-behavior:auto;} }

/* capsule notch (drawer-handle on cards) */
.notch{ position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
  width:46px; height:7px; border-radius:0 0 6px 6px; background:var(--green);
  opacity:.9; }
.notch::after{ content:""; position:absolute; inset:0; top:-7px; border-radius:6px; background:inherit; }

/* line button */
.btn-line{ display:inline-flex; align-items:center; gap:10px; font-size:14px; font-weight:600;
  padding:12px 24px; border:1.4px solid currentColor; border-radius:44px; transition:.28s var(--ease); }
.btn-line .dot{ color:var(--rose); }
.btn-line:hover{ background:var(--green); color:var(--hanji-2); border-color:var(--green); }
.btn-line:hover .dot{ color:var(--rose); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ min-height:100dvh; display:flex; flex-direction:column; justify-content:flex-end;
  padding-top:130px; padding-bottom:clamp(40px,6vh,70px); overflow:hidden; }
.hero__label{ position:absolute; top:118px; left:var(--pad); font-size:11px; line-height:1.5;
  color:var(--ink-soft); letter-spacing:.14em; }
.hero__scroll{ position:absolute; top:50%; right:var(--pad); font-size:10.5px; color:var(--ink-soft);
  writing-mode:vertical-rl; letter-spacing:.2em; }
.hero__scroll span{ display:block; margin-top:8px; animation:bob 1.8s var(--ease) infinite; }
@keyframes bob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(7px);} }

.hero__ring{ position:absolute; top:46%; left:50%; transform:translate(-50%,-54%);
  width:min(62vw,560px); height:min(62vw,560px); z-index:0; pointer-events:none;
  opacity:.96; mix-blend-mode:multiply; }

.hero__eyebrow{ font-size:13px; color:var(--green); margin-bottom:18px; letter-spacing:.02em; font-weight:500; }
.hero__title{ font-family:var(--serif); font-weight:600; line-height:.98;
  font-size:clamp(38px,7.4vw,98px); letter-spacing:-.02em; color:var(--green-ink);
  position:relative; z-index:2; }
.hero__title span{ display:block; }

.hero__foot{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:34px; margin-top:clamp(30px,5vw,56px); position:relative; z-index:2; }
.hero__lede{ max-width:40em; }
.hero__tagline{ font-family:var(--serif); font-size:clamp(18px,2vw,24px); font-weight:600;
  color:var(--green-ink); line-height:1.3; margin-bottom:12px; letter-spacing:-.01em; }
.hero__sub{ font-family:var(--serif); font-size:clamp(13.5px,1.35vw,16px); color:var(--ink-soft); line-height:1.55; }
.hero__deadline{ text-align:right; }
.hero__deadline-k{ display:block; font-size:11.5px; color:var(--ink-soft); letter-spacing:.04em; margin-bottom:7px; }
.hero__deadline-d{ font-family:var(--serif); font-size:clamp(21px,2.3vw,30px); color:var(--green); letter-spacing:-.01em; }
@media(max-width:620px){ .hero__scroll{ display:none; }
  .hero__foot{ flex-direction:column; align-items:flex-start; gap:22px; }
  .hero__deadline{ text-align:left; }
  .br-d{ display:none; } }

/* ============================================================
   OVERVIEW
   ============================================================ */
.overview__lead{ font-size:clamp(14px,1.45vw,16.5px); color:var(--ink); max-width:44em; margin-top:24px; line-height:1.7; }
.overview__points{ list-style:none; display:grid; gap:11px; }
.overview__points li{ position:relative; padding-left:20px; word-break:keep-all; }
.overview__points li::before{ content:""; position:absolute; left:2px; top:.62em; width:6px; height:6px;
  background:var(--gold); transform:rotate(45deg); }
.cards-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.6vw,22px); }
.card{ position:relative; background:var(--hanji-2); border:1px solid var(--line);
  border-radius:18px; padding:42px 28px 32px; min-height:248px;
  display:flex; flex-direction:column; transition:.4s var(--ease); overflow:hidden; }
.card::before{ content:""; position:absolute; inset:0; background:
   radial-gradient(120% 80% at 50% 0%, rgba(206,106,126,.06), transparent 60%); opacity:0; transition:.4s; }
.card:hover{ transform:translateY(-5px); border-color:var(--gold-soft); box-shadow:0 22px 50px -28px rgba(44,39,32,.4); }
.card:hover::before{ opacity:1; }
.card__no{ font-size:12px; color:var(--gold); }
.card__t{ font-family:var(--serif); font-weight:600; font-size:25px; color:var(--green-ink);
  margin:auto 0 12px; letter-spacing:.01em; }
.card__d{ font-size:14.5px; color:var(--ink-soft); line-height:1.6; }
.card__d b{ color:var(--ink); font-weight:600; }
@media(max-width:820px){ .cards-3{ grid-template-columns:1fr; } .card{ min-height:0; } }

/* ---------- ABOUT brand section ---------- */
.about .cards-3{ margin-bottom:clamp(14px,2vw,22px); }
.about .card__no{ font-family:var(--sans); text-transform:none; letter-spacing:0; font-weight:600;
  font-size:12.5px; color:var(--rose-deep); }
.about .card__t{ margin:18px 0 10px; }   /* 이미지 카드는 제목 상단 정렬(auto 해제) */
/* 카드 상단 이미지 */
.about .card{ overflow:hidden; }
.card__img{ margin:-42px -28px 22px; height:176px; overflow:hidden; background:var(--hanji-deep); }
.card__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.about .card:hover .card__img img{ transform:scale(1.05); }
/* 전체 너비 비주얼 밴드 */
.band{ max-width:none; width:100%; margin-block:clamp(34px,5vw,72px); padding:0;
  height:clamp(210px,30vw,400px); overflow:hidden; position:relative; z-index:2; }
.band img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- process timeline (가로 일정) ---------- */
.flow{ margin-top:clamp(40px,5vw,64px); margin-bottom:clamp(44px,6vw,76px); }
.flow__steps{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,28px); position:relative; }
.flow__steps::before{ content:""; position:absolute; left:7px; right:7px; top:6px; height:1.5px;
  background:linear-gradient(90deg,var(--gold-soft),var(--gold)); }
.flow__step{ position:relative; padding-top:30px; }
.flow__step::before{ content:""; position:absolute; top:0; left:0; width:13px; height:13px; border-radius:50%;
  background:var(--hanji); border:2px solid var(--green); }
.flow__step.is-key::before{ background:var(--rose); border-color:var(--rose); box-shadow:0 0 0 5px rgba(206,106,126,.15); }
.flow__date{ font-size:11px; color:var(--gold); display:block; margin-bottom:8px; letter-spacing:.02em; }
.flow__name{ font-family:var(--serif); font-weight:700; font-size:clamp(19px,2.1vw,25px); color:var(--green-ink); line-height:1; margin-bottom:9px; }
.flow__step.is-key .flow__name{ color:var(--rose-deep); }
.flow__d{ font-size:13px; color:var(--ink-soft); line-height:1.45; }
@media(max-width:680px){ .flow__steps{ grid-template-columns:1fr 1fr; gap:28px 16px; } .flow__steps::before{ display:none; } }

/* ============================================================
   HOW IT WORKS — dark green section
   ============================================================ */
.works{ max-width:none; background:var(--green-deep); color:var(--cream-on-dark);
  border-radius:clamp(20px,3vw,42px); margin-inline:auto; margin-block:clamp(20px,4vw,40px);
  max-width:var(--maxw); overflow:hidden; padding-block:clamp(50px,7vw,86px); }
.works .section-tag{ color:var(--rose); }
.works__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:38px; }
.works__title{ font-family:var(--serif); font-weight:500; font-size:clamp(30px,4.6vw,58px);
  line-height:1.05; letter-spacing:-.02em; color:#fff; }
.steps{ list-style:none; counter-reset:s; }
.step{ display:grid; grid-template-columns:auto 1fr auto; gap:clamp(18px,3vw,52px); align-items:start;
  padding:22px 0; border-top:1px solid rgba(239,230,210,.16); }
.step:last-child{ border-bottom:1px solid rgba(239,230,210,.16); }
.step__no{ font-size:13px; color:var(--gold-soft); padding-top:6px; }
.step__body h3{ font-family:var(--serif); font-weight:600; font-size:clamp(20px,2.2vw,27px); color:#fff; margin-bottom:9px; }
.step__body p{ font-size:14px; color:rgba(239,230,210,.72); line-height:1.6; }
.step__body p b{ color:var(--rose); font-weight:600; }
.step__meta{ font-family:var(--serif); font-size:clamp(15px,1.5vw,19px); color:var(--sage); padding-top:4px; text-align:right; white-space:nowrap; letter-spacing:.01em; }
.step__venue{ display:block; font-family:var(--mono); font-style:normal; font-size:10.5px; color:rgba(178,196,170,.7); margin-top:5px; letter-spacing:.04em; }
.step{ transition:padding-left .4s var(--ease); }
.step:hover{ padding-left:10px; }
/* HOW TO APPLY — intro / KPI 지표 풀 (dark, 초록 섹션 내부) */
.works__intro{ font-size:clamp(14px,1.5vw,16.5px); color:rgba(239,230,210,.82); line-height:1.7;
  max-width:44em; margin:-18px 0 30px; word-break:keep-all; }
.works__intro b{ color:#fff; font-weight:600; }
.works__intro a{ color:var(--gold-soft); border-bottom:1px solid rgba(205,176,121,.4); }
.works__intro a:hover{ color:#fff; border-color:#fff; }
.dl-form{ color:var(--gold-soft); border-bottom:1px solid rgba(205,176,121,.5); transition:color .2s,border-color .2s; }
.dl-form:hover{ color:#fff; border-color:#fff; }

@media(max-width:760px){
  .works__intro{ margin-top:-12px; }
}
.works__foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(14px,2vw,24px);
  margin-top:36px; }
.works__foot-tag{ font-size:11px; color:var(--sage); letter-spacing:.14em; }
.works .btn-line{ color:#fff; }
.works .btn-line:hover{ background:var(--rose); border-color:var(--rose); color:#fff; }
.works .btn-line:hover .dot{ color:#fff; }
@media(max-width:760px){
  .step{ grid-template-columns:auto 1fr; }
  .step__meta{ grid-column:2; text-align:left; padding-top:4px; }
}

/* ============================================================
   PRIZE & TIMELINE
   ============================================================ */
.prize__lead{ font-size:clamp(14px,1.45vw,16.5px); color:var(--ink); max-width:44em; margin-top:24px; line-height:1.7; }
.prize__lead b{ color:var(--rose-deep); font-weight:600; }
.prize__grid{ display:grid; grid-template-columns:1.55fr 1fr; gap:clamp(16px,2vw,30px); align-items:start; }

.prize__table{ border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--hanji-2); }
.prow{ display:grid; grid-template-columns:clamp(140px,15vw,170px) 1fr auto; gap:16px; align-items:center;
  padding:20px 26px; border-top:1px solid var(--line); }
.prow:first-child{ border-top:0; }
.prow--head{ font-size:11px; color:var(--ink-soft); background:var(--hanji-deep); padding-block:13px; }
.prow--head .amt{ text-align:right; }
.prow__k{ font-family:var(--serif); font-size:18px; font-weight:600; color:var(--green-ink); white-space:nowrap; }
.prow__t{ font-size:13px; color:var(--ink-soft); display:flex; flex-direction:column; gap:3px; }
.prow__t em{ font-size:12px; color:var(--gold); font-style:normal; letter-spacing:0; }
.amt{ font-family:var(--serif); font-weight:600; font-size:23px; color:var(--green); text-align:right; white-space:nowrap; }
.amt small{ font-size:.55em; color:var(--ink-soft); font-weight:600; margin-left:2px; }

.recycle{ position:relative; background:var(--hanji-2); border:1px solid var(--line);
  border-radius:18px; padding:40px 28px 30px; }
.recycle__tag{ font-size:11px; color:var(--rose-deep); }
.recycle__flow{ list-style:none; margin-top:22px; display:flex; flex-direction:column; gap:20px; }
.recycle__flow li{ position:relative; padding-left:18px; }
.recycle__flow li::before{ content:""; position:absolute; left:0; top:7px; width:7px; height:7px;
  background:var(--rose); transform:rotate(45deg); }
.recycle__flow .mono{ font-size:11.5px; color:var(--green); display:block; margin-bottom:5px; }
.recycle__flow p{ font-size:13.5px; color:var(--ink-soft); line-height:1.55; }
.recycle__flow p b{ color:var(--ink); font-weight:600; }

.timeline{ margin-top:clamp(36px,5vw,60px); }
.timeline ol{ list-style:none; display:grid; grid-template-columns:repeat(5,1fr); gap:10px;
  position:relative; counter-reset:t; }
.timeline ol::before{ content:""; position:absolute; left:0; right:0; top:7px; height:1px; background:var(--line); }
.timeline li{ position:relative; padding-top:30px; }
.timeline li::before{ content:""; position:absolute; top:3px; left:0; width:9px; height:9px;
  border-radius:50%; background:var(--hanji); border:1.5px solid var(--green); }
.timeline li.is-key::before{ background:var(--rose); border-color:var(--rose); box-shadow:0 0 0 4px rgba(206,106,126,.18); }
.tl__date{ font-size:11px; color:var(--green); display:block; margin-bottom:5px; }
.tl__d{ font-size:13px; color:var(--ink-soft); }
.timeline li.is-key .tl__d{ color:var(--rose-deep); font-weight:600; }
.prize__note{ font-size:11.5px; color:var(--ink-soft); margin-top:24px; letter-spacing:.02em; }
@media(max-width:820px){
  .prize__grid{ grid-template-columns:1fr; }
  .timeline ol{ grid-template-columns:1fr 1fr; gap:18px 12px; }
  .timeline ol::before{ display:none; }
  .prow{ grid-template-columns:1fr auto; }
  .prow__t{ grid-column:1; grid-row:2; }
}

/* ============================================================
   DATA BANK
   ============================================================ */
.databank__lead{ font-size:clamp(14px,1.45vw,16.5px); color:var(--ink); max-width:44em; margin-top:24px; line-height:1.7; }
/* 참고 자료 — 카테고리별 이미지 라이브러리 (각 다운로드) */
.reflib{ display:grid; gap:clamp(28px,3.5vw,46px); }
.reflib__head{ display:flex; align-items:baseline; gap:12px; margin-bottom:14px;
  padding-bottom:11px; border-bottom:1px solid var(--line); }
.reflib__label{ font-family:var(--serif); font-weight:600; font-size:clamp(17px,1.9vw,21px); color:var(--green-ink); }
.reflib__sub{ font-size:11px; color:var(--gold); letter-spacing:.06em; }
.reflib__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:clamp(9px,1.2vw,14px); }
.reflib__more{ margin-top:16px; font-size:11.5px; color:var(--green); letter-spacing:.04em; cursor:pointer;
  background:none; border:1px solid var(--line); border-radius:20px; padding:9px 18px; transition:.3s var(--ease); }
.reflib__more:hover{ background:var(--green); color:var(--hanji-2); border-color:var(--green); }
.ga{ position:relative; display:block; border-radius:12px; overflow:hidden; border:1px solid var(--line); aspect-ratio:1/1; background:var(--hanji-2); }
.ga.is-hidden{ display:none; }
.ga img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.ga:hover img{ transform:scale(1.05); }
.ga__bar{ position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; justify-content:flex-end;
  padding:18px 11px 8px; font-size:10.5px; opacity:0; transition:opacity .3s var(--ease);
  background:linear-gradient(transparent, rgba(36,32,26,.8)); }
.ga:hover .ga__bar{ opacity:1; }
.ga__dl{ color:#fff; white-space:nowrap; letter-spacing:.02em; }
/* 제품 정보 + 로고/컬러 */
.dbinfo{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3vw,44px); margin-top:clamp(26px,3vw,40px); align-items:start; }
.dbinfo__tag{ display:block; font-size:11px; color:var(--gold); letter-spacing:.1em; margin-bottom:16px; }
.spec__more{ font-size:13px; color:var(--ink-soft); line-height:1.65; word-break:keep-all; max-width:30em; }
.spec__more a{ color:var(--green); border-bottom:1px solid var(--gold-soft); }
.spec__more a:hover{ color:var(--rose-deep); border-color:var(--rose-deep); }
.db-logo{ display:inline-block; font-family:var(--mono); font-size:12px; color:var(--green);
  border:1px solid var(--line); border-radius:20px; padding:8px 16px; margin-bottom:18px; transition:.3s var(--ease); }
.db-logo:hover{ background:var(--green); color:var(--hanji-2); border-color:var(--green); }
.swatches{ list-style:none; display:grid; gap:9px; }
.swatches li{ display:flex; align-items:center; gap:10px; font-family:var(--mono); font-size:12px; color:var(--ink-soft); }
.swatches li span{ width:18px; height:18px; border-radius:5px; border:1px solid var(--line); }
@media(max-width:680px){
  .reflib__grid{ grid-template-columns:repeat(3,1fr); }
  .reflib__more{ display:none; }   /* 모바일은 카테고리당 4개만, 더보기 없음 */
  .dbinfo{ grid-template-columns:1fr; }
}

/* ============================================================
   APPLY (form)
   ============================================================ */
.apply{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,4vw,64px); align-items:start; }
.apply__intro{ position:sticky; top:120px; }
.apply__title{ font-family:var(--serif); font-weight:600; font-size:clamp(40px,5.5vw,72px);
  color:var(--green-ink); line-height:1; margin:8px 0 22px; }
.apply__sub{ font-size:15px; color:var(--ink-soft); line-height:1.62; max-width:38ch; }
.apply__sub b{ color:var(--rose-deep); font-weight:600; }
.apply__deadline{ margin-top:28px; display:inline-block; font-size:12px; color:var(--rose);
  border:1.4px solid var(--rose); border-radius:40px; padding:9px 18px; letter-spacing:.1em; }
.apply__dl{ display:flex; width:fit-content; align-items:center; gap:8px; margin-top:12px;
  font-size:12px; font-weight:600; color:var(--green); border:1.4px solid var(--green);
  border-radius:40px; padding:9px 18px; letter-spacing:.04em; transition:.28s var(--ease); }
.apply__dl:hover{ background:var(--green); color:var(--hanji-2); }

.form{ position:relative; background:var(--hanji-2); border:1px solid var(--line);
  border-radius:22px; padding:clamp(28px,3.5vw,52px); display:flex; flex-direction:column; gap:24px; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.field{ display:flex; flex-direction:column; gap:9px; }
.field__l{ font-size:11px; color:var(--green); display:flex; align-items:center; gap:8px; }
.field__l i{ color:var(--rose); font-style:normal; }
.field__hint{ font-family:var(--sans); text-transform:none; letter-spacing:0; font-size:11px;
  color:var(--ink-soft); font-weight:400; }
.field input, .field textarea{ font-family:var(--sans); font-size:15px; color:var(--ink);
  background:transparent; border:0; border-bottom:1.4px solid var(--paper-edge);
  padding:9px 2px; transition:border-color .3s var(--ease); resize:none; width:100%; }
.field input::placeholder, .field textarea::placeholder{ color:#B6A98E; }
.field input:focus, .field textarea:focus{ outline:0; border-color:var(--rose); }
.field--kpi{ gap:14px; border:0; padding:0; margin:0; min-width:0; } .field--kpi .field__l{ flex-wrap:wrap; }
.kpi-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; }
.chk{ display:flex; align-items:center; gap:11px; cursor:pointer; font-size:14px; color:var(--ink); }
.chk input{ appearance:none; width:18px; height:18px; border:1.4px solid var(--paper-edge);
  border-radius:5px; flex:0 0 auto; display:grid; place-content:center; transition:.2s; cursor:pointer; }
.chk input::before{ content:""; width:9px; height:9px; transform:rotate(45deg) scale(0); background:var(--rose); transition:.18s var(--ease); }
.chk input:checked{ border-color:var(--rose); }
.chk input:checked::before{ transform:rotate(45deg) scale(1); }
.field--file{ position:relative; }
.field--file input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; height:100%; }
.field__file{ font-size:12px; color:var(--ink-soft); border:1.3px dashed var(--paper-edge);
  border-radius:10px; padding:14px 16px; transition:.3s var(--ease); letter-spacing:.02em; }
.field--file:hover .field__file{ border-color:var(--rose); color:var(--rose); }
.field--file.has-file .field__file{ border-style:solid; border-color:var(--green); color:var(--green); text-transform:none; }
.chk--agree{ align-items:flex-start; font-size:13px; color:var(--ink-soft); line-height:1.5; }
.chk--agree i{ color:var(--rose); }
.form__submit{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:6px; }
.form__status{ font-size:11.5px; letter-spacing:.03em; color:var(--ink-soft); }
.form__status.err{ color:var(--maroon); text-transform:none; letter-spacing:0; font-family:var(--sans); }
.form__status.ok{ color:var(--green); }
.btn-submit{ display:inline-flex; align-items:center; gap:11px; font-family:var(--sans);
  font-size:14px; font-weight:600; color:var(--hanji-2); background:var(--green);
  border:0; border-radius:44px; padding:15px 30px; cursor:pointer; transition:.28s var(--ease); letter-spacing:.02em; }
.btn-submit .dot{ color:var(--rose); }
.btn-submit:hover{ background:var(--rose); }
.btn-submit:hover .dot{ color:#fff; }
.btn-submit:disabled{ opacity:.55; cursor:wait; }
@media(max-width:920px){ .apply{ grid-template-columns:1fr; } .apply__intro{ position:static; } }
@media(max-width:560px){ .form__row{ grid-template-columns:1fr; } .kpi-grid{ grid-template-columns:1fr; } }

/* success overlay */
.sent{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:24px;
  background:rgba(36,58,42,.55); backdrop-filter:blur(6px); }
.sent[hidden]{ display:none; }
.sent__card{ position:relative; background:var(--hanji-2); border-radius:22px; padding:54px 40px 38px;
  max-width:460px; text-align:center; box-shadow:0 40px 90px -30px rgba(0,0,0,.5); animation:pop .5s var(--ease); }
@keyframes pop{ from{ opacity:0; transform:translateY(16px) scale(.97);} to{ opacity:1; transform:none; } }
.sent__check{ width:54px; height:54px; margin:0 auto 22px; border-radius:50%; background:var(--green);
  color:var(--rose); display:grid; place-items:center; font-size:0; }
.sent__check::before{ content:""; width:18px; height:18px; background:var(--rose); transform:rotate(45deg); }
.sent__card h3{ font-family:var(--serif); font-weight:600; font-size:26px; color:var(--green-ink); margin-bottom:12px; }
.sent__card p{ font-size:14px; color:var(--ink-soft); line-height:1.6; margin-bottom:26px; }
.sent__card p b{ color:var(--rose-deep); font-weight:600; }
.sent__card .btn-line{ color:var(--green); }

/* ============================================================
   INSTAGRAM grid
   ============================================================ */
.ig__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:20px; margin-bottom:clamp(26px,3.5vw,44px); }
.ig__head .big-statement{ margin-top:14px; }
.ig__follow{ white-space:nowrap; }
.ig__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(8px,.9vw,13px); }
.ig__cell{ position:relative; aspect-ratio:1; overflow:hidden; border-radius:12px;
  background:var(--hanji-deep); display:block; }
.ig__cell img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s var(--ease); }
.ig__cell::after{ content:""; position:absolute; inset:0; opacity:0; transition:.4s var(--ease);
  background:radial-gradient(circle at 50% 120%, rgba(36,58,42,.28), rgba(36,58,42,0) 60%); }
.ig__cell:hover img{ transform:scale(1.07); }
.ig__cell:hover::after{ opacity:1; }
@media(max-width:900px){ .ig__grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:520px){ .ig__grid{ grid-template-columns:repeat(2,1fr); }
  .ig__head{ flex-direction:column; align-items:flex-start; } .ig__follow{ width:100%; justify-content:center; } }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--green-deep); color:var(--cream-on-dark); padding:clamp(60px,9vw,110px) var(--pad) 40px; position:relative; z-index:2; }
.footer__big{ font-family:var(--serif); font-weight:700; font-size:clamp(28px,8vw,128px);
  line-height:.9; letter-spacing:-.03em; color:#fff; max-width:var(--maxw); margin:0 auto;
  text-align:center; white-space:nowrap; }
.footer__big .accent{ color:var(--rose); margin:0 .08em; font-weight:400; }
.footer__grid{ max-width:var(--maxw); margin:clamp(48px,7vw,84px) auto 0;
  display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
.footer__k{ font-size:10.5px; color:var(--sage); display:block; margin-bottom:12px; letter-spacing:.12em; }
.footer__logo{ height:30px; width:auto; display:block; margin-bottom:14px; }
.footer__logo--enactus{ height:27px; }
.footer__logo--sonyeo{ height:14px; }
.footer__col p{ font-size:14px; color:var(--cream-on-dark); line-height:1.6; }
.footer__col a{ transition:color .25s; } .footer__col a:hover{ color:var(--rose); }
.footer__bar{ max-width:var(--maxw); margin:clamp(44px,6vw,70px) auto 0; padding-top:24px;
  border-top:1px solid rgba(239,230,210,.16); display:flex; justify-content:space-between;
  font-size:11px; color:var(--sage); letter-spacing:.06em; }
.footer__bar a:hover{ color:var(--rose); }
@media(max-width:760px){ .footer__grid{ grid-template-columns:1fr 1fr; gap:28px 20px; } }
@media(max-width:460px){ .footer__grid{ grid-template-columns:1fr; } .footer__bar{ flex-direction:column; gap:10px; } }

/* ---------- mobile nav fit ---------- */
@media(max-width:520px){
  .nav{ gap:10px; padding-inline:16px; }
  .brand{ gap:6px; font-size:11.5px; }
  .brand__logo{ height:27px; }
  .brand__enactus{ height:21px; }
  .nav__cta{ padding:7px 13px; font-size:12px; gap:7px; }
  .nav__burger{ padding:5px 2px; }
}
@media(max-width:360px){
  .nav__cta .dot{ display:none; }
  .brand__x{ margin:0 3px; }
}
