/* ============================================================
   질러팬티 / GILLERFIT — 공유 스타일
   포멀·단순. off-white 배경 / warm beige 포인트 / near-black 텍스트.
   ============================================================ */
/* 폰트는 index.html 의 <link> 로 불러옵니다.
   (CSS @import 는 이 파일을 다 받은 뒤에야 폰트를 요청해서 화면이 늦게 뜹니다) */

:root{
  --bg:#f7f4ef;          /* off-white / ivory */
  --surface:#ffffff;
  --tint:#efe9e0;        /* warm beige */
  --tint-2:#e7ded2;
  --line:#e4ddd2;
  --ink:#1b1a18;         /* near-black */
  --ink-soft:#6f6a62;

  /* 포인트 컬러 — 네이비 (버튼·아이콘·링크) */
  --accent:#2c3d5e;      /* navy */
  --accent-ink:#1e2c47;  /* deep navy */
  --navy-deep:#16233a;   /* 푸터 등 넓은 면 */
  --navy-tint:#e9edf4;   /* 아이콘 배경 */

  --maxw:1200px;
  --radius:14px;
  --gap:120px;           /* PC section gap */
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Pretendard Variable","Pretendard","Apple SD Gothic Neo","Malgun Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.65;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  /* 한국어는 기본적으로 아무 글자에서나 줄이 바뀌어 어색해집니다.
     keep-all 을 주면 단어 단위로 끊겨 훨씬 자연스럽게 읽힙니다. */
  word-break:keep-all;
  overflow-wrap:break-word;
}

/* 화면에는 안 보이지만 화면 낭독기(시각장애인용)에는 읽히는 텍스트 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 문구에 넣은 <br> 은 PC에서만 적용되고, 모바일에서는 자동으로 무시됩니다.
   (문구수정.html 에서 <br> 을 넣어도 모바일이 깨지지 않게 하는 장치) */
@media (max-width:759px){
  br.br-pc{display:none}
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{list-style:none}
h1,h2,h3,h4{letter-spacing:-.02em;line-height:1.22;font-weight:800}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.eyebrow{font-size:12px;letter-spacing:.22em;font-weight:700;color:var(--accent-ink);text-transform:uppercase}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;border-radius:999px;font-size:15px;font-weight:700;
  cursor:pointer;transition:background .18s,color .18s,border-color .18s;border:1px solid transparent;font-family:inherit}
.btn-primary{background:var(--accent-ink);color:#fff}
.btn-primary:hover{background:var(--navy-deep)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent-ink);outline-offset:2px}

/* Sections */
main>section{padding:var(--gap) 0}
/* sticky 헤더에 제목이 가리지 않도록 앵커 오프셋 */
main>section[id]{scroll-margin-top:80px}
.sec-head{max-width:720px;margin:0 auto 44px}
.sec-head.center{text-align:center}
.sec-head h2{font-size:clamp(26px,4.2vw,40px);margin-top:14px}
.sec-head p{color:var(--ink-soft);margin-top:14px;font-size:17px}

/* ── Header ── */
.site-header{position:sticky;top:0;z-index:100;background:rgba(247,244,239,.9);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;height:66px;gap:20px}
.brand{display:flex;flex-direction:column;line-height:1;font-weight:800}
.brand b{font-size:20px;letter-spacing:0}
.brand small{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--ink-soft);margin-top:4px}
.gnb{display:flex;gap:28px;font-size:15px;color:var(--ink-soft)}
.gnb a:hover{color:var(--ink)}
.hd-right{display:flex;align-items:center;gap:12px}
.hd-right .btn{padding:10px 20px;font-size:14px}
.hamburger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;
  background:var(--surface);align-items:center;justify-content:center;cursor:pointer}
.hamburger span,.hamburger span::before,.hamburger span::after{
  content:"";display:block;width:18px;height:2px;background:var(--ink);position:relative;transition:.2s}
.hamburger span::before{position:absolute;top:-6px}
.hamburger span::after{position:absolute;top:6px}
.mobile-nav{display:none;flex-direction:column;background:var(--surface);border-bottom:1px solid var(--line)}
.mobile-nav a{padding:15px 22px;border-top:1px solid var(--line);font-size:16px}
.mobile-nav.open{display:flex}

