/* =========================================

   Contact Page (subpage/contact.html)

========================================= */

.contact-page,
.contact-page .contact-main {
    overflow-x: hidden;
    max-width: 100%;
}

/* fixed header 아래 KV 타이틀 여백 (component.css 헤더 높이와 동기) */
.contact-page {
    --contact-header-offset: calc(1rem + 3.25rem + 1rem);
}

/* =========================================

   Hero — KV 1920×758 + Card 1440×583 (별도 레이어)

========================================= */

.contact-hero {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin-bottom: min(18.4375rem, 42vw);
}



.contact-kv-section {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 20rem;
    height: clamp(20rem, 39.5vw, 47.375rem);
    max-height: none;
    overflow: hidden;
    box-sizing: border-box;
    padding-top: calc(var(--contact-header-offset) + 0.5rem);
    background-image: url('../images/contact-main.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}



.contact-kv-inner {

    position: relative;

    z-index: 1;

    box-sizing: border-box;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: calc(100% - var(--contact-header-offset) - 0.5rem);
    height: auto;
    padding-top: clamp(1.25rem, 8vw, 14.8125rem);
    padding-bottom: clamp(6rem, 20vw, 23.25rem);

    text-align: left;
}



.contact-kv-title {

    margin: 0;

    line-height: 1.2;

    color: #FFFFFF;

}



.contact-kv-desc {
    line-height: 1.5;
    color: #FFFFFF;
}



/* =========================================

   Card — outer 1440×583 #fff, inner 1196×323

========================================= */



.contact-card-wrap {
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 2;
    width: 100%;
    max-width: 90rem;
    padding-left: var(--page-gutter-x, 0);
    padding-right: var(--page-gutter-x, 0);
    box-sizing: border-box;
    transform: translate(-50%, 50%);
    pointer-events: none;
}



.contact-card-wrap .contact-card {

    pointer-events: auto;

}



.contact-card {
    width: 100%;
    max-width: 90rem;
    min-height: auto;
    height: auto;
    padding: clamp(2.5rem, 6vw, 8.125rem) clamp(1.5rem, 5vw, 7.625rem);

    background-color: #FFFFFF;

    border: none;

    box-shadow: inset 0 0 0 1px #848484;

    box-sizing: border-box;

}



.contact-card-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 74.75rem;
    height: auto;
    min-height: 0;
    margin: 0 auto;
    box-sizing: border-box;
}



.contact-brand-text {

    margin: 0;

    font-weight: 400;

    line-height: 1.5;

    color: #1E2022;

}



.contact-card-divider {
    flex-shrink: 0;
    display: block;
    width: 100%;
    max-width: 100%;
    height: 1px;
    min-height: 1px;
    margin: clamp(1.5rem, 4vw, 3.125rem) 0;

    padding: 0;

    border: none;

    background-color: #E5E5E5;

}



.contact-details-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(1.25rem, 8vw, 24.8125rem);
    row-gap: 2.5rem;
    align-items: start;
}



.contact-detail-col {

    min-width: 0;

}



.contact-detail-label {

    margin: 0 0 1.25rem;

    font-weight: 400;

    color: #A3A3A3;

}



.contact-detail-value {

    margin: 0;

    font-weight: 400;

    line-height: 1.5;

    color: #1E2022;

}



.contact-detail-value a {

    font-weight: 400;

    color: #1E2022;

    text-decoration: none;

}



.contact-detail-value a:hover {

    color: #D4734A;

}



@media screen and (max-width: 1024px) {
  /* 카드 absolute 겹침 해제 → FAQ가 카드에 가리지 않음 */
  .contact-hero {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
  }

  .contact-kv-section {
    min-height: 30rem;
    height: auto;
    max-height: none;
    padding-top: max(6.5rem, calc(var(--contact-header-offset) + 2rem));
    padding-bottom: 2.5rem;
  }

  .contact-kv-inner {
    min-height: 0;
    padding-top: 0;
    padding-bottom: 2rem;
  }

  .contact-card-wrap {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    width: 100%;
    max-width: 100%;
    margin-top: 0;
    padding-left: var(--page-gutter-x, 0);
    padding-right: var(--page-gutter-x, 0);
    box-sizing: border-box;
  }

  .contact-card {
    width: 100%;
    height: auto;
    min-height: auto;
    padding: 3.75rem 2.5rem;
  }

  .contact-card-inner {
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
  }

  .contact-card-divider {
    margin: 2.5rem 0;
  }

  .contact-details-row {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 2.5rem;
  }

  .contact-faq-section {
    margin-top: 2.5rem;
    padding-top: 5rem;
    position: relative;
    z-index: 3;
  }
}



