/**
 * Content
 */

body {
	background-color: #fff;
	color: #000;
}

a:active {
	opacity: 0.85;
}

.page a.active {
	opacity: .4;
}

i,
em {
	font-style: italic;
}

b,
strong {
	font-weight: bolder;
}

sub,
sup {
	position: relative;
	vertical-align: baseline;
}

sub {
	top: 0.3em;
}

sup {
	top: -0.4em;
}

s {
	text-decoration: line-through;
}

img {
	border: 0;
	padding: 0;
}

ul,
ol {
	margin: 0;
	padding: 0 0 0 1em;
}

blockquote {
	margin: 0;
	padding: 0 0 0 2em;
}

hr {
	background: rgba(255, 255, 255, 0.9);
	border: 0;
	height: 1px;
	display: block;
}

.content img {
	float: none;
	margin-bottom: 1em;
}

.gallery_image_caption {
    margin-top: 1.2rem;
    margin-bottom: 0.5rem;
    font-size: 1.3rem;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.35);
	font-family: "Plex Mono", Icons;
	font-style: normal;
	line-height: 1.3;
}

/**
 * Loading Animation
 */

.loading[data-loading] {
	position: fixed;
	bottom: 8px; 
    left: 8px;
}

/**
 * Editor styles
 */

[data-predefined-style="true"] bodycopy {
	font-size: 1rem;
	font-weight: 450;
	color: #fffced;
	font-family: "Diatype Variable", Icons;
	font-style: normal;
	line-height: 1.1;
	font-variation-settings: 'slnt' 0, 'MONO' 0;
}

[data-predefined-style="true"] bodycopy a {
	color: rgba(255, 255, 255, 0.5);
	padding-bottom: 0.1em;
	border-bottom: 0.07em solid rgba(255, 255, 255, 0.3);
	text-decoration: none;
}

[data-predefined-style="true"] bodycopy a:hover {

}

bodycopy a.image-link,
bodycopy a.icon-link,
bodycopy a.image-link:hover,
bodycopy a.icon-link:hover {
	border-bottom: 0;
	padding-bottom: 0;
}

[data-predefined-style="true"] h1 {
	font-family: "DM Sans", Icons;
	font-style: normal;
	font-weight: 700;
	padding: 0;
	margin: 0;
	font-size: 1rem;
	line-height: 1.1;
	color: #fffced;
	}

[data-predefined-style="true"] h1 a {
	color: rgba(255, 255, 255, 0.95);
}

[data-predefined-style="true"] h2 {
	font-family: "Optician Sans", Icons;
	padding: 0;
	margin: 0;
	color: #fffced;
	font-size: 3rem;
	line-height: 1.2;
	font-style: normal;
	font-weight: 400;
	}

[data-predefined-style="true"] h2 a {
	color: rgba(255, 255, 255, 0.95);
}

[data-predefined-style="true"] small {
	display: inline-block;
	font-size: 1rem;
	line-height: 1.3;
	font-family: "DM Sans", Icons;
	font-style: normal;
	font-weight: 400;
	color: #fffced;
}

[data-predefined-style="true"] small a {
	color: rgba(255, 255, 255, 0.5);
	border-bottom-width: 0em;
}

/**
 * Breakpoints
 */


[data-css-preset] .page {
    background-color: initial /*!page_bgcolor*/;
}

.mobile .page,
[data-css-preset].mobile .page {
	position: relative;
	min-height: 10px;
	max-width: 100%;
	width: 100%;
	background-color: transparent /*!page_bgcolor*/;
}

[data-css-preset] .container {
	margin-left: auto /*!content_center*/;
	margin-right: auto /*!content_center*/;
	text-align: center /*!text_center*/;
}

[data-css-preset] body {
	background-color: #369 /*!body_bgcolor*/;
}

[data-css-preset] .container_width {
	width: 91%/*!content_center*/;
}

[data-css-preset] .content_padding {
	padding-top: 0rem /*!main_margin*/;
	padding-bottom: 0rem /*!main_margin*/;
	padding-left: 0rem /*!main_margin*/;
	padding-right: 0rem /*!main_margin*/;
}


[data-css-preset] text-limit {
	display: inline-block /*!text_width*/;
	max-width: 66rem/*!text_width*/;
}

/**
 * Thumbnails
 */

div[thumbnails] {
	justify-content: flex-start;
}

[data-css-preset] .thumbnails {
   	background-color: rgba(0, 0, 0, 0)/*!thumbnails_bgcolor*/;   
}

[data-css-preset] .thumbnails_width {
    width: 90%/*!thumbnails_width*/;
}

