/*
Theme Name: Metro Luxury NEMT
Description: Custom theme for Metro Luxury Inc. — medical transportation. Matches the original Replit/React design exactly (Home, Services, Fleet). Built for StarBright / LC Media Group.
Author: LC Media Group
Version: 1.0
Text Domain: metro-luxury
*/

:root{
  --ml-primary:#0A2540;      /* navy — matches original --primary: 210 73% 15% */
  --ml-primary-dark:#050d1a;
  --ml-accent:#0ea5e9;       /* sky blue — matches original --accent: 199 89% 48% */
  --ml-accent-2:#0fa2e7;
  --ml-gold:#d4a035;         /* brand gold — used sparingly (widget/CTA accents) */
  --ml-amber:#fbbf24;
  --ml-muted:#64748b;
  --ml-bg-gray:#f9fafb;
  --ml-border:#e5e7eb;
  --ml-radius-lg:1rem;
  --ml-radius-xl:1.5rem;
  --ml-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing:border-box; }
body{
  font-family:var(--ml-font);
  color:var(--ml-primary);
  margin:0;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ text-decoration:none; color:inherit; }
.container{ max-width:1280px; margin:0 auto; padding:0 1.25rem; }
h1,h2,h3,h4{ margin:0; }
#main-content h1, #main-content h2, #main-content h3, #main-content h4{ font-weight:800; }
/* Elementor-built content keeps its own widget styling untouched */
.elementor h1, .elementor h2, .elementor h3, .elementor h4{ font-weight:inherit; margin:revert; }
p{ margin:0; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; top:-100px; left:1rem; z-index:100; background:var(--ml-primary); color:#fff; padding:.6rem 1.2rem; border-radius:999px; font-weight:600; font-size:.9rem; transition:top .2s; }
.skip-link:focus{ top:1rem; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; height:3rem; padding:0 1.75rem; border-radius:999px; font-weight:600; font-size:1rem; border:none; cursor:pointer; transition:all .2s; }
.btn-accent{ background:var(--ml-accent); color:#fff; }
.btn-accent:hover{ background:#0c8fce; }
.btn-outline-amber{ background:rgba(251,191,36,.2); color:#fcd34d; border:1px solid rgba(251,191,36,.4); }
.btn-outline-amber:hover{ background:rgba(251,191,36,.3); }
.btn-white{ background:rgba(255,255,255,.9); color:var(--ml-primary); }
.btn-white:hover{ background:#fff; }

/* ===== NAVBAR ===== */
.ml-navbar{ position:sticky; top:0; z-index:50; width:100%; background:rgba(255,255,255,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--ml-border); }
.ml-navbar .container{ height:5rem; display:flex; align-items:center; justify-content:space-between; }
.ml-navbar .logo img{ height:3.5rem; width:auto; object-fit:contain; }
.ml-nav-links{ display:none; align-items:center; gap:2rem; font-size:.9rem; font-weight:500; color:var(--ml-muted); list-style:none; margin:0; padding:0; }
.ml-nav-links a:hover{ color:var(--ml-primary); }
.ml-nav-links .book-btn{ background:var(--ml-accent); color:#fff; padding:.65rem 1.4rem; border-radius:999px; font-weight:600; }
.ml-mobile-toggle{ display:flex; background:none; border:none; cursor:pointer; padding:.5rem; }
@media (min-width:900px){
  .ml-nav-links{ display:flex; }
  .ml-mobile-toggle{ display:none; }
}
.ml-mobile-drawer{ position:fixed; inset:0; z-index:60; background:#fff; display:none; flex-direction:column; padding:1.5rem; }
.ml-mobile-drawer.open{ display:flex; }
.ml-mobile-drawer a{ padding:1rem 0; font-size:1.1rem; font-weight:600; border-bottom:1px solid var(--ml-border); }

/* ===== FOOTER ===== */
.ml-footer{ color:#fff; padding:5rem 0 2.5rem; background:linear-gradient(160deg,#050d1a 0%,#0a1a35 50%,#060f20 100%); }
.ml-footer .footer-grid{ display:grid; grid-template-columns:1fr; gap:3rem; margin-bottom:4rem; }
@media (min-width:768px){ .ml-footer .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .ml-footer .footer-grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; } }
.ml-footer h4{ font-size:1.1rem; margin-bottom:1.5rem; }
.ml-footer .footer-tagline{ color:#bfdbfe; max-width:24rem; margin-bottom:1.5rem; }
.ml-footer ul{ list-style:none; margin:0; padding:0; }
.ml-footer li{ margin-bottom:1rem; color:#bfdbfe; }
.ml-footer a:hover{ color:#fff; }
.ml-footer .social-row{ display:flex; gap:1rem; }
.ml-footer .social-row a{ width:2.5rem; height:2.5rem; border-radius:999px; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; }
.ml-footer .social-row a:hover{ background:var(--ml-accent); }
.ml-footer .contact-item{ display:flex; align-items:center; gap:.75rem; }
.ml-footer .footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:2rem; display:flex; flex-direction:column; gap:1rem; align-items:center; justify-content:space-between; color:rgba(191,219,254,.6); font-size:.95rem; }
@media (min-width:768px){ .ml-footer .footer-bottom{ flex-direction:row; } }
.ml-footer .footer-bottom-links{ display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; }
.ml-footer .footer-credit{ font-size:.75rem; color:rgba(191,219,254,.4); margin-top:.25rem; }

/* ===== HOME HERO ===== */
.ml-hero{ position:relative; min-height:calc(100vh - 5rem); overflow:hidden; }
.ml-hero img.hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.ml-hero .scrim{ position:absolute; inset:0; background:linear-gradient(to top right, rgba(5,13,26,.82) 0%, rgba(5,13,26,.45) 38%, transparent 68%); }
.ml-hero .hero-content{ position:absolute; inset-inline:0; bottom:0; padding:2.5rem 1.5rem; max-width:42rem; }
@media (min-width:768px){ .ml-hero .hero-content{ padding:4rem; } }
.ml-hero .badge{ display:inline-flex; align-items:center; gap:.5rem; padding:.35rem .9rem; border-radius:999px; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.3); backdrop-filter:blur(4px); color:#fff; font-size:.9rem; font-weight:500; margin-bottom:1rem; }
.ml-hero .hero-subtitle{ color:rgba(255,255,255,.75); font-weight:300; font-size:1.5rem; margin-bottom:.25rem; }
.ml-hero h1{ font-size:2.5rem; color:#fff; line-height:1; letter-spacing:-.02em; margin-bottom:1.5rem; }
@media (min-width:768px){ .ml-hero h1{ font-size:5rem; } }
@media (min-width:1024px){ .ml-hero h1{ font-size:6rem; } }
.ml-hero .hero-actions{ display:flex; flex-wrap:wrap; gap:.75rem; }
.ml-hero .driver-pill{ display:none; position:absolute; bottom:3rem; right:2rem; }
@media (min-width:768px){ .ml-hero .driver-pill{ display:inline-flex; } }
.driver-pill a{ display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.9); color:var(--ml-primary); font-weight:600; padding:.75rem 1.25rem; border-radius:999px; box-shadow:0 10px 25px rgba(0,0,0,.15); }

/* ===== SECTIONS ===== */
.section{ padding:5rem 0; }
.section-gray{ background:var(--ml-bg-gray); }
.section-navy{ background:var(--ml-primary); color:#fff; }
.section-header{ text-align:center; max-width:42rem; margin:0 auto 3.5rem; }
.section-header h2{ font-size:1.9rem; color:var(--ml-primary); margin-bottom:1rem; }
.section-navy .section-header h2{ color:#fff; }
.section-header p{ font-size:1.1rem; color:var(--ml-muted); }
@media (min-width:768px){ .section-header h2{ font-size:2.3rem; } }

/* How it works cards */
.steps-grid{ display:grid; gap:2rem; max-width:64rem; margin:0 auto; grid-template-columns:1fr; }
@media (min-width:768px){ .steps-grid{ grid-template-columns:repeat(3,1fr); } }
.step-card{ background:#fff; border-radius:var(--ml-radius-xl); padding:2rem; box-shadow:0 4px 16px rgba(0,0,0,.06); border-top:4px solid var(--ml-accent); position:relative; overflow:hidden; }
.step-card .step-num{ position:absolute; top:-1rem; right:-1rem; font-size:6rem; font-weight:900; color:rgba(14,165,233,.1); }
.step-card .step-icon{ width:3.5rem; height:3.5rem; background:var(--ml-accent); border-radius:.75rem; display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; color:#fff; }
.step-card h3{ font-size:1.25rem; color:var(--ml-primary); margin-bottom:.75rem; }
.step-card p{ color:var(--ml-muted); line-height:1.6; }

/* Why choose / feature list */
.why-grid{ display:grid; gap:4rem; align-items:center; grid-template-columns:1fr; }
@media (min-width:1024px){ .why-grid{ grid-template-columns:1fr 1fr; } }
.feature-list{ display:flex; flex-direction:column; gap:1.5rem; margin:2rem 0; }
.feature-item{ display:flex; align-items:center; gap:1rem; }
.feature-item .icon-circle{ width:2.25rem; height:2.25rem; border-radius:999px; background:var(--ml-accent-2); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#fff; }
.feature-item span{ font-weight:500; font-size:1.1rem; }
.why-image{ position:relative; border-radius:var(--ml-radius-xl); overflow:hidden; box-shadow:0 20px 40px rgba(0,0,0,.15); }
.why-image img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.rating-badge{ position:absolute; bottom:1.25rem; right:1.25rem; display:inline-flex; align-items:center; gap:.75rem; background:#fff; border-radius:1rem; padding:.75rem 1.25rem; box-shadow:0 10px 30px rgba(0,0,0,.2); }

/* Services grid (home + services page) */
.services-grid{ display:grid; gap:1.5rem; max-width:72rem; margin:0 auto; grid-template-columns:1fr; }
@media (min-width:640px){ .services-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .services-grid{ grid-template-columns:repeat(3,1fr); } }
.service-card{ background:#fff; border:1px solid var(--ml-border); border-radius:1.5rem; overflow:hidden; transition:all .3s; }
.service-card:hover{ border-color:rgba(14,165,233,.3); box-shadow:0 20px 40px rgba(0,0,0,.1); }
.service-card .img-wrap{ height:15rem; overflow:hidden; }
.service-card img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.service-card:hover img{ transform:scale(1.05); }
.service-card .body{ padding:1.75rem; }
.service-card h3{ font-size:1.25rem; color:var(--ml-primary); margin-bottom:.75rem; }
.service-card p{ color:var(--ml-muted); font-size:.9rem; line-height:1.6; margin-bottom:1.25rem; }
.tag{ display:inline-block; font-size:.75rem; font-weight:600; color:var(--ml-accent); background:rgba(14,165,233,.1); padding:.25rem .75rem; border-radius:999px; margin:0 .4rem .4rem 0; }

/* Dark services section on home (navy bg simple cards) */
.section-navy .services-simple{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media (min-width:640px){ .section-navy .services-simple{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .section-navy .services-simple{ grid-template-columns:repeat(3,1fr); } }
.section-navy .service-simple-item{ display:flex; align-items:center; gap:.9rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:1rem; padding:1.25rem; }
.section-navy .service-simple-item .dot{ width:.6rem; height:.6rem; border-radius:999px; background:var(--ml-accent); flex-shrink:0; }

/* Reviews */
.google-badge{ display:inline-flex; align-items:center; gap:1.25rem; background:#fff; border:2px solid rgba(14,165,233,.2); box-shadow:0 15px 30px rgba(14,165,233,.1); border-radius:1.5rem; padding:1.25rem 2rem; margin-top:1rem; }
.review-track{ display:flex; gap:1.5rem; overflow-x:auto; padding-bottom:1rem; scrollbar-width:none; }
.review-track::-webkit-scrollbar{ display:none; }
.review-card{ flex:0 0 20rem; background:#fff; border:1px solid #f3f4f6; border-radius:1.25rem; padding:1.5rem; box-shadow:0 1px 3px rgba(0,0,0,.05); }
.review-card p{ margin-top:1rem; font-size:.9rem; color:#374151; line-height:1.6; }
.review-card .reviewer{ display:flex; align-items:center; gap:.75rem; margin-top:1.25rem; }
.review-card .avatar{ width:2.5rem; height:2.5rem; border-radius:999px; background:var(--ml-primary); display:flex; align-items:center; justify-content:center; color:#fff; font-size:.75rem; font-weight:700; flex-shrink:0; }
.stars{ color:#facc15; display:flex; gap:2px; }

/* Qualify / Medicaid section */
.qualify-grid{ display:grid; gap:3rem; align-items:center; grid-template-columns:1fr; }
@media (min-width:1024px){ .qualify-grid{ grid-template-columns:1fr 1fr; } }
.qual-item{ display:flex; gap:1rem; background:#fff; border-radius:1rem; padding:1.5rem; box-shadow:0 4px 16px rgba(0,0,0,.06); margin-bottom:1rem; }
.qual-item .num{ width:2.5rem; height:2.5rem; border-radius:999px; background:var(--ml-accent); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* Drive with us / CTA band */
.cta-band{ background:linear-gradient(120deg, var(--ml-primary) 0%, #0d3258 100%); border-radius:1.5rem; padding:3rem; color:#fff; text-align:center; }
.perk-grid{ display:grid; gap:1rem; grid-template-columns:1fr 1fr; max-width:32rem; margin:2rem auto; }
.perk-item{ display:flex; align-items:center; gap:.6rem; font-weight:500; }

/* Generic content page hero (Services / Fleet interior hero) */
.page-hero{ position:relative; padding:7rem 0 5rem; overflow:hidden; }
.page-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero .overlay{ position:absolute; inset:0; background:linear-gradient(to top, rgba(5,13,26,.92) 10%, rgba(5,13,26,.55) 100%); }
.page-hero .inner{ position:relative; z-index:1; text-align:center; max-width:48rem; margin:0 auto; }
.page-hero h1{ font-size:2.5rem; color:#fff; margin-bottom:1rem; }
@media (min-width:768px){ .page-hero h1{ font-size:3.25rem; } }
.page-hero p{ font-size:1.15rem; color:rgba(255,255,255,.85); }

/* Fleet feature list */
.fleet-feature-grid{ display:grid; gap:1.75rem; grid-template-columns:1fr; margin:2.5rem 0; }
@media (min-width:768px){ .fleet-feature-grid{ grid-template-columns:1fr 1fr; } }
.fleet-feature{ display:flex; gap:1rem; }
.fleet-feature .icon-box{ width:3rem; height:3rem; border-radius:.75rem; background:var(--ml-accent); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.fleet-feature h3{ font-size:1.1rem; color:var(--ml-primary); margin-bottom:.4rem; }
.fleet-feature p{ color:var(--ml-muted); font-size:.9rem; line-height:1.6; }

.photo-row{ display:grid; gap:1.5rem; grid-template-columns:1fr; max-width:72rem; margin:0 auto; }
@media (min-width:768px){ .photo-row{ grid-template-columns:repeat(3,1fr); } }
.photo-row .photo{ border-radius:1rem; overflow:hidden; aspect-ratio:4/3; box-shadow:0 8px 20px rgba(0,0,0,.1); }
.photo-row .photo img{ width:100%; height:100%; object-fit:cover; }
.photo-row figcaption{ margin-top:.75rem; }
.photo-row .label{ font-weight:700; color:var(--ml-primary); font-size:.9rem; }
.photo-row .caption{ color:var(--ml-muted); font-size:.8rem; }

.audience-grid{ display:grid; gap:1.5rem; grid-template-columns:1fr; max-width:64rem; margin:0 auto; }
@media (min-width:768px){ .audience-grid{ grid-template-columns:repeat(3,1fr); } }
.audience-card{ background:#fff; border:1px solid var(--ml-border); border-radius:1.25rem; padding:2rem; text-align:center; }
.audience-card h3{ color:var(--ml-primary); font-size:1.1rem; margin:1rem 0 .5rem; }
.audience-card p{ color:var(--ml-muted); font-size:.9rem; }

/* Book/CTA closing band */
.book-band{ text-align:center; max-width:40rem; margin:0 auto; }
.book-band h2{ font-size:2rem; color:var(--ml-primary); margin-bottom:1rem; }
.book-band p{ color:var(--ml-muted); margin-bottom:2rem; font-size:1.1rem; }
.book-band .actions{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; }

/* FAQ accordions (native <details>/<summary> — no JS needed) */
.faq-item{ border:1px solid var(--ml-border); border-radius:.75rem; margin-bottom:.75rem; background:#fff; overflow:hidden; }
.faq-item summary{ cursor:pointer; padding:1.1rem 1.5rem; font-weight:600; color:var(--ml-primary); list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; font-size:1.4rem; color:var(--ml-accent); margin-left:1rem; }
.faq-item[open] summary::after{ content:"\2212"; }
.faq-item[open]{ border-color:rgba(14,165,233,.4); background:#f0f9ff; }
.faq-item p{ padding:0 1.5rem 1.25rem; color:var(--ml-muted); font-size:.9rem; line-height:1.6; }

/* Stats grid (Dialysis page) */
.stats-grid{ display:grid; gap:1.5rem; grid-template-columns:repeat(2,1fr); max-width:64rem; margin:0 auto; }
@media (min-width:768px){ .stats-grid{ grid-template-columns:repeat(4,1fr); } }
.stat-card{ background:#fff; border-radius:1.25rem; padding:2rem 1.5rem; text-align:center; box-shadow:0 4px 16px rgba(0,0,0,.06); }
.stat-num{ font-size:2.25rem; font-weight:800; color:var(--ml-accent); }
.stat-label{ font-weight:700; color:var(--ml-primary); margin:.5rem 0; }
.stat-card p{ font-size:.8rem; color:var(--ml-muted); }

/* Pagination */
.page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:2.5rem; height:2.5rem; padding:0 .75rem; margin:0 .25rem; border-radius:.5rem; background:#fff; border:1px solid var(--ml-border); color:var(--ml-primary); font-weight:600; }
.page-numbers.current{ background:var(--ml-accent); color:#fff; border-color:var(--ml-accent); }

/* Accessibility toolbar */
.a11y-toggle{ position:fixed; bottom:1.5rem; left:1.5rem; z-index:80; width:3.25rem; height:3.25rem; border-radius:999px; background:var(--ml-primary); color:#fff; border:none; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(0,0,0,.25); cursor:pointer; }
.a11y-panel{ position:fixed; bottom:5.25rem; left:1.5rem; z-index:80; background:#fff; border-radius:1rem; box-shadow:0 20px 50px rgba(0,0,0,.25); padding:1.25rem; width:16rem; display:none; }
.a11y-panel.open{ display:block; }
.a11y-panel h4{ font-size:.95rem; margin-bottom:1rem; color:var(--ml-primary); }
.a11y-row{ display:flex; align-items:center; justify-content:space-between; padding:.6rem 0; border-bottom:1px solid var(--ml-border); font-size:.85rem; color:var(--ml-primary); }
.a11y-row:last-child{ border-bottom:none; }
.a11y-switch{ width:2.5rem; height:1.4rem; border-radius:999px; background:#e5e7eb; border:none; position:relative; cursor:pointer; flex-shrink:0; }
.a11y-switch.on{ background:var(--ml-accent); }
.a11y-switch::after{ content:""; position:absolute; top:2px; left:2px; width:1.1rem; height:1.1rem; border-radius:999px; background:#fff; transition:transform .2s; }
.a11y-switch.on::after{ transform:translateX(1.1rem); }

/* Review Modal (StarBright CRM embed) */
#ml-review-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:99999; display:none; align-items:center; justify-content:center; padding:1rem; }
#ml-review-overlay.open{ display:flex; animation:sbrFade .2s ease-out; }
@keyframes sbrFade{ from{opacity:0} to{opacity:1} }
@keyframes sbrSpin{ to{ transform:rotate(360deg); } }
.ml-review-box{ position:relative; width:100%; max-width:720px; max-height:92vh; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 24px 64px rgba(0,0,0,.4); display:flex; flex-direction:column; }
.ml-review-close{ position:absolute; top:8px; right:12px; background:rgba(0,0,0,.06); color:#111; border:0; width:32px; height:32px; border-radius:999px; font-size:22px; line-height:1; cursor:pointer; z-index:2; display:flex; align-items:center; justify-content:center; }
.ml-review-loading{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:#fff; z-index:1; font-family:system-ui,sans-serif; color:#666; font-size:14px; text-align:center; }
.ml-review-spinner{ width:32px; height:32px; border:3px solid #eee; border-top-color:#359fd4; border-radius:50%; margin:0 auto 8px; animation:sbrSpin 1s linear infinite; }
.ml-review-error{ position:absolute; inset:0; display:none; align-items:center; justify-content:center; background:#fff; z-index:1; padding:20px; text-align:center; font-family:system-ui,sans-serif; }
.ml-review-error.show{ display:flex; }
#ml-review-iframe{ width:100%; height:640px; border:0; flex:0 0 640px; }

/* Legal / long-form content pages (Privacy, Terms, blog posts) */
.legal-content h2{ font-size:1.4rem; color:var(--ml-primary); margin:2rem 0 1rem; }
.legal-content p{ color:#374151; line-height:1.75; margin-bottom:1.1rem; }
.legal-content a{ color:var(--ml-accent); text-decoration:underline; }
.legal-content ul, .legal-content ol{ color:#374151; line-height:1.75; margin-bottom:1.1rem; padding-left:1.5rem; }

/* ADA accessibility widget helper classes (kept from original site) */
.a11y-large-text{ font-size:120% !important; }
.a11y-high-contrast *{ filter:contrast(150%) !important; }
.a11y-dyslexia-font *{ font-family:'Arial',sans-serif !important; letter-spacing:.05em !important; word-spacing:.1em !important; }
.a11y-reduce-motion *,.a11y-reduce-motion *::before,.a11y-reduce-motion *::after{ animation:none !important; transition:none !important; }
:focus-visible{ outline:2px solid #2563eb; outline-offset:2px; }
