@charset "UTF-8";

@media all and (max-width: 1400px) {
    .kakao-chat-link {
        margin-left:0;
        left: unset;
        bottom:32px;
        right:32px;
    }
}
@media all and (max-width: 1240px) {
    .main-sec .title {
        font-size: 48px;
    }

    .intro-sec .title-wrap .title {
        font-size:40px;
    }

    .information-sec {
        padding-top:150px;
        padding-bottom:240px;
    }
    .information-sec .inner-con {
        gap:36px;
    }
    .information-sec .inner-con .info-wrap .title {
        font-size:40px;
    }
    .information-sec .inner-con .phone-display {
        max-width: 450px;
    }
    .information-sec .inner-con.ic2 {
        gap:36px;
        margin:-120px auto 0;
    }
    .information-sec .inner-con.ic2 .info-wrap {
        padding-top:200px;
    }

    .emphasis-sec .title {
        font-size:40px;
    }

    .service-sec .title {
        font-size:40px;
    }

    .service-location-sec .title {
        font-size:40px;
    }

    .service-policy-sec .title {
        font-size:40px;
    }
}

@media all and (max-width: 1023px) {
    .main-sec .title {
        font-size:44px;
    }

    .intro-sec .title-wrap .title {
        font-size:34px;
    }
    .intro-sec .bubble-wrap .item.txt {
        padding:48px 36px 30px 36px;
    }

    .information-sec .cont-wrap {
        padding:40px 0;
    }
    .information-sec .inner-con {
        gap:20px;
    }
    .information-sec .inner-con .phone-display {
        max-width: 45%;
    }
    .information-sec .inner-con .info-wrap {
        padding:40px 0 0 0;
    }
    .information-sec .inner-con .info-wrap .title {
        margin:24px auto 48px;
        font-size:34px;
    }
    .information-sec .inner-con .info-wrap .sub-txt {
        font-size:15px;
    }
    .information-sec .inner-con.ic2 {
        margin:-36px auto 0;
    }
    .information-sec .inner-con.ic2 .info-wrap {
        padding-top:100px;
    }

    .emphasis-sec .title {
        font-size:34px;
    }
    .emphasis-sec .content .bubble-txt {
        margin:0 auto;
        width:720px;
        max-width:100%;
    }

    .service-sec .title {
        font-size:34px;
    }
    .service-sec .service-wrap {
        gap:40px 20px;
    }
    .service-sec .service-wrap .img-wrap {
        width:196px;
    }
    .service-sec .service-wrap .txt {
        margin:16px auto 0;
        font-size:14px;
    }

    .service-location-sec .title {
        font-size:34px;
    }
    .service-location-sec .service-location-wrap .item {
        padding:0 8px 0 0;
    }
    .service-location-sec .service-location-wrap .txt {
        font-size:14px;
    }

    .service-policy-sec .title {
        font-size:34px;
    }
    .service-policy-sec .reservation-btn {
        width:280px;
        height:58px;
        font-size:21px;
    }

    .kakao-chat-link {
        bottom:32px;
        right:32px;
    }
}

