/* 프리텐다드 폰트 적용 */
html {
    overflow-y: scroll; /* 항상 스크롤바를 표시하여 화면 너비 변화 방지 */
}
body {
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif;
}
input, textarea, select, button {
    font-family: inherit;
}

/* --- New Header Styles --- */
/* 헤더 각 아이템의 기본 스타일 및 트랜지션 */
.header-item {
    background-color: transparent;
    backdrop-filter: blur(0px);
    border: 1px solid transparent;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0.5rem 1.5rem;
    border-radius: 9999px;
}

/* 스크롤 시 헤더 아이템에 적용될 Glassmorphism 스타일 */
.header-scrolled .header-item {
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(229, 231, 235, 0.5); /* Tailwind gray-200 with opacity */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* 헤더 텍스트 아이템은 본문 컨테이너 기준선과 정확히 맞춘다. */
.header-text-item {
    background-color: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 0;
    padding: 0;
    border-radius: 0;
}

.header-scrolled .header-text-item {
    background-color: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 0;
    box-shadow: none;
}

/* 스크롤 시 메인 헤더 컨테이너는 투명하게 유지 */
.header-scrolled {
    background-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

/* 모바일 메뉴 애니메이션 */
.mobile-menu {
    transition: transform 0.3s ease-in-out;
}

/* 인플루언서 카드 Glassmorphism 스타일 (밝은 테마) */
.influencer-card {
    background-color: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.25);
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out, border-color 0.3s ease-in-out;
    position: relative;
}
.influencer-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
/* Popup menu for influencer links */
.influencer-links-menu {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    background: white;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 6px 16px rgba(0,0,0,0.12);
    border-radius: 0.5rem;
    z-index: 40;
    min-width: 160px;
    padding: 0.25rem;
}
.influencer-links-menu a {
    display: block;
    padding: 0.5rem 0.75rem;
    color: #111827;
    text-decoration: none;
    font-size: 0.9rem;
    border-radius: 0.375rem;
}
.influencer-links-menu a:hover {
    background: rgba(17,24,39,0.04);
}

/* 이메일 입력 오류 시 흔들리는 애니메이션 */
@keyframes shake {
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-4px); }
    40%, 60% { transform: translateX(4px); }
}
.shake {
    animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
}

/* ── Hero background mode ────────────────────────────── */
body.hero-mode {
    background-color: #F7F4EF;
    background-image: none;
}
/* 헤더 – hero mode: 기본 색상 유지 (배경 밝음) */
body.hero-mode #header .hero-logo {
    color: #111827 !important;
}
body.hero-mode #header .hero-logo .text-indigo-500 {
    color: #6366f1 !important;
}
body.hero-mode #header #auth-section button {
    color: #6b7280 !important;
}
body.hero-mode #header #auth-section button:hover {
    color: #111827 !important;
}
/* 푸터 – hero mode: 기본 색상 */
body.hero-mode #site-footer {
    color: inherit;
}

/* ── Hero influencer spotlight carousel ─────────────── */
.hero-stream-section {
    width: 100%;
    position: relative;
    overflow: hidden;
    height: 230px;
}
/* 좌우 페이드 마스크 */
.hero-stream-section::before,
.hero-stream-section::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 140px;
    z-index: 2;
    pointer-events: none;
}
.hero-stream-section::before {
    left: 0;
    background: linear-gradient(to right, #F7F4EF 0%, transparent 100%);
}
.hero-stream-section::after {
    right: 0;
    background: linear-gradient(to left, #F7F4EF 0%, transparent 100%);
}

/* 트랙: 절대 위치로 카드 배치 */
.hero-spotlight-track {
    position: relative;
    width: 100%;
    height: 100%;
}

/* 각 카드: 절대 위치, top/left 50% 기준 */
.hero-spotlight-card {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    overflow: hidden;
    background: #e5e2db;
    border: none;
    /* transform, opacity, box-shadow 는 JS 인라인으로 제어 */
}
.hero-spotlight-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media (max-width: 640px) {
    .hero-stream-section { height: 170px; }
}

/* 로그인↔회원가입 높이 애니메이션 컨테이너 */
#auth-forms-container {
    overflow: hidden;
}

/* ── Hero ticker (fade) ─────────────────────────────── */
.hero-ticker-window {
    height: 6rem;
    overflow: hidden;
    position: relative;
}
.hero-ticker-track {
    position: relative;
    height: 100%;
}
.hero-ticker-item {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: clamp(1.45rem, 3.8vw, 2rem);
    line-height: 1.5;
    color: #374151;
    font-weight: 600;
    padding: 0 2rem;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 1.5s ease;
    pointer-events: none;
}
.hero-ticker-item.active {
    opacity: 1;
    pointer-events: auto;
}
@media (min-width: 640px) {
    .hero-ticker-item { font-size: clamp(1.15rem, 2.8vw, 1.6rem); }
}

/* 로고 정렬 */
.logo {
    margin-left: -1.5rem;
}
@media (min-width: 640px) {
    .logo {
        margin-left: -1.5rem;
    }
}
@media (min-width: 1024px) {
    .logo {
        margin-left: -1.5rem;
    }
}

/* 체크아웃 정렬 */
.auth-cart {
    margin-right: -1.5rem;
}
/* 로그인 모달 입력필드 포커스 링/아웃라인 완전 제거 */
#login-modal input:focus {
    outline: none !important;
    box-shadow: none !important;
    border-color: #d1d5db !important;
}

