/* 글로벌 스타일 */
.p-2rem {padding: 2rem !important;}

.pt-10rem {padding-top: 10rem !important;}
.pt-7rem {padding-top: 7rem !important;}
.pt-8rem {padding-top: 7rem !important;}
.pt-2rem {padding-top: 2rem !important;}

.pb-6rem {padding-bottom: 6rem !important;}

body {
    margin: 0;
    font-family: 'Poppins', 'Pretendard', sans-serif;
    color: #000;
   /*  background-color: #f9f9f9; */
    overflow-y: scroll; /* 스크롤바를 항상 표시하여 레이아웃 안정화 */
}


.card-image:focus {
    outline: none;
}

.portfolio-card {
    -webkit-tap-highlight-color: transparent;
}


.main-header {
    max-width: 1360px; /* 내용의 최대 너비 제한 */
    margin: 0 auto; /* 좌우 자동 여백으로 가운데 정렬 */
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2rem 0; /* 상하 패딩 추가 */
    box-sizing: border-box; /* 패딩이 너비 계산에 포함되도록 설정 */ background:#fff;
}

.logo img {
   /*  height: 40px; */
    width: auto;
}

.main-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 4rem;
}

.main-nav ul li a {
    text-decoration: none;
    color: #000;
    font-size: 20px;
    font-weight: 700;
    position: relative;
    transition: color 0.3s ease;
    white-space: nowrap;
}

.main-nav ul li a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #9346ff;
    transform: scaleX(0);
    transform-origin: left; /* 기본 상태: 왼쪽 기준 */
    transition: transform 0.3s ease-out;
}

.main-nav ul li a:hover::after {
    transform: scaleX(1);
    transform-origin: left; /* 나타날 때: 왼쪽 기준 */
}


.main-nav ul li a:not(:hover)::after {
    transform-origin: right; /* 사라질 때: 오른쪽 기준 */
}

.container {
    max-width: 1360px;
    margin: 0 auto;
    padding: 0 ;
	
    box-sizing: border-box; /* 패딩이 너비에 포함되도록 설정 */
}

/* Hero 섹션 */
.hero-section {
    padding: 80px 0;
    border-bottom: 1px solid #e0e0e0;
}

.hero-title {
    font-size: 3.4rem;     position: relative;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.4;
}

.hero-section p {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    margin: 0;
    color: #000;
}

.purple-text {
    color: #9346ff;
}

/* Creative 섹션 */
.main-content-section {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-top: 80px;
    position: relative;
}

.creative-section {
   /*  flex-basis: 60%;
    max-width: 60%; */
}

.creative-content {
    position: relative;
  
}

.creative-title {
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 10px 0;
    position: relative;
    display: inline-block;
}

.squiggle-line {
    position: absolute;
    top: -30px; /* 타이틀 위로 올리기 */
    left: -15px; /* 타이틀 옆으로 이동 */
    width: 40px; /* 물결선의 너비 */
    height: 40px; /* 물결선의 높이 */
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><path d="M5 50C10 30 20 70 30 50C40 30 50 70 60 50C70 30 80 70 95 50" stroke="%239346ff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" /></svg>') no-repeat center;
    background-size: contain;
}

.creative-description {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    color: #000;
    white-space: nowrap;
}

.main-content-section p {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    margin: 0;
    color: #000;
}

.jumjum {position: absolute; left: -40px; top: -20px;}


.container-wrap {display: flex; width: 1360px;}

.left-container {width: 886px;}

.right-container {display: flex; width: 474px; justify-content: flex-end;}

/* ======================================= */
/* ====== 플로팅 메뉴 스타일 ====== */
/* ======================================= */
/* .floating-menu {
    position: fixed;
   z-index: 100;
} */


.floating-menu {
    position: fixed;
   
    z-index: 100;
}

/* JavaScript로 추가할 클래스 */
.floating-menu.stop-scrolling {
    position: absolute;
    top: auto !important; /* fixed 상태의 top을 무력화 */
    bottom: 0; /* 해당 컨테이너의 바닥에 고정 */
    right: 0; /* right-container의 오른쪽 끝에 고정 */
}

.right-container {
    position: relative; /* floating-menu가 absolute로 변경될 때의 기준점 */
}

.floating-box {
    background-color: #000;
    color: #fff;
    padding: 40px 30px;
    border-radius: 3rem;
    width: 410px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center; height: 362px;
}

.floating-box h3 {
    font-size: 2.5rem;
    font-weight: 600;
    margin: 0 0 0px 0;
    line-height: 1;
}

.floating-box p {
    font-size: 1.2rem;
    line-height: 1.5;
    color: #bbb;
    margin-bottom: 25px;
}

/* ======================================= */
/* ====== 버튼 애니메이션 (통합) ====== */
/* ======================================= */

