/* ============================================================
   CINEFUND — Pages CSS (Editorial tone)
   서브페이지 공통 컴포넌트 (메인 main.css 디자인 토큰 재사용)
   ============================================================ */

/* ===================== PAGE BANNER (서브페이지 상단) ===================== */
.page-banner{
  background: var(--dark);
  color: var(--dark-text);
  padding: 56px 0 48px;
  border-bottom: 1px solid var(--dark-line);
  position: relative;
  overflow: hidden;
}
.page-banner-inner{ max-width: 1240px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1; }
.page-crumb{
  font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .1em;
  color: var(--dark-text-2); margin-bottom: 18px; display: flex; gap: 8px; align-items: center;
}
.page-crumb a:hover{ color: var(--brass-soft); }
.page-crumb .sep{ color: var(--dark-line); }
.page-title{
  font-family: var(--f-display); font-size: 52px; font-weight: 600;
  line-height: 1.05; letter-spacing: -.01em; margin-bottom: 12px;
}
.page-title em{ font-style: italic; color: var(--brass-soft); }
.page-sub{ font-size: 15px; color: var(--dark-text-2); max-width: 620px; line-height: 1.6; }
.page-banner-num{
  position: absolute; right: 40px; top: 40px;
  font-family: var(--f-display); font-style: italic;
  font-size: 120px; color: rgba(193,159,86,.08); line-height: 1; user-select: none;
}

/* ===================== SECTION WRAP ===================== */
.wrap{ padding: 64px 0; }
.wrap-sm{ padding: 40px 0; }

/* ===================== FILTER / SEGMENT ===================== */
.filterbar{
  display: flex; align-items: center; gap: 16px;
  padding: 20px 0; border-bottom: 1px solid var(--line);
  margin-bottom: 32px; flex-wrap: wrap;
}
.fseg{ display: flex; gap: 4px; flex-wrap: wrap; }
.fseg button{
  font-family: var(--f-sans); font-size: 13.5px; color: var(--ink-3);
  padding: 8px 16px; border: 1px solid transparent;
  transition: all .15s;
}
.fseg button:hover{ color: var(--ink); }
.fseg button.on{
  color: var(--ink); border-color: var(--ink);
  background: var(--paper);
}
.fseg button .n{ font-family: var(--f-mono); font-size: 11px; color: var(--ink-4); margin-left: 4px; }
.fseg button.on .n{ color: var(--wine); }
.filterbar-r{ margin-left: auto; display: flex; align-items: center; gap: 12px; }
.fsort{
  font-family: var(--f-sans); font-size: 13px; color: var(--ink-2);
  border: 1px solid var(--line); padding: 9px 14px; background: var(--paper);
  cursor: pointer;
}
.fcount{ font-family: var(--f-mono); font-size: 12px; color: var(--ink-4); }
.fcount b{ color: var(--wine); font-weight: 500; }