/* Prevent mobile zoom when focusing inputs in modal by using >=16px font-size */
#content-view-modal input, #content-view-modal textarea {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
}
@media (min-width: 640px) {
    .auth-cart {
        margin-right: -1.5rem;
    }
}
@media (min-width: 1024px) {
    .auth-cart {
        margin-right: -1.5rem;
    }
}

.site-logo {
    display: block;
    width: auto;
    height: 34px;
    max-width: 180px;
    object-fit: contain;
}

@media (min-width: 768px) {
    .site-logo {
        height: 40px;
        max-width: 220px;
    }
}

/* Public service guide: semantic HTML remains readable without JavaScript. */
.service-overview { width: min(100% - 48px, 1160px); margin: 80px auto 40px; color: #242823; }
.overview-intro { max-width: 680px; margin: 0 auto 60px; text-align: center; }
.overview-eyebrow { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: #6c7563; }
.overview-eyebrow > span { width: 6px; height: 6px; border-radius: 50%; background: #799760; }
.overview-intro h1 { margin: 20px 0; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.35; font-weight: 750; letter-spacing: -.055em; }
.overview-intro p { color: #767a73; font-size: 15px; line-height: 1.9; word-break: keep-all; }
.overview-section-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 22px; }
.overview-section-heading h2 { font-size: 21px; font-weight: 700; letter-spacing: -.04em; }
.overview-section-heading > span { color: #888c83; font-size: 12px; }
.overview-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; list-style: none; padding: 0; margin: 0; }
.overview-step { padding: 24px 22px 28px; border: 1px solid #e3e5dc; border-radius: 20px; background: rgba(255,255,255,.68); }
.overview-step:first-child { background: #edf1e6; border-color: #dfe6d5; }
.overview-step-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.overview-step-number { color: #919b82; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.overview-step-top svg { width: 27px; height: 27px; color: #596749; }
.overview-step h3 { font-size: 17px; font-weight: 700; letter-spacing: -.035em; margin-bottom: 12px; }
.overview-step p { color: #767a73; font-size: 13px; line-height: 1.9; word-break: keep-all; }
.overview-faq { display: grid; grid-template-columns: 1fr 2fr; gap: 64px; margin-top: 76px; padding: 48px 0 24px; border-top: 1px solid #dedfd5; }
.overview-faq-intro h2 { font-size: 28px; font-weight: 700; letter-spacing: -.045em; margin: 12px 0 16px; }
.overview-faq-intro p { font-size: 14px; color: #85887f; line-height: 1.9; }
.overview-faq-intro a { display: inline-flex; gap: 20px; align-items: center; color: #626e53; font-size: 13px; margin-top: 28px; text-decoration: none; }
.overview-faq-intro a:hover { text-decoration: underline; }
.overview-faq-list { border-top: 1px solid #d9ddd1; }
.overview-faq-item { border-bottom: 1px solid #d9ddd1; }
.overview-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 23px 4px; cursor: pointer; list-style: none; font-size: 15px; font-weight: 600; word-break: keep-all; }
.overview-faq-item summary::-webkit-details-marker { display: none; }
.overview-faq-item summary:focus-visible, .overview-faq-intro a:focus-visible { outline: 2px solid #788b61; outline-offset: 5px; border-radius: 4px; }
.overview-faq-toggle { position: relative; flex: 0 0 24px; height: 24px; border: 1px solid #d8decf; border-radius: 50%; }
.overview-faq-toggle::before, .overview-faq-toggle::after { content: ''; position: absolute; top: 10px; left: 6px; width: 10px; height: 1px; background: #6a7957; }
.overview-faq-toggle::after { transform: rotate(90deg); }
.overview-faq-item[open] .overview-faq-toggle::after { transform: rotate(0); }
.overview-faq-item[open] summary { color: #4c6037; }
.overview-faq-item > p { margin: 0; padding: 0 40px 24px 4px; color: #767a73; font-size: 14px; line-height: 1.9; word-break: keep-all; }
#process-title { scroll-margin-top: 32px; }
@media (max-width: 1000px) {
    .overview-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .overview-faq { gap: 32px; grid-template-columns: 1fr 1.8fr; }
}
@media (max-width: 600px) {
    .service-overview { width: calc(100% - 40px); margin-top: 56px; }
    .overview-intro { text-align: left; margin-bottom: 36px; }
    .overview-intro h1 { font-size: 29px; }
    .overview-intro p { font-size: 14px; }
    .overview-section-heading h2 { font-size: 19px; }
    .overview-steps { grid-template-columns: 1fr; gap: 10px; }
    .overview-step { position: relative; padding: 22px 20px 22px 64px; border-radius: 16px; }
    .overview-step-top { position: absolute; top: 24px; left: 20px; margin: 0; }
    .overview-step-top svg { display: none; }
    .overview-step h3 { font-size: 16px; margin-bottom: 8px; }
    .overview-faq { grid-template-columns: 1fr; gap: 28px; margin-top: 40px; padding-top: 32px; }
    .overview-faq-intro h2 { font-size: 25px; }
    .overview-faq-intro p br { display: none; }
    .overview-faq-intro a { margin-top: 14px; }
    .overview-faq-item summary { padding: 21px 2px; font-size: 14px; }
    .overview-faq-item > p { padding-right: 8px; font-size: 13px; }
}

.shipping-panel { max-width: 1200px; margin: 0 auto 24px; padding: 20px; border: 1px solid #dbe3ec; border-radius: 16px; background: #fff; color: #1f2937; line-height: 1.6; }
.shipping-panel h2, .shipping-dialog h2 { font-size: 20px; font-weight: 700; margin-bottom: 12px; }
.shipping-panel form, .shipping-dialog form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; padding: 12px 0; }
.shipping-panel label, .shipping-dialog label { display: flex; flex-direction: column; gap: 4px; }
.shipping-panel input, .shipping-panel select, .shipping-dialog input, .shipping-dialog select { border: 1px solid #cbd5e1; border-radius: 6px; padding: 8px; max-width: 100%; font-size: 16px; }
.shipping-panel button, .shipping-dialog button { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; padding: 7px 12px; border-radius: 7px; cursor: pointer; }
.shipping-panel button:disabled, .shipping-dialog button:disabled { opacity: .5; cursor: wait; }
.shipping-panel details { margin: 12px 0; }
.shipping-panel summary { cursor: pointer; font-weight: 600; }
.shipping-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 12px; margin: 16px 0; }
.shipment-card { border: 1px solid #e2e8f0; border-radius: 10px; padding: 14px; overflow-wrap: anywhere; }
.shipment-heading, .shipping-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.shipping-muted { font-size: 13px; color: #64748b; }
.shipping-error { color: #b91c1c; }
.shipping-message { margin: 8px 0; }
.shipping-pick-items { flex-basis: 100%; max-height: 300px; overflow: auto; }
.shipping-panel .shipping-item { flex-direction: row; align-items: center; margin: 8px 0; }
.shipping-dialog { border: 1px solid #cbd5e1; border-radius: 14px; padding: 24px; max-width: min(600px, 94vw); }
.shipping-dialog::backdrop { background: #0008; }

/* A closed off-canvas menu must not widen the mobile page. */
#mobile-menu.translate-x-full { display: none; }