.service-button {
    display: inline-flex;
    align-items: center;
  
    color: #000;
    font-size: 1rem;
    font-weight: 600;
    padding: 12px 25px;
    border-radius: 50px;
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.4s ease;
    overflow: hidden;
}

.button-text {
       margin: 0 0px;
    transition: all 0.4s ease;
    background: #fff;
    border-radius: 2rem;
    padding: 10px 20px;
    font-size: 1.3rem;
}

.arrow-right {
    font-size: 1.5rem;
    transition: transform 0.4s ease, opacity 0.4s ease;
	background: #fff;
    border-radius: 2rem; padding: 8px 15px;
}

.arrow-left {
    font-size: 1.5rem;
    opacity: 0;
    transform: translateX(-10px);
    transition: transform 0.4s ease, opacity 0.4s ease;
	background: #fff;
    border-radius: 2rem; padding: 8px 15px;
}


.service-button:hover .button-text {
    transform: translateX(20px); 
}

.service-button:hover .arrow-right {
    opacity: 0;
    transform: translateX(20px); /
}

.service-button:hover .arrow-left {
    opacity: 1;
    transform: translateX(20px); 
}



.service-button-2 {
    display: inline-flex;
    align-items: center;
  
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    padding: 12px 25px;
    border-radius: 50px;
    text-decoration: none;
  
    transition: all 0.4s ease;
    overflow: hidden;
}

.button-text-2 { font-weight: 400;
       margin: 0 0px;
    transition: all 0.4s ease;
   color: #fff;
    border-radius: 4rem;
    padding: 20px 40px;
    font-size: 1.3rem;background: #000;
}

.arrow-right-2 {
    font-size: 1.5rem;
    transition: transform 0.4s ease, opacity 0.4s ease;
	color: #fff;background: #000;
    border-radius: 3rem;
    padding: 18px 24px;
}

.arrow-left-2 {
    font-size: 1.5rem;
    opacity: 0;
    transform: translateX(-10px);
    transition: transform 0.4s ease, opacity 0.4s ease;
	color: #fff;background: #000;
    border-radius: 3rem;
    padding: 18px 24px;
}


.service-button-2:hover .button-text-2 {
    transform: translateX(20px); 
}

.service-button-2:hover .arrow-right-2 {
    opacity: 0;
    transform: translateX(20px); /
}

.service-button-2:hover .arrow-left-2 {
    opacity: 1;
    transform: translateX(20px); 
}


.text-section {
   
    margin: 0 auto;
    
}

.section-text {
    font-size: 1.4rem;
    line-height: 1.6;
	font-weight: 500;
    color: #000;
    margin: 0 0 40px 0;     width: 840px;
}

.section-text:last-child {
    margin-bottom: 0;
}

/* ======================================= */
/* ====== 이미지 섹션 스타일 ====== */
/* ======================================= */
.image-section {
    display: flex;
        justify-content: space-between;
    /* gap: 4rem; */
    padding-bottom: 50px;
}

.image-wrapper {
    /* 원하는 너비로 설정 */
    width: 410px;
    /* 높이는 내용에 맞춰 자동 조절 */
    height: auto;
    overflow: hidden; /* 컨테이너 밖의 이미지 부분 숨김 */
    border-radius: 3rem; /* 둥근 모서리 (선택 사항) */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 그림자 효과 (선택 사항) */
}

.styled-image {
    width: 100%; /* 이미지를 wrapper의 너비에 맞춤 */
    height: 362px;
    display: block;
    /* 이미지의 보여지는 위치 조절 */
    object-fit: cover; /* 이미지가 비율을 유지하며 컨테이너에 맞춰 들어감 (작은 이미지의 경우) */
    object-position: left top; /* 큰 이미지의 왼쪽 상단 부분부터 보여줌 */
}


.edit-img {object-fit: none !important;
    object-position: -140px -90px;}

/* ====== 솔루션 섹션 스타일 ====== */

.solution-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0px 0px;
}

.solution-header {
    text-align: left;
    margin-bottom: 50px;
}

.solution-header h2 {
    font-size: 3rem;
    font-weight: 700;
    color: #000;
}

.solution-header h3 {
    font-size: 1.5rem;
    font-weight: 500;
    color: #555;
}

.solution-content {
    display: flex;
    justify-content: flex-start;
}

.solution-column {
  
}

.column-title {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 20px;
}

.solution-item {     gap: 80px;
    display: flex;
    align-items: center;
    margin-bottom: 0px;
}

.icon-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    margin-right: 20px; width:100px;
}

.icon-container {
    width: 100px;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%; /* 원형 배경 제거 */
}

#solution-icon {width: 100px;}

.solution-icon {
    width: 75px; /* 이미지 크기 제한 */
   
    display: block; /* 이미지 주변 불필요한 공간 제거 */
}

