/* Haishan Industry v0.3.2 — carbon black, electric blue and titanium silver */
:root {
  --blue: #126BCE;
  --blue-2: #2685E8;
  --sky: #AEBCCB;
  --ink: #0B1018;
  --text: #2C3746;
  --muted: #697686;
  --pale: #E8ECF0;
  --pale-2: #F3F5F7;
  --line: #D5DCE3;
  --white: #FFFFFF;
  --max: 1440px;
  --shadow: 0 22px 60px rgba(11, 16, 24, .14);
  --radius: 4px;
}

body { background: #fff; color: var(--text); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--blue-2); outline-offset: 3px; }
.skip-link { background: var(--blue); }

/* Authoritative navigation, with the approved eight links only. */
.site-header { background: var(--ink); border-bottom: 1px solid rgba(174, 188, 203, .2); box-shadow: 0 8px 30px rgba(0, 0, 0, .22); }
.header-row { min-height: 88px; gap: clamp(16px, 2vw, 30px); }
.brand { flex: 0 0 170px; color: #fff; }
.brand-symbol { filter: drop-shadow(0 0 12px rgba(18, 107, 206, .25)); }
.brand-wordmark strong { color: #fff; font-size: 16px; letter-spacing: .13em; }
.brand-wordmark small { color: var(--sky); }
.site-nav { margin-left: auto; }
.nav-menu { gap: clamp(8px, .92vw, 15px); }
.nav-menu > li > a { position: relative; min-height: 86px; color: #fff; font-size: 10px; letter-spacing: .075em; }
.nav-menu > li > a::before { position: absolute; right: 0; bottom: 22px; left: 0; height: 2px; background: var(--blue); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nav-menu > li > a:hover::before, .nav-menu > li > a:focus::before, .nav-menu > li.current-menu-item > a::before, .nav-menu > li.current-menu-ancestor > a::before { transform: scaleX(1); }
.nav-menu > li > a:hover, .nav-menu > li > a:focus, .nav-menu > li.current-menu-item > a, .nav-menu > li.current-menu-ancestor > a { color: #75B4FF; }
.nav-menu .sub-menu { color: #fff; background: #111923; border: 1px solid rgba(174, 188, 203, .2); border-top: 3px solid var(--blue); box-shadow: 0 28px 65px rgba(0, 0, 0, .38); }
.nav-menu .sub-menu li a { color: #e8edf3; }
.nav-menu .sub-menu li a:hover, .nav-menu .sub-menu li a:focus { color: #fff; background: #1b2c40; }
.nav-menu > .menu-item-has-children > a::after { border-color: currentColor; }
.nav-toggle { border-color: rgba(174, 188, 203, .4); background: #151D28; color: #fff; }
.nav-toggle > span:not(.screen-reader-text) { background: currentColor; }
.submenu-toggle { border-color: rgba(174, 188, 203, .3); background: #151D28; color: #fff; }

/* v0.3.5: text is baked into complete, responsive artwork. Keep the image uncropped and unobscured. */
.hero-carousel { background: #0B1018; }
.hero-slides { height: auto !important; min-height: 0 !important; aspect-ratio: 16 / 9; }
.hero-slide { overflow: hidden; }
.hero-picture { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.hero-picture > .hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; transform: none !important; transition: none !important; }
.hero-slide.is-active .hero-image { transform: none !important; }

.hero-bottom { position: relative; inset: auto; z-index: 4; padding: 10px 0; background: #0B1018; border-top: 1px solid rgba(174, 188, 203, .2); }
@media (max-width: 760px) {
  .hero-slides { aspect-ratio: 3 / 4; }
}

/* Ten-banner carousel styling. */
.hero-carousel { background: var(--ink); }
.hero-image { object-position: center 52%; }









.hero-bottom { background: #0B1018; border-top: 1px solid rgba(174, 188, 203, .2); }
.hero-control-label { color: #fff; }
.control-current { color: #7DB9FF; }
.control-rule { background: rgba(174, 188, 203, .52); }
.control-total, .control-caption { color: #B9C3CF; }
.hero-arrow, .hero-pause, .hero-dot { color: #fff; border-color: rgba(174, 188, 203, .36); background: rgba(255, 255, 255, .04); }
.hero-arrow:hover, .hero-pause:hover, .hero-dot:hover, .hero-dot.is-active { border-color: var(--blue); background: var(--blue); color: #fff; }
.hero-dot[aria-selected="true"] { border-color: var(--blue); background: var(--blue); }

/* Clear alternation between white work areas, silver panels and carbon sections. */
.proof-bar { background: #111923; border-bottom: 1px solid rgba(174, 188, 203, .18); }
.proof-items > div { border-color: rgba(174, 188, 203, .22); }
.proof-items strong { color: #fff; }
.proof-items span { color: #AEBCCB; }
.section { background: #fff; }
.section-soft, .product-section { background: #F1F3F6; }
.section-heading h2, .intro-copy h2, .resource-layout h2, .rfq-intro h2, .entry-content h2, .entry-content h3 { color: var(--ink); }
.section-heading p, .intro-copy p, .entry-content { color: #3D4958; }
.eyebrow { color: var(--blue); }
#industries { background: #111923; color: #fff; }
#industries .section-heading h2 { color: #fff; }
#industries .section-heading p { color: #BCC6D1; }
.industry-card { background: #151D28; border: 1px solid rgba(174, 188, 203, .2); }
.industry-card > img { filter: saturate(.8) contrast(1.06); }
.industry-overlay { background: linear-gradient(180deg, rgba(11, 16, 24, .03) 20%, rgba(11, 16, 24, .42) 55%, rgba(11, 16, 24, .95) 100%); }
.industry-no { color: #8EC2FF; }
.industry-text strong { color: #fff; }
.industry-text small { color: #CFD7E0; }
.industry-arrow { color: #fff; background: var(--blue); }
.industry-card:hover { border-color: #4E9CF0; box-shadow: 0 20px 42px rgba(0, 0, 0, .28); }
.solution-card { border-color: #D6DDE5; background: #fff; }
.solution-card:hover { border-color: #7AADE5; box-shadow: 0 18px 42px rgba(11, 16, 24, .1); }
.solution-feature { border-color: #126BCE; background: linear-gradient(135deg, #0B1018 0%, #152334 58%, #126BCE 160%); }
.solution-number, .workflow-grid article > span { color: var(--blue); }
.product-family-card, .listing-card { border-color: #D6DDE5; background: #fff; box-shadow: 0 8px 24px rgba(11, 16, 24, .045); }
.product-family-card:hover, .listing-card:hover { border-color: #72A9E8; box-shadow: 0 18px 40px rgba(11, 16, 24, .13); }
.product-card-body small, .listing-card small, .project-card small { color: var(--blue); }
.product-card-body strong, .listing-card h3, .project-card h3 { color: var(--ink); }
.product-card-body > span:last-child, .listing-card p, .project-card p { color: #697686; }
.product-image-mark { background: var(--blue); color: #fff; }
.button, .button-blue { border-color: var(--blue); background: var(--blue); color: #fff; }
.button:hover, .button-blue:hover { border-color: #2685E8; background: #2685E8; color: #fff; box-shadow: 0 10px 25px rgba(18, 107, 206, .24); }
.inline-link, .resource-cards > a > span, .resource-cards b { color: var(--blue); }

.feature-oil { background: #0B1018; color: #fff; }
.oil-visual { background: #111923; }
.oil-visual::after { background: linear-gradient(90deg, transparent 38%, #0B1018 100%), linear-gradient(0deg, rgba(11, 16, 24, .38), transparent 55%); }
.oil-label { border-left: 3px solid var(--blue); background: rgba(11, 16, 24, .88); color: #fff; }
.oil-copy h2 { color: #fff; }
.oil-copy p, .oil-copy li { color: #D2DAE4; }
.oil-copy li::before { background: var(--blue); }
.oil-copy .button-white { background: #fff; border-color: #fff; color: #0B1018; }
.oil-copy .button-white:hover { background: #E8ECF0; border-color: #E8ECF0; color: #0B1018; }
.workflow-grid article { border-top-color: var(--blue); background: #fff; box-shadow: 0 10px 26px rgba(11, 16, 24, .055); }
.workflow-grid h3 { color: var(--ink); }
.workflow-grid p { color: #697686; }
.project-card { border-color: #D6DDE5; background: #fff; box-shadow: 0 10px 24px rgba(11, 16, 24, .05); }
.partner-section { background: #EEF1F4; }
.partner-showcase-card { border-color: #D2DAE2; background: linear-gradient(145deg, #fff, #F2F4F6); box-shadow: 0 14px 32px rgba(11, 16, 24, .06); }
.partner-logo-mark { border-color: #AEBCCB; background: #0B1018; color: #fff; }
.partner-showcase-content > span { color: var(--blue); }
.partner-showcase-content h3 { color: var(--ink); }
.quality-band { background: #0B1018; border-block: 1px solid rgba(18, 107, 206, .42); }
.quality-intro h2, .quality-items h3 { color: #fff; }
.quality-intro p, .quality-items p { color: #BFC9D4; }
.quality-items span { color: #79B7FF; }
.resource-cards > a { border-color: #D6DDE5; background: #fff; }
.resource-cards > a:hover { border-color: #79AEE7; background: #F4F7FA; }
.resource-cards strong { color: var(--ink); }
.rfq-section { background: radial-gradient(ellipse at 82% 12%, rgba(18, 107, 206, .3), transparent 38%), linear-gradient(120deg, #0B1018, #111923 64%, #0C1C2E); }
.rfq-intro h2 { color: #fff; }
.rfq-intro > p, .rfq-note { color: #C4CED9; }
.rfq-note > span:first-child { color: #73B4FF; }
.rfq-form-card { border: 1px solid #D6DDE5; background: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, .28); }
.rfq-form input, .rfq-form select, .rfq-form textarea, .listing-tools input, .listing-tools select { border-color: #CBD3DC; background: #fff; color: #263242; }
.rfq-form input:focus, .rfq-form select:focus, .rfq-form textarea:focus, .listing-tools input:focus, .listing-tools select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(18, 107, 206, .12); }

.site-footer { background: #0B1018; border-top: 1px solid rgba(174, 188, 203, .18); color: #fff; }
.brand-footer { color: #fff; }
.brand-footer .brand-wordmark small { color: #AEBCCB; }
.footer-brand-block > p, .site-footer p { color: #BFC9D4; }
.site-footer h2 { color: #fff; }
.footer-menu a, .footer-link, .footer-bottom { color: #BFC9D4; }
.footer-menu a:hover, .footer-link:hover { color: #7DB9FF; }
.footer-bottom { border-top-color: rgba(174, 188, 203, .2); }

/* Interior pages and technical data remain readable on light surfaces. */
.page-hero { background: radial-gradient(ellipse at 82% 12%, rgba(18, 107, 206, .36), transparent 38%), linear-gradient(120deg, #0B1018, #111923 70%, #13263B); }
.page-hero::after { border-color: rgba(174, 188, 203, .26); box-shadow: 0 0 0 65px rgba(174, 188, 203, .055), 0 0 0 132px rgba(18, 107, 206, .09); }
.page-hero .eyebrow { color: #91C3FF; }
.page-hero h1 { color: #fff; }
.page-hero p { color: #C4CED9; }
.page-body { background: #fff; }
.entry-content { color: #344153; }
.entry-content h2, .entry-content h3 { color: #0B1018; }
.entry-content th, .spec-table th { color: #0B1018; background: #EEF1F4; }
.entry-content td, .entry-content th, .spec-table td, .spec-table th { border-color: #D6DDE5; }
.sidebar { border-color: #D6DDE5; background: #F4F6F8; }
.sidebar h3 { color: #0B1018; }
.sidebar a:hover { color: var(--blue); }
.detail-grid > div { border-color: #D6DDE5; background: #F4F6F8; }
.detail-grid strong { color: #697686; }
.detail-grid span { color: #0B1018; }
.listing-tools button { border-color: var(--blue); background: var(--blue); color: #fff; }
.listing-tools button:hover { background: #2685E8; }
.taxonomy-nav a, .pagination a, .pagination span { border-color: #D6DDE5; color: #263242; }
.taxonomy-nav a:hover, .pagination .current { border-color: var(--blue); background: var(--blue); color: #fff; }

@media (max-width: 1280px) and (min-width: 1061px) {
  .header-row { gap: 16px; }
  .brand { flex-basis: 155px; }
  .nav-menu { gap: 8px; }
  .nav-menu > li > a { font-size: 9px; letter-spacing: .055em; }
}
@media (max-width: 1180px) {
  .header-row { min-height: 78px; justify-content: space-between; gap: 12px; }
  .brand { flex: 0 0 auto; }
  .brand-wordmark strong { font-size: 15px; }
  .nav-toggle { order: 3; margin-left: auto; border-color: rgba(174, 188, 203, .42); background: #151D28; color: #fff; }
  .site-nav { background: #0F1721; border-top: 1px solid rgba(174, 188, 203, .2); box-shadow: 0 24px 45px rgba(0, 0, 0, .36); }
  .nav-menu > li { border-bottom-color: rgba(174, 188, 203, .18); }
  .nav-menu > li > a { min-height: 48px; color: #fff; }
  .nav-menu > li > a::before { display: none; }
  .nav-menu .sub-menu { background: transparent; }
  .nav-menu .sub-menu li a { background: #151D28; color: #D7DFE8; }
  .nav-menu .sub-menu li a:hover, .nav-menu .sub-menu li a:focus { background: #1D3045; color: #fff; }
}
@media (max-width: 760px) {
  
  
  
  
  .proof-items > div { border-color: rgba(174, 188, 203, .18); }
  #industries .section-heading h2 { color: #fff; }
  .partner-section { background: #EEF1F4; }
}
@media (max-width: 440px) {
  .brand-wordmark strong { font-size: 14px; }
  .brand-wordmark small { font-size: 9px; }
  
  
  
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* v0.3.3: compact horizontal desktop navigation and restrained horizontal footer. */
@media (min-width: 821px) {
  .site-header { overflow: visible; }
  .header-row { min-height: 72px; gap: 12px; }
  .brand { flex: 0 0 148px; gap: 8px; }
  .brand-symbol { width: 34px; height: 34px; }
  .brand-wordmark strong { font-size: 14px; }
  .brand-wordmark small { font-size: 9px; }
  .site-nav, .site-nav.is-open { display: flex !important; position: static; inset: auto; flex: 1 1 auto; min-width: 0; max-height: none; overflow: visible; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
  .nav-menu { display: flex !important; width: 100%; flex-wrap: nowrap; justify-content: space-between; gap: clamp(1px, .3vw, 6px); margin: 0; padding: 0; }
  .nav-menu > li { position: relative !important; display: block !important; flex: 0 0 auto; border: 0; }
  .nav-menu > li > a { min-height: 72px; padding: 0 4px; gap: 4px; font-size: clamp(8.5px, .66vw, 10px); letter-spacing: .025em; }
  .nav-menu > li > a::before { bottom: 17px; }
  .nav-menu > li > .sub-menu { position: absolute; top: calc(100% - 1px); right: auto; left: 0; display: block; width: 258px; min-width: 230px; max-width: min(280px, calc(100vw - 20px)); max-height: min(66vh, 520px); overflow: auto; padding: 7px; margin: 0; border: 1px solid rgba(174, 188, 203, .22); border-top: 2px solid #126BCE; border-radius: 0 0 3px 3px; background: #111923; box-shadow: 0 18px 42px rgba(0, 0, 0, .36); transform: translateY(5px); }
  .nav-menu > li:hover > .sub-menu, .nav-menu > li:focus-within > .sub-menu, .nav-menu > li.submenu-open > .sub-menu { transform: translateY(0); }
  .nav-menu > li.dropdown-align-end > .sub-menu { right: 0; left: auto; }
  .nav-menu .sub-menu li { position: relative; display: block; border: 0; }
  .nav-menu .sub-menu li a { display: flex; min-height: 38px; align-items: center; justify-content: space-between; padding: 9px 11px; border-radius: 2px; color: #e8edf3; font-size: 11px; line-height: 1.35; white-space: normal; }
  .nav-menu .sub-menu .menu-item-has-children > a::after { content: ""; width: 6px; height: 6px; flex: 0 0 6px; margin-left: 10px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
  .nav-menu .sub-menu .sub-menu { position: absolute; top: -7px; right: auto; left: 100%; display: block; width: 232px; min-width: 210px; max-width: min(250px, calc(100vw - 20px)); max-height: min(66vh, 520px); overflow: auto; padding: 7px; border: 1px solid rgba(174, 188, 203, .22); border-top: 2px solid #126BCE; background: #111923; box-shadow: 0 18px 42px rgba(0, 0, 0, .36); opacity: 0; visibility: hidden; transform: translateX(5px); }
  .nav-menu .sub-menu .menu-item-has-children:hover > .sub-menu, .nav-menu .sub-menu .menu-item-has-children:focus-within > .sub-menu, .nav-menu .sub-menu .menu-item-has-children.submenu-open > .sub-menu { opacity: 1; visibility: visible; transform: translateX(0); }
  .nav-menu .sub-menu .submenu-open-left > .sub-menu { right: 100%; left: auto; transform: translateX(-5px); }
  .nav-menu .sub-menu .submenu-open-left:hover > .sub-menu, .nav-menu .sub-menu .submenu-open-left:focus-within > .sub-menu { transform: translateX(0); }
  .nav-toggle, .submenu-toggle { display: none !important; }
}

.site-footer { padding: 36px 0 0; background: #0B1018; color: #fff; border-top: 1px solid rgba(174, 188, 203, .2); }
.footer-main { display: grid; grid-template-columns: minmax(170px, 1.15fr) repeat(4, minmax(0, 1fr)); align-items: start; gap: clamp(16px, 1.8vw, 26px); }
.footer-brand-block { padding-right: 18px; }
.footer-brand-block > p { max-width: 240px; margin: 13px 0 0; color: #AEBCCB; font-size: 11px; line-height: 1.55; }
.footer-column { min-width: 0; padding-left: clamp(12px, 1.3vw, 20px); border-left: 1px solid rgba(174, 188, 203, .17); }
.footer-column h2 { margin: 2px 0 13px; color: #fff; font-size: 10px; line-height: 1.35; letter-spacing: .1em; text-transform: uppercase; }
.footer-menu { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.footer-menu a { color: #AEBCCB; font-size: 11px; line-height: 1.4; transition: color .18s; }
.footer-menu a:hover, .footer-menu a:focus-visible { color: #75B4FF; padding-left: 0; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 27px; padding: 13px 0; border-top: 1px solid rgba(174, 188, 203, .2); color: #AEBCCB; font-size: 9px; }
.footer-legal { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.footer-legal a, .back-to-top { color: #AEBCCB !important; }
.footer-legal a:hover, .back-to-top:hover { color: #75B4FF !important; }
@media (max-width: 1180px) { .footer-main { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 12px; } .footer-brand-block { grid-column: 1 / -1; padding: 0 0 10px; } }
@media (max-width: 820px) {
  .header-row { min-height: 72px; justify-content: space-between; gap: 10px; }
  .brand { flex: 0 0 auto; }
  .nav-toggle { display: flex !important; order: 3; width: 40px; height: 40px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid rgba(174, 188, 203, .4); border-radius: 3px; background: #151D28; color: #fff; cursor: pointer; }
  .nav-toggle > span:not(.screen-reader-text) { display: block; width: 19px; height: 2px; background: currentColor; }
  .site-nav, .site-nav.is-open { display: none !important; position: absolute; top: 100%; left: 0; right: 0; z-index: 45; max-height: calc(100vh - 72px); overflow: auto; padding: 10px 18px 20px; border-top: 1px solid rgba(174, 188, 203, .2); background: #0B1018; box-shadow: 0 20px 35px rgba(0, 0, 0, .38); }
  .site-nav.is-open { display: block !important; }
  .nav-menu { display: block !important; width: auto; }
  .nav-menu > li { display: flex !important; flex-wrap: wrap; border-bottom: 1px solid rgba(174, 188, 203, .14); }
  .nav-menu > li > a { flex: 1; min-height: 45px; padding: 0 4px; font-size: 11px; }
  .nav-menu > li > a::before { display: none; }
  .nav-menu > .menu-item-has-children > a::after { display: none; }
  .submenu-toggle { display: grid !important; width: 38px; height: 38px; place-items: center; align-self: center; border: 1px solid rgba(174, 188, 203, .22); border-radius: 2px; background: #151D28; color: #fff; font-size: 17px; cursor: pointer; }
  .nav-menu > li > .sub-menu, .nav-menu .sub-menu .sub-menu { position: static; display: none; width: 100%; min-width: 0; max-width: none; max-height: none; grid-template-columns: 1fr; overflow: visible; padding: 0 0 8px 10px; border: 0; border-left: 1px solid rgba(174, 188, 203, .2); border-radius: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .nav-menu > li.submenu-open > .sub-menu, .nav-menu .sub-menu .submenu-open > .sub-menu { display: grid; }
  .nav-menu .sub-menu li { display: flex; flex-wrap: wrap; }
  .nav-menu .sub-menu li a { flex: 1; min-height: 38px; padding: 8px 10px; color: #AEBCCB; font-size: 10px; }
  .nav-menu .sub-menu .menu-item-has-children > a::after { display: none; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .footer-column { padding-left: 12px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
}
@media (max-width: 520px) { .footer-main { grid-template-columns: 1fr; gap: 18px; } .footer-brand-block { grid-column: auto; } .footer-column { padding-left: 12px; } }


/* v0.3.2 layout refinements retained for the v0.3.3 compact overrides below. */
.site-header { position: relative; z-index: 40; overflow: visible; }
.header-row { gap: clamp(16px, 2vw, 30px); }
.site-nav { flex: 1 1 auto; min-width: 0; margin-left: auto; }
.nav-menu { width: 100%; justify-content: space-between; gap: clamp(5px, .7vw, 13px); }
.nav-menu > li { position: relative; }
.nav-menu > li > a { font-size: clamp(9px, .68vw, 11px); letter-spacing: .045em; }
.nav-menu > li > .sub-menu { position: absolute; z-index: 50; left: 0; right: auto; top: 100%; display: block; width: 258px; min-width: 230px; max-width: min(280px, calc(100vw - 20px)); max-height: min(66vh, 520px); overflow: auto; padding: 7px; transform: translateY(5px); }
.nav-menu > li:hover > .sub-menu, .nav-menu > li:focus-within > .sub-menu, .nav-menu > li.submenu-open > .sub-menu { transform: translateY(0); }

.site-footer { padding: 62px 0 0; }
.footer-main { grid-template-columns: minmax(220px, 1.45fr) repeat(4, minmax(0, 1fr)); gap: clamp(22px, 2.2vw, 36px); align-items: start; }
.footer-brand-block > p { max-width: 280px; margin: 16px 0 0; font-size: 12px; line-height: 1.7; }
.footer-brand-block .footer-company-name { margin-top: 22px; color: #fff; font-size: 11px; font-weight: 750; line-height: 1.5; letter-spacing: .035em; }
.footer-column h2 { margin: 0 0 19px; color: #fff; font-size: 11px; line-height: 1.3; letter-spacing: .13em; text-transform: uppercase; }
.footer-menu { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.footer-menu a { color: #aebccb; font-size: 12px; line-height: 1.45; transition: color .18s, padding .18s; }
.footer-menu a:hover, .footer-menu a:focus-visible { color: #fff; padding-left: 4px; }
.footer-contact address { margin-top: 20px; font-style: normal; }
.footer-contact address a { color: #fff; font-size: 12px; }
.footer-contact address a:hover { color: #7db9ff; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 48px; padding: 20px 0; border-top: 1px solid rgba(174, 188, 203, .2); color: #aebccb; font-size: 10px; }
.footer-legal { display: flex; align-items: center; flex-wrap: wrap; gap: 19px; }
.footer-legal a { color: #aebccb; }
.footer-legal a:hover { color: #fff; }
.back-to-top { color: #7db9ff !important; }
.contact-business-details { display: grid; gap: 7px; margin-top: 25px; color: #fff; font-size: 12px; }
.contact-business-details strong { color: #aebccb; font-size: 10px; letter-spacing: .08em; }
.contact-business-details a { color: #fff; }
.contact-business-details a:hover { color: #7db9ff; }

.marine-page-hero { background-image: linear-gradient(90deg, rgba(7, 11, 17, .95), rgba(7, 11, 17, .7)), url("banners/v031/01-global-industry-harbor.jpg"); background-position: center; background-size: cover; }
.marine-page-body { padding: 64px 0 90px; }
.marine-intro-copy { max-width: 900px; margin: 0 0 55px; }
.marine-scope { padding: 30px 0 72px; }
.marine-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.marine-category-grid article { min-height: 168px; padding: 22px; border: 1px solid #d6dde5; border-top: 2px solid #126bce; background: #f5f7f9; }
.marine-category-grid article > span { color: #126bce; font-size: 10px; font-weight: 850; letter-spacing: .14em; }
.marine-category-grid h3 { margin: 17px 0 8px; color: #0b1018; font-size: 17px; line-height: 1.3; }
.marine-category-grid p { margin: 0; color: #697686; font-size: 12px; line-height: 1.55; }
.marine-dredging-feature { display: grid; grid-template-columns: 1fr 1fr; margin: 20px 0 55px; background: #0b1018; color: #fff; }
.marine-dredging-image { min-height: 470px; }
.marine-dredging-image img { width: 100%; height: 100%; min-height: 470px; object-fit: cover; }
.marine-dredging-copy { padding: clamp(28px, 4vw, 60px); align-self: center; }
.marine-dredging-copy h2 { margin: 14px 0 16px; color: #fff; font-size: clamp(28px, 3vw, 42px); line-height: 1.12; }
.marine-dredging-copy p, .marine-dredging-copy li { color: #c4ced9; font-size: 13px; }
.marine-dredging-copy ul { display: grid; gap: 8px; margin: 20px 0 25px; padding-left: 20px; }

@media (max-width: 1180px) {
  .header-row { min-height: 78px; justify-content: space-between; gap: 12px; }
  .brand { flex: 0 0 auto; }
  .site-nav { position: absolute; top: 100%; left: 0; right: 0; z-index: 45; flex: none; margin: 0; }
  .nav-menu { width: auto; }
  .nav-menu > li { position: relative; }
  .nav-menu > li > .sub-menu { position: static; display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; min-width: 0; max-width: none; padding: 0 0 12px; transform: none; }
  .nav-menu > li.submenu-open > .sub-menu { display: grid; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-brand-block { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 27px 20px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 12px; }
  .marine-page-body { padding: 44px 0 62px; }
  .marine-scope { padding: 15px 0 46px; }
  .marine-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .marine-category-grid article { min-height: 156px; padding: 16px; }
  .marine-category-grid h3 { font-size: 14px; }
  .marine-category-grid p { font-size: 11px; }
  .marine-dredging-feature { grid-template-columns: 1fr; margin: 8px 0 35px; }
  .marine-dredging-image, .marine-dredging-image img { min-height: 270px; max-height: 340px; }
  .marine-dredging-copy { padding: 27px 23px; }
}
@media (max-width: 520px) {
  .footer-main { grid-template-columns: 1fr; }
  .footer-brand-block { grid-column: auto; }
  .marine-category-grid { grid-template-columns: 1fr; }
  .marine-category-grid article { min-height: auto; }
}

/* v0.3.4 banner photography and mobile crops */
.hero-picture { position: absolute; inset: 0; display: block; overflow: hidden; }
.hero-picture > .hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
@media (max-width: 760px) {
  .hero-picture > .hero-image { object-position: center; }
  
}

/* v0.3.5: complete banner text and graphics are embedded in uncropped image files. */
.hero-carousel { background: #0B1018; }
.hero-slides { height: auto !important; min-height: 0 !important; aspect-ratio: 16 / 9; }
.hero-slide { overflow: hidden; }
.hero-picture { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.hero-picture > .hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; transform: none !important; transition: none !important; }
.hero-slide.is-active .hero-image { transform: none !important; }
.hero-bottom { position: relative; inset: auto; z-index: 4; padding: 10px 0; background: #0B1018; border-top: 1px solid rgba(174, 188, 203, .2); }
@media (max-width: 760px) { .hero-slides { aspect-ratio: 3 / 4; } }
