/* ============================================================
   SouthIndiaLoans.com — Global Stylesheet
   Bootstrap 5 + Bootstrap Icons + Inter
   Mobile-first · Accessible · Performance-focused
   CONTENTS: 01 Props | 02 Base | 03 Utilities | 04 Top Bar
   05 Navbar | 06 Hero | 07 Sections | 08 Loans | 09 Steps
   10 Features | 11 CTA | 12 Blog | 13 FAQ | 14 Contact
   15 Floating CTA | 16 Modal | 17 Disclaimer | 18 Breadcrumbs
   19 Pagination | 20 Footer | 21 WhatsApp | 22 Animations
   23 Breakpoints
   ============================================================ */

/* ---------- 01. CUSTOM PROPERTIES ---------- */
:root {
  --primary: #0d6efd; --primary-dark: #0b5ed7; --primary-light: #e8f0fe;
  --secondary: #198754; --secondary-dark: #146c43; --accent: #ff8c00;
  --dark: #1a1a2e; --text: #333333; --text-light: #666666; --text-muted: #999999;
  --bg-light: #f8f9fa; --bg-section-alt: #f0f4ff; --white: #ffffff; --border: #e5e7eb;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.08); --shadow-md: 0 4px 12px rgba(0,0,0,.08);
  --shadow-lg: 0 8px 30px rgba(0,0,0,.1); --shadow-xl: 0 20px 60px rgba(0,0,0,.12);
  --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 24px;
  --transition: all .25s ease;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ---------- 02. BASE & RESET ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-sans); color: var(--text); background: var(--bg-light); line-height: 1.6; font-size: 1rem; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, h5, h6 { color: var(--dark); font-weight: 700; line-height: 1.25; margin: 0 0 .75rem; }
p { margin: 0 0 1rem; }
a { color: var(--primary); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--primary-dark); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(13,110,253,.45); outline-offset: 2px; border-radius: 4px; }
::selection { background: var(--primary); color: var(--white); }
.container, .container-fluid { --bs-gutter-x: 1.5rem; }
ul { padding-left: 0; list-style: none; }