@media screen and (max-width: 768px) {
  .contact-page {
    --contact-header-offset: calc(0.875rem + 3.25rem + 0.875rem);
  }

  .contact-kv-section {
    min-height: 26rem;
    padding-top: max(6.25rem, calc(var(--contact-header-offset) + 1.75rem));
    padding-bottom: 2rem;
  }

  .contact-kv-inner {
    padding-bottom: 1.5rem;
  }

  .contact-card {
    padding: 2.5rem 1.5rem;
  }

  .contact-card-divider {
    margin: 1.5rem 0;
  }

  .contact-details-row {
    gap: 2rem;
  }

  .contact-faq-section {
    margin-top: 2rem;
    padding-top: 3.75rem;
  }

  .contact-faq-trigger {
    gap: 1rem;
    padding: 1.25rem 0;
  }

  .contact-detail-label {
    margin-bottom: 0.625rem;
  }
}



/* =========================================

   FAQ Section — accordion

========================================= */



.contact-faq-section {

    margin-top: 0;

    padding-top: 8.125rem;

    padding-bottom: 8.125rem;

    background-color: #FFFFFF;

}



.contact-faq-title {
    margin: 0;
    line-height: 1.4;
    color: #1E2022;
}



.contact-faq-list {

    width: 100%;

}



.contact-faq-item {

    border-top: 1px solid transparent;

    border-bottom: 1px solid transparent;

    transition: border-color 0.35s ease;

}



.contact-faq-item.is-open {

    border-top-color: #1E2022;

    border-bottom-color: #1E2022;

}



.contact-faq-trigger {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1.5rem;

    width: 100%;

    margin: 0;

    padding: 2.5rem 0;

    font-weight: 400;

    line-height: 1.5;

    text-align: left;

    color: #1E2022;

    background: none;

    border: none;

    cursor: pointer;

}



.contact-faq-item.is-open .contact-faq-trigger {

    padding-bottom: 0;

}



.contact-faq-trigger:focus-visible {

    outline: 2px solid #D4734A;

    outline-offset: 2px;

}



.contact-faq-question {

    flex: 1;

    min-width: 0;

}



.contact-faq-icon-wrap {

    flex-shrink: 0;

    display: block;

    width: 25px;

    height: 15px;

}



.contact-faq-icon {

    display: block;

    width: 25px;

    height: 15px;

}



.contact-faq-icon--up {

    display: none;

}



.contact-faq-item.is-open .contact-faq-icon--down {

    display: none;

}



.contact-faq-item.is-open .contact-faq-icon--up {

    display: block;

}



.contact-faq-panel {

    display: grid;

    grid-template-rows: 0fr;

    transition: grid-template-rows 0.35s ease;

}



.contact-faq-item.is-open .contact-faq-panel {

    grid-template-rows: 1fr;

}



.contact-faq-panel-inner {

    overflow: hidden;

    min-height: 0;

}



.contact-faq-answer {

    padding: 1.25rem 0 2.5rem;

}



.contact-faq-answer-block {

    margin: 0;

    font-weight: 400;

    line-height: 1.5;

    color: #A3A3A3;

}



.contact-faq-answer-block + .contact-faq-answer-block {

    margin-top: 1.25rem;

}



@media screen and (max-width: 1024px) {

    .contact-faq-section {

        padding-top: 5rem;

        padding-bottom: 5rem;

    }



    .contact-faq-title {
        margin-bottom: 0;
    }



    .contact-faq-trigger {

        padding: 2rem 0;

    }

}