@media all and (max-width: 640px) {
    .sec {
        padding:0;
    }
    .sec .cont-wrap {
        padding:0 4.65vw;
    }

    .main-sec {
        background: url('../img/page/main/main-sec-bg.jpg') no-repeat center left -35vw;
        background-size: cover;
    }
    .main-sec .cont-wrap {
        display: flex;
        align-items: center;
        height: 100%;
        min-height: 100vh;
    }
    /* iOS only */
    @supports (-webkit-touch-callout: none) {
        .main-sec {
            min-height: -webkit-fill-available;
        }
        .main-sec .cont-wrap {
            min-height: -webkit-fill-available;
        }
    }
    .main-sec .cont-wrap .center-content {
        min-height: calc(100vh - 19.5vw);
    }
    .main-sec .title {
        font-size:7.65vw;
    }
    .main-sec .sub-txt {
        margin:26.5vw auto 23vw;
        line-height: 1.6;
        font-size:4.25vw;
        font-weight: bold;
        text-shadow:0px 0px 8px rgba(255,255,255,0.9);
    }
    .main-sec .app-link-wrap {
        gap:2.8vw;
    }
    .main-sec .app-link-wrap .item {
        flex-basis: 37.5vw;
    }

    .intro-sec {
        padding-top:17vw;
    }
    .intro-sec .title-wrap .app-logo {
        width:15.8vw;
    }
    .intro-sec .title-wrap .title {
        margin:4.65vw auto 8.6vw;
        font-size:7.45vw;
    }
    .intro-sec .title-wrap .sub-txt {
        font-size:3.0vw;
    }
    .intro-sec .bubble-wrap {
        gap:8.6vw;
        margin:15.0vw auto 4.65vw;
    }
    .intro-sec .bubble-wrap .inner-con {
        gap:4.65vw;
    }
    .intro-sec .bubble-wrap .item.txt {
        margin-top: 0;
        padding:6.5vw 5.0vw 5.8vw 5.0vw;
        font-size:3.0vw;
        word-break: keep-all;
    }
    .intro-sec .bubble-wrap .item.txt .writer {
        margin:4.65vw auto 0;
    }
    .intro-sec .bubble-wrap .item.img {
        width:18.5vw;
        height:18.5vw;
    }

    .information-sec {
        padding-top:10.5vw;
        padding-bottom:17.5vw;
    }
    .information-sec .inner-con {
        gap:15.0vw;
        flex-direction: column;
    }
    .information-sec .inner-con .info-wrap {
        padding:0 6.0vw;
    }
    .information-sec .inner-con .phone-display {
        max-width: 100%;
    }
    .information-sec .inner-con .info-wrap .classification {
        font-size:4.4vw;
    }
    .information-sec .inner-con .info-wrap .title {
        margin:8.15vw auto;
        font-size:7.45vw;
    }
    .information-sec .inner-con .info-wrap .sub-txt {
        font-size: 3.25vw;
    }
    .information-sec .inner-con.ic1 {
        flex-direction: column-reverse;
    }
    .information-sec .inner-con.ic2 {
        gap:15.0vw;
        flex-direction: column;
        margin:22.0vw auto 0;
    }
    .information-sec .inner-con.ic2 .info-wrap {
        padding-top:0;
    }

    .emphasis-sec {
        padding-top:28.5vw;
    }
    .emphasis-sec .title {
        font-size:7.45vw;
    }
    .emphasis-sec .sub-txt {
        margin:8.15vw auto 0;
        font-size:3.0vw;
    }
    .emphasis-sec .content-img {
        width:100vw;
    }
    .emphasis-sec .content {
        padding:41.8vw 0 1.5vw 0;
    }
    .emphasis-sec .content .bubble-txt {
        width:88vw;
        height:20vw;
        font-size:2.8vw;
        border-radius: 20vw;
    }

    .service-sec {
        padding-top:15.6vw;
        padding-bottom:17.9vw;
    }
    .service-sec .sec-logo {
        height:7.65vw;
    }
    .service-sec .title {
        margin:6.75vw auto 19.3vw;
        font-size:7.45vw;
    }
    .service-sec .service-wrap {
        gap:10.5vw 3.75vw;
    }
    .service-sec .service-wrap .item {
        flex-basis: calc( (100% - 3.75vw) / 2 );
    }
    .service-sec .service-wrap .img-wrap {
        width:100%;
    }
    .service-sec .service-wrap .txt {
        margin:4.5vw auto 0;
        font-size:3.0vw;
    }

    .service-location-sec {
        padding-top:20.5vw;
        padding-bottom:24.15vw;
        background: #f5f5f5;
    }
    .service-location-sec .title {
        margin:0 auto 12.8vw;
        font-size: 7.65vw;
    }
    .service-location-sec .service-location-wrap {
        gap:12.8vw;
        flex-wrap: wrap;
        padding:0 0 0 3.75vw;
    }
    .service-location-sec .service-location-wrap .item {
        flex-basis: 100%;
        padding:0;
        width: 100%;
    }
    .service-location-sec .service-location-wrap .item .img-wrap {
        margin:0 auto 12.8vw;
        height: auto;
    }
    .service-location-sec .service-location-wrap .item .loca-img {
        width:27.9vw;
    }
    .service-location-sec .service-location-wrap .item .gps-img {
        width:51.6vw;
    }
    .service-location-sec .service-location-wrap .txt {
        font-size:3.45vw;
    }

    .service-policy-sec {
        padding-top:17.5vw;
    }
    .service-policy-sec .content {
        padding-left:0;
        padding-right:0;
    }
    .service-policy-sec .title {
        margin:0 auto 8.85vw;
        font-size:7.65vw;
    }
    .service-policy-sec .price-table table th {
        padding:4.65vw 2.0vw;
        font-size:3.45vw;
    }
    .service-policy-sec .price-table table td {
        padding:4.65vw 2.0vw;
        font-size:3.45vw;
        word-break: keep-all;
    }
    .service-policy-sec .sub-txt {
        margin:8.85vw auto 0;
        font-size:3.45vw;
    }
    .service-policy-sec .reservation-btn {
        margin:12.0vw auto 0;
        width:55.8vw;
        height: 12.0vw;
        font-size: 4.4vw;
    }
    .service-policy-sec .cont2 {
        margin:17.5vw auto 0;
    }
    .service-policy-sec .sub-title {
        margin:6.5vw auto 3.75vw;
        font-size: 4.85vw;
    }
    .service-policy-sec .policy-txt {
        font-size: 5.5vw;
    }
    .service-policy-sec .desc-wrap {
        margin:11.4vw auto 21.65vw;
        padding:0 2.5vw;
        font-size:3.45vw;
    }
    .service-policy-sec .cont3 {
        margin:17.5vw auto 0;
    }
    .service-policy-sec .desc-wrap strong.last {
        text-align: right;
    }
    .service-policy-sec .desc-wrap strong .innS {
        font-weight: normal;
        font-size:2.55vw;
    }
    .service-policy-sec .desc {
        margin:7.0vw auto 0;
        font-size:3.0vw;
    }

    .contact-sec {
        padding-top:26.75vw;
        padding-bottom:23.25vw;
    }
    .contact-sec .sec-logo {
        width:51.6vw;
    }
    .contact-sec .info-desc {
        margin:7.45vw auto 13.75vw;
        font-size:3.45vw;
    }

    .form-wrap .input-wrap {
        margin:0 auto 3.45vw;
    }
    .form-wrap .input-wrap textarea {
        height: 58vw;
    }
    .contact-sec .operating-txt {
        margin:16.25vw auto 20.25vw;
        font-size: 3.45vw;
    }
    .form-wrap .submit-btn {
        width:46.5vw;
        height: 11.625vw;
        border-radius: 3.25vw;
        font-size: 4.18vw;
    }
    .contact-sec .msg {
        margin:23.25vw auto 0;
        font-size:4.85vw;
    }
    
/* ===== Mobile layout hardening for CJK & VI headings ===== */
@media (max-width: 768px) {
  /* 헤더 여백/로고 크기 상한 */
  .header-inner { padding-left: 12px; padding-right: 12px; }
  .logo-img { height: clamp(24px, 6.2vw, 36px) !important; }

  /* 메인 히어로 타이틀 크기 상한 + 줄바꿈 안전 */
  .main-sec .title {
    /* 폰트가 달라도 안정적으로 보이도록 상한/하한 지정 */
    font-size: clamp(20px, 6.4vw, 28px) !important;
    line-height: 1.28 !important;
    letter-spacing: .01em;
    word-break: break-word;        /* CJK/VI에서 폭 초과 방지 */
    overflow-wrap: anywhere;       /* 긴 단어 강제 줄바꿈 */
    hyphens: auto;
    text-wrap: balance;            /* 지원 브라우저에서 균형잡힌 줄바꿈 */
    max-width: 92vw;
    margin-left: auto; margin-right: auto;
  }

  /* 서브텍스트도 살짝 축소 */
  .main-sec .sub-txt,
  .intro-sec .sub-txt {
    font-size: clamp(13px, 3.6vw, 15px) !important;
    line-height: 1.6 !important;
  }

  /* 히어로 버튼 영역 간격 조정 */
  .app-link-wrap .item img { height: 40px; }

  /* 거품형 문구/버블이 긴 언어에서 튀어나오는 것 방지 */
  .bubble-txt {
    font-size: clamp(12px, 3.2vw, 14px);
    line-height: 1.5;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 92vw;
    margin-left: auto; margin-right: auto;
  }

  /* 서비스 카드 텍스트 줄바꿈 보강 */
  .service-sec .item .txt {
    word-break: break-word;
    overflow-wrap: anywhere;
  }
}

/* 초소형 디바이스 보정 (iPhone SE 등) */
@media (max-width: 360px) {
  .logo-img { height: 24px !important; }
  .main-sec .title { font-size: clamp(18px, 7vw, 24px) !important; }
  .app-link-wrap .item img { height: 36px; }
}
