/* ============================================
   Variables & Reset
   ============================================ */
:root {
    --primary: #1E7A66;
    --primary-dark: #155E4F;
    --accent: #FF7A59;
    --accent-dark: #F25E3A;
    --accent-soft: #FFD9CD;
    --accent-glow: rgba(255, 122, 89, 0.14);
    --ink: #15322B;
    --ink-soft: #244A41;
    --cream: #FBF7EF;
    --cream-dark: #EFE7D6;
    --white: #FFFFFF;
    --bg-light: #F7F2E9;
    --muted: #7E8A82;
    --font: 'Noto Sans KR', sans-serif;
    --font-display: 'Jua', 'Noto Sans KR', sans-serif;
    --r-sm: 12px;
    --r-md: 18px;
    --r-lg: 26px;
    --r-xl: 34px;
    --shadow-s: 0 2px 14px rgba(21,50,43,0.06);
    --shadow-m: 0 10px 36px rgba(21,50,43,0.10);
    --shadow-l: 0 18px 54px rgba(21,50,43,0.16);
    --shadow-accent: 0 10px 30px rgba(255,122,89,0.34);
    --ease: cubic-bezier(0.4,0,0.2,1);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--ink);background:var(--white);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;padding-bottom:100px}
img{display:block;max-width:100%;height:auto}
.container{max-width:1160px;margin:0 auto;padding:0 28px}

.text-gold{color:var(--accent)}
.text-gold-light{color:var(--accent-soft)}
.left-align{text-align:left}

h1,h2,h3,h4,.hero-title,.section-title{font-family:var(--font-display);font-weight:400;letter-spacing:0}

/* ============================================
   HERO
   ============================================ */
.hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--ink);
    overflow:hidden;
    padding:60px 24px;
}

.hero-bg-glow{
    position:absolute;inset:0;
    background:
        radial-gradient(ellipse at 18% 35%,rgba(30,122,102,0.30) 0%,transparent 55%),
        radial-gradient(ellipse at 82% 62%,rgba(255,122,89,0.16) 0%,transparent 52%),
        radial-gradient(ellipse at 50% 92%,rgba(255,217,205,0.08) 0%,transparent 42%);
    animation:glowShift 10s ease-in-out infinite alternate;
}
@keyframes glowShift{
    0%{opacity:.75;transform:scale(1)}
    100%{opacity:1;transform:scale(1.06)}
}

.hero-inner{
    position:relative;z-index:2;
    display:grid;
    grid-template-columns:1fr 1.1fr 1fr;
    gap:32px;
    align-items:center;
    max-width:1200px;
    width:100%;
}

/* Hero images */
.hero-images{display:flex;flex-direction:column;gap:20px;min-width:0}
.hero-images--left{align-items:flex-end}
.hero-images--right{align-items:flex-start}

.hero-img-wrapper{
    position:relative;
    border-radius:var(--r-lg);
    overflow:hidden;
    box-shadow:0 14px 44px rgba(0,0,0,0.32);
    border:1px solid rgba(255,255,255,0.10);
    background:var(--ink-soft);
}
.hero-img-wrapper img{
    width:100%;height:auto;display:block;
    aspect-ratio:4/3;object-fit:cover;
    transition:transform 0.5s var(--ease);
}
.hero-img-wrapper:hover img{transform:scale(1.04)}

.hero-img--float-1{width:85%;animation:floatUp 6s ease-in-out infinite}
.hero-img--float-2{width:70%;animation:floatDown 7s ease-in-out 0.5s infinite}
.hero-img--float-3{width:70%;animation:floatDown 6.5s ease-in-out 0.3s infinite}
.hero-img--float-4{width:85%;animation:floatUp 7s ease-in-out infinite}

@keyframes floatUp{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-10px)}
}
@keyframes floatDown{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(8px)}
}

