/* BEGIN extracted from inlined assets/css/main.css */
:root{
  --bg:#f5f7fa;
  --muted:#546179;
  --accent:#0b5e52;
  --max-width:1200px;
  font-family: "Cal Sans", "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --text:#0b1220;
  --heading:#071133;
  --muted-2:#546179;
  --brand-deep-teal: #0b5e52;
  --brand-warm: #ff7a45;
  --brand-soft-slate: #6b7785;
  --hero-overlay: rgba(6,10,15,0.50);
  --card-surface: #ffffff;
  --card-shadow: rgba(14,107,99,0.08);
  --footer-bg: #072026;
  --topbar-height: 36px;    /* new: used to position hero under fixed top bar */
  --header-height: 64px;    /* new: used to position hero under fixed header */
}
.top-contact-bar{
  background:#071827;
  color:rgba(255,255,255,0.95);
  font-size:0.9rem;
  height:36px;
  display:flex;
  align-items:center;
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1030;
  /* keep --topbar-height in sync if height changes via media queries */
  --topbar-height: 36px;
}
.top-contact-bar .container-fluid{ padding-left:0; padding-right:16px; }
.top-contact-text a{ color:rgba(255,255,255,0.95); text-decoration:underline; margin-left:6px; }
body{background:var(--bg);color:var(--text);margin:0;padding-top:0;line-height:1.5}
.header{height:64px;backdrop-filter:saturate(120%) blur(6px);background:rgba(255,255,255,0.72);box-shadow:0 1px 0 rgba(0,0,0,0.04); top:36px; position:fixed; width:100%; }
/* ensure --header-height reflects header height and position header below the top contact bar */
.header{ --header-height: 64px; }
.header{
  height:64px;
  backdrop-filter:saturate(120%) blur(6px);
  background:rgba(255,255,255,0.72);
  box-shadow:0 1px 0 rgba(0,0,0,0.04);
  /* position header immediately below the top-contact-bar using the CSS variable */
  top: calc(var(--topbar-height,36px));
  position:fixed;
  width:100%;
  z-index:1100;
}
.sitename{font-weight:700;margin:0;font-size:1.125rem;letter-spacing:0.2px;color:var(--brand-deep-teal)}
.navmenu ul{list-style:none;margin:0;padding:0;display:flex;gap:1rem;align-items:center}
.navmenu a{color:var(--text);text-decoration:none;padding:.35rem .5rem;border-radius:6px}
.navmenu a.active{background:rgba(14,107,99,0.08);color:var(--brand-deep-teal)}
.mobile-nav-toggle{display:none;cursor:pointer}
.logo{gap:0.5rem;align-items:center;display:flex; flex-direction:row; align-items:baseline;}
.logo{ justify-content:flex-start; text-align:left; }
.logo{ 
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
}
/* Logo image sizing and spacing */
.site-logo{
  width:56px;
  height:auto;
  display:inline-block;
  object-fit:contain;
  margin-right:10px;
  border-radius:4px;
}
/* Ensure logo + text align nicely on wider screens */
@media (min-width:576px){
  .logo{ flex-direction:row; align-items:center; }
  .logo .sitename{ margin:0; }
}
.logo .sitename{ font-size:1.125rem; line-height:1; margin:0; }
.logo .header-slogan{
  font-size:0.95rem;
  color:var(--muted-2);
  margin:0;
  padding-top:0;
  opacity:0.95;
  }
