/* ============================================
   index.html 반응형
   - Tablet: max-width: 1199px (768px ~ 1199px)
   - Mobile: max-width: 767px
   ============================================ */

/* ---------- Tablet (768px ~ 1199px) ---------- */
@media (max-width: 1199px) {

    /* Hero Slider */
    #main-canvas-container {
        padding: 24px;
        min-height: calc(100vh - 80px - 48px);
        border-radius: 20px;
        overflow: hidden;
    }

    .hero-slider {
        min-height: calc(100vh - 80px - 48px);
        height: calc(100vh - 80px - 48px);
        border-radius: 20px;
        overflow: hidden;
    }

    .hero-slider__title {
        font-size: clamp(2.5rem, 8vw, 4.5rem);
    }

    .hero-slider__sub {
        font-size: clamp(1rem, 2.5vw, 1.25rem);
        margin-bottom: 1.5rem;
    }

    .hero-slider__btn {
        width: 120px;
        height: 120px;
        font-size: 0.9375rem;
    }

    .hero-slider__indicators {
        left: 1.25rem;
        bottom: 1.25rem;
    }

    .hero-slider__indicator {
        font-size: 0.8125rem;
        padding: 0 0 0 0.75rem;
        min-height: 25px;
        display: flex;
        align-items: center;
    }

    /* 태블릿 터치: 최소 44px */
    .hero-slider__arrow {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
    }

    .hero-slider__btn {
        padding: 0.75rem;
    }

    /* Promotion Section (Business & Solution) */
    .promo-section {
        overflow-x: hidden;
    }
    .promo-section__header {
        padding: clamp(3rem, 8vw, 5rem) 20px clamp(3rem, 6vw, 4rem);
    }

    .promo-section__title {
        font-size: clamp(1.75rem, 4vw, 3rem);
        margin-bottom: 1.5rem;
    }

    .promo-section__description {
        font-size: 1.125rem;
    }

    .promo-cards-container.promo-service-wrapper {
        padding: 0 clamp(20px, 4vw, 40px) clamp(2.5rem, 6vw, 4rem);
        gap: clamp(2.5rem, 5vw, 3.5rem);
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }

    .promo-service-contents {
        gap: clamp(2.5rem, 5vw, 3.5rem);
    }

    .promo-service-card {
        grid-template-columns: 1fr 1fr;
        min-height: 380px;
        width: 100%;
        min-width: 0;
    }

    .promo-service-card__left {
        padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem);
    }

    .promo-service-card__right {
        padding: clamp(1.25rem, 2.5vw, 2rem);
    }

    .promo-service-card__icon {
        width: 32px;
        height: 32px;
        margin-bottom: 1rem;
    }

    .promo-service-card__icon svg {
        width: 18px;
        height: 18px;
    }

    .promo-service-card__title {
        font-size: clamp(1.25rem, 2.5vw, 1.625rem);
        margin-bottom: 0.75rem;
    }

    .promo-service-card__subtitle {
        font-size: 1rem;
        margin-bottom: 1rem;
        padding-bottom: 1rem;
    }

    .promo-service-card__features {
        margin-bottom: 1.25rem;
    }

    .promo-service-card__features li {
        font-size: 0.9375rem;
        margin-bottom: 0.6rem;
        padding-left: 1.75rem;
        display: flex;
        align-items: center;
        min-height: 1.5em;
    }

    .promo-service-card__features li::before {
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }

    .promo-result-ui__label {
        font-size: 0.9375rem;
    }

    .promo-result-ui__status.promo-result-ui__status--normal,
    .promo-result-ui__status.promo-result-ui__status--complete,
    .promo-result-ui__status.promo-result-ui__status--active,
    .promo-result-ui__status.promo-result-ui__status--monitor,
    .promo-result-ui__status.promo-result-ui__status--check {
        font-size: 0.875rem;
        padding: 5px 12px;
    }

    .promo-result-ui__item {
        padding: 14px 16px;
        font-size: 0.875rem;
    }

    .promo-result-ui__title {
        font-size: 1.125rem;
    }

    .promo-result-ui__list {
        gap: 0.5rem;
    }

    .promo-animation-bar__text {
        font-size: 0.875rem;
    }

    /* Communication */
    .proto3-communication .communication-container {
        padding: 0 2rem;
        gap: 2.5rem;
    }

    .proto3-communication .btn-more {
        padding: 4px 10px;
        min-height: unset;
        font-size: 0.8125rem;
    }

    .proto3-communication {
        padding: 4rem 0;
    }

    /* Partner */
    .proto3-partner .partner-container {
        padding: 0 2rem;
    }

    .proto3-partner {
        padding: 3rem 0;
    }

    .partner-row {
        height: 4.5rem;
    }

    .partner-track {
        gap: 1.75rem;
    }

    .partner-logo {
        height: 3rem;
        padding: 8px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* Hubiz Excellence - 태블릿: 카드 세로 한 줄씩, 중앙 정렬 */
    #hubiz-excellence.hubiz-excellence {
        width: 100%;
        max-width: 100%;
        padding: 60px 32px;
    }

    .hubiz-excellence__wrap {
        flex-direction: row;
        align-items: flex-start;
        justify-content: center;
        width: 100%;
        max-width: 100%;
        gap: 2rem;
    }

    .hubiz-excellence__left.text-area {
        width: 38%;
        flex: 0 0 38%;
        padding-right: 1.5rem;
    }

    .hubiz-excellence__right.card-area {
        width: 62%;
        flex: 0 0 62%;
        flex-direction: column;
        align-items: center;
        gap: 1.25rem;
    }

    .hubiz-excellence__card {
        width: 100%;
        max-width: min(400px, 100%);
        min-width: 0;
        min-height: auto;
        flex-shrink: 0;
        align-self: center !important;
        margin-top: 0 !important;
    }

    .hubiz-excellence__card--1,
    .hubiz-excellence__card--2,
    .hubiz-excellence__card--3,
    .hubiz-excellence__card--4,
    .hubiz-excellence__card--5 {
        align-self: center !important;
    }

    .hubiz-excellence__card-title {
        font-size: 1.75rem;
    }

    /* Differentiation */
    .proto3-differentiation .differentiation-wrap {
        padding: 0 2rem;
        gap: 2rem;
    }

    .differentiation-paragraph {
        font-size: 0.9375rem;
    }

    /* Industry Solutions */
    .proto3-industry-solutions {
        padding: 80px 0 0;
    }

    .industry-solutions-header {
        padding: 60px 0 20px;
    }

    .industry-solutions-list li {
        top: 280px;
        height: 55vh;
        margin-bottom: 80px;
    }

    .industry-card {
        padding: 0 40px;
    }

    .industry-card__title {
        font-size: 2rem;
    }

    .industry-card__desc {
        font-size: 1.125rem;
    }

    /* Inquiry CTA */
    .inquiry-cta-section {
        padding: 80px 20px 100px;
    }

    .inquiry-cta__title {
        font-size: clamp(24px, 4vw, 48px);
        margin-bottom: 48px;
    }

    .inquiry-cta__btn {
        width: 150px;
        height: 150px;
        font-size: 1rem;
    }
}