.hero-img-badge{
    position:absolute;bottom:12px;left:12px;
    background:rgba(21,50,43,0.82);
    backdrop-filter:blur(10px);
    color:var(--accent-soft);
    padding:6px 14px;
    border-radius:50px;
    font-size:12px;font-weight:600;
    display:flex;align-items:center;gap:6px;
    border:1px solid rgba(255,122,89,0.30);
}
.hero-img-badge--br{left:auto;right:12px}

/* Hero center */
.hero-center{
    text-align:center;
    display:flex;flex-direction:column;
    align-items:center;gap:0;
}

.hero-badge{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(255,122,89,0.14);
    border:1px solid rgba(255,122,89,0.32);
    color:var(--accent-soft);
    padding:8px 20px;border-radius:50px;
    font-size:13px;font-weight:500;
    letter-spacing:0.3px;margin-bottom:28px;
    backdrop-filter:blur(12px);
}

.hero-title{
    font-size:clamp(34px,5.6vw,64px);
    color:var(--white);
    line-height:1.25;margin-bottom:18px;
    letter-spacing:-0.3px;
}

.hero-subtitle{
    font-size:clamp(14px,2vw,17px);
    color:rgba(255,255,255,0.62);
    margin-bottom:34px;line-height:1.85;
}

.btn-hero{
    display:inline-flex;align-items:center;gap:10px;
    background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);
    color:var(--white);font-family:var(--font);
    font-size:16px;font-weight:700;
    padding:17px 34px;border:none;border-radius:60px;
    cursor:pointer;letter-spacing:0.3px;
    box-shadow:var(--shadow-accent);
    transition:all 0.3s var(--ease);
    margin-bottom:38px;
}
.btn-hero:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(255,122,89,0.5)}
.btn-hero:active{transform:translateY(0)}
.btn-kakao-icon{width:22px;height:22px;object-fit:contain}
.btn-hero i{font-size:14px;transition:transform 0.3s var(--ease)}
.btn-hero:hover i{transform:translateX(4px)}

.hero-stats{
    display:flex;align-items:center;gap:24px;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.10);
    border-radius:var(--r-lg);
    padding:18px 32px;
    backdrop-filter:blur(16px);
}
.stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.stat-num{font-size:22px;font-weight:700;color:var(--accent-soft);font-family:var(--font-display)}
.stat-lbl{font-size:12px;color:rgba(255,255,255,0.55)}
.stat-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,0.25)}

.hero-scroll{
    position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:3;
    display:flex;flex-direction:column;align-items:center;gap:6px;
    color:rgba(255,255,255,0.35);font-size:11px;letter-spacing:2px;
    animation:scrollBounce 2s ease-in-out infinite;
}
@keyframes scrollBounce{
    0%,100%{transform:translateX(-50%) translateY(0)}
    50%{transform:translateX(-50%) translateY(6px)}
}

/* ============================================
   MARQUEE BAND
   ============================================ */
.marquee-band{
    background:linear-gradient(90deg,var(--primary),var(--primary-dark));
    padding:15px 0;
    overflow:hidden;
    white-space:nowrap;
}
.marquee-track{
    display:inline-flex;gap:48px;
    animation:marqueeScroll 25s linear infinite;
}
.marquee-track span{
    font-size:14px;font-weight:600;color:var(--white);
    display:inline-flex;align-items:center;gap:8px;
    flex-shrink:0;
}
.marquee-track span i{font-size:12px;color:var(--accent-soft)}
@keyframes marqueeScroll{
    0%{transform:translateX(0)}
    100%{transform:translateX(-50%)}
}

/* ============================================
   SPLIT SECTIONS (图文交错)
   ============================================ */
.split-section{padding:100px 0;background:var(--white)}
.split-section--alt{background:var(--bg-light)}

.split-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:center;
}
.split-row--reverse{direction:rtl}
.split-row--reverse > *{direction:ltr}

/* Media frame */
.media-frame{
    position:relative;
    border-radius:var(--r-xl);
    overflow:hidden;
}
.media-frame img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:var(--r-xl);
    transition:transform 0.5s var(--ease);
}
.media-frame:hover img{transform:scale(1.03)}

