@charset "utf-8";
/* ==========================================================================
   골든디아망 회원전용 영역 — member-login.html · before-after.html
   main.css → sub.css → 이 파일 순으로 로드한다. 토큰·헤더·드로어·버튼·
   Contact·푸터·리빌은 전부 앞의 두 파일 것을 그대로 쓴다.

   왜 파일을 따로 뒀나
     로그인·전후 갤러리는 시술 상세가 아니라 «기능 페이지»다. sub.css 의 밴드
     컴포넌트(.gd-shero / .gd-2col / .gd-steps)를 입히면 시술 설명서처럼 보이고,
     그렇다고 sub.css 에 폼 스타일을 넣으면 시술 페이지 56장이 함께 흔들린다.
     about.css 와 같은 처리다 — 셀렉터는 **전부 .gd-member 안으로** 스코프한다.
     이 파일을 지우면 두 페이지의 폼만 브라우저 기본형으로 돌아가고
     나머지 62장은 아무 영향도 받지 않는다.

   유지되는 것(= vibe)
     색 토큰 / Pretendard·Playfair 조합 / 이탤릭 라틴 액센트 / 골드 CTA /
     18px 라운드 / .gd-reveal 등장 / 헤더·드로어·Contact·푸터.

   블록
   01 SHELL   02 PANEL   03 FORM   04 NOTICE   05 GALLERY   06 RESPONSIVE
   ========================================================================== */

/* --- 01. SHELL ----------------------------------------------------------- */
/* 헤더가 fixed 라 첫 밴드에 헤더 높이만큼 위 여백을 준다(.gd-shero 와 같은 값) */
.gd-member .gd-mb-top{
  padding:calc(var(--gd-hdr) + clamp(28px,5.2vw,100px)) 0 clamp(40px,4.7vw,90px);
  background:var(--gd-cream);
  text-align:center;
}
.gd-member .gd-mb-kicker{
  font-family:var(--gd-serif);font-style:italic;font-weight:400;
  font-size:clamp(17px,1.56vw,30px);line-height:1;letter-spacing:.02em;
  color:var(--gd-brown);
}
.gd-member .gd-mb-h{
  margin-top:clamp(10px,.94vw,18px);
  font-size:clamp(26px,2.6vw,50px);font-weight:800;line-height:1.24;
  letter-spacing:-.032em;color:var(--gd-ink);
}
.gd-member .gd-mb-lead{
  margin-top:clamp(14px,1.35vw,26px);
  font-size:clamp(14px,.94vw,18px);line-height:1.72;color:var(--gd-muted);
}

/* --- 02. PANEL ----------------------------------------------------------- */
.gd-member .gd-mb-body{padding:clamp(44px,5.2vw,100px) 0 var(--gd-pad)}
/* 폼은 읽는 글이 아니라 «한 번에 눈에 들어와야 하는 상자»라 1440 컬럼을 쓰지 않는다 */
.gd-member .gd-mb-panel{
  width:100%;max-width:520px;margin-inline:auto;
  padding:clamp(28px,2.6vw,50px) clamp(22px,2.4vw,46px);
  background:#fff;border:1px solid var(--gd-cardline);border-radius:var(--gd-r);
}
.gd-member .gd-mb-panel-h{
  font-size:clamp(17px,1.15vw,22px);font-weight:700;letter-spacing:-.028em;
  color:var(--gd-ink);text-align:center;
}
.gd-member .gd-mb-panel-s{
  margin-top:8px;font-size:clamp(13px,.83vw,15px);line-height:1.6;
  color:var(--gd-muted);text-align:center;
}