/* ---------- 03. UTILITY CLASSES ---------- */
.text-primary { color: var(--primary) !important; }
.text-secondary { color: var(--secondary) !important; }
.text-accent { color: var(--accent) !important; }
.text-dark-custom { color: var(--dark) !important; }
.text-light-custom { color: var(--text-light) !important; }
.text-muted-custom { color: var(--text-muted) !important; }
.bg-light-custom { background-color: var(--bg-light) !important; }
.bg-section-alt { background-color: var(--bg-section-alt) !important; }
.py-section { padding: 5rem 0; }
.py-section-sm { padding: 3rem 0; }
.bg-gradient-hero { background: linear-gradient(135deg, var(--dark) 0%, #0d1b3e 60%, #12307c 100%); }
.animate-in { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.animate-in.in-view { opacity: 1; transform: translateY(0); }
.btn { font-weight: 600; border-radius: var(--radius-sm); padding: .75rem 1.5rem; transition: var(--transition); }
.btn-primary { background-color: var(--primary); border-color: var(--primary); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { background-color: var(--primary-dark); border-color: var(--primary-dark); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(13,110,253,.3); }
.btn-secondary { background-color: var(--secondary); border-color: var(--secondary); }
.btn-secondary:hover { background-color: var(--secondary-dark); border-color: var(--secondary-dark); }
.btn-outline-light:hover, .btn-outline-light:focus { color: var(--primary); background-color: var(--white); border-color: var(--white); transform: translateY(-1px); }
.btn-lg { padding: .875rem 1.75rem; font-size: 1.05rem; }

/* ---------- 04. TOP BAR ---------- */
.top-bar { background: var(--dark); color: var(--white); font-size: .8125rem; padding: .5rem 0; }
.top-bar .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .25rem 1.5rem; }
.top-bar a { color: var(--white); display: inline-flex; align-items: center; gap: .35rem; }
.top-bar a i { font-size: .9rem; }
.top-bar a:hover { color: var(--accent); }
.top-bar .top-bar-info { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }

/* ---------- 05. HEADER / NAVBAR ---------- */
.site-header { position: sticky; top: 0; z-index: 1020; background: var(--white); box-shadow: var(--shadow-sm); min-height: 60px; }
.navbar { padding: 0; }
.navbar .navbar-brand { display: flex; align-items: center; gap: .6rem; font-weight: 800; font-size: 1.15rem; color: var(--dark); flex-shrink: 0; }
.brand-icon { width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: var(--white); display: inline-flex; align-items: center; justify-content: center; font-size: 1.15rem; flex-shrink: 0; }
.brand-icon .bi { line-height: 1; }
.navbar .navbar-toggler { border: none; border-radius: var(--radius-sm); padding: .5rem .65rem; font-size: 1.35rem; color: var(--dark); }
.navbar .navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(13,110,253,.25); outline: none; }
.navbar .nav-link { font-weight: 500; font-size: .95rem; color: var(--text); padding: .625rem .875rem; border-radius: var(--radius-sm); transition: var(--transition); }
.navbar .nav-link:hover { color: var(--primary); background: var(--primary-light); }
.navbar .nav-link.active { color: var(--primary); background: var(--primary-light); font-weight: 600; }
.navbar .dropdown-menu { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); padding: .5rem; margin-top: .5rem; }
.navbar .dropdown-item { font-size: .925rem; font-weight: 500; color: var(--text); border-radius: var(--radius-sm); padding: .5rem .875rem; }
.navbar .dropdown-item:hover { color: var(--primary); background: var(--primary-light); }
.navbar .nav-cta { display: inline-flex; align-items: center; gap: .4rem; background: var(--primary); color: var(--white); font-weight: 600; border-radius: var(--radius-sm); padding: .6rem 1.25rem; white-space: nowrap; }
.navbar .nav-cta:hover { background: var(--primary-dark); color: var(--white); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(13,110,253,.3); }

/* ---------- 06. HERO SECTION ---------- */
.hero { background: linear-gradient(135deg, var(--dark) 0%, #0d1b3e 60%, #12307c 100%); color: var(--white); padding: 4.5rem 0 5.5rem; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; top: -40%; right: -15%; width: 60%; height: 120%; background: radial-gradient(circle, rgba(13,110,253,.35) 0%, transparent 70%); pointer-events: none; }
.hero .container { position: relative; z-index: 1; }
.hero .row { align-items: center; }
.hero-badge { display: inline-flex; align-items: center; gap: .5rem; background: rgba(255,255,255,.12); color: var(--white); border: 1px solid rgba(255,255,255,.2); padding: .375rem 1rem; border-radius: 2rem; font-size: .8125rem; font-weight: 500; letter-spacing: .02em; margin-bottom: 1.5rem; backdrop-filter: blur(4px); }
.hero-badge i { color: var(--accent); }
.hero h1 { color: var(--white); font-size: 1.8rem; font-weight: 800; line-height: 1.15; margin-bottom: 1.25rem; }
.hero h1 .text-accent { color: var(--accent); }
.hero p { font-size: 1.05rem; color: rgba(255,255,255,.85); opacity: .92; margin-bottom: 2rem; max-width: 520px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .875rem; margin-bottom: 2.5rem; }
.hero-stats { display: flex; flex-wrap: wrap; gap: 2rem; }
.hero-stat .stat-number { font-size: 1.75rem; font-weight: 800; color: var(--white); line-height: 1.1; display: block; }
.hero-stat .stat-label { font-size: .85rem; color: rgba(255,255,255,.65); }
.hero-card { background: var(--white); color: var(--text); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); padding: 2rem; max-width: 460px; margin: 0 auto; }
.hero-card .card-heading { font-size: 1.15rem; font-weight: 700; color: var(--dark); margin-bottom: .25rem; }
.hero-card .card-sub { font-size: .875rem; color: var(--text-light); margin-bottom: 1.5rem; }

/* ---------- 07. SECTION UTILITIES ---------- */
.section-header { max-width: 650px; margin: 0 auto 3rem; text-align: center; }
.section-tag { display: inline-flex; align-items: center; gap: .35rem; background: var(--primary-light); color: var(--primary); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; padding: .375rem .875rem; border-radius: 2rem; margin-bottom: .875rem; }
.section-title { font-size: 1.5rem; font-weight: 700; color: var(--dark); margin-bottom: .875rem; }
.section-subtitle { color: var(--text-light); max-width: 600px; margin: 0 auto; }
.section-footer { text-align: center; margin-top: 2.5rem; }

/* ---------- 08. LOAN PRODUCTS GRID ---------- */
.loan-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.loan-card { position: relative; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 1.75rem; height: 100%; display: flex; flex-direction: column; transition: var(--transition); overflow: hidden; }
.loan-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: rgba(13,110,253,.25); }
.loan-card .icon-circle { width: 56px; height: 56px; border-radius: var(--radius-md); background: var(--primary-light); color: var(--primary); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; margin-bottom: 1.25rem; }
.loan-card .icon-circle.green { background: #e6f4ec; color: var(--secondary); }
.loan-card .icon-circle.orange { background: #fff1e0; color: var(--accent); }
.loan-card .icon-circle.purple { background: #efeafa; color: #6f42c1; }
.loan-card h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: .5rem; }
.loan-card p { color: var(--text-light); font-size: .9375rem; flex-grow: 1; }
.loan-card .loan-stats { display: flex; align-items: stretch; border-top: 1px solid var(--border); margin: 1.25rem 0; padding-top: 1.25rem; }
.loan-card .loan-stats .stat { flex: 1; text-align: center; padding: 0 .5rem; }
.loan-card .loan-stats .stat + .stat { border-left: 1px solid var(--border); }
.loan-card .loan-stats .stat .value { font-size: 1rem; font-weight: 700; color: var(--dark); display: block; }
.loan-card .loan-stats .stat .key { font-size: .75rem; color: var(--text-muted); }
.loan-card .loan-link { font-weight: 600; font-size: .9375rem; display: inline-flex; align-items: center; gap: .4rem; }
.loan-card .loan-link i { transition: transform .25s ease; }
.loan-card:hover .loan-link i { transform: translateX(4px); }
.badge-popular { position: absolute; top: 1rem; right: 1rem; background: var(--accent); color: var(--white); font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: .3rem .75rem; border-radius: 2rem; box-shadow: var(--shadow-sm); }

/* ---------- 09. HOW IT WORKS ---------- */
.steps { display: grid; grid-template-columns: 1fr; gap: 2.5rem; counter-reset: step; }
.step { text-align: center; position: relative; }
.step-circle { width: 88px; height: 88px; margin: 0 auto 1.25rem; border-radius: 50%; background: var(--primary-light); color: var(--primary); font-size: 1.5rem; font-weight: 700; display: flex; align-items: center; justify-content: center; position: relative; z-index: 1; transition: var(--transition); }
.step:hover .step-circle { background: var(--primary); color: var(--white); transform: scale(1.05); }
.step h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: .5rem; }
.step p { color: var(--text-light); font-size: .9rem; max-width: 260px; margin: 0 auto; }

/* ---------- 10. FEATURES / WHY CHOOSE US ---------- */
.feature-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.feature-item { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 1.75rem 1.5rem; height: 100%; transition: var(--transition); }
.feature-item:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.feature-item .feature-icon { width: 52px; height: 52px; border-radius: 50%; background: var(--primary-light); color: var(--primary); font-size: 1.4rem; display: flex; align-items: center; justify-content: center; margin-bottom: 1.1rem; transition: transform .25s ease; }
.feature-item:hover .feature-icon { transform: scale(1.12); }
.feature-item .feature-icon.green { background: #e6f4ec; color: var(--secondary); }
.feature-item .feature-icon.orange { background: #fff1e0; color: var(--accent); }
.feature-item h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: .5rem; }
.feature-item p { color: var(--text-light); font-size: .9rem; margin-bottom: 0; }

/* ---------- 11. CTA SECTION ---------- */
.cta-section { background: linear-gradient(135deg, var(--dark) 0%, #0d1b3e 100%); color: var(--white); text-align: center; padding: 5rem 0; position: relative; overflow: hidden; }
.cta-section::before { content: ""; position: absolute; top: -50%; left: -10%; width: 60%; height: 200%; background: radial-gradient(circle, rgba(13,110,253,.35) 0%, transparent 70%); pointer-events: none; }
.cta-section .container { position: relative; z-index: 1; max-width: 720px; }
.cta-section h2 { color: var(--white); font-size: 1.75rem; font-weight: 800; margin-bottom: 1rem; }
.cta-section p { color: rgba(255,255,255,.8); margin-bottom: 2rem; }
.cta-section .btn { min-width: 200px; }

/* ---------- 12. BLOG CARDS ---------- */
.blog-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.blog-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); height: 100%; display: flex; flex-direction: column; transition: var(--transition); }
.blog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.blog-card .blog-image { position: relative; aspect-ratio: 16 / 9; overflow: hidden; }
.blog-card .blog-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.blog-card:hover .blog-image img { transform: scale(1.06); }
.blog-card .blog-category { position: absolute; top: .875rem; left: .875rem; background: var(--accent); color: var(--white); font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: .3rem .75rem; border-radius: 2rem; }
.blog-card .blog-body { padding: 1.5rem; display: flex; flex-direction: column; flex-grow: 1; }
.blog-card .blog-title { font-size: 1.1rem; font-weight: 700; color: var(--dark); margin-bottom: .625rem; line-height: 1.35; }
.blog-card .blog-title a { color: var(--dark); }
.blog-card .blog-title a:hover { color: var(--primary); }
.blog-card .blog-excerpt { color: var(--text-light); font-size: .9rem; flex-grow: 1; margin-bottom: 1.25rem; }
.blog-card .blog-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--border); padding-top: 1rem; font-size: .8125rem; color: var(--text-muted); }
.blog-card .blog-meta span { display: inline-flex; align-items: center; gap: .35rem; }

/* ---------- 13. FAQ ACCORDION ---------- */
.accordion { --bs-accordion-border-color: var(--border); --bs-accordion-border-width: 1px; --bs-accordion-border-radius: var(--radius-md); --bs-accordion-inner-border-radius: calc(var(--radius-md) - 1px); --bs-accordion-bg: var(--white); --bs-accordion-btn-color: var(--dark); --bs-accordion-active-bg: var(--primary-light); --bs-accordion-active-color: var(--primary); --bs-accordion-body-padding-y: 1.25rem; --bs-accordion-btn-padding-y: 1.1rem; --bs-accordion-btn-icon-width: 1.1rem; }
.accordion-item { box-shadow: var(--shadow-sm); margin-bottom: .875rem; border-radius: var(--radius-md) !important; overflow: hidden; }
.accordion-button { font-weight: 600; font-size: .95rem; }
.accordion-button:not(.collapsed) { box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 3px rgba(13,110,253,.25); }
.accordion-body { color: var(--text-light); font-size: .925rem; }

/* ---------- 14. CONTACT FORM ---------- */
.contact-form-section { background: var(--white); }
.contact-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 2rem; }
.contact-form .form-label { font-weight: 600; font-size: .875rem; color: var(--dark); }
.contact-form .form-control, .contact-form .form-select { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .75rem 1rem; font-size: .9375rem; color: var(--text); background: var(--white); transition: var(--transition); }
.contact-form .form-control:focus, .contact-form .form-select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(13,110,253,.15); }
.contact-form .form-control::placeholder { color: var(--text-muted); }
.contact-form .btn { margin-top: .5rem; }
.contact-info-list { display: flex; flex-direction: column; gap: 1.25rem; }
.contact-info-item { display: flex; align-items: flex-start; gap: .875rem; }
.contact-info-item .ci-icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: var(--primary-light); color: var(--primary); font-size: 1.1rem; display: flex; align-items: center; justify-content: center; }
.contact-info-item .ci-label { font-size: .75rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; font-weight: 600; display: block; }
.contact-info-item .ci-value { font-size: .95rem; font-weight: 600; color: var(--dark); }