@media screen and (max-width: 768px) {

    .contact-faq-section {

        padding-top: 3.75rem;

        padding-bottom: 3.75rem;

    }



    .contact-faq-title {
        margin-bottom: 0;
    }



    .contact-faq-trigger {

        padding: 1.5rem 0;

    }



    .contact-faq-answer {

        padding-bottom: 1.5rem;

    }

}



@media (prefers-reduced-motion: reduce) {

    .contact-faq-item,
    .contact-faq-panel {

        transition: none;

    }

}



/* =========================================

   Inquiry Section — 제휴 문의 폼

========================================= */



.contact-inquiry-section {

    background-color: #FFFFFF;

}



.contact-inquiry-layout {

    align-items: flex-start;

    gap: 110px;

}



.contact-inquiry-info {

    flex: 0 0 424px;

    gap: 3.125rem;

}



.contact-inquiry-title {

    margin: 0;

    line-height: 1.3;

}



.contact-inquiry-title-line {

    display: inline-block;

}



.contact-inquiry-contact {

    gap: 1.25rem;

}



.contact-inquiry-email-row,

.contact-inquiry-phone-row {

    gap: 0.625rem;

}



.contact-inquiry-email-icon,

.contact-inquiry-phone-icon {

    flex-shrink: 0;

    display: block;

}



.contact-inquiry-email,

.contact-inquiry-phone {

    line-height: 1.5;

    color: #333446;

}



.contact-inquiry-form {

    flex: 0 0 783px;

    width: 783px;

    max-width: 100%;

    min-width: 0;

    gap: 20px;

}



.contact-inquiry-form-row {

    gap: 19px;

    width: 100%;

}



.contact-inquiry-field {

    flex-shrink: 0;

    width: 783px;

    max-width: 100%;

    height: 84px;

    gap: 10px;

    box-sizing: border-box;

}



.contact-inquiry-form-row .contact-inquiry-field--half {

    flex: none;

    min-width: 0;

}



.contact-inquiry-form-row .contact-inquiry-field--half:first-child {

    width: 370px;

}



.contact-inquiry-form-row .contact-inquiry-field--half:last-child {

    width: 394px;

}



.contact-inquiry-field:has(.contact-inquiry-textarea) {

    height: 232px;

}



.contact-inquiry-label {

    flex-shrink: 0;

    height: 20px;

    margin: 0;

    line-height: 20px;

    color: #4C4948;

}



.contact-inquiry-input,

.contact-inquiry-textarea,

.contact-inquiry-file-name {

    width: 100%;

    margin: 0;

    padding: 0 1rem;

    font-family: inherit;

    line-height: 1.5;

    color: #4C4948;

    background-color: #F6F6F6;

    border: none;

    border-radius: 5px;

    box-sizing: border-box;

}



.contact-inquiry-input {

    flex: 1;

    min-height: 0;

    height: 54px;

}



.contact-inquiry-input::placeholder,

.contact-inquiry-textarea::placeholder {

    line-height: 1.5;

    color: #A3A3A3;

    opacity: 1;

}



.contact-inquiry-input:focus,

.contact-inquiry-textarea:focus {

    outline: 2px solid #D4734A;

    outline-offset: 0;

}



.contact-inquiry-textarea {

    flex: 1;

    min-height: 0;

    height: 202px;

    padding: 0.875rem 1rem;

    resize: none;

}



.contact-inquiry-field:has(.contact-inquiry-file-row) {

    height: 84px;

}



.contact-inquiry-file-row {

    flex: 1;

    min-height: 0;

    gap: 20px;

    height: 54px;

}



.contact-inquiry-file-name {

    flex: 1;

    min-width: 0;

    height: 54px;

    min-height: 54px;

}



.contact-inquiry-file-btn {

    flex-shrink: 0;

    height: 54px;

    padding: 0 1.5rem;

    font-family: inherit;

    line-height: 1.5;

    color: #FFFFFF;

    background-color: #4C4948;

    border: none;

    border-radius: 20px;

    cursor: pointer;

}



