/*
Theme Name: Sudarshan Cars 2026
Theme URI: https://www.sudarshancars.com/
Author: Sudarshan Cars
Author URI: https://www.sudarshancars.com/
Description: 2026 redesign of the Sudarshan Cars brand theme — light-premium UI on the official design system (Sudarshan red, charcoal, Cormorant Garamond + Lato). Hand-coded, fast, accessible.
Version: 2.0.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: sudarshan-cars
*/

/* ================================================================
   1. Design tokens
   ================================================================ */
:root{
  --red:#C0272D; --red-dark:#9B1C21; --red-deeper:#7A1419;
  --red-light:#E8474D; --red-pale:#FBEEEE; --red-glow:rgba(192,39,45,.16);
  --charcoal:#23262B; --charcoal-soft:#3A3E45; --ink:#15171A;
  --gold:#C4941A; --gold-pale:#FEF5D4;
  --g900:#1A1A1A; --g700:#3D4046; --g600:#555962; --g500:#6E727B;
  --g400:#8C909A; --g300:#B3B7BF; --g200:#D6D9DE; --g100:#E9EBEF;
  --g50:#F4F5F7; --g25:#FAFAFB; --white:#FFFFFF;
  --success:#1E7E4B; --info:#1D5FA6; --warning:#B45309; --wa:#25D366;

  --fg:var(--charcoal); --fg-2:var(--g600); --fg-3:var(--g400);
  --bg:var(--white); --bg-soft:var(--g25); --bg-section:var(--g50);
  --line:var(--g100); --line-strong:var(--g200);

  --font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-body:'Lato',system-ui,-apple-system,'Segoe UI',sans-serif;

  --container:1240px; --gutter:clamp(20px,4vw,36px);
  --section-py:clamp(64px,9vw,104px);

  --r-xs:6px; --r-sm:10px; --r-md:14px; --r-lg:20px; --r-xl:28px; --r-full:9999px;

  --sh-xs:0 1px 2px rgba(21,23,26,.05);
  --sh-sm:0 2px 8px rgba(21,23,26,.06);
  --sh-card:0 2px 6px rgba(21,23,26,.04), 0 10px 28px rgba(21,23,26,.07);
  --sh-md:0 4px 14px rgba(21,23,26,.08), 0 16px 40px rgba(21,23,26,.10);
  --sh-pop:0 12px 40px rgba(21,23,26,.16), 0 3px 10px rgba(21,23,26,.08);
  --sh-red:0 10px 28px rgba(192,39,45,.32);

  --focus:0 0 0 3px rgba(192,39,45,.30);
  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:160ms var(--ease); --t-base:280ms var(--ease); --t-slow:550ms var(--ease);
}

/* ================================================================
   2. Base
   ================================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{margin:0; background:var(--bg); color:var(--fg-2);
  font-family:var(--font-body); font-size:16px; line-height:1.75;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
img{max-width:100%; height:auto; display:block;}
h1,h2,h3{font-family:var(--font-display); color:var(--fg); margin:0; font-weight:500; line-height:1.15;}
h1{font-size:clamp(38px,5.2vw,60px); letter-spacing:-.015em;}
h2{font-size:clamp(30px,3.6vw,42px); letter-spacing:-.01em;}
h3{font-size:clamp(21px,2.2vw,26px);}
h4{font-family:var(--font-body); font-weight:700; font-size:18px; color:var(--fg); margin:0;}
p{margin:0 0 1rem;}
a{color:var(--red); text-decoration:none; transition:color var(--t-fast);}
a:hover{color:var(--red-dark);}
:focus-visible{outline:none; box-shadow:var(--focus); border-radius:4px;}
::selection{background:var(--red); color:#fff;}

.skip-link{position:absolute; left:-9999px; top:0; z-index:9999; background:var(--charcoal);
  color:#fff; padding:10px 18px; border-radius:0 0 var(--r-sm) 0; font-size:14px; font-weight:700;}
.skip-link:focus{left:0; color:#fff;}

.inner{max-width:var(--container); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter);}
.section{padding-top:var(--section-py); padding-bottom:var(--section-py);}
.bg-section{background:var(--bg-section);}
.bg-soft{background:var(--bg-soft);}

.overline{font-family:var(--font-body); font-size:11px; font-weight:900;
  letter-spacing:.22em; text-transform:uppercase; color:var(--red); margin-bottom:12px;
  display:flex; align-items:center; gap:10px;}
.overline::before{content:""; width:26px; height:2px; background:var(--red); border-radius:2px;}
.overline--center{justify-content:center;}
.overline--center::after{content:""; width:26px; height:2px; background:var(--red); border-radius:2px;}
.overline--bare::before,.overline--bare::after{display:none;}

.sec-head{margin-bottom:clamp(32px,4.5vw,52px); max-width:720px;}
.sec-head.center{text-align:center; margin-left:auto; margin-right:auto;}
.sec-head.center .overline{justify-content:center;}
.sec-head.center .overline::after{content:""; width:26px; height:2px; background:var(--red); border-radius:2px;}
.sec-head h2{margin-bottom:14px;}
.sec-head .lead{font-size:17px; line-height:1.75; color:var(--fg-2); margin:0;}

.sec-bar{display:flex; justify-content:space-between; align-items:flex-end; gap:28px;
  flex-wrap:wrap; margin-bottom:clamp(30px,4vw,46px);}
.sec-bar .sec-head{margin-bottom:0;}

/* ================================================================
   3. Buttons
   ================================================================ */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; cursor:pointer;
  font-family:var(--font-body); font-size:13.5px; font-weight:800; letter-spacing:.07em;
  text-transform:uppercase; border-radius:var(--r-full); padding:15px 30px;
  border:2px solid transparent; transition:transform var(--t-fast), box-shadow var(--t-base),
  background var(--t-base), color var(--t-base), border-color var(--t-base); will-change:transform;}
.btn:focus-visible{outline:none; box-shadow:var(--focus);}
.btn:active{transform:translateY(1px) scale(.985);}
.btn .ic{flex:0 0 auto;}

