/*
  BlueGen Marine — site stylesheet
  Built on Bootstrap 5's default grid/utilities. Layout uses normal
  document flow (container/row/col + spacing utilities) instead of
  vw-scaled clamp() math or position:absolute boxes tied to a 1920px
  canvas, so every section reflows naturally at any viewport width.
*/

:root{
  --blue:#006ebd;
  --blue-dark:#00588f;
  --cyan:#31bdf3;
  --cyan-num:#42aad7;
  --navy:#0e3854;
  --navy-nav:#024886;
  --logo-green:#17b26a;
  --nav-height:9.75rem;
}

body{
  font-family:'Montserrat', sans-serif;
  font-weight:500;
  color:var(--navy);
  background:#fff;
}


html{
  scroll-padding-top:var(--nav-height);
  scroll-behavior:smooth;
  /* Mobile Chrome/Safari "font boosting" recalculates text size when an
     ancestor's layout changes size — e.g. the navbar-collapse growing
     open — which visibly squeezes/rescales the nav-link text for a
     frame the first time it runs. Disabling auto-adjust stops it. */
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
h1,h2,h3,h4,.font-head{ font-family:'Montserrat', sans-serif; }
a{ text-decoration:none; }

/* Bootstrap's xxl container caps at 1320px; widen it to 1400px. */
@media (min-width:1400px){
  .container{ max-width:1400px; }
}

/* ============ NAVBAR ============ */
.site-nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:1030;
  padding-top:1.5rem;
  padding-bottom:4rem;
  background:linear-gradient(180deg, #fff 0%, #fff 30%, rgba(255,255,255,1) 65%, rgba(255,255,255,0) 100%);
  transition:padding-top .4s ease, padding-bottom .4s ease;
}
.site-nav .container{ align-items:center !important; }
.site-nav .navbar-brand img{ width:165px; max-width:100%; }
@media (min-width:1025px){ .elementor-20 .elementor-element.elementor-element-8e38b41 img{ width:165px; position:relative; top:-10px; } }
.hfe-nav-menu{ display: -webkit-inline-box; }
.site-nav .nav-link{
  font-family:Arial, Helvetica, sans-serif;
  font-weight:700;
  font-size:1rem;
  color:var(--navy-nav) !important;
  letter-spacing:.02em;
  text-align:left;
}
.site-nav .nav-link:hover{ color:var(--blue) !important; }
.site-nav .navbar-nav{ gap:0 2rem; }

.btn-brand{
  background:linear-gradient(90deg, var(--blue) 0%, var(--cyan) 50%, var(--logo-green) 100%);
  background-repeat:no-repeat;
  background-size:200% auto;
  background-position:0% 50%;
  color:#fff;
  font-family:Arial, Helvetica, sans-serif;
  font-weight:700;
  font-size:1rem;
  letter-spacing:.03em;
  padding:.7em 1.6em;
  border-radius:.4em;
  border:none;
  white-space:nowrap;
  transition:background-position .5s ease;
}
.btn-brand:hover{
  background-position:100% 50%;
  color:#fff;
}
.nav-cta-mobile{ display:none; }
@media (max-width:991.98px){


  .nav-cta-mobile{
    display:block;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #eef2f5;
  }
  .nav-cta-mobile .btn-brand{ width:100%; justify-content:space-between; display:inline-flex; }
  .nav-cta-mobile .nav-caret{ font-size:1.3em; }
  .navbar-collapse{
    background:#fff;
    margin-top:14px;
    padding:8px 16px 18px;
    border-radius:10px;
  }
  .navbar-nav{ gap:0 !important; }
  .navbar-nav .nav-item{ border-bottom:1px solid #eef2f5; }
  .navbar-nav .nav-item:last-child{ border-bottom:none; }
  .site-nav .nav-link{ padding:12px 0; }
}
.navbar-collapse.no-transition{ transition:none !important; }

/* ============ CONTACT US DROPDOWN ============ */
.contact-cta{ display:inline-flex; align-items:center; gap:.5em; }
.contact-cta-link{ color:#fff; text-decoration:none; text-align:left; }
.contact-cta-link:hover{ color:#fff; }
.contact-cta .contact-dropdown-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:none;
  padding:.5em;
  margin:-.5em -.5em -.5em 0;
  color:#fff;
  line-height:1;
  cursor:pointer;
}
.nav-caret{ font-size:.85em; display:inline-block; transition:transform .2s ease; }
.contact-dropdown{ position:relative; }
.simple-dropdown{
  list-style:none;
  margin:0;
  padding:.6rem 0;
  background:#fff;
  border-radius:.6rem;
  box-shadow:0 20px 45px rgba(2,30,55,.18);
  min-width:230px;
}
.simple-dropdown li{ position:relative; }
.simple-dropdown > li > a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  padding:.7rem 1.4rem;
  font-family:Arial, Helvetica, sans-serif;
  font-weight:700;
  font-size:.95rem;
  color:var(--navy-nav);
  text-align:left;
  white-space:nowrap;
}
.simple-dropdown > li > a:hover,
.simple-dropdown > li.open > a{ color:var(--blue); background:#f2faff; }
.has-submenu > a::after{
  content:'\203A';
  font-size:1.5rem;
  line-height:1;
  color:inherit;
}
@media (min-width:992px){
  .contact-dropdown > .simple-dropdown{
    position:absolute;
    top:calc(100% + .9rem);
    right:0;
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
    z-index:1050;
  }
  .contact-dropdown:hover > .simple-dropdown,
  .contact-dropdown.open > .simple-dropdown,
  .contact-dropdown:focus-within > .simple-dropdown{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  .contact-dropdown:hover .nav-caret,
  .contact-dropdown.open .nav-caret{ transform:rotate(180deg); }
  .submenu-flyout{
    position:absolute;
    top:-.6rem;
    left:100%;
    margin-left:.6rem;
    opacity:0;
    visibility:hidden;
    transform:translateX(8px);
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  }
  .has-submenu:hover > .submenu-flyout,
  .has-submenu.open > .submenu-flyout,
  .has-submenu:focus-within > .submenu-flyout{
    opacity:1;
    visibility:visible;
    transform:translateX(0);
  }
  .has-submenu.flyout-left > .submenu-flyout{
    left:auto;
    right:100%;
    margin-left:0;
    margin-right:.6rem;
  }
}
@media (max-width:991.98px){
  .simple-dropdown{
    display:none;
    box-shadow:none;
    background:#f7fbfd;
    border-radius:.5rem;
    margin:.4rem 0 .6rem;
    padding:.2rem 0;
    min-width:0;
  }
  .contact-dropdown.open > .simple-dropdown{ display:block; }
  .simple-dropdown > li > a{ padding:.85rem 1rem; font-size:1rem; min-height:2.75rem; }
  .has-submenu > a::after{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:2.75rem;
    min-height:2.75rem;
    margin:-.7rem -.6rem -.7rem 0;
    font-size:1.75rem;
    transform:rotate(90deg);
    transition:transform .2s ease;
  }
  .has-submenu.open > a::after{ transform:rotate(-90deg); }
  .submenu-flyout{
    display:none;
    box-shadow:none;
    background:#fff;
    margin:0 0 0 1rem;
    padding-left:.5rem;
    border-left:2px solid #e2f1fa;
  }
  .has-submenu.open > .submenu-flyout{ display:block; }
}

/* ============ HERO ============ */
.hero{
  position:relative;
  background:#045a72;
  min-height:80vh;
  display:flex;
  padding-top:16rem;
  padding-bottom:3rem;
  background-image: url(../images/hero-ship.jpg);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}
.hero > .container{ width:100%; }
.hero-ship{
  border-radius:1rem;
  box-shadow:0 24px 50px rgba(0,20,30,.35);
}
.hero-text h1{
  color:#fff;
  font-weight:600;
  font-size:2.75rem;
  line-height:1.15;
  margin-bottom:1.25rem;
}
.hero-text p{
  color:rgba(255,255,255,.92);
  font-weight:500;
  font-size:1.05rem;
  line-height:1.55;
  max-width:34rem;
}

/* ============ COMING SOON PAGE ============ */
.coming-soon-hero{
  background-color:#001545;
  background-image:url(../images/comingsoon.jpg);
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  min-height:60vh;
  padding-top:14rem;
  padding-bottom:5rem;
  align-items:center;
  text-align:center;
}
.coming-soon-hero .page-eyebrow{ margin-bottom:1.5rem; }
.coming-soon-hero .page-eyebrow a{ color:rgba(255,255,255,.75); font-weight:600; font-size:.95rem; }
.coming-soon-hero .page-eyebrow a:hover{ color:#fff; }
.coming-soon-hero h1{ color:#fff; font-weight:600; font-size:3rem; line-height:1.1; margin-bottom:1.25rem; }
.coming-soon-hero p{ color:rgba(255,255,255,.85); font-weight:500; font-size:1.1rem; line-height:1.6; max-width:36rem; margin:0 auto 2rem; }
@media (max-width:767.98px){
  .coming-soon-hero.hero{
    padding-top:8rem;
    min-height:70vh;
    align-items:center;
    background-image:url(../images/comingsoon.jpg);
  }
  .coming-soon-hero h1{ font-size:2rem; }
}

/* ============ TUG BOAT DETAIL PAGE ============ */
.tug-hero{
  background-color:var(--blue);
  background-image:none;
  background:linear-gradient(135deg, var(--blue) 30%, #efefef 100%);
  min-height:auto;
  padding-top:8rem;
  padding-bottom:4.5rem;
  align-items:center;
}
.page-eyebrow{ margin-bottom:1.5rem; }
.page-eyebrow a{ color:rgba(255,255,255,.75); font-weight:600; font-size:.95rem; display:inline-flex; align-items:center; gap:.5em; }
.page-eyebrow a:hover{ color:#fff; }
.tug-badges{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1rem; }
.tug-badges .infra-badge{ background:#fff; border-color:#fff; color:var(--blue-dark); box-shadow:0 6px 16px rgba(0,20,35,.18); }
.tug-badges .infra-badge i{ color:var(--cyan); }
.tug-hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:2rem; }
@media (max-width:767.98px){
  .tug-hero.hero{
    padding-top:10.5rem;
    min-height:auto;
    align-items:center;
    background-image:none;
    background:linear-gradient(135deg, var(--blue) 30%, #efefef 100%);
  }
}

.btn-brand-download{ display:inline-flex; align-items:center; gap:.6em; }
.btn-brand-download i{ font-size:1.1em; }
.tug-hero-carousel{
  position:relative;
  width:100%;
  aspect-ratio:4/3.4;
  border-radius:.85rem;
  overflow:hidden;
  box-shadow:0 20px 44px rgba(0,20,35,.28);
}
.tug-hero-carousel.hero-carousel-wide{ aspect-ratio:1600/833; }
.hero-carousel-wide .tug-hero-slide{ background:var(--blue-dark); }
.hero-carousel-wide .tug-hero-slide img{ object-fit:contain; }
.tug-hero-owl,
.tug-hero-owl .owl-stage-outer,
.tug-hero-owl .owl-stage,
.tug-hero-owl .owl-item,
.tug-hero-owl .tug-hero-slide{ height:100%; }
.tug-hero-owl .owl-stage{ display:block !important; transform:none !important; width:100% !important; }
.tug-hero-owl .owl-item{
  position:absolute;
  inset:0;
  width:100% !important;
  opacity:0;
  transition:opacity .8s ease;
}
.tug-hero-owl .owl-item.active{ opacity:1; z-index:1; }
.tug-hero-owl .tug-hero-slide,
.tug-hero-owl .tug-hero-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.tug-hero-carousel .owl-nav{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 .75rem;
  pointer-events:none;
  z-index:2;
}
.tug-hero-carousel .owl-nav button.owl-prev,
.tug-hero-carousel .owl-nav button.owl-next{
  pointer-events:auto;
  width:2.75rem;
  height:2.75rem;
  border-radius:50%;
  background:rgba(0,20,35,.45);
  color:#fff;
  border:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.3rem;
  line-height:1;
  transition:background .2s ease;
}
.tug-hero-carousel .owl-nav button.owl-prev:hover,
.tug-hero-carousel .owl-nav button.owl-next:hover{ background:rgba(0,20,35,.75); }
.tug-hero-carousel .owl-dots{
  position:absolute;
  bottom:.9rem;
  left:0;
  right:0;
  display:flex;
  justify-content:center;
  gap:8px;
  z-index:2;
}
.tug-hero-carousel .owl-dots button.owl-dot{ background:none; border:none; padding:0; }
.tug-hero-carousel .owl-dots button.owl-dot span{ display:block; width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.5); transition:background .2s ease; }
.tug-hero-carousel .owl-dots button.owl-dot.active span{ background:#fff; }
@media (max-width:991.98px){
  .tug-hero-carousel{ margin-top:2.5rem; aspect-ratio:16/10; }
  .tug-hero-carousel.hero-carousel-wide{ aspect-ratio:1600/833; }
}
@media (prefers-reduced-motion:reduce){
  .tug-hero-owl .owl-item{ transition:none; }
}

.spec-card{
  position:relative;
  overflow:hidden;
  background:#fff;
  border-radius:.7rem;
  box-shadow:0 14px 34px rgba(10,60,90,.08);
  padding:1.75rem;
  margin-bottom:1.5rem;
}
.spec-card-icon{
  position:absolute;
  right:1rem;
  bottom:1rem;
  width:4rem;
  height:4rem;
  object-fit:contain;
  opacity:.14;
  pointer-events:none;
  z-index:0;
}
.spec-card h3,
.spec-card .spec-table{ position:relative; z-index:1; }
.spec-card:last-child{ margin-bottom:0; }
.spec-card h3{
  display:flex;
  align-items:center;
  gap:.6em;
  color:var(--blue);
  font-weight:700;
  font-size:1.2rem;
  margin-bottom:1rem;
  line-height:1.25;
}
.spec-card h3 i{ color:var(--cyan); font-size:1.1em; }
.spec-table{ width:100%; border-collapse:collapse; }
.spec-table tr{ border-bottom:1px solid #eef2f5; }
.spec-table tr:last-child{ border-bottom:none; }
.spec-table th,
.spec-table td{ padding:.55rem 0; font-weight:500; font-size:.92rem; line-height:1.45; vertical-align:top; text-align:left; }
.spec-table th{ color:var(--navy); font-weight:600; width:44%; padding-right:1rem; }
.spec-table td{ color:var(--navy); opacity:.85; }
.spec-table-grid{ column-count:2; column-gap:2rem; }
.spec-table-grid tr{ break-inside:avoid; display:table; width:100%; }
@media (max-width:575.98px){
  .spec-table-grid{ column-count:1; }
}

/* ============ STAT CARDS ============ */
.stat-cards{ position:relative; z-index:6; margin-top:-4.5rem; padding-bottom:3.5rem; }
.stat-card{
  position:relative;
  overflow:hidden;
  background:linear-gradient(160deg,#ffffff 0%, #eafaff 100%);
  border-radius:.85rem;
  box-shadow:0 18px 40px rgba(10,60,90,.14);
  padding:2.5rem;
  height:100%;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.stat-card-icon{
  position:absolute;
  top:-1rem;
  right:-.5rem;
  font-size:6rem;
  line-height:1;
  color:var(--blue);
  opacity:.1;
  pointer-events:none;
  transition:opacity .25s ease, color .25s ease;
  z-index:2;
}
.stat-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:var(--blue);
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform .4s ease;
  z-index:0;
  pointer-events:none;
}
.stat-card:hover::after{ transform:scaleY(1); }
.stat-card:hover .stat-card-icon{ opacity:.4; color:#fff; }
.stat-card h2,
.stat-card p{ position:relative; z-index:1; }
.stat-card h2{ font-weight:700; font-size:1.7rem; color:var(--blue); margin-bottom:.6rem; text-transform: uppercase; }
.stat-card p{ font-weight:500; font-size:1rem; ; line-height:1.5; margin:0; }

/* ============ WORLD CLASS SECTION ============ */
.worldclass{ background:#fff; padding:4.5rem 0; 

  background-image: url(../images/worldclass-right.jpg);
  background-position: right bottom;
  background-size: contain;
  background-repeat: no-repeat;


}
.worldclass-right{ border-radius:.85rem; }
.worldclass h2{ color:var(--blue); font-weight:600; font-size:2.5rem; line-height:1.15; margin-bottom:1rem; }
.worldclass p{ font-weight:500; font-size:1.15rem; line-height:1.6; color:var(--navy); margin-bottom:1.25rem; }
.stat-box{
  background:var(--blue);
  color:#fff;
  border-radius:.6rem;
  padding:1.5rem 2rem;
  display:inline-block;
  box-shadow:0 20px 40px rgba(11,116,189,.25);
}
.stat-box .num{ font-weight:600; font-size:2.4rem; line-height:1; }
.stat-box .lbl{ font-weight:500; font-size:1rem; letter-spacing:.06em; opacity:.9; margin-top:.4em; }
.ppp-row{ display:flex; align-items:center; flex-wrap:wrap; gap:1.75rem; margin-bottom:1.25rem; }
.ppp-row .ppp-text{ flex:1 1 30px; margin-bottom:0; }
.ppp-row .stat-box{ flex:0 0 auto; margin-bottom:0; }

/* ============ PLATFORM SECTION ============ */
.platform{
  position:relative;
  background-color: #42aad7;
  color:#fff;
  text-align:center;
  min-height:80vh;
  display:flex;
  align-items:top;
  padding:4.5rem 0;

    background-image: url(../images/platform-clean.jpg);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}
.platform > .container{ width:100%; }
.platform h2{
  font-weight:600;
  font-size:2.5rem;
  line-height:1.15;
  text-shadow:0 2px 10px rgba(0,20,30,.25);
  margin-bottom:1.25rem;
}
.platform p{
  position:absolute;
  top:70%;
  left:1.5rem;
  right:1.5rem;
  transform:translateY(-50%);
  font-weight:500;
  font-size:1.15rem;
  line-height:1.55;
  text-shadow:0 1px 8px rgba(0,20,30,.35);
  max-width:44rem;
  margin:0 auto;
}
.stake-cards{ background:transparent; padding:3.5rem 0; 
padding-top: 0px;
margin-top: -138px;
position: relative; }
.stake-card{
  background:#fff;
  border-radius:.6rem;
  overflow:hidden;
  box-shadow:0 22px 44px rgba(15,60,95,.14);
  height:100%;
  display:flex;
  flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease;
}
.stake-card .hd{
  background:var(--cyan);
  color:#fff;
  font-weight:600;
  font-size:1.75rem;
  line-height:1.2;
  padding:1.5rem;
  min-height:7rem;
  display:flex;
  align-items:center;
}
.stake-card .bd{ padding:1.5rem; flex:1; }
.stake-card .bd h3{ color:var(--blue); font-weight:700; font-size:1.35rem; margin-bottom:.75rem; line-height:1.3; }
.stake-card .bd p{ font-weight:500; font-size:1rem; color:#000; line-height:1.6; margin-bottom:.9rem; }
.stake-card .bd a{ font-weight:500; font-size:1rem; color:#000; text-decoration:underline; }

/* ============ VESSELS SECTION ============ */
.vessels{ padding:4.5rem 0; background:#fff; }
.vessels-head .big-num{ font-weight:600; color:var(--cyan-num); font-size:10rem; line-height:.72; }
.vessels-head h2{ color:var(--blue); font-weight:600; font-size:2.5rem; line-height:1.1; margin:0 0 .35rem; }
.vessels-head .intro{ font-weight:500; font-size:1.15rem; color:var(--navy); line-height:1.6; }
.vessels-divider{ border:none; border-top:2px solid #bfe6f8; margin:1.75rem 0 2.25rem; }
.vessel-card{
  position:relative;
  background:#fff;
  border-radius:.6rem;
  box-shadow:0 0 22px rgba(0,110,189,.14), 0 10px 26px rgba(0,110,189,.12);
  overflow:hidden;
  height:100%;
  transition:transform .25s ease, box-shadow .25s ease;
}
.vessel-card .photo{ width:100%; aspect-ratio:700/480; object-fit:cover; background:#f4f9fc; transition:transform .35s ease; }
.vessel-card .info{ padding:1.5rem 1.5rem 1.85rem; display:flex; align-items:flex-start; gap:.85rem; }
.vessel-card .idx{ font-weight:500; font-size:3.5rem; color:#e8edf3; line-height:.86; }
.vessel-card h3{ color:var(--cyan); font-weight:600; font-size:1.75rem; margin-bottom:.6rem; line-height:1.15; }
.vessel-card p{ color:var(--navy); font-weight:500; font-size:1.1rem; line-height:1.5; margin:0 0 1.1rem; }
.vessel-card .vessel-more{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  padding:.55em 1.3em;
  border-radius:999px;
  border:1.5px solid var(--cyan);
  color:var(--cyan-num);
  font-family:Arial, Helvetica, sans-serif;
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.vessel-card .vessel-more i{ transition:transform .2s ease; }
.vessel-card .vessel-more:hover{
  background:var(--cyan);
  border-color:var(--cyan);
  color:#fff;
}
.vessel-card .vessel-more:hover i{ transform:translateX(3px); }
.vessels-owl-wrap{ position:relative; }
.vessels-controls{ position:absolute; inset:0; z-index:5; display:flex; align-items:center; justify-content:space-between; margin:0; padding:0 .75rem; pointer-events:none; }
.vessels-owl .owl-stage-outer{ overflow:hidden; padding:3.5rem 0; margin:-3.5rem 0; }
.vessels-owl .owl-stage{ display:flex; align-items:stretch; }
.vessels-owl .owl-item{ display:flex; height:auto; }
.vessels-owl .owl-item > .vessel-card{ width:100%; }
.vessels-nav{ display:contents; }
.vessels-nav button.owl-prev,
.vessels-nav button.owl-next{
  width:3rem;
  height:3rem;
  border-radius:50%;
  background:var(--cyan);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:none;
  font-size:1.5rem;
  line-height:1;
  margin:0;
  pointer-events:auto;
  box-shadow:0 6px 18px rgba(0,20,35,.25);
  transition:opacity .2s ease, background .2s ease;
}
.vessels-nav button.disabled{ opacity:.35; cursor:default; }
.vessels-dots{ display:flex; justify-content:center; gap:8px; margin-top:1.5rem; }
.vessels-dots button.owl-dot{ background:none; border:none; padding:0; }
.vessels-dots button.owl-dot span{ display:block; width:9px; height:9px; border-radius:50%; background:#cfe6f4; }
.vessels-dots button.owl-dot.active span{ background:var(--cyan); }

/* ============ SHIPYARD INFRASTRUCTURE ============ */
.infra-section{ background:linear-gradient(180deg,#eef6fb 0%, #eaf3fa 100%); padding:4.5rem 0; }
.infra-intro{ max-width:65rem; margin:0 auto 2.75rem; text-align:center; }
.infra-badges{ display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; margin-bottom:1.5rem; }
.infra-badge, .spec-badges li{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  background:#fff;
  border:1px solid #cfe2ee;
  color:var(--blue-dark);
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.02em;
  padding:.55em 1.2em;
  border-radius:999px;
}
.infra-badge i, .spec-badges li i{ color:var(--cyan); font-size:1.05em; }
.infra-badges .infra-badge, .spec-badges li{
  position:relative;
  overflow:hidden;
  gap:.55em;
  background:linear-gradient(90deg, var(--blue), var(--cyan), var(--logo-green), var(--blue), var(--cyan), var(--logo-green));
  background-size:200% 100%;
  color:#fff;
  font-size:1.05rem;
  padding:.65em 1.45em;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 10px 26px rgba(0,110,189,.3);
  animation-name:badgeShine, badgePop;
  animation-duration:5s, .6s;
  animation-timing-function:linear, cubic-bezier(.34,1.56,.64,1);
  animation-iteration-count:infinite, 1;
  animation-fill-mode:none, backwards;
  transition:transform .25s ease, box-shadow .25s ease;
}
.infra-badges .infra-badge::after{
  content:'';
  position:absolute;
  top:0;
  left:-60%;
  width:35%;
  height:100%;
  background:linear-gradient(115deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.65) 50%, rgba(255,255,255,0) 100%);
  transform:skewX(-20deg);
  animation:badgeGlare 3.4s ease-in-out infinite;
  pointer-events:none;
}
.infra-badges .infra-badge:hover{ transform:translateY(-2px) scale(1.03); box-shadow:0 14px 32px rgba(0,110,189,.4); }
.infra-badges .infra-badge:nth-child(2){ animation-delay:0s, .15s; }
.infra-badges .infra-badge:nth-child(2)::after{ animation-delay:1.1s; }
.infra-badges .infra-badge i{ color:#fff; }
@keyframes badgeShine{
  0%{ background-position:0% 50%; }
  100%{ background-position:100% 50%; }
}
@keyframes badgeGlare{
  0%{ left:-60%; }
  55%{ left:130%; }
  100%{ left:130%; }
}
@keyframes badgePop{
  0%{ opacity:0; transform:scale(.7) translateY(6px); }
  60%{ opacity:1; transform:scale(1.06) translateY(0); }
  100%{ opacity:1; transform:scale(1) translateY(0); }
}
@media (prefers-reduced-motion:reduce){
  .infra-badges .infra-badge{ animation:none; }
  .infra-badges .infra-badge::after{ animation:none; display:none; }
}
.spec-badges{ display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; margin-bottom:1.5rem; }
.spec-badges .infra-badge, .spec-badges li{
  background:var(--blue);
  border:1px solid var(--blue);
  color:#fff;
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.02em;
  padding:.55em 1.2em;
  border-radius:999px;
  box-shadow:none;
  animation:none;
}

.spec-badges li{
padding: 5px !important;
margin: 5px !important;
padding-left: 15px!important;
padding-right: 15px!important;
}
.spec-badges .infra-badge::after, .spec-badges li::after{ content:none; }
.spec-badges .infra-badge i, .spec-badges li i{ color:#fff; }
.infra-carousel{
  position:relative;
  width:100%;
  aspect-ratio:2000/909;
  border-radius:.85rem;
  overflow:hidden;
  margin-bottom:1.5rem;
  box-shadow:0 14px 34px rgba(0,20,35,.16);
  touch-action:pan-y;
}
.infra-owl,
.infra-owl .owl-stage-outer,
.infra-owl .owl-stage,
.infra-owl .owl-item,
.infra-owl .infra-slide{ height:100%; }
.infra-owl .owl-stage{ display:block !important; transform:none !important; width:100% !important; }
.infra-owl .owl-item{
  position:absolute;
  inset:0;
  width:100% !important;
  opacity:0;
  transition:opacity .8s ease;
}
.infra-owl .owl-item.active{ opacity:1; z-index:1; }
.infra-owl .infra-slide,
.infra-owl .infra-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.infra-thumbs{
  display:grid;
  grid-template-columns:repeat(8, 1fr);
  gap:.6rem;
  margin-bottom:1.5rem;
}
.infra-thumb{
  width:100%;
  aspect-ratio:2000/909;
  padding:0;
  border:2px solid transparent;
  border-radius:.4rem;
  overflow:hidden;
  background:none;
  cursor:pointer;
  opacity:.55;
  transition:opacity .2s ease, border-color .2s ease;
}
.infra-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.infra-thumb:hover{ opacity:.85; }
.infra-thumb.active{ opacity:1; border-color:var(--cyan); }
@media (prefers-reduced-motion:reduce){
  .infra-owl .owl-item{ transition:none; }
}
.infra-intro h2{ color:var(--blue); font-weight:600; font-size:2.5rem; line-height:1.1; margin-bottom:1.25rem; }
.infra-intro p{ font-weight:500; font-size:1.05rem; line-height:1.65; color:var(--navy); margin:0 auto; }
.infra-stats{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.25rem; margin-bottom:2.75rem; }
.infra-stat{
  background:var(--blue);
  color:#fff;
  border-radius:.6rem;
  padding:1.4rem 2.4rem;
  min-width:12rem;
  text-align:center;
  box-shadow:0 20px 40px rgba(11,116,189,.2);
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.infra-stat .num{ font-weight:600; font-size:2.2rem; line-height:1; }
.infra-stat .lbl{ font-weight:500; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; opacity:.9; margin-top:.4em; }
.infra-card{
  background:#fff;
  border-radius:.7rem;
  box-shadow:0 14px 34px rgba(10,60,90,.08);
  padding:1.75rem;
  height:100%;
  transition:transform .25s ease, box-shadow .25s ease;
}
.infra-card .ic{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:3rem;
  height:3rem;
  border-radius:50%;
  background:#eaf6fd;
  color:var(--blue);
  font-size:1.3rem;
  margin-bottom:1rem;
}
.infra-card .ic-svg{ width:1.4rem; height:1.4rem; fill:currentColor; }
.infra-card h3{ color:var(--blue); font-weight:700; font-size:1.25rem; margin-bottom:.55rem; line-height:1.25; }
.infra-card p{ font-weight:500; font-size:.95rem; line-height:1.55; color:var(--navy); margin:0; }

/* ============ PONNANI / LOCATION SECTION ============ */
.ponnani{
  position:relative;
  background-color: #c3e0f6;

  background-image: url(../images/ponnani-clean.jpg);
  background-position: center top;
  background-repeat: no-repeat;
  padding:4.5rem 0;
}
.ponnani > .container:first-of-type{
  min-height:70vh;
  display:flex;
  align-items:;
}
.ponnani h2{     color: var(--blue);  font-weight:600; font-size:2.5rem; line-height:1.15; margin:0 0 1.25rem; }
.ponnani .desc{ font-weight:500; font-size:1.15rem; line-height:1.55; margin:0; max-width:30rem; }
.location-details{ background:#fff; padding:4.5rem 0; }
.section-eyebrow{
  color:var(--blue);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:1.5rem;
  margin-bottom:2rem;
}
.office-card{
  position:relative;
  overflow:hidden;
  background:linear-gradient(160deg, var(--blue) 0%, var(--blue-dark) 100%);
  border-radius:.85rem;
  box-shadow:0 18px 40px rgba(2,20,35,.35);
  padding:2.25rem;
  height:100%;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.office-card-icon{
  position:absolute;
  top:-1rem;
  right:-.5rem;
  font-size:6rem;
  line-height:1;
  color:#fff;
  opacity:.15;
  pointer-events:none;
  transition:opacity .25s ease, color .25s ease;
  z-index:2;
}
svg.office-card-icon{ width:1em; height:1em; fill:currentColor; }
.office-card-icon-flip{ transform:scaleX(-1); }
.office-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:#fff;
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform .4s ease;
  z-index:0;
  pointer-events:none;
}
.office-card:hover::after{ transform:scaleY(1); }
.office-card:hover .office-card-icon{ opacity:.4; color:var(--blue); }
.office-tag,
.office-address,
.office-card > a{ position:relative; z-index:1; }
.office-tag{
  display:inline-block;
  background:#fff;
  color:var(--blue);
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:.4em .95em;
  border-radius:999px;
  margin-bottom:1rem;
  transition:background .25s ease, color .25s ease;
}
.office-card:hover .office-tag{ background:var(--blue); color:#fff; }
.office-address{ font-weight:500; font-size:1.05rem; color:#fff; line-height:1.6; margin:0 0 .5em; transition:color .25s ease; }
.office-address.is-pending{ color:#cdd8e0; font-style:italic; }
.office-card a{ color:#fff; font-weight:600; text-decoration:underline; font-size:.95rem; transition:color .25s ease; display:inline-flex; align-items:center; gap:.4em; }
.office-card:hover .office-address,
.office-card:hover .office-address a,
.office-card:hover > a{ color:var(--navy); }
/* The white reveal overlay (.office-card::after, transform-origin:bottom)
   covers this bottom-anchored link first, so its colour must flip in step
   with the overlay rather than easing over .25s — otherwise "View on Map"
   flashes white-on-white while the hover animation plays. */
.office-card > a{ transition:color 0s; }



	
@media (max-width:2000px){	
		.ponnani > .container:first-of-type {
    min-height: 95vh;
	}
	}
/* ============ CONTACT SECTION ============ */
.contact-section{
  background:linear-gradient(160deg, #001c41  0%, #062b45 100%);
  padding:0;
  overflow-x:hidden;
}
.contact-section .row{ align-items:stretch; }
.contact-section .contact-row{ margin-left:0; margin-right:0; }
.contact-section .contact-img-col{ padding:0; }
@media (min-width:992px){
  .contact-section .contact-img-col{ padding-right:2.5rem; }
}
.contact-section .contact-img{ display:block; width:100%; height:100%; min-height:20rem; object-fit:contain; }
.contact-section .contact-text-col{ padding:3rem 1.5rem; }
@media (min-width:992px){
  .contact-section .contact-text-col{ padding:5rem 1.5rem; }
}
.contact-section h2{ color:#fff; font-weight:600; font-size:2.5rem; line-height:1.15; margin-bottom:1rem; }
.contact-section .contact-desc{ color:rgba(255,255,255,.85); font-weight:500; font-size:1.1rem; line-height:1.6; margin-bottom:2rem; max-width:34rem; }

/* ============ FOOTER ============ */
.site-footer{ background:#fff; text-align:center; padding:4.5rem 1.25rem 3.5rem; }
.site-footer img{ width:150px; margin:0 auto 1.5rem; }
.site-footer .tagline{ color:var(--navy); font-weight:500; font-size:1rem; margin-bottom:1.5rem; }
.site-footer .flinks{ display:flex; flex-wrap:wrap; justify-content:center; row-gap:8px; }
.site-footer .flinks a{ color:var(--navy); font-weight:500; font-size:1rem; }
.site-footer .flinks span{ color:#c3cdd7; margin:0 .6em; }
.site-footer .copy{ color:var(--navy); opacity:.7; font-weight:500; font-size:.95rem; margin-top:1.75rem; line-height:1.8; }

/* ============ RESPONSIVE BREAKPOINTS ============ */
@media (max-width:991.98px){
  .hero{ padding-top:7rem; 
  }
  .ponnani {
  background-size: 168%;
}
.ponnani > .container:first-of-type {
    min-height: 50vh;
}

.worldclass{ 
  padding: 0px;
  background-image: none;
}


}
@media (min-width:1200px){
  .hero-text h1{ font-size:3.5rem; }
  .worldclass h2,
  .platform h2,
  .vessels-head h2,
  .infra-intro h2,
  .contact-section h2,
  .ponnani h2{ font-size:3.25rem; }
}
@media (min-width:1600px){
  .hero-text h1{ font-size:4rem; }
  .worldclass h2,
  .platform h2,
  .vessels-head h2,
  .infra-intro h2,
  .contact-section h2,
  .ponnani h2{ font-size:3.75rem;
  font-weight: 700; }
  
}
@media (max-width:767.98px){
  .hero{ min-height:90vh; background-image: url(../images/hero-ship_mobile.jpg); align-items:flex-end; }
  .hero-text h1{ font-size:2rem; }
  .hero-text p{ max-width:100%; }
  .stat-cards{ margin-top:-2.5rem; }
  .worldclass h2, .infra-intro h2, .vessels-head h2, .ponnani h2, .platform h2, .contact-section h2{ font-size:1.85rem; }
  .worldclass p, .platform p{ font-size:1rem; }
  .ppp-row{ flex-direction:column; align-items:flex-start; }
  .platform{ padding:3rem 0; }
  .vessels-head .intro{ margin-top:.75rem; }
  .section-eyebrow{ text-align:left !important; }
  .infra-thumbs{ grid-template-columns:repeat(4, 1fr); gap:.4rem; }

  .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    --bs-gutter-x: 3rem;
  }
.ponnani {
  background-image: none;
}
.ponnani > .container:first-of-type {
    min-height: auto;
}

.vessels-controls {
    padding: 0 .4rem;
}
.vessels-nav button.owl-prev,
.vessels-nav button.owl-next{
    width:2.5rem;
    height:2.5rem;
    font-size:1.25rem;
}

.worldclass{ 
  padding: 0px;
  background-image: none;
}
}
/* ============ CARD HOVER EFFECTS ============ */
/* Slight lift + deeper shadow + subtle blue tint on hover, shared
   across every card-style component. */
.stat-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 48px rgba(10,60,90,.2);
}
.stat-card:hover h2,
.stat-card:hover p{ color:#fff; }
.stake-card:hover{
  transform:translateY(-6px);
  box-shadow:0 28px 54px rgba(15,60,95,.2);
}
.vessel-card:hover{
  transform:translateY(-6px);
  box-shadow:0 0 34px rgba(0,110,189,.26), 0 18px 36px rgba(0,110,189,.22);
}
.vessel-card:hover .photo{ transform:scale(1.05); }
.infra-stat:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(11,116,189,.3);
  background:var(--blue-dark);
}
.infra-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 44px rgba(10,60,90,.14);
}
.office-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 48px rgba(10,60,90,.2);
}
@media (prefers-reduced-motion:reduce){
  .stat-card, .stake-card, .vessel-card, .vessel-card .photo,
  .infra-stat, .infra-card, .office-card{ transition:none; }
}

/* ============ VESSEL SPEC-CARD GRID (Elementor detail pages) ============ */
/* Reference template row is a nowrap flexbox sized for 2 cards; vessel pages
   carry 6-15 spec tables, so wrap the row and give each card a fluid basis. */
.infra-section .e-con:has(> .spec-card){
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  align-items:stretch;
}
.infra-section .spec-card{
  flex:1 1 calc(50% - .75rem);
  max-width:calc(50% - .75rem);
  margin-bottom:0;
}
.infra-section .spec-card > .e-con-inner{ width:100%; }
@media (max-width:1024px){
  .infra-section .spec-card{ flex-basis:100%; max-width:100%; }
}

/* ===== Vessel EAEL spec tables — match static HTML .spec-table typography/colors/alignment ===== */
.infra-section .spec-card .eael-data-table{ border-collapse:collapse; background:transparent; width:100% !important; }
.infra-section .spec-card .eael-data-table table{ width:100% !important; table-layout:fixed; }
/* Header (matches .spec-card h3: blue, 700, 1.2rem, cyan icon) */
.infra-section .spec-card .eael-data-table thead th{
  background:#fff !important;
  color:var(--blue) !important;
  font-size:1.2rem !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  text-align:left !important;
  padding:0 0 1rem 0 !important;
  border:none !important;
}
.infra-section .spec-card .eael-data-table thead th .data-table-header-text{ font-size:1.2rem; font-weight:700; }
.infra-section .spec-card .eael-data-table thead th i,
.infra-section .spec-card .eael-data-table thead th svg{ color:var(--cyan) !important; fill:var(--cyan) !important; }
/* Body cells (matches .spec-table th/td) */
.infra-section .spec-card .eael-data-table tbody tr td{
  background:transparent !important;
  border:none !important;
  border-bottom:1px solid #eef2f5 !important;
  padding:.55rem 0 !important;
  vertical-align:top;
  text-align:left !important;
  font-size:.92rem !important;
  line-height:1.45 !important;
  color:var(--navy) !important;
  font-weight:500;
}
.infra-section .spec-card .eael-data-table tbody tr:last-child td{ border-bottom:none !important; }
.infra-section .spec-card .eael-data-table tbody tr td .td-content-wrapper,
.infra-section .spec-card .eael-data-table tbody tr td .td-content{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  text-align:left !important;
  font-size:.92rem;
  line-height:1.45;
  color:var(--navy);
  word-break:break-word;
  overflow-wrap:break-word;
}
/* Label column bold/full colour, value column lighter — like .spec-table th vs td */
.infra-section .spec-card .eael-data-table tbody tr td:first-child{ width:44%; padding-right:1rem !important; font-weight:600; }
.infra-section .spec-card .eael-data-table tbody tr td:last-child{ font-weight:500; opacity:.85; }

/* =====================================================================
   CONTACT SECTION — Elementor Contact page tree (forms, cards, FAQ, CTA)
   Brand palette from :root above. Loaded site-wide (priority 30) so it
   wins the cascade over Elementor widget defaults.
   ===================================================================== */
.bmg-contact-intro{ max-width:820px; }
.bmg-contact-intro p{ font-size:1.05rem; line-height:1.7; color:#3f5a70; }

/* --- Info / link cards (Elementor container columns tagged .bmg-card) --- */
.bmg-card{
  background:#fff; border:1px solid #e3ecf3; border-top:3px solid var(--blue);
  border-radius:12px; padding:1.7rem 1.5rem !important;
  box-shadow:0 10px 30px rgba(14,56,84,.06);
  transition:transform .2s ease, box-shadow .2s ease; height:100%;
}
.bmg-card:hover{ transform:translateY(-4px); box-shadow:0 16px 40px rgba(14,56,84,.12); }
.bmg-card .elementor-widget-heading .elementor-heading-title{ color:var(--navy); font-size:1.18rem; }
.bmg-card .elementor-widget-text-editor{ color:#4a6377; font-size:.98rem; line-height:1.6; }
.bmg-card .elementor-icon i{ color:var(--blue); }

/* --- Section headings --- */
.bmg-heading .elementor-heading-title{ color:var(--navy); }
.bmg-eyebrow .elementor-heading-title{ color:var(--blue); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.8rem; }

/* --- CTA band (container tagged .bmg-cta) --- */
.bmg-cta{
  background:linear-gradient(120deg,var(--navy) 0%, var(--navy-nav) 55%, var(--blue) 100%) !important;
  border-radius:16px;
}
.bmg-cta .elementor-heading-title,
.bmg-cta .elementor-widget-text-editor{ color:#fff !important; }
.bmg-cta .elementor-button{ background:#fff !important; color:var(--navy) !important; font-weight:700; }
.bmg-cta .elementor-button:hover{ background:var(--logo-green) !important; color:#fff !important; }

/* --- Notice box (no openings / no tenders yet) --- */
.bmg-notice{
  background:#f4f8fb; border:1px dashed #b9cede; border-radius:12px;
  padding:1.6rem 1.75rem; color:#3f5a70; font-size:1rem;
}
.bmg-notice strong{ color:var(--navy); }

/* --- FAQ accordion (native <details> inside an HTML widget) --- */
.bmg-faq details{ border:1px solid #e3ecf3; border-radius:10px; margin-bottom:.8rem; background:#fff; overflow:hidden; }
.bmg-faq summary{ cursor:pointer; list-style:none; padding:1.05rem 3rem 1.05rem 1.2rem; font-weight:600; color:var(--navy); position:relative; }
.bmg-faq summary::-webkit-details-marker{ display:none; }
.bmg-faq summary::after{ content:"+"; position:absolute; right:1.2rem; top:50%; transform:translateY(-50%); color:var(--blue); font-size:1.5rem; line-height:1; }
.bmg-faq details[open] summary::after{ content:"\2013"; }
.bmg-faq details > .bmg-faq__a{ padding:0 1.2rem 1.15rem; color:#4a6377; line-height:1.6; }

/* --- Contact detail list --- */
.bmg-contact-list{ list-style:none; padding:0; margin:0; }
.bmg-contact-list li{ display:flex; gap:.85rem; align-items:flex-start; margin-bottom:1.15rem; color:var(--navy); line-height:1.5; }
.bmg-contact-list i{ color:var(--blue); font-size:1.15rem; margin-top:.15rem; min-width:1.2rem; text-align:center; }
.bmg-contact-list a{ color:var(--blue); }

/* --- Download / link rows --- */
.bmg-linklist{ list-style:none; padding:0; margin:0; }
.bmg-linklist li{ border-bottom:1px solid #e3ecf3; }
.bmg-linklist a{ display:flex; align-items:center; gap:.8rem; padding:.95rem .3rem; color:var(--navy); font-weight:600; text-decoration:none; }
.bmg-linklist a:hover{ color:var(--blue); }
.bmg-linklist a i{ color:var(--blue); }
.bmg-linklist a .bmg-linklist__meta{ margin-left:auto; font-weight:500; color:#8aa2b4; font-size:.85rem; }

/* --- Contact Form 7 — brand form controls --- */
.wpcf7{ max-width:860px; }
.bmg-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 1.25rem; }
@media (max-width:640px){ .bmg-form-grid{ grid-template-columns:1fr; } }
.wpcf7 label{ display:block; font-weight:600; color:var(--navy); font-size:.92rem; margin-bottom:1rem; }
.wpcf7 .wpcf7-form-control:not(.wpcf7-submit):not([type=checkbox]):not([type=radio]):not([type=acceptance]){
  width:100%; margin-top:.4rem; padding:.72rem .9rem; border:1px solid #ccd8e2;
  border-radius:8px; font:inherit; color:var(--navy); background:#fff; box-sizing:border-box;
}
.wpcf7 textarea{ min-height:130px; resize:vertical; }
.wpcf7 select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23006ebd' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; }
.wpcf7 .wpcf7-form-control:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,110,189,.15); }
.wpcf7 input[type=file]{ padding:.55rem; background:#f4f8fb; cursor:pointer; }
.wpcf7 .wpcf7-acceptance{ font-weight:500; font-size:.9rem; }
.wpcf7-submit,.bmg-submit{
  background:var(--blue); color:#fff; border:none; padding:.85rem 2.2rem;
  border-radius:8px; font-weight:700; letter-spacing:.02em; cursor:pointer; transition:background .2s; width:auto;
}
.wpcf7-submit:hover,.bmg-submit:hover{ background:var(--navy); }
.wpcf7 .wpcf7-response-output{ border-radius:8px; margin:1.2rem 0 0; padding:.75rem 1rem; font-size:.95rem; }
.wpcf7-not-valid-tip{ color:#d63638; font-weight:500; font-size:.82rem; }
.wpcf7 .wpcf7-spinner{ margin:.4rem .6rem; }

/* Contractor form — section headings, service groups & checkbox lists */
.wpcf7 .bmg-section-title{ margin:2rem 0 1.25rem; color:var(--navy); font-size:1.1rem; font-weight:700;
  padding-bottom:.5rem; border-bottom:2px solid #e3ecf3; }
.wpcf7 .bmg-section-title:first-child{ margin-top:0; }
.wpcf7 .bmg-help{ margin:.1rem 0 .75rem; color:#6a8299; font-size:.85rem; }
.wpcf7 .bmg-subhead{ margin:.2rem 0 .5rem; color:var(--navy); font-size:.9rem; }
.bmg-subcat-infra,.bmg-subcat-building{ margin:.25rem 0 1rem; padding:.9rem 1.1rem; background:#f4f8fb;
  border-left:3px solid var(--blue); border-radius:8px; }
.wpcf7 .wpcf7-checkbox{ display:block; }
.wpcf7 .wpcf7-checkbox .wpcf7-list-item{ display:block; margin:0 0 .25rem; }
.wpcf7 .wpcf7-checkbox label{ display:flex; align-items:center; gap:.7rem; font-weight:500;
  margin-bottom:0; cursor:pointer; padding:.5rem .25rem; min-height:44px; line-height:1.35; }
.wpcf7 .wpcf7-checkbox input[type=checkbox]{ width:24px; height:24px; flex:0 0 24px;
  margin:0; accent-color:var(--blue); cursor:pointer; }

/* =====================================================================
   VESSELS SECTION — hub + category pages (image cards, chip nav, gallery)
   ===================================================================== */
.bmg-vcard{ background:#fff;border:1px solid #e3ecf3;border-radius:14px;overflow:hidden;
  box-shadow:0 10px 30px rgba(14,56,84,.07);transition:transform .2s,box-shadow .2s;padding:0 !important; }
.bmg-vcard:hover{ transform:translateY(-5px);box-shadow:0 18px 45px rgba(14,56,84,.14); }
.bmg-vcard .elementor-widget-image{ margin:0 !important;width:100%; }
.bmg-vcard .elementor-widget-image figure,.bmg-vcard .elementor-widget-image .elementor-widget-container{ margin:0 !important; }
.bmg-vcard .elementor-widget-image img{ width:100%;height:210px;object-fit:cover;display:block;border-radius:0 !important; }
.bmg-vcard .elementor-widget-heading{ margin-top:1.15rem !important; }
.bmg-vcard .elementor-widget-heading .elementor-heading-title{ color:var(--navy);font-size:1.12rem;padding:0 1.4rem;line-height:1.3; }
.bmg-vcard .elementor-widget-text-editor{ padding:.3rem 1.4rem 0;color:#4a6377;font-size:.95rem;line-height:1.55; }
.bmg-vcard .elementor-widget-button{ padding:1rem 1.4rem 1.4rem;margin-top:auto; }

/* Vessel category quick-nav chips */
.bmg-catnav{ display:flex;flex-wrap:wrap;gap:.6rem; }
.bmg-catnav a{ display:inline-block;padding:.5rem 1.1rem;border:1px solid #cddbe8;border-radius:999px;
  color:var(--navy);font-weight:600;font-size:.9rem;text-decoration:none;transition:all .18s; }
.bmg-catnav a:hover{ background:var(--blue);border-color:var(--blue);color:#fff; }
.bmg-catnav a.is-active{ background:var(--navy);border-color:var(--navy);color:#fff; }

/* Image gallery */
.bmg-gallery{ display:grid;grid-template-columns:repeat(2,1fr);gap:1rem; }
@media (max-width:640px){ .bmg-gallery{ grid-template-columns:1fr; } }
.bmg-gallery img{ width:100%;height:230px;object-fit:cover;border-radius:12px;display:block; }

/* Stat band big numbers */
.bmg-stat .elementor-heading-title{ font-size:2.5rem;font-weight:800;line-height:1;color:#fff; }
.bmg-stat .elementor-widget-text-editor{ color:#dbe8f4;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase; }
.bmg-card .bmg-cardicon{ font-size:2rem;color:var(--blue);display:block;margin-bottom:.7rem;line-height:1; }

/* =====================================================================
   HOMEPAGE-MATCHED STYLES for inner pages (About, Location + all trees)
   Card design, h2/h3 titles, buttons & grid columns aligned to the
   Bootstrap one-page homepage. Styles only — structure stays Elementor.
   These rules come last, so they win over the earlier .bmg-* defaults.
   ===================================================================== */

/* Section H2 (homepage .worldclass/.vessels-head/.infra-intro h2) */
.bmg-heading .elementor-heading-title{ color:#006ebd; font-weight:700; font-size:3.25rem; line-height:1.15em; text-transform:uppercase; }
@media (max-width:767.98px){ .bmg-heading .elementor-heading-title{ font-size:2.1rem; } }
.bmg-eyebrow .elementor-heading-title{ color:var(--blue); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.9rem; }

/* Grid column control — force exact columns so no blank cells remain */
.bmg-g2 .e-grid-base{ grid-template-columns:repeat(2,1fr)!important; }
.bmg-g3 .e-grid-base{ grid-template-columns:repeat(3,1fr)!important; }
.bmg-g4 .e-grid-base{ grid-template-columns:repeat(4,1fr)!important; }
@media (max-width:1024px){ .bmg-g3 .e-grid-base,.bmg-g4 .e-grid-base{ grid-template-columns:repeat(2,1fr)!important; } }
@media (max-width:600px){ .bmg-g2 .e-grid-base,.bmg-g3 .e-grid-base,.bmg-g4 .e-grid-base{ grid-template-columns:1fr!important; } }

/* Vessel card (homepage .vessel-card) */
.bmg-vcard{ border:none!important; border-radius:.6rem!important; box-shadow:0 0 22px rgba(0,110,189,.14), 0 10px 26px rgba(0,110,189,.12)!important; }
.bmg-vcard:hover{ transform:translateY(-6px); box-shadow:0 0 34px rgba(0,110,189,.26), 0 18px 36px rgba(0,110,189,.22)!important; }
.bmg-vcard .elementor-widget-image{ overflow:hidden; }
.bmg-vcard .elementor-widget-image img{ aspect-ratio:700/480; height:auto!important; transition:transform .35s ease; }
.bmg-vcard:hover .elementor-widget-image img{ transform:scale(1.05); }
.bmg-vcard .elementor-widget-heading .elementor-heading-title{ color:var(--cyan); font-weight:600; font-size:1.4rem; line-height:1.15; }
.bmg-vcard .elementor-widget-text-editor{ color:var(--navy); font-size:1rem; line-height:1.5; }
.bmg-vcard .elementor-button{ display:inline-flex; align-items:center; gap:.5em; background:transparent!important;
  border:1.5px solid var(--cyan)!important; color:var(--cyan-num)!important; font-family:Arial,Helvetica,sans-serif;
  font-weight:700; font-size:.85rem; letter-spacing:.02em; text-transform:uppercase; border-radius:999px!important; padding:.55em 1.3em!important; }
.bmg-vcard .elementor-button:hover{ background:var(--cyan)!important; border-color:var(--cyan)!important; color:#fff!important; }

/* Info / feature card (homepage .infra-card) */
.bmg-card{ border:none!important; border-top:none!important; border-radius:.7rem!important; box-shadow:0 14px 34px rgba(10,60,90,.08)!important; padding:1.75rem!important; }
.bmg-card:hover{ transform:translateY(-6px); box-shadow:0 20px 44px rgba(10,60,90,.14)!important; }
.bmg-card .bmg-cardicon{ display:inline-flex; align-items:center; justify-content:center; width:2.9rem; height:2.9rem;
  border-radius:50%; background:#eaf6fd; color:var(--blue); font-size:1.3rem; margin-bottom:1rem; }
.bmg-card .elementor-widget-heading .elementor-heading-title{ color:var(--blue); font-weight:700; font-size:1.25rem; line-height:1.25; }
.bmg-card .elementor-widget-text-editor{ color:var(--navy); font-weight:500; font-size:.95rem; line-height:1.55; }
.bmg-card .elementor-button{ background:linear-gradient(90deg,var(--blue) 0%,var(--cyan) 50%,var(--logo-green) 100%)!important;
  background-size:200% auto!important; background-position:0% 50%!important; color:#fff!important; border:none!important;
  font-family:Arial,Helvetica,sans-serif; font-weight:700; border-radius:999px!important; padding:.6em 1.5em!important; transition:background-position .5s ease!important; }
.bmg-card .elementor-button:hover{ background-position:100% 50%!important; color:#fff!important; }

/* Stake card (homepage .stake-card — cyan header + body) */
.bmg-stake{ background:#fff; border-radius:.6rem; overflow:hidden; box-shadow:0 22px 44px rgba(15,60,95,.14); padding:0!important; transition:transform .25s ease, box-shadow .25s ease; }
.bmg-stake:hover{ transform:translateY(-6px); box-shadow:0 28px 54px rgba(15,60,95,.2); }
.bmg-stake .bmg-stake-hd{ margin:0!important; }
.bmg-stake .bmg-stake-hd .elementor-heading-title{ background:var(--cyan); color:#fff; font-weight:600; font-size:1.6rem; line-height:1.2; padding:1.35rem 1.5rem; display:block; }
.bmg-stake .bmg-stake-bd{ padding:1.5rem; }
.bmg-stake .bmg-stake-bd .elementor-widget-heading .elementor-heading-title{ color:var(--blue); font-weight:700; font-size:1.35rem; line-height:1.3; }
.bmg-stake .bmg-stake-bd .elementor-widget-text-editor{ color:#000; font-weight:500; font-size:1rem; line-height:1.6; }

/* Stat card (homepage .stat-card) */
.bmg-statcard{ position:relative; overflow:hidden; background:linear-gradient(160deg,#ffffff 0%,#eafaff 100%); border-radius:.85rem;
  box-shadow:0 18px 40px rgba(10,60,90,.14); padding:2.25rem!important; transition:transform .25s ease; }
.bmg-statcard::after{ content:""; position:absolute; inset:0; background:var(--blue); transform:scaleY(0); transform-origin:bottom; transition:transform .4s ease; z-index:0; }
.bmg-statcard:hover::after{ transform:scaleY(1); }
.bmg-statcard:hover{ transform:translateY(-4px); }
.bmg-statcard .bmg-cardicon{ position:absolute; top:1.1rem; right:1.3rem; width:auto; height:auto; background:none; font-size:3rem; color:var(--blue); opacity:.1; margin:0; z-index:0; transition:opacity .25s ease, color .25s ease; }
.bmg-statcard:hover .bmg-cardicon{ opacity:.35; color:#fff; }
.bmg-statcard .elementor-widget{ position:relative; z-index:1; }
.bmg-statcard .elementor-widget-heading .elementor-heading-title{ color:var(--blue); font-weight:700; font-size:1.5rem; text-transform:uppercase; line-height:1.2; }
.bmg-statcard .elementor-widget-text-editor{ color:var(--navy); font-weight:500; font-size:1rem; line-height:1.5; }
.bmg-statcard:hover .elementor-heading-title,.bmg-statcard:hover .elementor-widget-text-editor{ color:#fff!important; }

/* Office card (homepage .office-card) */
.bmg-office{ position:relative; overflow:hidden; background:linear-gradient(160deg,var(--blue) 0%,var(--blue-dark) 100%); border-radius:.85rem; box-shadow:0 18px 40px rgba(2,20,35,.35); padding:2.25rem!important; }
.bmg-office .elementor-widget-heading .elementor-heading-title{ color:#fff; font-size:1.15rem; }
.bmg-office .bmg-office-tag .elementor-heading-title{ display:inline-block; background:#fff; color:var(--blue); font-weight:700; font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; padding:.35rem .8rem; border-radius:999px; }
.bmg-office .elementor-widget-text-editor{ color:#fff; font-weight:500; font-size:1.05rem; line-height:1.6; }
.bmg-office .elementor-widget-text-editor a{ color:#fff; text-decoration:underline; }
.bmg-office .elementor-button{ background:#fff!important; color:var(--blue)!important; border:none!important; font-weight:700; border-radius:999px!important; padding:.55em 1.3em!important; }
.bmg-office .elementor-button:hover{ background:var(--logo-green)!important; color:#fff!important; }

/* Heading colours — win over Elementor kit/post CSS (equal-specificity, later order) */
.bmg-heading .elementor-heading-title{ color:#006ebd!important; font-size:3.25rem!important; font-weight:700!important; line-height:1.15em!important; text-transform:uppercase!important; }
@media (max-width:767.98px){ .bmg-heading .elementor-heading-title{ font-size:2.1rem!important; } }
.bmg-vcard .elementor-widget-heading .elementor-heading-title{ color:var(--cyan)!important; }
.bmg-card .elementor-widget-heading .elementor-heading-title,
.bmg-statcard .elementor-widget-heading .elementor-heading-title,
.bmg-stake .bmg-stake-bd .elementor-widget-heading .elementor-heading-title{ color:var(--blue)!important; }
.bmg-statcard:hover .elementor-heading-title,
.bmg-statcard:hover .elementor-widget-text-editor{ color:#fff!important; }
.bmg-stake .bmg-stake-hd .elementor-heading-title{ color:#fff!important; }
.bmg-office .bmg-office-tag .elementor-heading-title{ color:var(--blue)!important; }

/* =====================================================================
   HEADER NAV FIXES (HFE navigation menu .site-nav-menu)
   1) desktop flyout › arrow spacing off the right edge
   2) finger-friendly mobile hamburger + submenu arrows + active states
   ===================================================================== */

/* 1) Desktop flyout submenu: keep the › arrow away from the panel edge */
.site-nav-menu .sub-menu a.hfe-sub-menu-item{ padding-right:18px; }
.site-nav-menu .sub-menu .sub-arrow{ margin-right:16px !important; }

/* Active / current item (desktop) */
.site-nav-menu .current-menu-item > a.hfe-menu-item,
.site-nav-menu .current-menu-ancestor > a.hfe-menu-item,
.site-nav-menu .current-menu-parent > a.hfe-menu-item{ color:var(--blue) !important; }
.site-nav-menu .sub-menu li.current-menu-item > a.hfe-sub-menu-item,
.site-nav-menu .sub-menu li.current-menu-item > .hfe-has-submenu-container{ background:#eaf6fd; }

/* 2) Mobile / tablet (hamburger menu) — larger tap targets */
@media (max-width:1024px){
  .site-nav-menu .hfe-nav-menu__toggle{
    display:inline-flex; align-items:center; justify-content:center;
    width:52px; height:52px; border-radius:10px; font-size:30px;
    background:rgba(0,110,189,.08); }
  .site-nav-menu .hfe-nav-menu__toggle:hover,
  .site-nav-menu .hfe-nav-menu__toggle[aria-expanded="true"]{ background:rgba(0,110,189,.16); }
  .site-nav-menu .hfe-nav-menu__toggle svg,
  .site-nav-menu .hfe-nav-menu__toggle i{ width:30px; height:30px; font-size:30px; color:var(--navy-nav); }

  /* taller rows for finger taps, plus a left inset so labels don't touch the
     screen edge (the Elementor widget sets horizontal item padding to 0) */
  .site-nav-menu .hfe-nav-menu a.hfe-menu-item,
  .site-nav-menu .hfe-nav-menu a.hfe-sub-menu-item{ padding-top:16px !important; padding-bottom:16px !important; font-size:1.05rem; }
  .site-nav-menu .hfe-nav-menu a.hfe-menu-item{ padding-left:20px !important; }
  .site-nav-menu .hfe-nav-menu a.hfe-sub-menu-item{ padding-left:36px !important; }

  /* submenu expand arrows → 54px square tap target on the right */
  .site-nav-menu .hfe-menu-toggle.sub-arrow{
    display:flex !important; align-items:center; justify-content:center;
    width:54px; min-height:54px; margin:0 !important; font-size:20px;
    border-left:1px solid rgba(0,110,189,.12); }
  .site-nav-menu .hfe-menu-toggle.sub-arrow i{ font-size:20px; }

  /* active / current item highlight (mobile) */
  .site-nav-menu .hfe-nav-menu .current-menu-item > a,
  .site-nav-menu .hfe-nav-menu .current-menu-item > .hfe-has-submenu-container > a,
  .site-nav-menu .hfe-nav-menu .current-menu-ancestor > .hfe-has-submenu-container > a{
    background:#eaf6fd; color:var(--blue) !important; box-shadow:inset 3px 0 0 var(--blue); }
}

/* =====================================================================
   HOMEPAGE PARALLAX — hero + platform (desktop >=768px only).
   Background image lives on a ::before layer with 25% overscan; parallax.js
   sets --parallax-y and the layer is GPU-translated within the clipped
   section. Below 768px nothing here applies, so the mobile hero image
   (hero-ship_mobile.jpg) and normal scrolling are preserved.
   ===================================================================== */
@media (min-width:768px){
  .hero.bmg-parallax,
  .platform.bmg-parallax{ overflow:hidden; }
  .hero.bmg-parallax{ background-image:none; }
  .platform.bmg-parallax{ background-image:none; }
  .hero.bmg-parallax::before,
  .platform.bmg-parallax::before{
    content:""; position:absolute; left:0; right:0; top:-25%; height:150%;
    background-position:center center; background-size:cover; background-repeat:no-repeat;
    transform:translate3d(0, var(--parallax-y, 0px), 0);
    will-change:transform; z-index:0; pointer-events:none;
  }
  .hero.bmg-parallax::before{ background-image:url(../images/hero-ship.jpg); }
  .platform.bmg-parallax::before{ background-image:url(../images/platform-clean.jpg); }
  .hero.bmg-parallax > *,
  .platform.bmg-parallax > *{ position:relative; z-index:1; }
}

/* =====================================================================
   SMOOTH SCROLL (Lenis) — recommended base styles. Overrides the earlier
   scroll-behavior:smooth so Lenis controls easing without conflict.
   ===================================================================== */
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent]{ overscroll-behavior:contain; }
.lenis.lenis-stopped{ overflow:hidden; }
.lenis.lenis-smooth iframe{ pointer-events:none; }

/* =====================================================================
   LOCATION PAGE ENHANCEMENTS
   ===================================================================== */

/* Ponnani intro backdrop — world-map/shipping-route graphic (ported from
   the one-page homepage's .ponnani section background). */
.bmg-ponnani-bg{
  position:relative;
  background-color:#c3e0f6;
  background-image:url(../images/ponnani-clean.jpg);
  background-position:center top;
  background-size:cover;
  background-repeat:no-repeat;
}

/* Office card corner watermark (ported from homepage .office-card-icon) */
.bmg-office > .elementor-element{ position:relative; z-index:1; }
.bmg-office-icon{
  position:absolute; top:-1rem; right:-.5rem; width:6rem; height:6rem;
  opacity:.15; pointer-events:none; z-index:0; transition:opacity .25s ease;
}
.bmg-office-icon img{ width:100%; height:100%; object-fit:contain; filter:invert(1); display:block; }
.bmg-office:hover .bmg-office-icon{ opacity:.4; }

/* Styled Google Maps embeds — brand blue/navy skin over the default
   grey/pink Google palette, applied to every google_maps widget. */
.elementor-widget-google_maps .elementor-custom-embed{
  border-radius:16px; overflow:hidden; box-shadow:0 18px 40px rgba(14,56,84,.18);
}
.elementor-widget-google_maps iframe{
  filter:invert(90%) hue-rotate(185deg) brightness(.92) contrast(95%) saturate(1.3);
}
.bmg-office .elementor-widget-google_maps .elementor-custom-embed{ border:1px solid rgba(255,255,255,.35); }

/* Real photo banner (site entrance) */
.bmg-photo-banner{ margin:0 0 1rem; border-radius:16px; overflow:hidden; box-shadow:0 18px 40px rgba(14,56,84,.14); }
.bmg-photo-banner img{ width:100%; height:380px; object-fit:cover; display:block; }
.bmg-photo-caption{ display:block; text-align:center; color:var(--navy); opacity:.6; font-size:.85rem; font-style:italic; margin:.6rem 0 0; }
@media (max-width:600px){ .bmg-photo-banner img{ height:240px; } }

/* =====================================================================
   VESSELS — Featured Builds carousel (Responsive Owl Carousel for
   Elementor, testimonial/one layout). Reorders the stock template's
   content-before-title markup to image → title → description, hides the
   quote icon's reserved gap, and matches the page's .bmg-vcard shadow
   language (the plugin has no native per-item box-shadow control).
   ===================================================================== */
.bmg-featured-carousel .item{
  box-shadow:0 10px 30px rgba(14,56,84,.07); transition:transform .25s ease, box-shadow .25s ease;
  border-radius:14px; overflow:hidden;
}
.bmg-featured-carousel .item .owl-link{
  display:flex; flex-direction:column; height:100%;
}
.bmg-featured-carousel .item:hover{ box-shadow:0 18px 45px rgba(14,56,84,.14); }
.bmg-featured-carousel .owl-thumb{ order:1; }
.bmg-featured-carousel .owl-title{ order:2; }
.bmg-featured-carousel .owl-content{ order:3; margin-bottom:0; }
.bmg-featured-carousel .owl-thumb img{ width:100%; height:200px; object-fit:cover; display:block; }
.bmg-featured-carousel .owl-quote-icon,
.bmg-featured-carousel .owl-rating-icon,
.bmg-featured-carousel .owl-subtitle{ display:none !important; }
.bmg-featured-carousel .owl-nav .owl-prev,
.bmg-featured-carousel .owl-nav .owl-next{ border-radius:50%; width:44px; height:44px; }
.bmg-featured-carousel .owl-dots{ text-align:center; }

/* =====================================================================
   VESSELS — category pages: wrap the plain "Capabilities" / "Design
   focus" checklist in the same white card + shadow treatment used
   elsewhere on the site (.bmg-card), so it doesn't sit as bare text in
   open white space between the styled sections above and below it.
   ===================================================================== */
.bmg-capability-panel{
  background:#fff; border:1px solid #e3ecf3; border-top:3px solid var(--blue);
  border-radius:12px; padding:2rem 2.25rem !important;
  box-shadow:0 10px 30px rgba(14,56,84,.06);
}
.bmg-capability-panel .elementor-icon-list-items{ margin:0; }
.bmg-capability-panel .elementor-icon-list-item{ padding:.35rem 0; }

