/* ============================================================
   AHIFAMBI TOURS & TRANSFERS — Design System
   Built by Business Growth Africa
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;0,9..144,800;0,9..144,900;1,9..144,500&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;600&display=swap');

:root{
  /* ---- Brand palette, drawn from the Ahifambi mark ---- */
  --coral:        #E8483D;
  --coral-dark:   #B82E25;
  --coral-light:  #FBC9C3;
  --navy:         #102C52;
  --navy-deep:    #081B33;
  --navy-soft:    #1B3F6E;
  --sand:         #F6F0E6;
  --sand-dark:    #ECE0C9;
  --sky:          #4F86C6;
  --gold:         #D9A441;
  --ink:          #181712;
  --paper:        #FFFDF9;
  --grey-600:     #5B5446;
  --grey-400:     #8A8273;
  --line:         rgba(16,44,82,0.12);
  --line-dark:    rgba(255,255,255,0.14);

  /* ---- Elevation ---- */
  --shadow-sm: 0 2px 8px rgba(8,27,51,0.06);
  --shadow-md: 0 12px 32px rgba(8,27,51,0.10);
  --shadow-lg: 0 28px 64px rgba(8,27,51,0.18);
  --shadow-coral: 0 16px 36px rgba(184,46,37,0.30);

  /* ---- Type scale (fluid) ---- */
  --fs-display: clamp(2.6rem, 1.7rem + 4vw, 5.4rem);
  --fs-h1:      clamp(2.2rem, 1.6rem + 2.6vw, 3.6rem);
  --fs-h2:      clamp(1.8rem, 1.4rem + 1.8vw, 2.7rem);
  --fs-h3:      clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --fs-lede:    clamp(1.05rem, 1rem + 0.3vw, 1.2rem);

  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 22px;
  --max: 1280px;
  --max-narrow: 760px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
::selection{background:var(--coral); color:#fff;}

body{
  margin:0;
  font-family:'Inter',-apple-system,sans-serif;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:'Fraunces',Georgia,serif;
  margin:0;
  letter-spacing:-0.015em;
  color:var(--navy-deep);
  font-weight:600;
}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit; border:none; background:none; cursor:pointer;}
input,select,textarea{font-family:inherit;}

.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
.wrap-narrow{max-width:var(--max-narrow); margin:0 auto; padding:0 32px;}

::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--sand);}
::-webkit-scrollbar-thumb{background:var(--navy-soft); border-radius:10px;}

:focus-visible{outline:3px solid var(--gold); outline-offset:3px; border-radius:2px;}

/* ============== EYEBROW / LABEL ============== */
.eyebrow{
  font-family:'JetBrains Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--coral-dark);
  font-weight:600;
  display:inline-flex; align-items:center; gap:11px;
}
.eyebrow::before{
  content:'';
  width:26px; height:1.5px; background:var(--coral-dark);
  display:inline-block;
}
.eyebrow.on-dark{color:var(--gold);}
.eyebrow.on-dark::before{background:var(--gold);}