/* ── Hero ── */
.hero{padding-top:calc(var(--gap) * .62);padding-bottom:calc(var(--gap) * .62)}
.hero .wrap{display:grid;grid-template-columns:45% 55%;gap:44px;align-items:center}
.hero h1{font-size:clamp(30px,5.2vw,52px);margin:16px 0 20px}
.hero .sub{font-size:clamp(16px,2.2vw,19px);color:var(--ink-soft);font-weight:600;margin-bottom:30px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
/* 사진 틀 — 현재 대표 사진(정사각)에 딱 맞춘 1:1 비율.
   좌우 여백 없이 사진이 틀을 꽉 채웁니다.
   ▶ 나중에 가로형 사진으로 바꾸면 아래 aspect-ratio 를 4/3 으로 바꾸세요. */
.hero-img{position:relative;height:clamp(300px,46vh,430px);aspect-ratio:1/1;
  width:auto;max-width:100%;justify-self:center;
  border-radius:var(--radius);overflow:hidden;background:var(--tint)}
.hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  background:var(--tint)}
.img-ph{display:flex;align-items:center;justify-content:center;text-align:center;height:100%;
  color:var(--accent);font-size:13px;letter-spacing:.04em;padding:18px}

/* ── 공통 아이콘 뱃지 (특징 / GILLERFIT 개선점) ── */
.ic{display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;background:var(--navy-tint);
  color:var(--accent-ink);margin-bottom:18px}
.ic svg{width:24px;height:24px}

/* ── Experience ── */
.exp-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.exp-item{padding:34px 22px;border-left:1px solid var(--line);text-align:center}
.exp-item:first-child{border-left:0}
.exp-item h3{font-size:19px;margin-bottom:10px}
.exp-item p{color:var(--ink-soft);font-size:15px}

/* ── Story ── */
.story{background:var(--tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.story .wrap{max-width:820px;text-align:center}
.story h2{font-size:clamp(24px,3.6vw,34px);margin-bottom:30px}
.story-body p{font-size:clamp(16px,2vw,19px);margin-bottom:20px;color:#37332d}
.story-body strong{color:var(--ink);font-weight:800}
.story-tag{font-size:clamp(20px,3vw,28px);font-weight:800;margin-top:14px}

/* 공식 블로그 바로가기 */
.blog-cta{margin-top:38px;padding-top:34px;border-top:1px solid var(--line);text-align:center}
.blog-cta p{color:var(--ink-soft);font-size:16px;margin-bottom:18px}
.btn-lg{padding:18px 38px;font-size:17px;display:inline-flex;align-items:center;gap:10px}
.btn-lg svg{width:17px;height:17px;flex:none}

/* ── GILLERFIT improvements ── */
.gf-head{text-align:center;margin-bottom:46px}
.gf-head h2{font-size:clamp(24px,3.8vw,36px)}
.gf-head h2 .soft{display:block;color:var(--ink-soft);font-weight:700;font-size:.62em;margin-top:10px}
.gf-head .eyebrow{margin-bottom:14px}
.gf-lead{color:var(--ink-soft);font-size:16px;margin-top:16px}
/* 카드 개수(3개 또는 4개)에 맞춰 자동으로 한 줄 배치 — 빈칸이 생기지 않음 */
.gf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}
.gf-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 22px;text-align:center}
.gf-card h3{font-size:19px;margin-bottom:8px}
.gf-card p{color:var(--ink-soft);font-size:15px}

/* ── Products ── */
/* 제품 5종을 데스크톱에서 한 줄로 배치 (좁아진 폭에 맞춰 카드 내부를 컴팩트하게) */
.prod-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.prod-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column}
.prod-img{aspect-ratio:1/1;background:var(--tint);position:relative}
/* 배경을 채워, 사진이 틀을 다 못 채울 때 뒤의 안내문구가 비쳐 보이지 않게 합니다 */
.prod-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:10px;z-index:1;
  background:var(--tint)}
.prod-badge{position:absolute;top:10px;left:10px;background:var(--accent-ink);color:#fff;z-index:2;
  font-size:10px;font-weight:700;letter-spacing:.04em;padding:4px 9px;border-radius:999px}