.vertical-line {
    width: 2px;
    height: 60px;
    background-color: #ddd;
    margin-top: 5px; /* 아이콘과 선 간격 조절 */
}

.text-content h4 {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 5px; margin-top: 20px;
}

.text-content p {
    font-size: 1.3rem;
    line-height: 1.6;
    color: #000;
}

/* 마지막 아이템의 세로선 숨기기 */
.solution-item:last-of-type .vertical-line {
    display: none;
}


.info-cards-section {
        padding: 50px 0px 0px;
    max-width: 1200px;
    margin: 0 auto;
}

.card-wrapper {
    display: flex;
    gap: 20px;
       justify-content: space-between;
}

.info-card {
    
    background-color: #000;
    color: #fff;     padding: 40px;
    box-sizing: border-box;
  
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
	width:410px;     height: 362px;     border-radius: 3rem;
}

.info-card p {
        font-size: 1.6rem;
    line-height: 1.6;
    font-weight: 500;
}

/* ====== 문의 목적 섹션 스타일 ====== */
.contact-purpose-section {
    padding: 50px 20px;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.enquiry-text {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
    color: #000;
}

/* ====== 전체 서비스 섹션 스타일 ====== */
.section-2 { background-color:#f2f2f2;}

	
.full-service-section {
    padding: 80px 0px;
  max-width: 1360px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

.full-service-title {
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 50px;
}

.card-container {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    flex-wrap: wrap;
}

.service-card {
  /*   flex-basis: 300px;
    flex-grow: 1; */
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    transition: transform 0.3s ease;
	
	    width: 440px;
    box-sizing: border-box;
    
    /* 검은색 바를 위한 설정 */
    position: relative;
    overflow: hidden; /* 가상 요소가 밖으로 나가지 않도록 */
}

.service-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 10px; /* 바의 높이 */
    background-color: #000;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
}

.card-header {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
}

.card-icon {
        width: 40px;
    height: 40px;
    margin-right: 15px;
    background: #000;
    padding: 15px;
    border-radius: 8px;
}

.card-title {
    font-size: 2.5rem;
    font-weight: 600;
    margin: 0;
}

.card-description {
    font-size: 0.9rem;
    line-height: 1.6;
        color: #000;
    font-weight: 500;
    margin-bottom: 20px;
}

.service-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.service-list li {
    font-size: 1.1rem;
    color: #000;
    line-height: 1.8;
    position: relative;
    padding-left: 15px;
}

.service-list li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: #000;
    font-size: 1.5em; /* 폰트 사이즈를 키워 동그라미를 크게 만듦 */
    line-height: 1.2; /* 줄 높이를 1로 맞춰서 세로 정렬이 깨지지 않게 함 */
}

.learn-more-button { box-sizing: border-box;
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: 12px 20px;
    border: 1px solid #000;
    border-radius: 50px;
    text-decoration: none;
    color: #000;
    font-weight: 600;
    margin-top: auto; /* 버튼을 카드 하단에 정렬 */
    transition: background-color 0.3s, color 0.3s;
}

.learn-more-button:hover {
    background-color: #000;
    color: #fff;
}

/* ====== 서비스 카드 애니메이션 ====== */

.service-card .card-header {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    transition: transform 0.3s ease; /* transform 속성 추가 */
}

.service-card:hover .card-header {
    transform: translateX(5px); /* 마우스 오버 시 오른쪽으로 5px 이동 */
}

.learn-more-button {
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: 12px 20px;
    border: 1px solid #000;
    border-radius: 50px;
    text-decoration: none;
    color: #000;
    font-weight: 600;
    margin-top: auto;
    transition: background-color 0.3s, color 0.3s;
}

.service-card:hover .learn-more-button {
    background-color: #000;
    color: #fff;
}

/* ====== 푸터 섹션 스타일 ====== */

.footer-section {
    background-color: #171717;
    color: #fff;
    padding: 40px 20px ;
    font-family: 'Poppins', sans-serif;
}

.footer-content-wrapper {
    display: flex;
    justify-content: space-between;
    max-width: 1360px;
    margin: 0 auto;
    border-bottom: 1px solid #333;
    padding-bottom: 40px;
    flex-wrap: wrap; /* 반응형을 위해 추가 */
}

/* Left Section */
.footer-left {
    flex-basis: 35%;
    max-width: 35%;
}

.footer-left .footer-text-title {
    font-size: 1.2rem;
    font-weight: 200;
    line-height: 1.5;
    margin-bottom: 20px;
}

.newsletter-form {
    display: flex;
    margin-bottom: 30px;
    max-width: 450px;
}

.email-input {
    flex-grow: 1; font-size: 1.2em;
    background-color: #333;
    border: none;
    color: #fff;
    padding: 15px 20px;
    border-radius: 50px;
    outline: none;
}

.subscribe-button {
    background-color: #fff;
    color: #000;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    margin-left: 0px;
    font-size: 1.5rem;
    cursor: pointer;
	    transition: background-color 0.3s, color 0.3s;
}


.subscribe-button:hover {
    background-color: #9346ff;
   color: #fff;
}



.social-icons {
    display: flex;
    gap: 15px;
}

.social-icon {
    width: 30px;
    height: 30px;
    filter: invert(100%); /* SVG 아이콘을 흰색으로 변경 */
}

/* Center & Right Sections */
.footer-column {
    margin-bottom: 20px;
}

.main-header-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff; /* This will be the full-width background color */
   /*  box-shadow: 0 2px 5px rgba(0,0,0,0.1);  */
}

