* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
}

body {
    margin:0;
    background:#f6f5f1;
    color:#111;
    font-family:Arial,"Pretendard","Noto Sans KR",sans-serif;
}

a {
    color:inherit;
    text-decoration:none;
}

.header {
    height:82px;
    padding:0 5vw;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid #ccc;
}

.logo {
    font-size:19px;
    font-weight:900;
    letter-spacing:-1px;
}

nav {
    display:flex;
    gap:28px;
}

nav a {
    font-size:11px;
    font-weight:700;
}

.hero {
    min-height:760px;
    padding:110px 7vw 80px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.small {
    margin:0 0 45px;
    font-size:12px;
    letter-spacing:.15em;
}

.hero h1 {
    margin:0;
    max-width:1200px;
    font-size:clamp(55px,8vw,125px);
    line-height:1.02;
    letter-spacing:-.07em;
}

.hero em {
    color:#e7462d;
    font-style:normal;
}

.hero-copy {
    margin:55px 0 0;
    font-size:13px;
    letter-spacing:.08em;
}


.section {
    padding:100px 5vw;
}

.section-title {
    padding-bottom:25px;
    display:flex;
    gap:25px;
    border-bottom:1px solid #999;
}

.section-title span,
.section-title h2 {
    margin:0;
    font-size:11px;
}


.business-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
}

.business-grid article {
    min-height:280px;
    padding:30px;
    border-right:1px solid #bbb;
    border-bottom:1px solid #bbb;
}

.business-grid article:first-child {
    border-left:1px solid #bbb;
}

.business-grid span {
    font-size:11px;
}

.business-grid h3 {
    margin:90px 0 20px;
    font-size:30px;
    letter-spacing:-.05em;
}

.business-grid p {
    max-width:250px;
    margin:0;
    line-height:1.7;
    font-size:14px;
    color:#555;
}


.projects {
    padding-bottom:0;
}

.project {
    min-height:520px;
    margin:0 -5vw;
    padding:70px 7vw;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
}

.project p {
    font-size:11px;
}

.project h3 {
    margin:30px 0;
    font-size:clamp(60px,10vw,150px);
    line-height:.85;
    letter-spacing:-.075em;
}

.project strong {
    font-size:22px;
    line-height:1.4;
}

.searchdoc {
    margin-top:70px;
    background:#111;
    color:white;
}

.celeb {
    background:#ddd9d1;
}

.arrow {
    font-size:48px;
}


.marketing-block {
    margin:70px 0 0;
    padding:70px;
}

.marketing-block>p:first-child {
    font-size:11px;
    letter-spacing:.1em;
}

.marketing-block h3 {
    margin:30px 0;
    font-size:clamp(48px,7vw,100px);
    letter-spacing:-.06em;
}

.viral {
    background:#e7462d;
}

.desc {
    max-width:580px;
    font-size:18px;
    line-height:1.8;
}

.case-placeholder {
    margin-top:60px;
    height:250px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(0,0,0,.4);
    font-size:13px;
}


.japan {
    background:#111;
    color:white;
}

.japan-services {
    margin-top:70px;
    border-top:1px solid #555;
}

.japan-services div {
    padding:30px 0;
    display:flex;
    justify-content:space-between;
    border-bottom:1px solid #555;
}

.japan-services b {
    font-size:26px;
}

.japan-services span {
    color:#aaa;
}


.about {
    padding:140px 7vw;
}

.about>p:first-child {
    font-size:11px;
}

.about h2 {
    margin:35px 0;
    max-width:950px;
    font-size:clamp(45px,7vw,100px);
    line-height:1.05;
    letter-spacing:-.065em;
}

.about>p:last-child {
    max-width:650px;
    line-height:1.9;
    color:#555;
}


.contact {
    padding:120px 7vw;
    background:#111;
    color:white;
}

.contact>p {
    font-size:11px;
}

.contact h2 {
    margin:35px 0 60px;
    font-size:clamp(50px,8vw,120px);
    line-height:.95;
    letter-spacing:-.07em;
}

.contact a {
    display:inline-block;
    padding-bottom:7px;
    border-bottom:1px solid white;
    font-size:18px;
}


footer {
    padding:35px 5vw;
    background:#111;
    color:#888;
    display:flex;
    justify-content:space-between;
    border-top:1px solid #333;
    font-size:10px;
}


@media(max-width:800px) {

    nav {
        display:none;
    }

    .hero {
        min-height:620px;
    }

    .business-grid {
        grid-template-columns:1fr 1fr;
    }

    .business-grid article:nth-child(3) {
        border-left:1px solid #bbb;
    }

    .project {
        min-height:440px;
    }

    .marketing-block {
        padding:35px 25px;
    }

    .japan-services div {
        flex-direction:column;
        gap:8px;
    }

    footer {
        flex-direction:column;
        gap:10px;
    }
}


/* WCOMPANY_VIRAL_GALLERY_V1 */

.viral-gallery {
    margin-top:60px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.viral-gallery figure {
    margin:0;
    padding:10px;
    background:#f6f5f1;
}

.viral-gallery img {
    display:block;
    width:100%;
    height:420px;
    object-fit:cover;
    object-position:top;
    background:#fff;
}

.viral-gallery figcaption {
    padding:12px 4px 4px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
}

@media(max-width:800px) {

    .viral-gallery {
        display:flex;
        overflow-x:auto;
        gap:12px;
        padding-bottom:15px;
        scroll-snap-type:x mandatory;
    }

    .viral-gallery figure {
        min-width:82vw;
        scroll-snap-align:start;
    }

    .viral-gallery img {
        height:430px;
    }
}



/* WCOMPANY_PROJECT_VISUAL_V1 */

.project {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr);
    gap:60px;
    align-items:center;
}

.project-copy-wrap {
    position:relative;
    z-index:2;
}

.project-visual {
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    background:rgba(255,255,255,.08);
}

.project-visual img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.project .arrow {
    position:absolute;
    top:60px;
    right:7vw;
    z-index:3;
}

.searchdoc .project-visual {
    background:#fff;
}

.celeb .project-visual {
    background:#fff;
}

@media(max-width:900px) {

    .project {
        grid-template-columns:1fr;
        gap:45px;
        align-items:start;
    }

    .project-visual {
        margin-top:10px;
    }

    .project .arrow {
        top:35px;
        right:25px;
    }
}