.media-accent{
    position:absolute;
    bottom:-16px;right:-16px;
    width:120px;height:120px;
    border-radius:var(--r-lg);
    background:linear-gradient(135deg,var(--accent),var(--accent-soft));
    opacity:0.30;
    z-index:-1;
}
.media-accent--flip{right:auto;left:-16px;background:linear-gradient(135deg,var(--primary),#4FB89C)}

/* Split text */
.split-text{display:flex;flex-direction:column;gap:0}

.section-tag{
    display:inline-flex;align-items:center;gap:8px;
    font-size:12px;font-weight:700;color:var(--primary);
    letter-spacing:1px;text-transform:uppercase;
    background:rgba(30,122,102,0.10);
    padding:7px 16px;border-radius:50px;
    margin-bottom:16px;width:fit-content;
}
.section-tag--light{
    background:rgba(255,255,255,0.14);
    color:var(--accent-soft);
}

.section-title{
    font-size:clamp(28px,4.2vw,40px);
    color:var(--ink);
    line-height:1.32;margin-bottom:16px;
}

.section-desc{
    font-size:15px;color:var(--muted);
    line-height:1.85;margin-bottom:28px;
}

.split-features{display:flex;flex-direction:column;gap:16px}
.sf-item{
    display:flex;align-items:flex-start;gap:16px;
    padding:16px 20px;
    background:var(--bg-light);
    border-radius:var(--r-md);
    border:1px solid transparent;
    transition:all 0.3s var(--ease);
}
.split-section--alt .sf-item{background:var(--white)}
.sf-item:hover{border-color:rgba(30,122,102,0.25);box-shadow:var(--shadow-s);transform:translateX(4px)}
.sf-icon{
    width:46px;height:46px;min-width:46px;
    border-radius:14px;
    background:linear-gradient(135deg,var(--primary),#3FA589);
    display:flex;align-items:center;justify-content:center;
    font-size:18px;color:var(--white);
}
.sf-item strong{font-size:15px;display:block;margin-bottom:2px;color:var(--ink);font-weight:700}
.sf-item p{font-size:13px;color:var(--muted);margin:0}

.split-highlight-box{
    display:flex;align-items:center;gap:16px;
    background:linear-gradient(135deg,rgba(255,122,89,0.10),rgba(255,217,205,0.14));
    border:1px solid rgba(255,122,89,0.24);
    border-radius:var(--r-md);
    padding:20px 24px;
}
.split-highlight-box > i{font-size:28px;color:var(--accent)}
.split-highlight-box strong{font-size:15px;display:block;margin-bottom:2px;color:var(--ink);font-weight:700}
.split-highlight-box p{font-size:13px;color:var(--muted);margin:0}

/* ============================================
   HOW SECTION (步骤)
   ============================================ */
.how-section{padding:100px 0;background:var(--white)}
.section-header{text-align:center;margin-bottom:56px}

.steps-row{
    display:flex;align-items:stretch;justify-content:center;gap:0;
}
.step-card{
    flex:1;max-width:280px;
    text-align:center;
    background:var(--bg-light);
    border-radius:var(--r-xl);
    padding:42px 28px 36px;
    position:relative;
    border:1px solid transparent;
    transition:all 0.35s var(--ease);
}
.step-card:hover{
    border-color:rgba(30,122,102,0.28);
    box-shadow:var(--shadow-m);
    transform:translateY(-6px);
}
.step-num{
    position:absolute;top:16px;right:20px;
    font-size:46px;font-family:var(--font-display);
    color:var(--accent);opacity:0.18;
    line-height:1;
}
.step-icon{
    width:66px;height:66px;margin:0 auto 20px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--accent),var(--accent-dark));
    display:flex;align-items:center;justify-content:center;
    font-size:24px;color:var(--white);
    box-shadow:var(--shadow-accent);
}
.step-card h4{font-size:19px;margin-bottom:8px;color:var(--ink)}
.step-card p{font-size:14px;color:var(--muted);line-height:1.7}

.step-arrow{
    display:flex;align-items:center;
    padding:0 12px;
    color:var(--primary);font-size:20px;opacity:0.4;
}

/* ============================================
   TESTIMONIALS
   ============================================ */
.testimonial-section{padding:100px 0;background:var(--bg-light)}
.testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}
.testimonial-card{
    background:var(--white);
    border-radius:var(--r-xl);
    padding:32px 28px;
    border:1px solid transparent;
    transition:all 0.3s var(--ease);
    display:flex;flex-direction:column;gap:16px;
}
.testimonial-card:hover{
    border-color:rgba(255,122,89,0.24);
    box-shadow:var(--shadow-m);
    transform:translateY(-4px);
}
.tc-top{display:flex;align-items:center;gap:14px}
.tc-avatar-initial{
    width:48px;height:48px;min-width:48px;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:20px;font-weight:700;
    color:var(--white);
    letter-spacing:0;
    box-shadow:0 4px 12px rgba(0,0,0,0.15);
}
.tc-top strong{font-size:15px;display:block;color:var(--ink)}
.tc-top span{font-size:12px;color:var(--muted)}
.testimonial-card > p{
    font-size:14px;color:var(--ink-soft);
    line-height:1.85;flex:1;
}
.tc-stars{display:flex;gap:3px}
.tc-stars i{font-size:14px;color:var(--accent)}

