/* =========================================================
   LIGNUM — BILLING MODAL [REFINED FINAL]
   - line hierarchy fixed
   - no over-framing
   - archive-grade structure
   ========================================================= */

body.is-modalOpen{
  overflow:hidden;
}

/* =========================================================
   OVERLAY
   ========================================================= */
.billOverlay{
  position:fixed;
  inset:0;
  z-index:9998;
  background:rgba(0,0,0,.62);

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  transition:opacity .22s ease;
}

.billOverlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* =========================================================
   SHEET
   ========================================================= */
.billSheet{
  position:fixed;
  left:50%;
  top:50%;
  z-index:9999;

  width:min(92vw, 620px);
  max-height:min(86vh, 920px);
  overflow:auto;

  transform:translate(-50%, -48%);
  opacity:0;
  visibility:hidden;
  pointer-events:none;

  border:1px solid rgba(200,162,77,.48);
  border-radius:10px;

  background:
    linear-gradient(180deg, rgba(20,28,24,.96), rgba(12,18,15,.98));

  box-shadow:
    0 40px 120px rgba(0,0,0,.58);

  transition:
    opacity .24s ease,
    transform .24s ease;
}

.billSheet.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%, -50%);
}

/* 단일 inner frame만 유지 */
.billSheet::before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(200,162,77,.18);
  border-radius:4px;
  pointer-events:none;
}

/* 기존 ::after 제거 (과한 프레임) */
.billSheet::after{
  display:none;
}

/* =========================================================
   HANDLE
   ========================================================= */
.billHandle{
  position:absolute;
  left:50%;
  top:12px;
  transform:translateX(-50%);
  width:60px;
  height:3px;
  background:rgba(243,239,228,.14);
}

/* =========================================================
   HEAD
   ========================================================= */
.billHead{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;

  padding:36px 32px 20px;

  border-bottom:1px solid rgba(200,162,77,.12);
}

.billKicker{
  font-size:10px;
  letter-spacing:.34em;
  color:rgba(200,162,77,.78);
}

.billTitle{
  margin:8px 0 0;
  font-size:36px;
  font-family:var(--font-display);
  letter-spacing:-.02em;
}

.billSub{
  margin-top:10px;
  max-width:420px;
  font-size:14px;
  line-height:1.8;
  color:rgba(243,239,228,.66);
}

.billClose{
  font-size:22px;
  color:rgba(243,239,228,.6);
  background:none;
  border:none;
  cursor:pointer;
}

/* =========================================================
   BODY
   ========================================================= */
.billBody{
  padding:26px 32px 30px;
  display:flex;
  flex-direction:column;
  gap:26px;
}

/* =========================================================
   PRODUCT (핵심 수정)
   ========================================================= */
.billSingle{
  padding:0;
  border:none;
  background:none;
  box-shadow:none;
}

/* 기존 이중 프레임 제거 */
.billSingle::before{
  display:none;
}

/* 상단 */
.billSingleTop{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}

/* 이름 */
.billSingleName{
  font-size:17px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1.4;
}

/* 가격 */
.billSinglePrice{
  font-size:17px;
  font-weight:600;
  letter-spacing:.04em;
}

/* 메타 + 라인 */
.billSingleMeta{
  margin-top:14px;
  padding-top:14px;

  border-top:1px solid rgba(200,162,77,.12);

  font-size:12px;
  letter-spacing:.08em;
  color:rgba(243,239,228,.56);
}

.billInlineNote{
  margin-top:10px;
  font-size:12px;
  line-height:1.7;
  color:rgba(243,239,228,.68);
}

/* =========================================================
   CTA
   ========================================================= */
.billPrimary{
  margin-top:16px;

  font-size:15px;
  letter-spacing:.18em;
  font-weight:700;

  color:rgba(243,239,228,.86);
  background:none;
  border:none;

  cursor:pointer;
}

.billPrimary:hover{
  color:#fff;
}

/* =========================================================
   NOTE
   ========================================================= */
.billNote{
  padding-top:20px;
  border-top:1px solid rgba(200,162,77,.14);
}

.billNoteTitle{
  font-size:11px;
  letter-spacing:.28em;
  color:rgba(200,162,77,.82);
  margin-bottom:12px;
}

.billNote p{
  font-size:13px;
  line-height:1.9;
  color:rgba(243,239,228,.64);
  margin-bottom:8px;
}

.billFinePrint{
  margin-top:12px;
  padding-top:12px;

  border-top:1px solid rgba(200,162,77,.08);
}

.billFinePrint p{
  color:rgba(243,239,228,.52);
}

.billFinePrint b{
  color:rgba(243,239,228,.82);
}

.billFinePrint a{
  border-bottom:1px solid rgba(200,162,77,.42);
}

/* =========================================================
   MOBILE
   ========================================================= */
@media (max-width:720px){

  .billSheet{
    border-radius:8px;
  }

  .billHead{
    padding:30px 20px 16px;
  }

  .billBody{
    padding:20px;
  }

  .billSingleTop{
    flex-direction:column;
    gap:8px;
  }

  .billSinglePrice{
    text-align:left;
  }
}
