2026-08-27 11:54:26 +08:00
|
|
|
|
/* ============================================================
|
|
|
|
|
|
HESU — Homepage styles (hand-written CSS)
|
|
|
|
|
|
Sections: tokens · base · layout · header/nav · hero ·
|
|
|
|
|
|
business · presence · partner · news · footer ·
|
|
|
|
|
|
placeholders · animations · responsive
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------- Design tokens ---------- */
|
|
|
|
|
|
:root {
|
|
|
|
|
|
/* Ink / dark surfaces */
|
|
|
|
|
|
--ink-950: #060d1a;
|
|
|
|
|
|
--ink-900: #0a1424;
|
|
|
|
|
|
--ink-800: #0e1c30;
|
|
|
|
|
|
--ink-700: #13233c;
|
|
|
|
|
|
--ink-600: #1b2f4d;
|
|
|
|
|
|
--ink-500: #274063;
|
|
|
|
|
|
--bg-solid: #010F1E; /* header + footer */
|
|
|
|
|
|
|
|
|
|
|
|
/* Orange (deep → light) */
|
|
|
|
|
|
--orange-900: #c44400;
|
|
|
|
|
|
--orange-700: #ff6a00;
|
|
|
|
|
|
--orange-500: #ff8a1e;
|
|
|
|
|
|
--orange-300: #ffb15c;
|
|
|
|
|
|
--orange-100: #ffd9b0;
|
|
|
|
|
|
--grad-orange: linear-gradient(135deg, var(--orange-700), var(--orange-300));
|
|
|
|
|
|
--grad-orange-soft: linear-gradient(135deg, rgba(255,106,0,0.95), rgba(255,177,92,0.95));
|
|
|
|
|
|
|
|
|
|
|
|
/* Light surfaces */
|
|
|
|
|
|
--surface-light: #f4f6f9;
|
|
|
|
|
|
--surface-light-2: #ffffff;
|
|
|
|
|
|
--line: #e3e7ee;
|
|
|
|
|
|
|
|
|
|
|
|
/* Text */
|
|
|
|
|
|
--text-dark: #18222f;
|
|
|
|
|
|
--text-mid: #404040;
|
|
|
|
|
|
--text-light: #ffffff;
|
|
|
|
|
|
--text-light-80: rgba(255, 255, 255, 0.8);
|
|
|
|
|
|
--text-light-60: rgba(255, 255, 255, 0.6);
|
|
|
|
|
|
--text-light-40: rgba(255, 255, 255, 0.4);
|
|
|
|
|
|
|
|
|
|
|
|
/* Type */
|
|
|
|
|
|
/* --font-display: 'Archivo', 'Segoe UI', system-ui, sans-serif; */
|
|
|
|
|
|
--font-display: 'Inter', 'Segoe UI', system-ui, sans-serif;
|
|
|
|
|
|
--font-body: 'Inter', 'Segoe UI', system-ui, sans-serif;
|
|
|
|
|
|
|
|
|
|
|
|
/* Layout */
|
|
|
|
|
|
--container: min(92vw, 1440px);
|
|
|
|
|
|
--radius: 10px;
|
|
|
|
|
|
--radius-lg: 16px;
|
|
|
|
|
|
--header-h: 80px;
|
|
|
|
|
|
--ease: cubic-bezier(.2, .7, .2, 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------- Reset / base ---------- */
|
|
|
|
|
|
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
|
|
|
|
|
|
|
|
|
|
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
|
|
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
|
font-family: var(--font-body);
|
|
|
|
|
|
color: var(--text-light);
|
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
|
-webkit-font-smoothing: antialiased;
|
|
|
|
|
|
text-rendering: optimizeLegibility;
|
|
|
|
|
|
overflow-x: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
a { color: inherit; text-decoration: none; }
|
|
|
|
|
|
ul { list-style: none; }
|
|
|
|
|
|
img { max-width: 100%; display: block; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------- Layout helpers ---------- */
|
|
|
|
|
|
.container {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
max-width: var(--container);
|
|
|
|
|
|
margin-inline: auto;
|
|
|
|
|
|
padding-inline: 32px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.page-content {
|
|
|
|
|
|
background: url(../image/home-bgs.png) no-repeat;
|
|
|
|
|
|
color: var(--text-light);
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.page-content > section { background: transparent; }
|
|
|
|
|
|
|
|
|
|
|
|
.section-head { margin-bottom: 48px; }
|
|
|
|
|
|
.section-head.center { text-align: center; }
|
|
|
|
|
|
.section-head.center .section-lead { max-width: 850px; margin: 18px auto 28px; }
|
|
|
|
|
|
|
|
|
|
|
|
.section-title {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
/* font-weight: 800; */
|
|
|
|
|
|
font-size: clamp(1.8rem, 3vw, 2.6rem);
|
|
|
|
|
|
letter-spacing: 0.01em;
|
|
|
|
|
|
line-height: 1.15;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
.section-title-d{
|
|
|
|
|
|
color: #202020;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.section-lead { color: var(--text-light-60); font-size: 1.02rem; }
|
|
|
|
|
|
.section-lead strong { color: var(--orange-500); }
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------- Buttons ---------- */
|
|
|
|
|
|
.btn {
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
gap: 8px;
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: 0.12em;
|
|
|
|
|
|
font-size: 0.78rem;
|
|
|
|
|
|
border-radius: var(--radius);
|
|
|
|
|
|
cursor: pointer;
|
2026-09-02 14:24:54 +08:00
|
|
|
|
/* border: 1px solid transparent;*/
|
2026-08-27 11:54:26 +08:00
|
|
|
|
transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-contact {
|
|
|
|
|
|
background: linear-gradient(88.61deg, #FF6000 7.43%, #FFA557 98.82%);
|
|
|
|
|
|
padding: 8px 22px;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-contact:hover { transform: translateY(-2px);background: linear-gradient(88.61deg, rgba(255, 132, 17, 0.8) 7.43%, rgba(255, 207, 87, 0.8) 98.82%);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.btn-explore {
|
|
|
|
|
|
background: #000;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
padding: 13px 30px;
|
|
|
|
|
|
backdrop-filter: blur(6px);
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-explore:hover { background: rgba(8, 16, 30, 0.8); border-color: #fff; transform: translateY(-2px); }
|
|
|
|
|
|
|
|
|
|
|
|
.btn-outline {
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
border: 1px solid var(--orange-500);
|
|
|
|
|
|
padding: 12px 28px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-outline:hover { background: var(--orange-500); color: #1a0f00; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
HEADER
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.site-header {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
inset: 0 0 auto 0;
|
|
|
|
|
|
z-index: 50;
|
|
|
|
|
|
height: var(--header-h);
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
background: var(--bg-solid);
|
|
|
|
|
|
transition: box-shadow .35s var(--ease), height .35s var(--ease);
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-header.scrolled {
|
|
|
|
|
|
box-shadow: 0 6px 24px rgba(0,0,0,0.45);
|
|
|
|
|
|
}
|
|
|
|
|
|
.header-inner {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
gap: 24px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Logo (image/logo.png — light artwork, for the dark header/footer bars) */
|
|
|
|
|
|
.logo { display: inline-flex; align-items: center; }
|
|
|
|
|
|
.logo-img { display: block; height: 32px; width: auto; }
|
|
|
|
|
|
|
|
|
|
|
|
/* Nav */
|
|
|
|
|
|
.main-nav { display: flex; }
|
|
|
|
|
|
.nav-list { display: flex; align-items: center; gap: 36px; }
|
|
|
|
|
|
.nav-item { position: relative; }
|
|
|
|
|
|
.nav-item > a {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
font-size: 0.92rem;
|
|
|
|
|
|
letter-spacing: 0.04em;
|
|
|
|
|
|
color: var(--text-light-80);
|
|
|
|
|
|
padding: 8px 0;
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 6px;
|
|
|
|
|
|
transition: color .2s var(--ease);
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-item > a:hover { color: var(--orange-500); }
|
|
|
|
|
|
/* active page marker (orange underline) */
|
|
|
|
|
|
.nav-item > a.active { color: var(--orange-500); position: relative; }
|
|
|
|
|
|
.nav-item > a.active::after {
|
|
|
|
|
|
content: "";
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0; right: 0; bottom: 0;
|
|
|
|
|
|
height: 2px;
|
|
|
|
|
|
background: var(--orange-700);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.caret {
|
|
|
|
|
|
width: 6px; height: 6px;
|
|
|
|
|
|
border-right: 2px solid currentColor;
|
|
|
|
|
|
border-bottom: 2px solid currentColor;
|
|
|
|
|
|
transform: rotate(45deg) translateY(-2px);
|
|
|
|
|
|
opacity: .7;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
FULL-SCREEN MEGA MENU (desktop hover)
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.nav-item.mega-on > a { color: var(--orange-500); }
|
|
|
|
|
|
/* Contact Us lives in the header button on desktop; inside the drawer on mobile */
|
|
|
|
|
|
.nav-item.nav-contact { display: none; }
|
|
|
|
|
|
/* drawer logo is mobile-only (desktop keeps the header logo) */
|
|
|
|
|
|
.drawer-logo { display: none; }
|
|
|
|
|
|
|
|
|
|
|
|
.mega {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
top: var(--header-h);
|
|
|
|
|
|
left: 0; right: 0; bottom: 0;
|
|
|
|
|
|
background: linear-gradient(180deg, rgb(123 123 123 / 80%) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.01) 115.88%);
|
|
|
|
|
|
/* background: linear-gradient(180deg, rgb(255 255 255 / 80%) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.01) 115.88%); */
|
|
|
|
|
|
-webkit-backdrop-filter: blur(14px) saturate(120%);
|
|
|
|
|
|
backdrop-filter: blur(14px) saturate(120%);
|
|
|
|
|
|
z-index: 45;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
visibility: hidden;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
transition: opacity .3s var(--ease), visibility .3s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega.open { opacity: 1; visibility: visible; pointer-events: auto; }
|
|
|
|
|
|
|
|
|
|
|
|
.mega-inner {
|
|
|
|
|
|
max-width: var(--container);
|
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 48px;
|
|
|
|
|
|
padding: 44px 32px 36px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega-left { flex: 0 0 280px; padding-top: 4px; }
|
|
|
|
|
|
.mega-title {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
|
font-size: clamp(1.3rem, 2vw, 1.85rem);
|
|
|
|
|
|
line-height: 1.15;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
margin-bottom: 14px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* right cards grid — 4 per row, multiple rows, scrolls on overflow */
|
|
|
|
|
|
.mega-right {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
min-width: 0;
|
|
|
|
|
|
min-height: 0;
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: repeat(4, 1fr);
|
|
|
|
|
|
gap: 18px;
|
|
|
|
|
|
align-content: start;
|
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
|
padding-right: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 1180px) {
|
|
|
|
|
|
.mega-left { flex-basis: 230px; }
|
|
|
|
|
|
.mega-right { grid-template-columns: repeat(3, 1fr); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 980px) {
|
|
|
|
|
|
.mega-right { grid-template-columns: repeat(2, 1fr); }
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega-card {
|
|
|
|
|
|
display: flex; flex-direction: column;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translateY(16px);
|
|
|
|
|
|
transition: transform .3s var(--ease), border-color .3s, background .3s, opacity .3s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega.open .mega-card { opacity: 1; transform: none; }
|
|
|
|
|
|
.mega.open .mega-card:nth-child(1) { transition-delay: .05s; }
|
|
|
|
|
|
.mega.open .mega-card:nth-child(2) { transition-delay: .10s; }
|
|
|
|
|
|
.mega.open .mega-card:nth-child(3) { transition-delay: .15s; }
|
|
|
|
|
|
.mega.open .mega-card:nth-child(4) { transition-delay: .20s; }
|
|
|
|
|
|
.mega-card:hover {
|
|
|
|
|
|
transform: translateY(-6px);
|
|
|
|
|
|
border-color: rgba(255,138,30,0.6);
|
|
|
|
|
|
background: rgba(255,138,30,0.06);
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega-card-img { width: 100%; aspect-ratio: 4 / 3; position: relative; }
|
|
|
|
|
|
.mega-card-text { padding: 14px 12px 16px; text-align: center; }
|
|
|
|
|
|
.mega-card-text h4 {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
font-size: 0.92rem;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
line-height: 1.3;
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega-card-text p { display: none; }
|
|
|
|
|
|
|
|
|
|
|
|
.header-right { display: flex; align-items: center; gap: 16px; }
|
|
|
|
|
|
|
|
|
|
|
|
/* Mobile toggle */
|
|
|
|
|
|
.menu-toggle {
|
|
|
|
|
|
display: none;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
gap: 5px;
|
|
|
|
|
|
width: 40px; height: 40px;
|
|
|
|
|
|
background: transparent; border: 0; cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
.menu-toggle span {
|
|
|
|
|
|
display: block; width: 24px; height: 2px; background: #fff;
|
|
|
|
|
|
transition: transform .3s var(--ease), opacity .3s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.menu-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
|
|
|
|
|
|
.menu-toggle.open span:nth-child(2) { opacity: 0; }
|
|
|
|
|
|
.menu-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
HERO
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.hero {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
min-height: 88vh;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
margin-top: var(--header-h); /* banner starts BELOW the fixed nav */
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-bg {
|
|
|
|
|
|
position: absolute; inset: 0;
|
|
|
|
|
|
z-index: 0;
|
|
|
|
|
|
background-image: url(../image/home/banner.jpg);
|
|
|
|
|
|
background-size: cover;
|
|
|
|
|
|
background-position: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-bg::before { display: none; } /* star field placeholder removed */
|
|
|
|
|
|
|
|
|
|
|
|
.hero-content {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-title {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
|
font-size: clamp(3.5rem, 10vw, 7rem);
|
|
|
|
|
|
letter-spacing: 0.3em;
|
|
|
|
|
|
line-height: 1;
|
|
|
|
|
|
margin-right: -0.3em; /* compensate trailing letterspacing for centering */
|
|
|
|
|
|
background: linear-gradient(180deg, #fff, #fff);
|
|
|
|
|
|
-webkit-background-clip: text; background-clip: text;
|
|
|
|
|
|
-webkit-text-fill-color: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-sub {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: 0.14em;
|
|
|
|
|
|
font-size: clamp(0.95rem, 2vw, 2.35rem);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
margin-top: 18px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-tag {
|
|
|
|
|
|
color: var(--text-light-80);
|
|
|
|
|
|
font-size: 0.95rem;
|
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-explore { margin-top: 34px; }
|
|
|
|
|
|
|
|
|
|
|
|
/* Stats bar */
|
|
|
|
|
|
.hero-stats {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
padding: 30px 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stats-grid {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: repeat(4, 1fr);
|
|
|
|
|
|
gap: 24px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat { display: flex; flex-direction: column; gap: 6px; }
|
|
|
|
|
|
.stat-num {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
|
font-size: clamp(1.8rem, 4vw, 2.8rem);
|
|
|
|
|
|
line-height: 1;
|
|
|
|
|
|
background: linear-gradient(88.61deg, #E68735 7.43%, rgba(255, 96, 0, 0.98) 98.82%);
|
|
|
|
|
|
-webkit-background-clip: text; background-clip: text;
|
|
|
|
|
|
-webkit-text-fill-color: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-label {
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: 0.14em;
|
|
|
|
|
|
font-size: 0.72rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
BUSINESS (bento grid)
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.business { padding: 96px 0; }
|
|
|
|
|
|
.bento-grid {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
|
|
|
|
/* row 1 = orange banner (short) · row 2 = Auto Export (tall) · row 3 = aftermarket/logistics */
|
|
|
|
|
|
grid-template-rows: 170px 340px 320px;
|
|
|
|
|
|
grid-auto-rows: 270px;
|
|
|
|
|
|
gap: 18px;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
}
|
|
|
|
|
|
.cell { position: relative; overflow: hidden; }
|
|
|
|
|
|
|
|
|
|
|
|
/* orange banner */
|
|
|
|
|
|
.cell-banner {
|
|
|
|
|
|
grid-column: 1 / 3;
|
|
|
|
|
|
grid-row: 1;
|
|
|
|
|
|
background: url(../image/home/Mask1.jpg) center/cover no-repeat;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
padding: 0 36px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.banner-title {
|
|
|
|
|
|
font-family: var(--font-display); font-weight: 900;
|
|
|
|
|
|
font-size: clamp(2rem, 4vw, 3rem); letter-spacing: 0.04em; line-height: 1;
|
|
|
|
|
|
margin-top: 6px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* media cells */
|
|
|
|
|
|
.cell-media { box-shadow: 0 10px 30px rgba(16,24,40,0.08); }
|
|
|
|
|
|
.cell-media .cell-ph { position: absolute; inset: 0; }
|
|
|
|
|
|
.cell-media::after { /* dark veil for title legibility */
|
|
|
|
|
|
content: ""; position: absolute; inset: 0; z-index: 1;
|
|
|
|
|
|
transition: background .35s var(--ease);
|
|
|
|
|
|
}
|
|
|
|
|
|
.cell-media:hover::after { background: rgba(6,13,28,0.55); }
|
|
|
|
|
|
.cell-title {
|
|
|
|
|
|
position: absolute; left: 22px; bottom: 18px; z-index: 2;
|
|
|
|
|
|
font-family: var(--font-display); font-weight: 700;
|
|
|
|
|
|
font-size: 1.15rem; color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.cell-materials { grid-column: 3; grid-row: 1 / 3; }
|
|
|
|
|
|
.cell-auto { grid-column: 1 / 3; grid-row: 2; }
|
|
|
|
|
|
.cell-aftermarket{ grid-column: 1; grid-row: 3; }
|
|
|
|
|
|
.cell-logistics { grid-column: 2 / 4; grid-row: 3; }
|
|
|
|
|
|
|
|
|
|
|
|
/* staggered scroll-in for bento cells */
|
|
|
|
|
|
.bento-grid .cell.reveal:nth-child(1) { transition-delay: 0s; }
|
|
|
|
|
|
.bento-grid .cell.reveal:nth-child(2) { transition-delay: .24s; }
|
|
|
|
|
|
.bento-grid .cell.reveal:nth-child(3) { transition-delay: .48s; }
|
|
|
|
|
|
.bento-grid .cell.reveal:nth-child(4) { transition-delay: .72s; }
|
|
|
|
|
|
.bento-grid .cell.reveal:nth-child(5) { transition-delay: .96s; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
GLOBAL PRESENCE
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.presence { padding: 96px 0; }
|
|
|
|
|
|
|
|
|
|
|
|
/* bg image + SVG overlay share one box and the 1219 × 661 map coordinate space */
|
|
|
|
|
|
.map-wrap {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
aspect-ratio: 1219 / 661;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
margin: 8px auto 24px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.map-bg {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
|
}
|
|
|
|
|
|
.map-overlay {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* location highlights — accumulating window cycled by main.js.
|
|
|
|
|
|
Entrance: overlapping sequence (label → curve draw → dot pop → double ripple).
|
|
|
|
|
|
Exit: elements reverse into their base states (line un-draws, dot shrinks,
|
|
|
|
|
|
label slides away) so leaving mirrors entering. Children own their hidden
|
|
|
|
|
|
base states; the group itself never toggles opacity. */
|
|
|
|
|
|
.map-wrap .location .label {
|
|
|
|
|
|
fill: #fff;
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
letter-spacing: .7px;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translateY(5px);
|
|
|
|
|
|
transition: opacity .3s ease, transform .3s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.map-wrap .location .line {
|
|
|
|
|
|
fill: none;
|
|
|
|
|
|
stroke: var(--orange-700);
|
|
|
|
|
|
stroke-width: 1.4;
|
|
|
|
|
|
stroke-linecap: round;
|
|
|
|
|
|
stroke-linejoin: round;
|
|
|
|
|
|
vector-effect: non-scaling-stroke;
|
|
|
|
|
|
/* non-active lines stay fully undrawn from frame one (no first-flash on large screens) */
|
|
|
|
|
|
stroke-dasharray: 1;
|
|
|
|
|
|
stroke-dashoffset: 1;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transition: stroke-dashoffset .55s ease-in .05s, opacity .25s ease .25s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.map-wrap .location .dot {
|
|
|
|
|
|
fill: var(--orange-700);
|
|
|
|
|
|
transform-box: fill-box;
|
|
|
|
|
|
transform-origin: center;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: scale(.55);
|
|
|
|
|
|
transition: opacity .28s ease, transform .28s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.map-wrap .location .halo {
|
|
|
|
|
|
fill: none;
|
|
|
|
|
|
stroke: var(--orange-700);
|
|
|
|
|
|
stroke-width: 1.2;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform-box: fill-box;
|
|
|
|
|
|
transform-origin: center;
|
|
|
|
|
|
vector-effect: non-scaling-stroke;
|
|
|
|
|
|
transition: opacity .4s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* exit choreography — .out is added by main.js on deactivate; animations reverse
|
|
|
|
|
|
into the hidden base (transitions can't fire off animation removal) */
|
|
|
|
|
|
.map-wrap .location.out .label { animation: labelOut .3s ease both; }
|
|
|
|
|
|
.map-wrap .location.out .line { animation: lineOut .5s ease-in both; }
|
|
|
|
|
|
.map-wrap .location.out .dot { animation: dotOut .28s ease both; }
|
|
|
|
|
|
.map-wrap .location.out .halo { animation: haloOut .45s ease-out both; }
|
|
|
|
|
|
|
|
|
|
|
|
.map-wrap .location.active .label { animation: labelIn .28s .02s ease-out both; }
|
|
|
|
|
|
.map-wrap .location.active .line { animation: drawLine .55s .12s cubic-bezier(.3,.7,.2,1) both; }
|
|
|
|
|
|
.map-wrap .location.active .dot {
|
|
|
|
|
|
animation: dotIn .32s .5s cubic-bezier(.2,1.5,.35,1) both,
|
|
|
|
|
|
breatheR 3.4s 1s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
.map-wrap .location.active .halo { animation: pulse .9s .62s ease-out infinite; }
|
|
|
|
|
|
.map-wrap .location.active .halo2 { animation-delay: 1.07s; }
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes labelIn {
|
|
|
|
|
|
from { opacity: 0; transform: translateY(5px); }
|
|
|
|
|
|
to { opacity: 1; transform: translateY(0); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes drawLine {
|
|
|
|
|
|
from { stroke-dashoffset: 1; opacity: 0; }
|
|
|
|
|
|
1% { opacity: 1; }
|
|
|
|
|
|
to { stroke-dashoffset: 0; opacity: 1; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes dotIn {
|
|
|
|
|
|
from { opacity: 0; transform: scale(.25); }
|
|
|
|
|
|
to { opacity: 1; transform: scale(1); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes pulse {
|
|
|
|
|
|
0% { opacity: .7; transform: scale(.5); }
|
|
|
|
|
|
70% { opacity: 0; transform: scale(2.2); }
|
|
|
|
|
|
100% { opacity: 0; transform: scale(2.2); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes breatheR {
|
|
|
|
|
|
0%, 100% { r: 7.5px; }
|
|
|
|
|
|
50% { r: 8.3px; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes labelOut {
|
|
|
|
|
|
from { opacity: 1; transform: translateY(0); }
|
|
|
|
|
|
to { opacity: 0; transform: translateY(5px); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes lineOut {
|
|
|
|
|
|
from { stroke-dashoffset: 0; opacity: 1; }
|
|
|
|
|
|
to { stroke-dashoffset: 1; opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes dotOut {
|
|
|
|
|
|
from { opacity: 1; transform: scale(1); }
|
|
|
|
|
|
to { opacity: 0; transform: scale(.55); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes haloOut {
|
|
|
|
|
|
from { opacity: .5; }
|
|
|
|
|
|
to { opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
HESU GLOBAL NETWORK & LOCAL SERVICE — peek strip
|
|
|
|
|
|
Middle 2 cards fully visible; outer 2 ~3/4 with edge fade.
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.network { padding: 96px 0; background: var(--ink-900); }
|
|
|
|
|
|
|
|
|
|
|
|
.network-stage { position: relative; }
|
|
|
|
|
|
.network-strip {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 13%, #000 87%, transparent 100%);
|
|
|
|
|
|
mask-image: linear-gradient(90deg, transparent 0%, #000 13%, #000 87%, transparent 100%);
|
|
|
|
|
|
}
|
|
|
|
|
|
.network-track {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: flex-start;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
gap: 18px; /* must match GAP in main.js — card-step math depends on it */
|
|
|
|
|
|
padding: 6px 0;
|
|
|
|
|
|
transform: translateX(-120px); /* JS positions precisely (centered pair) */
|
|
|
|
|
|
transition: transform .5s var(--ease);
|
|
|
|
|
|
cursor: grab;
|
|
|
|
|
|
user-select: none;
|
|
|
|
|
|
touch-action: pan-y;
|
|
|
|
|
|
will-change: transform;
|
|
|
|
|
|
}
|
|
|
|
|
|
.network-track:active { cursor: grabbing; }
|
|
|
|
|
|
.network-track.dragging { transition: none; }
|
|
|
|
|
|
.network-card {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
flex: 0 0 400px; /* fallback; JS sizes precisely per viewport */
|
|
|
|
|
|
height: 320px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
-webkit-user-drag: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.network-card .cell-ph { position: absolute; inset: 0; transition: transform .6s var(--ease); }
|
|
|
|
|
|
.network-card:hover .cell-ph { transform: scale(1.06); }
|
|
|
|
|
|
.network-card::after {
|
|
|
|
|
|
content: ""; position: absolute; inset: 0;
|
|
|
|
|
|
background: linear-gradient(180deg, transparent 45%, rgba(6,13,28,0.88) 100%);
|
|
|
|
|
|
}
|
|
|
|
|
|
.hub-label {
|
|
|
|
|
|
position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
padding: 16px;
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
letter-spacing: 0.1em;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
PARTNER
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.partner { padding: 110px 0 96px; background: var(--ink-900); }
|
|
|
|
|
|
.partner-inner { position: relative; display: flex; flex-direction: row; }
|
|
|
|
|
|
|
|
|
|
|
|
.partner-carousel {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 80%;
|
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
margin-top: 100px;
|
|
|
|
|
|
aspect-ratio: 2 / 1;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
box-shadow: 0 24px 60px rgba(0,0,0,0.5);
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-carousel .slide {
|
|
|
|
|
|
position: absolute; inset: 0;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transition: opacity .7s var(--ease);
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-carousel .slide.is-active { opacity: 1; }
|
|
|
|
|
|
|
|
|
|
|
|
.partner-dots {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 18px; bottom: 18px;
|
|
|
|
|
|
display: flex; align-items: center; gap: 8px;
|
|
|
|
|
|
z-index: 3;
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-dots button {
|
|
|
|
|
|
border: 0; cursor: pointer; padding: 0;
|
|
|
|
|
|
width: 9px; height: 9px; border-radius: 999px;
|
|
|
|
|
|
background: rgba(255,255,255,0.55);
|
|
|
|
|
|
transition: width .35s var(--ease), background .35s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-dots button.active {
|
|
|
|
|
|
width: 30px;
|
|
|
|
|
|
background: var(--orange-500);
|
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* orange overlay block */
|
|
|
|
|
|
.partner-overlay {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0; top: 0;
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
background: linear-gradient(283.27deg, rgba(255, 174, 0, 0.32) 1.97%, #FF6000 100%);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
padding: 60px 38px;
|
|
|
|
|
|
border-radius: var(--radius);
|
|
|
|
|
|
box-shadow: 0 24px 60px rgba(255,106,0,0.3);
|
|
|
|
|
|
z-index: 4;
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-title {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
/* font-weight: 900; */
|
|
|
|
|
|
font-size: clamp(1.3rem, 2.4vw, 1.9rem);
|
|
|
|
|
|
line-height: 1.18;
|
|
|
|
|
|
letter-spacing: 0.01em;
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-features {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: repeat(4, 1fr);
|
|
|
|
|
|
gap: 18px 10px;
|
|
|
|
|
|
margin-top: 32px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-features li {
|
|
|
|
|
|
display: flex; flex-direction: column; align-items: center;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pf-ico {
|
|
|
|
|
|
display: inline-flex; align-items: center; justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pf-ico img { width: 80px; height: 80px; object-fit: contain; display: block; }
|
|
|
|
|
|
.partner-features strong { display: block; font-family: var(--font-display); font-weight: 700; font-size: 0.7rem; }
|
|
|
|
|
|
.partner-features em { display: none; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
NEWS
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.news { padding: 96px 0; }
|
|
|
|
|
|
.news-head {
|
|
|
|
|
|
display: flex; align-items: center; justify-content: space-between;
|
|
|
|
|
|
margin-bottom: 40px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.view-more {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: 0.1em;
|
|
|
|
|
|
font-size: 0.85rem;
|
|
|
|
|
|
background: linear-gradient(88.61deg, #FF6000 7.43%, #FFA557 98.82%);
|
|
|
|
|
|
-webkit-background-clip: text;
|
|
|
|
|
|
background-clip: text;
|
|
|
|
|
|
-webkit-text-fill-color: transparent;
|
|
|
|
|
|
transition: color .2s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.view-more .plus { color: var(--orange-700); margin-left: 4px; }
|
|
|
|
|
|
.view-more:hover { color: var(--orange-700); }
|
|
|
|
|
|
|
|
|
|
|
|
.news-grid {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: repeat(4, 1fr);
|
|
|
|
|
|
gap: 22px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.news-card .news-img {
|
|
|
|
|
|
aspect-ratio: 4 / 3;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
margin-bottom: 16px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
.news-img .cell-ph { position: absolute; inset: 0; transition: transform .5s var(--ease); }
|
|
|
|
|
|
.news-card:hover .news-img .cell-ph { transform: scale(1.06); }
|
|
|
|
|
|
.news-title {
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
/* font-weight: 700; */
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
line-height: 1.35;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
transition: color .2s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.news-card:hover .news-title { color: var(--orange-500); }
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
FOOTER
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.site-footer { position: relative;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
margin-top: -25px;background: var(--bg-solid);color: var(--text-light-60);padding-top: 56px;border-radius: 30px 30px 0 0;}
|
|
|
|
|
|
|
|
|
|
|
|
.footer-top {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 24px;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-social { display: flex; gap: 12px; }
|
|
|
|
|
|
.social { display: inline-flex; transition: transform .2s, opacity .2s; }
|
|
|
|
|
|
.social img { width: 28px; height: 28px; display: block; }
|
|
|
|
|
|
.social:hover { transform: translateY(-2px); opacity: .8; }
|
|
|
|
|
|
|
|
|
|
|
|
.footer-grid {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 35% 1fr 1fr 1fr 1fr;
|
|
|
|
|
|
gap: 36px;
|
|
|
|
|
|
padding: 48px 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-intro .footer-slogan { font-size: 1rem; line-height: 1.7; margin-bottom: 16px; font-weight: bold; color: #fff; }
|
|
|
|
|
|
.footer-intro .footer-contact { font-size: 0.85rem; line-height: 1.8; color: var(--text-light-60); }
|
|
|
|
|
|
.footer-col h4 {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
font-family: var(--font-display);
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
margin-bottom: 18px;
|
|
|
|
|
|
letter-spacing: 0.04em;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-col ul { display: flex; flex-direction: column; gap: 12px; font-size: 0.9rem; }
|
|
|
|
|
|
.footer-col a { transition: color .2s; }
|
|
|
|
|
|
.footer-col a:hover { color: var(--orange-500); }
|
|
|
|
|
|
.footer-bottom {
|
|
|
|
|
|
border-top: 1px solid #9F9F9F;
|
|
|
|
|
|
padding: 22px 0;
|
|
|
|
|
|
font-size: 0.82rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-bottom .container {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 16px;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
display:none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-links { display: flex; gap: 18px; }
|
|
|
|
|
|
.footer-links a:hover { color: var(--orange-500); }
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
PLACEHOLDER IMAGE TREATMENTS
|
|
|
|
|
|
(distinct gradients so each photo slot reads as a unique image.
|
|
|
|
|
|
Swap .cell-ph / .slide / .news-img backgrounds for real photos.)
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.ph {
|
|
|
|
|
|
background-size: cover;
|
|
|
|
|
|
background-position: center;
|
|
|
|
|
|
display: flex; align-items: flex-start; justify-content: flex-end;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* themed gradients */
|
|
|
|
|
|
.ph-materials { background: url(../image/home/Businesses2.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-auto { background: url(../image/home/Businesses1.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-aftermarket { background: url(../image/home/Businesses3.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-logistics { background: url(../image/home/Businesses4.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-middleeast { background: url(../image/Company-History.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-easterneurope { background: url(../image/Company-Overview.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-africa { background: url(../image/home/Service4.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-warehouse { background: url(../image/home/Partner.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-warehouse1 { background: url(../image/home/Partner1.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-warehouse2 { background: url(../image/home/Partner2.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-warehouse3 { background: url(../image/home/Partner3.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-logistics2 { background: url(../image/home/Global-Logistics.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-exportcars { background: url(../image/home/Auto-Export.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-aboutlb1 { background: url(../image/about-us/lb1.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-aboutlb2 { background: url(../image/about-us/lb2.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-aboutlb3 { background: url(../image/about-us/lb3.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-aboutlb4 { background: url(../image/about-us/lb4.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-fair { background: url(../image/home/new1.png) center/cover no-repeat; }
|
|
|
|
|
|
.ph-dubai { background: url(../image/home/new2.png) center/cover no-repeat; }
|
|
|
|
|
|
.ph-factory { background: url(../image/home/new3.png) center/cover no-repeat; }
|
|
|
|
|
|
.ph-visit { background: url(../image/home/new4.png) center/cover no-repeat; }
|
|
|
|
|
|
.ph-service1 { background: url(../image/home/Service1.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-service2 { background: url(../image/home/Service2.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-service3 { background: url(../image/home/Service3.jpg) center/cover no-repeat; }
|
|
|
|
|
|
.ph-service4 { background: url(../image/home/Service4.jpg) center/cover no-repeat; }
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
SCROLL REVEAL
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
|
|
|
|
|
|
.reveal.in { opacity: 1; transform: none; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ============================================================
|
|
|
|
|
|
RESPONSIVE
|
|
|
|
|
|
============================================================ */
|
|
|
|
|
|
@media (max-width: 1024px) {
|
|
|
|
|
|
:root { --header-h: 68px; }
|
|
|
|
|
|
.container { padding-inline: 24px; }
|
|
|
|
|
|
.logo-img { height: 27px; }
|
|
|
|
|
|
|
|
|
|
|
|
.partner-carousel { width: 100%; margin-top: 0; }
|
|
|
|
|
|
.partner-overlay {
|
|
|
|
|
|
position: relative; top: 0;
|
|
|
|
|
|
width: 100%; margin-bottom: 18px;
|
|
|
|
|
|
padding: 30px 28px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.partner-inner { display: flex; flex-direction: column; }
|
|
|
|
|
|
|
|
|
|
|
|
.footer-grid { grid-template-columns: 1fr 1fr; }
|
|
|
|
|
|
.footer-intro { grid-column: 1 / -1; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 860px) {
|
|
|
|
|
|
/* mobile nav */
|
|
|
|
|
|
.menu-toggle { display: flex; }
|
|
|
|
|
|
.header-right .btn-contact { display: none; }
|
|
|
|
|
|
.nav-item.nav-contact { display: block; }
|
|
|
|
|
|
/* company logo pinned at the top of the drawer, links home */
|
|
|
|
|
|
.drawer-logo {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
margin: 0 0 20px;
|
|
|
|
|
|
padding-bottom: 16px;
|
|
|
|
|
|
border-bottom: 1px solid rgba(255,255,255,0.08);
|
|
|
|
|
|
}
|
|
|
|
|
|
.drawer-logo .logo-img { height: 30px; }
|
|
|
|
|
|
|
|
|
|
|
|
.main-nav {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
inset: 0 0 0 auto;
|
|
|
|
|
|
width: min(82vw, 360px);
|
|
|
|
|
|
background: var(--ink-900);
|
|
|
|
|
|
border-left: 1px solid rgba(255,255,255,0.08);
|
|
|
|
|
|
padding: calc(var(--header-h) + 16px) 26px 32px;
|
|
|
|
|
|
transform: translateX(100%);
|
|
|
|
|
|
transition: transform .35s var(--ease);
|
|
|
|
|
|
z-index: 49;
|
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
.main-nav.open { transform: translateX(0); box-shadow: -30px 0 60px rgba(0,0,0,0.5); }
|
|
|
|
|
|
.nav-list { flex-direction: column; align-items: stretch; gap: 6px; }
|
|
|
|
|
|
.nav-item > a { padding: 14px 6px; font-size: 1rem; border-bottom: 1px solid rgba(255,255,255,0.06); }
|
|
|
|
|
|
|
|
|
|
|
|
/* mega -> inline collapsible list on mobile */
|
|
|
|
|
|
.mega {
|
|
|
|
|
|
position: static; background: transparent;
|
|
|
|
|
|
opacity: 1; visibility: visible; pointer-events: auto;
|
|
|
|
|
|
display: none; overflow: visible; z-index: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-item.has-mega.open .mega { display: block; }
|
|
|
|
|
|
.mega-inner { display: block; min-height: 0; padding: 4px 0 2px 12px; gap: 0; }
|
|
|
|
|
|
.mega-left { display: none; }
|
|
|
|
|
|
.mega-right { display: block; }
|
|
|
|
|
|
.mega-card {
|
|
|
|
|
|
display: flex; flex-direction: row; align-items: center;
|
|
|
|
|
|
aspect-ratio: auto;
|
|
|
|
|
|
padding: 12px 4px;
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega-card:hover { transform: none; background: transparent; }
|
|
|
|
|
|
.mega-card-img { display: none; }
|
|
|
|
|
|
.mega-card-text {
|
|
|
|
|
|
position: static; display: block; text-align: left;
|
|
|
|
|
|
background: none; padding: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.mega-card-text p { display: none; }
|
|
|
|
|
|
.mega-card-text h4 { font-size: 0.98rem; color: var(--text-light-80); font-weight: 600; text-align: left; }
|
|
|
|
|
|
|
|
|
|
|
|
.nav-backdrop {
|
|
|
|
|
|
position: fixed; inset: 0; z-index: 48;
|
|
|
|
|
|
background: rgba(0,0,0,0.5); opacity: 0; visibility: hidden;
|
|
|
|
|
|
transition: opacity .3s, visibility .3s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-backdrop.show { opacity: 1; visibility: visible; }
|
|
|
|
|
|
|
|
|
|
|
|
/* hero */
|
|
|
|
|
|
.stats-grid { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
|
|
|
|
|
|
.hero { min-height: 82vh; }
|
|
|
|
|
|
|
|
|
|
|
|
/* business bento -> 2-col friendly */
|
|
|
|
|
|
.bento-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 190px; }
|
|
|
|
|
|
.cell-banner { grid-column: 1 / 3; grid-row: auto; }
|
|
|
|
|
|
.cell-materials { grid-column: auto; grid-row: span 1; }
|
|
|
|
|
|
.cell-auto { grid-column: 1 / 3; grid-row: auto; }
|
|
|
|
|
|
.cell-aftermarket { grid-column: auto; grid-row: auto; }
|
|
|
|
|
|
.cell-logistics { grid-column: 1 / 3; grid-row: auto; }
|
|
|
|
|
|
|
|
|
|
|
|
.news-grid { grid-template-columns: 1fr 1fr; }
|
|
|
|
|
|
/* network carousel — same drag/loop system as desktop, mobile sizing */
|
|
|
|
|
|
.network { padding: 0px 0 70px; }
|
|
|
|
|
|
.network-track { gap: 12px; }
|
|
|
|
|
|
.network-card { height: 340px; }
|
|
|
|
|
|
|
|
|
|
|
|
.section-head { margin-bottom: 36px; }
|
|
|
|
|
|
.business, .presence, .news, .partner { padding: 72px 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 560px) {
|
|
|
|
|
|
.container { padding-inline: 18px; }
|
|
|
|
|
|
.bento-grid { grid-template-columns: 1fr; grid-auto-rows: 180px; }
|
|
|
|
|
|
.cell-banner, .cell-auto, .cell-logistics { grid-column: auto; }
|
|
|
|
|
|
.news-grid { grid-template-columns: 1fr; }
|
|
|
|
|
|
.network-card { flex: 0 0 84vw; height: 280px; }
|
|
|
|
|
|
.partner-features { grid-template-columns: repeat(2, 1fr);}
|
|
|
|
|
|
.pf-ico img { width: 50px; height: 50px; }
|
|
|
|
|
|
.footer-grid { grid-template-columns: 1fr; gap: 32px; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Reduced motion */
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
* { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
|
|
|
|
|
|
.reveal { opacity: 1; transform: none; }
|
|
|
|
|
|
}
|