/* ============================================
   QUOTE BANNER (内嵌横幅 · 无按钮)
   ============================================ */
.cta-banner-section{padding:60px 0;background:var(--white)}
.cta-banner{
    display:flex;align-items:center;justify-content:center;text-align:center;gap:20px;
    background:var(--ink);
    border-radius:var(--r-xl);
    padding:56px 48px;
    position:relative;overflow:hidden;
}
.cta-banner::before{
    content:'';position:absolute;
    top:-60%;right:-10%;width:440px;height:440px;
    background:radial-gradient(circle,rgba(30,122,102,0.35),transparent 60%);
}
.cta-banner::after{
    content:'';position:absolute;
    bottom:-50%;left:-8%;width:360px;height:360px;
    background:radial-gradient(circle,rgba(255,122,89,0.18),transparent 60%);
}
.cta-banner-text{position:relative;z-index:2;max-width:680px}
.cta-banner-text .quote-mark{font-size:48px;color:var(--accent);font-family:var(--font-display);line-height:0.5;display:block;margin-bottom:18px}
.cta-banner-text h2{
    font-size:clamp(24px,3.2vw,34px);
    color:var(--white);
    line-height:1.4;margin-bottom:12px;
}
.cta-banner-text p{font-size:15px;color:rgba(255,255,255,0.6);margin:0}

/* ============================================
   FAQ
   ============================================ */
.faq-section{padding:100px 0;background:var(--bg-light)}

.faq-layout{
    display:grid;
    grid-template-columns:0.8fr 1.2fr;
    gap:56px;
    align-items:start;
}
.faq-left{position:sticky;top:80px}
.faq-illust{
    width:80%;max-width:260px;
    margin-top:28px;
    border-radius:var(--r-lg);
    opacity:0.95;
}

.faq-right{display:flex;flex-direction:column;gap:12px}

.faq-item{
    background:var(--white);
    border-radius:var(--r-md);
    overflow:hidden;
    border:1px solid transparent;
    transition:all 0.3s var(--ease);
}
.faq-item.active{border-color:rgba(30,122,102,0.32);box-shadow:var(--shadow-s)}

.faq-question{
    display:flex;justify-content:space-between;align-items:center;
    padding:20px 24px;cursor:pointer;
    transition:background 0.3s var(--ease);
    user-select:none;
}
.faq-question:hover{background:var(--cream)}
.faq-question span{
    font-size:15px;font-weight:600;color:var(--ink);
    display:flex;align-items:center;gap:12px;
}
.faq-question span i{color:var(--accent);font-size:10px}
.faq-arrow{color:var(--muted);font-size:14px;transition:transform 0.3s var(--ease)}
.faq-item.active .faq-arrow{transform:rotate(180deg);color:var(--primary)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s var(--ease)}
.faq-answer p{padding:0 24px 20px 46px;font-size:14px;color:var(--muted);line-height:1.85}