.prod-badge.soldout{background:var(--ink-soft)}
.prod-body{padding:16px 15px;display:flex;flex-direction:column;gap:8px;flex:1}
.prod-body h3{font-size:16px}
.prod-body .lead{color:var(--ink-soft);font-size:13px;line-height:1.5}
.prod-meta{font-size:12px;color:var(--ink-soft);display:flex;flex-direction:column;gap:3px;line-height:1.5}
.prod-card .btn{padding:11px 14px;font-size:14px}
.swatches{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.sw{width:17px;height:17px;border-radius:50%;border:1px solid rgba(0,0,0,.14)}
.color-note{font-size:14.5px;line-height:1.7;color:var(--ink-soft);text-align:center;margin-top:22px}
.sw.out{position:relative}
.sw.out::after{content:"";position:absolute;inset:0;background:
  linear-gradient(45deg,transparent 44%,rgba(0,0,0,.4) 45%,rgba(0,0,0,.4) 55%,transparent 56%)}
.prod-card .btn{margin-top:auto;width:100%}
.prod-card.coming .prod-img{background:var(--tint-2)}
.prod-note{text-align:center;margin-top:34px}

/* ── FAQ ── */
.faq-list{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:0;cursor:pointer;font-family:inherit;
  padding:24px 40px 24px 4px;font-size:17px;font-weight:700;color:var(--ink);position:relative}
.faq-q::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-size:22px;color:var(--accent-ink);font-weight:600}
.faq-item.open .faq-q::after{content:"\2212"}
.faq-a{max-height:0;overflow:hidden;transition:max-height .28s ease}
.faq-a-inner{padding:0 4px 26px;color:var(--ink-soft);font-size:16px}
.faq-a-inner strong{color:var(--ink)}
.faq-a-inner a{color:var(--accent-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px;
  display:inline-block;margin-top:12px}

/* ── Ending (좌우 2단 짧은 띠 · 네이비) ── */
/* 아래 푸터와 자연스럽게 이어지도록 아래쪽 여백을 줄였습니다 */
.ending{background:var(--accent-ink);color:#fff;padding:76px 0 44px}
/* 버튼을 아래쪽에 맞춰 푸터와 가깝게 보이도록 */
.ending .wrap{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.ending .eyebrow{margin-bottom:14px;color:#a7b6d0}
.ending h2{font-size:clamp(26px,3.6vw,38px);margin-bottom:18px}
.ending p{font-size:15px;color:#c3cddd;line-height:1.75}
.ending strong{color:#fff;font-weight:700}
.ending .btn-primary{background:#fff;color:var(--accent-ink)}
.ending .btn-primary:hover{background:var(--navy-tint);color:var(--accent-ink)}
.ending .btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.ending .btn-ghost:hover{background:#fff;color:var(--accent-ink)}
.ending-cta{display:flex;gap:10px;flex-wrap:wrap;flex:none}

/* ── Forms (팝업 안에서 사용) ── */
.field{margin-bottom:16px}
.field label{display:block;font-size:14px;font-weight:700;margin-bottom:7px}
.field .req{color:var(--accent-ink)}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--line);
  border-radius:10px;font:inherit;font-size:15px;background:var(--bg);color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-ink);background:var(--surface);outline:none}
.field textarea{resize:vertical;min-height:96px}
.checkbox{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:var(--ink-soft);cursor:pointer;margin:4px 0 16px}
.checkbox input{width:17px;height:17px;margin-top:2px;accent-color:var(--accent-ink);flex:none}
.privacy details{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:16px;background:var(--bg)}
.privacy summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--ink-soft)}
.privacy .p-body{font-size:13px;color:var(--ink-soft);margin-top:10px;line-height:1.7}
.form-status{margin-top:14px;font-size:14px;font-weight:700;min-height:20px}
.form-status.ok{color:var(--accent-ink)}
.form-status.err{color:#b4463b}
.form-modal .btn{width:100%}
.form-modal .btn[disabled]{opacity:.6;cursor:default}

/* ── Footer ── */
.site-footer{background:var(--navy-deep);color:#b9c2d2;padding:34px 0 40px;font-size:14px}
.ft-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12)}
.ft-brand b{display:block;color:#fff;font-size:19px;font-weight:800}
.ft-brand small{display:block;font-size:11px;letter-spacing:.16em;color:#8e9ab0;margin:5px 0 14px}
.ft-brand p{max-width:260px;color:#8e9ab0}
.ft-cols{display:flex;gap:54px;flex-wrap:wrap}
.ft-col h5{color:#fff;font-size:12px;letter-spacing:.1em;margin-bottom:14px}
.ft-col a{display:block;color:#b9c2d2;margin-bottom:9px}
.ft-col a:hover{color:#fff}
.ft-biz{margin-top:32px;font-size:12px;line-height:1.9;color:#939cae}
.ft-biz strong{color:#b9c2d2;font-weight:700}
.ft-copy{margin-top:20px;font-size:12px;color:#7d8799}

/* ── Modal ── */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-overlay{position:absolute;inset:0;background:rgba(20,18,15,.6)}
.modal-box{position:relative;background:var(--surface);border-radius:16px;max-width:640px;width:100%;
  max-height:88vh;overflow:auto;padding:26px}
.modal-box h3{font-size:20px;margin-bottom:6px}
.modal-box .m-sub{color:var(--ink-soft);font-size:14px;margin-bottom:16px}
.modal-figures{display:flex;flex-direction:column;gap:14px}
.modal-box img{border:1px solid var(--line);border-radius:10px;cursor:zoom-in;width:100%;height:auto}
.modal-box.zoomed img{cursor:zoom-out}
.modal-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.modal-facts div{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14px}
.modal-facts b{display:block;color:var(--accent-ink);font-size:12px;margin-bottom:4px}
.modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;
  border:1px solid var(--line);background:var(--surface);font-size:18px;cursor:pointer;line-height:1;z-index:2}
/* 문의 폼 팝업 */
.form-modal{max-width:540px;padding:30px 30px 34px}
.form-modal h3{font-size:20px;padding-right:40px}
.form-modal .m-sub{margin-bottom:22px}
.modal-note{font-size:12px;color:var(--ink-soft);margin-top:12px;text-align:center}

/* ── fade-up (아주 약하게) ── */
.fade-up{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.fade-up.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.fade-up{opacity:1;transform:none;transition:none}}

/* ── info 페이지 ── */
.info-main{max-width:820px;margin:0 auto;padding:40px 22px 90px}
.info-main .updated{font-size:13px;color:var(--ink-soft);margin-bottom:8px}
.info-main h1{font-size:clamp(26px,4vw,34px);margin-bottom:10px}
.info-main .lead{color:var(--ink-soft);margin-bottom:36px}
.info-main h2{font-size:22px;margin:40px 0 8px;padding-top:26px;border-top:1px solid var(--line)}
.info-main h3{font-size:18px;margin:26px 0 8px;font-weight:700}
.info-main p{margin-bottom:12px;color:#37332d}
.info-main strong{color:var(--ink);font-weight:700}
.info-main a{color:var(--accent-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.info-back{display:inline-block;margin-top:40px;font-weight:700}

/* ── Responsive ── */
/* 제품: 5열 → 3열 → 2열 (모바일에서도 2열 유지해 스크롤 길이를 줄임) */
@media (max-width:1079px){
  .prod-grid{grid-template-columns:repeat(3,1fr);gap:18px}
}
@media (max-width:759px){
  .prod-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .prod-body{padding:14px 13px;gap:6px}
  /* 좁은 카드에서 작은 글씨가 어색하게 끊기지 않도록 */
  .prod-body h3{font-size:15px}
  .prod-body .lead{font-size:12.5px;line-height:1.45}
  .prod-meta{font-size:11.5px;line-height:1.45;gap:2px}
  .prod-card .btn{padding:10px 12px;font-size:13px}

  /* GILLERFIT 개선점 4칸 — 모바일에서 2×2 로 */
  .gf-grid{grid-template-columns:1fr 1fr;gap:10px}
  .gf-card{padding:22px 12px}
  .gf-card h3{font-size:15px;margin-bottom:6px}
  .gf-card p{font-size:12.5px;line-height:1.45}
  .gf-card .ic{width:42px;height:42px;margin-bottom:12px}
  .gf-card .ic svg{width:20px;height:20px}

  /* 손가락으로 누르기 편하도록 링크의 세로 여백을 넓힙니다 */
  .ft-col a{padding:9px 0;margin-bottom:2px}
  .faq-a-inner a{padding:8px 0}
  .info-back{padding:10px 0}

  /* 특징 4칸도 같은 기준으로 살짝 줄임 */
  .exp-item{padding:26px 12px}
  .exp-item h3{font-size:15.5px;margin-bottom:7px}
  .exp-item p{font-size:12.5px;line-height:1.45}
  .exp-item .ic{width:42px;height:42px;margin-bottom:12px}
  .exp-item .ic svg{width:20px;height:20px}
}

@media (max-width:900px){
  :root{--gap:78px}
  .gnb{display:none}
  .hamburger{display:flex}
  .hero .wrap{grid-template-columns:1fr;gap:26px}
  /* 모바일에서는 사진이 화면 폭을 꽉 채우되 정사각 비율 유지 */
  .hero-img{order:3;width:100%;height:auto;max-height:none;justify-self:stretch}
  .exp-grid{grid-template-columns:1fr 1fr}
  .exp-item{border-left:0;border-top:1px solid var(--line)}
  .exp-item:nth-child(2){border-left:1px solid var(--line)}
  .exp-item:nth-child(4){border-left:1px solid var(--line)}
  .modal-facts{grid-template-columns:1fr}
  .ending{padding:60px 0 36px}
  .ending .wrap{flex-direction:column;align-items:flex-start;gap:26px}
  /* 좁은 화면에서 버튼 글자가 두 줄로 깨지지 않도록 위아래로 배치 */
  .ending-cta{width:100%;flex-direction:column;gap:10px}
  .ending-cta .btn{width:100%;justify-content:center;white-space:nowrap}
}
@media (max-width:520px){
  .hd-right .btn{padding:9px 15px}
  .brand b{font-size:18px}
}
