/* 공통 껍데기 — 머리 · 공지 띠 · 검색 패널 · 모바일 서랍 · 꼬리말
 * ═══════════════════════════════════════════════════════════════════════
 * 왜 파일 하나로 두나
 *   전에는 이 규칙들이 index · category · howto · product 에 네 벌로
 *   복사돼 있었다. 머리를 한 번 고치려면 네 곳을 같이 고쳐야 했고,
 *   실제로 꼬리말은 index 만 새 판이고 category · howto 는 옛 판으로
 *   남아 화면마다 다른 꼬리말이 나왔다.
 *
 * 무엇이 여기 있고 무엇이 없나
 *   여기 있는 것 — 머리(.hd) · 공지 띠(.nbar) · 검색 패널(.spanel) ·
 *   모바일 서랍(.mnav) · 꼬리말(footer), 그리고 그것들이 쓰는 토큰.
 *   여기 없는 것 — 바탕 초기화(*·body·a·button)와 각 화면의 본문.
 *   product.html 의 본문은 tw.css 가 그리므로 그 기준을 덮으면 안 된다.
 *
 * 토큰
 *   index.html 이 쓰는 값과 같다(index 는 본문용 토큰을 더 갖는다).
 *   각 화면의 :root 가 뒤에 오므로 값이 겹쳐도 같은 값으로 덮인다.
 * ═══════════════════════════════════════════════════════════════════════
 */
:root{
  --blue:#006BC8; --blue-d:#005AA8; --blue-l:#E8F1FA;
  --red:#FC1D01; --orange:#FF8000; --org-l:#FFF7EE;
  --g500:#1EC95B; --g600:#18A149; --g50:#ECFBF2; --g200:#A5E9BD;
  --n50:#F9F9F9; --n100:#E2E2E5; --n200:#CCCCCC;
  --t01:#000; --t02:#333; --t03:#666; --t04:#999;
  --bd:#DADADA; --bd-l:#E4E8F1; --bg-sky:#F3FAFD;
  --r1:3.6px;
  --rd8:8px; --rd12:12px; --rdf:9999px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px;
  --s10:40px; --s15:60px; --s20:80px; --s30:120px;

  /* 본문 좌우 여백. 1920 에서 120px(그리드 시안), 1240px 아래에서 20px.
     그 사이(1240~1440)는 본문이 1200px 으로 고정된다 — 예전 1208px 과
     사실상 같아서 노트북에서는 아무것도 달라지지 않는다.
     1440 을 넘어서면 여백이 120px 에 멈추고 본문이 1680px 까지 자란다. */
  --gut: clamp(20px, calc((100vw - 1200px) / 2), 120px);

  --h:60px;
}
/* 좌우만 정한다. padding 단축 표기로 적으면 위아래까지 0 으로 못박아,
   이 클래스를 쓰는 tw 화면의 pb-14 같은 아래 여백이 통째로 죽는다
   (실제로 장바구니·주문서·상세의 바닥 여백이 사라졌다). */
/* 본문 칸. 폭 자체는 1920 까지 열어 두고 안쪽 여백(--gut)이 글의 폭을
   정한다 — 1920 에서 1680px 이 남는다(118px 12칸 + 24px 거터 11개).
   padding 을 단축으로 적으면 아래 여백까지 0 이 되어 장바구니·주문서의
   바닥 여백이 사라진다. 좌우만 적는다. */
.wrap{width:100%;max-width:1680px;margin:0 auto;
      padding-left:var(--gut);padding-right:var(--gut)}

/* ── 껍데기 안의 단추 초기화 ─────────────────────────────────────────
   껍데기는 제 모양을 스스로 정한다. 화면마다 button 초기화가 있다고
   믿으면 안 된다 — 공지·404 는 tw.css 도 안 쓰고 제 초기화도 없어서,
   검색·로그아웃·햄버거가 브라우저 기본 회색 상자(2px outset)로 섰다.
   아래 규칙들보다 먼저 두어 각 단추가 제 바탕·테두리를 다시 정할 수
   있게 한다.
   색과 크기는 주지 않는다 — 이 규칙이 .ubtn 보다 선택자 점수가 높아서,
   <button> 인 검색·로그아웃만 머리 색(#333)과 본문 크기(16px)를 물려받았다.
   껍데기의 단추는 저마다 제 색과 크기를 정한다.
   그래서 :where() 로 감싼다 — 점수가 0 이 되어 .ubtn 같은 뒷 규칙이 이긴다.
   같은 덫에 두 번 걸렸다(색 한 번, 크기 한 번). */