/* ============================================
   FOOTER
   ============================================ */
.footer{
    background:var(--ink);
    padding:48px 0 32px;
    border-top:1px solid rgba(255,122,89,0.14);
}
.footer-top{text-align:center;margin-bottom:28px}
.footer-brand h3{font-size:20px;font-family:var(--font-display);color:var(--accent-soft);margin-bottom:6px}
.footer-brand p{font-size:14px;color:rgba(255,255,255,0.4)}
.footer-bottom{text-align:center}
.footer-links{
    display:flex;justify-content:center;gap:24px;
    margin-bottom:16px;flex-wrap:wrap;
}
.footer-links a{
    font-size:13px;color:rgba(255,255,255,0.5);
    text-decoration:none;transition:color 0.3s;
    display:inline-flex;align-items:center;gap:6px;
}
.footer-links a:hover{color:var(--accent)}
.footer-copy{font-size:12px;color:rgba(255,255,255,0.25)}

/* ============================================
   FIXED CTA
   ============================================ */
.fixed-cta{
    position:fixed;bottom:0;left:0;right:0;z-index:999;
    display:flex;justify-content:center;
    padding:16px 24px;
    background:linear-gradient(0deg,rgba(21,50,43,0.96) 50%,transparent 100%);
    pointer-events:none;
}
.cta-button{
    pointer-events:all;
    display:inline-flex;align-items:center;gap:10px;
    background:linear-gradient(135deg,var(--accent),var(--accent-dark));
    color:var(--white);font-family:var(--font);
    font-size:16px;font-weight:700;
    padding:16px 36px;border:none;border-radius:60px;
    cursor:pointer;
    box-shadow:0 6px 24px rgba(255,122,89,0.45);
    letter-spacing:0.5px;white-space:nowrap;
    max-width:400px;width:100%;justify-content:center;
    animation:ctaBounce 2.4s ease-in-out infinite;
}
.cta-button:hover{
    animation-play-state:paused;
    transform:translateY(-3px) scale(1.03);
    box-shadow:0 12px 40px rgba(255,122,89,0.6);
}
.cta-button:active{transform:translateY(0) scale(1);animation-play-state:paused}

@keyframes ctaBounce{
    0%,100%{transform:translateY(0);box-shadow:0 6px 24px rgba(255,122,89,0.45)}
    15%{transform:translateY(-8px);box-shadow:0 14px 36px rgba(255,122,89,0.6)}
    30%{transform:translateY(0);box-shadow:0 6px 24px rgba(255,122,89,0.45)}
    42%{transform:translateY(-4px);box-shadow:0 10px 28px rgba(255,122,89,0.52)}
    55%{transform:translateY(0);box-shadow:0 6px 24px rgba(255,122,89,0.45)}
}
.cta-kakao-icon{width:22px;height:22px;object-fit:contain}
.cta-button i{font-size:14px;transition:transform 0.3s var(--ease)}
.cta-button:hover i{transform:translateX(4px)}

/* ============================================
   MODALS
   ============================================ */
.modal-overlay{
    position:fixed;inset:0;
    background:rgba(21,50,43,0.72);
    backdrop-filter:blur(8px);
    z-index:10000;
    display:none;align-items:center;justify-content:center;
    padding:24px;opacity:0;transition:opacity 0.3s ease;
}
.modal-overlay.active{display:flex;opacity:1}

