/*
  [생성일] 2026-08-24
  [경위] 해맑은목장 제안 시안 - 정기구독(subscribe) 전용 스타일
  [변경이력]
    - 2026-08-24: 최초 생성 (정기구독 + 상품 상세 공용)
    - 2026-08-24: 상품 상세를 IWA식 에디토리얼로 다시 만들면서 detail.css로 분리.
                  이 파일에서 실제로 쓰는 곳은 subscribe.html 하나다.

  ⚠️ 아래 "상품 상세" 이후 부분(.pd / .tabs / .panel / .notice-tbl / .buybar)은
     더 이상 어느 페이지도 쓰지 않는다. 상품 상세 스타일은 detail.css에 있다.
     지우지 않고 남겨둔 이유: 탭 방식으로 되돌릴 때 참고하려고.
*/

/* ===== 공통 : 페이지 머리 ===== */
.phead{
  padding:var(--gap-8) 0 var(--gap-7);
  background:var(--white); border-bottom:1px solid var(--line);
}
.crumb{font-size:var(--fs-xs); color:var(--muted); margin-bottom:var(--gap-4)}
.crumb a:hover{color:var(--forest)}
.crumb span{margin:0 6px; opacity:.5}

/* ===== 정기구독 : 히어로 ===== */
.sub-hero{
  position:relative; overflow:hidden;
  background:var(--forest-deep); color:#fff;
  padding:var(--gap-9) 0;
}
.sub-hero::before{
  content:""; position:absolute; inset:0;
  background:url("img/pasture-pano.jpg") center/cover no-repeat;
  opacity:.26;
}
.sub-hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to right, rgba(18,42,33,.94) 0%, rgba(18,42,33,.72) 55%, rgba(18,42,33,.5) 100%);
}
.sub-hero .wrap{position:relative; z-index:2}
.sub-hero h1{font-size:clamp(30px,4.4vw,52px); letter-spacing:-.042em; line-height:1.18}
.sub-hero .lead{color:#C8DCCF; max-width:52ch}

/* ===== 요금제 고르기 ===== */
.picker{display:grid; grid-template-columns:1.15fr .85fr; gap:var(--gap-8); align-items:start}
.pick-block{margin-bottom:var(--gap-7)}
.pick-label{
  font-size:var(--fs-sm); font-weight:700; color:var(--ink);
  margin-bottom:var(--gap-4); display:flex; align-items:center; gap:8px;
}
.pick-step{
  width:22px; height:22px; border-radius:var(--r-pill);
  background:var(--forest); color:#fff; font-size:11px; font-weight:800;
  display:grid; place-items:center; font-family:SUIT,sans-serif;
}
.opts{display:grid; gap:12px}
.opts-row{grid-template-columns:repeat(3,1fr)}
.opt{
  text-align:left; padding:16px 18px; border-radius:var(--r-md);
  border:1.5px solid var(--line); background:var(--white);
  transition:border-color .2s var(--ease), background .2s var(--ease), transform .18s var(--ease);
}
.opt:hover{border-color:var(--line-strong)}
.opt:active{transform:scale(.99)}
.opt.on{border-color:var(--forest); background:var(--forest-soft)}
.opt b{display:block; font-size:var(--fs-base); letter-spacing:-.025em; font-weight:700}
.opt span{display:block; font-size:var(--fs-xs); color:var(--muted); margin-top:3px}
.opt-cycle{text-align:center}
.opt-cycle b{font-size:var(--fs-sm)}

/* 요약 카드 */
.summary{
  position:sticky; top:calc(var(--nav-h) + 20px);
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:var(--gap-6); box-shadow:var(--sh-2);
}
.summary h3{font-size:var(--fs-md); margin-bottom:var(--gap-5); letter-spacing:-.03em}
.sum-row{
  display:flex; justify-content:space-between; align-items:baseline; gap:12px;
  padding:11px 0; font-size:var(--fs-sm); color:var(--ink-2);
  border-bottom:1px dashed var(--line);
}
.sum-row b{color:var(--ink); font-weight:700}
.sum-total{
  display:flex; justify-content:space-between; align-items:baseline;
  padding-top:var(--gap-5); margin-top:var(--gap-3);
}
.sum-total span{font-size:var(--fs-sm); color:var(--muted); font-weight:600}
.sum-total b{
  font-family:SUIT,sans-serif; font-size:var(--fs-2xl);
  font-weight:800; letter-spacing:-.045em; color:var(--forest);
}
.sum-save{
  margin-top:10px; padding:11px 14px; border-radius:var(--r-sm);
  background:var(--amber-soft); color:#7E5310;
  font-size:var(--fs-xs); font-weight:700; text-align:center;
}
.sum-note{margin-top:var(--gap-4); font-size:11px; color:var(--muted); line-height:1.65}

/* ===== 혜택 3 =====
   흰 박스 3개 → 괘선 3단 (아이콘 원 제거 - 제목이 이미 다 말한다) */
.bene{
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--ink); border-bottom:1px solid var(--line);
}
.bn{padding:26px 22px 30px}
.bn + .bn{border-left:1px solid var(--line)}
.bn h4{font-size:var(--fs-md); margin-bottom:8px; letter-spacing:-.03em}
.bn p{font-size:var(--fs-sm); color:var(--muted); line-height:1.7}