/* ============== BUTTONS ============== */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:15px 28px;
  border-radius:999px;
  font-weight:700;
  font-size:14.5px;
  cursor:pointer;
  border:1.5px solid transparent;
  transition:transform .22s cubic-bezier(.2,.9,.3,1.3), box-shadow .25s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
  position:relative;
}
.btn svg{width:16px; height:16px; flex-shrink:0;}
.btn-primary{background:var(--coral); color:#fff; box-shadow:0 6px 18px rgba(184,46,37,0.25);}
.btn-primary:hover{background:var(--coral-dark); transform:translateY(-3px); box-shadow:var(--shadow-coral);}
.btn-outline{background:transparent; color:var(--navy-deep); border-color:var(--line);}
.btn-outline:hover{border-color:var(--navy-deep); transform:translateY(-3px); box-shadow:var(--shadow-sm);}
.btn-ghost-light{background:rgba(255,255,255,0.06); color:#fff; border-color:rgba(255,255,255,0.32); backdrop-filter:blur(6px);}
.btn-ghost-light:hover{background:rgba(255,255,255,0.16); transform:translateY(-3px);}
.btn-navy{background:var(--navy); color:#fff;}
.btn-navy:hover{background:var(--navy-deep); transform:translateY(-3px); box-shadow:0 16px 32px rgba(16,44,82,0.32);}
.btn-wa{background:#25D366; color:#06381c;}
.btn-wa:hover{background:#1ebc59; transform:translateY(-3px); box-shadow:0 16px 32px rgba(37,211,102,0.32);}
.btn-block{width:100%; justify-content:center;}
.btn-lg{padding:18px 34px; font-size:15.5px;}

/* ============== HEADER / NAV ============== */
.site-header{
  position:sticky; top:0; z-index:300;
  background:rgba(246,240,230,0.86);
  backdrop-filter: blur(14px) saturate(160%);
  border-bottom:1px solid var(--line);
  transition:background .3s ease, box-shadow .3s ease;
}
.site-header.scrolled{box-shadow:0 4px 24px rgba(8,27,51,0.08);}
.navbar{
  max-width:var(--max); margin:0 auto; padding:16px 32px;
  display:flex; align-items:center; justify-content:space-between; gap:28px;
}
.brand{display:flex; align-items:center; gap:11px;}
.brand img{height:46px; width:auto;}
.brand .name{font-family:'Fraunces',serif; font-weight:700; font-size:19px; color:var(--navy-deep); line-height:1.1;}
.brand .name small{display:block; font-family:'Inter'; font-weight:600; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--coral-dark); margin-top:3px;}

.nav-links{display:flex; align-items:center; gap:36px; font-size:14.5px; font-weight:600;}
.nav-links a{color:var(--navy); position:relative; padding:6px 0;}
.nav-links a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--coral); transition:width .25s ease;}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-links a.active{color:var(--coral-dark);}

.nav-right{display:flex; align-items:center; gap:18px;}
.nav-phone{font-size:14px; font-weight:700; color:var(--navy-deep); display:flex; flex-direction:column; line-height:1.25;}
.nav-phone small{font-weight:500; color:var(--grey-400); font-size:11px;}

.burger{display:none; width:42px; height:42px; border-radius:50%; align-items:center; justify-content:center; background:var(--navy); flex-shrink:0;}
.burger span, .burger span::before, .burger span::after{content:''; display:block; width:18px; height:2px; background:#fff; position:relative; transition:.25s;}
.burger span::before{position:absolute; top:-6px;}
.burger span::after{position:absolute; top:6px;}
.burger.open span{background:transparent;}
.burger.open span::before{transform:rotate(45deg); top:0;}
.burger.open span::after{transform:rotate(-45deg); top:0;}

.mobile-nav{
  display:none; position:fixed; inset:0; z-index:280; background:var(--navy-deep);
  padding:120px 32px 40px; flex-direction:column; gap:8px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.mobile-nav.open{display:flex; opacity:1; pointer-events:all;}
.mobile-nav a{color:#fff; font-family:'Fraunces',serif; font-size:30px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.12);}
.mobile-nav .btn{margin-top:24px;}

/* ============== PAGE HERO (interior pages) ============== */
.page-hero{
  position:relative; background:var(--navy-deep); color:#fff; overflow:hidden;
  padding:90px 0 76px;
}
.page-hero::before{
  content:''; position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(232,72,61,0.22), transparent 55%),
    radial-gradient(circle at 10% 90%, rgba(79,134,198,0.18), transparent 55%);
}
.page-hero .wrap{position:relative; z-index:2;}
.page-hero h1{color:#fff; font-size:var(--fs-h1);}
.page-hero p{margin-top:18px; max-width:560px; font-size:var(--fs-lede); color:rgba(255,255,255,0.78); line-height:1.65;}
.breadcrumb{font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,0.5); margin-bottom:22px;}
.breadcrumb a{color:var(--gold);}
.breadcrumb a:hover{text-decoration:underline;}

/* ============== HOME HERO ============== */
.hero{
  position:relative; background:var(--navy-deep); color:#fff; overflow:hidden;
  min-height:92vh; display:flex; align-items:flex-end;
}
.hero-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(180deg, rgba(8,27,51,0.30) 0%, rgba(8,27,51,0.55) 40%, rgba(8,27,51,0.97) 94%),
    url('fleet-hero.jpeg');
  background-size:cover; background-position:center 28%;
  animation:slowzoom 22s ease-in-out infinite alternate;
}
@keyframes slowzoom{ from{transform:scale(1);} to{transform:scale(1.07);} }
.hero-content{position:relative; z-index:2; width:100%; padding:150px 32px 76px;}
.hero-inner{max-width:var(--max); margin:0 auto;}
.hero-tag{
  font-family:'JetBrains Mono',monospace; font-size:13px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); margin-bottom:26px; display:inline-flex; align-items:center; gap:12px;
  border:1px solid rgba(217,164,65,0.4); padding:9px 18px; border-radius:999px;
  background:rgba(217,164,65,0.08);
}
.hero-tag .dot{width:7px; height:7px; border-radius:50%; background:var(--coral); animation:blink 1.8s infinite;}
@keyframes blink{ 50%{opacity:0.25;} }
.hero h1{font-size:var(--fs-display); font-weight:700; line-height:0.96; color:#fff; max-width:1000px;}
.hero h1 em{font-style:italic; color:var(--coral); font-weight:500;}
.hero-sub{margin-top:28px; max-width:580px; font-size:var(--fs-lede); line-height:1.65; color:rgba(255,255,255,0.82);}
.hero-actions{margin-top:40px; display:flex; gap:16px; flex-wrap:wrap;}
.hero-stats{margin-top:70px; padding-top:36px; border-top:1px solid rgba(255,255,255,0.16); display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.hero-stats .stat b{font-family:'Fraunces',serif; font-size:36px; font-weight:600; display:block; color:#fff;}
.hero-stats .stat span{font-size:12px; letter-spacing:.05em; color:rgba(255,255,255,0.58); text-transform:uppercase;}
.hero-scroll{position:absolute; right:32px; bottom:34px; z-index:3; display:flex; flex-direction:column; align-items:center; gap:10px; color:rgba(255,255,255,0.5); font-size:11px; letter-spacing:.1em; text-transform:uppercase;}
.hero-scroll .bar{width:1px; height:44px; background:linear-gradient(180deg, var(--coral), transparent); animation:scrolldown 1.8s infinite;}
@keyframes scrolldown{ 0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;} }

/* ============== TRUST STRIP ============== */
.trust-strip{background:var(--sand-dark); border-bottom:1px solid var(--line); padding:20px 0;}
.trust-strip .wrap{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px;}
.trust-item{display:flex; align-items:center; gap:10px; font-size:13.5px; font-weight:600; color:var(--navy);}
.trust-item .ic{color:var(--coral-dark); font-size:16px;}

/* ============== SECTION GENERIC ============== */
section{padding:124px 0;}
.section-head{max-width:660px; margin-bottom:60px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:var(--fs-h2); font-weight:600; margin-top:16px; line-height:1.08;}
.section-head p.lede{margin-top:20px; font-size:var(--fs-lede); line-height:1.68; color:var(--grey-600);}

/* ============== WHY US LEDGER ============== */
.why{background:var(--navy-deep); color:#fff; position:relative;}
.why::before{content:''; position:absolute; inset:0; background:radial-gradient(circle at 90% 10%, rgba(232,72,61,0.15), transparent 50%);}
.why .wrap{position:relative;}
.why .section-head h2{color:#fff;}
.ledger{border-top:1px solid rgba(255,255,255,0.16);}
.ledger-row{display:grid; grid-template-columns:1.5fr 0.8fr 0.8fr; align-items:center; border-bottom:1px solid rgba(255,255,255,0.16); padding:28px 0; gap:20px; transition:background .25s;}
.ledger-row.head{padding-top:0; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,0.3);}
.ledger-row.head span{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,0.5);}
.ledger-row .feat{font-family:'Fraunces',serif; font-size:18.5px; font-weight:500;}
.ledger-row .feat small{display:block; font-family:'Inter'; font-weight:400; font-size:13.5px; color:rgba(255,255,255,0.55); margin-top:5px; line-height:1.5;}
.ledger-row .mark{font-size:21px; text-align:center; font-weight:700;}
.mark.yes{color:var(--coral);}
.mark.maybe{color:rgba(255,255,255,0.3); font-size:14px; font-weight:500;}
.ledger-row.ours{background:rgba(232,72,61,0.09); margin:0 -28px; padding:28px; border-radius:var(--radius-md);}
.ledger-row:hover:not(.head){background:rgba(255,255,255,0.03);}

/* ============== SERVICE CARDS ============== */
.svc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden;}
.svc-card{background:var(--paper); padding:38px 30px; min-height:230px; display:flex; flex-direction:column; justify-content:space-between; transition:background .25s, transform .25s;}
.svc-card:hover{background:#fff; transform:translateY(-4px); box-shadow:var(--shadow-md); position:relative; z-index:2;}
.svc-num{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--coral-dark); letter-spacing:.06em; font-weight:600;}
.svc-card h3{font-size:20px; font-weight:600; margin-top:20px; line-height:1.2;}
.svc-card p{font-size:14px; line-height:1.58; color:var(--grey-600); margin-top:11px;}

.svc-detail{display:grid; grid-template-columns:64px 1fr; gap:24px; padding:42px 0; border-bottom:1px solid var(--line);}
.svc-detail:last-child{border-bottom:none;}
.svc-detail .ic-box{width:64px; height:64px; border-radius:var(--radius-md); background:var(--sand); display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--coral-dark); flex-shrink:0;}
.svc-detail h3{font-size:23px; font-weight:600;}
.svc-detail p{margin-top:10px; font-size:15.5px; line-height:1.7; color:var(--grey-600); max-width:680px;}
.svc-detail .tags{margin-top:16px; display:flex; gap:8px; flex-wrap:wrap;}
.svc-detail .tags span{font-size:12px; font-weight:600; padding:6px 13px; border-radius:999px; background:var(--sand-dark); color:var(--navy);}

/* ============== FLEET ============== */
.fleet-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:20px;}
.fleet-grid .tall{grid-row:span 2;}
.fleet-item{position:relative; overflow:hidden; border-radius:var(--radius-lg); box-shadow:var(--shadow-sm);}
.fleet-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.fleet-item:hover img{transform:scale(1.06);}
.fleet-item .cap{position:absolute; left:0; right:0; bottom:0; padding:26px; background:linear-gradient(0deg, rgba(8,27,51,0.92), transparent 75%); color:#fff;}
.fleet-item .cap b{font-family:'Fraunces',serif; font-size:19px; display:block;}
.fleet-item .cap span{font-size:12.5px; color:rgba(255,255,255,0.75);}
.fleet-item.tall{min-height:580px;}
.fleet-item.short{min-height:280px;}

.fleet-spec-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:60px;}
.fleet-spec-card{border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:#fff; transition:transform .25s, box-shadow .25s;}
.fleet-spec-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg);}
.fleet-spec-card .img{height:220px; overflow:hidden;}
.fleet-spec-card .img img{width:100%; height:100%; object-fit:cover;}
.fleet-spec-card .body{padding:26px;}
.fleet-spec-card h3{font-size:20px;}
.fleet-spec-card .meta{display:flex; gap:14px; margin-top:14px; flex-wrap:wrap;}
.fleet-spec-card .meta span{font-size:12.5px; font-weight:600; color:var(--navy); background:var(--sand); padding:6px 12px; border-radius:999px;}
.fleet-spec-card p{margin-top:14px; font-size:14px; color:var(--grey-600); line-height:1.6;}

