/* ==============================================================
   LEGAL / POLICY PAGES
   privacy, terms, cookie, taxes & fees, service fees, post-ticketing
   fees, consumer health data, refund & cancellation, flight change.
   Brand tokens only (style.css :root). @media rules -> responsive.css
   ============================================================== */

html { scroll-behavior: smooth; }
body { background: var(--bg-light); }

/* ====== WRAPPER + CARD ====== */
.policy-container { margin: 40px auto; padding: 0 15px; }
.policy-card { overflow: hidden; }
.policy-body { padding: 35px; }

/* ====== HEADER BANNER ====== */
.policy-header { background: var(--grad-dark); color: var(--white); padding: 35px; position: relative; }
.policy-header h1 { font-family: var(--font-display); color: var(--white); font-size: clamp(1.75rem, 3.5vw, 2.6rem); line-height: 1.15; margin-bottom: 10px; }
.policy-header p { color: rgba(255, 255, 255, 0.85); }
.policy-eyebrow { display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: var(--white); padding: 6px 14px; border-radius: var(--radius-pill); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; margin-bottom: 16px; }
.header-subtitle { font-size: 1rem; line-height: 1.7; }
.header-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.header-badges span { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.25); padding: 6px 14px; border-radius: var(--radius-pill); font-size: 0.85rem; font-weight: 600; }
.header-plane-icon { font-size: 9rem; color: rgba(255, 255, 255, 0.15); }

/* ====== BODY TYPOGRAPHY ====== */
.policy-body h2 { color: var(--primary); font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 700; line-height: 1.3; margin: 1.6em 0 0.7em; }
.policy-body h3, .policy-body h4, .policy-body h5 { color: var(--primary); font-weight: 700; line-height: 1.4; margin: 1.4em 0 0.6em; }
.policy-body h2 i, .policy-body h3 i, .policy-body h5 i { color: var(--accent); }
.policy-body > :first-child, .policy-body > :first-child > :first-child { margin-top: 0; }
.policy-body p, .policy-body li { color: var(--text); line-height: 1.8; }
.policy-body .text-muted { color: rgba(var(--primary-rgb), 0.8) !important; }
.policy-body ul, .policy-body ol { padding-left: 1.25rem; margin-bottom: 1rem; }
.policy-body li::marker { color: var(--accent); }
.policy-body a { color: var(--accent); font-weight: 600; }
.policy-body a:hover, .policy-body a:focus { text-decoration: underline; }

/* ====== SECTION BOXES + NOTES ====== */
.section-box { background: var(--bg-light); border: 1px solid var(--border); border-left: 4px solid var(--primary); border-radius: var(--radius-sm); padding: 20px 22px; margin-bottom: 20px; }
.section-box h3, .section-box h5 { margin: 0 0 12px; font-size: clamp(1rem, 1.5vw, 1.15rem); }
.section-box > :last-child, .footer-note > :last-child, .warning-note > :last-child, .note-highlight > :last-child { margin-bottom: 0; }
.footer-note { background: rgba(var(--primary-rgb), 0.06); border-left: 4px solid var(--primary); padding: 16px 18px; border-radius: var(--radius-sm); margin: 20px 0; }
.warning-note, .note-highlight { background: rgba(var(--accent-rgb), 0.06); border-left: 4px solid var(--accent); padding: 16px 18px; border-radius: var(--radius-sm); margin: 20px 0; }
.note-highlight { margin: 14px 0 0; font-size: 0.95rem; }
.footer-note i, .warning-note i { color: var(--accent); }
/* admin editor note heading ko right-align kar deta hai */
.footer-note > div[style*="text-align"] { text-align: left !important; margin-bottom: 0.5rem; }

/* ====== TABLE OF CONTENTS ====== */
.policy-toc { background: var(--bg-light); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 22px; margin-bottom: 28px; }
.policy-body .policy-toc h2 { font-size: 1.15rem; margin: 0 0 14px; }
.policy-toc ol { list-style: none; counter-reset: toc; margin: 0; padding: 0; columns: 2; column-gap: 30px; }
.policy-toc li { counter-increment: toc; break-inside: avoid; margin-bottom: 8px; line-height: 1.45; }
.policy-body .policy-toc li a { color: var(--primary); font-weight: 500; font-size: 0.95rem; display: inline-block; }
.policy-toc li a::before { content: counter(toc) ". "; color: var(--accent); font-weight: 700; }
.policy-body .policy-toc li a:hover, .policy-body .policy-toc li a:focus { color: var(--accent); }

/* sticky header ke neeche heading chhup na jaye */
.policy-body [id] { scroll-margin-top: 100px; }

/* ====== FEE TABLES ====== */
.table-scroll { overflow-x: auto; }
.fee-table { width: 100%; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm); border-collapse: separate; border-spacing: 0; overflow: hidden; margin-bottom: 0; }
.fee-table th, .fee-table td { padding: 11px 14px; border-bottom: 1px solid var(--border); font-size: 0.95rem; vertical-align: top; color: var(--text); }
.fee-table thead th { background: var(--primary); color: var(--white); font-weight: 600; white-space: nowrap; }
.fee-table tbody tr:last-child th, .fee-table tbody tr:last-child td { border-bottom: 0; }
.fee-table td.fee-amount { white-space: nowrap; font-weight: 700; color: var(--accent); }
.fee-table td:first-child { font-weight: 600; }
