/*
 * villaGo — Policy Pages Shared Styles
 * Used by cancellation-policy, privacy-policy, payment-policy
 */

.policy-section {
  margin-block-end: 40px;
}

.policy-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-block-end: var(--y-space-m);
}

.policy-icon {
  width: 40px;
  height: 40px;
  background: var(--y-color-primary-subtle);
  border-radius: var(--y-radius-s);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.policy-icon svg {
  width: 20px;
  height: 20px;
  color: var(--y-color-primary);
}

.policy-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-block-end: 12px;
}

.policy-dot {
  width: 6px;
  height: 6px;
  background: var(--y-color-primary);
  border-radius: 50%;
  margin-block-start: 10px;
  flex-shrink: 0;
}

.policy-list p {
  color: var(--y-color-text-muted);
  font-size: var(--y-font-m);
  line-height: 1.9;
}

/* ── Cancellation Timeline ───────────────────────── */
.cancellation-timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--y-space-m);
  margin-block-end: 48px;
}

.timeline-item {
  border-radius: var(--y-radius-m);
  border: 1px solid;
  padding: 20px;
  text-align: center;
}

.timeline-item.green  { background: #f0fdf4; border-color: #bbf7d0; color: var(--y-color-success); }
.timeline-item.blue   { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
.timeline-item.yellow { background: #fefce8; border-color: #fef08a; color: var(--y-color-warning); }
.timeline-item.red    { background: var(--y-color-danger-subtle); border-color: #fecaca; color: var(--y-color-danger); }

.timeline-refund {
  font-size: 2rem;
  font-weight: var(--y-weight-bold);
}

.timeline-label {
  font-size: var(--y-font-s);
  font-weight: var(--y-weight-semibold);
}

.timeline-period {
  font-size: var(--y-font-s);
  opacity: 0.8;
  margin-block-start: var(--y-space-s);
}

/* ── Payment policy grid ─────────────────────────── */
.payment-policy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--y-space-m);
  margin-block-end: var(--y-space-l);
}

.payment-policy-card {
  text-align: center;
}

.payment-policy-icon {
  width: 48px;
  height: 48px;
  background: var(--y-color-primary-subtle);
  border-radius: var(--y-radius-m);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
  margin-block-end: 12px;
}

.payment-policy-icon svg {
  width: 24px;
  height: 24px;
  color: var(--y-color-primary);
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE STYLES
   ═══════════════════════════════════════════════════ */

/* ── Large Desktop (lg) ──────────────────────────── */
@media (max-width: 1200px) { .cancellation-timeline { grid-template-columns: repeat(2, 1fr); } }

/* ── Tablet (md) ─────────────────────────────────── */
@media (max-width: 992px)  { .payment-policy-grid { grid-template-columns: 1fr 1fr; } }

/* ── Mobile Landscape / Large Phone (sm) ─────────── */
@media (max-width: 768px) {
  .cancellation-timeline { grid-template-columns: repeat(2, 1fr); }
}

/* ── Small Phone (xs) ────────────────────────────── */
@media (max-width: 480px) {
  .cancellation-timeline { grid-template-columns: 1fr; }
  .payment-policy-grid   { grid-template-columns: 1fr; }
}
