/*
    슬롯건물주 정적 HTML/CSS 버전
    - 워드프레스가 아닌 일반 소스코드입니다.
    - 상단 이미지: assets/images/top-1726x600.png
    - 하단 GIF 1: assets/images/bottom-01.gif
    - 하단 GIF 2: assets/images/bottom-02.gif
    - 하단 GIF 3: assets/images/bottom-03.gif
    - 카카오 아이콘: assets/images/icon-kakao.png
    - 텔레그램 아이콘: assets/images/icon-telegram.png
*/

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;
    font-family: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;
    color: #ffffff;
    background:
        radial-gradient(circle at 50% -10%, rgba(0, 150, 255, .12), transparent 34%),
        linear-gradient(180deg, #020204 0%, #050508 45%, #020204 100%);
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

.page-wrap {
    width: 100%;
    padding: 42px 0 58px;
}

.site-container {
    width: min(1726px, calc(100% - 64px));
    margin: 0 auto;
}

.banner-section-top {
    margin-bottom: 38px;
}

.banner-section-bottom {
    margin-top: 38px;
}

.image-frame {
    width: 100%;
    aspect-ratio: 1726 / 600;
    overflow: hidden;
    border-radius: 30px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.015)),
        #090b10;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow:
        0 18px 50px rgba(0,0,0,.38),
        0 0 0 1px rgba(255,255,255,.025) inset;
}

.image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bottom-banner-stack {
    display: grid;
    gap: 28px;
}

.banner-link {
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.banner-link:hover {
    transform: translateY(-3px);
    border-color: rgba(255,255,255,.18);
    box-shadow:
        0 24px 60px rgba(0,0,0,.46),
        0 0 0 1px rgba(255,255,255,.04) inset;
}

.banner-link:focus-visible {
    outline: 3px solid rgba(59,130,246,.72);
    outline-offset: 4px;
}

.contact-section {
    margin: 0;
}

.contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px;
    align-items: stretch;
}

