/* 1mm 글로벌 환자 상담 폼 — 10개 언어 공용 스타일
   ko 는 대상이 아니다(기존 Gravity Forms 유지). */

.gfx-wrap{
  --gfx-accent:#c1e151;
  --gfx-accent-dark:#a8ca3a;
  --gfx-ink:#242424;
  --gfx-ink-2:#565656;
  --gfx-ink-3:#8b8b8b;
  --gfx-line:#e0e0e0;
  --gfx-line-2:#cdcdcd;
  --gfx-bg-soft:#f7f7f5;
  --gfx-err:#d63b3b;
  max-width:960px;margin:0 auto;
  font-family:inherit;color:var(--gfx-ink);
  text-align:left;
}
[dir="rtl"] .gfx-wrap{text-align:right;}

.gfx-head{margin-bottom:34px;}
.gfx-head h3{
  font-size:30px;line-height:1.3;font-weight:700;color:var(--gfx-ink);
  margin:0 0 10px;letter-spacing:-.01em;
}
.gfx-head p{font-size:15px;line-height:1.7;color:var(--gfx-ink-2);margin:0;}

/* ── 섹션 ── */
.gfx-sec{border:0;margin:0 0 34px;padding:0;}
.gfx-sec > legend{
  display:block;width:100%;font-size:13px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gfx-ink);
  padding:0 0 10px;margin:0 0 22px;border-bottom:2px solid var(--gfx-ink);
}
.gfx-sec > legend .gfx-opt{
  float:right;font-size:11px;font-weight:400;letter-spacing:0;text-transform:none;
  color:var(--gfx-ink-3);padding-top:3px;
}
[dir="rtl"] .gfx-sec > legend .gfx-opt{float:left;}

/* ── 그리드 ── */
.gfx-row{display:flex;flex-wrap:wrap;gap:0 20px;}
.gfx-f{flex:1 1 100%;margin-bottom:20px;min-width:0;}
.gfx-f.c2{flex:1 1 calc(50% - 10px);}
.gfx-f.c3{flex:1 1 calc(33.333% - 14px);}
.gfx-f.cc{flex:0 0 190px;}
.gfx-f.tel{flex:1 1 200px;}

.gfx-f > label,.gfx-f > .gfx-lab{
  display:block;font-size:14px;font-weight:600;color:var(--gfx-ink);
  margin-bottom:8px;line-height:1.4;
}
.gfx-req{color:var(--gfx-err);margin-inline-start:3px;font-weight:700;}
.gfx-hint{display:block;font-size:12px;font-weight:400;color:var(--gfx-ink-3);margin-top:4px;line-height:1.5;}