[data-css-preset] [thumbnails-pad] {
    padding: 0.25rem/*!thumbnails_padding*/;
}

[data-css-preset] [thumbnails-gutter] {
    margin: -0.5rem/*!thumbnails_padding*/;
}

[data-css-preset] [responsive-layout] [thumbnails-pad] {
    padding: 0.5rem/*!responsive_thumbnails_padding*/; 
}

[data-css-preset] [responsive-layout] [thumbnails-gutter] {
    margin: -1rem/*!responsive_thumbnails_padding*/; 
}

.thumbnails .thumb_image {
	outline: 0px solid rgba(0,0,0,.12);
    outline-offset: -1px;
}

.thumbnails .title {
    margin-top: 1.2rem;
    margin-bottom: 0.8rem;
    font-size: 1.3rem;
	font-weight: normal;
	color: rgba(255, 255, 255, 0.5);
	font-family: "Plex Mono", Icons;
	font-style: normal;
	line-height: 1;
}

.thumbnails .tags {
    margin-top: 1.3rem;
    margin-bottom: 0.5rem;
    font-size: 1.3rem;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.35);
	font-family: "Plex Mono", Icons;
	font-style: normal;
	line-height: 1;
}

.thumbnails .tags a {
	border-bottom: 0;
    color: rgba(255, 255, 255, 0.4);
    text-decoration: none;
}

.thumbnails .has_title .tags {
	margin-top: 0rem;
}

/**
 * Site Menu
 */

[data-css-preset] #site_menu_button {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1;
    font-size: 28px /*!site_menu_button*/;
    padding: 6px;
    line-height: 1;
    background: rgba(126, 117, 251, 0);
    position: fixed;
	top: 1.6rem /*!site_menu_button*/;
	right: 1.6rem /*!site_menu_button*/;
}

body.mobile #site_menu_button {
	margin: -6px;
    font-size: 34px;
}

#site_menu_button.custom_icon {
	width: 40px;
    height: auto;
}

#site_menu_button.active {
	display: none;
}

/**
 * Site Menu
 */

#site_menu {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons;
	background: rgba(10, 57, 104, 0.78);
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	padding: 40px 35px 90px 30px;
	max-width: 400px;
	min-width: 300px;
	text-align: right;
	display: flex;
	justify-content: flex-start;
}

body.mobile #site_menu {
	width: 100%;
}

#site_menu .page-link a {
	color: rgba(253, 245, 215, 1);
}

#site_menu .set-link > a {
	color: rgba(253, 245, 215, 1);
	font-weight: bold;
}

#site_menu a:active {
	opacity: .5;
}

#site_menu a.active {
	opacity: .4;
}

#site_menu .close {
	display: none;
	color: rgba(253, 245, 215, 1);
	line-height: .85em;
	font-size: 45px;
}

body.mobile #site_menu .close {
	display: block;
	font-size: 50px;
	line-height: 1em;
}

#site_menu .break {
	height: 28px;
}

#site_menu .indent {
	margin-left: 28px;
}

/*
 * Shop Button
 */

[data-css-preset] #shop_button {
	color: rgba(255, 255, 255, 0.8);
    background: transparent;
	font-size: 32px;
    font-style: normal;
	font-weight: 400;
    line-height: 1;
    position: fixed;
	padding: 6px;
	top: 2rem /*!shop_button*/;
	right: 2rem /*!shop_button*/;
}

#shop_button.text {
    font-family: "Plex Sans", Icons;
	font-size: 1.5rem;
    padding: 0;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.8);
	font-style: normal;
}

#shop_button.custom_icon {
	width: 40px;
    height: auto;
}

body.mobile #shop_button:not(.text) {
	margin: -6px;
    font-size: 36px;
}

/*
 * Shop Product Widget
 */

.shop_product {
    width: 100%;
	max-width: 22rem;
    position: relative;
    display: block;
}

.shop_product .price {
	font-family: "Plex Mono", Icons;
	font-size: 1.8rem;
	line-height: 1;
	color: rgba(255, 255, 255, 0.5);
    display: block;
    margin-bottom: 1rem;
	font-style: normal;
	font-weight: 400;
}

