@import url('https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap');

/* 기본 리셋 & 공통 */
*{box-sizing:border-box;margin:0;padding:0}
body{
    font-family:'Poppins','Noto Sans KR',sans-serif;
    line-height:1.6;
    color:#333;
    background:#c8c4c4;
    position:relative;
}

/*변수*/
:root{
    --brand-green: #127a12;
    --brand-green-dark: #004d40;
    --delay: 0s;
    --vh: 1vh;
}

/* 전체 배경 */
body::before{
    content:"";
    position:fixed;
    top:0;left:0;width:100%;
    height:calc(var(--vh, 1vh) * 100);
    z-index:-1;pointer-events:none;

    background:url("https://cdn.golf-playground.com/images/ball1.jpg") center/cover no-repeat;
    opacity:.2;
}
a{color:inherit;text-decoration:none}


/* 헤더 */
header{position:sticky;top:0;z-index:1000;display:flex;justify-content:space-between;align-items:center;width:100%;padding:1.75rem 2rem;background:rgba(255,255,255,.55);backdrop-filter:blur(10px);color: var(--brand-green);transition:padding .3s,background .3s,color .3s}
header h1{font-size:1.8rem;white-space:nowrap}
header nav a{margin-left:1.25rem;font-weight:500;transition:opacity .2s;color:inherit}
header nav a:hover{opacity:.8}
header.sub.shrink{padding:1rem 2rem;background: var(--brand-green);color:#fff}
header.shrink nav a{color:#fff}
header.main.shrink{background: var(--brand-green);color:#fff}
header.main.shrink h1{font-size:2rem; padding-bottom: 1rem;}
body.home header .logo-wrap{
    display:flex;flex-direction:column;align-items:center;
}
body.home header.shrink{
    justify-content:center;
}
body.home header.shrink .phones{
    display:none;
}
body.home header .shrink-nav{
    display:none;
    font-size:1rem;
    flex-wrap:nowrap;
    white-space:nowrap;
    gap:1rem;
}

body.home header.shrink .shrink-nav{
    display:flex;
}

@media (max-width:420px){
    body.home header .shrink-nav{
        font-size:.85rem;
        gap:.6rem;
    }

    body.home header .shrink-nav a:not(:last-child)::after{
        margin-left:.6rem;
    }
}

body.home header .shrink-nav a:not(:last-child)::after{
    content:"|";
    margin-left:2rem;
    color:inherit;
}

/*히어로 */
.hero{
    width:100%;
    height:calc(var(--vh, 1vh) * 100);
    background:url("https://cdn.golf-playground.com/images/Main1.jpg") center/cover no-repeat;
    position:relative;display:flex;justify-content:center;align-items:center;
}
.hero::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35);backdrop-filter:blur(1px);z-index:0}
.hero h2{position:relative;z-index:1;color:#fff;font-size:2.2rem;font-weight:700;text-align:center;line-height:1.3}


/*간단한 설명 영역*/
.headline{
    font-family:'Poppins',sans-serif;
    font-weight:700;font-size:2.3rem;
    color:var(--brand-green-dark);text-align:center;
    margin:3.5rem 0 2.3rem;position:relative;
    letter-spacing:-.02em;padding-top: 5rem;
}
.headline::after{
    content:"";display:block;width:70px;height:4px;
    background: var(--brand-green);border-radius:2px;
    margin:1rem auto 0;
}

.key-points{
    list-style:none;padding:0;margin:0 auto 3rem;
    max-width:820px;
    display:grid;grid-template-columns:1fr;gap:1.25rem;
    align-content: center;

}
.key-points li{
    position:relative;
    padding:1.15rem 1.3rem 1.15rem 3.25rem;
    background:#fff;border-radius:.75rem;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
    font-size:1.45rem;line-height:1.6;color:#333;
    gap: 1.5rem;
}
.key-points li::before{
    content:"\2714";
    position:absolute;left:1.25rem;top:50%;
    transform:translateY(-50%);
    font-size:1.35rem;font-weight:700;color: var(--brand-green);
}
.key-points li span{
    color:var(--brand-green);
    font-weight:700;
    margin-right:.3rem;
    padding-bottom: 2rem;
}

@media (max-width:600px){
    .headline{font-size:1.9rem;margin:3rem 0 1.8rem;}
    .key-points{grid-template-columns:1fr;gap:1rem;}
    .key-points li{
        padding:1rem 1rem 1rem 2.75rem;font-size:.95rem;
    }
}

/*설명 영역*/
body.home .program .txt{
    font-family:'Nanum Pen Script','Noto Sans KR',cursive;
    font-size:1.35rem;
    line-height:1.9;
}


/*후기 영역*/
.review-area{
    display:flex;
    flex-direction:column;
    gap:1rem;
    align-items:center;
    justify-content:center;
}

.review-area h1{
    font-size:2rem;
    font-weight:700;
    margin-bottom:1.5rem;
    color: #010908;
}

.review{
    position:relative;
    width:100%;
    max-width:680px;
    padding:1.5rem 1.75rem 2rem 2rem;
    line-height:1.7;
    color:#333;
    display: flex;
    gap: 0.8rem;
}

.review::before{
    content:"";
    position:absolute;
    inset:0;
    background:url("https://cdn.golf-playground.com/images/back2.jpg") center/100% 100% no-repeat;
    z-index:-1;
    filter:blur(2px);
    opacity:.2;
}

.review strong{
    flex:0 0 110px;
    display:block;
    color:var(--brand-green);
    font-weight:700;
    margin-bottom:0;
}

.review span{flex:1}

@media (max-width:600px){
    .review{padding:2rem 2.25rem 2.5rem 2.5rem;font-size:.95rem}
}
@media (max-width:420px){
    .review{padding:1.5rem 2rem 2rem 2rem;font-size:.85rem}
}
@media (max-width:320px){
    .review{padding:1.25rem 1.5rem 1.75rem 1.75rem;font-size:.8rem}
}

/* 공통 섹션 */
section{padding:4rem 1.5rem;margin:auto}
.section-title{font-size:1.75rem;font-weight:700;margin-bottom:1.5rem;color: var(--brand-green)
}
.slider-wrapper{padding:0;margin:4rem 0 2rem}
section h2{font-size:2rem;font-weight:700;margin-bottom:1.5rem;color: var(--brand-green)
}




/* 이미지 갤러리 슬라이드 */
.gallery{
    position:relative;
    width:100%;height:60vw;max-height:600px;
    display:flex;justify-content:center;align-items:center;
    overflow:hidden;border-radius:.75rem;
    box-shadow:0 4px 12px rgba(0,0,0,.12);
    background:#000;
    transition:background-color .6s;
}
.gallery img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:contain;
    object-position:center;
    opacity:0;transition:opacity .8s ease;
}
.gallery img.active{opacity:1}
.gallery-dots{
    text-align:center;margin-top:1rem;
}
.gallery-dots .dot{
    display:inline-block;width:12px;height:12px;margin:0 6px;
    border-radius:50%;background:#d0d0d0;cursor:pointer;
    transition:background .3s,transform .3s;
}
.gallery-dots .dot:hover{transform:scale(1.15)}
.gallery-dots .dot.active{background: var(--brand-green)
}

/*프로그램 설명(사진 + 텍스트)*/
.program{display:flex;flex-wrap:wrap;gap:2rem; padding-top: 1rem; padding-bottom: 4rem; align-items: center; justify-content: center;
    max-width:1200px;margin:auto}
.program img{width:330px;max-width:100%;border-radius:1rem;flex-shrink:0}
.program .txt{flex:1;min-width:260px;display:flex;flex-direction:column;justify-content:center;font-size:1.05rem;line-height:1.8;}
.program .padding{padding-left: 1rem;}

@media (max-width:600px){
    .program{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .program .txt{
        align-items:center;
        text-align:center;
        min-width:0;
        width:100%;
    }

    .program img{
        margin-bottom:1rem;
    }
}

/* 카드 */
.card{background:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.card-program{background:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 2px 8px rgba(0,0,0,.08);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    transition:transform .3s,box-shadow .3s;}


/* 지도 */
.map{width:100%;height:300px;border-radius:.5rem;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.map-wrapper{margin:1.5rem 0;padding:.5rem;background:#f5f5f5;border-radius:.75rem;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.map-wrapper iframe{width:100%;height:450px;border:0;border-radius:.5rem}


/* 푸터 */
footer{background: var(--brand-green);color:#fff;text-align:center;padding:1rem 0;position:relative;bottom:0;width:100%}

/* 3D 카드  */
.card3d{
    position:relative;
    display:inline-block;
    transition:transform .12s;
    transform-style:preserve-3d;
    cursor:pointer;
    border-radius:12px;
}
.card-img{
    display:block;
    width:100%;
    height:auto;
    backface-visibility:hidden;
    border-radius:inherit;
    box-shadow:0 10px 20px rgba(0,0,0,.15);
}
.card-overlay{
    position:absolute; inset:0;
    border-radius:inherit;
    pointer-events:none;
    background:linear-gradient(105deg,
    transparent 40%,
    rgba(255,219,112,.8) 45%,
    rgba(132,50,255,.6) 50%,
    transparent 54%);
    background-size:150% 150%;
    mix-blend-mode:color-dodge;
    filter:brightness(1.1) opacity(0);
    transition:filter .12s, background-position .12s;
}


/* ─── 스크롤-리빌 기본 ─── */
.reveal{
    opacity:0;
    transform:translateY(40px);
    transition:opacity .8s ease var(--delay,0s),
    transform .8s ease var(--delay,0s);
}
.reveal.visible{
    opacity:1;
    transform:none;
}
@media (prefers-reduced-motion:reduce){
    .reveal{opacity:1 !important;transform:none !important}
}


/* 레슨 */
.price-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:1.5rem 2rem;
    max-width:960px;margin:0 auto 4rem;
}

.card-program{
    background:#fff;border-radius:.9rem;padding:1.75rem 1.5rem;
    box-shadow:0 4px 14px rgba(0,0,0,.08);
    text-align:center;transition:.25s;
}
.card-program:hover{transform:translateY(-6px);box-shadow:0 6px 18px rgba(0,0,0,.12)}

.card-program h3{font-size:1.25rem;margin-bottom:.9rem;color:var(--brand-green-dark)}
.card-program .price{font-size:1.35rem;font-weight:700;margin-top:1.1rem;color:var(--brand-green)}
.card-program .note{font-size:.85rem;color:#666;margin-top:.3rem}
.card-program ul{list-style:disc inside;margin:.3rem 0 0 0;font-size:.95rem;line-height:1.55}
.card-program ul .include{font-weight:600;color:var(--brand-green)}

.lesson-block{max-width:960px;margin:0 auto 4rem;padding:0 1rem}
.lesson-block h2{font-size:1.75rem;font-weight:700;margin-bottom:1.5rem;color:var(--brand-green)}
.lesson-card{
    background:#fff;border-radius:.9rem;padding:1.75rem 1.5rem;
    box-shadow:0 4px 14px rgba(0,0,0,.08);text-align:center;
    transition:.25s;
}
.lesson-card:hover{transform:translateY(-6px);box-shadow:0 6px 18px rgba(0,0,0,.12)}
.lesson-card h3{font-size:1.25rem;margin-bottom:.9rem;color:var(--brand-green-dark)}
.lesson-card .price{font-size:1.35rem;font-weight:700;margin-top:1rem;color:var(--brand-green)}
.lesson-card .note{font-size:.85rem;color:#666;margin-top:.35rem}

/* 이벤트 패키지 카드 2-열 그리드 */
.event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem 2rem}
.event-grid ul{list-style:disc inside;margin:.3rem 0 0;font-size:.95rem;line-height:1.55}
.event-grid .include{font-weight:600;color:var(--brand-green)}