.footer-center {
    display: flex;
       flex-basis: 55%;
    max-width: 55%;
    gap: 50px;
    justify-content: space-around;
}

.footer-right {
    flex-basis: 20%;
    max-width: 20%;
}

.footer-column h5, .footer-right h5 {
    font-size: 0.9rem;
    font-weight: 300;
    margin-bottom: 20px;
    color: #AFAFAF;
}

.footer-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-column li {
    margin-bottom: 10px;
}

.footer-column a, .footer-right p {
    color: #fff;
    text-decoration: none;
    font-size: 1.1rem;
    line-height: 1.5; font-weight:300;
}


.footer-bottom {
    display: flex;
    justify-content: flex-start;
    gap: 20px;
    max-width: 1360px;
    margin: 20px auto 0;
    font-size: 0.8rem;
    color: #777;
    flex-wrap: wrap;
}


.hamburger-menu-toggle, .mobile-menu-overlay {
    display: none;
}

.pc {}


/* --- 결과 섹션 스타일 --- */
.results-section {
    padding: 80px 20px;
    max-width: 1360px;
    margin: 0 auto;
    font-family: 'Poppins', 'Pretendard', sans-serif;
}

.results-container {
 
}

.results-title {
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 30px;
    position: relative;
    color: #000;
   
}

.results-description {
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.6;
    color: #333;
    margin-bottom: 20px;
}

/* 물결선 스타일 */
.squiggle-line-2 {
    position: absolute;
    top: -20px;
    left: -15px;
    width: 40px;
    height: 40px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><path d="M5 50C10 30 20 70 30 50C40 30 50 70 60 50C70 30 80 70 95 50" stroke="%23000" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" /></svg>') no-repeat center;
    background-size: contain;
}


/* --- About/Mission 섹션 --- */
.about-section {
   padding: 80px 0px 0px;
    max-width: 1360px;
    margin: 0 auto;
    margin-bottom: -60px;
    position: relative;
    z-index: 100;
}

.card-black-box {
    background-color: #000;
    color: #fff;
    padding: 100px;
    border-radius: 20px;
}

.card-title-black {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 20px;
	margin-top:0px;
}

.card-description-black {
    font-size: 1.3rem;
    line-height: 1.6;
    font-weight: 500;
    color: #ccc;
	margin-top:40px;
}

/* --- Creative Work CTA 섹션 --- */
.creative-work-cta-section {
    background-color: #9346ff;
    color: #fff;
        padding: 120px 0px 80px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    
    margin: 0 auto;
}

.cta-container {width: 1360px; display: flex;   margin: 0 auto;}
.cta-content {
    flex-grow: 1;
}