:where(.hd, .nbar, .mnav, .spanel, .findbar) button{
  font:inherit;background:none;border:0;cursor:pointer;
  -webkit-appearance:none;appearance:none}

/* ── 공지 띠 ────────────────────────────────────────────────────────
   어두운 띠에 공지 하나를 가운데 놓는다. 밝은 회색 띠였을 때는 헤더와
   바탕이 비슷해 띠가 있는지 없는지 잘 안 보였다 — 검정으로 두면 맨 위
   한 줄이 확실히 갈린다. 순검정 대신 --t02(#333)다 — 검정은 띠 하나가
   화면에서 너무 앞으로 나와, 그 아래 히어로보다 먼저 읽혔다.
   글은 가운데, 닫기는 오른쪽 끝. 가운데를 지키려고 닫기를 흐름에서 빼
   절대 위치로 둔다(흐름에 두면 닫기 너비만큼 글이 왼쪽으로 밀린다). */
.nbar{background:var(--t02);border-bottom:0;
      overflow:hidden;max-height:120px;
      transition:max-height .22s ease, opacity .18s ease}
.nbar[hidden]{display:none}
/* 닫을 때 한 번 접히고 사라진다 — 툭 없어지면 헤더가 튀어 오른 것처럼 보인다 */
.nbar.closing{max-height:0;opacity:0}
@media (prefers-reduced-motion:reduce){ .nbar{transition:none} }
/* 위아래 여백만 준다. padding 한 묶음으로 적으면 .wrap 의 좌우 20px 이
   함께 지워진다 — .nbar .in 이 .wrap 보다 세서 이긴다. */
.nbar .in{position:relative;display:flex;align-items:center;justify-content:center;
          gap:var(--s3);min-height:32px;padding-top:0;padding-bottom:0}
/* 제목 — 누르면 공지로 간다. 화살표는 그 뒤에 붙는다(전에는 '자세히 보기'
   라는 칸이 따로 있었는데, 제목 자체가 같은 곳으로 가는 링크라 두 번
   말하는 셈이었다).
   길면 끝을 자른다: 띠의 높이가 흔들리면 아래 내용이 밀린다.
   화살표는 가상요소다 — JS 가 textContent 로 제목을 갈아 끼우기 때문에
   글자 안에 넣어 두면 그때 같이 지워진다. */
.nbar .t{min-width:0;display:inline-flex;align-items:center;gap:var(--s2);
         font-size:13px;font-weight:500;color:#fff;letter-spacing:-.01em;
         text-decoration:none;white-space:nowrap;
         overflow:hidden;text-overflow:ellipsis}
.nbar .t::after{content:"";flex:none;width:11px;height:11px;
         background:center/contain no-repeat
           url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 19'%3E%3Cpath d='M1.5 1.5L9.5 9.5L1.5 17.5' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
         transition:transform .15s}
.nbar .t:hover{text-decoration:underline}
.nbar .t:hover::after{transform:translateX(2px)}
.nbar .t:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:2px}
/* 닫기 — 장식이 아니라 진짜 단추다. 손가락이 닿는 넓이를 따로 확보한다.
   자리는 예전 그대로(오른쪽 끝, 글 칸에서 8px 바깥). */
.nbar .x{position:absolute;right:12px;top:50%;transform:translateY(-50%);
         display:inline-grid;place-items:center;
         width:32px;height:32px;
         border:0;background:none;color:rgba(255,255,255,.66);border-radius:var(--rd8);
         cursor:pointer;transition:background .15s,color .15s}