/* ===== 배송 흐름 (세로 타임라인) ===== */
.tl{position:relative; margin-top:var(--gap-7); padding-left:0}
.tl-item{
  display:grid; grid-template-columns:52px 1fr; gap:var(--gap-5);
  padding-bottom:var(--gap-6); position:relative;
}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{
  content:""; position:absolute; left:25px; top:52px; bottom:6px;
  width:1px; background:var(--line-strong);
}
.tl-item:last-child::before{display:none}
.tl-n{
  width:52px; height:52px; border-radius:var(--r-pill);
  background:var(--white); border:1.5px solid var(--forest); color:var(--forest);
  display:grid; place-items:center; font-family:SUIT,sans-serif;
  font-weight:800; font-size:var(--fs-md); z-index:1;
}
.tl-body{padding-top:9px}
.tl-body h4{font-size:var(--fs-md); margin-bottom:6px; letter-spacing:-.03em}
.tl-body p{font-size:var(--fs-sm); color:var(--muted); line-height:1.75; max-width:52ch}

/* ===== 자주 묻는 질문 ===== */
.faq{max-width:820px; margin:var(--gap-7) auto 0}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%; text-align:left; padding:20px 44px 20px 0;
  font-size:var(--fs-base); font-weight:700; letter-spacing:-.025em;
  position:relative; color:var(--ink);
}
.faq-q::after{
  content:""; position:absolute; right:8px; top:50%;
  width:11px; height:11px; margin-top:-6px;
  border-right:2px solid var(--muted); border-bottom:2px solid var(--muted);
  transform:rotate(45deg); transition:transform .28s var(--ease);
}
.faq-q.on::after{transform:rotate(-135deg)}
.faq-a{
  padding:0 0 22px; font-size:var(--fs-sm); color:var(--ink-2);
  line-height:1.8; max-width:64ch;
}

/* ===== 상품 상세 ===== */
.pd{display:grid; grid-template-columns:1.02fr .98fr; gap:var(--gap-8); align-items:start}
.pd-gallery{position:sticky; top:calc(var(--nav-h) + 20px)}
.pd-main{
  border-radius:var(--r-lg); overflow:hidden;
  background:var(--bone-2); border:1px solid var(--line);
}
.pd-main img{width:100%; aspect-ratio:1/1; object-fit:cover}
.pd-thumbs{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:12px}
.pd-thumbs button{
  border-radius:var(--r-sm); overflow:hidden; border:1.5px solid transparent;
  transition:border-color .2s var(--ease); background:var(--bone-2);
}
.pd-thumbs button.on{border-color:var(--forest)}
.pd-thumbs img{width:100%; aspect-ratio:1/1; object-fit:cover}

.pd-info h1{font-size:var(--fs-2xl); letter-spacing:-.04em; line-height:1.3}
.pd-badges{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:var(--gap-4)}
.bdg{
  padding:5px 11px; border-radius:var(--r-pill);
  font-size:11px; font-weight:700; letter-spacing:-.01em;
}
.bdg-green{background:var(--forest-soft); color:var(--forest)}
.bdg-amber{background:var(--amber-soft); color:#8A5B12}
.pd-price{
  margin-top:var(--gap-5); font-family:SUIT,sans-serif;
  font-size:var(--fs-3xl); font-weight:800; letter-spacing:-.05em;
}
.pd-desc{margin-top:var(--gap-4); color:var(--ink-2); line-height:1.8}

.pd-spec{
  margin-top:var(--gap-6); border-top:1px solid var(--line);
  padding-top:var(--gap-5);
}
.pd-spec dl{display:grid; grid-template-columns:88px 1fr; gap:11px 16px; font-size:var(--fs-sm)}
.pd-spec dt{color:var(--muted); font-weight:600}
.pd-spec dd{margin:0; color:var(--ink-2)}

/* 수량과 합계 */
.pd-buy{
  margin-top:var(--gap-6); padding:var(--gap-5);
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-md);
}
.qty{display:flex; align-items:center; justify-content:space-between; gap:12px}
.qty-ctrl{display:flex; align-items:center; border:1px solid var(--line-strong); border-radius:var(--r-pill)}
.qty-ctrl button{
  width:38px; height:38px; display:grid; place-items:center;
  color:var(--ink-2); font-size:18px; line-height:1;
  transition:color .2s var(--ease);
}
.qty-ctrl button:hover{color:var(--forest)}
.qty-ctrl span{min-width:34px; text-align:center; font-weight:700; font-family:SUIT,sans-serif}
.pd-sum{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-top:var(--gap-5); padding-top:var(--gap-4); border-top:1px dashed var(--line);
}
.pd-sum span{font-size:var(--fs-sm); color:var(--muted); font-weight:600}
.pd-sum b{font-family:SUIT,sans-serif; font-size:var(--fs-xl); font-weight:800; letter-spacing:-.045em}
.pd-ship{margin-top:8px; font-size:var(--fs-xs); color:var(--muted); text-align:right}
.pd-act{display:grid; grid-template-columns:1fr 1.35fr; gap:10px; margin-top:var(--gap-5)}