.shop_product .dropdown {
    font-family: "Plex Mono", Icons;
    font-size: 1.3rem;
    display: inline-block;
	width: 100%;
    border: 1px solid rgba(255,255,255,0.4);
    background:  white url(https://static.cargo.site/assets/images/select-arrows.svg) no-repeat right;
    margin-bottom: 1rem;
    line-height: 1.2;
    padding: .7rem 1rem;
	font-style: normal;
	font-weight: 400;
}

.shop_product .button {
    font-family: "Plex Mono", Icons;
	font-size: 1.3rem;
    background: rgba(255, 255, 255, 0.25);
    color: rgba(255,255,255,1);
    flex: 0 0 50%;
    text-align: left;
    display: inline-block;
	line-height: 1;
    padding: .8rem 1rem .9rem;
	font-style: normal;
	font-weight: 400;
}

/*
 * Image Zoom
 */

.content img.image-zoom:active {
  opacity: .7;
}

/**
 * Quick View
 */

[data-css-preset] .quick-view {
    padding-top: 2.5rem /*!quick_view_padding*/;
    padding-bottom: 2.5rem /*!quick_view_padding*/;
    padding-left: 2.5rem /*!quick_view_padding*/;
    padding-right: 2.5rem /*!quick_view_padding*/;
    height: 100% /*!quick_view_height*/;
    width: 100% /*!quick_view_width*/;
}

body.mobile .quick-view {
    width: 100%;
    height: 100%;
    margin: 0;
}


[data-css-preset] .quick-view-background {
	background: rgba(0, 0, 0, 0.95) /*!quick_view_bgcolor*/;
}

.quick-view-caption {
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;
    transition: 100ms opacity ease-in-out;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 2rem 0;
    text-align: center;
    font-size: 1.8rem;
}

.quick-view-caption span {
    padding: 0.5rem 1rem;
    display: inline-block;
    background: rgba(0,0,0,0.4);
    color: white;
}


/**
 * Quick View Navigation 
 */

.quick-view-navigation .left-arrow {
    left: 10px;
}

.quick-view-navigation .right-arrow {
    right: 10px;
}

.quick-view-navigation .left-arrow,
.quick-view-navigation .right-arrow {
    /* Change height/width together to scale */
    height: 36px;
    width: 36px;
}

.quick-view-navigation .left-arrow .inner-color,
.quick-view-navigation .right-arrow .inner-color {
    stroke: #fff;
    stroke-width: 1.5px;
}

.quick-view-navigation .left-arrow .outer-color,
.quick-view-navigation .right-arrow .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}

.quick-view-navigation .close-button {  
    top: 10px;
    right: 10px;
    /* Change height/width together to scale */
    width: 36px;
    height: 36px;
}

.quick-view-navigation .close-button .inner-color {
    stroke: #fff;
    stroke-width: 1.5px;
}

.quick-view-navigation .close-button .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}

/** 
 * Image Gallery Navigation Arrows 
 */
 
.image-gallery-navigation .left-arrow,
.image-gallery-navigation .right-arrow {
    /* Change height/width together to scale */
    height: 36px;
    width: 36px;
}

.image-gallery-navigation .left-arrow .inner-color,
.image-gallery-navigation .right-arrow .inner-color {
    stroke: #fff;
    stroke-width: 1.5px;
}

.image-gallery-navigation .left-arrow .outer-color,
.image-gallery-navigation .right-arrow .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}

/**
 * Wallpaper Backdrop Navigation Arrows 
 */

.wallpaper-navigation .left-arrow,
.wallpaper-navigation .right-arrow {
   /* Change height/width together to scale */
   width: 36px;
   height: 36px;
}

.wallpaper-navigation .left-arrow .inner-color,
.wallpaper-navigation .right-arrow .inner-color {
   stroke: #fff;
    stroke-width: 1.5px;
}

.wallpaper-navigation .left-arrow .outer-color,
.wallpaper-navigation .right-arrow .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}


/**
 * Feed
 */

.feed .content_container .page {
    border-top: 0px dashed rgba(0, 0, 0, 0.2);
}

.feed .content_container .page_container:first-child .page {
	border-top: 0;
}



/*
 * Audio Player
 */

.audio-player {
    max-width: 36rem;
    height: 3.3rem;
    outline: 1px solid rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.6);
    background: rgba(0, 0, 0, 0.4);
    font-size: 1.2rem;
    line-height: 1.3;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons;
    font-style: normal;
    font-weight: 400;
    text-align: left;
    margin: 1px 1px 1em 1px;
}

body.mobile .audio-player {
    max-width: 100%;
}

.audio-player .separator {
    width: 1px;
    background-color: rgba(255, 255, 255, 0.2);
}

.audio-player .button {
    background: transparent;
    cursor: pointer;
    fill: rgba(255, 255, 255, 0.85);
}

.audio-player .icon {
    fill: rgba(255, 255, 255, 0.85);
    padding: 30%;
    width: 100%;
    margin: auto;
}

.audio-player .buffer {
    background: rgba(255, 255, 255, 0.1);
}

