:root{
    /* Ashwitha logo blue: #283891 */
    --maroon-950:#101844;
    --maroon-900:#182363;
    --maroon-800:#202f7c;
    --maroon-700:#283891;
    --maroon-600:#3e50a1;
    --maroon-500:#5366b6;
    --gold-700:#4356ab;
    --gold-600:#5f72ca;
    --gold-500:#7990df;
    --gold-400:#9aaaf0;
    --gold-100:#dbe2ff;
    --cream-50:#f8f9ff;
    --cream-100:#eef1ff;
    --cream-200:#dfe5ff;
    --ink:#161d4f;
    --ink-soft:#57618a;
    --line:#d5dcf5;
    --textbody: #252525;
    --font-body:'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
    --font-display:'Cinzel', 'Copperplate Gothic', 'Copperplate', Georgia, serif;
    --ease:cubic-bezier(.22,.9,.24,1);
    --ease-spring:cubic-bezier(.32,.72,0,1);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font-body);
    color:var(--ink); background:var(--cream-50); overflow-x:hidden; -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  button{font:inherit; cursor:pointer; border:none; background:none; color:inherit;}
  section{position:relative;}
  .serif{ font-family:var(--font-display); }
  .material-symbols-outlined{
    font-family:'Material Symbols Outlined'; font-weight:normal; font-style:normal;
    font-size:24px; line-height:1; letter-spacing:normal; text-transform:none;
    display:inline-block; white-space:nowrap; word-wrap:normal; direction:ltr;
    -webkit-font-feature-settings:'liga'; -webkit-font-smoothing:antialiased;
    font-feature-settings:'liga';
  }
  .wrap{ max-width:1280px; margin:0 auto; padding:0 24px; }

  .reveal{ opacity:0; transform:translateY(26px); filter:blur(5px); transition:opacity .85s var(--ease), transform .85s var(--ease), filter .85s var(--ease); }
  .reveal.in-view{ opacity:1; transform:translateY(0); filter:blur(0); }
  .reveal-scale{ opacity:0; transform:scale(.94); transition:opacity .75s var(--ease), transform .75s var(--ease); }
  .reveal-scale.in-view{ opacity:1; transform:scale(1); }
  .stagger > * { transition-delay:calc(var(--i,0) * 80ms); }
  @media (prefers-reduced-motion: reduce){
    .reveal,.reveal-scale,.stagger>*{ transition:none !important; opacity:1 !important; transform:none !important; filter:none !important; }
    html{ scroll-behavior:auto; }
  }

  .scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg, var(--gold-500), var(--maroon-700)); z-index:200; transition:width .1s linear; }

  /* divider ornament */
  .ornament{ display:inline-flex; align-items:center; gap:10px; color:var(--gold-600); }
  .ornament .ln{ width:34px; height:1px; background:linear-gradient(90deg, transparent, var(--gold-500)); }
  .ornament .ln.r{ background:linear-gradient(90deg, var(--gold-500), transparent); }

  /* ============ HEADER (sits over hero) ============ */
  header.site{
    position:absolute; top:0; left:0; right:0; z-index:150;
    padding:22px 0 0;
  }
  .header-logo{ width:130px; }
  .header-logo-fixed{ display:none; }
  header.site.fixed-solid .header-logo-static{ display:none; }
  header.site.fixed-solid .header-logo-fixed{ display:block; }
   header.site.fixed-solid{
    position:fixed;
    background: #fff;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    padding:12px 0;
    box-shadow:0 6px 24px rgba(40,56,145,.10);
    transition:background .3s var(--ease);
border-bottom: 1px solid #d7dfff;
  }
  .head-row{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand-mark{
    width:48px; height:48px; border-radius:12px; flex-shrink:0;
    background:linear-gradient(155deg, var(--gold-400), var(--gold-600));
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 20px rgba(95,114,202,.35);
  }
  .brand-mark .material-symbols-outlined{ font-size:26px; }
  .brand-text .b1{ font-size:21px; font-weight:800; letter-spacing:.02em; }
  header.site:not(.fixed-solid) .brand-text .b1{ color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.35); }
  header.site.fixed-solid .brand-text .b1{ color:var(--maroon-800); }
  .brand-text .b2{ font-size:10px; font-weight:700; letter-spacing:.28em; }
  header.site:not(.fixed-solid) .brand-text .b2{ color:var(--gold-400); }
  header.site.fixed-solid .brand-text .b2{ color:var(--ink-soft); }

  .main-nav{ display:flex; align-items:center; gap:30px; }
  .main-nav a{
    font-size:1em; font-weight:600; position:relative; padding:6px 0;
    transition:color .3s var(--ease);
  }
  header.site:not(.fixed-solid) .main-nav a{ color:var(--maroon-950); }
  header.site.fixed-solid .main-nav a{ color:var(--ink); }
  .main-nav a:hover{ color:var(--gold-400); }

  .call-pill{
    display:flex; align-items:center; gap:10px;
    background:linear-gradient(155deg, var(--maroon-700), var(--maroon-900));
    padding:10px 20px 10px 14px; border-radius:999px; color:#fff;
    transition:transform .5s var(--ease-spring);
  }
  .call-pill:hover{ transform:translateY(-2px); }
  .call-pill .ic{ width:30px; height:30px; border-radius:999px; background:#fde900; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .call-pill span{ font-size:1em; font-weight:700; white-space:nowrap; }

  .hamburger{
    width:44px; height:44px; border-radius:999px; display:none; align-items:center; justify-content:center; position:relative; flex-shrink:0;
    background:var(--maroon-800);
  }
  .hamburger span{ position:absolute; left:13px; width:18px; height:2px; background:#fff; border-radius:2px; transition:transform .5s var(--ease-spring), opacity .3s var(--ease), top .5s var(--ease-spring); }
  .hamburger span:nth-child(1){ top:16px; } .hamburger span:nth-child(2){ top:21px; } .hamburger span:nth-child(3){ top:26px; }
  .hamburger.open span:nth-child(1){ top:21px; transform:rotate(45deg); }
  .hamburger.open span:nth-child(2){ opacity:0; }
  .hamburger.open span:nth-child(3){ top:21px; transform:rotate(-45deg); }

  /* close button inside the open mobile menu */
  .menu-close{
    position:absolute; top:26px; right:24px; width:44px; height:44px; border-radius:999px;
    background:var(--maroon-800); display:flex; align-items:center; justify-content:center;
    flex-shrink:0; transition:background .3s var(--ease), transform .4s var(--ease-spring);
  }
  .menu-close:hover{ background:var(--maroon-700); transform:rotate(90deg); }
  .menu-close span{ position:absolute; width:18px; height:2px; background:#fff; border-radius:2px; transform:rotate(45deg); }
  .menu-close span:last-child{ transform:rotate(-45deg); }

  .mobile-menu{
    position:fixed; inset:0; z-index:190; background:rgba(16,24,68,.94); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    display:flex; flex-direction:column; padding:110px 32px 40px; opacity:0; visibility:hidden; transition:opacity .5s var(--ease), visibility .5s;
  }
  .mobile-menu.open{ opacity:1; visibility:visible; }
  .mobile-menu a{ font-size:28px; color:#eef1ff; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.1); opacity:0; transform:translateY(24px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
  .mobile-menu.open a{ opacity:1; transform:translateY(0); }
  .mobile-menu-foot{ margin-top:auto; opacity:0; transform:translateY(18px); transition:opacity .5s var(--ease) .3s, transform .5s var(--ease) .3s; }
  .mobile-menu.open .mobile-menu-foot{ opacity:1; transform:translateY(0); }

  @media (max-width:980px){
    .main-nav{ display:none; }
    .call-pill{ display:none; }
    .hamburger{ display:flex; }
  }

  /* ============ HERO ============ */
  .hero{
    min-height:100dvh; display:flex; align-items:flex-end; position:relative; overflow:hidden;
    padding-top:160px; padding-bottom:0;
  }
  .hero-bg{ position:absolute; inset:0; z-index:0; }
  .hero-bg .banner{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center;
  }
  .hero-bg .sky{ position:absolute; inset:0; background:linear-gradient(180deg, #101844 0%, #182363 28%, #283891 58%, #5f72ca 100%); }
  .hero-bg .sunglow{ position:absolute; left:50%; top:38%; width:520px; height:520px; transform:translate(-50%,-50%); border-radius:50%;
    background:radial-gradient(circle, rgba(255,220,150,.9), rgba(255,180,90,.35) 45%, transparent 70%); filter:blur(2px); }
  .hero-bg .mountain{ position:absolute; left:0; right:0; bottom:0; height:56%; }
  .hero-bg .diya-row{ position:absolute; left:0; right:0; bottom:0; height:60px; display:flex; }
  .hero-noise-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,8,16,0) 40%, rgba(20,8,16,.55) 100%); z-index:1; }

  .hero-content{ position:relative; z-index:2; padding-bottom:64px; width:100%; }
   .hero-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 16px 8px 10px;
    border-radius:999px;
    background: rgb(2 14 80 / 78%);
    backdrop-filter:blur(6px);
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--gold-100);
    margin-bottom:24px;
  }
  .hero-badge .dot{ width:20px; height:20px; border-radius:999px; background:#fde900; display:flex; align-items:center; justify-content:center; }
  .hero-badge .material-symbols-outlined{ font-size:11px; }

  .hero h1{font-size:clamp(29px,8vw,66px);line-height:1.06;font-weight:700;color:#fff;text-shadow: 3px 3px 3px rgb(0 0 0 / 74%);max-width:680px;}
  .hero h1 .accent{ color:#fde900; }
  .hero p.lead{ margin-top:20px; max-width:520px; font-size:15.5px; line-height:1.7; color:rgba(255,250,240,.82); }
  .hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }

  .btn{ display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:1em; border-radius:999px; padding:13px 24px; transition:transform .5s var(--ease-spring), background .4s var(--ease); white-space:nowrap; }
  .btn:active{ transform:scale(.97); }
  .btn-gold{ color:var(--maroon-950); background:#ffeb00; }
  .btn-gold:hover{ transform:translateY(-2px); }
  .btn-maroon{ color:#fff; background:linear-gradient(155deg, var(--maroon-700), var(--maroon-900)); }
  .btn-maroon:hover{ transform:translateY(-2px); }
  .btn-outline{ color:var(--maroon-800); border:1.5px solid var(--line); background:#fff; }
  .btn-outline:hover{ border-color:var(--gold-500); background:var(--cream-100); }
  .btn-icon-circle{ width:28px; height:28px; border-radius:999px; background:var(--maroon-950); display:inline-flex; align-items:center; justify-content:center; transition:transform .5s var(--ease-spring); flex-shrink:0; }
  .btn-maroon .btn-icon-circle{ background:rgba(255,255,255,.18); }
  .btn:hover .btn-icon-circle{ transform:translate(2px,-1px) rotate(8deg); }

  /* trust strip overlapping hero bottom */
  .trust-strip{ position:relative; z-index:3; margin-top:36px; }
  .trust-bar{
    background:linear-gradient(155deg, var(--maroon-700), var(--maroon-900));
    border-radius:20px; display:flex; flex-wrap:wrap; box-shadow:0 24px 60px rgba(16,24,68,.35);
    overflow:hidden;
  }
  .trust-item{ flex:1 1 180px; display:flex; align-items:center; gap:12px; padding:18px 20px; border-right:1px solid rgba(255,255,255,.1); }
  .trust-item:last-child{ border-right:none; }
  .trust-item .ic{ width:38px; height:38px; border-radius:11px; background:#ffeb00; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .trust-item .ic .material-symbols-outlined{ font-size:20px; color:var(--maroon-950); }
  .trust-item span{font-size: 14px;font-weight: 500;color:#fff;}
  @media (max-width:780px){ .trust-item{ flex:1 1 45%; border-right:none; border-bottom:1px solid rgba(255,255,255,.1); } }

  /* ============ Section shells ============ */
  .section{ padding:100px 0; }
  .section-tight{ padding:70px 0; }
  .sec-head{ text-align:center; max-width:640px; margin:0 auto 50px; }
  .sec-head h2{ font-family:var(--font-display); font-weight:700; font-size:clamp(26px,3.4vw,38px); color:var(--maroon-900); margin-top:10px; }
  .sec-head p{ margin-top:14px; color:var(--ink-soft); font-size:15px; line-height:1.7; }
  .sec-tag{display:inline-flex;align-items:center;gap:10px;font-size: 14px;font-weight:700;letter-spacing: 2.8px;color: #000000;text-transform: uppercase;}

  /* ============ Why choose ============ */
  .why-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
  .why-card{
    background:#fff; border:1px solid var(--maroon-700); border-radius:20px; padding:26px 16px; text-align:left;
    transition:transform .55s var(--ease-spring), box-shadow .55s var(--ease-spring), border-color .4s var(--ease);
  }
  .why-card:hover{ transform:translateY(-8px);border-color:var(--maroon-800); }
  .why-ic{ width:60px; height:60px; margin-bottom: 15px; border-radius:16px; background:linear-gradient(155deg, var(--gold-100), #fff); border:1px solid var(--maroon-700); display:flex; align-items:center; justify-content:center; }
  .why-ic .material-symbols-outlined{ font-size:30px; color:var(--maroon-700); }
  .why-card h4{font-size: 18px;font-weight:700;color:var(--maroon-900);margin-bottom: 10px;}
  .why-card p{ font-size:14px; color:var(--textbody); line-height:1.5; }
  @media (max-width:980px){ .why-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:600px){ .why-grid{ grid-template-columns:repeat(2,1fr); } }

  /* ============ Packages grid ============ */
  .pkg-head-row{ display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:18px; margin-bottom:34px; }
  .pkg-nav{ display:flex; gap:10px; }
  .pkg-nav button{ width:42px; height:42px; border-radius:999px; border:1px solid var(--line); background:#fff; display:flex; align-items:center; justify-content:center; transition:background .35s var(--ease), transform .3s var(--ease-spring); }
  .pkg-nav button:hover{ background:var(--cream-100); transform:translateY(-2px); }
  .pkg-grid{ display:grid; grid-template-columns:repeat(6, 1fr); grid-auto-rows:150px; gap:14px; }
  .pkg-tile{
    position:relative; border-radius:16px; overflow:hidden;
    transition:transform .55s var(--ease-spring), box-shadow .55s var(--ease-spring);
  }
  .pkg-tile:hover{ transform:translateY(-5px); box-shadow:0 20px 40px rgba(40,56,145,.22); }
  .pkg-tile .bg{ position:absolute; inset:0; background-color:#ddd; background-size:cover; background-position:center; }
  .pkg-tile .shade{ position:absolute; inset:0; background:linear-gradient(200deg, transparent 30%, rgba(16,24,68,.85) 100%); }
  .pkg-tile .cap{ position:absolute; left:12px; right:12px; bottom:10px; z-index:2; }
  .pkg-tile .cap .t{ font-weight:800; font-size:18px; color:#fff; }
  .pkg-tile .cap .s{ font-size:14px; color:var(--gold-300, #f0c14b); }
  @media (max-width:980px){ .pkg-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:600px){ .pkg-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:130px; } }

  /* ============ Services row ============ */
  .service-row{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
  .service-chip{
    display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center;
    background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px 16px; width:120px;
    transition:transform .5s var(--ease-spring), box-shadow .5s var(--ease-spring), background .4s var(--ease);
  }
  .service-chip:hover{ transform:translateY(-6px); border-color: var(--maroon-800); }
  .service-chip .ic{ width:80px; height:80px; border-radius:999px; background:linear-gradient(155deg, var(--gold-100), #fff); display:flex; align-items:center; justify-content:center; }
  .service-chip .ic .material-symbols-outlined{ font-size:30px; color: var(--maroon-700);    font-weight: 400;}
  .service-chip span{ font-size:18px; font-weight:700; color:var(--maroon-900); }

  /* ============ Fleet ============ */
  .fleet-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
  .fleet-card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:6px; transition:transform .55s var(--ease-spring), box-shadow .55s var(--ease-spring); }
  .fleet-card:hover{ transform:translateY(-6px); box-shadow:0 20px 44px rgba(40,56,145,.12); }
  /*height:96px; */.fleet-vis{ border-radius:14px; background:linear-gradient(150deg, var(--cream-100), var(--cream-200)); display:flex; align-items:center; justify-content:center; }
  .fleet-vis img{width:100%;height:100%;object-fit:contain;border-radius:14px;border: 1px solid #d5dcf5;}
  .fleet-vis .material-symbols-outlined{ font-size:56px; color:var(--maroon-700); }
  .fleet-info{ padding:12px 8px 10px; text-align:center; }
  .fleet-info h5{ font-size:18px;  color:var(--maroon-900); }
  .fleet-info span{ font-size:13px; color:var(--textbody); }
  @media (max-width:980px){ .fleet-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:560px){ .fleet-grid{ grid-template-columns:repeat(2,1fr); } }

  /* ============ Journey / testimonial / stats row ============ */
  .journey-row{ display:grid; grid-template-columns:2fr .85fr; gap:20px; align-items:stretch; }
  .journey-left{ display:flex; flex-direction:column; gap:20px; }
  .quote-box{
    background:linear-gradient(155deg, var(--maroon-800), var(--maroon-950)); border-radius:22px; padding:42px 38px; color:#fff; position:relative; overflow:hidden;
  }
  .quote-box .tag{ font-size:2em; font-weight:700; color:var(--gold-400); }
  .quote-box p{ position:relative; font-size:16px; line-height:20px; margin:18px 0 5px; max-width:760px; color:rgba(255,250,240,.9); }
  .quote-box .who{ font-size:14px; font-weight:700; }
  .quote-box .stars{ display:flex; gap:3px; margin-top:10px; }
  .quote-box .stars .material-symbols-outlined{ font-size:13px; color:var(--gold-400); }
  .testimonial-slide{ display:none; animation:testimonial-in .45s var(--ease); }
  .testimonial-slide.is-active{ display:grid; grid-template-columns:110px 1fr; column-gap:24px; align-items:center; }
  .testimonial-photo{ grid-row:1 / span 4; width:110px; height:110px; border-radius:22px; object-fit:cover; border:3px solid rgba(255,255,255,.25); box-shadow:0 10px 24px rgba(0,0,0,.2); }
  .testimonial-controls{ position:relative; display:flex; align-items:center; gap:8px; margin-top:24px; }
  .testimonial-controls button{ width:34px; height:34px; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; display:grid; place-items:center; transition:background .25s var(--ease), transform .25s var(--ease); }
  .testimonial-controls button:hover,.testimonial-controls button:focus-visible{ background:var(--gold-500); transform:translateY(-2px); outline:none; }
  .testimonial-controls .material-symbols-outlined{ font-size:20px; }
  .testimonial-count{ font-size:12px; font-weight:700; color:rgba(255,255,255,.75); min-width:34px; text-align:center; }
  @keyframes testimonial-in{ from{ opacity:0; transform:translateX(12px); } to{ opacity:1; transform:translateX(0); } }

  .journey-mid{ background:#fff; border:1px solid var(--line); border-radius:22px; padding:30px 24px; }
  .journey-mid h4{text-align:center;color:var(--maroon-900);font-size: 2em;margin-bottom: 25px;}
  .journey-steps{ display:flex; justify-content:space-between; align-items:flex-start; }
  .journey-step{ text-align:center; flex:1; position:relative; }
  .journey-step:not(:last-child)::after{ content:""; position:absolute; top:22px; left:calc(50% + 26px); right:calc(-50% + 26px); height:1px; background:repeating-linear-gradient(90deg, var(--line) 0 5px, transparent 5px 10px); }
  .journey-num{ width:44px; height:44px; border-radius:999px; margin:0 auto 10px; background:linear-gradient(155deg, var(--gold-400), var(--gold-600)); display:flex; align-items:center; justify-content:center; }
  .journey-num .material-symbols-outlined{font-size: 25px;color: #ffffff;}
  .journey-step span{font-size: 1em;color: #0c0c0c;}
  @media (max-width:560px){ .journey-steps{ flex-wrap:wrap; gap:20px 0; } .journey-step{ flex:1 1 45%; } .journey-step::after{ display:none; } }

  .stat-col{ display:flex; }
  .enquiry-form{ width:100%; background:#fff; border:1px solid var(--line); border-radius:22px; padding:26px; display:flex; flex-direction:column; gap:8px; }
  .enquiry-form h3{  color:var(--maroon-900); font-size:2em; }
  .enquiry-form p{ font-size:14px; color:var(--textbody); margin:0 0 8px; }
  .enquiry-form label{ font-size:14px; font-weight:700; color:var(--maroon-900); margin-top:4px; }
  .enquiry-form label span{ color:#c62828; }
  .enquiry-form input,.enquiry-form textarea{ width:100%; border:1px solid var(--line); border-radius:10px; padding:11px 12px; font:inherit; color:var(--ink); outline:none; }
  .enquiry-form textarea{ resize:vertical; }
  .enquiry-form input:focus,.enquiry-form textarea:focus{ border-color:var(--gold-500); box-shadow:0 0 0 3px rgba(196,146,42,.16); }
  .enquiry-form button{ border:0; justify-content:center; margin-top:10px; cursor:pointer; }
  @media (max-width:980px){ .journey-row{ grid-template-columns:1fr; } }
  @media (max-width:560px){ .quote-box{ padding:30px 24px; } .quote-box p{ font-size:14px; } .testimonial-slide.is-active{ grid-template-columns:76px 1fr; column-gap:16px; } .testimonial-photo{ width:76px; height:76px; border-radius:18px; } }

  /* ============ Journey moments gallery ============ */
  .gallery-strip{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:82px; grid-auto-flow:dense; gap:14px; padding:4px; }
  .gallery-tile{ min-height:0; grid-row:span 2; border-radius:16px; position:relative; overflow:hidden; transition:transform .5s var(--ease-spring); }
  .gallery-tile:nth-child(1),.gallery-tile:nth-child(6){ grid-row:span 4; }
  .gallery-tile:nth-child(2),.gallery-tile:nth-child(5){ grid-row:span 3; }
  .gallery-tile:nth-child(3),.gallery-tile:nth-child(4),.gallery-tile:nth-child(7){ grid-row:span 2; }
  .gallery-tile:hover{ transform:translateY(-6px) scale(1.02); }
  .gallery-tile .bg{ position:absolute; inset:0; background-color:#ddd; background-size:cover; background-position:center; }
  .gallery-tile .bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(200deg, transparent 50%, rgba(16,24,68,.5) 100%); }
  @media (max-width:700px){ .gallery-strip{ grid-template-columns:repeat(2,1fr); grid-auto-rows:92px; } }

  /* ============ Festival updates ============ */
  .fest-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
  .fest-card{ background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; transition:transform .5s var(--ease-spring), box-shadow .5s var(--ease-spring); }
  .fest-card:hover{ transform:translateY(-6px); box-shadow:0 20px 44px rgba(40,56,145,.12); }
  .fest-vis{ height:100px; background:var(--tone); position:relative; }
  .fest-vis::after{ content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(120deg, rgba(255,255,255,.08) 0 2px, transparent 2px 26px); }
  .fest-body{ padding:16px; }
  .fest-body h5{ font-size:13.5px; font-weight:800; color:var(--maroon-900); margin-bottom:4px; }
  .fest-body span{ font-size:11px; color:var(--ink-soft); }
  .fest-btn{ display:inline-block; margin-top:12px; background:var(--maroon-800); color:#fff; font-size:11px; font-weight:700; padding:7px 16px; border-radius:999px; transition:background .3s var(--ease); }
  .fest-btn:hover{ background:var(--maroon-950); }
  @media (max-width:900px){ .fest-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:560px){ .fest-grid{ grid-template-columns:1fr; } }

  /* ============ CTA banner ============ */
  .cta-banner{ position:relative; overflow:hidden; border-radius:28px; background:linear-gradient(120deg, var(--maroon-800), var(--maroon-950) 65%); padding:64px 40px; text-align:center; }
  .cta-banner::before{ content:""; position:absolute; inset:0; background:radial-gradient(650px 280px at 90% 10%, rgba(154,170,240,.16), transparent 55%); }
  .cta-banner h2{ position:relative; font-family:var(--font-display); font-size:clamp(24px,3.6vw,36px); color:#fff; font-weight:700; }
  .cta-banner p{ position:relative; color:rgba(255,250,240,.7); margin-top:12px; font-size:14.5px; }
  .cta-actions{ position:relative; margin-top:28px; }

  /* ============ Footer ============ */
  footer{ background:linear-gradient(180deg, var(--maroon-900), var(--maroon-950)); color:rgba(255,250,240,.68); padding-top:72px; }
  .foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1.1fr; gap:32px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.1); }
  .foot-brand p{ font-size:13px; line-height:1.7; margin-top:14px; max-width:250px; color:rgba(255,250,240,.55); }
  .foot-social{ display:flex; gap:10px; margin-top:20px; }
  .foot-social a{ width:34px; height:34px; border-radius:999px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; transition:background .35s var(--ease), transform .4s var(--ease-spring); }
  .foot-social a:hover{ background:var(--gold-500); transform:translateY(-3px); }
  .foot-social .material-symbols-outlined{ font-size:16px; }
  footer h5{ color:#fff; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:16px; }
  footer ul li{ margin-bottom:10px; font-size:13px;line-height: 20px; }
  footer ul li a{ transition:color .3s var(--ease), padding-left .3s var(--ease); }
  footer ul li a:hover{ color:var(--gold-400); padding-left:4px; }
  .foot-map{ height:100px; border-radius:14px; background:linear-gradient(150deg, rgba(255,255,255,.08), rgba(255,255,255,.03)); border:1px solid rgba(255,255,255,.12); margin-bottom:14px; display:flex; align-items:center; justify-content:center; }
  .foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:12px; color:rgba(255,250,240,.4); flex-wrap:wrap; gap:10px; }
  @media (max-width:980px){ .foot-grid{ grid-template-columns:1fr 1fr; row-gap:32px; } }
  @media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; } }

  .to-top{position:fixed;right:20px;bottom:20px;z-index:120;width:46px;height:46px;border-radius:999px;background: #ffeb00;color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .4s var(--ease), transform .4s var(--ease), visibility .4s;color: #000;}
  .to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }

  @media (max-width:640px){
    .section{ padding:64px 0; }
    .cta-banner{ padding:44px 22px; }
  }

  /* ============ Mobile overflow & wrapping fixes ============ */
  html, body{ max-width:100%; }

  /* prevent grid/flex children from being blown out by long content */
  .journey-left, .stat-col, .quote-box, .foot-grid > div, .pkg-tile .cap, .fleet-info{ min-width:0; }

  /* hero badge must never exceed viewport */
  .hero-badge{ max-width:100%; }

  /* buttons: allow label to wrap on small screens instead of overflowing */
  @media (max-width:520px){
    .btn{ white-space:normal; text-align:center; padding:12px 18px; }
    .cta-actions .btn{ width:100%; justify-content:center; }
  }

  /* package tile captions: long names wrap instead of overflowing */
  .pkg-tile .cap .t{ overflow-wrap:anywhere; }
  @media (max-width:600px){
    .pkg-tile .cap .t{ font-size:14px; }
    .pkg-tile .cap .s{ font-size:12px; }
  }

  /* fleet card names */
  .fleet-info h5{ overflow-wrap:anywhere; }
  @media (max-width:480px){
    .fleet-info h5{ font-size:15px; }
  }

  /* service chips: tighter padding + smaller label so text fits */
  @media (max-width:480px){
    .service-chip{ padding:16px 8px; }
    .service-chip span{ font-size:15px; overflow-wrap:anywhere; }
  }

  /* journey step labels */
  .journey-step span{ overflow-wrap:anywhere; }

  /* testimonial tag */
  .quote-box .tag{ overflow-wrap:anywhere; }

  /* why-card titles on very small screens */
  @media (max-width:400px){
    .why-card{ padding:20px 12px; }
    .why-card h4{ font-size:15px; overflow-wrap:anywhere; }
  }

  /* trust strip: stack full-width on very small screens */
  @media (max-width:380px){
    .trust-item{ flex:1 1 100%; }
  }

  /* footer long strings (email/address) must wrap */
  footer ul li, .foot-brand p{ overflow-wrap:anywhere; }