.nbar .x:hover{background:rgba(255,255,255,.12);color:#fff}
.nbar .x:focus-visible{outline:2px solid #fff;outline-offset:2px}
.nbar .x svg{flex-shrink:0;display:block;pointer-events:none}
@media (max-width:640px){
  /* 닫기가 글 위에 얹히지 않게 오른쪽만큼 자리를 비운다 */
  .nbar .in{gap:var(--s2);padding-right:36px}
  .nbar .x{right:4px;width:40px;height:40px}
}

/* ── 머리 ─────────────────────────────────────────────────────────── */
.hd{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--bd-l)}
/* 높이는 안쪽 것과 위아래 여백이 정한다 — 홈과 같은 값이다(단추 40 +
   16+16 = 72px). 숫자로 묶어 두면 홈과 어긋난다. */
.hd .in{display:flex;align-items:center;gap:var(--s6);
        padding-top:var(--s5);padding-bottom:var(--s5)}
.hd img{height:28px;width:auto;max-width:100%;display:block}
/* 칸 사이 40px. 24px 일 때는 여섯 칸이 한 덩어리로 붙어 보여 어디서
   어디까지가 한 메뉴인지 눈이 먼저 갈라내야 했다. */
.hd nav{display:flex;justify-content:center;flex:1 1 auto;gap:var(--s10)}
/* 홈(nav.cats a)과 같은 값이다 — 크기 · 굵기뿐 아니라 색과 자간까지.
   같은 16px 이어도 색(#000 vs #333)과 자간(-.16px vs 0)이 달라서 화면을
   옮기면 같은 메뉴가 다르게 보였다. */
.hd nav a{font-size:15px;font-weight:500;line-height:1.5;color:var(--t01);
         letter-spacing:-.16px;text-decoration:none;white-space:nowrap;
         transition:color .15s}
.hd nav a:hover{color:var(--g500);font-weight:700}
.hd nav a:focus-visible{outline:2px solid var(--g600);outline-offset:3px;border-radius:2px}
.hd nav a[aria-current]{font-weight:700;color:var(--t01)}
.util{display:flex;align-items:center;gap:var(--s2);margin-left:auto}

/* 메뉴를 화면 가운데에 세운다 — 홈(index)과 같은 규칙. flex 로 두면
   메뉴가 '로고와 유틸 사이' 가운데에 서는데, 그 둘의 너비가 달라
   본문 가운데보다 왼쪽으로 치우친다. 양옆 칸을 같은 너비로 두면
   메뉴가 본문 한가운데에 온다. 메뉴가 사라지는 1024 이하는 그대로 둔다. */
@media (min-width:1025px){
  .hd .in{display:grid;grid-template-columns:1fr auto 1fr}
  .hd .in > a:first-child{justify-self:start}
  .hd nav{justify-self:center;flex:0 1 auto}
  .util{justify-self:end;margin-left:0}
}
/* 아이콘과 글자 사이는 4px 이다(홈과 같은 값). 8px 이었을 때는 둘이
   한 단추라기보다 따로 놓인 것처럼 떨어져 보였다. */
.ubtn{display:inline-flex;align-items:center;gap:var(--s1);height:40px;padding:0 var(--s2);
      border-radius:var(--rd8);font-size:15px;font-weight:500;color:var(--t03);
      letter-spacing:-.16px;
      text-decoration:none;white-space:nowrap}
.ubtn:hover{background:var(--n50);color:var(--t02)}
/* 22px 은 글자 옆에서 커 보였다 — 20px 으로 줄인다. 획은 24 칸 기준
   2.4 로 올려 화면에서는 2px 그대로 둔다(홈과 같은 값). */
/* 홈과 같은 규칙이다. 크기 기준은 장바구니의 '보이는' 몸통이다 —
   바운딩 박스는 15.8 이지만 눈에 보이는 몸통은 16×10.5 뿐이고 바퀴 두
   점은 떨어져 있어 크기로 안 세어진다(넓이로 치면 13).
   그림이 칸을 채우는 정도가 저마다 달라(돋보기 .72 · 시계 .75 · 사람
   .69) 칸 크기를 --k 로 따로 줘 셋 다 13 에 맞춘다.
   획은 non-scaling-stroke 로 칸과 무관하게 화면 1.6px 이다. */
.ubtn{--ib:18px}
.ubtn svg{width:calc(var(--ib) * var(--k,1));height:calc(var(--ib) * var(--k,1));
          color:inherit;display:block}
.ubtn svg *{stroke-width:1.6;vector-effect:non-scaling-stroke}
.ubtn[href="track"]{--k:.96}   /* 시계 — 그림이 칸을 제일 꽉 채운다 */
#memberBtn{--k:1.05}           /* 사람 — 제일 덜 채운다 */
/* 장바구니는 크기 기준이라 칸을 안 건드린다. 획만 나머지와 맞춘다. */
.cartbtn svg{width:22px;height:22px}
.cartbtn svg *{stroke-width:1.6;vector-effect:non-scaling-stroke}
.cartbtn{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;
         border-radius:var(--rd8);color:var(--t03);text-decoration:none}
.cartbtn:hover{background:var(--n50);color:var(--t02)}
.cartbtn .n{position:absolute;top:2px;right:0;display:grid;place-items:center;
            min-width:18px;height:18px;padding:0 5px;background:var(--t02);color:#fff;
            border-radius:var(--rdf);font-size:11px;font-weight:700;line-height:1;
            transition:background .15s}
/* 숫자를 칠하기 전까지는 자리만 잡고 안 보인다. 마크업의 0 이 먼저
   그려지고 자바스크립트가 그 위에 실제 수를 얹는데, 그 사이 한 박자
   동안 회색 0 이 떴다 사라졌다. visibility 로 감추면 자리는 그대로라
   숫자가 바뀌어도 아무것도 안 움직인다(display:none 이면 뱃지가
   생겨나면서 장바구니 아이콘이 밀린다). */
.cartbtn .n{visibility:hidden}
.cartbtn .n.ready{visibility:visible}
/* 담은 것이 있을 때만 빨강. 0 이면 어두운 회색으로 둔다 */
.cartbtn .n.has{background:var(--red)}

/* ── 검색 패널 · 모바일 서랍 — 홈과 같은 모양 ──────────────────────
   헤더는 페이지마다 달라지면 안 된다. 홈에서 쓰는 것과 같은 이름·같은
   값으로 둔다(번들러가 없어 파일을 나눠 쓸 수 없다 — 한쪽을 고치면
   다른 쪽도 같이 고쳐야 한다). */
.mbtn{display:none}
/* 헤더 아래로 덮으며 열린다 — 흐름에 두면 열 때마다 아래 내용이 밀린다 */
.spanel{position:absolute;left:0;right:0;top:100%;
        border-top:1px solid var(--bd-l);background:#fff;
        /* 흐림(20)이 내림(8)보다 커서 그림자가 위쪽으로도 10px 번졌다 —
           머리 아래에 붙는 판이라 그 자국이 머리 위에 얹혔다. 내림을 키우고
           번짐(spread)을 음수로 줄여 위로는 넘어오지 않게 한다. */
        box-shadow:0 12px 20px -8px rgba(0,0,0,.10);
        max-height:0;overflow:hidden;
        opacity:0;transition:max-height .22s ease,opacity .18s ease}
.spanel.on{max-height:240px;opacity:1}
.spanel .sin{padding:var(--s6) var(--s5) var(--s5)}
@media (prefers-reduced-motion:reduce){ .spanel{transition:none} }
/* 검색줄 — 홈(index.html)의 .findbar · .sug 와 같은 값이다 */
.findbar{display:flex;gap:var(--s2);align-items:center;margin:0}
.findbar .fwrap{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center}
.findbar input{width:100%;height:56px;padding:0 52px;font:inherit;font-size:18px;
  color:var(--t01);background:#fff;border:1px solid var(--bd);border-radius:var(--rd8);
  -webkit-appearance:none;appearance:none}
.findbar input::placeholder{color:var(--t04)}
.findbar input:focus{outline:0;border:1.5px solid var(--g500);padding-left:51.5px}
.findbar input::-webkit-search-cancel-button{display:none}
.findbar .fic{position:absolute;left:var(--s4);color:var(--t04);pointer-events:none;
  display:block;transition:color .15s}
.findbar input:focus ~ .fic{color:var(--g500)}
.findbar .fx{position:absolute;right:10px;width:32px;height:32px;padding:0;
  display:flex;align-items:center;justify-content:center;
  border:0;border-radius:var(--rd8);background:var(--n50);color:var(--t03);
  cursor:pointer;transition:background .15s,color .15s}
.findbar .fx:hover{background:var(--n100);color:var(--t01)}
.findbar .fx:focus-visible{outline:2px solid var(--g600);outline-offset:2px}
.findbar .fx[hidden]{display:none}
.findbar .go{flex:0 0 auto;height:56px;padding:0 var(--s6);font:inherit;font-size:16px;
  font-weight:700;letter-spacing:-.01em;border:0;border-radius:var(--rd8);
  background:var(--g500);color:#fff;cursor:pointer;white-space:nowrap;
  transition:background .15s}
.findbar .go:hover{background:var(--g600)}
.findbar .go:focus-visible{outline:2px solid var(--g600);outline-offset:2px}
.sug{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s4);
     overflow-x:auto;scrollbar-width:none}