.container-fluid.container-xl{ padding-left:0; padding-right:16px; }
.logo{ margin-left:0; padding-left:24px; }
.hero .container { text-align:left; padding-left:0; }
.hero-oval { text-align:left; margin-left:0; max-width:110%; position: absolute; left: 24px; top: 50%; transform: translateY(-50%); }
.hero{
  margin-top: calc(var(--topbar-height,36px) + var(--header-height,64px));
  /* Use the banner image without a transparent gradient overlay */
  background-image: url('mainbanner.jpeg');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color: #fff;
  display:flex;
  align-items:center;
  position:relative;
  overflow:visible;
  box-shadow:0 8px 30px rgba(0,0,0,0.06);
}
.dark-background{
  background: var(--bg);
  color: var(--text);
  position:relative;
  overflow:visible;
}
.light-background{background:#fff;color:#111}
.light-background{ background: var(--bg); color: var(--text); }
.section{ background: var(--bg); color: var(--text); }
.btn-get-started{background:var(--brand-warm);color:#fff;border:none;padding:.6rem 1rem;border-radius:8px;box-shadow:0 8px 20px rgba(255,122,69,0.12)}
.construction-notice .btn-get-started{
    padding:.6rem 1rem;
    font-size:1rem;
    border-radius:8px;
    font-weight:600;
    letter-spacing:0.2px;
    box-shadow:0 8px 18px rgba(0,0,0,0.08);
    border: none;
    background: var(--brand-warm);
    color: #fff;
}
.construction-notice i.bi-tools{font-size:1.6rem;color:#fff}
.service-item .icon{color:var(--accent);margin-bottom:.5rem; font-size:1.6rem; display:flex; align-items:center; justify-content:center}
.service-item .icon,
.service-item .item-icon {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.service-item h3{
  display:block;
  margin: 0 0 0.5rem 0;
  padding: 0;
  font-size:1.05rem;
  color:var(--brand-deep-teal);
  line-height:1.12;
  letter-spacing:0.2px;
}
.service-item p {
    margin-top: 0.5rem;
    color: rgba(11,17,32,0.85);
    line-height:1.45;
    flex: 1 1 auto;
    margin-bottom: 0.5rem;
    font-size:0.96rem;
}
.service-item .icon{
    width:auto;
    height:auto;
    background:transparent;
    border-radius:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:.5rem;
    box-shadow:none;
    flex: 0 0 auto;
}
.service-item .icon svg{
    width:36px;
    height:36px;
    display:block;
}
.ship-agency-icon{
  background: linear-gradient(180deg, rgba(14,107,99,0.98), rgba(11,94,85,0.95));
  box-shadow: 0 10px 24px rgba(14,107,99,0.12);
  border: none;
}
.ship-agency-icon svg path{fill:#fff;}
.brokerage-icon{
  background: linear-gradient(180deg, rgba(6,97,117,0.96), rgba(8,78,88,0.94));
  box-shadow: 0 10px 20px rgba(6,97,117,0.10);
  border:none;
}
.brokerage-icon svg path{fill:#fff;}
.container-icon{
  background: linear-gradient(180deg, rgba(11,94,215,0.95), rgba(7,70,160,0.93));
  box-shadow: 0 10px 20px rgba(11,94,215,0.08);
  border:none;
}
.container-icon svg path{fill:#fff;}
.logistics-icon{
  background: linear-gradient(180deg, rgba(8,91,176,0.96), rgba(5,64,130,0.94));
  box-shadow: 0 10px 20px rgba(8,91,176,0.08);
  border:none;
}
.logistics-icon svg path{fill:#fff;}
.ship-icon { display:block; width:40px; height:40px; }
.ship-icon path { fill:#fff; }
.service-item.position-relative.p-3.border.rounded {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--card-surface);
    /* stronger subtle shadow and warmer border for contrast */
    box-shadow: 0 18px 40px rgba(2,8,23,0.10), 0 6px 18px rgba(2,8,23,0.06);
    border: 1px solid rgba(2,8,23,0.06);
    padding:.75rem;
    border-radius:12px;
}
.service-item h3 { margin-top: 0.5rem; margin-bottom: 0.5rem; color: #092233; }
.service-item .item-icon{
  width:44px;
  height:44px;
  min-width:44px;
  border-radius:10px;
  /* new neutral/modern color scheme for icons */
  background: linear-gradient(180deg, rgba(10,25,47,0.98), rgba(4,62,80,0.95));
  color:#fff;
  font-size:1.05rem;
  /* deeper lift shadow for icons */
  box-shadow: 0 10px 30px rgba(2,8,23,0.14), 0 4px 12px rgba(2,8,23,0.06);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right:0.75rem;
  flex: 0 0 auto;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.service-item .item-icon > i{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  border-radius:50%;
  color:inherit;
  background:transparent;
  font-size:1.05rem;
}
.service-item .item-icon > i.bi-ship { background: transparent; color:#fff; }
.service-item .item-icon > i.bi-handshake { background: transparent; color:#fff; }
.service-item .item-icon > i.bi-box-seam { background: transparent; color:#fff; }
.service-item .item-icon > i.bi-truck { background: transparent; color:#fff; }
.service-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 28px 60px rgba(2,8,23,0.12), 0 8px 22px rgba(2,8,23,0.06);
}
.service-item:hover .item-icon{ transform: translateY(-4px) scale(1.06); box-shadow: 0 20px 44px rgba(2,8,23,0.16); }
.service-item .icon svg, .service-item .icon svg path{
    width:36px;
    height:36px;
    display:block;
    fill: #fff !important;
}
@media (max-width:576px){
  .service-item .item-icon{ width:28px; height:28px; font-size:0.95rem; margin-right:0.4rem; }
  .service-item h3{ font-size:0.98rem; }
}
.badge-counter{
    display:none;
}
@media (max-width:576px){
  .badge-counter{right:12px;top:10px;min-width:30px;height:30px;line-height:30px;font-size:0.82rem;}
}
.features .section-title p{color:var(--muted);margin:0}
.footer{background:var(--footer-bg);color:rgba(255,255,255,0.96)}
.footer .sitename{color:var(--brand-warm)}
.footer a{color:rgba(255,255,255,0.9);text-decoration:none}
.footer .social-links a{display:inline-flex;align-items:center;justify-content:center;margin-right:.5rem;color:#fff;background:rgba(255,255,255,0.04);width:36px;height:36px;border-radius:6px}
.scroll-top{position:fixed;right:18px;bottom:18px;width:44px;height:44px;background:var(--brand-deep-teal);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(14,107,99,0.14)}
#preloader{display:none}
.hero{
  /* duplicate hero rule kept in file: ensure no transparent overlay is applied */
  background-image: url('ALSHIPLINK.jpeg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  min-height:64vh;
}
.construction-notice{
  gap:0.75rem;
  padding:.35rem .45rem;
  align-items:center;
  background: transparent;
  border-radius: 0;
  display:inline-flex;
  transform-origin:center;
}
.construction-notice .btn-get-started{
    padding:.6rem 1rem;
    font-size:1rem;
    border-radius:0;
    font-weight:600;
    letter-spacing:0.2px;
    box-shadow:none;
    border: none;
    background: transparent;
    color: #fff;
}
.construction-notice i.bi-tools{
    font-size:2rem;
    color: #fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
@media (min-width:992px){
  .construction-notice{ transform: scale(1.05); }
}
@media (max-width:575px){
  .construction-notice .btn-get-started{ font-size:0.95rem; padding:.45rem .6rem; }
  .construction-notice i.bi-tools{ font-size:1.2rem; }
  .construction-notice{ gap:0.45rem; padding:.25rem .35rem; }
}
h1,h2,h3,h4,h5,h6{color:var(--heading);font-weight:600}
.lead{color:rgba(15,23,32,0.88);font-weight:500}
.small, .text-muted, .muted { color: var(--muted-2); }
.hero-oval {
    max-width: 600px;
    left: 50%;
    bottom: 24px;
    top: auto;
    transform: translateX(-50%);
    padding: 1rem 1.25rem;
    text-align: center;
}
/* Ensure any hero variant classes keep the hero-oval centered and visible */
.hero.hero-variant-left .hero-oval,
.hero.hero-variant-right .hero-oval {
  left: 50% !important;
  transform: translateX(-50%) translateY(-50%) !important;
  text-align: center !important;
}
/* New variant: shift the hero text block to the right when ship9 is shown */
.hero.hero-variant-right .hero-oval {
  left: 75%;
  transform: translateX(-50%) translateY(-50%);
  text-align: left;
}
/* new variant: pin hero text to maximum left when ship9 is displayed */
.hero.hero-variant-left .hero-oval {
  left: 24px !important;
  transform: translateY(-50%) !important;
  text-align: left !important;
}
.intro-card{
  max-width:520px; /* reduce inner card width to tighten text background */
  background: linear-gradient(180deg, rgba(2,8,23,0.18), rgba(2,8,23,0.06));
  color: #ffffff;
  padding:1rem 1.25rem;
  border-radius:10px;
  box-shadow:0 10px 26px rgba(2,8,23,0.22);
  text-align:left;
  margin-left:0;
}
/* Animated slogans under intro text */
.slogans{
  margin-top:0.8rem;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:0.6rem;
  align-items:center;
  position:relative;
}
/* larger, crisper slogan image with rim-light and smoother animation */
.slogan-img{
  width:112px;
  height:112px;
  object-fit:cover;
  border-radius:12px;
  box-shadow:0 26px 60px rgba(2,8,23,0.28), 0 2px 8px rgba(255,255,255,0.06) inset;
  transition: transform .45s cubic-bezier(.2,.9,.2,1), opacity .45s ease, filter .45s ease;
  opacity:1;
  transform-origin:center;
  border: none;
  background: transparent;
  will-change: transform, opacity;
}
.slogan-img.fade-out{ opacity:0; transform: translateY(-8px) scale(.96); filter: blur(.6px) saturate(.9); }
/* text: smooth slide + fade */
.slogan-rotate{
  display:inline-block;
  font-weight:700;
  color:#fff;
  background: rgba(3,10,20,0.34);
  padding:.5rem .9rem;
  border-radius:10px;
  font-size:1.02rem;
  letter-spacing:0.2px;
  transition: opacity .45s ease, transform .45s cubic-bezier(.2,.9,.2,1);
  opacity:1;
  will-change: transform, opacity;
  min-width:220px;
  text-align:left;
}
.slogan-rotate.fade-out{ opacity:0; transform: translateY(-8px) scale(.995); }
/* subtle pulse when new slogan appears */
@keyframes slogan-pop {
  0% { transform: scale(.98); opacity:0.8; }
  60% { transform: scale(1.03); opacity:1; }
  100% { transform: scale(1); opacity:1; }
}
.slogan-appear { animation: slogan-pop .5s cubic-bezier(.2,.9,.2,1) both; }
/* responsive sizing adjustments */
@media (max-width:767.98px){
  .slogan-img{ width:72px; height:72px; border-radius:8px; box-shadow:0 14px 36px rgba(2,8,23,0.22); }
  .slogan-rotate{ min-width:140px; font-size:0.98rem; }
}
.intro-title{ font-size:1.05rem; margin:0 0 .35rem; color:rgba(255,255,255,0.98); font-weight:700; }
.intro-text{ margin:0 0 .6rem; color:rgba(255,255,255,0.98); font-size:1rem; line-height:1.6; hyphens:auto; }
.intro-list{ margin:0; padding-left:1.15rem; color:rgba(255,255,255,0.88); font-size:0.95rem; }
.intro-list li{ margin-bottom:0.35rem; }
@media (max-width:575px){
  .hero-oval{ position: static; transform: none; padding:1rem 1.25rem; margin: 0 auto 12px; max-width:100%; }
  .oval-title{ font-size:1.4rem; }
  .oval-lead{ font-size:.98rem; }
  .intro-card{ max-width:100%; padding:.85rem; }
}
@media (max-width:575px){
  .hero-oval{ padding:1rem 1.25rem; margin-top: -30px; }
  .oval-title{ font-size:1.4rem; }
  .oval-lead{ font-size:.98rem; }
  .intro-card{ max-width:100%; padding:.85rem; }
}
.oval-title{ font-size:2.25rem; margin:0 0 .25rem; color:#fff; letter-spacing:0.6px; }
.oval-lead{ margin:0 0 .6rem; color:rgba(255,255,255,0.92); font-weight:600; }
.slogan{
  margin:0 0 0.9rem;
  color: rgba(255,255,255,0.9);
  font-weight:500;
  font-size:1.05rem;
  letter-spacing:0.4px;
  opacity:0.95;
}
@media (max-width:575px){
  .slogan{ font-size:0.95rem; margin-bottom:0.6rem; }
}
@media (max-width:575px){
  .hero-oval{ padding:1rem 1.25rem; margin-top: -30px; }
  .oval-title{ font-size:1.4rem; }
  .oval-lead{ font-size:.98rem; }
}
.services-image img{
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:12px;
  box-shadow:0 10px 30px rgba(2,8,23,0.08);
}
.service-item .service-img img {
  width: 100%;
  height: auto;           /* allow natural aspect and responsive scaling */
  max-height: 120px;     /* reduced max height so images appear smaller but visible */
  object-fit: cover;
  border-radius: 8px;
  display: block;
  max-width: 100%;
}
/* Ensure seaair.png uses the same sizing as other service images */
.service-item .service-img img[src$="seaair.png"] {
  height: auto;
  max-height: 120px;
  width: 100%;
  object-fit: cover;
  border-radius: 8px;
  max-width: 100%;
}

/* ===== ADDITION: keep container2.png as a centered square inside the Container Services card ===== */
.service-item .service-img img[src$="container2.png"] {
  width: 100%;
  max-width: 120px;       /* square box maximum */
  height: 120px;          /* fixed square height to match other cards */
  object-fit: contain;    /* show full container artwork without cropping */
  display: block;
  margin: 0 auto;         /* center inside the card */
  background: transparent;
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(2,8,23,0.06);
}

/* mobile override: keep container image responsive but square when possible */
@media (max-width:767.98px){
  .service-item .service-img img[src$="container2.png"]{
    max-width: 160px;
    height: 160px;
  }
}

#img-lightbox-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(2,8,23,0.88);
  z-index: 2000;
  padding: 24px;
  cursor: zoom-out;
}
#img-lightbox-overlay img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
  cursor: auto;
}
@media (max-width:600px){
  #img-lightbox-overlay { padding: 12px; }
}
/* Ensure images are fully visible on small/mobile screens */
@media (max-width:767.98px){
  .service-item .service-img img,
  .service-item .service-img img[src$=".png"],
  .service-item .service-img img[src$=".jpg"],
  .service-item .service-img img[src$=".jfif"]{
    height: auto !important;
    max-height: 160px !important; /* reduced mobile max height to keep images proportionally smaller */
    object-fit: contain !important; /* show full image rather than cropping */
    border-radius: 8px;
    display: block;
    width: 100% !important;
  }
}
.featured-services .container-fluid{
  padding-left:12px;
  padding-right:12px;
  max-width:100%;
}
.featured-services .row {
  align-items: stretch;
}
.featured-services .col-lg-3, .featured-services .col-md-6 {
  display: flex;
}
.featured-services .col-lg-3 > .service-item,
.featured-services .col-md-6 > .service-item {
  flex: 1 1 auto;
  display:flex;
  flex-direction:column;
}
.service-item .item-icon{
  width:40px;
  height:40px;
  min-width:40px;
  border-radius:50%;
  background:var(--brand-deep-teal);
  color:#fff;
  font-size:1.1rem;
  box-shadow: 0 8px 18px rgba(14,107,99,0.12);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right:0.75rem;
  flex: 0 0 auto;
  transition:transform .18s ease, box-shadow .18s ease;
}
.service-item .item-icon > i{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  border-radius:50%;
  color:inherit;
  background:transparent;
  font-size:1.05rem;
}
.service-item .item-icon > i.bi-ship { background: linear-gradient(180deg,var(--brand-deep-teal), rgba(6,95,86,0.95)); color:#fff; }
.service-item .item-icon > i.bi-handshake { background: linear-gradient(180deg, var(--brand-warm), rgba(255,122,69,0.85)); color:#fff; }
.service-item .item-icon > i.bi-box-seam { background: linear-gradient(180deg,#0b63d7,#064aa8); color:#fff; }
.service-item .item-icon > i.bi-truck { background: linear-gradient(180deg,#085fb0,#053e78); color:#fff; }
.service-item:hover .item-icon{ transform: translateY(-4px) scale(1.06); box-shadow: 0 14px 30px rgba(14,107,99,0.12); }
.service-item .icon svg, .service-item .icon svg path{
    width:36px;
    height:36px;
    display:block;
    fill: #fff !important;
}
@media (max-width:576px){
  .service-item .item-icon{ width:34px; height:34px; min-width:34px; font-size:1rem; margin-right:0.5rem; }
  .service-item h3{ font-size:1rem; }
}
.header-contacts{
  margin-left:1rem;
  display:flex;
  gap:0.6rem;
  align-items:center;
  font-size:0.92rem;
  color:var(--brand-soft-slate);
  white-space:nowrap;
}
.header-contacts .contacts-phones{ font-weight:600; color:var(--brand-deep-teal); }
.header-contacts .contacts-email{ color:var(--muted-2); text-decoration:none; padding-left:6px; border-left:1px solid rgba(0,0,0,0.06) }
@media (max-width:575px){
  .header-contacts{ display:none; }
}
#ports .p-3.border.rounded {
    background: var(--card-surface);
    box-shadow: 0 8px 22px var(--card-shadow);
    border: 1px solid rgba(11,18,20,0.04);
    border-radius: 12px;
    color: var(--text);
    transition: transform .18s ease, box-shadow .18s ease;
    padding: 1.25rem;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}
#ports .p-3.border.rounded h5 { color: var(--brand-deep-teal); margin-bottom:0.5rem; }
#ports .p-3.border.rounded p { color: var(--brand-soft-slate); margin-top:0; margin-bottom:0; }

/* New: make contact squares match the same card color, border and shadow */
#contacts .p-3.border.rounded {
    background: var(--card-surface);
    box-shadow: 0 8px 22px var(--card-shadow);
    border: 1px solid rgba(11,18,20,0.04);
    border-radius: 12px;
    color: var(--text);
    transition: transform .18s ease, box-shadow .18s ease;
    padding: 1.25rem;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}
#contacts .p-3.border.rounded h5 { color: var(--brand-deep-teal); margin-bottom:0.35rem; font-size:1rem; }
#contacts .p-3.border.rounded p { color: var(--brand-soft-slate); margin-bottom:0; font-size:0.92rem; line-height:1.18; }
@media (min-width:576px){
  #ports .p-3.border.rounded:hover{
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(2,8,23,0.08);
  }
}
#proforma-form .form-label{ display:inline-block; width:140px; margin-bottom:0.25rem; vertical-align:middle; color:var(--muted-2); font-weight:700; }
#proforma-form .form-control, #proforma-form .form-select, #proforma-form textarea{ display:inline-block; width:calc(100% - 150px); vertical-align:middle; }
@media (max-width:767.98px){
  #proforma-form .form-label, #proforma-form .form-control, #proforma-form .form-select, #proforma-form textarea{ display:block; width:100%; }
  #proforma-form .form-label{ margin-bottom:0.35rem; width:auto; font-weight:700; }
}
/* END extracted CSS */

.mid-banner-image{
  height:320px; /* increased height for a wider banner presence */
  background-image: url('port1.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius:8px;
  box-shadow: 0 12px 30px rgba(2,8,23,0.06);
  margin: 0; /* remove horizontal margins so banner spans full container width */
}
.services-banner-image{
  height:280px;
  background-image: url('port1.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius:8px;
  box-shadow: 0 12px 30px rgba(2,8,23,0.06);
  margin: 0;
}

/* mobile adjustments: show toggle, hide desktop nav, tighten hero and form spacing */
@media (max-width:991.98px){
  .mobile-nav-toggle{ display:block; font-size:1.3rem; color:var(--heading); }
  /* allow JS to control display (removed !important) */
  .navmenu ul{
    display:none;
    flex-direction:column;
    gap:0;
    background:var(--card-surface);
    position:fixed; /* keep the mobile menu fixed so it sits above scrolling content */
    left:0;
    right:0;
    /* place the menu directly below the top contact bar + header */
    top: calc(var(--topbar-height,36px) + var(--header-height,64px));
    padding:8px;
    border-radius:8px;
    box-shadow:0 18px 44px rgba(2,8,23,0.12);
    /* ensure the mobile nav is on the topmost layer when opened */
    z-index:2200;
    min-width: 0;
    max-height: calc(100vh - (var(--topbar-height,36px) + var(--header-height,64px) + 8px)); /* keep menu within viewport */
    overflow-y: auto;              /* allow vertical scrolling with finger */
    touch-action: pan-y;           /* enable native vertical pan gestures */
    -webkit-overflow-scrolling: touch; /* smooth scrolling on iOS */
  }
  .navmenu ul li a{ display:block; padding:.6rem .9rem; border-radius:6px; }
}

/* smaller hero & reposition intro for mobile */
@media (max-width:767.98px){
  .hero{ min-height:48vh; background-position: center 30%; }
  .hero-oval{ position: static; transform:none; left:auto; top:auto; padding:12px; margin: 12px; max-width:100%; text-align:left; }
  .intro-card{ max-width:100%; padding:.85rem; box-shadow: none; background: rgba(255,255,255,0.03); }
  #proforma-form .form-label, #proforma-form .form-control, #proforma-form .form-select, #proforma-form textarea{ display:block; width:100%; }
  #proforma-form .form-label{ margin-bottom:0.35rem; width:auto; font-weight:700; }
  .services-banner-image, .mid-banner-image{ height:180px; }
}

/* ===== NEW: Mobile presentation text tuning for small phones ===== */
@media (max-width:420px){
  /* make hero taller for breathing room, reduce padding around text */
  .hero{ min-height:54vh; padding-top:10px; padding-bottom:10px; background-position: center 35%; }

  /* ensure the oval is full-width, centered and visually separated from the background */
  .hero-oval{
    position: relative !important;
    left: auto !important;
    transform: none !important;
    top: auto !important;
    margin: 8px;
    padding: 10px;
    max-width: calc(100% - 20px);
    box-shadow: 0 8px 20px rgba(2,8,23,0.12);
    background: linear-gradient(180deg, rgba(0,0,0,0.28), rgba(0,0,0,0.18));
    border-radius: 10px;
    text-align: left !important;
    /* allow full content to display on mobile (no clipping) */
    max-height: none !important;
    overflow: visible !important;
    z-index: 1300;                      /* keep hero text above fixed header/top-bar */
    -webkit-overflow-scrolling: touch;   /* smooth native scrolling on iOS */
  }
  .intro-card{
    background: transparent;
    padding: 8px 8px;
    max-width: 100%;
    box-shadow: none;
    max-height: none !important;
    overflow: visible !important;
  }
  .intro-text{
    font-size: 0.95rem;
    line-height: 1.45;
    margin-bottom: 0.5rem;
    color: #ffffff; /* keep contrast on the hero image */
    hyphens:auto;
  }
  .intro-list{
    font-size: 0.88rem;
    padding-left: 1rem;
    margin-bottom: 0.4rem;
    color: rgba(255,255,255,0.92);
  }

  /* reduce slogan size and ensure it wraps nicely */
  .slogan-rotate{
    min-width: auto;
    font-size: 0.92rem;
    padding: .45rem .6rem;
    display: inline-block;
    background: rgba(3,10,20,0.28);
    white-space: normal;
    word-break: break-word;
  }
  .slogan-img{
    width:56px;
    height:56px;
    margin-right:0.6rem;
    display:inline-block;
    vertical-align:middle;
  }
  .slogans{
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    justify-content: flex-start;
  }

  /* ensure hero text and controls do not overflow viewport */
  .hero-oval, .intro-card, .slogans, .slogan-rotate { overflow-wrap: anywhere; word-break: break-word; }

  /* slightly reduce the hero overlay contrast to keep text legible on varied background images */
  .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.28), rgba(0,0,0,0.18));
    pointer-events: none;
    border-radius: inherit;
  }

  /* hide rotating slogans on very small/mobile screens to show only presentation text */
  .slogans {
    display: none !important;
  }

  /* Ensure the hero area sits below the top-contact-bar and header so content is not hidden.
     Use padding-top equal to combined heights via CSS variables when possible; fallback to a safe min. */
  .hero {
    padding-top: calc(var(--topbar-height,36px) + var(--header-height,64px) + 8px);
  }

  /* Tighter overrides to ensure the full presentation fits inside the hero on very small screens */
  .hero { min-height: 48vh; padding-top: calc(var(--topbar-height,36px) + var(--header-height,64px) + 6px); }
  .hero-oval {
    padding: 8px !important;
    margin: 6px !important;
    max-width: calc(100% - 12px) !important;
    border-radius: 8px;
  }
  .intro-card {
    padding: 6px 8px !important;
  }
  .intro-text {
    font-size: 0.84rem !important;
    line-height: 1.35 !important;
    margin-bottom: 0.35rem !important;
  }
  .intro-list {
    font-size: 0.78rem !important;
    padding-left: 0.9rem !important;
    margin-bottom: 0.25rem !important;
  }
  .slogan-rotate { font-size: 0.82rem !important; padding: .32rem .5rem !important; min-width: 0; }
  .slogans { gap: 0.35rem !important; }
  .slogan-img { width:44px !important; height:44px !important; }

  /* Ensure overflow doesn't hide content and allow natural scrolling within hero area */
  .hero-oval, .intro-card { max-height: none !important; overflow: visible !important; }
}

/* Make the mobile nav explicitly allow touch vertical scrolling and occupy safe area */
@media (max-width:991.98px){
  .navmenu ul{
    display:none;
    flex-direction:column;
    gap:0;
    background:var(--card-surface);
    position:fixed;
    left:0;
    right:0;
    top: calc(var(--topbar-height,36px) + var(--header-height,64px) + 8px);
    padding:8px;
    border-radius:8px;
    box-shadow:0 12px 32px rgba(2,8,23,0.08);
    z-index:2200;
    min-width:180px;
    max-height: calc(100vh - (var(--topbar-height,36px) + var(--header-height,64px) + 24px)); /* keep menu within viewport */
    overflow-y: auto;              /* allow vertical scrolling with finger */
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;           /* enable native vertical pan gestures */
  }
  .navmenu ul li a{ display:block; padding:.6rem .9rem; border-radius:6px; }
}

/* Ensure proforma form uses block layout and is fully scrollable on small screens */
@media (max-width:767.98px){
  #proforma-form .form-label,
  #proforma-form .form-control,
  #proforma-form .form-select,
  #proforma-form textarea{ display:block; width:100%; }
  #proforma-form .form-label{ margin-bottom:0.35rem; width:auto; font-weight:700; }
  #proforma-form { -webkit-overflow-scrolling: touch; }
  #proforma-form .form-control, #proforma-form .form-select, #proforma-form textarea { box-sizing: border-box; }
}

/* ===== NEW: make top contact bar and header fit better on small phones ===== */
@media (max-width:575px){
  /* make the top bar slightly taller and allow content to wrap */
  .top-contact-bar{
    height:auto;
    padding:6px 8px;
    line-height:1.2;
  }
  .top-contact-bar .container-fluid{ padding-left:8px; padding-right:8px; }
  .top-contact-text{
    display:flex;
    flex-wrap:nowrap;               /* keep contacts on a single line */
    gap:4px 6px;                /* reduced horizontal/vertical gap for tighter layout */
    align-items:center;
    font-size:0.72rem;         /* slightly smaller text to fit more compactly */
    justify-content:flex-end;
  }
  .top-contact-text a{ 
    word-break:break-all; 
    font-size:0.68rem;         /* reduce link size for compactness */
    margin-left:4px;           /* small separation between link items */
  }

  /* ensure header sits below the top bar (top was 36px for desktop) */
  .header{
    top:56px; /* allows extra room for wrapped contact bar */
    height:56px;
    padding-left:8px;
    padding-right:8px;
  }
  .logo{ margin-left:0; padding-left:8px; }
  .sitename{ font-size:1.05rem; }
  .header-slogan{ font-size:0.88rem; color:var(--muted-2); white-space:normal; }

  /* reduce nav spacing to avoid overflow */
  .navmenu ul{ gap:0.5rem; }
  .navmenu a{ padding:.35rem .45rem; font-size:0.95rem; }

  /* Remove forced body padding which prevented natural scrolling and caused layout shift.
     Let JS compute offsets for in-page links instead. */
  body{ padding-top: 0; }
}

/* Ensure hero area and hero-oval are fully visible and scrollable on small phones */
@media (max-width:420px){
  /* make hero taller for breathing room, reduce padding around text */
  .hero{ min-height:54vh; padding-top:10px; padding-bottom:10px; background-position: center 35%; }

  /* ensure the oval is full-width, centered and visually separated from the background */
  .hero-oval{
    position: relative !important;
    left: auto !important;
    transform: none !important;
    top: auto !important;
    margin: 8px;
    padding: 10px;
    max-width: calc(100% - 20px);
    box-shadow: 0 8px 20px rgba(2,8,23,0.12);
    background: linear-gradient(180deg, rgba(0,0,0,0.28), rgba(0,0,0,0.18));
    border-radius: 10px;
    text-align: left !important;
    /* allow full content to display on mobile (no clipping) */
    max-height: none !important;
    overflow: visible !important;
    z-index: 1300;                      /* keep hero text above fixed header/top-bar */
    -webkit-overflow-scrolling: touch;   /* smooth native scrolling on iOS */
  }
  .intro-card{
    background: transparent;
    padding: 8px 8px;
    max-width: 100%;
    box-shadow: none;
    max-height: none !important;
    overflow: visible !important;
  }
  .intro-text{
    font-size: 0.95rem;
    line-height: 1.45;
    margin-bottom: 0.5rem;
    color: #ffffff; /* keep contrast on the hero image */
    hyphens:auto;
  }
  .intro-list{
    font-size: 0.88rem;
    padding-left: 1rem;
    margin-bottom: 0.4rem;
    color: rgba(255,255,255,0.92);
  }

  /* reduce slogan size and ensure it wraps nicely */
  .slogan-rotate{
    min-width: auto;
    font-size: 0.92rem;
    padding: .45rem .6rem;
    display: inline-block;
    background: rgba(3,10,20,0.28);
    white-space: normal;
    word-break: break-word;
  }
  .slogan-img{
    width:56px;
    height:56px;
    margin-right:0.6rem;
    display:inline-block;
    vertical-align:middle;
  }
  .slogans{
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    justify-content: flex-start;
  }

  /* ensure hero text and controls do not overflow viewport */
  .hero-oval, .intro-card, .slogans, .slogan-rotate { overflow-wrap: anywhere; word-break: break-word; }

  /* slightly reduce the hero overlay contrast to keep text legible on varied background images */
  .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.28), rgba(0,0,0,0.18));
    pointer-events: none;
    border-radius: inherit;
  }

  /* hide rotating slogans on very small/mobile screens to show only presentation text */
  .slogans {
    display: none !important;
  }

  /* Ensure the hero area sits below the top-contact-bar and header so content is not hidden.
     Use padding-top equal to combined heights via CSS variables when possible; fallback to a safe min. */
  .hero {
    padding-top: calc(var(--topbar-height,36px) + var(--header-height,64px) + 8px);
  }
}

@media (min-width:768px){
  .slogans{
    justify-content:flex-start;
    gap:1rem;
  }
  .slogan-img{
    width:96px;
    height:96px;
    border-radius:10px;
    box-shadow:0 22px 60px rgba(2,8,23,0.24);
  }
  .slogan-rotate{
    font-size:1.05rem;
    padding:.6rem 1rem;
  }
}
/* ensure small screens still show image but smaller */
@media (max-width:767.98px){
  .slogan-img{ width:64px; height:64px; }
  .slogan-rotate{ font-size:0.98rem; padding:.45rem .7rem; }
}

@media (min-width:768px){
  /* Force the four contact cards to sit in one row (each 25% width) */
  #contacts .row.g-3 > .col-md-6.col-lg-4 {
    flex: 0 0 25%;
    max-width: 25%;
  }
}

/* NEW: ensure any column variant inside #contacts becomes 25% on medium and larger screens */
@media (min-width:768px){
  #contacts .row.g-3 > [class*="col-"] {
    flex: 0 0 25% !important;
    max-width: 25% !important;
    min-width: 220px;         /* keep cards readable on narrow viewports, enables scroll */
  }
}

/* Compact contact text: reduce gaps between lines and between elements */
#contacts .p-3.border.rounded h5 { margin-bottom: 0.25rem; }
#contacts .p-3.border.rounded p,
#contacts .p-3.border.rounded .small,
#contacts .p-3.border.rounded a {
  margin-bottom: 0.2rem !important;
  line-height: 1.18;
  font-size: 0.95rem;
}

/* Ensure long email addresses wrap and fit inside contact cards */
#contacts .p-3.border.rounded a {
  display: inline-block;
  max-width: 100%;
  word-break: break-word;
  overflow-wrap: anywhere;
  font-size:0.95rem;
  white-space: normal;
  color:var(--brand-deep-teal);
}

/* Align certain service cards so their body text lines up with Sea & Air Freight Booking */
.service-item.align-lower h3 { margin-top: 1.25rem; } /* slightly lower heading */
.service-item.align-lower p { margin-top: 0.75rem; }  /* push paragraph down to visually align */

@media (max-width:767.98px){
  /* on small screens reduce the offset so stacking still looks balanced */
  .service-item.align-lower h3 { margin-top: 0.6rem; }
  .service-item.align-lower p { margin-top: 0.35rem; }
}

/* New: tighter spacing for contact cards to ensure long emails fit on one line */
@media (min-width:768px){
  /* reduce gap between contact cards */
  #contacts .row.g-3 {
    display: flex;              /* force single-line layout */
    flex-wrap: nowrap;         /* prevent wrapping so all squares sit in one row */
    gap: 0.5rem;               /* tightened gap between cards (keeps previous compactness) */
    overflow-x: auto;          /* allow horizontal scroll on small screens */
    -webkit-overflow-scrolling: touch;
  }
  /* make each contact card a little narrower padding-wise so content fits better */
  #contacts .p-3.border.rounded {
    padding: 0.9rem; /* reduced from 1.25rem */
  }
  /* slightly reduce card min-height spacing (visual compactness) */
  #contacts .p-3.border.rounded h5 { margin-bottom: 0.2rem; font-size:0.98rem; }
  #contacts .p-3.border.rounded p,
  #contacts .p-3.border.rounded .small,
  #contacts .p-3.border.rounded a {
    margin-bottom: 0.15rem !important;
    line-height: 1.12;
    font-size: 0.93rem;
  }
}

/* apply same compactness for smaller screens */
@media (max-width:767.98px){
  #contacts .row.g-3 { gap: 0.4rem; }
  #contacts .p-3.border.rounded { padding: 0.85rem; }
  #contacts .p-3.border.rounded p,
  #contacts .p-3.border.rounded a { font-size:0.92rem; line-height:1.12; }
}

/* New: five equal square columns for services (two rows of five on large screens) */
.featured-services .col-service {
  flex: 0 0 20%;
  max-width: 20%;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  box-sizing: border-box;
}
@media (max-width: 1199.98px) {
  /* fall back to 3 columns between md and xl */
  .featured-services .col-service {
    flex: 0 0 33.3333%;
    max-width: 33.3333%;
  }
}
@media (max-width: 767.98px) {
  /* single column on small screens */
  .featured-services .col-service {
    flex: 0 0 100%;
    max-width: 100%;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }
}
/* ensure the service-item remains square-like and consistent height within each column */
.featured-services .service-item {
  min-height: 260px; /* ensures more square appearance; adjust if needed */
  display: flex;
  flex-direction: column;
}

/* Ensure the full-width port image in the Ports section fills remaining space and preserves layout */
#ports .col-12 > .p-3[style] img[src$="port10.png"],
#ports .col-12 > .p-3 img[src$="port10.png"] {
  width: 100%;
  height: 320px;                /* comfortable banner height on desktop */
  object-fit: cover;           /* cover remaining area without distortion */
  display: block;
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(2,8,23,0.06);
}

@media (max-width: 767.98px) {
  #ports .col-12 > .p-3[style] img[src$="port10.png"],
  #ports .col-12 > .p-3 img[src$="port10.png"] {
    height: 180px;             /* smaller height on mobile */
    object-position: center;
  }
}

/* ensure port image inside a port card fits well and doesn't dominate the square */
#ports .p-3 img[src$="port10.png"]{
  width:100%;
  height:160px;
  object-fit:cover;
  border-radius:6px;
  box-shadow:0 8px 20px rgba(2,8,23,0.06);
  display:block;
  margin-top:0.6rem;
}

@media (max-width:420px){
  /* ensure hero content is pushed below the fixed top contact bar + header */
  .hero {
    padding-top: 110px; /* sufficient space for top-contact-bar + header on small phones */
  }
  /* keep the hero text block above fixed header layers */
  .hero-oval{
    z-index: 1200; /* appear above header/top bars so text is not hidden */
  }
}

/* Ensure hero text is always positioned below the fixed top bars on small screens */
@media (max-width:767.98px){
  .hero-oval{
    /* add safe spacing so the hero text never touches the top-contact-bar + header */
    margin-top: calc(var(--topbar-height,36px) + var(--header-height,64px) + 8px) !important;
    padding-top: .6rem !important;
  }
}

.hero-oval {
    /* center the hero text block in the middle of the hero */
    left: 50% !important;
    top: 38% !important;
    transform: translate(-50%, -38%) !important;
}

.service-item .service-slogan.mt-2.small.text-muted {
    margin-top: 0.25rem; /* moved up: reduce space above the slogan */
    margin-bottom: 0;    /* tighten bottom spacing */
    font-size: 0.86rem;  /* slightly smaller to better fit the compact area */
    color: #6b7785;      /* preserve muted appearance */
}

.header .container-fluid.container-xl {
    display: flex;
    align-items: center;
    justify-content: space-between; /* ensure logo left, nav right */
}
/* ensure nav sits to the right */
.navmenu {
    margin-left: auto;
    display: flex;
    align-items: center;
}
.navmenu ul {
    justify-content: flex-end;
}