/* ---------- 15. FLOATING CTAs ---------- */
.floating-cta { position: fixed; right: 20px; bottom: 20px; z-index: 9999; display: flex; flex-direction: column; gap: .875rem; }
.floating-cta .cta-btn { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: 1.4rem; box-shadow: var(--shadow-lg); transition: var(--transition); text-decoration: none; }
.floating-cta .cta-btn:hover { color: var(--white); transform: scale(1.1); box-shadow: var(--shadow-xl); }
.floating-cta .cta-whatsapp { background: #25d366; }
.floating-cta .cta-whatsapp:hover { background: #1da851; }
.floating-cta .cta-phone { background: var(--primary); }
.floating-cta .cta-phone:hover { background: var(--primary-dark); }

/* ---------- 16. ENQUIRY FORM MODAL ---------- */
.enquiry-overlay { position: fixed; inset: 0; background: rgba(26,26,46,.6); backdrop-filter: blur(3px); z-index: 1055; display: flex; align-items: center; justify-content: center; padding: 1rem; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease; }
.enquiry-overlay.show { opacity: 1; visibility: visible; }
.enquiry-modal { background: var(--white); border-radius: var(--radius-xl); box-shadow: var(--shadow-xl); max-width: 600px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 2rem 1.75rem; transform: translateY(24px); transition: transform .3s ease; }
.enquiry-overlay.show .enquiry-modal { transform: translateY(0); }
.enquiry-modal .modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.enquiry-modal .modal-title { font-size: 1.35rem; font-weight: 800; color: var(--dark); margin-bottom: .25rem; }
.enquiry-modal .modal-close { background: var(--bg-light); border: none; width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1rem; color: var(--text-light); cursor: pointer; flex-shrink: 0; transition: var(--transition); }
.enquiry-modal .modal-close:hover { background: #fde8e8; color: #dc3545; }
.enquiry-form { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.enquiry-form .form-control, .enquiry-form .form-select { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .75rem 1rem; font-size: .9375rem; transition: var(--transition); }
.enquiry-form .form-control:focus, .enquiry-form .form-select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(13,110,253,.15); }

/* ---------- 17. DISCLAIMER BOX ---------- */
.disclaimer-box { background: #fffdf5; border: 1px solid #f0e6c8; border-left: 4px solid var(--accent); border-radius: var(--radius-sm); padding: 1rem 1.25rem; font-size: .8125rem; color: var(--text-light); line-height: 1.6; }
.disclaimer-box strong { color: var(--dark); display: block; margin-bottom: .25rem; }

/* ---------- 18. BREADCRUMBS ---------- */
.breadcrumb { padding: .625rem 0; margin-bottom: 0; font-size: .85rem; }
.breadcrumb-item a { color: var(--text-muted); }
.breadcrumb-item a:hover { color: var(--primary); }
.breadcrumb-item.active { color: var(--primary); font-weight: 600; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--text-muted); }
.page-head { background: var(--bg-section-alt); border-bottom: 1px solid var(--border); padding: 2.5rem 0 1.25rem; }
.page-head h1 { font-size: 1.75rem; font-weight: 800; }
.page-head p { color: var(--text-light); margin-bottom: 0; }

/* ---------- 19. PAGINATION ---------- */
.pagination-wrap { display: flex; justify-content: center; margin-top: 3rem; }
.pagination { --bs-pagination-color: var(--primary); --bs-pagination-active-bg: var(--primary); --bs-pagination-active-border-color: var(--primary); --bs-pagination-hover-color: var(--primary-dark); --bs-pagination-hover-bg: var(--primary-light); --bs-pagination-border-radius: var(--radius-sm); --bs-pagination-focus-box-shadow: 0 0 0 3px rgba(13,110,253,.2); gap: .35rem; }
.pagination .page-item { border-radius: var(--radius-sm); overflow: hidden; }
.pagination .page-link { font-weight: 500; font-size: .875rem; min-width: 40px; text-align: center; }

/* ---------- 20. FOOTER ---------- */
.site-footer { background: var(--dark); color: rgba(255,255,255,.75); padding: 4rem 0 0; font-size: .9375rem; }
.site-footer h4 { color: var(--white); font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1.25rem; }
.site-footer .footer-about .brand { display: flex; align-items: center; gap: .6rem; font-weight: 800; font-size: 1.1rem; color: var(--white); margin-bottom: 1rem; }
.site-footer .footer-about p { color: rgba(255,255,255,.6); font-size: .875rem; }
.site-footer .footer-links li { margin-bottom: .625rem; }
.site-footer .footer-links a { color: rgba(255,255,255,.55); display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; }
.site-footer .footer-links a i { font-size: .65rem; color: var(--accent); }
.site-footer .footer-links a:hover { color: var(--primary); padding-left: 3px; }
.site-footer .footer-contact li { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: .875rem; font-size: .9rem; color: rgba(255,255,255,.6); }
.site-footer .footer-contact i { color: var(--primary); margin-top: .15rem; }
.site-footer .footer-social { display: flex; gap: .625rem; margin-top: 1.25rem; }
.site-footer .footer-social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); color: rgba(255,255,255,.7); display: inline-flex; align-items: center; justify-content: center; transition: var(--transition); }
.site-footer .footer-social a:hover { background: var(--primary); color: var(--white); transform: translateY(-2px); }
.site-footer .footer-bottom { margin-top: 3rem; border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.2); padding: 1.25rem 0; font-size: .8125rem; color: rgba(255,255,255,.5); }
.site-footer .footer-bottom .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.site-footer .footer-bottom a { color: rgba(255,255,255,.6); }
.site-footer .footer-bottom a:hover { color: var(--primary); }
.site-footer .footer-disclaimer { background: rgba(0,0,0,.28); padding: 1.25rem 0; font-size: .6875rem; line-height: 1.6; color: rgba(255,255,255,.45); }