.sug::-webkit-scrollbar{display:none}
.sug .lb{font-size:14px;color:var(--t04);white-space:nowrap;flex:0 0 auto}
/* 44px 이다. 38px 이었는데, 가로로 밀면서 누르는 자리라 손가락이 옆
   알약에 닿기 쉬웠다 — 갈래를 바꾸는 주 동작이다. */
.sug button{flex:0 0 auto;height:44px;padding:0 var(--s4);font:inherit;font-size:14px;
  letter-spacing:-.01em;color:var(--t03);background:#fff;border:1px solid var(--bd);
  border-radius:var(--rd8);cursor:pointer;white-space:nowrap;
  transition:border-color .15s,color .15s}
.sug button:hover{border-color:var(--t02);color:var(--t02)}
.sug button:focus-visible{outline:2px solid var(--g600);outline-offset:2px}
.mveil{position:fixed;inset:0;background:none;opacity:0;pointer-events:none;
       transition:opacity .2s;z-index:50}
.mveil.on{opacity:1;pointer-events:auto}
.mnav{position:fixed;inset:0;background:var(--n50);z-index:51;display:flex;flex-direction:column;
      opacity:0;visibility:hidden;transform:translateY(10px);
      transition:opacity .2s ease,transform .24s cubic-bezier(.4,0,.2,1),visibility 0s .24s}