/* ===================== PRODUCT GRID (재사용 가능) ===================== */
.pgrid{ display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.pgrid-3{ grid-template-columns: repeat(3,1fr); }
.pgrid-2{ grid-template-columns: repeat(2,1fr); }

/* card는 main.css의 .card 재사용 + 보강 */
.card-link{ display: flex; flex-direction: column; height: 100%; }

/* ===================== INVEST DETAIL ===================== */
.detail{ display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; padding: 56px 0; }
.detail-media{ position: relative; }
.detail-poster{
  overflow: hidden; border: 1px solid var(--line);
  position: relative; background: var(--dark);
}
.detail-poster img{ width: 100%; height: auto; display: block; filter: contrast(1.05) saturate(.95); }
.detail-poster-tag{
  position: absolute; top: 0; left: 0;
  background: var(--wine); color: var(--paper);
  font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em;
  padding: 8px 16px;
}
.detail-gallery{ display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 8px; }
.detail-gallery div{ aspect-ratio: 1; overflow: hidden; border: 1px solid var(--line); cursor: pointer; }
.detail-gallery img{ width: 100%; height: 100%; object-fit: cover; }

.detail-cat{
  font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em;
  color: var(--wine); text-transform: uppercase; margin-bottom: 12px;
}
.detail-title{
  font-family: var(--f-display); font-size: 44px; font-weight: 600;
  line-height: 1.08; letter-spacing: -.01em; margin-bottom: 8px;
}
.detail-subtitle{
  font-family: var(--f-serif); font-style: italic; font-size: 16px;
  color: var(--ink-3); margin-bottom: 28px;
}
.detail-specs{
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border-top: 1px solid var(--line); margin-bottom: 24px;
}
.detail-spec{
  padding: 16px 0; border-bottom: 1px solid var(--line);
  display: flex; justify-content: space-between; align-items: baseline;
}
.detail-spec:nth-child(odd){ padding-right: 24px; border-right: 1px solid var(--line); }
.detail-spec:nth-child(even){ padding-left: 24px; }
.detail-spec .k{ font-size: 13px; color: var(--ink-4); }
.detail-spec .v{ font-family: var(--f-mono); font-size: 15px; color: var(--ink); font-weight: 500; }
.detail-spec .v.wine{ color: var(--wine); }

.detail-prog{ margin: 24px 0; }
.detail-prog-top{ display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.detail-prog-pct{ font-family: var(--f-display); font-size: 28px; font-weight: 600; color: var(--wine); }
.detail-prog-pct span{ font-size: 14px; color: var(--ink-4); font-family: var(--f-sans); }
.detail-prog-d{ font-family: var(--f-mono); font-size: 12px; color: var(--ink-4); }
.detail-prog-bar{ height: 3px; background: var(--line); position: relative; overflow: hidden; }
.detail-prog-bar > div{ height: 100%; background: var(--wine); transition: width 1s ease; }
.detail-prog-amt{ display: flex; justify-content: space-between; margin-top: 8px; font-family: var(--f-mono); font-size: 12px; color: var(--ink-3); }

.qty-row{
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 0; border-top: 1px solid var(--line);
}
.qty-row .lbl{ font-size: 14px; color: var(--ink-2); }
.qty{ display: flex; align-items: center; border: 1px solid var(--ink); }
.qty button{ width: 42px; height: 42px; font-size: 18px; color: var(--ink); transition: background .15s; }
.qty button:hover{ background: var(--paper-soft); }
.qty input{
  width: 60px; text-align: center; border: 0; background: transparent;
  font-family: var(--f-mono); font-size: 15px; color: var(--ink); border-left: 1px solid var(--line); border-right: 1px solid var(--line); height: 42px;
}
.total-row{
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 24px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink);
  margin: 8px 0 24px;
}
.total-row .lbl{ font-size: 15px; color: var(--ink-2); }
.total-row .v{ font-family: var(--f-display); font-size: 36px; font-weight: 600; color: var(--ink); }

.risk-box{
  background: rgba(139,29,39,.05); border: 1px solid rgba(139,29,39,.2);
  padding: 16px 18px; margin: 20px 0; display: flex; gap: 12px;
  font-size: 12.5px; color: var(--ink-2); line-height: 1.6;
}
.risk-box svg{ flex-shrink: 0; color: var(--wine); margin-top: 2px; }
.risk-box strong{ color: var(--wine); }

/* ===================== TABS ===================== */
.tabs{ border-bottom: 1px solid var(--line); display: flex; gap: 0; margin: 56px 0 32px; flex-wrap: wrap; }
.tabs button{
  font-family: var(--f-sans); font-size: 14px; color: var(--ink-3);
  padding: 16px 24px; border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: all .15s;
}
.tabs button:hover{ color: var(--ink); }
.tabs button.on{ color: var(--wine); border-bottom-color: var(--wine); }
.tab-body{ font-size: 15px; line-height: 1.85; color: var(--ink-2); }
.tab-body h3{ font-family: var(--f-display); font-size: 24px; font-weight: 600; color: var(--ink); margin: 28px 0 12px; }
.tab-body p{ margin-bottom: 16px; }
.tab-body .panel{ display: none; }
.tab-body .panel.on{ display: block; }

/* ===================== FORM ===================== */
.form-page{ min-height: calc(100vh - 140px); display: flex; align-items: center; justify-content: center; padding: 64px 24px; background: var(--paper-soft); }
.form-card{
  background: var(--paper); border: 1px solid var(--line);
  padding: 48px; width: 100%; max-width: 460px;
}
.form-card.wide{ max-width: 540px; }
.form-card h1{
  font-family: var(--f-display); font-size: 36px; font-weight: 600;
  letter-spacing: -.01em; margin-bottom: 8px; line-height: 1.1;
}
.form-card h1 em{ font-style: italic; color: var(--wine); }
.form-card .lede{ font-size: 14px; color: var(--ink-3); margin-bottom: 32px; }

.field{ margin-bottom: 20px; }
.field label{
  display: block; font-family: var(--f-mono); font-size: 11px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 8px;
}
.field input, .field select, .field textarea{
  width: 100%; background: var(--paper-soft); border: 1px solid var(--line);
  padding: 13px 15px; font-size: 15px; font-family: var(--f-sans); color: var(--ink);
  transition: border-color .15s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline: none; border-color: var(--ink); background: var(--paper);
}
.field input::placeholder{ color: var(--ink-4); }
.field .with-btn{ display: flex; gap: 8px; }
.field .with-btn input{ flex: 1; }
.field .row2{ display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

.btn-fill{
  width: 100%; background: var(--ink); color: var(--paper);
  padding: 15px; font-size: 15px; font-weight: 500; font-family: var(--f-sans);
  transition: background .2s; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.btn-fill:hover{ background: var(--wine); }
.btn-fill.wine{ background: var(--wine); }
.btn-fill.wine:hover{ background: var(--wine-deep); }
.btn-line{
  width: 100%; border: 1px solid var(--ink); color: var(--ink);
  padding: 14px; font-size: 14.5px; font-family: var(--f-sans);
  transition: all .15s;
}
.btn-line:hover{ background: var(--ink); color: var(--paper); }

.form-foot{
  text-align: center; margin-top: 24px; padding-top: 24px;
  border-top: 1px solid var(--line); font-size: 13.5px; color: var(--ink-3);
}
.form-foot a{ color: var(--wine); border-bottom: 1px solid var(--line); }
.form-foot a:hover{ border-color: var(--wine); }

.checkrow{
  display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px;
  cursor: pointer; transition: background .15s;
}
.checkrow:hover{ background: var(--paper-soft); }
.checkrow input{ margin-top: 3px; accent-color: var(--wine); cursor: pointer; }
.checkrow label{
  font-size: 13.5px; color: var(--ink-2); cursor: pointer; line-height: 1.5;
  font-family: var(--f-sans); letter-spacing: 0; text-transform: none; margin: 0;
}
.checkrow label .req{ color: var(--wine); font-size: 11px; margin-right: 4px; }

.steps-bar{ display: flex; gap: 6px; margin-bottom: 28px; }
.steps-bar span{ flex: 1; height: 3px; background: var(--line); position: relative; overflow: hidden; }
.steps-bar span.done{ background: var(--wine); }
.steps-bar span.cur::after{ content:''; position: absolute; inset: 0; width: 50%; background: var(--wine); }

.sso-row{ display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.sso-row button{ border: 1px solid var(--line); padding: 12px; font-size: 13px; transition: all .15s; display: flex; align-items: center; justify-content: center; gap: 6px; }
.sso-row button:hover{ border-color: var(--ink); }
.divider{ display: flex; align-items: center; gap: 12px; margin: 24px 0; color: var(--ink-4); font-size: 12px; }
.divider::before, .divider::after{ content:''; flex: 1; height: 1px; background: var(--line); }

/* ===================== USER / MYPAGE ===================== */
.user-head{
  background: linear-gradient(135deg, #8b1d27 0%, #6e1620 45%, #4a0e15 100%);
  color: var(--dark-text); padding: 48px 0;
  border-bottom: 1px solid rgba(0,0,0,.2);
}
.user-head-inner{ max-width: 1240px; margin: 0 auto; padding: 0 32px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.user-id{ display: flex; align-items: center; gap: 18px; }
.user-avatar{
  width: 60px; height: 60px; border-radius: 50%; background: var(--brass);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display); font-size: 24px; color: var(--dark); font-weight: 600;
}
.user-id h2{ font-family: var(--f-display); font-size: 24px; font-weight: 600; margin-bottom: 4px; }
.user-id-meta{ display: flex; gap: 12px; font-family: var(--f-mono); font-size: 12px; color: var(--dark-text-2); }
.user-id-meta .lv{ color: var(--brass-soft); }
.user-bal{ text-align: right; }
.user-bal .k{ font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--dark-text-2); margin-bottom: 6px; }
.user-bal .v{ font-family: var(--f-display); font-size: 38px; font-weight: 600; color: var(--brass-soft); }

/* 히어로 내 자산 띠 — 크림 카드 */
.hero-asset-grid{ max-width: 1240px; margin: 32px auto 0; padding: 0 32px; display: grid; grid-template-columns: repeat(4,1fr); gap: 0; }
.hero-asset{ padding: 18px 22px; background: rgba(244,240,232,.96); border-right: 1px solid rgba(139,29,39,.12); }
.hero-asset:first-child{ border-radius: 10px 0 0 10px; }
.hero-asset:last-child{ border-right: 0; border-radius: 0 10px 10px 0; }
.hero-asset .k{ font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; color: var(--ink-4); margin-bottom: 8px; }
.hero-asset .v{ font-family: var(--f-sans); font-size: 22px; font-weight: 700; color: var(--wine); margin-bottom: 5px; }
.hero-asset .d{ font-size: 11px; color: var(--ink-4); }
@media (max-width:820px){
  .hero-asset-grid{ grid-template-columns: 1fr 1fr; padding: 0 20px; }
  .hero-asset{ border-bottom: 1px solid rgba(139,29,39,.12); }
  .hero-asset:nth-child(2){ border-right: 0; }
  .hero-asset:nth-child(1){ border-radius: 10px 0 0 0; }
  .hero-asset:nth-child(2){ border-radius: 0 10px 0 0; }
  .hero-asset:nth-child(3){ border-radius: 0 0 0 10px; }
  .hero-asset:nth-child(4){ border-radius: 0 0 10px 0; }
  .hero-asset .v{ font-size: 19px; }
}

/* 비상장 주식 발행 안내 배너 */
.stock-banner{ display:flex; align-items:center; gap:14px; margin:14px 0 0; padding:16px 20px; border:1px solid var(--line); border-radius:8px; background:linear-gradient(90deg, rgba(139,29,39,.05), rgba(193,159,86,.05)); text-decoration:none; transition:background .15s; }
.stock-banner:hover{ background:linear-gradient(90deg, rgba(139,29,39,.09), rgba(193,159,86,.09)); }
.stock-banner .sb-ic{ flex-shrink:0; width:40px; height:40px; border-radius:50%; background:var(--wine); color:#fff; display:flex; align-items:center; justify-content:center; }
.stock-banner .sb-txt{ flex:1; display:flex; flex-direction:column; gap:2px; }
.stock-banner .sb-txt b{ font-size:14.5px; color:var(--ink); }
.stock-banner .sb-sub{ font-size:12px; color:var(--ink-4); }
.stock-banner .sb-arr{ color:var(--wine); font-size:18px; }
@media(max-width:560px){ .stock-banner .sb-sub{ display:none; } }

.asset-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border: 1px solid var(--line); margin: 40px 0; background: var(--paper); }
.asset{ padding: 22px; border-right: 1px solid var(--line); }
.asset:last-child{ border-right: 0; }
.asset .k{ font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-4); margin-bottom: 8px; }
.asset .v{ font-family: var(--f-display); font-size: 23px; font-weight: 600; color: var(--ink); margin-bottom: 5px; }
.asset .d{ font-size: 12px; font-family: var(--f-mono); color: var(--pos); }
.asset .d.neg{ color: var(--neg); }
.asset-grid-4 .asset:nth-child(4n){ border-right: 0; }
@media (max-width:820px){
  .asset-grid-4{ grid-template-columns: 1fr 1fr !important; }
  .asset-grid-4 .asset:nth-child(2n){ border-right: 0; }
  .asset-grid-4 .asset:nth-child(n+3){ border-top: 1px solid var(--line); }
}

.quickrow{ display: grid; grid-template-columns: repeat(4,1fr); gap: 0; border: 1px solid var(--line); border-top: 0; margin-bottom: 40px; }
.quickrow a{ padding: 22px; text-align: center; border-right: 1px solid var(--line); transition: background .15s; position: relative; }
.quickrow a .qbadge{ position:absolute; top:12px; right:50%; transform:translateX(26px); min-width:18px; height:18px; padding:0 5px; background:var(--wine); color:#fff; font-size:11px; font-weight:700; line-height:18px; border-radius:9px; text-align:center; }
.quickrow a:nth-child(4n){ border-right: 0; }
.quickrow a:nth-child(n+5){ border-top: 1px solid var(--line); }
.quickrow a:hover{ background: var(--paper-soft); }
.quickrow a.on{ background: var(--wine); }
.quickrow a.on svg{ color: #fff; }
.quickrow a.on .t{ color: #fff; font-weight: 600; }
.quickrow a svg{ color: var(--wine); margin: 0 auto 8px; }
.quickrow a .t{ font-size: 13.5px; color: var(--ink); }

/* 메인 전용: 독립 카드형 퀵 (테두리 둥글게, 위쪽 테두리 있음) */
.quickrow-4, .quickrow-6{ border: 1px solid var(--line); border-top: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.quickrow-4{ grid-template-columns: repeat(4,1fr); }
.quickrow-6{ grid-template-columns: repeat(6,1fr); }
.quickrow-4 a:nth-child(n+5), .quickrow-6 a:nth-child(n+7){ border-top: 0; }
.quickrow-4 a:nth-child(4n){ border-right: 0; }
.quickrow-6 a:nth-child(6n){ border-right: 0; }
.quickrow-6 a:nth-child(4n){ border-right: 1px solid var(--line); }

.menu-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border: 1px solid var(--line); margin-bottom: 40px; }
.menu-cell{ padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 14px; cursor: pointer; transition: background .15s; }
.menu-cell:hover{ background: var(--paper-soft); }
.menu-cell svg{ color: var(--wine); flex-shrink: 0; }
.menu-cell .mt{ font-size: 14px; color: var(--ink); margin-bottom: 2px; }
.menu-cell .md{ font-size: 11.5px; color: var(--ink-4); }

/* ===================== TABLE ===================== */
.tbl{ width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tbl th{
  text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--ink);
  font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink-4); font-weight: 500;
}
.tbl td{ padding: 14px; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.tbl tr:hover td{ background: var(--paper-soft); }
.tbl .mono{ font-family: var(--f-mono); }
.tbl .pos{ color: var(--pos); }
.tbl .neg{ color: var(--neg); }
.pill{ display: inline-block; padding: 3px 10px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .04em; border: 1px solid var(--line); }
.pill.ok{ color: var(--pos); border-color: rgba(43,108,70,.3); background: rgba(43,108,70,.06); }
.pill.wait{ color: var(--brass); border-color: rgba(158,123,46,.3); background: rgba(158,123,46,.06); }
.pill.no{ color: var(--neg); border-color: rgba(160,42,42,.3); background: rgba(160,42,42,.06); }

/* ===================== MODAL / TOAST ===================== */
.modal-ov{ position: fixed; inset: 0; z-index: 1000; background: rgba(20,17,13,.7); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; transition: opacity .3s; }
.modal-ov.show{ opacity: 1; }
.modal-c{ background: var(--paper); border: 1px solid var(--ink); padding: 40px; max-width: 520px; width: 100%; transform: scale(.96); transition: transform .3s; max-height: 90vh; overflow-y: auto; }
.modal-ov.show .modal-c{ transform: scale(1); }
.modal-c h2{ font-family: var(--f-display); font-size: 26px; font-weight: 600; color: var(--wine); margin-bottom: 20px; }
.toast{ position: fixed; bottom: 32px; left: 50%; transform: translateX(-50%) translateY(20px); background: var(--ink); color: var(--paper); padding: 14px 24px; font-size: 14px; z-index: 1100; opacity: 0; transition: all .3s cubic-bezier(.34,1.56,.64,1); }
.toast.show{ opacity: 1; transform: translateX(-50%) translateY(0); }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 1100px){
  .pgrid{ grid-template-columns: repeat(3,1fr); }
  .detail{ grid-template-columns: 1fr; gap: 36px; }
  .page-title{ font-size: 40px; }
}
@media (max-width: 820px){
  .pgrid, .pgrid-3{ grid-template-columns: repeat(2,1fr); }
  .asset-grid{ grid-template-columns: 1fr 1fr; }
  .quickrow{ grid-template-columns: repeat(4,1fr); }
  .menu-grid{ grid-template-columns: 1fr 1fr; }
  .user-head-inner{ flex-direction: column; align-items: flex-start; }
  .user-bal{ text-align: left; }
  .detail-title{ font-size: 32px; }
}
@media (max-width: 560px){
  .pgrid, .pgrid-3, .pgrid-2{ grid-template-columns: 1fr; }
  .asset-grid, .menu-grid{ grid-template-columns: 1fr; }
  .quickrow{ grid-template-columns: repeat(4,1fr); }
  .quickrow a{ padding: 14px 4px; }
  .quickrow a svg{ width: 19px; height: 19px; margin-bottom: 5px; }
  .quickrow a .t{ font-size: 11.5px; white-space: nowrap; }
  .quickrow a:nth-child(3n){ border-right: 1px solid var(--line); }
  .quickrow a:nth-child(4n){ border-right: 0; }
  .quickrow a:nth-child(n+5){ border-top: 1px solid var(--line); }
  /* 메인 카드형 퀵 모바일 */
  .quickrow-4{ grid-template-columns: repeat(4,1fr); }
  .quickrow-4 a:nth-child(n+5){ border-top: 0; }
  .quickrow-6{ grid-template-columns: repeat(3,1fr); }
  .quickrow-6 a{ border-right: 1px solid var(--line); }
  .quickrow-6 a:nth-child(3n){ border-right: 0; }
  .quickrow-6 a:nth-child(n+4){ border-top: 1px solid var(--line); }
  .asset, .menu-cell{ border-right: 0; }
  .asset{ padding: 16px; border-bottom: 1px solid var(--line); }
  .asset:last-child{ border-bottom: 0; }
  .asset .v{ font-size: 20px; }
  .asset .k{ font-size: 10px; margin-bottom: 6px; }
  .form-card{ padding: 32px 24px; }
  .page-title{ font-size: 32px; }
  .detail-specs{ grid-template-columns: 1fr; }
  .detail-spec:nth-child(odd){ padding-right: 0; border-right: 0; }
  .detail-spec:nth-child(even){ padding-left: 0; }
}

/* ===================== GYTV 로고 이미지 ===================== */
.logo-img{
  height: 34px; width: auto; display: block;
}
.logo-ft .logo-img-ft{
  height: 30px; width: auto; display: block;
}
/* 헤더 로고 정렬 보정 */
.hdr .logo{ gap: 0; }
.ft-brand .logo-ft{ margin-bottom: 4px; }
@media (max-width: 560px){
  .logo-img{ height: 28px; }
}

/* ===================== 관리자 폼 (상품 등록/수정 등) ===================== */
.fgrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.fgrid .full{ grid-column:1/-1; }
.fsec{ border-top:1px solid var(--line); margin-top:28px; padding-top:24px; }
.fsec:first-child{ border-top:0; margin-top:0; padding-top:0; }
.fsec-t{ font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--wine); margin-bottom:18px; }
.adm-main .field textarea{ min-height:90px; resize:vertical; }
.hint{ font-size:11.5px; color:var(--ink-4); margin-top:5px; }
@media (max-width:680px){ .fgrid{ grid-template-columns:1fr; } }

/* ===================== 숫자 가독성 개선 (올드스타일 숫자 → 또렷하게) ===================== */
/* 카드 하단 숫자: 장식 세리프 → 산세리프로 또렷하게 */
.card-foot strong{
  font-family: var(--f-sans) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
}
.card-foot span{ font-size: 10px !important; color: var(--ink-3) !important; }

/* 큰 숫자들: 라이닝 숫자 강제 + 일부 산세리프 */
.detail-prog-pct, .total-row .v, .asset .v, .user-bal .v,
.detail-spec .v, .stat .v, .hero-card-prog-num, .strip-v, .met-v {
  font-variant-numeric: lining-nums tabular-nums;
}
/* 대시보드 통계 숫자: 또렷하게 */
.stat .v{ font-family: var(--f-sans) !important; font-weight: 700 !important; letter-spacing: -.02em; }
/* 마이페이지/상세 핵심 숫자도 산세리프 */
.asset .v, .user-bal .v, .total-row .v{ font-family: var(--f-sans) !important; font-weight: 700 !important; }

/* ===================== 협력 파트너 로고 그리드 ===================== */
.partner-grid{
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
  margin-top: 20px;
}
.partner-cell{
  aspect-ratio: 5/2; background: var(--paper); border: 1px solid var(--line);
  display: flex; align-items: center; justify-content: center;
  padding: 12px; transition: border-color .2s, transform .2s;
}
.partner-cell:hover{ border-color: var(--ink); transform: translateY(-2px); }
.partner-cell img{ max-width: 100%; max-height: 100%; object-fit: contain; filter: grayscale(1); opacity: .7; transition: all .2s; }
.partner-cell:hover img{ filter: grayscale(0); opacity: 1; }
.partner-cell span{
  font-family: var(--f-display); font-size: 15px; font-weight: 500;
  color: var(--ink-3); text-align: center; letter-spacing: -.01em;
}
.partner-note{ font-size: 11.5px; color: var(--ink-4); margin-top: 14px; text-align: center; }
@media (max-width: 900px){ .partner-grid{ grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px){ .partner-grid{ grid-template-columns: repeat(3, 1fr); } }

/* ===================== 헤더 앱 다운로드 버튼 ===================== */
.hdr-app-btn{
  display:inline-flex; align-items:center; gap:5px;
  background:var(--dark); color:#fff !important;
  padding:7px 13px; border-radius:5px; font-size:12.5px; font-weight:500;
  transition:opacity .15s;
}
.hdr-app-btn:hover{ opacity:.85; }
@media (max-width:640px){ .hdr-app-btn span, .hdr-app-btn{ font-size:0; } .hdr-app-btn svg{ width:16px; height:16px; } }

/* ===================== 메인 공지사항 섹션 ===================== */
.home-notice{ padding:72px 0; background:var(--paper); border-top:1px solid var(--line); }
.home-notice-tbl{ margin-top:8px; }
.home-notice-tbl td{ padding:15px 8px; vertical-align:middle; }
.home-notice-tbl tr{ border-bottom:1px solid var(--line); }
.home-notice-tbl a{ color:var(--ink); font-size:15px; transition:color .15s; }
.home-notice-tbl a:hover{ color:var(--wine); }