/* ---------- 21. WHATSAPP BUTTON ---------- */
.btn-whatsapp { background: #25d366; border: none; color: var(--white); font-weight: 600; border-radius: var(--radius-sm); padding: .75rem 1.5rem; display: inline-flex; align-items: center; gap: .5rem; transition: var(--transition); }
.btn-whatsapp:hover, .btn-whatsapp:focus { background: #1da851; color: var(--white); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(37,211,102,.35); }

/* ---------- 22. ANIMATIONS ---------- */
@keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(37,211,102,.45); } 50% { box-shadow: 0 0 0 12px rgba(37,211,102,0); } }
.floating-cta .cta-whatsapp { animation: pulse 2.5s infinite; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .animate-in { opacity: 1; transform: none; }
}

/* ---------- 23. RESPONSIVE BREAKPOINTS ---------- */

/* SM ≥ 576px */
@media (min-width: 576px) {
  .loan-grid { grid-template-columns: repeat(2, 1fr); }
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
  .enquiry-form { grid-template-columns: 1fr 1fr; }
  .enquiry-form .form-full, .enquiry-form .btn { grid-column: 1 / -1; }
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
  .hero h1 { font-size: 2.1rem; }
  .cta-section h2 { font-size: 2rem; }
  .section-title { font-size: 1.75rem; }
  .page-head h1 { font-size: 2rem; }
}