.contact-card {
    position: relative;
    min-height: 230px;
    display: flex;
    align-items: center;
    gap: 56px;
    padding: 44px 58px;
    overflow: hidden;
    isolation: isolate;
    border-radius: 48px;
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.contact-card::before {
    content: "";
    position: absolute;
    top: -25%;
    left: -140%;
    width: 44%;
    height: 160%;
    transform: skewX(-24deg);
    z-index: 3;
    pointer-events: none;
}

.contact-card:hover::before,
.contact-card.is-pop::before {
    animation: sheenMove .95s ease;
}

.contact-card:hover {
    transform: translateY(-3px);
}

.contact-card.is-pop {
    animation: cardPop .52s cubic-bezier(.22,.68,.21,1);
}

.contact-card-kakao {
    background:
        radial-gradient(circle at 42% 50%, rgba(255,230,0,.16), transparent 42%),
        linear-gradient(180deg, rgba(47,40,0,.98) 0%, rgba(24,19,0,.98) 100%);
    border: 4px solid rgba(255, 230, 0, .58);
    box-shadow:
        0 0 0 4px rgba(37, 31, 0, .88) inset,
        0 20px 48px rgba(0,0,0,.46),
        0 0 30px rgba(255,230,0,.10);
}

.contact-card-kakao::before {
    background: linear-gradient(
        90deg,
        rgba(255,255,255,0) 0%,
        rgba(255,230,0,.05) 20%,
        rgba(255,255,255,.25) 50%,
        rgba(255,230,0,.07) 80%,
        rgba(255,255,255,0) 100%
    );
}

.contact-card-telegram {
    background:
        radial-gradient(circle at 42% 50%, rgba(0,153,255,.22), transparent 42%),
        linear-gradient(180deg, rgba(3,21,38,.98) 0%, rgba(1,10,20,.98) 100%);
    border: 4px solid rgba(11,147,255,.62);
    box-shadow:
        0 0 0 4px rgba(3, 19, 34, .88) inset,
        0 20px 48px rgba(0,0,0,.46),
        0 0 30px rgba(0,153,255,.12);
}

.contact-card-telegram::before {
    background: linear-gradient(
        90deg,
        rgba(255,255,255,0) 0%,
        rgba(0,185,255,.06) 20%,
        rgba(255,255,255,.34) 50%,
        rgba(0,185,255,.08) 80%,
        rgba(255,255,255,0) 100%
    );
}

.contact-glow {
    position: absolute;
    inset: -20px;
    z-index: 0;
    pointer-events: none;
    filter: blur(20px);
}

.contact-card-kakao .contact-glow {
    background: radial-gradient(circle at 50% 50%, rgba(255,230,0,.16), transparent 65%);
}

.contact-card-telegram .contact-glow {
    background: radial-gradient(circle at 50% 50%, rgba(0,153,255,.22), transparent 65%);
}

.icon-box,
.contact-text {
    position: relative;
    z-index: 2;
}

.icon-box {
    width: 146px;
    height: 146px;
    flex: 0 0 146px;
    display: grid;
    place-items: center;
    border-radius: 34px;
}

.kakao-icon {
    background: linear-gradient(180deg, #ffe500 0%, #f6d800 100%);
    box-shadow:
        0 12px 30px rgba(255,225,0,.20),
        0 0 0 1px rgba(255,255,255,.12) inset;
}

.kakao-icon::before {
    content: "";
    position: absolute;
    width: 88px;
    height: 88px;
    border-radius: 14px;
    background: rgba(255,255,255,.22);
}

.kakao-talk {
    position: relative;
    width: 72px;
    height: 58px;
    display: grid;
    place-items: center;
    color: #ffeb00;
    background: #090909;
    border-radius: 50%;
    font-size: 23px;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

.kakao-talk::after {
    content: "";
    position: absolute;
    left: 14px;
    bottom: -9px;
    width: 20px;
    height: 18px;
    background: #090909;
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.telegram-icon {
    background: linear-gradient(180deg, #30b5ff 0%, #1699ea 100%);
    box-shadow:
        0 12px 30px rgba(0,140,255,.24),
        0 0 0 1px rgba(255,255,255,.08) inset;
}

.telegram-icon svg circle {
    fill: rgba(0,130,205,.18);
}

.telegram-icon svg path {
    fill: #ffffff;
}

.contact-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
    letter-spacing: -0.06em;
    text-shadow:
        0 2px 0 rgba(0,0,0,.22),
        0 8px 18px rgba(0,0,0,.24);
}

.contact-text strong {
    display: block;
    margin: 0;
    font-size: clamp(34px, 3.2vw, 56px);
    line-height: 1.02;
    font-weight: 1000;
    white-space: nowrap;
}

.contact-text em {
    display: block;
    margin: 0;
    font-style: normal;
    font-size: clamp(26px, 2.1vw, 42px);
    line-height: 1.1;
    font-weight: 900;
    white-space: nowrap;
}

.contact-card-kakao .contact-text strong,
.contact-card-kakao .contact-text em {
    color: #fff6cf;
}

.contact-card-telegram .contact-text strong,
.contact-card-telegram .contact-text em {
    color: #ffffff;
}

@keyframes sheenMove {
    0% { left: -140%; }
    100% { left: 165%; }
}

@keyframes cardPop {
    0% { transform: scale(1); }
    38% { transform: scale(1.028); }
    100% { transform: scale(1); }
}

@media (max-width: 1400px) {
    .contact-grid {
        gap: 28px;
    }

    .contact-card {
        min-height: 190px;
        gap: 34px;
        padding: 34px 42px;
        border-radius: 38px;
    }

    .icon-box {
        width: 112px;
        height: 112px;
        flex-basis: 112px;
        border-radius: 28px;
    }

    .kakao-talk {
        width: 60px;
        height: 50px;
        font-size: 19px;
    }

    .kakao-icon::before {
        width: 74px;
        height: 74px;
    }
}

@media (max-width: 1024px) {
    .page-wrap {
        padding: 28px 0 42px;
    }

    .site-container {
        width: min(1726px, calc(100% - 36px));
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

@media (max-width: 640px) {
    .page-wrap {
        padding: 18px 0 28px;
    }

    .site-container {
        width: calc(100% - 24px);
    }

    .banner-section-top {
        margin-bottom: 20px;
    }

    .banner-section-bottom {
        margin-top: 20px;
    }

    .bottom-banner-stack {
        gap: 16px;
    }

    .image-frame {
        border-radius: 16px;
    }

    .contact-grid {
        gap: 14px;
    }

    .contact-card {
        min-height: 112px;
        gap: 16px;
        padding: 20px 18px;
        border-radius: 24px;
        border-width: 2px;
        box-shadow:
            0 0 0 2px rgba(0,0,0,.34) inset,
            0 10px 28px rgba(0,0,0,.35);
    }

    .icon-box {
        width: 72px;
        height: 72px;
        flex-basis: 72px;
        border-radius: 18px;
    }

    .kakao-icon::before {
        width: 48px;
        height: 48px;
        border-radius: 10px;
    }

    .kakao-talk {
        width: 45px;
        height: 36px;
        font-size: 13px;
    }

    .kakao-talk::after {
        left: 9px;
        bottom: -6px;
        width: 13px;
        height: 12px;
    }

    .telegram-icon svg {
        width: 42px;
        height: 42px;
    }

    .contact-text {
        gap: 5px;
        letter-spacing: -0.055em;
    }

    .contact-text strong {
        font-size: clamp(20px, 5.7vw, 28px);
        white-space: normal;
    }

    .contact-text em {
        font-size: clamp(15px, 4.3vw, 21px);
    }
}

@media (max-width: 390px) {
    .contact-card {
        padding: 17px 14px;
        gap: 12px;
    }

    .icon-box {
        width: 62px;
        height: 62px;
        flex-basis: 62px;
    }

    .contact-text strong {
        font-size: 19px;
    }

    .contact-text em {
        font-size: 15px;
    }
}


/* =========================
   contact icon image files
   아래 이미지 파일만 교체하면 아이콘이 바뀝니다.
   - assets/images/icon-kakao.png
   - assets/images/icon-telegram.png
========================= */
.icon-box {
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible;
}

.kakao-icon::before,
.kakao-talk,
.telegram-icon svg {
    display: none !important;
}

.contact-icon-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 12px 24px rgba(0,0,0,.18));
}

/* =========================
   PC size adjustment
   - PC 화면에서 전체 이미지/문의박스가 너무 크게 보이지 않도록 폭을 줄이고 좌우 여백을 늘립니다.
   - 모바일 스타일은 기존 그대로 유지됩니다.
========================= */
@media (min-width: 1025px) {
    .site-container {
        width: min(1440px, calc(100% - 180px));
    }

    .banner-section-top {
        margin-bottom: 32px;
    }

    .banner-section-bottom {
        margin-top: 32px;
    }

    .bottom-banner-stack {
        gap: 24px;
    }

    .contact-grid {
        gap: 30px;
    }

    .contact-card {
        min-height: 178px;
        gap: 30px;
        padding: 30px 38px;
        border-radius: 38px;
    }

    .icon-box {
        width: 112px;
        height: 112px;
        flex: 0 0 112px;
        border-radius: 28px;
    }

    .contact-text {
        gap: 9px;
        letter-spacing: -0.055em;
    }

    .contact-text strong {
        font-size: clamp(28px, 2vw, 36px);
        line-height: 1.08;
        white-space: nowrap;
    }

    .contact-text em {
        font-size: clamp(20px, 1.5vw, 28px);
        line-height: 1.12;
        white-space: nowrap;
    }
}

@media (min-width: 1025px) and (max-width: 1200px) {
    .site-container {
        width: min(1000px, calc(100% - 80px));
    }

    .contact-grid {
        grid-template-columns: 1fr;
    }
}