/* ---------- Mobile (767px 이하) ---------- */
/* 타이포그래피: clamp(min, preferred, max) - 320px~768px 구간에서 유동적 크기 */
/* 터치 타겟: 최소 44x44px (Apple HIG) 확보 */
@media (max-width: 767px) {

    /* Hero Slider */
    #main-canvas-container {
        padding: 16px;
        min-height: calc(100vh - 80px - 32px);
        border-radius: 16px;
        overflow: hidden;
    }

    .hero-slider {
        min-height: calc(100vh - 80px - 32px);
        height: calc(100vh - 80px - 32px);
        cursor: default;
        border-radius: 16px;
        overflow: hidden;
    }

    .hero-slider__content-layer {
        padding: 1rem;
    }

    .hero-slider__slide {
        padding: 1rem;
        max-width: 100%;
    }

    .hero-slider__title {
        font-size: clamp(1.5rem, 6vw + 1rem, 2.25rem);
        margin-bottom: 0.75rem;
    }

    .hero-slider__sub {
        font-size: clamp(0.875rem, 2vw + 0.5rem, 1.0625rem);
        margin-bottom: 1.25rem;
    }

    .hero-slider__btns {
        gap: clamp(0.75rem, 2vw, 1.25rem);
    }

    /* 터치: 최소 44px 클릭 영역 */
    .hero-slider__btn {
        width: clamp(88px, 20vw, 110px);
        height: clamp(88px, 20vw, 110px);
        min-width: 88px;
        min-height: 88px;
        font-size: clamp(0.75rem, 2vw + 0.4rem, 0.9375rem);
        padding: min(1rem, 4vw);
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .hero-slider__indicators {
        left: 1rem;
        bottom: 1rem;
        gap: 0.35rem;
    }

    .hero-slider__indicator {
        font-size: clamp(0.6875rem, 1.5vw + 0.4rem, 0.8125rem);
        padding: 0 0 0 1rem;
        min-height: 25px;
        display: flex;
        align-items: center;
    }

    .hero-slider__indicator.is-active::after {
        left: -5px;
        width: 16px;
        height: 16px;
    }

    /* 터치: 화살표 최소 44px */
    .hero-slider__arrow {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        font-size: 1.25rem;
        padding: 0;
    }

    .hero-slider__arrow--prev {
        left: 0.5rem;
    }

    .hero-slider__arrow--next {
        right: 0.5rem;
    }

    .hero-slider__cursor {
        display: none !important;
    }

    /* Promotion Section - clamp 타이포 */
    .promo-section {
        overflow-x: hidden;
    }
    .promo-section__header {
        padding: clamp(2rem, 6vw, 2.5rem) 16px clamp(1.5rem, 4vw, 2rem);
    }

    .promo-section__title {
        font-size: clamp(1.375rem, 4vw + 0.8rem, 1.875rem);
        margin-bottom: clamp(0.75rem, 2vw, 1rem);
    }

    .promo-section__description {
        font-size: clamp(0.875rem, 2vw + 0.4rem, 1rem);
        line-height: 1.65;
    }

    .promo-section__description br {
        display: none;
    }

    .promo-cards-container.promo-service-wrapper {
        padding: 0 12px clamp(1.5rem, 4vw, 2rem);
        gap: clamp(1rem, 3vw, 1.5rem);
        max-width: 100%;
        box-sizing: border-box;
    }

    .promo-service-contents {
        gap: clamp(1rem, 3vw, 1.5rem);
    }

    .promo-service-card {
        grid-template-columns: 1fr;
        min-height: auto;
        max-height: none;
        padding: 1rem 0;
    }

    .promo-service-card__left {
        padding: clamp(1rem, 3vw, 1.25rem) clamp(0.75rem, 2vw, 1rem) 0.75rem;
        order: 1;
    }

    .promo-service-card__right {
        padding: 0.75rem clamp(0.75rem, 2vw, 1rem) clamp(1rem, 3vw, 1.25rem);
        order: 2;
    }

    .promo-service-card__icon {
        width: 24px;
        height: 24px;
        margin-bottom: 0.5rem;
    }

    .promo-service-card__icon svg {
        width: 14px;
        height: 14px;
    }

    .promo-service-card__title {
        font-size: clamp(1rem, 2.5vw + 0.5rem, 1.1875rem);
        margin-bottom: 0.35rem;
    }

    .promo-service-card__subtitle {
        font-size: clamp(0.8125rem, 1.5vw + 0.35rem, 0.875rem);
        margin-bottom: 0.5rem;
        padding-bottom: 0.5rem;
    }

    .promo-service-card__features {
        margin-bottom: 0.75rem;
    }

    .promo-service-card__features li {
        font-size: clamp(0.75rem, 1.5vw + 0.3rem, 0.8125rem);
        margin-bottom: 0.35rem;
        padding-left: 1.35rem;
        display: flex;
        align-items: center;
        min-height: 1.5em;
    }

    .promo-service-card__features li::before {
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }

    .promo-result-ui__label {
        font-size: clamp(0.75rem, 1.5vw + 0.3rem, 0.8125rem);
    }

    .promo-result-ui__status.promo-result-ui__status--normal,
    .promo-result-ui__status.promo-result-ui__status--complete,
    .promo-result-ui__status.promo-result-ui__status--active,
    .promo-result-ui__status.promo-result-ui__status--monitor,
    .promo-result-ui__status.promo-result-ui__status--check {
        font-size: clamp(0.6875rem, 1.5vw + 0.25rem, 0.75rem);
        padding: 3px 8px;
    }

    .promo-result-ui__item {
        padding: 8px 10px;
        font-size: clamp(0.6875rem, 1.5vw + 0.3rem, 0.8125rem);
    }

    .promo-result-ui__title {
        font-size: clamp(0.9375rem, 2vw + 0.4rem, 1rem);
        margin-bottom: 0.35rem;
    }

    .promo-animation-bar {
        font-size: clamp(0.6875rem, 1.5vw + 0.3rem, 0.8125rem);
    }

    /* Communication - 터치 영역 확보 */
    .proto3-communication .communication-container {
        padding: 0 1rem;
        gap: 1.5rem;
    }

    .proto3-communication {
        padding: 3rem 0;
    }

    .proto3-communication .section-title {
        font-size: clamp(1.375rem, 4vw + 0.6rem, 1.625rem);
    }

    .proto3-communication .section-description {
        font-size: clamp(0.875rem, 2vw + 0.4rem, 1rem);
    }

    /* 터치: communication-item 최소 44px 높이, padding 확대 */
    .communication-item {
        padding: clamp(1rem, 3vw, 1.25rem);
        min-height: 88px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.5rem 1rem;
    }

    .proto3-communication .btn-more {
        padding: 4px 10px;
        min-height: unset;
        font-size: 0.75rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .news-category {
        font-size: clamp(0.75rem, 1.5vw + 0.4rem, 0.875rem);
    }

    .news-title {
        font-size: clamp(0.875rem, 2vw + 0.5rem, 1rem);
    }

    .news-date {
        font-size: clamp(0.6875rem, 1.5vw + 0.3rem, 0.8125rem);
    }

    /* Partner */
    .proto3-partner .partner-container {
        padding: 0 1rem;
    }

    .proto3-partner {
        padding: 2.5rem 0;
    }

    .proto3-partner .section-title {
        font-size: clamp(1.375rem, 4vw + 0.6rem, 1.625rem);
    }

    .proto3-partner .section-description {
        font-size: clamp(0.875rem, 2vw + 0.4rem, 1rem);
    }

    .partner-row {
        height: 3.5rem;
        margin-bottom: 0.75rem;
    }

    .partner-track {
        gap: 1.25rem;
    }

    /* 터치: partner-logo 클릭 영역 확보 */
    .partner-logo {
        height: 2.25rem;
        padding: 10px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .partner-logo img {
        max-height: 2.25rem;
        object-fit: contain;
    }

    /* Hubiz Excellence - 모바일: 타이틀 위, 카드 세로 한 줄, 중앙배열·가득참 */
    #hubiz-excellence.hubiz-excellence {
        width: 100%;
        max-width: 100%;
        padding: clamp(2rem, 6vw, 2.5rem) 20px;
    }

    .hubiz-excellence__wrap {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        max-width: 100%;
    }

    .hubiz-excellence__left.text-area {
        width: 100%;
        padding: 0 0 1.5rem;
    }

    .hubiz-excellence__title {
        font-size: clamp(1.5rem, 4.5vw + 0.8rem, 1.875rem);
    }

    .hubiz-excellence__subtitle {
        font-size: clamp(0.9375rem, 2vw + 0.5rem, 1.0625rem);
    }

    .hubiz-excellence__right.card-area {
        width: 100%;
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        padding: 0;
    }

    .hubiz-excellence__card {
        width: 100%;
        max-width: 400px;
        min-height: auto;
        padding: clamp(1.25rem, 3vw, 1.5rem) clamp(1rem, 3vw, 1.25rem);
        margin-top: 0 !important;
    }

    .hubiz-excellence__card-desc {
        font-size: clamp(0.75rem, 1.5vw + 0.35rem, 0.875rem);
    }

    .hubiz-excellence__card-title {
        font-size: clamp(1.3125rem, 2.5vw + 0.7rem, 1.5rem);
    }

    .hubiz-excellence__thumb {
        max-width: 100px;
        height: 70px;
    }

    /* Differentiation */
    .proto3-differentiation {
        padding: 3rem 0 4rem;
    }

    .differentiation-wrap {
        padding: 0 1rem;
        gap: 1.5rem;
    }

    .differentiation-title {
        font-size: clamp(1.5rem, 4vw + 0.8rem, 1.75rem);
    }

    .differentiation-subtitle {
        font-size: clamp(0.875rem, 2vw + 0.4rem, 1rem);
    }

    .differentiation-paragraph {
        font-size: clamp(0.8125rem, 1.5vw + 0.4rem, 0.9375rem);
        line-height: 1.65;
    }

    .differentiation-cta {
        padding: 2rem 1rem 0;
    }

    .differentiation-cta .btn-more {
        padding: 11px 18px;
        min-height: 15px;
        font-size: clamp(0.875rem, 2vw + 0.4rem, 1rem);
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* Industry Solutions */
    .proto3-industry-solutions {
        padding: 2.5rem 0 3rem;
    }

    .industry-solutions-header {
        top: 60px;
        padding: 0 0 1rem;
    }

    .proto3-industry-solutions .section-title {
        font-size: clamp(1.375rem, 4vw + 0.6rem, 1.625rem);
    }

    .proto3-industry-solutions .section-description {
        font-size: clamp(0.8125rem, 1.5vw + 0.4rem, 0.9375rem);
    }

    .industry-solutions-list li {
        top: 120px;
        height: 50vh;
        margin-bottom: 2.5rem;
    }

    /* 터치: industry-card 전체가 링크, padding 확대 */
    .industry-card {
        padding: clamp(1rem, 4vw, 1.5rem);
        min-height: 200px;
    }

    .industry-card__icon svg {
        width: clamp(24px, 5vw, 32px);
        height: clamp(24px, 5vw, 32px);
    }

    .industry-card__title {
        font-size: clamp(1.125rem, 2.5vw + 0.6rem, 1.3125rem);
        margin-bottom: 0.5rem;
    }

    .industry-card__desc {
        font-size: clamp(0.8125rem, 1.5vw + 0.4rem, 0.9375rem);
        margin-bottom: 1rem;
    }

    .industry-card__btn {
        font-size: clamp(0.8125rem, 1.5vw + 0.4rem, 0.9375rem);
        padding: 10px 0;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* Inquiry CTA - 터치 영역 */
    .inquiry-cta-section {
        padding: 3rem 1rem 4rem;
        min-height: auto;
    }

    .inquiry-cta__title {
        font-size: clamp(1.25rem, 4vw + 0.8rem, 1.625rem);
        margin-bottom: 2rem;
        line-height: 1.5;
    }

    .inquiry-cta__btn {
        width: clamp(100px, 22vw, 130px);
        height: clamp(100px, 22vw, 130px);
        min-width: 100px;
        min-height: 100px;
        font-size: clamp(0.8125rem, 2vw + 0.4rem, 0.9375rem);
        padding: 1rem;
    }

    .inquiry-cta__btn-text {
        font-size: clamp(0.8125rem, 2vw + 0.4rem, 0.9375rem);
    }
}