/* MD ≥ 768px */
@media (min-width: 768px) {
  .py-section { padding: 6rem 0; }
  .py-section-sm { padding: 3.5rem 0; }
  .contact-card { padding: 3rem; }
}

/* LG ≥ 992px */
@media (min-width: 992px) {
  .navbar .navbar-collapse { justify-content: flex-end; }
  .navbar .nav-link { padding: .5rem .875rem; }
  .navbar .nav-cta { margin-left: .875rem; }
  .navbar .dropdown-menu { top: 100%; }
  .navbar .dropdown-menu .dropdown-item { padding: .5rem 1rem; }
  .hero { padding: 5.5rem 0 6.5rem; }
  .hero h1 { font-size: 2.8rem; }
  .hero-card { padding: 2.25rem; max-width: 100%; }
  .loan-grid { grid-template-columns: repeat(3, 1fr); }
  .feature-grid { grid-template-columns: repeat(3, 1fr); }
  .steps { grid-template-columns: repeat(4, 1fr); gap: 1rem; }
  .step:not(:last-child)::after { content: ""; position: absolute; top: 44px; left: calc(50% + 56px); width: calc(100% - 112px); height: 2px; background: var(--border); z-index: 0; }
  .step:not(:last-child)::before { content: ""; position: absolute; top: 41px; left: calc(50% + 54px); width: 0; height: 6px; background: var(--primary); z-index: 1; transition: width .4s ease; }
  .step:not(:last-child):hover::before { width: calc(100% - 112px); }
}

/* XL ≥ 1200px */
@media (min-width: 1200px) {
  .feature-grid { grid-template-columns: repeat(4, 1fr); }
  .blog-grid { grid-template-columns: repeat(3, 1fr); }
  .container { max-width: 1140px; }
}

/* < LG — stacked mobile nav + larger touch targets */
@media (max-width: 991.98px) {
  .navbar-collapse { background: var(--white); border-top: 1px solid var(--border); padding: 1rem 0; box-shadow: var(--shadow-md); }
  .navbar-collapse .navbar-nav { gap: .25rem; }
  .navbar .nav-link { font-size: 1rem; padding: .75rem 1rem; }
  .navbar .nav-cta { display: flex; justify-content: center; margin-top: .75rem; }
  .navbar .dropdown-menu { border: none; box-shadow: none; margin-top: 0; padding-left: 1rem; }
}