/* ── 입력 ── */
.gfx-wrap input[type=text],
.gfx-wrap input[type=email],
.gfx-wrap input[type=tel],
.gfx-wrap input[type=date],
.gfx-wrap select,
.gfx-wrap textarea{
  width:100%;box-sizing:border-box;
  padding:12px 14px;font-size:15px;font-family:inherit;color:var(--gfx-ink);
  background:#fff;border:1px solid var(--gfx-line-2);border-radius:4px;
  transition:border-color .15s,box-shadow .15s;
  -webkit-appearance:none;appearance:none;
}
.gfx-wrap textarea{min-height:120px;resize:vertical;line-height:1.6;}
.gfx-wrap select{
  background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23565656' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;
}
[dir="rtl"] .gfx-wrap select{background-position:left 14px center;padding-right:14px;padding-left:36px;}
.gfx-wrap input:focus,.gfx-wrap select:focus,.gfx-wrap textarea:focus{
  outline:none;border-color:var(--gfx-ink);box-shadow:0 0 0 3px rgba(193,225,81,.35);
}
.gfx-wrap input::placeholder,.gfx-wrap textarea::placeholder{color:#b3b3b3;}

/* ── 체크/라디오 ── */
.gfx-opts{display:flex;flex-wrap:wrap;gap:10px 8px;}
.gfx-opts.col{flex-direction:column;gap:10px;}
.gfx-chip{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:10px 14px;border:1px solid var(--gfx-line-2);border-radius:4px;
  font-size:14px;line-height:1.3;background:#fff;transition:border-color .15s,background .15s;
  user-select:none;
}
.gfx-chip:hover{border-color:var(--gfx-ink-2);}
.gfx-chip input{margin:0;width:16px;height:16px;accent-color:var(--gfx-ink);flex:none;}
.gfx-chip:has(input:checked){border-color:var(--gfx-ink);background:#fbfdf3;box-shadow:inset 0 0 0 1px var(--gfx-ink);}

.gfx-check{
  display:flex;align-items:flex-start;gap:10px;cursor:pointer;
  font-size:14px;line-height:1.6;color:var(--gfx-ink-2);
}
.gfx-check input{margin:2px 0 0;width:17px;height:17px;accent-color:var(--gfx-ink);flex:none;}
.gfx-check.main{
  padding:16px 18px;background:var(--gfx-bg-soft);border:1px solid var(--gfx-line);
  border-radius:4px;color:var(--gfx-ink);font-weight:500;
}
.gfx-check a{color:var(--gfx-ink);text-decoration:underline;white-space:nowrap;}
.gfx-consents{display:flex;flex-direction:column;gap:12px;}

/* ── 사진 업로드 ── */
.gfx-guide{
  background:var(--gfx-bg-soft);border:1px solid var(--gfx-line);border-radius:4px;
  padding:16px 18px;margin-bottom:22px;
}
.gfx-guide ul{margin:0;padding-inline-start:18px;list-style:disc;}
.gfx-guide li{font-size:13px;line-height:1.8;color:var(--gfx-ink-2);}

/* ── 촬영 예시 (좋은 예 / 피할 예) ── */
.gfx-sprite{position:absolute;width:0;height:0;overflow:hidden;}
/* 좋은 예 한 줄, 피할 예 한 줄 — 두 줄을 세로로 쌓는다 */
.gfx-eg{display:flex;flex-direction:column;gap:24px;margin-bottom:20px;}
.gfx-eg-col{width:100%;min-width:0;}
.gfx-eg-h{
  display:flex;align-items:center;gap:7px;margin:0 0 10px;
  font-size:13px;font-weight:700;line-height:1.3;
}
.gfx-eg-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:19px;height:19px;border-radius:50%;font-size:11px;font-weight:700;line-height:1;flex:none;
}
.gfx-eg-col.ok .gfx-eg-h{color:var(--gfx-ink);}
.gfx-eg-col.ok .gfx-eg-mark{background:var(--gfx-accent);color:var(--gfx-ink);}
.gfx-eg-col.ng .gfx-eg-h{color:var(--gfx-err);}
.gfx-eg-col.ng .gfx-eg-mark{background:var(--gfx-err);color:#fff;}
.gfx-eg-row{display:flex;gap:16px;justify-content:flex-start;}
/* 상위 컨테이너가 내용 크기를 따라가는 구조라 flex-shrink 만으로는 좁은 화면에서
   3번째 원이 잘린다. 뷰포트 상한을 같이 걸어 어떤 폭에서도 한 줄에 3개가 들어가게 한다. */
.gfx-eg-i{flex:0 1 152px;max-width:min(152px,26vw);margin:0;text-align:center;min-width:0;}
.gfx-eg-i svg{width:100%;max-width:152px;height:auto;display:block;margin:0 auto;}
.gfx-eg-i img{
  width:100%;max-width:152px;height:auto;aspect-ratio:1/1;object-fit:cover;
  display:block;margin:0 auto;border-radius:50%;
  background:#f4f4f0;box-shadow:0 0 0 1px rgba(36,36,36,.08);
}
.gfx-eg-i figcaption{
  font-size:11.5px;line-height:1.35;color:var(--gfx-ink-3);margin-top:6px;
  word-break:keep-all;
}
.gfx-files{display:flex;flex-wrap:wrap;gap:16px;}
.gfx-file{flex:1 1 calc(33.333% - 11px);min-width:180px;}
.gfx-file > span.gfx-lab{display:block;font-size:14px;font-weight:600;margin-bottom:8px;}
.gfx-drop{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  height:150px;border:1px dashed var(--gfx-line-2);border-radius:4px;background:#fff;
  cursor:pointer;overflow:hidden;position:relative;transition:border-color .15s,background .15s;
  text-align:center;padding:10px;box-sizing:border-box;
}
.gfx-drop:hover{border-color:var(--gfx-ink);background:#fbfdf3;}
.gfx-drop input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.gfx-drop .gfx-ico{font-size:22px;line-height:1;color:var(--gfx-ink-3);}
.gfx-drop .gfx-fname{font-size:12px;color:var(--gfx-ink-3);word-break:break-all;padding:0 6px;line-height:1.4;}
.gfx-drop img.gfx-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.gfx-drop.has img.gfx-thumb + .gfx-ico,.gfx-drop.has .gfx-ico{display:none;}
.gfx-drop.has .gfx-fname{
  position:absolute;left:0;right:0;bottom:0;background:rgba(36,36,36,.82);color:#fff;
  padding:6px 8px;font-size:11px;
}

/* ── 제출 ── */
.gfx-submit{
  display:block;width:100%;padding:18px 20px;margin-top:6px;
  background:var(--gfx-ink);color:#fff;border:0;border-radius:4px;
  font-size:16px;font-weight:700;font-family:inherit;letter-spacing:.02em;
  cursor:pointer;transition:background .15s;
}
.gfx-submit:hover{background:#000;}
.gfx-submit:active{transform:translateY(1px);}

/* ── 오류 ── */
.gfx-f.err input,.gfx-f.err select,.gfx-f.err textarea{border-color:var(--gfx-err);}
.gfx-f.err .gfx-chip,.gfx-f.err .gfx-check.main{border-color:var(--gfx-err);}
.gfx-msg{display:none;font-size:12.5px;color:var(--gfx-err);margin-top:6px;line-height:1.5;}
.gfx-f.err .gfx-msg{display:block;}
.gfx-note{
  font-size:12.5px;color:var(--gfx-ink-3);line-height:1.6;margin:6px 0 0;
}
.gfx-formerr{
  display:none;margin:0 0 20px;padding:13px 16px;border-radius:4px;
  background:#fdeeee;border:1px solid #f0c2c2;color:var(--gfx-err);font-size:14px;
}
.gfx-formerr.on{display:block;}

/* ── 프리뷰 안내 ── */
.gfx-preview{
  margin-top:16px;padding:12px 16px;border-radius:4px;
  background:#fffbe6;border:1px solid #f0e2a8;color:#7a6414;
  font-size:13px;line-height:1.6;text-align:center;
}

/* ── 테마(Salient + 사이트 커스텀) 오버라이드 ──
   이 섹션은 .dark 행 안에 있어서 테마가 span 을 크림색(#f8f7e0)으로,
   button 배경을 같은 색으로, input[type=file] 을 display:none 으로 덮어쓴다.
   해당 지점만 되돌린다. */
.gfx-wrap .gfx-chip > span,
.gfx-wrap .gfx-file > span.gfx-lab,
.gfx-wrap .gfx-f > .gfx-lab,
.gfx-wrap .gfx-check.main > span{color:var(--gfx-ink)!important;}
.gfx-wrap .gfx-check > span{color:var(--gfx-ink-2)!important;}
.gfx-wrap .gfx-check.main > span{color:var(--gfx-ink)!important;}
.gfx-wrap .gfx-check a{color:var(--gfx-ink)!important;}
.gfx-wrap .gfx-hint,.gfx-wrap .gfx-note{color:var(--gfx-ink-3)!important;}
.gfx-wrap .gfx-req{color:var(--gfx-err)!important;}
.gfx-wrap .gfx-drop .gfx-ico{color:var(--gfx-ink-3)!important;}
.gfx-wrap .gfx-drop .gfx-fname{color:var(--gfx-ink-3)!important;}
.gfx-wrap .gfx-drop.has .gfx-fname{color:#fff!important;}
.gfx-wrap .gfx-msg{color:var(--gfx-err)!important;}

.gfx-wrap button.gfx-submit{
  background:var(--gfx-ink)!important;color:#fff!important;
  border:0!important;box-shadow:none!important;text-shadow:none!important;
  border-radius:4px!important;line-height:1.3!important;height:auto!important;
  width:100%!important;max-width:none!important;display:block!important;
  padding:18px 20px!important;
}
.gfx-wrap button.gfx-submit:hover{background:#000!important;color:#fff!important;}

.gfx-wrap .gfx-drop input[type=file]{
  display:block!important;position:absolute!important;top:0;left:0;
  width:100%!important;height:100%!important;opacity:0!important;
  padding:0!important;margin:0!important;border:0!important;cursor:pointer;z-index:2;
}
/* 사이트 전역 스크립트가 파일 입력마다 '파일 선택 / 선택된 파일 없음' 라벨을
   주입한다. 우리 업로드 UI 와 겹치므로 주입분(클래스 없는 label·span)만 숨긴다. */
.gfx-wrap .gfx-drop > label,
.gfx-wrap .gfx-drop > span:not([class]){display:none!important;}

.gfx-wrap .gfx-guide ul{list-style:disc outside!important;margin:0!important;}
.gfx-wrap .gfx-guide li{list-style:disc outside!important;display:list-item!important;
  color:var(--gfx-ink-2)!important;margin:0!important;}

.gfx-wrap .gfx-eg-col.ok .gfx-eg-h{color:var(--gfx-ink)!important;}
.gfx-wrap .gfx-eg-col.ng .gfx-eg-h{color:var(--gfx-err)!important;}
.gfx-wrap .gfx-eg-i figcaption{color:var(--gfx-ink-3)!important;}
.gfx-wrap .gfx-eg-i{padding:0!important;}
.gfx-wrap .gfx-eg-i img{
  max-width:152px!important;border-radius:50%!important;
  margin:0 auto!important;padding:0!important;border:0!important;
}
.gfx-wrap .gfx-eg-row{list-style:none!important;}

.gfx-wrap .gfx-sec > legend{color:var(--gfx-ink)!important;}
.gfx-wrap .gfx-sec > legend .gfx-opt{color:var(--gfx-ink-3)!important;}
.gfx-wrap .gfx-head h3{color:var(--gfx-ink)!important;}
.gfx-wrap .gfx-head p{color:var(--gfx-ink-2)!important;}
.gfx-wrap .gfx-formerr{color:var(--gfx-err)!important;}
.gfx-wrap .gfx-preview{color:#7a6414!important;}
.gfx-wrap label{margin-bottom:8px;}
.gfx-wrap .gfx-chip,.gfx-wrap .gfx-check{margin-bottom:0;}

/* ── 반응형 ── */
@media (max-width:900px){
  .gfx-f.c3{flex:1 1 calc(50% - 10px);}
  .gfx-file{flex:1 1 calc(50% - 8px);}
}
@media (max-width:640px){
  .gfx-eg-row{gap:10px;}
  .gfx-eg-i figcaption{font-size:11px;}
  .gfx-head h3{font-size:24px;}
  .gfx-f.c2,.gfx-f.c3,.gfx-f.cc,.gfx-f.tel{flex:1 1 100%;}
  .gfx-file{flex:1 1 100%;}
  .gfx-sec{margin-bottom:28px;}
}
