/* ═══════════════════════════════════════════════════════════
   Nana Kept — 공통 스타일
   네 페이지가 모두 이 파일을 먼저 읽고, 각자 <style> 로 덧칠합니다.

   색이나 서체를 바꾸고 싶으면 아래 :root 블록만 고치면 됩니다.
   페이지 CSS 는 전부 이 변수를 통해 색을 씁니다.
   ═══════════════════════════════════════════════════════════ */

:root{
  /* ── 색 ──────────────────────────────────────────────
     의류 브랜드 사이트를 두 차례 실측한 결과입니다.

     1차(리세일·마켓플레이스 20곳)에서는 따뜻한 붉은 계열이 흔했지만,
     그건 ThredUp·Depop·Vinted 처럼 물건이 많고 값이 싼 쪽이었습니다.

     2차에서 값을 제대로 받는 쪽을 보니 예외 없이 같았습니다 —
     Toteme #FFF/#090909, Mejuri #FFF/#0A0A0A, Everlane #FFF/#000,
     Aritzia·Reformation·Frank And Oak·Arket 전부 흰 바탕에 산세리프.
     채도 있는 색은 아예 쓰지 않습니다. 옷 사진이 색을 맡기 때문입니다.

     그래서 바탕을 흰색으로 옮겼습니다. "개인 홈페이지 같다"는 인상은
     포인트색이 아니라 따뜻한 베이지 바탕에서 나왔습니다.

     포인트색은 남기되 아주 좁게 씁니다 — 링크와 표시 정도.
     사진이 들어오면 그때 더 줄이면 됩니다. */
  --paper:#FFFFFF;      /* 바탕 */
  --ink:#0A0A0A;        /* 본문 */
  --accent:#8A3A1C;     /* 번트 시에나 — 링크와 표시에만, 면적 최소 */
  --warn:#8E1F2F;       /* 오류·거절 */
  --soft:#5A5A5A;       /* 보조 텍스트 */
  --rule:#E3E3E1;       /* 가는 선 */
  --card:#FAFAF8;       /* 카드 바탕 — 흰 바탕에서 아주 살짝 뜹니다 */
  --deep:#F4F3F0;       /* 구획을 나누는 바탕 */

  /* 이전 이름 — 페이지 CSS 가 아직 쓰고 있어 남겨 둡니다. */
  --linen:var(--paper);
  --olive:var(--accent);
  --oxblood:var(--warn);

  /* ── 타이포 스케일 ──────────────────────────────────
     페이지마다 h1 이 46/60/72px 로 제각각이던 것을 두 단으로 정리.
     display 는 소개 페이지, display-sm 은 주문 흐름처럼 좁은 단. */
  --fs-display:    clamp(38px, 5.6vw, 64px);
  --fs-display-sm: clamp(30px, 4.4vw, 44px);
  --fs-h2:         clamp(28px, 4vw, 40px);
  --fs-h3:         clamp(22px, 3vw, 28px);
  --fs-lede:       19px;
  --fs-body:       18px;
  --fs-sm:         16px;
  --fs-xs:         14px;
  --fs-micro:      13px;

  /* ── 폭 ────────────────────────────────────────────
     소개 페이지는 넓게, 주문 흐름은 좁게 — 의도된 차이입니다. */
  --w-page:1040px;
  --nav-h:64px;          /* 헤더 높이 (위아래 20px + 한 줄 24px). 히어로 높이 계산에 씁니다 */
  --w-form:780px;
  --w-text:34em;

  /* ── 간격 ──────────────────────────────────────────── */
  --sp-section:clamp(56px, 8vw, 88px);
  --sp-gap:56px;

  --shadow-offset:6px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
}

