:root{--ink:#0A2540;--amber:#F5A623;--amber-d:#D98B00;--sand:#FFF4DC;--sky:#E6EFFB;--body:#33415c}
body{font-family:'DM Sans',sans-serif;color:var(--body);background:#FFFBF2;scroll-behavior:smooth}
html{scroll-behavior:smooth;scroll-padding-top:76px}
h1,h2,h3,h5,.brand{font-family:'Bricolage Grotesque',sans-serif;color:var(--ink)}
.gnav{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 1px 0 #eadfc8;padding:.7rem 0}
.brand{display:flex;gap:.6rem;align-items:center;text-decoration:none;font-weight:800;font-size:1.3rem;line-height:1}
.brand small{display:block;font:500 .7rem 'DM Sans';color:#7a869c;margin-top:2px}
.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--amber);font-size:1.4rem}
.navlinks a:not(.btn){color:var(--ink);text-decoration:none;font-weight:500}.navlinks a:not(.btn):hover{color:var(--amber-d)}
.btn-gati{background:var(--amber);color:var(--ink);font-weight:700;border:0}.btn-gati:hover{background:var(--amber-d);color:#fff}
.btn-wa{background:#1FA855;color:#fff;font-weight:700}.btn-wa:hover{background:#178a45;color:#fff}
.burger{border:0;background:none;font-size:2rem;color:var(--ink)}
.overlay{position:fixed;inset:0;z-index:100;background:rgba(10,37,64,.7);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.25s}
.overlay.open{opacity:1;visibility:visible}
.overlay-card{background:#fff;border-radius:20px;width:min(88%,380px);padding:1.5rem;display:flex;flex-direction:column;gap:.8rem;transform:scale(.94);transition:.25s}
.overlay.open .overlay-card{transform:none}
.overlay-card a:not(.btn){font:700 1.4rem 'Bricolage Grotesque';color:var(--ink);text-decoration:none;padding:.7rem .4rem;border-bottom:1px solid #eee}
.overlay-card .btn{padding:.9rem;font-size:1.1rem}
.close-x{position:absolute;top:1rem;right:1rem;width:48px;height:48px;border-radius:50%;border:0;background:#fff;font-size:1.2rem}
.hero{padding:4rem 0;background:linear-gradient(135deg,var(--sand),var(--sky))}
.hero h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:800;line-height:1.1;max-width:18ch;margin:.5rem 0 1rem}
.kicker{font-weight:700;color:var(--amber-d);margin:0}.lead{max-width:48ch}
.route{background:#fff;border-radius:20px;padding:1.5rem;box-shadow:0 12px 30px rgba(10,37,64,.12);font-weight:700;color:var(--ink)}
.route .line{border-left:3px dashed var(--amber);margin:.6rem 0 .6rem .5rem;padding:.8rem 0 .8rem 1rem;color:var(--amber-d);font-size:1.4rem}
.sec{padding:4rem 0}.alt{background:var(--sand)}
.sec h2{font-size:clamp(1.6rem,3.5vw,2.3rem);font-weight:800;margin-bottom:1.5rem}.sub{margin:-1rem 0 1.5rem}
.card-g,.city,.why,.info,.enq{background:#fff;border-radius:16px;padding:1.4rem;height:100%;border:1px solid #efe4cc;transition:transform .25s,box-shadow .25s}
.card-g:hover,.city:hover,.why:hover{transform:translateY(-6px);box-shadow:0 14px 28px rgba(10,37,64,.12)}
.card-g i,.why i{font-size:2rem;color:var(--amber-d)}.card-g h3,.why h3{font-size:1.2rem;margin:.6rem 0 .3rem}.city h3{font-size:1.2rem}.city p,.card-g p,.why p{margin:0;font-size:.95rem}
.cover{display:flex;gap:1rem;align-items:center;background:var(--ink);color:#dbe4f5;border-radius:16px;padding:1.5rem;margin-top:1.5rem}
.cover i{font-size:2.6rem;color:var(--amber)}.cover h3{color:#fff;margin:0 0 .3rem;font-size:1.3rem}.cover p{margin:0}
.info i{color:var(--amber-d)}.info iframe{width:100%;height:240px;border:0;border-radius:12px;margin-top:.5rem}.info a{color:var(--ink);font-weight:700}
.enq label{font-weight:700;color:var(--ink);font-size:.9rem;margin-bottom:.25rem}
.form-control:focus,.form-select:focus{border-color:var(--amber);box-shadow:0 0 0 .2rem rgba(245,166,35,.3)}
.gfoot{background:var(--ink);color:#b9c5de;padding:3rem 0 1rem}.gfoot h5,.gfoot h6{color:#fff}
.gfoot a,.gfoot span{display:block;color:#b9c5de;text-decoration:none;margin-bottom:.35rem;font-size:.92rem}.gfoot a:hover{color:var(--amber)}
.soc a{display:inline-block;font-size:1.4rem;margin-right:.8rem}.copy{border-top:1px solid #2a4170;margin-top:1.5rem;padding-top:1rem;font-size:.85rem}
.wa-float,.totop{position:fixed;right:16px;z-index:60;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;border:0;font-size:1.6rem;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.wa-float{bottom:20px;background:#1FA855;color:#fff}.totop{bottom:86px;background:var(--ink);color:var(--amber);font-size:1.2rem;opacity:0;visibility:hidden;transition:.25s}.totop.show{opacity:1;visibility:visible}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}.reveal.in{opacity:1;transform:none}
.ok{font-size:4rem;color:#1FA855}.refno{background:#fff;display:inline-block;padding:.6rem 1.2rem;border-radius:12px;border:1px dashed var(--amber-d)}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.reveal{opacity:1;transform:none}}
/* ---- v2 polish ---- */
.gnav.scrolled{box-shadow:0 6px 20px rgba(10,37,64,.1)}
.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 85% 20%,#FFE2A3 0,transparent 40%),linear-gradient(135deg,#FFF4DC,#E6EFFB)}
.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(10,37,64,.035) 0 2px,transparent 2px 22px)}
.hero .container{position:relative}
.hero h1{max-width:20ch}
.btn-lg{border-radius:50px;padding:.8rem 1.6rem}.btn-gati,.btn-wa{border-radius:50px}
.btn-gati{box-shadow:0 8px 18px rgba(245,166,35,.45)}.btn-wa{box-shadow:0 8px 18px rgba(31,168,85,.35)}
.vis{position:relative;max-width:440px;margin:auto}.vis svg{width:100%;filter:drop-shadow(0 18px 24px rgba(10,37,64,.18));animation:drive 5s ease-in-out infinite}
@keyframes drive{50%{transform:translateX(10px)}}
.chip{position:absolute;background:#fff;border-radius:50px;padding:.45rem .9rem;font-weight:700;font-size:.85rem;color:var(--ink);box-shadow:0 8px 20px rgba(10,37,64,.15)}
.chip i{color:var(--amber-d)}.c1{top:6%;left:0}.c2{top:42%;right:-2%}.c3{bottom:2%;left:8%}
.strip{background:var(--ink);padding:1.1rem 0;color:#fff}.strip i{color:var(--amber);font-size:1.3rem;margin-right:.5rem;vertical-align:middle}.strip b{vertical-align:middle}
.sec h2{position:relative;padding-bottom:.8rem}.sec h2:after{content:"";position:absolute;left:0;bottom:0;width:56px;height:5px;border-radius:5px;background:var(--amber)}
.card-g i,.why i{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--sand);font-size:1.7rem}
.card-g:hover i{background:var(--amber);color:var(--ink)}
.card-g{border-top:4px solid transparent}.card-g:hover{border-top-color:var(--amber)}
.city{border-left:5px solid var(--amber)}
.stp{background:#fff;border-radius:16px;padding:1.4rem;height:100%;position:relative;border:1px solid #efe4cc}
.stp span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--amber);font:800 1.1rem 'Bricolage Grotesque';margin-bottom:.6rem}
.stp h3{font-size:1.15rem}.stp p{margin:0;font-size:.95rem}
.enq{box-shadow:0 14px 34px rgba(10,37,64,.1);border-top:5px solid var(--amber)}
.form-control,.form-select{border-radius:10px;padding:.65rem .8rem}
@media(max-width:575px){.chip{font-size:.75rem}.hero{padding:2.5rem 0}.sec{padding:2.8rem 0}}
/* ---- inner pages ---- */
.phero{padding:3rem 0;background:radial-gradient(circle at 90% 10%,#FFE2A3 0,transparent 40%),linear-gradient(135deg,#FFF4DC,#E6EFFB)}
.phero h1{font-size:clamp(1.8rem,4.5vw,2.8rem);font-weight:800;margin:.4rem 0 .8rem}
.crumb{font-size:.9rem}.crumb a{color:var(--amber-d);text-decoration:none;font-weight:700}
.more{display:inline-block;margin-top:.6rem;font-weight:700;color:var(--amber-d);font-size:.9rem}
a.card-g p,a.city p{color:var(--body)}
.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tags span,.tags a{background:#fff;border:1px solid #efe4cc;border-radius:50px;padding:.4rem .9rem;font-size:.9rem;color:var(--ink);text-decoration:none;font-weight:500}
.tags a:hover{background:var(--amber)}
.tick{list-style:none;padding:0}.tick li{padding:.5rem 0;font-size:1.05rem}.tick i{color:#1FA855;margin-right:.4rem}
.navlinks .dropdown-menu{border:0;border-radius:14px;box-shadow:0 12px 30px rgba(10,37,64,.15);padding:.5rem}
.navlinks .dropdown-item{border-radius:8px;padding:.5rem .9rem}.navlinks .dropdown-item:hover{background:var(--sand)}
.ovs{max-height:90vh;overflow:auto;gap:.2rem}.ovh{font:800 .8rem 'DM Sans';letter-spacing:.08em;text-transform:uppercase;color:var(--amber-d);margin-top:.6rem}
.overlay-card a.sm{font:500 1.05rem 'DM Sans'!important;padding:.45rem .4rem!important}
.seo{max-width:860px}.seo h2{font-size:1.6rem;margin:2rem 0 .8rem}.seo h2:first-child{margin-top:0}
.seo h3{font-size:1.15rem;margin:1.3rem 0 .4rem}.seo p,.seo li{line-height:1.75}.seo a{color:var(--amber-d);font-weight:700}.seo ul{padding-left:1.2rem}
/* ---- popup menu + hero v3 ---- */
.overlay{background:rgba(6,24,43,.72);backdrop-filter:blur(4px);padding:12px}
.pop{background:#fff;border-radius:24px;width:min(94%,440px);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);transform:translateY(24px) scale(.96);transition:transform .3s}
.overlay.open .pop{transform:none}
.pop-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;background:linear-gradient(135deg,var(--sand),var(--sky));border-bottom:1px solid #efe4cc}
.pop-x{width:44px;height:44px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-size:1rem}
.pop-body{padding:.6rem .8rem;overflow:auto;flex:1}
.pl{display:flex;align-items:center;gap:.8rem;width:100%;padding:.95rem .8rem;border:0;background:none;border-radius:12px;font:700 1.1rem 'Bricolage Grotesque',sans-serif;color:var(--ink);text-decoration:none;text-align:left}
.pl>i:first-child{color:var(--amber-d);font-size:1.3rem}.pl:hover,.pl.on{background:var(--sand)}
.pl .ch{margin-left:auto;font-size:.9rem;transition:transform .25s}.pl.on .ch{transform:rotate(180deg)}
.sub{display:none;padding:0 0 .4rem 1rem}.sub a{display:flex;gap:.6rem;align-items:center;padding:.7rem .8rem;border-radius:10px;color:var(--body);text-decoration:none;font-weight:500}
.sub a i{color:var(--amber-d)}.sub a:hover{background:var(--sky);color:var(--ink)}
.pop-foot{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;padding:.9rem 1rem;border-top:1px solid #efe4cc;background:#fff}
.pop-foot .btn{padding:.85rem;font-size:1rem}
.hl{background:linear-gradient(transparent 62%,var(--amber) 62%);padding:0 .15em}
.badges{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin-top:1.3rem;font-weight:700;color:var(--ink);font-size:.92rem}.badges i{color:#1FA855}
.hq{box-shadow:0 22px 48px rgba(10,37,64,.18);padding:1.5rem;border-top-width:6px}.hq h3{font-size:1.4rem;margin-bottom:.2rem}.hq h3 i{color:var(--amber-d)}
@media(max-width:991px){.hero{padding:2.2rem 0 2.6rem}.hero h1{max-width:none}}
@media(max-width:575px){.hero .btn-lg{width:100%}.hero h1{font-size:1.9rem}.hq{padding:1.1rem}.brand{font-size:1.15rem}.brand-mark{width:36px;height:36px}.strip b{font-size:.9rem}}
/* ---- v4 impressive home ---- */
.hero{padding:4.5rem 0 5.5rem}.road{position:absolute;left:0;right:0;bottom:0;height:34px;border-top:3px dashed rgba(10,37,64,.25)}
.road i{position:absolute;bottom:2px;font-size:2rem;color:var(--ink);animation:ride 14s linear infinite}
@keyframes ride{from{left:-60px}to{left:100%}}
.hero h1{font-size:clamp(2.1rem,5.4vw,3.8rem)}
.marq{overflow:hidden;background:var(--amber);padding:.7rem 0;white-space:nowrap}
.marq .track{display:inline-flex;gap:2.2rem;animation:slide 28s linear infinite}.marq a{color:var(--ink);font-weight:700;text-decoration:none}
@keyframes slide{to{transform:translateX(-50%)}}
.cta{background:linear-gradient(120deg,var(--ink),#123B63);color:#fff;padding:2.6rem 0}.cta .container{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;justify-content:space-between}
.cta h2{color:#fff;font-size:clamp(1.4rem,3vw,2rem);margin:0 0 .3rem}.cta p{margin:0;color:#cfd9ee}
@media(prefers-reduced-motion:reduce){.road i,.marq .track{animation:none}}
/* ---- image cards ---- */
:root{--teal:#12B5A6;--coral:#FF6B4A}
.pc{position:relative;background:#fff;border-radius:18px;overflow:hidden;border:1px solid #efe4cc;box-shadow:0 8px 22px rgba(10,37,64,.09);height:100%;transition:transform .3s,box-shadow .3s}
.pc:hover{transform:translateY(-7px);box-shadow:0 20px 36px rgba(10,37,64,.2)}
.pc-img{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--sand)}
.pc-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.pc:hover .pc-img img{transform:scale(1.1)}
.pc-badge{position:absolute;right:10px;bottom:10px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--coral),#E23B63);color:#fff;font-size:1.15rem;box-shadow:0 6px 14px rgba(226,59,99,.45);border:2px solid #fff;transition:transform .3s}
.pc:hover .pc-badge{transform:rotate(-12deg) scale(1.1)}
.pc-body{display:block;padding:.85rem 1rem 1rem}.pc-body h3{font-size:1.05rem;margin:0 0 .2rem;color:var(--ink)}.pc-body p{margin:0;font-size:.88rem;color:var(--body)}
.pc:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--amber),var(--coral),var(--teal));transform:scaleX(0);transform-origin:left;transition:transform .35s}.pc:hover:after{transform:scaleX(1)}
#cities{background:linear-gradient(180deg,#E4F6F2,#FFF1D6)}#services{background:#fff}
.cover-img{width:190px;border-radius:14px;flex:none}
@media(max-width:575px){.cover{flex-direction:column;align-items:stretch}.cover-img{width:100%}.pc-body h3{font-size:.95rem}.pc-body p{font-size:.8rem}.pc-badge{width:36px;height:36px;font-size:1rem}}
/* ---- hero collage, form section, mobile bar ---- */
.collage{position:relative;max-width:470px;aspect-ratio:1/1;margin:auto}
.collage img{position:absolute;object-fit:cover;border:5px solid #fff;border-radius:22px;box-shadow:0 18px 36px rgba(10,37,64,.22)}
.c-a{left:0;top:0;width:62%;height:50%;transform:rotate(-3deg)}.c-b{right:0;top:22%;width:50%;height:42%;transform:rotate(3deg)}.c-c{left:8%;bottom:0;width:58%;height:40%;transform:rotate(-1.5deg)}
.fchip{position:absolute;display:flex;align-items:center;gap:.6rem;background:#fff;border-radius:50px;padding:.5rem 1rem .5rem .55rem;text-decoration:none;color:var(--ink);box-shadow:0 12px 26px rgba(10,37,64,.22);font-size:.8rem;line-height:1.15;animation:bob 3.5s ease-in-out infinite}
.fchip i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--amber);color:var(--ink);font-size:1.1rem}.fchip b{display:block;font-size:.9rem}
.f2 i{background:#1FA855;color:#fff}.f1{right:2%;bottom:30%}.f2{right:6%;bottom:8%;animation-delay:1s}
@keyframes bob{50%{transform:translateY(-8px)}}
.formsec{background:linear-gradient(135deg,#FFF1D6,#E4F6F2);padding:3rem 0}.formsec .enq{box-shadow:0 20px 44px rgba(10,37,64,.15)}
.phero-img{width:100%;max-height:260px;object-fit:cover;border:5px solid #fff;border-radius:22px;box-shadow:0 16px 32px rgba(10,37,64,.18)}
.bigmap{width:100%;height:100%;min-height:280px;border:0;border-radius:16px}
.mbar{display:none}
@media(max-width:767px){.mbar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:70;background:#fff;box-shadow:0 -6px 18px rgba(10,37,64,.18)}
.mbar a{padding:.7rem 0;text-align:center;font-weight:700;font-size:.85rem;color:var(--ink);text-decoration:none}.mbar a i{display:block;font-size:1.2rem;color:var(--amber-d)}.mbar a.w i{color:#1FA855}
.wa-float{display:none}.totop{bottom:76px}body{padding-bottom:62px}.collage{max-width:340px}.fchip{font-size:.7rem}}
/* ---- navy theme v5: breadcrumbs + inner hero + home polish ---- */
.phero{position:relative;overflow:hidden;color:#fff;padding:2.4rem 0 3rem;background:radial-gradient(circle at 88% 12%,rgba(245,166,35,.3),transparent 42%),repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 2px,transparent 2px 24px),linear-gradient(135deg,#0A2540,#123B63)}
.phero h1{color:#fff}.phero .lead{color:#cfdcec;max-width:52ch}
.gcrumb{display:inline-flex;flex-wrap:wrap;margin:0 0 1.2rem;padding:.5rem 1.1rem;border-radius:50px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(4px);font-size:.88rem;--bs-breadcrumb-divider:'›';--bs-breadcrumb-divider-color:#F5A623;--bs-breadcrumb-item-active-color:#F5A623;--bs-breadcrumb-item-padding-x:.6rem}
.gcrumb a{color:#fff;text-decoration:none;font-weight:600}.gcrumb a:hover{color:#F5A623}.gcrumb .active{font-weight:700}.gcrumb i{color:#F5A623}
.phero-img{border-color:rgba(255,255,255,.9)}
.sec-head{text-align:center;max-width:640px;margin:0 auto 2rem}.sec-head h2{margin-bottom:0}.sec-head h2:after{left:50%;transform:translateX(-50%)}
.sec-head .kicker{display:block;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;margin-bottom:.3rem}.sub{text-align:center}
.hero{background:radial-gradient(circle at 88% 12%,rgba(245,166,35,.3),transparent 40%),linear-gradient(135deg,#FFF4DC,#DCE8F6)}
.hero .kicker{display:inline-block;background:var(--ink);color:#fff;padding:.3rem .9rem;border-radius:50px;font-size:.82rem}
.cta{background:radial-gradient(circle at 90% 20%,rgba(245,166,35,.3),transparent 40%),linear-gradient(120deg,#0A2540,#123B63)}
.card-g:hover i,.why:hover i{background:var(--ink);color:var(--amber)}
.pc-body h3,.stp h3,.why h3{color:var(--ink)}
.gfoot{background:#071B30}.brand-mark{background:var(--ink);color:var(--amber)}
@media(max-width:575px){.phero{padding:1.8rem 0 2.2rem}.gcrumb{font-size:.8rem;padding:.4rem .85rem}.sec-head{margin-bottom:1.4rem}}
