/* ============================================================
   Diya Vape TW — policy / legal / FAQ page prose
   Load after diya-vape-tw-global.css
   ============================================================ */

.tw-policy-page{
  background:#fff;
  padding:clamp(48px,8vw,96px) 0 clamp(64px,10vw,120px);
  border-top:1.5px solid var(--color-divider);
}

.tw-policy-header{
  width:100%;
  max-width:var(--max-w);
  margin:0;
  padding-bottom:32px;
  border-bottom:1.5px solid var(--color-divider);
  text-align:left;
}
.tw-policy-header h1{margin-top:4px;margin-bottom:16px}
.tw-policy-lead{
  font-size:1.05rem;
  color:var(--color-base);
  opacity:0.85;
  line-height:1.75;
  max-width:720px;
}
.tw-policy-meta{
  display:inline-block;
  margin-top:16px;
  padding:8px 14px;
  font-size:0.8rem;
  font-weight:600;
  letter-spacing:0.04em;
  color:var(--color-primary);
  background:rgba(167,66,255,0.08);
  border-radius:8px;
}

.tw-policy-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  width:100%;
  max-width:var(--max-w);
  margin:0;
}
@media(min-width:1024px){
  .tw-policy-layout--with-aside{
    grid-template-columns:minmax(0,1fr) 260px;
    gap:56px;
    align-items:start;
  }
}

.tw-policy-body h2{
  margin-top:40px;
  margin-bottom:16px;
  padding-top:8px;
  font-size:1.25rem;
  font-weight:700;
}
.tw-policy-body h2:first-child{margin-top:0;padding-top:0}
.tw-policy-body h3{
  margin-top:24px;
  margin-bottom:12px;
  color:var(--color-headline);
}
.tw-policy-body p{
  margin-bottom:16px;
  font-size:0.95rem;
  line-height:1.75;
  color:var(--color-base);
  opacity:0.88;
}
.tw-policy-body p:last-child{margin-bottom:0}
.tw-policy-body strong{color:var(--color-headline);font-weight:600;opacity:1}

.tw-policy-body ul,
.tw-policy-body ol{
  list-style:none;
  margin:0 0 20px;
  padding:0;
}
.tw-policy-body ul li,
.tw-policy-body ol li{
  position:relative;
  padding-left:1.35rem;
  margin-bottom:10px;
  font-size:0.95rem;
  line-height:1.7;
  color:var(--color-base);
  opacity:0.88;
}
.tw-policy-body ul li::before{
  content:'';
  position:absolute;
  left:0;
  top:0.55em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--color-primary);
}
.tw-policy-body ol{
  counter-reset:tw-policy-ol;
}
.tw-policy-body ol li{
  counter-increment:tw-policy-ol;
  padding-left:2rem;
}
.tw-policy-body ol li::before{
  content:counter(tw-policy-ol);
  position:absolute;
  left:0;
  top:0;
  width:1.5rem;
  font-family:var(--font-display);
  font-weight:700;
  font-size:0.85rem;
  color:var(--color-primary);
}

.tw-policy-note{
  margin:24px 0;
  padding:18px 20px;
  background:#fff;
  border:1.5px solid var(--color-divider);
  border-left:4px solid var(--color-primary);
  border-radius:var(--radius-card);
  font-size:0.92rem;
  line-height:1.7;
  color:var(--color-base);
}
.tw-policy-note strong{color:var(--color-headline)}

.tw-policy-faq-item{
  margin-bottom:28px;
  padding-bottom:28px;
  border-bottom:1px solid var(--color-divider);
}
.tw-policy-faq-item:last-child{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:none;
}
.tw-policy-faq-item h2{
  margin-top:0;
  margin-bottom:10px;
  font-size:1.15rem;
}

.tw-policy-aside{
  position:sticky;
  top:24px;
}
.tw-policy-card{
  background:#fff;
  border:1.5px solid var(--color-divider);
  border-radius:var(--radius-card);
  padding:22px 20px;
  margin-bottom:16px;
}
.tw-policy-card-title{
  font-family:var(--font-display);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--color-primary);
  margin-bottom:14px;
}
.tw-policy-card ul li{
  margin-bottom:8px;
  font-size:0.88rem;
}
.tw-policy-card ul li::before{
  width:5px;
  height:5px;
  top:0.5em;
}
.tw-policy-card a{font-weight:500}
.tw-policy-card p{
  font-size:0.88rem;
  line-height:1.6;
  margin-bottom:14px;
  opacity:0.85;
}
.tw-policy-card p:last-child{margin-bottom:0}

.tw-policy-contact-list li{margin-bottom:12px}
.tw-policy-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px;
}
.tw-policy-actions .tw-btn{padding:12px 20px;font-size:0.88rem}

.tw-policy-steps{
  display:grid;
  gap:16px;
  margin:24px 0 32px;
}
@media(min-width:640px){
  .tw-policy-steps--4{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(min-width:900px){
  .tw-policy-steps--4{
    grid-template-columns:repeat(4,1fr);
  }
}
.tw-policy-step{
  background:#fff;
  border:1.5px solid var(--color-divider);
  border-radius:var(--radius-card);
  padding:20px 18px;
  text-align:center;
}
.tw-policy-step-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-bottom:12px;
  border-radius:50%;
  background:var(--color-primary);
  color:#fff;
  font-family:var(--font-display);
  font-weight:700;
  font-size:0.9rem;
}
.tw-policy-step p{
  margin:0;
  font-size:0.85rem;
  line-height:1.55;
  opacity:0.85;
}