body{
  background:var(--paper);color:var(--ink);
  /* 본문도 산세리프. 실측한 브랜드가 전부 그렇습니다 —
     세리프 본문이 "개인 블로그" 인상을 만들던 가장 큰 요인입니다. */
  font-family:Archivo,system-ui,-apple-system,sans-serif;
  font-size:var(--fs-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* hidden 속성은 브라우저 기본 규칙이라 클래스 하나에도 밀립니다.
   (.split{display:grid} 같은 규칙이 [hidden] 을 이깁니다)
   JS 로 el.hidden 을 쓰는 곳이 있으므로 확실히 눌러 둡니다. */
[hidden]{display:none!important}

/* width:100% 가 필요합니다 — account.html 은 body 가 flex column 이라,
   margin:0 auto 만 두면 stretch 가 무효가 되어 폭이 콘텐츠만큼 줄어듭니다. */
.wrap{width:100%;max-width:var(--w-page);margin:0 auto;padding:0 26px}
.dsp{font-family:Archivo,system-ui,sans-serif;font-weight:800;letter-spacing:-.028em;line-height:1.02}
.num,.tnum{font-variant-numeric:tabular-nums}

/* ── 네비게이션 ────────────────────────────────────────
   375px 에서 로고가 두 줄, "How we choose" 가 세 줄로 쪼개지던 것.
   로고와 각 링크에 줄바꿈을 막고, 좁아지면 링크 줄만 통째로 내립니다. */
nav{padding:20px 0;border-bottom:1px solid var(--rule)}
.navbar,.bar,.topbar{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:14px 20px;flex-wrap:wrap;
}
/* 헤더: 로고 · 메뉴 · 아이콘을 하나의 가운데 선에 놓습니다.
   글자는 밑선, 아이콘은 가운데 기준이던 것을 전부 가운데로 통일했습니다. */
.navbar{align-items:center;flex-wrap:nowrap;min-height:24px}
/* 헤더(nav.site)는 본문 기둥 밖에 있어서 화면 끝에서 끝까지 갑니다.
   로고는 화면 왼쪽 끝, 메뉴와 아이콘은 오른쪽 끝. 좌우 여백은 창이 넓을수록 48px 까지 늘어납니다. */
nav.site{padding-left:clamp(26px,3.4vw,48px);padding-right:clamp(26px,3.4vw,48px)}
@media(min-width:561px){
  /* 띠 높이는 --nav-h(64px) 그대로 두고, 브랜드 이름만 띠를 채우도록 키웁니다.
     여백을 패딩으로 주지 않고 .navbar 높이를 고정해서, 로고 크기를 바꿔도 띠 높이가 변하지 않습니다.
     폰에서는 화면 폭 때문에 22px 을 유지합니다. */
  nav.site{padding-top:0;padding-bottom:0}
  .navbar{min-height:var(--nav-h)}
  .navbar .logo{font-size:32px}
}

/* ── 워드마크 ──────────────────────────────────────────
   대문자에 넉넉한 자간. 기록을 파는 가게라 도서관 라벨처럼 보이게 했습니다.

   자간은 letter-spacing 0.10em 한 줄로 줍니다.

   처음에는 글자 사이 흰 넓이를 재서 모든 쌍이 같아지도록 푸는
   모델을 썼고, 낱자를 span 으로 쪼개 값을 하나씩 먹였습니다.
   두 번 고쳤지만 답이 "글자 안쪽으로 파인 곳을 얼마나 셀 것인가"라는
   자의적인 값 하나에 좌우됐습니다 — 그 값에 따라 P│T 가 N│A 의
   40% 도 되고 110% 도 나왔습니다. 흐림 검사로 따로 재도 결론이 안 났고,
   T 가로획 아래가 밝은 건 자간 탓이 아니라 T 속이 비어서였습니다.

   계산으로 결판나지 않는 문제라 평범한 텍스트로 되돌렸습니다.
   이러면 Archivo 가 가진 커닝(이 단어에서는 P│T 하나)이 자동으로
   적용되고, 마크업도 그냥 "Nana Kept" 라 스크린리더와 복사·붙여넣기가
   정상으로 돌아옵니다. 대문자는 text-transform 이 맡습니다.

   자간은 -0.09 ~ +0.17em 을 늘어놓고 골랐습니다. 글자가 거의 닿게
   조인 값입니다. 여기서 더 좁히면(-0.08em 부터) 어절 간격까지 같이
   줄어들어 "NANAKEPT" 한 덩어리로 읽힙니다. */
.logo{
  font-family:Archivo,sans-serif;font-weight:700;font-size:22px;
  text-transform:uppercase;letter-spacing:-.05em;
  line-height:1;text-decoration:none;color:var(--ink);
  white-space:nowrap;flex:0 0 auto;
  /* letter-spacing 은 마지막 글자 뒤에도 붙습니다.
     음수라 상자가 그만큼 좁아지므로 도로 더해 옆칸과 안 붙게 합니다. */
  margin-right:.05em;
}
/* 메뉴: 작은 대문자에 넉넉한 자간. 히어로 꼬리표·사진 캡션과 같은 체계입니다.
   굵은 로고 옆에서 메뉴는 한 단계 조용하게. */
.links,.navlinks{
  display:flex;align-items:center;gap:30px;flex-wrap:nowrap;
  font-size:15px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;line-height:1;   /* 13px/500 은 사진 위에서 읽기 어려웠습니다 */
}
.links a,.navlinks a{
  text-decoration:none;color:inherit;white-space:nowrap;
  padding:6px 0 5px;border-bottom:1px solid transparent;
  transition:border-color .15s ease,color .15s ease;
}
.links a:hover,.navlinks a:hover{border-bottom-color:var(--accent)}
/* 지금 보고 있는 페이지 (nanakept-nav.js 가 aria-current 를 붙입니다) */
.links a[aria-current="page"],.navlinks a[aria-current="page"]{border-bottom-color:var(--ink)}

@media(max-width:560px){
  /* 로고 한 줄, 링크 한 줄 — 쪼개지지 않고 두 단으로 정렬됩니다.
     375px 에서 링크 네 개가 한 줄에 들어가도록 크기를 맞췄습니다
     (15px + gap 16 이면 3px 모자라 "Account" 가 혼자 내려갑니다). */
  .bar{gap:10px}
  /* 윗줄: 로고(왼쪽) + 아이콘(오른쪽). 가는 선. 아랫줄: 메뉴.
     .links 를 display:contents 로 풀어서 그 안의 링크들이 .navbar 에 바로 줄을 섭니다. */
  nav.site{padding-top:16px;padding-bottom:6px}
  .navbar{flex-wrap:wrap;gap:0 22px;min-height:0}
  .links,.navlinks{display:contents}
  .links > *,.navlinks > *{order:3;font-size:13px}
  .links a,.navlinks a{padding:13px 0 9px}   /* 손가락이 닿을 자리 */
  .navbar::after{content:"";order:2;flex:0 0 100%;height:1px;margin-top:14px;background:var(--rule)}
}

/* 주문 버튼 옆의 "or start over" */
.ctaover{margin-left:16px;font:inherit;font-size:15px;color:var(--soft);background:0;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ctaover:hover{color:var(--ink)}

/* ── 메뉴 아이콘: 가방(임시저장), 사람(계정) ─────────────── */
.navbar{position:relative}
.links a.ico{
  /* 누르는 자리는 40px, 보이는 그림은 20px. 음수 여백으로 자리를 20px 로 되돌려서
     간격이 그림 기준으로 재어지고, 마지막 아이콘의 오른쪽 끝이 페이지 오른쪽 선에 맞습니다. */
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;margin:-10px;padding:0;border-bottom:0;
  position:relative;color:var(--ink);letter-spacing:0;
}
.links a.ico + a.ico{margin-left:-18px}   /* 아이콘끼리는 22px — 메뉴 글자 간격(30px)보다 가깝게 */
.links a.ico svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s ease}
.links a.ico:hover svg{stroke:var(--accent)}
/* 글자 메뉴와 아이콘 사이의 가는 세로선 */
.links a:not(.ico) + a.ico::before{content:"";position:absolute;left:-5px;top:50%;width:1px;height:18px;margin-top:-9px;background:#C4C4BF}
/* 계정 페이지에 있을 때: 아이콘 아래 짧은 밑줄 */
.links a.ico[aria-current="page"]::after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:1px;background:var(--ink)}
.links a.ico .dot{position:absolute;top:6px;right:5px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:2px solid var(--paper)}
@media(max-width:560px){
  .links a.ico{order:1}
  .links a:not(.ico) + a.ico{margin-left:auto}      /* 첫 아이콘을 오른쪽 끝으로 */
  .links a:not(.ico) + a.ico::before{display:none}
  .links a.ico + a.ico{margin-left:-10px}
}
.bagpop{
  position:absolute;right:0;top:calc(100% + 12px);z-index:20;
  width:min(320px, calc(100vw - 52px));padding:18px 20px;
  background:var(--paper);border:1px solid var(--ink);box-shadow:0 10px 28px rgba(0,0,0,.08);
  color:var(--ink);text-shadow:none;
}
.bagpop h3{margin:0 0 6px;font-size:15px;font-weight:600}
.bagpop p{margin:0 0 14px;font-size:14px;line-height:1.5;color:var(--soft)}
.bagpop .drop{margin-left:14px;font:inherit;font-size:14px;color:var(--soft);background:0;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ── 버튼 ───────────────────────────────────────────────
   사이트 전체가 이 한 벌만 씁니다. 전에는 같은 버튼이 페이지마다
   .cta / .start / .next / .save / .go / .btn 으로 따로 정의돼 있어서
   여백(15/30 · 15/34 · 11/20 · 11/18)과 글자 크기가 조금씩 달랐습니다.

     형태  .btn 테두리 · .btn.solid 채움 · .btn.warn 되돌릴 수 없는 행동 · .btn.link 글자만
     크기  기본(화면 안쪽) · .btn.lg (소개 페이지의 주문 버튼)

   옛 이름(.cta .start .next .save .go)은 마크업과 nanakept-nav.js 가 쓰고 있어서
   같은 정의를 가리키게 남겨 두었습니다. 새로 만들 때는 .btn 을 쓰세요. */
.btn,.cta,.start,.next,.save,.go{
  display:inline-block;box-sizing:border-box;
  font-family:Archivo,sans-serif;font-weight:600;font-size:15px;line-height:1.2;
  padding:11px 20px;border:1px solid var(--ink);border-radius:0;
  background:transparent;color:var(--ink);
  text-decoration:none;white-space:nowrap;text-align:center;cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
/* 테두리만 — 같은 자리의 두 번째 행동 */
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.alt:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.btn.ghost,.go.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover,.go.ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
/* 채움 — 그 화면에서 제일 중요한 행동 하나에만 */
.btn.solid,.cta,.start,.next,.save,.go{background:var(--ink);color:var(--paper)}
.btn.solid:hover,.cta:hover,.start:hover,.next:hover,.save:hover,.go:hover{
  background:var(--accent);border-color:var(--accent);color:var(--paper)}
/* 되돌릴 수 없는 행동 */
.btn.warn{background:transparent;border-color:var(--warn);color:var(--warn)}
.btn.warn:hover{background:var(--warn);border-color:var(--warn);color:var(--paper)}
/* 큰 버튼 — 소개 페이지의 주문 버튼 */
.btn.lg,.cta,.start,.next,.save{padding:15px 30px;font-size:var(--fs-sm)}
/* 글자만 — 되돌아가기처럼 눈에 덜 띄어야 하는 것 */
.btn.link,.back{
  background:0;border:0;padding:11px 4px;font-weight:400;font-size:var(--fs-sm);
  color:var(--soft);text-decoration:underline;text-underline-offset:3px;white-space:normal;
}
.btn.link:hover,.back:hover{background:0;color:var(--ink)}
/* 기다리는 중 */
.btn[disabled],.cta[disabled],.start[disabled],.next[disabled],.save[disabled],.go[disabled]{opacity:.55;cursor:progress}

/* ── 사진 자리 ─────────────────────────────────────────
   사진이 아직 없습니다. 회색 빈 상자는 "덜 만든 것"처럼 보여서,
   대신 아카이브의 대지(臺紙)처럼 보이도록 했습니다.
   빗금은 아주 옅게 깔리고, 라벨은 도장처럼 앉습니다.
   <img> 를 넣으면 이 처리는 자동으로 사라집니다. */
.frame{
  background:var(--card);
  border:1px solid var(--ink);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;position:relative;
}
.frame:not(:has(img)){
  background-color:var(--card);
  background-image:repeating-linear-gradient(
    -45deg,
    transparent 0 11px,
    color-mix(in srgb, var(--accent) 7%, transparent) 11px 12px
  );
}
/* :has() 를 모르는 옛 브라우저에서도 최소한 카드 색은 나옵니다 */
.frame img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}
/* 사진이 들어간 프레임은 테두리 없이. 검정 선은 빈 자리(대지)일 때만 씁니다. */
.frame:has(img){border:0}

.frame .slot{
  font-family:Archivo,sans-serif;font-weight:600;
  font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);text-align:center;line-height:1.6;
  background:var(--card);border:1px solid var(--accent);
  padding:10px 14px;margin:18px;max-width:24ch;
}
.tall{aspect-ratio:4/5}
.wide{aspect-ratio:5/4}
.square{aspect-ratio:1/1}

figure{margin:0}
figcaption{margin-top:9px;font-size:15px;color:var(--soft);font-style:italic}

/* ── 푸터 ─────────────────────────────────────────────── */
footer{
  padding:36px 0 64px;font-size:var(--fs-sm);color:var(--soft);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
}
footer a{text-decoration:none;border-bottom:1px solid var(--rule)}
footer a:hover{border-bottom-color:var(--accent)}

/* ── 섹션 ─────────────────────────────────────────────── */
section{padding:var(--sp-section) 0}
.body{max-width:var(--w-text);font-size:var(--fs-lede)}
.body p + p{margin-top:18px}

/* ── "The box" 오버레이 ────────────────────────────────
   재고가 없는 동안 상품 페이지 대신 이걸 띄워 이메일을 받습니다.
   전체 화면을 덮고, 왼쪽 위 ×로 닫습니다. */
.boxgate{
  position:fixed;inset:0;z-index:100;
  background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  padding:24px;overflow-y:auto;
}
.boxgate-x{
  position:absolute;top:18px;left:22px;
  width:44px;height:44px;line-height:1;
  font-family:Archivo,sans-serif;font-size:30px;font-weight:400;
  background:transparent;border:0;cursor:pointer;color:var(--ink);
}
.boxgate-x:hover{color:var(--accent)}
.boxgate-in{max-width:30em;width:100%}
.boxgate-in .era{
  font-family:Archivo,sans-serif;font-weight:600;font-size:14px;
  color:var(--accent);margin-bottom:14px;
}
.boxgate-in h2{font-size:var(--fs-h2);line-height:1.05}
.boxgate-in > p{margin-top:18px;font-size:var(--fs-lede);color:var(--soft);line-height:1.55}
.boxgate form{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.boxgate input[type=email]{
  flex:1 1 240px;padding:14px;font-size:17px;font-family:Newsreader,serif;
  background:var(--card);border:1px solid var(--ink);color:var(--ink);
}
.boxgate button[type=submit]{
  padding:14px 26px;cursor:pointer;
  font-family:Archivo,sans-serif;font-weight:600;font-size:16px;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
}
.boxgate button[type=submit]:hover{background:var(--accent);border-color:var(--accent)}
.boxgate button[disabled]{opacity:.55;cursor:progress}
.boxgate .trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.gate-msg{
  margin-top:16px;padding:13px 15px;background:var(--card);
  border-left:3px solid var(--accent);font-size:16px;line-height:1.5;
}
.gate-msg.bad{border-left-color:var(--warn);color:var(--warn)}
.gate-go{margin-top:18px}
.gate-go a,.gate-go button{font:inherit;border:0;cursor:pointer;display:inline-block;padding:14px 28px;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:600}
.gate-fine{margin-top:16px;font-size:15px;color:var(--soft)}