.cta-title {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.cta-description {
    font-size: 1.3rem;
    line-height: 1.5;
    font-weight: 500;
}

/* --- 보라색 CTA 버튼 --- */
.cta-button-purple {
    display: inline-flex;
    align-items: center;
    background-color: #fff;
    color: #000;
    font-size: 1.1rem;
    font-weight: 600;
    padding: 12px 25px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
}




.cta-button-purple .button-text-cta {
    margin-right: 15px;
}

.cta-button-purple .arrow-right-cta {
    font-size: 1.5rem;
    transition: transform 0.3s ease;
}

/* --- 마우스 오버 애니메이션 --- */
.cta-button-purple:hover {
    background-color: #333;
    color: #fff;
}

.cta-button-purple:hover .arrow-right-cta {
    transform: translateX(5px);
}



.service-button-3 {
    display: inline-flex;
    align-items: center;
  
    color: #000;
    font-size: 1rem;
    font-weight: 600;
    padding: 12px 25px;
    border-radius: 50px;
    text-decoration: none;
  
    transition: all 0.4s ease;
    overflow: hidden;
}

.button-text-3 { font-weight: 700;
       margin: 0 0px;
    transition: all 0.4s ease;
   color: #000;
    border-radius: 4rem;
    padding: 11px 60px;
    font-size: 1.3rem;background: #fff;
}

.arrow-right-3 {
    font-size: 1.5rem;
    transition: transform 0.4s ease, opacity 0.4s ease;
	color: #000;background: #fff;
    border-radius: 3rem;
        padding: 10px 17px;
}

.arrow-left-3 {
    font-size: 1.5rem;
    opacity: 0;
    transform: translateX(-10px);
    transition: transform 0.4s ease, opacity 0.4s ease;
	color: #000;background: #fff;
    border-radius: 3rem;
        padding: 10px 17px;
}


.service-button-3:hover .button-text-3 {
    transform: translateX(20px); 
}

.service-button-3:hover .arrow-right-3 {
    opacity: 0;
    transform: translateX(20px); /
}

.service-button-3:hover .arrow-left-3 {
    opacity: 1;
    transform: translateX(20px); 
}

/* --- 포트폴리오 그리드 (계단식 레이아웃) --- */


/* 각 줄의 카드 비율 설정 */

/* .portfolio-card:nth-child(1) { grid-column: span 4; }
.portfolio-card:nth-child(2) { grid-column: span 6; }

.portfolio-card:nth-child(3) { grid-column: span 6; }
.portfolio-card:nth-child(4) { grid-column: span 4; }

.portfolio-card:nth-child(5) { grid-column: span 7; }
.portfolio-card:nth-child(6) { grid-column: span 3; }

.portfolio-card:nth-child(7) { grid-column: span 6; }
.portfolio-card:nth-child(8) { grid-column: span 4; }

.portfolio-card:nth-child(9) { grid-column: span 4; }
.portfolio-card:nth-child(10) { grid-column: span 6; } */

/* ===== Base & Filter ===== */
.portfolio-section { width:1360px; margin:40px auto; }
.portfolio-title {
    font-size: 2.5rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 30px;
    position: relative;
    color: #000;
}
.jumjum{/* width:28px; */height:auto}
.category-filter{display:flex;gap:8px;list-style:none;margin:8px 0 18px;padding:0}
.filter-button{border:1px solid #d8d8d8;background:#fff;padding:8px 14px;border-radius:999px;cursor:pointer}
.filter-button.active{background:#6c4dff;color:#fff;border-color:#6c4dff}

/* ===== Dense Grid (1360x1px) + gutter ===== */
.portfolio-grid{
  --gutter:16px;
  display:grid;
  grid-auto-flow:dense;
  grid-template-columns: repeat(1360, 1px); /* 요구사항 */
  grid-auto-rows:1px;
  padding: calc(var(--gutter)/2);
}

/* outer cell (span은 JS가 dw/dh+gutter로 부여) */
.portfolio-card{
  position:relative;
  background:transparent;
  /* show/hide 애니메이션 기본 상태 */
  opacity:1; transform: translateY(0) scale(1);
  transition: opacity .35s ease, transform .35s ease, box-shadow .2s ease;
}

/* 내부 실제 카드 박스 (원본 크기 유지) */
.card-box{
  position:absolute; inset: calc(var(--gutter)/2);
  border-radius:16px; overflow:hidden; background:#000;
  box-shadow:0 8px 18px rgba(0,0,0,.12); cursor:pointer;
}

.card-image{width:100%;height:100%;object-fit:fill;display:block}

/* overlay text */
.card-overlay{position:absolute;left:0;right:0;bottom:0;    padding: 20px 10px 30px 30px;color:#fff;
  background:linear-gradient(to top,rgba(0,0,0,.6),rgba(0,0,0,0))}
.card-overlay .badge{display:inline-block;padding:2px 8px; background:#D4D4D4; 
border:1px solid rgba(255,255,255,.35);border-radius:999px;font-size:12px; color:#000;}
.card-overlay .title{margin:6px 0 2px;font-size: 30px;}
.card-overlay .desc{margin:0;font-size:13px;opacity:.9}

/* 애니메이션 상태 클래스 */
.appear{ animation: pop-in .45s cubic-bezier(.2,.7,.2,1) both; }
.hiding{ opacity:0; transform: translateY(12px) scale(.98); pointer-events:none; }
.is-hidden{ display:none !important; }

@keyframes pop-in{
  from{ opacity:0; transform: translateY(14px) scale(.98); }
  to  { opacity:1; transform: translateY(0)    scale(1);  }
}

/* Load more btn */
.load-more-btn-wrapper{display:flex;justify-content:center;margin-top:16px}
#load-more-button{padding:10px 18px;border-radius:999px;border:1px solid #ccc;background:#fff;cursor:pointer}

/* CTA 기본은 숨김, 카드 hover/focus 시 나타남 */
.card-cta{
  position:absolute;
  right:18px; bottom:18px;
  z-index:3;
  opacity:0;
  transform: translateY(10px);
  pointer-events:none;
  transition: opacity .28s ease, transform .28s ease;
}
.portfolio-card:hover .card-cta,
.portfolio-card:focus-within .card-cta{
  opacity:1;
  transform: translateY(0) scale(1);
  pointer-events:auto;
}


.service-button-4 {
    display: inline-flex;
    align-items: center;
  
    color: #000;
    font-size: 1rem;
    font-weight: 600;
    padding: 12px 25px;
    border-radius: 50px;
    text-decoration: none;
  
    transition: all 0.4s ease;
    overflow: hidden;
}

.button-text-4 { font-weight: 700;
       margin: 0 0px;
    transition: all 0.4s ease;
   color: #fff;
    border-radius: 4rem;
        padding: 8px 30px;
    font-size: 1rem; background:#A85BFF;
}

.arrow-right-4 {
    font-size: 1rem;
    transition: transform 0.4s ease, opacity 0.4s ease;
	color: #fff; background:#A85BFF;
    border-radius: 3rem;
        padding: 9px 14px;
}

.arrow-left-4 {
    font-size: 1.5rem;
    opacity: 0;
    transform: translateX(-10px);
    transition: transform 0.4s ease, opacity 0.4s ease;
	color: #000;background: #fff;
    border-radius: 3rem;
        padding: 10px 17px;
}



/* 접근성 */
.service-button-4:focus-visible{ outline:2px solid #c7b7ff; outline-offset:3px; }


.brand-logo-section {
    padding: 80px 0;
    text-align: center;
    overflow: hidden; /* 로고가 밖으로 나가는 것을 숨김 */
    background-color: #fff;
}

.brand-logo-title {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 60px;
    color: #000;
}

.logo-carousel-container {
    display: flex;
    flex-direction: column;
    gap: 40px; /* 두 줄 사이의 간격 */
}

.logo-carousel {
    white-space: nowrap; /* 로고들이 한 줄에 표시되도록 */
    overflow: hidden; /* 넘치는 요소를 숨김 */
    padding: 0px 0;
}

.logo-wrapper {
    display: inline-block;
    animation-duration: 40s; /* 애니메이션 한 바퀴 도는 시간 */
    animation-timing-function: linear; /* 일정한 속도로 */
    animation-iteration-count: infinite; /* 무한 반복 */
}

.brand-logo {
    height: 60px; /* 로고 이미지 높이 */
    width: auto;
    margin: 0 40px; /* 로고들 사이의 간격 */
    vertical-align: middle;
    filter: grayscale(100%); /* 로고를 흑백으로 */
    opacity: 0.7; /* 로고 투명도 */
    transition: all 0.3s ease;
}

.brand-logo:hover {
    filter: grayscale(0%); /* 호버 시 원본 색상으로 */
    opacity: 1; /* 호버 시 투명도 제거 */
}

/* 첫 번째 줄: 오른쪽에서 왼쪽으로 흐름 */
.top-row .logo-wrapper {
    animation-name: scroll-left;
}

/* 두 번째 줄: 왼쪽에서 오른쪽으로 흐름 */
.bottom-row .logo-wrapper {
    animation-name: scroll-right;
}

/* 키프레임 정의 */
@keyframes scroll-left {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%); /* 로고 묶음의 절반만큼 이동 */
    }
}

@keyframes scroll-right {
    0% {
        transform: translateX(-50%); /* 로고 묶음의 절반만큼 이동해서 시작 */
    }
    100% {
        transform: translateX(0);
    }
}




/* --- view 섹션 --- */
.view-section {
   padding: 80px 0px ;
    max-width: 1360px;
    margin: 0 auto;
    margin-bottom:0px;
    position: relative;
    z-index: 100;
}

.view-container img {width:100%;}

.view-button {width:100%; margin:0 auto; text-align:center;}

.back-button {
  display: inline-block;
  padding: 12px 24px;
  background-color: #000;   /* 검정 배경 */
  color: #fff;              /* 흰색 텍스트 */
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 30px;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.back-button:hover {
  background: #A85BFF;   /* 호버 시 약간 밝은 검정 */
  color: #fff;
}


/* 모바일: 1열, 비율 유지 축소(애니메이션 동일) */
@media (max-width:768px){


.card-cta {
        display: none !important; /* 모바일에서 버튼을 완전히 숨김 */
    }

    .portfolio-card a {
        /* 카드 전체가 링크가 되도록 만듭니다. */
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 10; /* 다른 콘텐츠 위에 오도록 z-index 설정 */
    }

.card-overlay .desc, .card-overlay .title {color:#fff;}

  .portfolio-section{ width:100%; padding:0 16px; }
  .portfolio-grid{ display:block; padding:0; }
  .portfolio-card{ width:100% !important; height:auto !important; margin:0 0 12px; }
  .card-box{ position:relative; inset:0; }
  .card-image{ width:100%; height:auto; object-fit:contain; }
}

/* 모션 최소화 환경 대응 */
@media (prefers-reduced-motion: reduce){
  .portfolio-card{ transition:none }
  .appear{ animation:none }
}



@media (max-width: 768px) {


.filter-button {
   font-size:10px; padding: 6px 12px;
}

.category-filter {
    display: flex;
    gap: 5px; 
    list-style: none;
    margin: 8px 0 18px;
    padding: 0;
}

.view-section {
   padding: 20px 20px ; box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
    margin-bottom:0px;
    position: relative;
    z-index: 100;
}



.results-section {
    padding: 20px 20px;
	}
	
	.cta-container {
    width: 100%;
    display: flex
;
    margin: 0 auto;
}

.portfolio-title {
        font-size: 2.2rem;
    }

.portfolio-section {
    padding: 20px 20px; box-sizing: border-box; }

.card-black-box {
        padding: 40px;
    }

    .card-title-black {
        font-size: 1.8rem;
    }

    .card-description-black {
        font-size: 1rem;
    }

    .creative-work-cta-section {
        flex-direction: column;
        align-items: flex-start;
        padding: 40px 20px;
    }

    .cta-title {
        font-size: 1.5rem;
    }

    .cta-description {
        margin-bottom: 20px;
    }
 .results-title {
        font-size: 2.5rem;
        padding-left: 30px;
    }

    .results-description {
        font-size: 1rem;
    }
    
    .squiggle-line-2 {
        top: -15px;
        left: -10px;
        width: 30px;
        height: 30px;
    }

  .brand-logo-section {
        padding: 40px 0;
    }
    
    .brand-logo-title {
        font-size: 2rem;
        margin-bottom: 40px;
        padding: 0 20px;
    }

    .logo-carousel {
        padding: 10px 0;
    }

    .brand-logo {
        height: 30px;
        margin: 0 20px;
    }
    
    .logo-wrapper {
        animation-duration: 30s; 
    }

  .portfolio-grid {
        display: flex;
        flex-direction: column; /* 카드를 세로로 정렬 */
        gap: 20px;
    }
    .grid-sizer {
        width: 100%; /* 너비를 100%로 설정하여 한 줄에 하나만 보이게 함 */
        margin-bottom: 20px;
        box-sizing: border-box;
    }
    
    .portfolio-card {
        width: 100%; /* 너비를 100%로 설정하여 한 줄에 하나만 보이게 함 */
        margin-bottom: 20px;
        box-sizing: border-box;
    }

	.portfolio-card.wide {
        width: 100%; /* wide 클래스도 100%로 설정 */
    }

	 .card-image {
        width: 100%;
        height: auto; /* 이미지의 원본 비율 유지 */
    }

    .card-overlay {
        position: static;
        background: none;
        color: #000;
        padding: 20px;
        height: auto;
    }

    .card-tags .tag {
        background-color: #ddd;
        color: #555;
    }

    .card-description {
        color: #777;
    }
    
    .view-more-btn {
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
        position: static;
        margin-top: 20px;
        background-color: #000;
        color: #fff;
        display: block;
        width: 100%;
        height: auto;
        padding: 12px 20px;
    }
.arrow-left-2 {display:none;}
.pc {display:none;}

.card-icon { width: 30px; height: 30px;}
.full-service-title {font-size: 2.5rem;}
   


.card-title {    font-size: 1.8rem; }

.p-2rem {padding: 1rem !important;}

.pt-10rem {padding-top: 3rem !important;}
.pt-7rem {padding-top: 2rem !important;}
.pt-8rem {padding-top: 4rem !important;}
.pt-2rem {padding-top: 1rem !important;}

.pb-6rem {padding-bottom: 3rem !important;}

.container {
    width: 100%;}
  .main-nav {
        display: none; /* 데스크톱 메뉴 숨기기 */
    }

    .main-header {
        justify-content: space-between;
         padding: 20px 30px; align-items: flex-start;
    }

    /* 햄버거 메뉴 토글 버튼 */
    .hamburger-menu-toggle {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
               width: 30px;
        height: 33px;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: 1010;
    }

    .hamburger-menu-toggle span {
        display: block;
        width: 100%;
        height: 3px;
        background-color: #000;
        transition: all 0.3s ease-in-out;
    }

    /* 햄버거 메뉴 'X' 애니메이션 */
    .hamburger-menu-toggle.active span:nth-child(1) {
        transform: translateY(11px) rotate(45deg);
    }
    .hamburger-menu-toggle.active span:nth-child(2) {
        opacity: 0;
    }
    .hamburger-menu-toggle.active span:nth-child(3) {
        transform: translateY(-11px) rotate(-45deg);
    }

    /* 모바일 메뉴 오버레이 */
    .mobile-menu-overlay {
        display: flex;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(5px);
        transform: translateX(100%);
        transition: transform 0.4s ease-in-out;
        z-index: 1000;
        justify-content: center;
        align-items: center;
    }

    .mobile-menu-overlay.active {
        transform: translateX(0);
    }

    .mobile-menu-overlay ul {
        list-style: none;
        padding: 0;
        text-align: center;
        margin: 0;
    }

    .mobile-menu-overlay ul li {
        margin: 2rem 0;
    }

    .mobile-menu-overlay ul li a {
        font-size: 2.5rem;
        font-weight: 700;
        color: #000;
        text-decoration: none;
        opacity: 0;
        transform: translateY(20px);
        transition: all 0.5s ease-in-out;
    }

    .mobile-menu-overlay.active ul li a {
        opacity: 1;
        transform: translateY(0);
    }
	
	.logo img { height: 30px; width: auto;}
	
	.icon-wrapper { display: none;}
	
	.service-card {width: 100%;}
  
  .subscribe-button {  width: 4.8rem;}
  /* 히어로 섹션 */
  
  .contact-purpose-section {width:100%; padding:20px 20px;         box-sizing: border-box;}
  
  .full-service-section {width:100%; padding:20px 0px;}
  
  .section-2 {width:100%; padding:20px 20px;         box-sizing: border-box;}
  
  .footer-section {width:100%;}
  .footer-section {padding: 40px 20px;         box-sizing: border-box;}
  
  .hero-section {
    padding: 40px 20px; width: 100%;
    border-bottom: none;         box-sizing: border-box;
}
  .hero-title {
    font-size: 2.2rem; margin-top: 0px;
  }
  .hero-section p {
    font-size: 1.2rem;
  }

.info-card p {    font-size: 1.2rem;}

  /* 크리에이티브 섹션 */
  .creative-title {
    font-size: 2.2rem;
  }
  .creative-description {
    font-size: 1.2rem;
    white-space: normal;
  }
  

  
  .styled-image {
    width: 100%;
    height: 280px;
    display: block;
    object-fit: cover;
    object-position: left top;
}

  .edit-img {
    object-fit: none !important;
    object-position: -200px -80px;
}

  .jumjum {
    left: -30px;
    top: -15px;
    width: 30px;
  }

  /* 컨테이너 */
  .container-wrap {
    flex-direction: column;
    width: 100%; padding: 0px 20px;         box-sizing: border-box;
  }
  .left-container, .right-container {
    width: 100%;
  }

  /* 플로팅 메뉴 */
  .floating-box {
  display:none;
    width: 90%;
    margin: 0 auto;
    padding: 30px 20px;
    height: auto;
  }
  .floating-box h3 {
    font-size: 2rem;
  }
  .floating-box p {
    font-size: 1rem;
  }
  .service-button {
    font-size: 1rem;
    padding: 10px 20px;
  }
  .button-text {
    font-size: 1rem;
  }
  .arrow-right, .arrow-left {
    font-size: 1.2rem;
    padding: 6px 12px;
  }

  /* 텍스트 섹션 및 이미지 섹션 */
  .text-section {
   padding: 0rem 0px;
  }
  .section-text {
    width: 100%;
    font-size: 1.1rem;
  }
  .image-section {
    flex-direction: column;
    gap: 20px;
  }
  .image-wrapper {
    width: 100%;
    height: auto;
  }

  /* 정보 카드 섹션 */
  .info-card {
    width: 100%;
    height: auto;
    padding: 30px;
    font-size: 1rem;
  }
  
  .card-wrapper {
    display: flex;
    flex-direction: column;}
	
	
	.button-text-2 { font-weight: 400; margin: 0 0px;  transition: all 0.4s ease;
       color: #fff; border-radius: 4rem; padding: 20px 20px; font-size: 1.2rem;background: #000;}

 .service-button-2 { 
        /* 버튼의 패딩과 폰트 크기 조정 */
        padding: 10px 0px;
        font-size: 1rem; flex-direction: row;
        
        /* 버튼 너비를 화면에 맞춰 유연하게 조정 */
        width: 100%;
        justify-content: center;
        box-sizing: border-box;
    }

   .footer-content-wrapper {
        flex-direction: column; /* 세로로 정렬 */
        padding-left: 20px;
        padding-right: 20px;
    }

    .footer-left,
    .footer-center,
    .footer-right {
        flex-basis: 100%; /* 모든 섹션이 너비 100%를 차지 */
        max-width: 100%;
        margin-bottom: 30px; /* 섹션 간 간격 */
    }

    .footer-center {
        flex-direction: column; /* 링크 컬럼도 세로로 정렬 */
        gap: 20px;
    }

    .footer-left .footer-text-title {
        font-size: 1.1rem;
    }

    .newsletter-form {
        flex-direction: row; /* 입력 폼은 가로 정렬 유지 */
        max-width: 100%;
    }

    .email-input {
        width: 100%;
    }

    .subscribe-button {
        margin-left: 10px;
    }

    .footer-column h5 {
        font-size: 1rem;
    }

    .footer-column ul {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding-top: 20px;
    }
}