.contact-inquiry-file-btn:focus-visible {

    outline: 2px solid #D4734A;

    outline-offset: 2px;

}



.contact-inquiry-agree-row {

    flex-shrink: 0;

    width: 319px;

    max-width: 100%;

    height: 26px;

    gap: 0.625rem;

}



.contact-inquiry-checkbox {

    flex-shrink: 0;

    width: 1.125rem;

    height: 1.125rem;

    margin: 0;

    accent-color: #D4734A;

}



.contact-inquiry-agree-label {

    line-height: 26px;

    color: #4C4948;

    cursor: pointer;

}



.contact-inquiry-submit {

    width: 100%;

    margin: 0;

    padding: 1.25rem 1.875rem;

    font-family: inherit;

    line-height: 1.5;

    color: #FFFFFF;

    border: none;

    border-radius: 1.25rem;

    cursor: pointer;

}



.contact-inquiry-submit:focus-visible {

    outline: 2px solid #1E2022;

    outline-offset: 2px;

}



@media screen and (max-width: 1024px) {

    .contact-inquiry-layout {

        flex-direction: column;

        gap: 2.5rem;

    }



    .contact-inquiry-info {

        flex: none;

        width: 100%;

        gap: 2rem;

    }



    .contact-inquiry-form {

        flex: none;

        width: 100%;

    }



    .contact-inquiry-form-row {

        gap: 20px;

    }



    .contact-inquiry-field,

    .contact-inquiry-form-row .contact-inquiry-field--half:first-child,

    .contact-inquiry-form-row .contact-inquiry-field--half:last-child {

        width: 100%;

    }

}



@media screen and (max-width: 768px) {

    .contact-inquiry-layout {

        gap: 2rem;

    }



    .contact-inquiry-info {

        gap: 1.5rem;

    }



    .contact-inquiry-form-row {

        flex-direction: column;

        gap: 20px;

    }



    .contact-inquiry-form-row .contact-inquiry-field--half:first-child,

    .contact-inquiry-form-row .contact-inquiry-field--half:last-child {

        width: 100%;

    }



    .contact-inquiry-field,

    .contact-inquiry-field:has(.contact-inquiry-textarea),

    .contact-inquiry-field:has(.contact-inquiry-file-row) {

        height: auto;

        min-height: 84px;

    }



    .contact-inquiry-field:has(.contact-inquiry-textarea) {

        min-height: 12rem;

    }



    .contact-inquiry-textarea {

        height: auto;

        min-height: 9rem;

    }



    .contact-inquiry-agree-row {

        width: 100%;

        height: auto;

        min-height: 26px;

    }



    .contact-page .footer-info-contact {

        flex-direction: column;

        align-items: flex-start;

        gap: 1.25rem;

    }

}



/* 소형 모바일 — font.css 402px 구간과 동기 */

@media screen and (max-width: 402px) {
  .contact-kv-section {
    min-height: 24rem;
    padding-top: max(6rem, calc(var(--contact-header-offset) + 1.5rem));
    padding-bottom: 1.5rem;
  }

  .contact-kv-inner {
    padding-bottom: 1.25rem;
  }

  .contact-card {
    padding: 2rem 1.25rem;
  }

  .contact-faq-section {
    margin-top: 1.5rem;
    padding-top: 3.75rem;
  }

  .contact-faq-trigger {
    gap: 1rem;
    padding: 1.25rem 0;
  }

  .contact-inquiry-layout {
    gap: 1.5rem;
  }

  .contact-inquiry-file-row {
    flex-wrap: wrap;
    height: auto;
    min-height: 54px;
  }

  .contact-inquiry-file-btn {
    width: 100%;
  }
}



/* =========================================

   Footer — Contact page only (.contact-page)

   font.css 클래스가 style.css 푸터 폰트보다 우선

========================================= */



.contact-page .footer .footer-logo,

.contact-page .footer .footer-policy,

.contact-page .footer .footer-policy p,

.contact-page .footer .footer-policy-link,

.contact-page .footer .footer-info-contact,

.contact-page .footer .footer-info,