.audio-player .progress {
    background: rgba(255, 255, 255, 0.15);
}

.audio-player .progress-indicator {
    border: 1px solid rgba(255, 255, 255, 0.7);
    width: 1px;
    height: 100%;
    right: 0;
    position: absolute;
    cursor: ew-resize;
}

.audio-player .note-icon {
    height: 100%;
    width: 3.8rem;
    padding: 1rem;
    fill: rgba(255, 255, 255, 0.6);
}

.audio-player .current-time {
    padding-left: 1rem;
}

.audio-player .total-time {
    padding-right: 1rem;
}


/* 코드 추가*/
.project-info-container {
    max-width: 100%;
    margin-top: 7px; /* 이미지와 간격 */
    color: #fffced; /* 글자색 (배경이 파랑이라 흰색 추천) */
    font-family: inherit; /* 폰트 (Cargo 설정 따라가려면 inherit) */
  }

  /* 제목과 연도 */
  .project-header {
    display: flex;
    justify-content: space-between; /* 양끝 정렬 (제목-링크) */
    align-items: baseline;
    margin-bottom: 100px; /* 제목과 아래 크레딧 사이 간격 */
    border-bottom: 1px solid rgba(255,255,255,0.0); /* 필요하면 밑줄 추가 */
  }
  .project-title {
    font-size: 24px;
    font-weight: bold;
    line-height : 1.5;
  }
  .project-year {
    display: block;
    margin-top: 1px;
    font-size: 20px;
    opacity: 0.8;
    text-align: left;
    font-style: italic;
  }
  .link-icon {
    font-size: 20px;
    text-decoration: none;
    color: white;
  }

  /* 4단 그리드 (핵심) */
  .credits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4개 기둥을 똑같이 나눔 */
    gap: 20px; /* 칸 사이 간격 */
    text-align: center;
  }

  /* 모바일에서는 2단으로 바뀌도록 (반응형) */
  @media (max-width: 768px) {
    .credits-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 30px;
    }
  }

  /* 크레딧 텍스트 스타일 */
  .credit-item h4 {
    font-size: 14px;
    opacity: 0.7;
    margin: 0 0 8px 0;
    font-weight: normal;
    text-align : center;
    line-height: 1.1;
  }
  .credit-item p {
    font-size: 16px;
    font-weight: bold;
    margin: 0;
    text-align : center;
  }
  
  /* 두번째 줄 간격 */
  .row-gap {
      margin-top: 30px;
  }

/* 모바일(태블릿 포함) 화면에서만 적용되는 설정 */
@media (max-width: 768px) {
  .project-info-container {
    padding-left: 20px;   /* 왼쪽 여백 */
    padding-right: 20px;  /* 오른쪽 여백 */
    box-sizing: border-box; /* 여백을 줘도 가로 스크롤이 생기지 않게 함 */
  }
}



/* 화면 크기 계산 안 함. 그냥 무조건 2000px로 고정 */
.tab-content iframe {
    width: 100% !important;
    
    /* 2000px: 웬만한 긴 폼도 다 들어가는 넉넉한 높이 */
    /* 여백이 남아도 투명 배경이라 티 안 남 */
    height: 2000px !important; 
    
    border: none;
    display: block;
}

/* 탭 박스도 덩달아 길어지게 설정 */
.tab-content {
    height: auto !important;
    overflow: visible !important;
}


/* ========================================= */
/* [About 페이지 전용 스타일] */
/* ========================================= */

/* 전체 컨테이너: 너비 제한 및 중앙 정렬 */
.about-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px;
    color: white; /* 텍스트 흰색 */
    font-family: sans-serif; /* 폰트 설정 */
}

/* 링크 스타일 */
.about-container a {
    color: white;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.5);
}

/* 1. 인트로 섹션 */
.intro-section {
    text-align: center;
    margin-bottom: 100px;
}
.intro-title {
    font-size: 14px;
    margin-bottom: 40px;
    opacity: 0.8;
}
.intro-content {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
}
.intro-text {
    text-align: left;
    font-size: 16px;
    line-height: 1.6;
}

/* 2. 팀원 그리드 (3단) */
.team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3칸 */
    gap: 60px 40px; /* 세로간격 60, 가로간격 40 */
    margin-bottom: 150px;
}
.team-member {
    text-align: center;
}
.member-photo {
    width: 100%;
    max-width: 250px; /* 사진 최대 크기 제한 */
    aspect-ratio: 1 / 1; /* 세로형 비율 고정 */
    object-fit: cover;
    margin-bottom: 20px;
    background-color: #ccc; /* 사진 없을 때 회색 */
}
.member-info h3 {
    font-size: 18px;
    margin: 0 0 10px 0;
}
.member-info .role {
    font-size: 13px;
    line-height: 1.4;
    opacity: 0.8;
}