.modal-container{
    background:var(--white);
    border-radius:var(--r-lg);
    max-width:600px;width:100%;max-height:80vh;
    overflow:hidden;
    display:flex;flex-direction:column;
    box-shadow:var(--shadow-l);
    animation:modalUp 0.3s ease;
}
@keyframes modalUp{
    from{opacity:0;transform:translateY(20px)}
    to{opacity:1;transform:translateY(0)}
}
.modal-header{
    display:flex;justify-content:space-between;align-items:center;
    padding:24px 28px;border-bottom:1px solid var(--cream-dark);
}
.modal-header h3{font-size:19px;color:var(--ink);display:flex;align-items:center;gap:10px}
.modal-header h3 i{color:var(--accent)}
.modal-close{
    width:36px;height:36px;border:none;
    background:var(--bg-light);border-radius:50%;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    color:var(--ink);font-size:16px;transition:all 0.3s;
}
.modal-close:hover{background:var(--cream-dark);color:var(--accent)}
.modal-body{padding:28px;overflow-y:auto}
.modal-body h4{font-size:15px;font-weight:700;color:var(--ink);margin:20px 0 8px}
.modal-body h4:first-child{margin-top:0}
.modal-body p{font-size:14px;color:var(--muted);line-height:1.85}

/* ============================================
   ANIMATIONS
   ============================================ */
.fade-in{
    opacity:0;
    transform:translateY(36px);
    transition:opacity 0.7s ease,transform 0.7s ease;
}
.fade-in.visible{opacity:1;transform:translateY(0)}

.fade-in-left{
    opacity:0;
    transform:translateX(-36px);
    transition:opacity 0.7s ease,transform 0.7s ease;
}
.fade-in-left.visible{opacity:1;transform:translateX(0)}

.fade-in-right{
    opacity:0;
    transform:translateX(36px);
    transition:opacity 0.7s ease,transform 0.7s ease;
}
.fade-in-right.visible{opacity:1;transform:translateX(0)}

/* ============================================
   RESPONSIVE
   ============================================ */
@media(max-width:1024px){
    .hero-inner{
        grid-template-columns:1fr;
        gap:40px;
        text-align:center;
    }
    .hero-images{
        flex-direction:row;
        justify-content:center;
        gap:16px;
    }
    .hero-img--float-1,.hero-img--float-2,
    .hero-img--float-3,.hero-img--float-4{width:45%}

    .split-row,.split-row--reverse{
        grid-template-columns:1fr;
        gap:40px;
    }
    .split-row--reverse{direction:ltr}
    .split-text{text-align:center;align-items:center}
    .section-tag{margin-left:auto;margin-right:auto}
    .split-features{align-items:stretch}

    .faq-layout{grid-template-columns:1fr;gap:32px}
    .faq-left{position:relative;top:auto;text-align:center;display:flex;flex-direction:column;align-items:center}
    .faq-illust{display:none}

    .cta-banner{padding:44px 28px}
}

@media(max-width:768px){
    body{padding-bottom:90px}

    .hero{padding:80px 16px 60px}
    .hero-images--left,.hero-images--right{flex-direction:row}
    .hero-img--float-1,.hero-img--float-2,
    .hero-img--float-3,.hero-img--float-4{width:48%}

    .hero-stats{
        flex-direction:row;flex-wrap:wrap;
        justify-content:center;gap:16px;
        padding:16px 20px;
    }

    .split-section{padding:64px 0}
    .media-accent{display:none}

    .steps-row{flex-direction:column;align-items:center;gap:16px}
    .step-arrow{transform:rotate(90deg);padding:4px 0}
    .step-card{max-width:100%;width:100%}

    .testimonial-grid{grid-template-columns:1fr;gap:16px}

    .cta-button{font-size:15px;padding:14px 28px}
}

@media(max-width:480px){
    .container{padding:0 16px}
    .hero-badge{font-size:12px;padding:6px 14px}
    .hero-images--left,.hero-images--right{gap:10px}
    .hero-img--float-1,.hero-img--float-2,
    .hero-img--float-3,.hero-img--float-4{width:47%}
    .hero-img-badge{font-size:11px;padding:4px 10px}

    .section-title{font-size:26px}
    .btn-hero{font-size:14px;padding:14px 24px}

    .marquee-track span{font-size:13px}

    .footer-links{flex-direction:column;gap:12px;align-items:center}
    .cta-button{font-size:14px;padding:13px 24px}
    .fixed-cta{padding:12px 16px}
}