.btn--primary{background:var(--red); color:#fff; border-color:var(--red); box-shadow:0 4px 14px rgba(192,39,45,.25);}
.btn--primary:hover{background:var(--red-dark); border-color:var(--red-dark); color:#fff;
  transform:translateY(-2px); box-shadow:var(--sh-red);}
.btn--dark{background:var(--charcoal); color:#fff; border-color:var(--charcoal);}
.btn--dark:hover{background:var(--ink); color:#fff; transform:translateY(-2px); box-shadow:var(--sh-md);}
.btn--outline{background:transparent; color:var(--red); border-color:var(--red);}
.btn--outline:hover{background:var(--red); color:#fff;}
.btn--ghost{background:transparent; color:var(--charcoal); border-color:var(--line-strong);}
.btn--ghost:hover{border-color:var(--charcoal); color:var(--charcoal);}
.btn--ghost-light{background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.38);
  backdrop-filter:blur(4px);}
.btn--ghost-light:hover{background:#fff; color:var(--charcoal); border-color:#fff;}
.btn--white{background:#fff; color:var(--red); border-color:#fff;}
.btn--white:hover{background:var(--g50); color:var(--red-dark); transform:translateY(-2px); box-shadow:var(--sh-md);}
.btn--wa{background:#fff; color:#128C4B; border-color:#B7E5CB;}
.btn--wa:hover{background:var(--wa); border-color:var(--wa); color:#fff;}
.btn--sm{font-size:11.5px; padding:10px 20px;}
.btn--block{width:100%;}

/* ================================================================
   4. Topbar + header
   ================================================================ */
.topbar{background:var(--ink); color:rgba(255,255,255,.72); font-size:12.5px; font-weight:600;}
.topbar .inner{display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:38px;}
.topbar a{color:rgba(255,255,255,.72); display:inline-flex; align-items:center; gap:7px;}
.topbar a:hover{color:#fff;}
.topbar .ic{color:var(--red-light);}
.topbar__left{display:flex; gap:22px; align-items:center;}
.topbar__right{display:flex; gap:18px; align-items:center;}
.topbar__note{display:inline-flex; align-items:center; gap:7px; color:rgba(255,255,255,.55);}
.topbar__soc{display:inline-flex; gap:4px;}
.topbar__soc a{width:26px; height:26px; border-radius:50%; justify-content:center;}
.topbar__soc a:hover{background:rgba(255,255,255,.1);}

.site-header{position:sticky; top:0; z-index:600; background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line); transition:box-shadow var(--t-base);}
.site-header.is-stuck{box-shadow:0 6px 24px rgba(21,23,26,.08);}
.site-header .bar{max-width:var(--container); margin:0 auto; height:74px;
  padding:0 var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:24px;}

.logo{display:flex; flex-direction:column; line-height:1; flex:0 0 auto;}
.logo .word{font-family:var(--font-display); font-size:26px; font-style:italic; line-height:1.05;}
.logo .word .s{color:var(--charcoal);} .logo .word .c{color:var(--red);}
.logo .since{font-family:var(--font-body); font-size:8.5px; font-weight:900;
  letter-spacing:.2em; text-transform:uppercase; color:var(--g400); margin-top:3px;}

.nav{display:flex; gap:6px; align-items:center;}
.nav > a, .nav__link{font-family:var(--font-body); font-size:13.5px; font-weight:700; letter-spacing:.02em;
  color:var(--charcoal); padding:9px 13px; border-radius:var(--r-full); border:0; background:transparent;
  cursor:pointer; display:inline-flex; align-items:center; gap:5px; transition:background var(--t-fast), color var(--t-fast);}
.nav > a:hover, .nav__link:hover{background:var(--g50); color:var(--red);}
.nav > a.active{color:var(--red); background:var(--red-pale);}
.nav__item{position:relative;}
.nav__item.active .nav__link{color:var(--red);}
.nav__link .ic{transition:transform var(--t-fast); margin-top:1px;}
.nav__item.open .nav__link{background:var(--g50); color:var(--red);}
.nav__item.open .nav__link .ic{transform:rotate(180deg);}

.drop{position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(8px);
  min-width:430px; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--sh-pop); padding:14px; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--t-base), transform var(--t-base), visibility 0s linear .28s; z-index:610;}
.nav__item.open .drop{opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(-50%) translateY(0); transition-delay:0s;}
.drop__grid{display:grid; grid-template-columns:1fr 1fr; gap:6px;}
.drop__card{display:flex; gap:12px; padding:12px; border-radius:var(--r-md); align-items:flex-start; transition:background var(--t-fast);}
.drop__card:hover{background:var(--g50);}
.drop__ic{width:38px; height:38px; flex:0 0 auto; background:var(--red-pale); color:var(--red);
  border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center;}
.drop__t{display:block; font-size:14px; font-weight:800; color:var(--charcoal); line-height:1.3;}
.drop__d{display:block; font-size:12px; color:var(--g500); line-height:1.5; margin-top:3px;}
.drop__all{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:10px;
  padding:11px; border-top:1px solid var(--line); font-size:12.5px; font-weight:800;
  letter-spacing:.05em; text-transform:uppercase; color:var(--red); border-radius:0 0 var(--r-md) var(--r-md);}
.drop__all--static{color:var(--g500); cursor:default;}
.drop--cities{min-width:380px;}
.drop__cities{display:grid; grid-template-columns:repeat(3,1fr); gap:2px;}
.drop__cities a{padding:9px 12px; border-radius:var(--r-sm); font-size:13.5px; font-weight:600; color:var(--g600);}
.drop__cities a:hover{background:var(--g50); color:var(--red);}

.header-right{display:flex; gap:14px; align-items:center; flex:0 0 auto;}
.header-phone{font-family:var(--font-body); font-size:13.5px; font-weight:800; color:var(--charcoal);
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap;}
.header-phone .ic{color:var(--red);}
.header-phone:hover{color:var(--red);}
.header-cta .cta-arrow{transition:transform var(--t-fast);}
.header-cta:hover .cta-arrow{transform:translateX(3px);}
.menu-toggle{display:none; align-items:center; justify-content:center; width:44px; height:44px; padding:0;
  background:transparent; border:1px solid var(--line-strong); border-radius:var(--r-sm);
  cursor:pointer; color:var(--charcoal); transition:border-color var(--t-fast), color var(--t-fast);}
.menu-toggle:hover{border-color:var(--red); color:var(--red);}

/* ================================================================
   5. Hero
   ================================================================ */
.hero{position:relative; min-height:min(86vh,760px); display:flex; align-items:center; overflow:hidden;
  background:var(--ink); isolation:isolate;}
.hero__bg{position:absolute; inset:0; z-index:-2;}
.hero__bg img{width:100%; height:100%; object-fit:cover; object-position:72% center;}
.hero::before{content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(94deg, rgba(13,14,16,.94) 0%, rgba(13,14,16,.82) 34%, rgba(13,14,16,.42) 62%, rgba(13,14,16,.18) 100%);}
.hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:140px; z-index:-1;
  background:linear-gradient(180deg, rgba(13,14,16,0), rgba(13,14,16,.55));}
.hero .inner{position:relative; width:100%; padding-top:clamp(72px,10vw,120px); padding-bottom:clamp(96px,12vw,150px);}
.hero__content{max-width:660px;}
.hero .overline{color:#fff; opacity:.92;}
.hero .overline::before{background:var(--red-light);}
.hero h1{font-style:italic; font-weight:300; font-size:clamp(44px,6.4vw,76px); color:#fff; line-height:1.06; margin-bottom:22px;}
.hero h1 .accent{color:transparent; background:linear-gradient(100deg,#E8474D,#F0856F); -webkit-background-clip:text; background-clip:text; font-style:italic;}
.hero p{font-size:clamp(16px,1.6vw,18.5px); color:rgba(255,255,255,.78); line-height:1.8; max-width:520px; margin-bottom:34px;}
.hero__btns{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:46px;}
.hero__trust{display:flex; gap:clamp(18px,3vw,38px); flex-wrap:wrap; align-items:center;}
.hero__trust .chip{display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.85); font-size:13.5px; font-weight:700;}
.hero__trust .chip .ic{color:var(--red-light);}
.hero__trust .chip b{color:#fff; font-weight:900;}
.hero__scroll{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.5);}
@keyframes heroNudge{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,7px);}}
html.anim .hero__scroll{animation:heroNudge 2.2s ease-in-out infinite;}

/* ================================================================
   6. Stats band + marquee
   ================================================================ */
.stats{background:linear-gradient(120deg,var(--red-deeper),var(--red) 55%,#D6383F); padding:clamp(28px,4vw,40px) 0; position:relative; overflow:hidden;}
.stats::after{content:""; position:absolute; inset:0; background:radial-gradient(620px 200px at 85% 0%, rgba(255,255,255,.14), transparent 60%); pointer-events:none;}
.stats .inner{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; text-align:center; position:relative; z-index:1;}
.stat .num{font-family:var(--font-display); font-size:clamp(34px,4vw,48px); font-weight:600; color:#fff; line-height:1;}
.stat .num sup{font-size:.55em; font-weight:500;}
.stat .lbl{font-family:var(--font-body); font-size:11px; color:rgba(255,255,255,.82);
  letter-spacing:.12em; text-transform:uppercase; font-weight:700; margin-top:7px;}

.brands{padding:30px 0; border-bottom:1px solid var(--line); background:#fff;}
.brands .inner{display:flex; align-items:center; gap:28px;}
.brands .lbl{flex:0 0 auto; font-size:10px; font-weight:900; letter-spacing:.18em;
  text-transform:uppercase; color:var(--g400);}
.marquee{flex:1; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee__track{display:flex; gap:54px; width:max-content; align-items:center;}
html.anim .marquee__track{animation:marquee 30s linear infinite;}
.marquee:hover .marquee__track{animation-play-state:paused;}
.marquee__track span{font-family:var(--font-display); font-size:19px; color:var(--g400); font-weight:500; white-space:nowrap;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* ================================================================
   7. Cards — services, fleet, testimonials
   ================================================================ */
.grid{display:grid; gap:24px;}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--2{grid-template-columns:repeat(2,1fr);}

.svc-card{position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:380px;
  display:flex; align-items:flex-end; background:var(--charcoal); box-shadow:var(--sh-card);
  transition:transform var(--t-base), box-shadow var(--t-base);}
.svc-card:hover{transform:translateY(-6px); box-shadow:var(--sh-md);}
.svc-card__img{position:absolute; inset:0;}
.svc-card__img img{width:100%; height:100%; object-fit:cover; transition:transform var(--t-slow);}
.svc-card:hover .svc-card__img img{transform:scale(1.06);}
.svc-card::before{content:""; position:absolute; inset:0;
  background:linear-gradient(185deg, rgba(13,14,16,.05) 30%, rgba(13,14,16,.62) 68%, rgba(13,14,16,.88) 100%); z-index:1;}
.svc-card__body{position:relative; z-index:2; padding:26px; color:#fff; width:100%;}
.svc-card__ic{width:44px; height:44px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(6px); color:#fff; border-radius:var(--r-sm); display:flex; align-items:center;
  justify-content:center; margin-bottom:14px;}
.svc-card h3{color:#fff; font-size:24px; margin-bottom:8px;}
.svc-card p{font-family:var(--font-body); font-size:13.5px; color:rgba(255,255,255,.78); line-height:1.65; margin:0 0 14px;}
.svc-card .go{display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; color:#fff;}
.svc-card .go .ic{transition:transform var(--t-fast);}
.svc-card:hover .go .ic{transform:translateX(4px);}

/* Fleet rail (home) + fleet cards */
.rail-wrap{position:relative;}
.rail{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(272px,1fr); gap:22px;
  overflow-x:auto; scroll-snap-type:x mandatory; padding:6px 6px 22px; margin:-6px -6px 0;
  scrollbar-width:none;}
.rail::-webkit-scrollbar{display:none;}
.rail > *{scroll-snap-align:start;}
.rail-nav{display:flex; gap:10px;}
.rail-btn{width:46px; height:46px; border-radius:50%; border:1px solid var(--line-strong); background:#fff;
  color:var(--charcoal); cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
  transition:all var(--t-fast); box-shadow:var(--sh-xs);}
.rail-btn:hover{background:var(--red); border-color:var(--red); color:#fff; box-shadow:var(--sh-red);}
.rail-btn:disabled{opacity:.35; pointer-events:none;}

.car{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--sh-sm); display:flex; flex-direction:column;
  transition:box-shadow var(--t-base), transform var(--t-base), border-color var(--t-base);}
.car:hover{box-shadow:var(--sh-md); transform:translateY(-5px); border-color:var(--line-strong);}
.car__img{aspect-ratio:16/10; overflow:hidden; background:linear-gradient(135deg,var(--g100),var(--g200));
  display:flex; align-items:center; justify-content:center; position:relative;}
.car__img img{width:100%; height:100%; object-fit:cover; transition:transform var(--t-slow);}
.car:hover .car__img img{transform:scale(1.05);}
.car__img .ic{color:var(--g300);}
.car__body{padding:18px 20px 20px; flex:1; display:flex; flex-direction:column; gap:10px;}
.tier{align-self:flex-start; padding:4px 11px; border-radius:var(--r-full); font-size:10px; font-weight:900;
  letter-spacing:.08em; text-transform:uppercase; display:inline-flex; align-items:center; gap:5px;}
.tier--economy{background:var(--g50); color:var(--g600); border:1px solid var(--g200);}
.tier--mid{background:#EBF2FB; color:var(--info); border:1px solid #CCDEF2;}
.tier--suv{background:#EAF5EE; color:var(--success); border:1px solid #CBE7D6;}
.tier--luxury{background:var(--red-pale); color:var(--red); border:1px solid #F2CFD0;}
.tier--electric{background:#E8F5EE; color:var(--success); border:1px solid #CBE7D6;}
.tier--van{background:#FEF3E2; color:var(--warning); border:1px solid #F4DDB8;}
.car__name{font-family:var(--font-display); font-size:22px; font-weight:600; color:var(--charcoal); line-height:1.2;}
.car__specs{display:flex; gap:14px; flex-wrap:wrap;}
.car__specs span{font-size:12.5px; font-weight:600; color:var(--g500); display:inline-flex; align-items:center; gap:5px;}
.car__cta{display:flex; gap:8px; margin-top:auto; padding-top:6px;}
.car__cta .btn{flex:1; padding:11px 10px; font-size:11px;}

.tcard{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:28px;
  box-shadow:var(--sh-sm); display:flex; flex-direction:column; gap:14px; position:relative;}
.tcard .quote-ic{position:absolute; top:22px; right:24px; color:var(--red-pale);}
.tcard .stars{color:#E8A33D; font-size:15px; letter-spacing:3px;}
.tcard p{font-size:14.5px; color:var(--g600); line-height:1.8; font-style:italic; flex:1; margin:0;}
.tcard__who{display:flex; align-items:center; gap:12px;}
.tcard__avatar{width:42px; height:42px; border-radius:50%; background:var(--red-pale); color:var(--red);
  font-weight:900; font-size:15px; display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
.tcard .who{font-size:14px; font-weight:800; color:var(--charcoal);}
.tcard .role{font-size:12px; color:var(--g400);}

.rating-pill{display:inline-flex; align-items:center; gap:9px; background:#fff; border:1px solid var(--line);
  border-radius:var(--r-full); box-shadow:var(--sh-xs); padding:9px 18px; font-size:13px; font-weight:700; color:var(--g600);}
.rating-pill .stars{color:#E8A33D; letter-spacing:2px; font-size:14px;}
.rating-pill b{color:var(--charcoal);}

/* ================================================================
   8. Why-us split, steps, cities, FAQ
   ================================================================ */
.split{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,72px); align-items:center;}
.split__media{position:relative; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-md);}
.split__media img{width:100%; height:100%; object-fit:cover; transition:transform var(--t-slow);}
.split__media:hover img{transform:scale(1.03);}
.split__media--stack{display:flex; flex-direction:column; gap:18px; border-radius:0; box-shadow:none; overflow:visible;}
.split__media--stack > div{border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-md);}
.media-badge{position:absolute; left:20px; bottom:20px; background:rgba(255,255,255,.93); backdrop-filter:blur(8px);
  border-radius:var(--r-md); box-shadow:var(--sh-md); padding:14px 18px; display:flex; gap:12px; align-items:center;}
.media-badge .ic{color:var(--red);}
.media-badge .k{font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:var(--g500);}
.media-badge .v{font-size:15px; font-weight:900; color:var(--charcoal); line-height:1.2;}

.checks{display:grid; grid-template-columns:1fr 1fr; gap:12px 22px; margin:26px 0 30px;}
.checks .row{display:flex; align-items:flex-start; gap:11px; font-size:14.5px; font-weight:600; color:var(--charcoal); line-height:1.5;}
.checks .row .ic{color:var(--success); margin-top:3px; flex:0 0 auto; background:#EAF5EE; border-radius:50%; padding:3px; width:21px; height:21px;}

.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:step;}
.step{position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:30px 26px 26px; box-shadow:var(--sh-sm); transition:transform var(--t-base), box-shadow var(--t-base);}
.step:hover{transform:translateY(-4px); box-shadow:var(--sh-card);}
.step::before{counter-increment:step; content:"0" counter(step);
  font-family:var(--font-display); font-size:54px; font-weight:600; line-height:1;
  color:transparent; -webkit-text-stroke:1.4px var(--g300); display:block; margin-bottom:16px;}
.step:hover::before{-webkit-text-stroke-color:var(--red);}
.step__ic{position:absolute; top:26px; right:24px; width:42px; height:42px; border-radius:var(--r-sm);
  background:var(--red-pale); color:var(--red); display:flex; align-items:center; justify-content:center;}
.step h3{font-size:22px; margin-bottom:8px;}
.step p{font-size:14px; line-height:1.7; color:var(--g500); margin:0;}

.cities-cloud{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:980px; margin:0 auto;}
.city-chip{display:inline-flex; align-items:center; gap:8px; padding:11px 20px; background:#fff;
  border:1px solid var(--line); border-radius:var(--r-full); font-size:14px; font-weight:700; color:var(--g600);
  box-shadow:var(--sh-xs); transition:all var(--t-fast);}
.city-chip .ic{color:var(--g300); transition:color var(--t-fast);}
.city-chip:hover{border-color:var(--red); color:var(--red); transform:translateY(-2px); box-shadow:var(--sh-sm);}
.city-chip:hover .ic{color:var(--red);}
.city-chip--more{background:var(--charcoal); border-color:var(--charcoal); color:#fff;}
.city-chip--more:hover{background:var(--ink); color:#fff;}

.faq{max-width:840px; margin:0 auto;}
.faq details{background:#fff; border:1px solid var(--line); border-radius:var(--r-md); margin-bottom:12px;
  overflow:hidden; transition:box-shadow var(--t-base), border-color var(--t-base);}
.faq details[open]{box-shadow:var(--sh-card); border-color:var(--line-strong);}
.faq summary{list-style:none; cursor:pointer; padding:20px 24px; font-family:var(--font-body);
  font-weight:800; font-size:15.5px; color:var(--charcoal); display:flex; justify-content:space-between;
  align-items:center; gap:16px; transition:color var(--t-fast);}
.faq summary:hover{color:var(--red);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .ind{flex:0 0 auto; width:28px; height:28px; border-radius:50%; border:1.5px solid var(--line-strong);
  display:inline-flex; align-items:center; justify-content:center; color:var(--g500);
  transition:all var(--t-base); position:relative;}
.faq summary .ind::before{content:"+"; font-size:18px; font-weight:400; line-height:1;}
.faq details[open] summary .ind{background:var(--red); border-color:var(--red); color:#fff; transform:rotate(45deg);}
.faq .ans{padding:0 24px 22px; font-size:15px; color:var(--fg-2); line-height:1.85;}

/* ================================================================
   9. CTA band, page heroes
   ================================================================ */
.cta-band{position:relative; overflow:hidden; background:linear-gradient(115deg,var(--red-deeper) 0%,var(--red) 55%,#D6383F 100%);
  padding:clamp(64px,8vw,96px) 0; text-align:center;}
.cta-band::before{content:""; position:absolute; inset:0;
  background:radial-gradient(700px 280px at 12% 110%, rgba(255,255,255,.13), transparent 60%),
             radial-gradient(560px 240px at 88% -10%, rgba(0,0,0,.18), transparent 60%);}
.cta-band .inner{position:relative; z-index:1;}
.cta-band h2{font-style:italic; color:#fff; font-size:clamp(30px,4vw,44px); margin-bottom:14px;}
.cta-band p{font-size:15.5px; color:rgba(255,255,255,.82); max-width:480px; margin:0 auto 32px;}
.cta-band__btns{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

.page-hero{position:relative; background:var(--ink); padding:clamp(56px,7vw,84px) 0; overflow:hidden;}
.page-hero::before{content:""; position:absolute; inset:0;
  background:radial-gradient(900px 320px at 80% -40%, rgba(192,39,45,.28), transparent 62%),
             radial-gradient(700px 260px at 8% 130%, rgba(192,39,45,.14), transparent 60%);}
.page-hero .inner{position:relative; z-index:1; text-align:center;}
.page-hero .overline{color:rgba(255,255,255,.9); justify-content:center;}
.page-hero .overline::after{content:""; width:26px; height:2px; background:var(--red-light); border-radius:2px;}
.page-hero .overline::before{background:var(--red-light);}
.page-hero h1{font-style:italic; font-weight:300; font-size:clamp(34px,4.6vw,54px); color:#fff; line-height:1.12; margin:0 auto 14px; max-width:880px;}
.page-hero p{font-size:15.5px; color:rgba(255,255,255,.62); max-width:560px; margin:0 auto;}
.page-hero .crumbs{margin-top:22px;}

.crumbs{font-size:12.5px; font-weight:600; color:var(--g400); display:flex; gap:8px; justify-content:center; flex-wrap:wrap;}
.crumbs a{color:rgba(255,255,255,.65);}
.crumbs a:hover{color:#fff;}
.crumbs span{color:rgba(255,255,255,.45);}
/* Rank Math breadcrumb markup */
.page-hero .rank-math-breadcrumb{margin-top:22px; font-size:12.5px; font-weight:600;}
.page-hero .rank-math-breadcrumb a{color:rgba(255,255,255,.65);}
.page-hero .rank-math-breadcrumb a:hover{color:#fff;}
.page-hero .rank-math-breadcrumb .separator{margin:0 8px; color:rgba(255,255,255,.4);}
.page-hero .rank-math-breadcrumb .last{color:rgba(255,255,255,.85);}

/* ================================================================
   10. Content pages (city/SEO pages) — article + sticky aside
   ================================================================ */
.page-layout{display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:clamp(32px,4.5vw,56px);
  max-width:var(--container); margin:0 auto; padding:clamp(44px,6vw,72px) var(--gutter);}
.page-layout--narrow{grid-template-columns:minmax(0,1fr); max-width:900px;}
.page-aside{position:sticky; top:104px; align-self:start; display:flex; flex-direction:column; gap:18px;}

.book-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--sh-card); padding:26px; display:flex; flex-direction:column; gap:10px;}
.book-card__head{margin-bottom:8px;}
.book-card__head h3{font-size:23px; margin-bottom:6px;}
.book-card__head p{font-size:13px; color:var(--g500); margin:0;}
.book-card__meta{display:flex; flex-direction:column; gap:8px; margin-top:10px; padding-top:14px; border-top:1px dashed var(--line-strong);}
.book-card__meta span{font-size:12.5px; font-weight:600; color:var(--g500); display:inline-flex; gap:8px; align-items:center;}
.book-card__meta .ic{color:var(--red);}

.aside-cities{background:var(--bg-section); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 24px;}
.aside-cities .k{font-size:11px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:var(--g500); margin-bottom:12px;}
.aside-cities a{display:inline-block; font-size:13px; font-weight:700; color:var(--g600);
  background:#fff; border:1px solid var(--line); padding:7px 13px; border-radius:var(--r-full); margin:0 6px 8px 0;}
.aside-cities a:hover{color:var(--red); border-color:var(--red);}

/* Long-form entry typography (Gutenberg content) */
.entry{font-size:16.5px; line-height:1.85; color:var(--fg-2);}
.entry > *{margin-top:0;}
.entry h1,.entry h2,.entry h3,.entry h4{margin:2.1em 0 .65em;}
.entry > h1:first-child,.entry > h2:first-child,.entry > h3:first-child{margin-top:0;}
.entry h2{font-size:clamp(26px,3vw,33px); position:relative; padding-bottom:12px;}
.entry h2::after{content:""; position:absolute; left:0; bottom:0; width:44px; height:2.5px; background:var(--red); border-radius:2px;}
.entry h3{font-size:clamp(21px,2.4vw,25px);}
.entry p{margin:0 0 1.25em;}
.entry a{text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px;}
.entry ul,.entry ol{padding-left:1.4rem; margin:0 0 1.4em;}
.entry li{margin-bottom:.55em;}
.entry li::marker{color:var(--red); font-weight:700;}
.entry img{border-radius:var(--r-lg); margin:1.8rem 0; box-shadow:var(--sh-card);}
.entry blockquote{margin:1.8rem 0; padding:20px 26px; border-left:3px solid var(--red);
  background:var(--bg-section); border-radius:0 var(--r-md) var(--r-md) 0;
  font-family:var(--font-display); font-size:20px; font-style:italic; color:var(--charcoal);}
.entry blockquote p:last-child{margin-bottom:0;}
.entry table{width:100%; border-collapse:separate; border-spacing:0; margin:1.8rem 0; font-size:14.5px;
  border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden;}
.entry th{background:var(--charcoal); color:#fff; text-align:left; padding:13px 16px; font-family:var(--font-body); font-weight:800; font-size:13px; letter-spacing:.03em;}
.entry td{padding:12px 16px; border-top:1px solid var(--line);}
.entry tr:nth-child(even) td{background:var(--bg-soft);}
.entry figure{margin:1.8rem 0;}
.entry figure img{margin:0;}
.entry figcaption{font-size:13px; color:var(--g400); text-align:center; margin-top:10px;}
.entry .wp-block-button__link{background:var(--red); color:#fff; border-radius:var(--r-full);
  padding:13px 28px; font-weight:800; text-decoration:none; font-size:14px;}
.entry .wp-block-button__link:hover{background:var(--red-dark);}
.entry hr{border:0; border-top:1px solid var(--line); margin:2.4rem 0;}
.entry iframe{max-width:100%; border-radius:var(--r-md);}

/* Related cities strip under content pages */
.related-strip{border-top:1px solid var(--line); background:var(--bg-soft);}
.related-strip .inner{padding-top:clamp(40px,5vw,56px); padding-bottom:clamp(40px,5vw,56px);}
.related-strip h2{font-size:clamp(24px,2.8vw,30px); margin-bottom:20px;}
.related-strip .cities-cloud{justify-content:flex-start; margin:0;}

/* ================================================================
   11. Fleet page
   ================================================================ */
.fleet-nav{position:sticky; top:74px; z-index:500; background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px); border-bottom:1px solid var(--line);}
.fleet-nav .inner{display:flex; gap:8px; overflow-x:auto; padding-top:12px; padding-bottom:12px; scrollbar-width:none;}
.fleet-nav .inner::-webkit-scrollbar{display:none;}
.fleet-nav a{flex:0 0 auto; padding:9px 18px; border-radius:var(--r-full); border:1px solid var(--line);
  font-size:12.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--g600);
  transition:all var(--t-fast); background:#fff;}
.fleet-nav a:hover, .fleet-nav a.active{background:var(--red); border-color:var(--red); color:#fff;}
.fleet-group{margin-bottom:clamp(48px,6vw,72px); scroll-margin-top:150px;}
.fleet-group:last-child{margin-bottom:0;}
.group-head{display:flex; align-items:center; gap:16px; margin-bottom:26px;}
.group-head h2{font-size:clamp(26px,3vw,32px); margin:0; white-space:nowrap;}
.group-head .rule{flex:1; height:1px; background:var(--line);}
.group-head .badge{font-family:var(--font-body); font-size:12px; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; color:var(--g400);}

/* ================================================================
   12. About page
   ================================================================ */
.timeline{position:relative; display:flex; flex-direction:column; gap:26px; margin-top:30px; padding-left:30px;}
.timeline::before{content:""; position:absolute; left:7px; top:8px; bottom:8px; width:2px;
  background:linear-gradient(180deg,var(--red),var(--line));}
.timeline .item{position:relative;}
.timeline .item::before{content:""; position:absolute; left:-30px; top:7px; width:16px; height:16px;
  border-radius:50%; background:#fff; border:3.5px solid var(--red); box-shadow:0 0 0 4px var(--red-pale);}
.timeline .yr{font-family:var(--font-display); font-size:22px; font-weight:600; color:var(--red); line-height:1.2;}
.timeline .txt{font-size:14.5px; color:var(--g600); line-height:1.65; margin-top:2px;}

.value-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px 26px;
  box-shadow:var(--sh-sm); transition:transform var(--t-base), box-shadow var(--t-base);}
.value-card:hover{transform:translateY(-4px); box-shadow:var(--sh-card);}
.value-card .ico{width:48px; height:48px; background:var(--red-pale); border-radius:var(--r-sm);
  display:flex; align-items:center; justify-content:center; color:var(--red); margin-bottom:18px;}
.value-card h3{font-size:21px; margin-bottom:8px;}
.value-card p{font-size:14px; color:var(--g500); line-height:1.7; margin:0;}

.team{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:36px 26px;
  text-align:center; box-shadow:var(--sh-sm); transition:transform var(--t-base), box-shadow var(--t-base);}
.team:hover{transform:translateY(-4px); box-shadow:var(--sh-card);}
.team__avatar{width:96px; height:96px; background:var(--g100); border-radius:50%; margin:0 auto 20px;
  overflow:hidden; box-shadow:0 0 0 4px #fff, 0 0 0 5px var(--line-strong);}
.team__avatar img{width:100%; height:100%; object-fit:cover;}
.team__name{font-family:var(--font-display); font-size:24px; font-weight:600; color:var(--charcoal); margin-bottom:4px;}
.team__role{font-size:10.5px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; color:var(--red); margin-bottom:12px;}
.team p{font-size:13.5px; color:var(--g500); line-height:1.7; margin:0;}

/* ================================================================
   13. Contact page
   ================================================================ */
.contact-grid{display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:clamp(28px,4vw,44px);
  max-width:var(--container); margin:0 auto; padding:clamp(44px,6vw,72px) var(--gutter); align-items:start;}
.enquiry{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(26px,4vw,40px); box-shadow:var(--sh-card);}
.enquiry h2{font-size:clamp(26px,3vw,32px); margin-bottom:8px;}
.enquiry .sub{font-size:14.5px; color:var(--g500); margin-bottom:28px;}
.field-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px 20px;}
.field{display:flex; flex-direction:column;}
.field.full{grid-column:1 / -1;}
.field label{font-family:var(--font-body); font-size:11.5px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:var(--charcoal); margin-bottom:7px;}
.field input,.field select,.field textarea{width:100%; font-family:var(--font-body); font-size:15px;
  color:var(--charcoal); background:var(--bg-soft); border:1px solid var(--line);
  border-radius:var(--r-sm); padding:13px 15px; outline:none; transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red); background:#fff; box-shadow:var(--focus);}
.field textarea{height:104px; resize:vertical;}
.enquiry .submit{margin-top:24px; width:100%;}
.enquiry .note{margin-top:14px; font-size:13px; color:var(--g400); text-align:center;}

.info-stack{display:flex; flex-direction:column; gap:14px; position:sticky; top:104px;}
.info-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:18px;
  box-shadow:var(--sh-xs); display:flex; gap:14px; align-items:flex-start;}
.info-card .ico{width:40px; height:40px; background:var(--red-pale); border-radius:var(--r-sm);
  display:flex; align-items:center; justify-content:center; color:var(--red); flex-shrink:0;}
.info-card .k{font-size:10.5px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:var(--g400); margin-bottom:3px;}
.info-card .v{font-size:14px; color:var(--charcoal); line-height:1.55; font-weight:600;}
.info-card .v a{color:var(--charcoal);}
.info-card .v a:hover{color:var(--red);}
.wa-card{background:linear-gradient(115deg,#128C4B,var(--wa)); border-radius:var(--r-md); padding:18px 20px;
  display:flex; gap:14px; align-items:center; color:#fff; box-shadow:0 8px 22px rgba(37,211,102,.3);
  transition:transform var(--t-fast);}
.wa-card:hover{transform:translateY(-2px); color:#fff;}
.wa-card .ic{color:#fff;}
.wa-card .k{font-size:10.5px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.78);}
.wa-card .v{font-size:17px; font-weight:900;}
.hours{background:var(--bg-section); border:1px solid var(--line); border-radius:var(--r-md); padding:20px;}
.hours .k{font-size:11.5px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:var(--g500);
  margin-bottom:12px; display:flex; align-items:center; gap:8px;}
.hours .row{display:flex; justify-content:space-between; font-size:13.5px; color:var(--g600); margin-bottom:6px;}
.hours .row b{color:var(--charcoal); font-weight:800;}
.offices{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.office{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; box-shadow:var(--sh-sm);}
.office h4{font-size:16px; margin-bottom:10px; display:flex; align-items:center; gap:9px;}
.office h4 .ic{color:var(--red);}
.office p{font-size:14px; color:var(--g600); line-height:1.7; margin:0 0 8px;}

/* ================================================================
   14. Booking page
   ================================================================ */
.booking-body{background:var(--bg-section); padding:clamp(36px,5vw,60px) 0 clamp(56px,7vw,84px);}
.booking-body .inner{max-width:1240px;}
.booking-assure{display:flex; gap:clamp(16px,3vw,34px); flex-wrap:wrap; justify-content:center;
  padding:18px var(--gutter) 0; max-width:var(--container); margin:0 auto;}
.booking-assure span{display:inline-flex; gap:9px; align-items:center; font-size:13px; font-weight:700; color:var(--g500);}
.booking-assure .ic{color:var(--success);}

/* ================================================================
   15. Blog
   ================================================================ */
.read-more{display:inline-flex; align-items:center; gap:7px; font-family:var(--font-body);
  font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--red);}
.read-more:hover{color:var(--red-dark);}
.read-more .ic{transition:transform var(--t-fast);}
.read-more:hover .ic{transform:translateX(4px);}

.blog-featured{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(28px,4.5vw,56px); align-items:center;}
.blog-featured__media{border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-md); aspect-ratio:16/10; background:var(--g100); display:block;}
.blog-featured__media img{width:100%; height:100%; object-fit:cover; transition:transform var(--t-slow);}
.blog-featured__media:hover img{transform:scale(1.04);}
.blog-badges{display:flex; align-items:center; gap:14px; margin-bottom:18px;}
.pill{background:var(--red-pale); color:var(--red); font-size:11.5px; font-weight:900; letter-spacing:.06em;
  padding:6px 15px; border-radius:var(--r-full); text-transform:uppercase;}
.readtime{font-size:13px; color:var(--g400); font-weight:700;}
.blog-featured__title{font-size:clamp(30px,3.6vw,44px); line-height:1.12; margin:0 0 16px;}
.blog-featured__title a{color:var(--fg);}
.blog-featured__title a:hover{color:var(--red);}
.blog-featured__excerpt{font-size:15.5px; color:var(--fg-2); line-height:1.8; margin-bottom:22px;}

.bcard{display:flex; flex-direction:column; background:#fff; border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-sm);
  transition:box-shadow var(--t-base), transform var(--t-base);}
.bcard:hover{box-shadow:var(--sh-md); transform:translateY(-4px);}
.bcard__media{display:block; aspect-ratio:16/10; overflow:hidden; background:var(--g100);}
.bcard__media img{width:100%; height:100%; object-fit:cover; transition:transform var(--t-slow);}
.bcard:hover .bcard__media img{transform:scale(1.05);}
.bcard__body{display:flex; flex-direction:column; flex:1; padding:24px 24px 26px;}
.bcard__meta{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;}
.bcard__meta .cat{font-size:11.5px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:var(--red);}
.bcard__meta .date{font-size:12.5px; color:var(--g400); font-weight:600;}
.bcard__title{font-family:var(--font-display); font-size:23px; font-weight:600; line-height:1.22; margin:0 0 10px;}
.bcard__title a{color:var(--fg);}
.bcard__title a:hover{color:var(--red);}
.bcard__excerpt{font-size:14px; color:var(--fg-2); line-height:1.7; margin:0 0 18px;}
.bcard .read-more{margin-top:auto;}

.blog-pagination{margin-top:48px; display:flex; justify-content:center;}
.blog-pagination .nav-links{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.blog-pagination .page-numbers{display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px;
  padding:0 13px; border:1px solid var(--line); border-radius:var(--r-full);
  font-size:13.5px; font-weight:800; color:var(--charcoal); background:#fff; transition:all var(--t-fast);}
.blog-pagination .page-numbers:hover{border-color:var(--red); color:var(--red);}
.blog-pagination .page-numbers.current{background:var(--red); border-color:var(--red); color:#fff;}

/* Single post */
.post-hero{background:var(--ink); position:relative; overflow:hidden; padding:clamp(52px,7vw,80px) 0;}
.post-hero::before{content:""; position:absolute; inset:0;
  background:radial-gradient(900px 320px at 85% -40%, rgba(192,39,45,.25), transparent 60%);}
.post-hero .inner{position:relative; z-index:1; max-width:880px; text-align:center;}
.post-hero .blog-badges{justify-content:center;}
.post-hero .readtime{color:rgba(255,255,255,.6);}
.post-hero h1{font-style:italic; font-weight:300; color:#fff; font-size:clamp(30px,4.2vw,48px); line-height:1.15; margin-bottom:18px;}
.post-hero .meta{font-size:13.5px; color:rgba(255,255,255,.6); font-weight:600;}
.post-figure{max-width:980px; margin:-30px auto 0; padding:0 var(--gutter); position:relative; z-index:2;}
.post-figure img{border-radius:var(--r-xl); box-shadow:var(--sh-md); width:100%; aspect-ratio:21/10; object-fit:cover;}
.post-body{max-width:780px; margin:0 auto; padding:clamp(40px,5vw,60px) var(--gutter) clamp(56px,7vw,80px);}

.post-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:26px 28px; margin-bottom:18px; box-shadow:var(--sh-xs);}
.post-card h2{font-size:25px; margin-bottom:6px;}
.post-card h2 a{color:var(--fg);} .post-card h2 a:hover{color:var(--red);}
.post-card .meta{font-size:12.5px; color:var(--g400); margin-bottom:10px; font-weight:600;}

/* ================================================================
   16. Footer
   ================================================================ */
.site-footer{background:var(--ink); color:#fff; padding:clamp(56px,7vw,80px) 0 32px; position:relative;}
.site-footer::before{content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--red-deeper),var(--red),var(--red-deeper));}
.footer-grid{display:grid; grid-template-columns:1.5fr .8fr 1fr 1fr 1.1fr; gap:clamp(28px,3.5vw,44px); margin-bottom:52px;}
.footer-brand .word{font-family:var(--font-display); font-size:28px; font-style:italic; margin-bottom:6px;}
.footer-brand .word .s{color:#fff;} .footer-brand .word .c{color:var(--red-light);}
.footer-brand .since{font-size:8.5px; font-weight:900; letter-spacing:.2em; text-transform:uppercase; color:var(--g500); margin-bottom:16px;}
.footer-brand p{font-size:13.5px; color:rgba(255,255,255,.5); line-height:1.8; max-width:300px;}
.socials{display:flex; gap:10px; margin-top:22px;}
.socials a{width:36px; height:36px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1);
  border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.65);
  transition:all var(--t-fast);}
.socials a:hover{background:var(--red); border-color:var(--red); color:#fff; transform:translateY(-2px);}
.socials a.wa:hover{background:var(--wa); border-color:var(--wa);}
.col-hdr{font-family:var(--font-body); font-size:11.5px; font-weight:900; letter-spacing:.16em;
  text-transform:uppercase; color:var(--red-light); margin-bottom:18px;}
.foot-links a{display:block; font-size:13.5px; color:rgba(255,255,255,.58); margin-bottom:10px; transition:color var(--t-fast), transform var(--t-fast);}
.foot-links a:hover{color:#fff; transform:translateX(3px);}
.foot-links--2col{display:grid; grid-template-columns:1fr 1fr; column-gap:14px;}
.foot-links--2col a{margin-bottom:9px;}
.contact-row{display:flex; gap:11px; align-items:flex-start; font-size:13.5px; color:rgba(255,255,255,.58); margin-bottom:12px; line-height:1.6;}
.contact-row a{color:rgba(255,255,255,.58);} .contact-row a:hover{color:#fff;}
.contact-row .ic{color:var(--red-light); margin-top:3px; flex-shrink:0;}
.wa-box{margin-top:16px; background:rgba(37,211,102,.1); border:1px solid rgba(37,211,102,.28);
  border-radius:var(--r-md); padding:12px 14px; display:flex; gap:11px; align-items:center; transition:background var(--t-fast);}
.wa-box:hover{background:rgba(37,211,102,.18);}
.wa-box .ic{color:var(--wa);}
.wa-box .k{display:block; font-size:10px; color:rgba(255,255,255,.5); letter-spacing:.08em; text-transform:uppercase; font-weight:800;}
.wa-box .v{display:block; font-size:14.5px; font-weight:800; color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08); padding-top:26px; display:flex;
  justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
.footer-bottom span,.footer-bottom a{font-size:12.5px; color:rgba(255,255,255,.35);}
.footer-bottom a:hover{color:rgba(255,255,255,.7);}
.footer-bottom .links{display:flex; gap:22px;}

.wa-float{position:fixed; right:22px; bottom:22px; z-index:700; width:58px; height:58px; border-radius:50%;
  background:var(--wa); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,.45); transition:transform var(--t-base), box-shadow var(--t-base);}
.wa-float:hover{transform:scale(1.08); color:#fff; box-shadow:0 14px 34px rgba(37,211,102,.55);}

/* ================================================================
   17. Mobile menu sheet
   ================================================================ */
.m-menu{position:fixed; inset:0; z-index:2000; visibility:hidden; pointer-events:none;}
.m-menu::before{content:""; position:absolute; inset:0; background:rgba(10,12,14,.6);
  backdrop-filter:blur(3px); opacity:0; transition:opacity .38s ease;}
.m-menu__inner{position:absolute; top:0; left:0; bottom:0; width:min(88vw,380px);
  background:var(--ink); color:#fff; padding:22px 26px 28px; display:flex; flex-direction:column;
  transform:translateX(-102%); transition:transform .44s var(--ease); overflow-y:auto;
  box-shadow:0 0 70px rgba(0,0,0,.5);}
.m-menu.open{visibility:visible; pointer-events:auto;}
.m-menu.open::before{opacity:1;}
.m-menu.open .m-menu__inner{transform:none;}
.m-menu__head{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px;}
.m-logo img{height:36px; width:auto;}
.m-menu__close{background:transparent; border:1px solid rgba(255,255,255,.25); color:#fff; width:40px; height:40px;
  border-radius:50%; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:all var(--t-base);}
.m-menu__close:hover{background:var(--red); border-color:var(--red);}
.m-menu__nav{display:flex; flex-direction:column;}
.m-menu__nav a, .m-group{font-family:var(--font-display); font-size:27px; font-weight:500; color:#fff; text-align:left;
  padding:12px 0; border:0; border-bottom:1px solid rgba(255,255,255,.08); background:transparent; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:12px; transition:color var(--t-fast);}
.m-menu__nav a:hover, .m-group:hover{color:var(--red-light);}
.m-group .ic{transition:transform var(--t-base); color:rgba(255,255,255,.5);}
.m-group[aria-expanded="true"] .ic{transform:rotate(180deg); color:var(--red-light);}
.m-sub{display:none; padding:6px 0 14px; border-bottom:1px solid rgba(255,255,255,.08);}
.m-sub.open{display:block;}
.m-sub a{font-family:var(--font-body); font-size:15px; font-weight:600; color:rgba(255,255,255,.72);
  border:0; padding:9px 0 9px 16px; display:block;}
.m-sub--cities{display:none; grid-template-columns:1fr 1fr;}
.m-sub--cities.open{display:grid;}
.m-menu__cta{margin-top:26px; width:100%;}
.m-menu__foot{margin-top:auto; padding-top:26px; font-size:12.5px; color:rgba(255,255,255,.5);
  display:flex; flex-direction:column; gap:10px;}
.m-menu__foot a{display:inline-flex; align-items:center; gap:9px; color:rgba(255,255,255,.78); font-weight:700;}
.m-menu__foot a:hover{color:#fff;}
.m-menu__foot a .ic{color:var(--red-light);}
.m-menu__foot span{margin-top:6px; color:rgba(255,255,255,.38);}
body.menu-open{overflow:hidden;}

/* ================================================================
   18. 404 / utility
   ================================================================ */
.error-hero{text-align:center; padding:clamp(72px,11vw,130px) var(--gutter);}
.error-hero .code{font-family:var(--font-display); font-style:italic; font-size:clamp(90px,14vw,160px);
  line-height:1; color:transparent; -webkit-text-stroke:1.5px var(--g300);}
.error-hero h1{font-size:clamp(28px,4vw,40px); margin:10px 0 14px;}
.error-hero p{max-width:440px; margin:0 auto 30px;}
.error-hero .btns{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}

/* ================================================================
   18b. SEO directory strip (injected via Code Snippets at wp_footer)
   ================================================================ */
#sc-seo-links{background:var(--bg-soft); border-top:1px solid var(--line);
  padding:clamp(44px,6vw,64px) var(--gutter);}
#sc-seo-links .sc-seo-inner{max-width:var(--container); margin:0 auto;}
#sc-seo-links .sc-seo-heading{font-size:clamp(22px,2.6vw,28px); margin:0 0 26px;}
#sc-seo-links .sc-seo-grid{display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:34px;}
#sc-seo-links h3{font-family:var(--font-body); font-size:11.5px; font-weight:900;
  letter-spacing:.14em; text-transform:uppercase; color:var(--g500); margin:0 0 14px;}
#sc-seo-links ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:7px 16px;}
#sc-seo-links li{margin:0;}
#sc-seo-links a{font-size:13px; font-weight:600; color:var(--g600);}
#sc-seo-links a:hover{color:var(--red);}
@media(max-width:860px){#sc-seo-links .sc-seo-grid{grid-template-columns:1fr;}}

/* ================================================================
   19. Reveal animations (progressive enhancement)
   ================================================================ */
html.anim [data-reveal]{opacity:0; transform:translateY(30px);
  transition:opacity .75s var(--ease), transform .75s var(--ease);}
html.anim [data-reveal="right"]{transform:translateX(44px);}
html.anim [data-reveal="left"]{transform:translateX(-44px);}
html.anim [data-reveal="zoom"]{transform:scale(.94);}
html.anim [data-reveal].in{opacity:1; transform:none;}
html.anim .reveal-stagger > *{opacity:0; transform:translateY(26px);
  transition:opacity .65s var(--ease), transform .65s var(--ease);}
html.anim .reveal-stagger.in > *{opacity:1; transform:none;}
html.anim .reveal-stagger.in > *:nth-child(1){transition-delay:.04s;}
html.anim .reveal-stagger.in > *:nth-child(2){transition-delay:.12s;}
html.anim .reveal-stagger.in > *:nth-child(3){transition-delay:.2s;}
html.anim .reveal-stagger.in > *:nth-child(4){transition-delay:.28s;}
html.anim .reveal-stagger.in > *:nth-child(5){transition-delay:.36s;}
html.anim .reveal-stagger.in > *:nth-child(6){transition-delay:.44s;}
html.anim .reveal-stagger.in > *:nth-child(7){transition-delay:.52s;}
html.anim .reveal-stagger.in > *:nth-child(8){transition-delay:.6s;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  html.anim [data-reveal], html.anim .reveal-stagger > *{opacity:1 !important; transform:none !important;}
}

/* ================================================================
   20. Responsive
   ================================================================ */
@media(max-width:1100px){
  .grid--4{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr; row-gap:40px;}
  .nav{gap:0;}
}
@media(max-width:960px){
  .nav{display:none;}
  .menu-toggle{display:inline-flex;}
  .header-phone{display:none;}
  .topbar__mail span{display:none;}
  .topbar__note{display:none;}
  .split{grid-template-columns:1fr; gap:34px;}
  .split--rev .split__media{order:-1;}
  .steps{grid-template-columns:1fr;}
  .grid--3{grid-template-columns:repeat(2,1fr);}
  .page-layout{grid-template-columns:1fr;}
  .page-aside{position:static; order:-1; flex-direction:row; flex-wrap:wrap;}
  .page-aside > *{flex:1 1 280px;}
  .contact-grid{grid-template-columns:1fr;}
  .info-stack{position:static;}
  .blog-featured{grid-template-columns:1fr; gap:26px;}
  .blog-featured__media{order:-1;}
  .fleet-nav{top:64px;}
}
@media(max-width:640px){
  .grid--3,.grid--4{grid-template-columns:1fr;}
  .stats .inner{grid-template-columns:repeat(2,1fr); row-gap:26px;}
  .footer-grid{grid-template-columns:1fr; gap:34px;}
  .checks{grid-template-columns:1fr;}
  .offices{grid-template-columns:1fr;}
  .hero{min-height:0;}
  .hero__btns .btn{flex:1 1 100%;}
  .site-header .bar{height:64px;}
  .header-cta{padding:10px 16px;}
  .header-cta .label{font-size:11px;}
  .car__cta{flex-direction:column;}
  .rail{grid-auto-columns:84%;}
  .booking-assure{flex-direction:column; align-items:flex-start; gap:10px;}
  .topbar .inner{justify-content:center;}
  .topbar__right{display:none;}
}

/* ===== PageSpeed LCP fix (added) =====
   Render hero / above-the-fold content immediately so the LCP element
   does not wait for deferred JS to add the .in reveal class.
   Reveal animations elsewhere on the page are unaffected. */
.hero .reveal-stagger > *,
.hero .reveal-stagger.in > *{opacity:1 !important; transform:none !important;}
.hero .reveal-stagger > *{transition:none !important;}

/* ===== PageSpeed LCP fix #2 (added) =====
   The hero background was overridden (via Customizer) to a 1.35MB PNG loaded as a
   CSS background-image, which dominated mobile LCP (~8s on throttled 4G).
   Repoint it to an optimized WebP (~1/15th the size). !important beats the
   non-important Customizer rule regardless of cascade order. */
.hero__bg{background-image:url("https://www.sudarshancars.com/wp-content/uploads/2026/06/mumbai-to-goa-by-road-chauffeur-itinerary.webp") !important;}