/* 섹션 공통 타이틀 (Online, Office, Partners) */
.section-wrapper {
    margin-bottom: 120px;
}
.section-label {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 50px !important;
    border-top: 1px solid rgba(255,255,255,0.3); /* 구분선 */
    padding-top: 50px !important;
}

/* 3. Online 그리드 (3단) */
.online-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.online-item {
    display: flex;
    align-items: center;
    gap: 15px;
}
.icon-box {
    width: 40px;
    height: 40px;
    border: 1px solid white;
    border-radius: 50%; /* 원형 테두리 */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
}

/* 4. Office 그리드 (좌측 정보 / 우측 지도) */
.office-grid {
    display: grid;
    grid-template-columns: 1fr 2fr; /* 왼쪽 1 : 오른쪽 2 비율 */
    gap: 40px;
    align-items: start;
}
.address-box {
    display: flex;
    gap: 15px;
}
.map-box {
    width: 100%;
    height: 400px; /* 지도 높이 */
    background: #eee;
}
.map-box iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* 5. Partners 그리드 (4단) */
.partners-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    text-align: center;
}
.partner-logo {
    padding: 20px;
    font-size: 12px;
    opacity: 0.7;
    /* 로고 이미지 넣으면 아래 코드 삭제 */
    border: 1px dashed rgba(255,255,255,0.3); 
}

/* [모바일 반응형] 화면 작을 때 1단으로 변경 */
@media (max-width: 768px) {
    .team-grid, 
    .online-grid, 
    .office-grid, 
    .partners-grid {
        grid-template-columns: 1fr !important; /* 무조건 한 줄로 */
        gap: 40px;
    }
    .intro-content {
        flex-direction: column; /* 세로 정렬 */
    }
    .map-box {
        height: 300px;
    }
}

/* ========================================= */
/* [수정] 구글 지도 반응형으로 완벽하게 넣기 */
/* ========================================= */

/* 지도 감싸는 상자 (비율 고정) */
.map-box {
    position: relative;
    width: 100%;
    /* 높이를 0으로 하고 패딩으로 비율을 만듭니다 (16:9 비율 예시) */
    height: 0;
    padding-bottom: 56.25%; /* 지도가 너무 납작하면 이 숫자를 70%~100%로 늘리세요 */
    background: #eee;
    overflow: hidden; /* 튀어나오는 부분 자르기 */
}

/* 지도 알맹이 (상자에 꽉 차게 강제) */
.map-box iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}

/* 파트너 그리드 틀 */
.partner-grid {
    display: grid;
    /* 한 줄에 4개 배치 */
    grid-template-columns: repeat(4, 1fr); 
    gap: 40px; /* 로고 사이 간격 */
    
    width: 100%;
    margin-top: 30px;
    align-items: center; /* 세로 중앙 정렬 */
}

/* 개별 로고 박스 */
.partner-item {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100px; /* 로고가 들어갈 높이 확보 */
}

/* 로고 이미지 스타일 */
.partner-item img {
    max-width: 100%;
    max-height: 80px; /* 로고가 너무 커지지 않게 제한 */
    width: auto;      /* 비율 유지 */
    height: auto;
    object-fit: contain; /* 찌그러지지 않고 원본 비율대로 쏙 들어감 */
    
    /* (선택) 흑백으로 보이다가 마우스 올리면 컬러로? */
    /* filter: grayscale(100%); */
    /* transition: filter 0.3s; */
}

/* (선택) 마우스 올렸을 때 효과 */
.partner-item img:hover {
    /* filter: grayscale(0%); */
    opacity: 0.7;
}

/* 모바일: 2개씩 보이게 변경 */
@media (max-width: 768px) {
    .partner-grid {
        grid-template-columns: repeat(2, 1fr); /* 모바일은 2열 */
        gap: 20px;
    }
    .partner-item img {
        max-height: 60px; /* 모바일은 로고 좀 작게 */
    }
}



/* ========================================= */
/* [전체] 사이트 내 모든 글자색 강제 변경 */
/* ========================================= */

/* 본문, 제목, 링크, div 등 모든 요소의 글자색 지정 */
body, p, h1, h2, h3, h4, span, div, a, li {
    color: #fffced !important;
}

/* (선택사항) 링크에 마우스 올렸을 때 색상은 다르게 하고 싶다면? */
/* a:hover { color: #ffffff !important; } */