/* --- 03. FORM ------------------------------------------------------------ */
.gd-member .gd-mb-form{margin-top:clamp(22px,1.98vw,38px)}
.gd-member .gd-mb-field+.gd-mb-field{margin-top:clamp(12px,1.04vw,20px)}
.gd-member .gd-mb-field label{
  display:block;margin-bottom:7px;
  font-size:13px;font-weight:700;letter-spacing:-.02em;color:var(--gd-ink-2);
}
.gd-member .gd-mb-field input{
  display:block;width:100%;min-height:52px;padding:0 16px;
  font-family:inherit;font-size:15px;color:var(--gd-ink);
  background:#fff;border:1px solid var(--gd-line);border-radius:12px;
  transition:border-color .2s var(--gd-ease),box-shadow .2s var(--gd-ease);
}
.gd-member .gd-mb-field input::placeholder{color:#a9a49c}
.gd-member .gd-mb-field input:hover{border-color:#cfc7b8}
/* 포커스 링은 브라우저 기본 outline 을 지우지 않고 «겹쳐» 준다 —
   지우면 키보드 사용자가 어디에 있는지 알 수 없다 */
.gd-member .gd-mb-field input:focus-visible{
  border-color:var(--gd-brown);box-shadow:0 0 0 3px rgba(163,106,51,.16);
}

.gd-member .gd-mb-keep{
  display:flex;align-items:center;gap:8px;
  margin-top:clamp(12px,1.04vw,20px);
  font-size:13.5px;color:var(--gd-ink-2);cursor:pointer;
}
.gd-member .gd-mb-keep input{width:17px;height:17px;accent-color:var(--gd-brown-dp);cursor:pointer}

.gd-member .gd-mb-submit{
  width:100%;margin-top:clamp(18px,1.56vw,30px);
  min-height:54px;font-size:16px;
}
/* 폼 안의 링크 줄 — 회원가입 / 아이디·비밀번호 찾기 */
.gd-member .gd-mb-links{
  display:flex;justify-content:center;align-items:center;flex-wrap:wrap;
  gap:clamp(10px,1.04vw,20px);
  margin-top:clamp(18px,1.46vw,28px);
}
/* 회원가입·찾기는 아직 갈 곳이 없어 <a> 가 아니라 <button> 이다(없는 주소로 걸면 404).
   button 은 폰트·배경을 물려받지 않으므로 여기서 되돌린다 */
.gd-member .gd-mb-links a,
.gd-member .gd-mb-links .gd-mb-link-btn{
  font-family:inherit;background:none;border:0;padding:0;cursor:pointer;
  font-size:13.5px;font-weight:500;color:var(--gd-muted);
  text-underline-offset:3px;
}
.gd-member .gd-mb-links a:hover,
.gd-member .gd-mb-links .gd-mb-link-btn:hover{color:var(--gd-brown-dp);text-decoration:underline}
.gd-member .gd-mb-links span{width:1px;height:12px;background:var(--gd-line)}

/* --- 04. NOTICE ---------------------------------------------------------- */
/* 「회원 시스템 준비 중」 안내 — JS 로 제출을 막고 이 상자를 연다.
   hidden 속성만으로 숨긴다(display 를 CSS 로 잡으면 JS 가 꺼도 안 열린다) */
.gd-member .gd-mb-alert{
  margin-top:clamp(16px,1.35vw,26px);
  padding:14px 16px;
  background:var(--gd-cream);border:1px solid var(--gd-cardline);border-radius:12px;
  font-size:13.5px;line-height:1.62;color:var(--gd-ink-2);
}
.gd-member .gd-mb-alert[hidden]{display:none}
.gd-member .gd-mb-alert b{color:var(--gd-brown-dp)}

/* 의료법 고지 — 패널 밖, 폭을 맞춰 아래에 붙인다 */
.gd-member .gd-mb-legal{
  width:100%;max-width:520px;margin:clamp(20px,1.77vw,34px) auto 0;
  font-size:12.5px;line-height:1.7;color:var(--gd-muted);
}
.gd-member .gd-mb-legal b{display:block;margin-bottom:5px;font-weight:700;color:var(--gd-ink-2)}

/* --- 05. GALLERY --------------------------------------------------------- */
/* before-after.html — 승인 자료가 오기 전까지는 «빈 틀»이다.
   자리를 회색 박스로 두지 않고 무엇이 왜 비어 있는지 글로 적는다 */
.gd-member .gd-mb-empty{
  max-width:760px;margin-inline:auto;
  padding:clamp(36px,3.6vw,70px) clamp(24px,2.6vw,50px);
  background:#fff;border:1px solid var(--gd-cardline);border-radius:var(--gd-r);
  text-align:center;
}
.gd-member .gd-mb-empty-h{
  font-size:clamp(17px,1.25vw,24px);font-weight:700;letter-spacing:-.028em;color:var(--gd-ink);
}
.gd-member .gd-mb-empty-s{
  margin-top:clamp(10px,.83vw,16px);
  font-size:clamp(13.5px,.89vw,16px);line-height:1.72;color:var(--gd-muted);
}
.gd-member .gd-mb-empty .gd-actions{justify-content:center}

/* 시술군 목록 — 갤러리가 채워질 자리를 미리 보여 준다(사진 없이 이름만) */
.gd-member .gd-mb-cats{
  max-width:760px;margin:clamp(24px,2.08vw,40px) auto 0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,.83vw,16px);
}
.gd-member .gd-mb-cats li{
  display:flex;align-items:center;justify-content:center;
  min-height:clamp(56px,4.17vw,80px);padding:10px 12px;
  background:var(--gd-cream);border-radius:12px;
  font-size:clamp(13px,.89vw,15px);font-weight:700;letter-spacing:-.024em;
  color:var(--gd-ink-2);text-align:center;
}

/* --- 06. RESPONSIVE ------------------------------------------------------ */
@media (max-width:768px){
  .gd-member .gd-mb-cats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gd-member .gd-mb-panel{padding-inline:20px}
}
@media (max-width:420px){
  .gd-member .gd-mb-cats{grid-template-columns:minmax(0,1fr)}
}