/* ============== ABOUT / FOUNDER ============== */
.about-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:70px; align-items:center;}
.about-photo{position:relative;}
.about-photo img{border-radius:var(--radius-lg); width:100%; box-shadow:var(--shadow-md);}
.about-photo .badge{position:absolute; bottom:-24px; right:-24px; background:var(--coral); color:#fff; padding:20px 24px; border-radius:var(--radius-md); font-family:'Fraunces',serif; text-align:center; box-shadow:var(--shadow-coral);}
.about-photo .badge b{font-size:32px; display:block; font-weight:700;}
.about-photo .badge span{font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-family:'Inter'; font-weight:600;}
.about-copy .lede{margin-top:22px; font-size:var(--fs-lede); line-height:1.72; color:#403a2e;}
.about-copy .lede + .lede{margin-top:16px;}
.value-list{margin-top:34px; display:grid; gap:18px;}
.value-item{display:flex; gap:17px; align-items:flex-start;}
.value-item .dot{width:9px; height:9px; border-radius:50%; background:var(--coral); margin-top:9px; flex-shrink:0;}
.value-item b{font-family:'Fraunces',serif; font-size:17px; font-weight:600; color:var(--navy-deep);}
.value-item p{font-size:14.5px; color:var(--grey-600); margin-top:4px; line-height:1.55;}

/* ============== TIMELINE (about page) ============== */
.timeline{position:relative; margin-top:20px;}
.timeline::before{content:''; position:absolute; left:18px; top:0; bottom:0; width:2px; background:var(--line);}
.tl-item{position:relative; padding-left:60px; padding-bottom:54px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{content:''; position:absolute; left:9px; top:4px; width:20px; height:20px; border-radius:50%; background:var(--paper); border:3px solid var(--coral);}
.tl-item .yr{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--coral-dark); font-weight:600; letter-spacing:.04em;}
.tl-item h3{font-size:21px; margin-top:8px;}
.tl-item p{margin-top:8px; font-size:14.5px; color:var(--grey-600); line-height:1.6; max-width:560px;}

/* ============== TEAM ============== */
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:50px;}
.team-card{border-radius:var(--radius-lg); overflow:hidden; background:#fff; border:1px solid var(--line);}
.team-card .img{aspect-ratio:4/5; overflow:hidden;}
.team-card .img img{width:100%; height:100%; object-fit:cover;}
.team-card .body{padding:22px;}
.team-card h4{font-size:17px;}
.team-card span{font-size:12.5px; color:var(--coral-dark); font-weight:600; text-transform:uppercase; letter-spacing:.04em;}

/* ============== TESTIMONIALS ============== */
.testimonials{background:var(--navy); color:#fff;}
.testimonials .section-head h2{color:#fff;}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.14); border-radius:var(--radius-md); overflow:hidden;}
.testi-card{background:var(--navy); padding:38px 32px; transition:background .25s;}
.testi-card:hover{background:var(--navy-soft);}
.testi-card .quote-mark{font-family:'Fraunces',serif; font-size:48px; color:var(--coral); line-height:1; opacity:0.9;}
.testi-card p.quote{font-size:15.5px; line-height:1.68; color:rgba(255,255,255,0.88); margin-top:12px; min-height:140px;}
.testi-foot{margin-top:24px; display:flex; align-items:center; gap:13px; border-top:1px solid rgba(255,255,255,0.16); padding-top:20px;}
.testi-foot .av{width:40px; height:40px; border-radius:50%; background:var(--coral); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:15px; flex-shrink:0;}
.testi-foot b{display:block; font-size:14px;}
.testi-foot span{font-size:12px; color:rgba(255,255,255,0.55);}

/* ============== STEPS (how booking works) ============== */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:56px;}
.step{position:relative; padding-top:50px;}
.step::before{content:attr(data-n); position:absolute; top:0; left:0; font-family:'Fraunces',serif; font-size:48px; font-weight:700; color:var(--coral-light);}
.step h3{font-size:19px; margin-top:8px;}
.step p{margin-top:10px; font-size:14.5px; color:var(--grey-600); line-height:1.6;}

/* ============== FAQ ============== */
.faq-list{border-top:1px solid var(--line); margin-top:10px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{display:flex; align-items:center; justify-content:space-between; padding:26px 4px; cursor:pointer; gap:20px;}
.faq-q h4{font-size:17px; font-weight:600; color:var(--navy-deep); font-family:'Fraunces',serif;}
.faq-q .plus{font-size:22px; color:var(--coral); transition:transform .3s; flex-shrink:0;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-a p{padding:0 4px 26px; font-size:14.5px; color:var(--grey-600); line-height:1.65; max-width:640px;}

/* ============== CTA BANNER ============== */
.cta-banner{background:var(--coral); color:#fff; text-align:center; position:relative; overflow:hidden;}
.cta-banner::before{content:''; position:absolute; inset:0; background:repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 26px);}
.cta-banner .wrap{position:relative;}
.cta-banner h2{color:#fff; font-size:var(--fs-h2); max-width:680px; margin:0 auto;}
.cta-banner p{margin-top:16px; font-size:16px; color:rgba(255,255,255,0.85);}
.cta-banner .hero-actions{justify-content:center; margin-top:32px;}
.cta-banner .btn-primary{background:var(--navy-deep);}
.cta-banner .btn-primary:hover{background:var(--navy);}
.cta-banner .btn-ghost-light:hover{background:rgba(255,255,255,0.2);}

/* ============== BOOKING / CONTACT ============== */
.booking-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:0; border:1px solid var(--line); background:var(--paper); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md);}
.booking-side{background:var(--navy-deep); color:#fff; padding:58px 46px; position:relative;}
.booking-side::before{content:''; position:absolute; top:0; bottom:0; left:0; width:6px; background:linear-gradient(180deg, var(--coral), var(--gold));}
.booking-side h2{color:#fff; font-size:30px; line-height:1.15;}
.booking-side p{margin-top:16px; font-size:15px; line-height:1.65; color:rgba(255,255,255,0.78);}
.quick-contacts{margin-top:38px; display:grid; gap:20px;}
.qc-item{display:flex; gap:15px; align-items:flex-start;}
.qc-item .ic{width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:15px;}
.qc-item b{display:block; font-size:14px;}
.qc-item span, .qc-item a{font-size:13.5px; color:rgba(255,255,255,0.7); overflow-wrap:anywhere;}
.qc-item a:hover{color:#fff;}
.form-side{padding:58px 46px;}
.form-side h3{font-size:22px; font-weight:600;}
.form-side p.note{font-size:13.5px; color:var(--grey-400); margin-top:9px;}
form{margin-top:30px; display:grid; gap:17px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:17px;}
.field label{font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--navy); display:block; margin-bottom:8px;}
.field input, .field select, .field textarea{
  width:100%; padding:13px 15px; border:1.5px solid var(--line); border-radius:var(--radius-sm);
  font-family:'Inter'; font-size:14.5px; background:#fff; color:var(--ink); transition:border-color .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--coral);}
.field textarea{resize:vertical; min-height:96px;}
.form-submit{display:flex; align-items:center; gap:18px; margin-top:8px; flex-wrap:wrap;}
.form-submit .or{font-size:13px; color:var(--grey-400);}

.map-embed{margin-top:60px; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm);}
.map-embed iframe{width:100%; height:420px; border:0; display:block;}

/* ============== FOOTER ============== */
footer{background:var(--navy-deep); color:rgba(255,255,255,0.68); padding:80px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:50px;}
.foot-brand{display:flex; align-items:center; gap:11px; margin-bottom:20px;}
.foot-brand img{height:42px;}
.foot-brand .name{font-family:'Fraunces',serif; color:#fff; font-weight:700; font-size:18px;}
footer p.tag{font-size:14px; line-height:1.65; max-width:290px;}
footer h4{color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; margin-bottom:20px;}
footer ul{display:grid; gap:12px; font-size:14px;}
footer ul a:hover{color:#fff;}
.foot-bottom{margin-top:68px; padding-top:26px; border-top:1px solid rgba(255,255,255,0.14); display:flex; justify-content:space-between; align-items:center; font-size:12.5px; flex-wrap:wrap; gap:14px;}
.foot-credit{color:rgba(255,255,255,0.42);}
.foot-social{display:flex; gap:14px;}
.foot-social a{width:36px; height:36px; border:1px solid rgba(255,255,255,0.2); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; transition:.2s;}
.foot-social a:hover{background:var(--coral); border-color:var(--coral); transform:translateY(-3px);}

/* ============== WHATSAPP FLOAT ============== */
.wa-float{
  position:fixed; bottom:28px; right:28px; z-index:400;
  width:62px; height:62px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center; box-shadow:0 12px 32px rgba(0,0,0,0.32);
  color:#fff; animation:pulse 2.6s infinite;
}
.wa-float svg{width:30px; height:30px;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,0.5);} 70%{box-shadow:0 0 0 18px rgba(37,211,102,0);} 100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}}

/* ============== ROUTE SIGNATURE: scroll progress rail ============== */
.route-rail{
  position:fixed; left:18px; top:50%; transform:translateY(-50%);
  height:46vh; width:14px; z-index:250; display:flex; flex-direction:column; align-items:center;
  pointer-events:none;
}
.route-rail .track{
  position:relative; width:2px; height:100%; border-radius:2px;
  background-image:repeating-linear-gradient(to bottom, rgba(16,44,82,0.18) 0 8px, transparent 8px 16px);
}
.route-rail .fill{
  position:absolute; top:0; left:0; width:2px; height:0%;
  background:linear-gradient(180deg, var(--coral), var(--gold));
  border-radius:2px; transition:height .08s linear;
}
.route-rail .pin{
  position:absolute; left:50%; transform:translate(-50%,-50%); top:0%;
  width:11px; height:11px; border-radius:50%; background:var(--coral);
  box-shadow:0 0 0 4px rgba(232,72,61,0.18); transition:top .08s linear;
}
@media (max-width: 1100px){ .route-rail{display:none;} }

/* ============== ROUTE SIGNATURE: hero draw-on SVG ============== */
.hero-route-svg{position:absolute; right:6%; bottom:8%; width:min(360px,30vw); opacity:0.9; z-index:2; pointer-events:none;}
.hero-route-svg path{
  fill:none; stroke:var(--coral); stroke-width:3; stroke-linecap:round; stroke-dasharray:600;
  stroke-dashoffset:600; animation:draw-route 2.6s 0.6s cubic-bezier(.3,.8,.3,1) forwards;
}
.hero-route-svg circle{opacity:0; animation:fade-pin .5s 3s forwards;}
@keyframes draw-route{ to{stroke-dashoffset:0;} }
@keyframes fade-pin{ to{opacity:1;} }
@media (max-width: 760px){ .hero-route-svg{display:none;} }

/* ============== DUOTONE PHOTO TREATMENT ============== */
.photo-duo{position:relative; overflow:hidden;}
.photo-duo img{
  filter:grayscale(55%) sepia(12%) saturate(140%) hue-rotate(-6deg) contrast(106%) brightness(98%);
}
.photo-duo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(16,44,82,0.38), rgba(232,72,61,0.16));
  mix-blend-mode:color; pointer-events:none;
}

/* ============== COST ESTIMATOR ============== */
.estimator{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:36px; box-shadow:var(--shadow-md);
}
.estimator .est-row{display:grid; grid-template-columns:1fr 1fr auto; gap:16px; align-items:end;}
.estimator .field{margin:0;}
.est-result{
  margin-top:24px; padding:20px 24px; border-radius:var(--radius-md); background:var(--sand);
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.est-result .price{font-family:'Fraunces',serif; font-size:28px; font-weight:700; color:var(--navy-deep);}
.est-result .price span{font-size:13px; font-weight:500; color:var(--grey-600); display:block; font-family:'Inter';}
.est-note{font-size:12px; color:var(--grey-400); margin-top:14px;}
@media (max-width:620px){ .estimator .est-row{grid-template-columns:1fr;} }

/* ============== TRUST LOGOS STRIP ============== */
.logo-strip{padding:46px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.logo-strip .label{font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--grey-400); text-align:center; margin-bottom:26px;}
.logo-row{display:flex; align-items:center; justify-content:center; gap:54px; flex-wrap:wrap;}
.logo-row .lg{font-family:'Fraunces',serif; font-weight:700; font-size:19px; color:var(--navy); opacity:0.55; letter-spacing:.02em;}

/* ============== LIVE STATUS BADGE ============== */
.live-badge{display:inline-flex; align-items:center; gap:9px; font-size:12.5px; font-weight:600; color:#fff; background:rgba(37,211,102,0.16); border:1px solid rgba(37,211,102,0.4); padding:8px 16px; border-radius:999px;}
.live-badge .ld{width:7px; height:7px; border-radius:50%; background:#25D366; animation:blink 1.6s infinite;}

/* ============== SCROLL REVEAL ============== */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-d1.in{transition-delay:.08s;}
.reveal-d2.in{transition-delay:.16s;}
.reveal-d3.in{transition-delay:.24s;}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  .wa-float, .hero-bg, .hero-tag .dot, .hero-scroll .bar{animation:none;}
}

/* ============== GRID OVERFLOW SAFETY ============== */
.booking-grid > *, .fleet-grid > *, .svc-grid > *, .testi-grid > *, .team-grid > *,
.fleet-spec-grid > *, .steps > *, .foot-grid > *, .ledger-row > *{ min-width:0; }

/* ============== RESPONSIVE ============== */
@media (max-width: 1040px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .nav-right{gap:12px;}
  .nav-right .btn-primary{display:none;}
  .hero-stats{grid-template-columns:repeat(2,1fr); row-gap:32px;}
  .ledger-row{grid-template-columns:1fr 0.6fr 0.6fr;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .fleet-grid{grid-template-columns:1fr;}
  .fleet-item.tall{min-height:360px;}
  .fleet-spec-grid{grid-template-columns:repeat(2,1fr);}
  .about-grid{grid-template-columns:1fr; gap:46px;}
  .about-photo .badge{right:16px;}
  .testi-grid{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .steps{grid-template-columns:1fr;}
  .booking-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr; row-gap:42px;}
}
@media (max-width: 480px){
  .lang-trigger{padding:10px 12px;}
  .lang-trigger #langCurrentLabel, .lang-trigger .caret{display:none;}
  .brand .name{font-size:16px;}
}
@media (max-width: 620px){
  .nav-phone{display:none;}
  .form-row{grid-template-columns:1fr;}
  .hero-content{padding-top:150px;}
  section{padding:84px 0;}
  .svc-grid{grid-template-columns:1fr;}
  .fleet-spec-grid{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .booking-side, .form-side{padding:40px 26px;}
  .hero-scroll{display:none;}
}

/* ============================================================
   LANGUAGE SWITCHER
   ============================================================ */
.lang-switcher {
  position: relative;
  z-index: 400;
}
.lang-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  cursor: pointer;
  background: var(--navy);
  border: 2px solid var(--navy);
  font-family: 'Inter', sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  transition: background .2s, transform .2s;
}
.lang-trigger:hover {
  background: var(--navy-soft);
  transform: translateY(-2px);
}
.lang-trigger .caret {
  font-size: 9px;
  opacity: .7;
  transition: transform .22s;
}
.lang-switcher.open .lang-trigger .caret {
  transform: rotate(180deg);
}
/* Dropdown: hidden by default */
.lang-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: 0 24px 64px rgba(8,27,51,.18);
  width: 230px;
  max-height: 76vh;
  overflow-y: auto;
  z-index: 9999;
}
/* Dropdown: shown when parent has .open */
.lang-switcher.open .lang-dropdown {
  display: block;
}
.lang-group {
  padding: 8px 0;
}
.lang-group + .lang-group {
  border-top: 1px solid var(--line);
}
.lang-group-label {
  display: block;
  padding: 8px 16px 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--grey-400);
}
.lang-opt {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  padding: 10px 16px;
  text-align: left;
  cursor: pointer;
  border: none;
  background: none;
  font-family: 'Inter', sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink);
  transition: background .15s;
}
.lang-opt:hover { background: var(--sand); }
.lang-opt.active { background: var(--coral); color: #fff; font-weight: 700; }
.lang-opt .flag { font-size: 16px; flex-shrink: 0; }