/* 정기구독 유도 (현행 상세에 없는 것) */
.pd-sub{
  margin-top:var(--gap-5); padding:18px 20px;
  border-radius:var(--r-md); background:var(--forest-soft);
  border:1px solid rgba(30,64,52,.18);
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.pd-sub b{display:block; font-size:var(--fs-sm); color:var(--forest); letter-spacing:-.02em}
.pd-sub span{font-size:var(--fs-xs); color:var(--ink-2)}

/* 탭 */
.tabs{
  display:flex; gap:var(--gap-6); border-bottom:1px solid var(--line);
  margin-top:var(--gap-9); overflow-x:auto; scrollbar-width:none;
}
.tabs::-webkit-scrollbar{display:none}
.tabs button{
  padding:15px 2px; font-size:var(--fs-sm); font-weight:700; color:var(--muted);
  border-bottom:2px solid transparent; white-space:nowrap;
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.tabs button.on{color:var(--forest); border-bottom-color:var(--forest)}
.panel{padding:var(--gap-7) 0}
.panel h3{font-size:var(--fs-lg); margin-bottom:var(--gap-4); letter-spacing:-.035em}
.panel p{color:var(--ink-2); line-height:1.85; max-width:70ch; margin-bottom:var(--gap-4)}
.panel img{border-radius:var(--r-md); margin:var(--gap-5) 0}

/* 상품정보 제공고시 표 */
.notice-tbl{width:100%; border-top:1.5px solid var(--ink); font-size:var(--fs-sm)}
.notice-tbl tr{border-bottom:1px solid var(--line)}
.notice-tbl th{
  text-align:left; padding:13px 16px; width:180px; vertical-align:top;
  background:var(--bone-2); font-weight:600; color:var(--ink-2);
}
.notice-tbl td{padding:13px 16px; color:var(--ink-2)}

/* 모바일 하단 구매바 - 현행 사이트에 없는 것 */
.buybar{
  position:fixed; left:0; right:0; bottom:0; z-index:65;
  background:rgba(255,255,255,.97); backdrop-filter:blur(10px);
  border-top:1px solid var(--line); padding:11px 15px;
  display:none; align-items:center; gap:12px;
  transform:translateY(100%); transition:transform .3s var(--ease);
  padding-bottom:calc(11px + env(safe-area-inset-bottom));
}
.buybar.show{transform:translateY(0)}
.buybar-price{flex:0 0 auto}
.buybar-price small{display:block; font-size:11px; color:var(--muted)}
.buybar-price b{font-family:SUIT,sans-serif; font-size:var(--fs-md); font-weight:800; letter-spacing:-.04em}
.buybar .btn{flex:1 1 auto}

/* ===== 반응형 ===== */
@media (max-width:1024px){
  .picker{grid-template-columns:1fr; gap:var(--gap-7)}
  .summary{position:static}
  .bene{grid-template-columns:1fr}
  .bn + .bn{border-left:none; border-top:1px solid var(--line)}
  .pd{grid-template-columns:1fr; gap:var(--gap-7)}
  .pd-gallery{position:static}
}
@media (max-width:768px){
  .sub-hero{padding:var(--gap-8) 0}
  .buybar{display:flex}
  body.has-buybar{padding-bottom:78px}
  .pd-spec dl{grid-template-columns:76px 1fr}
  .notice-tbl th{width:110px; padding:11px 12px; font-size:var(--fs-xs)}
  .notice-tbl td{padding:11px 12px; font-size:var(--fs-xs)}
  .opts-row{grid-template-columns:repeat(3,1fr); gap:8px}
  .opt{padding:13px 11px}
  .opt-cycle b{font-size:var(--fs-xs)}
  .tl-item{grid-template-columns:44px 1fr; gap:var(--gap-4)}
  .tl-n{width:44px; height:44px; font-size:var(--fs-sm)}
  .tl-item::before{left:21px; top:46px}
}