.mnav.on{opacity:1;visibility:visible;transform:none;
      transition:opacity .2s ease,transform .24s cubic-bezier(.4,0,.2,1),visibility 0s}
.mnav .mh{flex:0 0 auto;display:flex;align-items:center;gap:var(--s3);height:var(--hh,66px);
      padding:0 20px;background:#fff;border-bottom:1px solid var(--bd-l)}
.mnav .mh b{font-size:16px;font-weight:700;color:var(--t01)}
.mnav .mh button{margin-left:auto;width:44px;height:44px;display:grid;place-items:center;
      border:0;background:none;color:var(--t02);border-radius:var(--rd8);cursor:pointer}
.mnav .mb{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;
      padding:var(--s6) 20px var(--s10);width:100%;max-width:520px;margin:0 auto}
.mnav .grp{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--t04);
      padding:0 0 var(--s2);text-align:center;text-transform:uppercase}
.mnav .grp + .mgrp{margin-top:0}
.mnav .mgrp + .grp{padding-top:var(--s8)}
.mnav .mgrp{background:#fff;border-radius:var(--rd12);overflow:hidden;box-shadow:0 4px 10px 0 #EBEFF4}
.mnav a,.mnav .mitem{position:relative;display:flex;align-items:center;justify-content:center;
      min-height:60px;padding:0;font-size:16px;font-weight:500;color:var(--t01);
      background:none;border:0;width:100%;text-align:center;cursor:pointer;text-decoration:none}
.mnav .mgrp > * + *::after{content:"";position:absolute;left:20px;right:20px;top:0;
      height:1px;background:var(--bd-l)}
.mnav .mgrp.sub a{min-height:52px;font-size:15px;font-weight:500;color:var(--t02)}
.mnav a:hover,.mnav .mitem:hover{background:var(--n50)}

/* [hidden] 은 브라우저 기본값이 display:none 인데, 우리가 display 를 따로
   준 요소에서는 그 기본값이 밀린다 — .ubtn 이 inline-flex 라 로그아웃
   단추가 로그인 전에도 보였다(홈에는 같은 규칙이 있어 홈에서만 멀쩡했다).
   껍데기 안에서 [hidden] 이 항상 통하도록 한 줄로 못 박는다. */
.hd [hidden],.mnav [hidden],.spanel [hidden],.nbar [hidden]{display:none}

/* ── 꼬리말 ──────────────────────────────────────────────────────────
   두 칸(왼쪽 회사 정보 + 바로가기 / 오른쪽 고객센터) 위에 법적 고지 한 칸.
   세 칸으로 나눠 봤더니 왼쪽 두 칸이 1,100px 을 쓰면서 글은 330px 어치뿐
   이었다. 이 꼬리말의 글을 다 붙여도 580px 이라 어떻게 배치해도 860px 이
   남는다 — 폭을 채우려 하지 말고 덩어리를 뭉쳐 빈 자리를 한 군데로 모은다.
   바탕은 옅은 회색이다 — 바로 위 FAQ 가 옅은 크림이라, 흰색이면 두 구역이
   이어져 보이고 페이지가 어디서 끝나는지 흐려진다.
   스타일이 여기 있는 이유: 예전에는 sitefoot.js 가 인라인으로 박아 두었다.
   홈이 제 CSS 를 쓰고 나머지가 tw.css 를 쓰던 때라 어느 쪽에도 기댈 수
   없어서였는데, 지금은 고객 화면 열둘이 모두 이 파일을 부른다. */
/* 꼬리말은 어둡다(--t02, 맨 위 공지 띠와 같은 값). 흰 바탕에 흰 상자로
   두었더니 화면 끝이 본문과 안 갈렸고, 회색으로 두면 그 안의 흰 상자
   하나만 밝아서 전화번호가 제일 먼저 눈에 들어왔다. 어둡게 깔면 띠
   하나로 "여기서 끝" 이 읽히고, 상자는 얇은 흰 선으로만 갈린다.
   로고는 흰 글자 한 벌을 따로 쓴다(edmuak-logo-on-dark.svg). */
footer{background:var(--t02);border-top:0}
footer .fgrid{display:flex;justify-content:space-between;align-items:flex-start;
      gap:var(--s10);flex-wrap:wrap;
      padding-top:var(--s15);padding-bottom:var(--s10)}
footer .fleft{min-width:0}

/* 회사 정보 — 로고가 이 칸의 제목 노릇을 한다 */
footer .flogo{height:26px;width:auto;display:block;margin-bottom:var(--s4)}
footer .fco p{margin:0 0 6px;font-size:16px;line-height:1.8;color:rgba(255,255,255,.62);
      word-break:keep-all}
footer .fco p:last-child{margin-bottom:0}

/* 바로가기 — 둘뿐이라 가로 한 줄이다. 세로 목록에 제목까지 달 값어치가 없다. */
footer .fnav{display:flex;gap:var(--s5);flex-wrap:wrap;margin-top:var(--s5)}
footer .fnav a{font-size:16px;font-weight:500;color:rgba(255,255,255,.88);text-decoration:none;
      transition:color .15s}
footer .fnav a:hover{color:#fff}
footer .fnav a:focus-visible{outline:2px solid var(--g600);outline-offset:2px;border-radius:2px}

/* 고객센터 — 오른쪽 흰 상자. 회색 글 사이에 같은 무게로 섞여 있으면 급할
   때 눈이 못 찾는다. 상자 안에서 아이콘이 먼저 보이고 번호가 제일 크다. */
footer .fcs{flex:0 0 auto;background:none;border:1px solid rgba(255,255,255,.18);
      border-radius:var(--rd12);padding:var(--s8) var(--s10);min-width:300px}
/* 헤드셋 그림은 걷었다 — 번호가 이미 제일 크고, 작은 그림 하나가 더 있으면
   상자 안에서 눈이 두 번 멈춘다. 라벨을 키워 그 자리를 대신하게 한다. */
footer .fcs .k{
      margin:0 0 var(--s3);font-size:16px;font-weight:700;color:rgba(255,255,255,.70)}
footer .fcs .num{margin:0 0 var(--s2)}
footer .fcs .num a{font-size:26px;font-weight:700;color:#fff;
      letter-spacing:-.01em;text-decoration:none}
footer .fcs .num a:hover{color:var(--g200)}
footer .fcs .h{margin:0;font-size:12px;color:rgba(255,255,255,.45)}

/* 법적 고지 — 얇은 선으로 위와 가른다. 관리자 단추는 아래끝에 맞춘다. */
footer .fbot{display:flex;align-items:flex-end;justify-content:space-between;
      gap:var(--s4);flex-wrap:wrap;
      border-top:1px solid rgba(255,255,255,.12);padding-top:var(--s5);padding-bottom:var(--s10)}
footer .flegal{min-width:0;flex:1 1 auto}
/* 폭을 묶지 않는다 — 고지문은 한 줄에 하나씩 둔다. 80ch 로 접어 봤더니
   두 줄짜리가 생겨 문단이 몇 개인지 눈으로 세어야 했다. */
footer .flegal p{margin:0 0 4px;font-size:12px;line-height:1.7;color:rgba(255,255,255,.42);
      word-break:keep-all}
footer .flegal .cr{margin-bottom:var(--s3);color:rgba(255,255,255,.58)}
footer .adminmenu:not([hidden]){display:inline-block}

@media (max-width:768px){
  footer .fgrid{gap:var(--s8);padding-top:var(--s10);padding-bottom:var(--s8)}
  footer .fcs{flex:1 1 100%;min-width:0}
  /* 번호는 22px 로 내린다. 26px 이면 좁은 화면에서 히어로 제목(28px)에
     맞먹어, 꼬리말 전화가 화면에서 제일 큰 글자 축에 든다. */
  footer .fcs .num a{font-size:22px}
}

/* 고객센터 상자의 안쪽 여백은 모바일에서만 조인다. 태블릿에서는
   상자가 아직 넉넉해서 32/40 이 맞는다. */
@media (max-width:640px){
  footer .fcs{padding:var(--s5) var(--s6)}
}

@media (max-width:1180px){
  .hd nav{gap:var(--s8)}
  .hd img{height:26px}
}
@media (max-width:1024px){
  /* 홈과 같은 규칙이다 — 갈래 메뉴를 접고 햄버거를 세운다. 서랍(#mnav)이
     같은 칸을 전부 담으므로 유형을 바꿀 길은 그대로 있다.
     전에는 이 화면만 메뉴를 한 줄 내려 가로로 밀었다. 그러면 머리가 두
     줄(실측 99px)이 되어 붙는 갈래 줄이 그만큼 내려앉고, 무엇보다 같은
     폭에서 홈과 목록의 머리가 서로 달라 보였다. */
  .hd nav{display:none}
  .mbtn{display:inline-grid;place-items:center;width:44px;height:44px;flex:0 0 auto;
        border:0;background:none;color:var(--t03);border-radius:var(--rd8);cursor:pointer}
  .mbtn:hover{background:var(--n50);color:var(--t01)}
  .mbtn:focus-visible{outline:2px solid var(--g600);outline-offset:2px}
  /* 획은 같은 줄의 장바구니와 맞춘다 — 여기만 2px 이면 햄버거만 진하다 */
  .mbtn svg{flex-shrink:0;display:block;pointer-events:none}
  .mbtn svg *{stroke-width:1.6;vector-effect:non-scaling-stroke}
  .top{padding-top:var(--s8);padding-bottom:var(--s5)}
  .top h1{font-size:28px}
  .findbar input{height:48px;font-size:16px}
  .findbar .go{height:48px;padding:0 var(--s5)}
}
@media (max-width:768px){
  .spanel .sin{padding:var(--s5) var(--s4) var(--s4)}
  .sug .lb{display:none}
}
@media (max-width:640px){
  /* 홈과 같다 — 주문조회·로그인은 머리에서 내리고 서랍으로 보낸다.
     넷을 한 줄에 다 넣으려면 글자를 전부 지워야 하는데, 글자가 없으면
     무엇을 누르는지 눈으로 읽어야 한다. 서랍 안에서는 다 글자로 남는다.
     장바구니(.cartbtn)는 남긴다 — 담은 것이 몇 개인지 늘 보여야 한다. */
  /* 높이는 홈처럼 안쪽 것이 정한다(단추 44 + 위아래 8 = 61px). 숫자로
     묶어 두면 홈과 8px 어긋나고, 붙는 갈래 줄도 그만큼 밀린다. */
  .hd .in{gap:var(--s2);height:auto;padding-top:var(--s2);padding-bottom:var(--s2)}
  .hd img{height:22px}
  /* 로그아웃은 <button> 이라 a.ubtn 규칙에 안 걸린다 — 따로 내린다.
     서랍 안에 같은 줄이 있다. */
  .util > a.ubtn,.util > #outBtn{display:none}
  /* 손가락 기준 44x44 — 홈과 같은 값이다. 검색 34x40 · 장바구니 40x40
     이라 한 줄에 선 것들이 제각각이었고 둘 다 44 에 못 미쳤다.
     로고는 그림이 22px 이라 누를 자리도 그만큼이었다 — 칸만 키운다. */
  .ubtn{height:44px;min-width:44px;justify-content:center;padding:0 var(--s2)}
  .cartbtn{width:44px;height:44px}
  .hd .in > a:first-child{display:inline-flex;align-items:center;min-height:44px}
  .util .ubtn span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .findbar{gap:var(--s2)}
  .findbar input{padding-left:44px;padding-right:46px}
  .findbar .fic{left:var(--s3)}
  .findbar .go{padding:0 var(--s4)}
  /* 손가락 기준은 44px 이다. 보이는 동그라미는 그대로 두고 누를 수 있는
     자리만 넓힌다 — 담기(34px)와 지움(32px)은 눈으로는 알맞은데 엄지로는
     작아서, 옆 카드나 글자 칸이 대신 눌린다. */
  .prod .add,.findbar .fx{position:relative}
  .findbar .fx{position:absolute}
  .prod .add::after,.findbar .fx::after{content:"";position:absolute;top:50%;left:50%;
        transform:translate(-50%,-50%);width:44px;height:44px}
}

/* ── tw.css 화면의 눈금을 공통값에 맞춘다 ─────────────────────────────
   장바구니 · 주문서 · 주문 조회 · 로그인 · 마이페이지 · 비밀번호 재설정 ·
   상품 상세의 본문은 tw.css 가 그린다. 색과 글꼴은 이미 같다(초록
   #17A548 · 테두리 #E4E8F1 · 회색 #F9F9F9 · Pretendard). 남는 차이는
   모서리뿐이었다 — 3.6 배수(7.2 · 10.8)와 우리 8 · 12 가 섞여 있었다.

   tw.css 는 src/tailwind.css 에서 구워 내는 생성물이라 손대지 않는다.
   유틸리티가 값을 박아 넣지 않고 var(--radius-*) 를 참조하므로, 여기서
   토큰만 다시 정하면 .card · .btn 같은 것이 전부 따라온다.
   이 파일이 tw.css 뒤에 실려야 먹는다 — 각 화면의 <link> 차례가 그렇다. */
:root{
  --radius-md: 8px;    /* 7.2  → --rd8  */
  --radius-lg: 12px;   /* 10.8 → --rd12 */
  --radius-xl: 12px;   /* 14.4 → --rd12 · 큰 면도 같은 모서리를 쓴다 */
}

/* 화면 제목 — 목록 화면의 h1 과 같은 값이다(32px · 좁아지면 26px).
   전에는 tw 의 임의값(text-[22px] sm:text-[28.8px])이 박혀 있어 화면마다
   목록과 3px 씩 어긋났다. 임의값 클래스는 빌드할 때 만들어지므로,
   빌드 없이 숫자를 바꾸면 클래스 자체가 없어 글자가 통째로 작아진다 —
   그래서 이름을 주고 여기서 정한다. */
.ptitle{font-size:36px;font-weight:700;color:var(--t01);letter-spacing:-.02em;
        word-break:keep-all}
@media (max-width:1024px){ .ptitle{font-size:28px} }

/* ── 제목 띠 ──────────────────────────────────────────────────────────
   화면 이름이 앉는 자리. 흰 바탕에 글자만 얹으면 내용과 한 덩어리로
   보여서 "어느 화면인지" 가 안 읽힌다. 목록·이용방법이 쓰던 것을 모든
   고객 화면으로 넓힌다.
   padding 을 통째로 주면 .wrap 의 좌우 20px 을 덮어써서 글자가 화면
   끝에 붙는다 — 위아래만 준다. */
.band{background:var(--bg-sky);border-bottom:1px solid var(--bd-l)}
.top{padding-top:var(--s10);padding-bottom:var(--s10);text-align:center}
.top h1,.top .ptitle{font-size:36px;font-weight:700;letter-spacing:-.02em;color:var(--t01)}
/* 설명은 제목 아래 한 칸. 가운데 정렬이므로 60ch 칸도 가운데 놓는다 —
   margin 을 auto 로 안 두면 글만 가운데고 칸은 왼쪽에 남는다. */
.top p{margin:var(--s3) auto 0;font-size:18px;line-height:1.6;color:var(--t03);
       max-width:60ch;word-break:keep-all}
.top p a{color:var(--blue);font-weight:700}
@media (max-width:1024px){
  .top{padding-top:var(--s8);padding-bottom:var(--s5)}
  .top h1,.top .ptitle{font-size:28px}
  .top p{font-size:16px}
}
