|
|
|
|
@ -27,12 +27,32 @@ const CLIENTS = [
|
|
|
|
|
{ id: "molit", logo: "24" }, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
const PARTNERS = ["02", "03", "04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "18", "19", "22"]; |
|
|
|
|
const PARTNERS = [ |
|
|
|
|
"02", |
|
|
|
|
"03", |
|
|
|
|
"04", |
|
|
|
|
"05", |
|
|
|
|
"06", |
|
|
|
|
"07", |
|
|
|
|
"08", |
|
|
|
|
"10", |
|
|
|
|
"11", |
|
|
|
|
"12", |
|
|
|
|
"13", |
|
|
|
|
"14", |
|
|
|
|
"18", |
|
|
|
|
"19", |
|
|
|
|
"22", |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
function LogoCard({ logo, basePath }) { |
|
|
|
|
return ( |
|
|
|
|
<div className="partners-logo-cell"> |
|
|
|
|
<img src={`${basePath}images/partner/banner${logo}.png`} alt="" loading="lazy" /> |
|
|
|
|
<img |
|
|
|
|
src={`${basePath}images/partner/banner${logo}.png`} |
|
|
|
|
alt="" |
|
|
|
|
loading="lazy" |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
@ -45,7 +65,14 @@ export default function PartnersPage() {
|
|
|
|
|
useEffect(() => { |
|
|
|
|
const ctx = gsap.context(() => { |
|
|
|
|
// 모든 섹션 요소 — 아래에서 위로 |
|
|
|
|
gsap.utils.toArray([".partners-section-row", ".partners-sidebar", ".partners-grid", ".sub-fade-in"]).forEach((el) => { |
|
|
|
|
gsap.utils |
|
|
|
|
.toArray([ |
|
|
|
|
".partners-section-row", |
|
|
|
|
".partners-sidebar", |
|
|
|
|
".partners-grid", |
|
|
|
|
".sub-fade-in", |
|
|
|
|
]) |
|
|
|
|
.forEach((el) => { |
|
|
|
|
gsap.fromTo( |
|
|
|
|
el, |
|
|
|
|
{ opacity: 0, y: 48 }, |
|
|
|
|
@ -100,7 +127,13 @@ export default function PartnersPage() {
|
|
|
|
|
<div className="sub-content"> |
|
|
|
|
<div className="inner-wrap"> |
|
|
|
|
{/* 상단 타이틀 */} |
|
|
|
|
<motion.div className="ht-header" initial={{ opacity: 0, y: 32 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true, margin: "-80px" }} transition={{ duration: 0.6, ease: [0.4, 0, 0.2, 1] }}> |
|
|
|
|
<motion.div |
|
|
|
|
className="ht-header" |
|
|
|
|
initial={{ opacity: 0, y: 32 }} |
|
|
|
|
whileInView={{ opacity: 1, y: 0 }} |
|
|
|
|
viewport={{ once: true, margin: "-80px" }} |
|
|
|
|
transition={{ duration: 0.6, ease: [0.4, 0, 0.2, 1] }} |
|
|
|
|
> |
|
|
|
|
<p className="ht-header-title"> |
|
|
|
|
Trusted by Many, |
|
|
|
|
<br /> |
|
|
|
|
@ -108,7 +141,9 @@ export default function PartnersPage() {
|
|
|
|
|
<span>Built</span> <b>for the Future</b> |
|
|
|
|
</em> |
|
|
|
|
</p> |
|
|
|
|
<em className="ht-header-sub">오랜 신뢰, 깊은 협력 함께하는 기관과 파트너</em> |
|
|
|
|
<em className="ht-header-sub"> |
|
|
|
|
오랜 신뢰, 깊은 협력 함께하는 기관과 파트너 |
|
|
|
|
</em> |
|
|
|
|
</motion.div> |
|
|
|
|
{/* <motion.div |
|
|
|
|
initial={{ scaleY: 0, opacity: 0 }} |
|
|
|
|
@ -130,7 +165,7 @@ export default function PartnersPage() {
|
|
|
|
|
<div className="partners-sidebar"> |
|
|
|
|
<p className="partners-eyebrow">Clients</p> |
|
|
|
|
<h2 className="partners-heading"> |
|
|
|
|
주요 |
|
|
|
|
주요 {""} |
|
|
|
|
<br /> |
|
|
|
|
고객사 |
|
|
|
|
</h2> |
|
|
|
|
@ -148,7 +183,7 @@ export default function PartnersPage() {
|
|
|
|
|
<div className="partners-sidebar"> |
|
|
|
|
<p className="partners-eyebrow">Partners</p> |
|
|
|
|
<h2 className="partners-heading"> |
|
|
|
|
기술 |
|
|
|
|
기술 {""} |
|
|
|
|
<br /> |
|
|
|
|
협력사 |
|
|
|
|
</h2> |
|
|
|
|
@ -163,84 +198,22 @@ export default function PartnersPage() {
|
|
|
|
|
|
|
|
|
|
{/* CTA */} |
|
|
|
|
<section className="sub-section sub-fade-in"> |
|
|
|
|
<div className="cta-box"> |
|
|
|
|
<div |
|
|
|
|
className="cta-bg" |
|
|
|
|
style={{ |
|
|
|
|
position: "relative", |
|
|
|
|
display: "flex", |
|
|
|
|
alignItems: "center", |
|
|
|
|
justifyContent: "space-between", |
|
|
|
|
flexWrap: "wrap", |
|
|
|
|
gap: "24px", |
|
|
|
|
padding: "48px 56px", |
|
|
|
|
borderRadius: "24px", |
|
|
|
|
overflow: "hidden", |
|
|
|
|
background: "var(--color-primary)", |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
{/* 배경 이미지 — 오른쪽에만 페이드인 */} |
|
|
|
|
<div |
|
|
|
|
style={{ |
|
|
|
|
position: "absolute", |
|
|
|
|
inset: 0, |
|
|
|
|
backgroundImage: `url(${basePath}images/ctabackground.png)`, |
|
|
|
|
backgroundSize: "75%", |
|
|
|
|
backgroundPosition: "right 100%", |
|
|
|
|
opacity: 0.28, |
|
|
|
|
maskImage: "linear-gradient(to right, transparent 20%, black 70%)", |
|
|
|
|
WebkitMaskImage: "linear-gradient(to right, transparent 20%, black 70%)", |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
{/* 콘텐츠 */} |
|
|
|
|
<div style={{ position: "relative", zIndex: 1 }}> |
|
|
|
|
<p |
|
|
|
|
style={{ |
|
|
|
|
margin: "0 0 8px", |
|
|
|
|
fontSize: "13px", |
|
|
|
|
fontWeight: 700, |
|
|
|
|
letterSpacing: ".12em", |
|
|
|
|
textTransform: "uppercase", |
|
|
|
|
color: "rgba(255,255,255,.65)", |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
Become a Partner |
|
|
|
|
</p> |
|
|
|
|
<h3 |
|
|
|
|
style={{ |
|
|
|
|
margin: 0, |
|
|
|
|
fontSize: "clamp(22px,2.2vw,30px)", |
|
|
|
|
fontWeight: 800, |
|
|
|
|
color: "#fff", |
|
|
|
|
letterSpacing: "-.03em", |
|
|
|
|
lineHeight: 1.25, |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
<div className="cta-content"> |
|
|
|
|
<p className="cta-eyebrow">Become a Partner</p> |
|
|
|
|
<h3 className="cta-title"> |
|
|
|
|
팔네트웍스와 함께 성장할 |
|
|
|
|
<br /> |
|
|
|
|
파트너를 찾습니다 |
|
|
|
|
</h3> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<Link |
|
|
|
|
to="/contact/inquiry" |
|
|
|
|
style={{ |
|
|
|
|
position: "relative", |
|
|
|
|
zIndex: 1, |
|
|
|
|
display: "inline-flex", |
|
|
|
|
alignItems: "center", |
|
|
|
|
height: "52px", |
|
|
|
|
padding: "0 28px", |
|
|
|
|
background: "#fff", |
|
|
|
|
borderRadius: "999px", |
|
|
|
|
fontSize: "15px", |
|
|
|
|
fontWeight: 700, |
|
|
|
|
color: "var(--color-primary)", |
|
|
|
|
textDecoration: "none", |
|
|
|
|
whiteSpace: "nowrap", |
|
|
|
|
letterSpacing: "-.01em", |
|
|
|
|
flexShrink: 0, |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
<Link to="/contact/inquiry" className="cta-btn"> |
|
|
|
|
협력 문의하기 |
|
|
|
|
</Link> |
|
|
|
|
</div> |
|
|
|
|
|