.contact-page .footer .email {

    font-size: unset;

    font-weight: unset;

    line-height: unset;

}



/* =========================================
   Inquiry — startup-inquiry on contact page
   (startup.css 기본 + contact-page 반응형 오버라이드)
========================================= */

.contact-page .startup-inquiry-section {
    overflow: hidden;
}

.contact-page .startup-inquiry-layout {
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    gap: 2.5rem;
}

@media screen and (min-width: 1025px) {
    .contact-page .startup-inquiry-layout {
        gap: 5rem;
    }
}

.contact-page .startup-inquiry-info,
.contact-page .startup-inquiry-contact {
    gap: 1.25rem;
}

.contact-page .startup-inquiry-email,
.contact-page .startup-inquiry-phone {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.contact-page .startup-inquiry-info {
    flex: 4 1 0;
    min-width: 0;
    max-width: 100%;
    text-align: left;
}

.contact-page .startup-inquiry-title {
    width: 100%;
    max-width: 100%;
    margin: 0;
    line-height: 1.25;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.contact-page .startup-inquiry-title-line {
    white-space: normal;
}

.contact-page .startup-inquiry-form {
    flex: 6.5 1 0;
    box-sizing: border-box;
    width: 100%;
    max-width: 49rem;
    min-width: 0;
    gap: 1.25rem;
}

.contact-page .startup-inquiry-field + .startup-inquiry-field,
.contact-page .startup-inquiry-form-row + .startup-inquiry-field {
    margin-top: 0;
}

.contact-page .startup-inquiry-form-row > .startup-inquiry-field + .startup-inquiry-field {
    margin-top: 0;
}

.contact-page .startup-inquiry-form-row {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    width: 100%;
    min-width: 0;
}

.contact-page .startup-inquiry-field--half {
    flex: 1 1 0;
    min-width: 0;
}

.contact-page .startup-inquiry-input,
.contact-page .startup-inquiry-textarea,
.contact-page .startup-inquiry-file-name {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.contact-page .startup-inquiry-file-row {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.contact-page .startup-inquiry-submit {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
}

.contact-page .startup-inquiry-input::placeholder,
.contact-page .startup-inquiry-textarea::placeholder {
    color: rgba(0, 0, 0, 0.5);
    opacity: 1;
}

.contact-page .startup-inquiry-file-name:not(.has-file) {
    opacity: 0.5;
}

@media screen and (max-width: 1024px) {
    .contact-page .startup-inquiry-layout {
        flex-direction: column;
        gap: 2.5rem;
    }

    .contact-page .startup-inquiry-info,
    .contact-page .startup-inquiry-form {
        flex: none;
        width: 100%;
        max-width: 100%;
    }

    .contact-page .startup-inquiry-form-row {
        gap: 1.25rem;
    }

    .contact-faq-trigger {
        gap: 1rem;
    }

    .contact-faq-question {
        word-break: keep-all;
        overflow-wrap: break-word;
    }
}

@media screen and (max-width: 768px) {
    .contact-page .startup-inquiry-layout {
        gap: 2rem;
    }

    .contact-page .startup-inquiry-form-row {
        flex-direction: column;
        gap: 1.25rem;
    }

    .contact-page .startup-inquiry-form-row > .startup-inquiry-field--half {
        flex: none;
        width: 100%;
    }

    .contact-page .startup-inquiry-file-row {
        flex-direction: column;
        align-items: stretch;
        gap: 0.625rem;
    }

    .contact-page .startup-inquiry-file-btn {
        width: 100%;
        max-width: 100%;
    }

    .contact-page .startup-inquiry-agree-row {
        align-items: flex-start;
    }

    .contact-page .startup-inquiry-agree-label {
        line-height: 1.5;
    }

    .contact-faq-trigger {
        align-items: flex-start;
        padding: 1.25rem 0;
    }

    .contact-faq-icon-wrap {
        margin-top: 0.25rem;
    }
}

@media screen and (max-width: 402px) {
    .contact-page .startup-inquiry-layout {
        gap: 1.5rem;
    }

    .contact-hero {
        margin-bottom: 3.5rem;
    }
}
