:root{--red:#e81b2a;--blue:#57aee4;--text:#333;--bg:#fff;--grey:#e8e8e8}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#eee;color:var(--text);font:16px/1.65 "PT Serif",Georgia,serif;overflow-x:hidden}
main{background:var(--bg)}
img{max-width:100%;height:auto;vertical-align:middle}
a{color:#000;text-decoration:none}a:hover{color:var(--red)}
h1,h2,h3,h4{font-family:Roboto,Arial,sans-serif;color:#1a1a1a;line-height:1.25;margin:0 0 .6em}
p{margin:0 0 1em}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.site-header__in{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:100px}
.logo img{height:80px;width:auto;display:block}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.nav a{display:block;padding:8px 14px;color:#333;font-size:16px}
.nav a:hover,.nav a.is-current{color:var(--red)}
.nav>ul>li>a:hover{color:var(--blue)}
.has-sub{position:relative}
.sub{list-style:none;margin:0;padding:0;position:absolute;top:100%;left:0;min-width:240px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.18);display:none}
.has-sub:hover>.sub,.has-sub:focus-within>.sub{display:block}
.sub a{padding:10px 18px;font-size:15px}.sub a:hover{background:var(--red);color:#fff}
.sub-toggle,.nav-toggle{display:none}
/* title bar */
.titlebar{background:#eee;text-align:center;padding:26px 20px}
.titlebar h1{margin:0;font-size:32px;font-weight:700}
/* page builder rows/cols */
.vc-row{padding:40px 0}.vc-row.h-small{padding:30px 0}.vc-row.h-auto{padding:0}.vc-row.h-medium{padding:50px 0}
.vc-row__inner{max-width:1200px;margin:0 auto;padding:0 15px;display:flex;flex-wrap:wrap}
.vc-row.w-full>.vc-row__inner{max-width:none;padding:0}
.vc-row.h-small>.vc-row__inner{padding-left:15px;padding-right:15px}
.vc-col{padding:0 15px;min-width:0}
.vc-row.w-full .vc-col[style*="width:100%"]{padding-left:0;padding-right:0}.vc-col__inner{height:100%}
.vc-row-inner{display:flex;flex-wrap:wrap;margin:0 -15px;width:calc(100% + 30px)}
.wpb-heading{margin-bottom:.5em}
.wpb-text p{margin-bottom:1em}
.us-image{margin-bottom:15px}.us-image.align-center{text-align:center}.us-image.align-right{text-align:right}
.us-image__box{display:inline-block;max-width:100%}.us-image.shadow img{box-shadow:0 4px 14px rgba(0,0,0,.18)}
.us-image__meta{font-size:14px;text-align:center;margin-top:6px;font-family:Roboto,sans-serif}
.sep{border:0;border-top:1px solid #ddd;margin:20px 0}
.btn,.enquiry button{display:inline-block;background:#e7181c;color:#fff;border:0;border-radius:3px;padding:.8em 1.8em;font:700 15px Roboto,Arial,sans-serif;cursor:pointer;transition:background .2s}
.btn:hover,.enquiry button:hover{background:var(--blue);color:#fff}
.btn-green{background:#8ec546;color:#fff}.btn-green:hover{background:#333;color:#fff}.btn-lg{font-size:20px}
.btn-wrap{margin:0 0 15px}.btn-wrap.align-center{text-align:center}
/* info box */
.ib{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.ib__ic img{display:block}.ib__body{flex:1;min-width:0}.ib__title{margin:0 0 6px}.ib__text p{margin:0}
.ib__icon{display:flex;align-items:center;justify-content:center}
.ib__icon.adv{width:34px;height:34px;border:1px solid;border-radius:50%;flex:none}
.ib__text a{word-break:break-word}
/* progress */
.progbar{margin:0 0 22px;font-family:Roboto,sans-serif;font-weight:500}
.progbar__title{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px;text-transform:uppercase}
.progbar__bar{height:3px;background:#e8e8e8}.progbar__bar i{display:block;height:100%;width:0;background:var(--blue);transition:width 1.4s ease}
/* tabs */
.tabs{display:flex;gap:25px;margin:10px 0 30px}
.tabs__nav{list-style:none;margin:0;padding:0;width:230px;flex:none;background:#f5f5f5}
.tab-btn{width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #e0e0e0;padding:11px 16px;font:15px "PT Serif",serif;cursor:pointer;color:#333}
.tab-btn.is-active{background:#fff;color:var(--red)}
.tabs__panels{flex:1;min-width:0}.tab-panel{display:none}.tab-panel.is-active{display:block}
/* carousel */
.carousel{position:relative;padding:0 34px}
.carousel__viewport{overflow:hidden}.carousel__track{display:flex;transition:transform .5s ease}
.carousel__slide{flex:none;padding:0 8px;text-align:center}.carousel__slide .us-image{margin-bottom:0}
.carousel__btn{position:absolute;top:40%;width:28px;height:28px;border:0;background:none;cursor:pointer;opacity:.6}
.carousel__btn:hover{opacity:1}.carousel__btn::before{content:"";display:block;width:10px;height:10px;border:solid #333;border-width:0 0 2px 2px;margin:auto}
.carousel__btn.prev{left:0}.carousel__btn.prev::before{transform:rotate(45deg)}
.carousel__btn.next{right:0}.carousel__btn.next::before{transform:rotate(-135deg)}
/* timeline */
.timeline{position:relative;max-width:900px;margin:0 auto;padding:10px 0}
.timeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:#333;transform:translateX(-50%)}
.tl__item{position:relative;width:50%;padding:0 40px 30px 0}.tl__item.tl-right{margin-left:50%;padding:0 0 30px 40px}
.tl__box{background:#e8e8e8;padding:16px 20px;border-radius:3px}.tl__name{margin:0 0 6px}
.tl__box p{margin:0}
.tl__dot{position:absolute;top:18px;width:14px;height:14px;border-radius:50%;background:#e7181c;right:-7px}.tl-right .tl__dot{right:auto;left:-7px}
/* hero */
.hero{position:relative;height:clamp(340px,33.8vw,650px);overflow:hidden;background:#1a4f8a}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__slides{position:absolute;inset:0}
.hs{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 7%;opacity:0;transition:opacity .6s;color:#fff;font-weight:700}
.hs.is-active{opacity:1}.hs-right{align-items:flex-end;text-align:right;padding-right:6%}
.hs p{margin:0}.hs .l1{font-size:clamp(17px,2.1vw,40px);line-height:1.75}
.hs .l2{font-size:clamp(26px,3.65vw,70px);line-height:1.43;color:#f5f12d}
/* home grid */
.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#222;color:#fff;text-decoration:none}
.tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.tile:hover img,.tile:focus-visible img{transform:scale(1.07)}
.tile__overlay{position:absolute;inset:0;background:rgba(0,0,0,.54);opacity:0;transition:opacity .3s ease;pointer-events:none}
.tile:hover .tile__overlay,.tile:focus-visible .tile__overlay{opacity:1}
.tile__actions{position:absolute;top:10px;left:10px;display:flex;gap:8px;z-index:3;opacity:0;transform:translateY(-6px);transition:opacity .3s ease,transform .3s ease}
.tile:hover .tile__actions,.tile:focus-visible .tile__actions{opacity:1;transform:translateY(0)}
.tile__icon{width:46px;height:46px;border:1px solid rgba(255,255,255,.9);border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#fff;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);box-sizing:border-box}
.tile__link-icon{cursor:pointer}
.tile__zoom{padding:0;font:inherit;cursor:zoom-in}
.tile__icon svg{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tile__zoom:hover,.tile__zoom:focus-visible,.tile__link-icon:hover{background:#fff;color:#222}
.tile__cap{position:absolute;left:0;right:0;bottom:0;padding:14px;background:rgba(0,0,0,.6);color:#fff;font:700 15px Roboto,sans-serif;text-transform:uppercase;letter-spacing:.05em;transform:translateY(101%);transition:transform .3s ease;z-index:2}
.tile:hover .tile__cap,.tile:focus-visible .tile__cap{transform:none}
body.lightbox-open{overflow:hidden}
.image-lightbox{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:30px;box-sizing:border-box;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility .25s ease}
.image-lightbox.is-open{visibility:visible;opacity:1}
.image-lightbox__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.88);cursor:zoom-out}
.image-lightbox__dialog{position:relative;z-index:1;max-width:min(94vw,1400px);max-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.image-lightbox__dialog img{display:block;max-width:94vw;max-height:84vh;width:auto;height:auto;object-fit:contain;box-shadow:0 15px 50px rgba(0,0,0,.45);background:#fff}
.image-lightbox__close{position:absolute;top:-16px;right:-16px;width:42px;height:42px;border:1px solid rgba(255,255,255,.9);border-radius:50%;background:#fff;color:#222;font-size:30px;line-height:38px;padding:0;cursor:pointer;z-index:2;box-shadow:0 4px 15px rgba(0,0,0,.3)}
.image-lightbox__close:hover,.image-lightbox__close:focus-visible{background:#e7181c;color:#fff;border-color:#e7181c}
.image-lightbox__title{margin-top:12px;color:#fff;font:700 15px Roboto,sans-serif;text-transform:uppercase;letter-spacing:.05em;text-align:center}
@media (hover:none){.tile__actions{opacity:1;transform:none}.tile__overlay{opacity:1}.tile__cap{transform:none}}
@media (max-width:767px){.home-grid{grid-template-columns:1fr 1fr}.tile__actions{top:8px;left:8px;gap:6px}.tile__icon{width:40px;height:40px}.tile__icon svg{width:18px;height:18px}.image-lightbox{padding:18px}.image-lightbox__dialog img{max-width:96vw;max-height:82vh}.image-lightbox__close{top:-12px;right:-8px;width:38px;height:38px;font-size:27px;line-height:34px}}
@media (max-width:480px){.home-grid{grid-template-columns:1fr}.tile__cap{font-size:13px;padding:11px}}
/* footer */
.site-footer{background:#181818;color:#888}.wrap{max-width:1200px;margin:0 auto;padding:0 15px}
.site-footer__top{padding:40px 0 20px}.cols4{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.site-footer h3{color:#fff;font-size:22px}.site-footer a{color:#ccc}.site-footer a:hover{color:#fff}
.site-footer p{text-align:justify;font-size:15px}.plain{list-style:none;margin:0;padding:0;font-size:15px}.plain li{margin-bottom:4px}
.fbox{background:#232323;border-top:2px solid #f5c02d;padding:18px;font-size:15px}.fbox .ib:last-child{margin-bottom:0}
.site-footer__bottom{background:#1a1a1a;border-top:1px solid #282828;padding:14px 0}
.bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.bar p{margin:0;color:#fff;font-size:14px}
.footer-menu{list-style:none;margin:0;padding:0;display:flex;gap:18px;flex-wrap:wrap;font-size:14px}
/* contact */
.enquiry input,.enquiry textarea{width:100%;background:#e8e8e8;border:2px solid transparent;border-radius:2px;padding:12px 14px;font:16px "PT Serif",serif;color:#333}
.enquiry input:focus,.enquiry textarea:focus{outline:0;border-color:var(--blue);background:#fff}
.form-msg{padding:12px 16px;border-radius:3px;margin-top:6px}.form-msg.ok{background:#e6f4ea;color:#1e6b33;border:1px solid #9bd3ab}.form-msg.err{background:#fdecea;color:#a02020;border:1px solid #f0b4b0}
iframe{max-width:100%;display:block;width:100%}
.wa{position:fixed;left:14px;bottom:14px;z-index:60;width:54px;height:54px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.3)}
/* scroll-in animation (no layout shift) */
.anim{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}.anim.in{opacity:1;transform:none}
.no-js .anim{opacity:1;transform:none}
/* WPBakery responsive visibility */
@media(min-width:1200px){.vc_hidden-lg{display:none!important}.vc-row:not(:has(>.vc-row__inner>.vc-col:not(.vc_hidden-lg))){display:none}}
@media(min-width:992px) and (max-width:1199px){.vc_hidden-md{display:none!important}}
@media(min-width:768px) and (max-width:991px){.vc_hidden-sm{display:none!important}}
@media(max-width:767px){.vc_hidden-xs{display:none!important}}
@media(max-width:1199px){.vc-row:not(.w-full) .vc-col,.vc-row.w-full .vc-col:not([style*="width:100%"]){padding-left:15px!important;padding-right:15px!important}}
@media(max-width:991px){
  .site-header__in{height:76px}.logo img{height:60px}
  .nav-toggle{display:block;width:44px;height:44px;background:none;border:0;cursor:pointer;padding:10px}
  .nav-toggle span{display:block;height:3px;background:#333;margin:5px 0;border-radius:2px;transition:.25s}
  .nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .nav{position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:0 8px 14px rgba(0,0,0,.15);display:none;max-height:calc(100vh - 76px);overflow:auto}
  .nav.open{display:block}.nav>ul{flex-direction:column;gap:0}.nav>ul>li{border-top:1px solid #eee;position:relative}
  .nav a{padding:13px 20px}.sub{position:static;box-shadow:none;display:none;background:#f7f7f7}.has-sub:hover>.sub{display:none}.has-sub.open>.sub{display:block}
  .sub a{padding-left:36px}.sub-toggle{display:block;position:absolute;right:0;top:0;width:54px;height:49px;background:none;border:0;cursor:pointer}
  .sub-toggle::before{content:"";display:block;width:9px;height:9px;border:solid #333;border-width:0 2px 2px 0;transform:rotate(45deg);margin:auto}
  .has-sub.open>.sub-toggle::before{transform:rotate(-135deg)}
  .cols4{grid-template-columns:1fr 1fr}
}
@media(max-width:767px){
  body{font-size:15px}.vc-col{width:100%!important}.vc-row,.vc-row.h-medium{padding:28px 0}.vc-row.h-small{padding:22px 0}.vc-row.h-auto{padding:0}
  .titlebar h1{font-size:26px}.wpb-heading{font-size:24px}
  .tabs{flex-direction:column;gap:12px}.tabs__nav{width:100%;display:flex;flex-wrap:wrap}.tab-btn{width:auto;border:1px solid #e0e0e0;font-size:14px}
  .home-grid{grid-template-columns:1fr 1fr}.tile__cap{transform:none;padding:8px;font-size:12px}
  .hero{height:clamp(300px,78vw,420px)}.hs{padding:0 6%}.hs-right{align-items:flex-start;text-align:left;padding-right:6%}
  .hs .l1{line-height:1.5}.hs .l2{line-height:1.25}
  .cols4{grid-template-columns:1fr}.bar{flex-direction:column;align-items:flex-start}
  .carousel{padding:0 24px}
  .timeline::before{left:12px}.tl__item,.tl__item.tl-right{width:100%;margin-left:0;padding:0 0 22px 36px}.tl__dot,.tl-right .tl__dot{left:5px;right:auto}
  .btn-lg{font-size:17px}.vc-row-inner{margin:0;width:100%}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.socials{display:flex;gap:6px;margin-bottom:20px}
.soc{width:38px;height:38px;border:1px solid #e7181c;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#999}
.soc:hover{background:#e7181c;color:#fff}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,20,60,.35),rgba(0,0,0,0) 65%);pointer-events:none}
.hero__slides{z-index:2}
@media(max-width:767px){.hs .l1{font-size:clamp(15px,4.4vw,22px)}.hs .l2{font-size:clamp(24px,7vw,36px)}}
