:root{
    --gg-mint:#B8DAD4;
    --gg-mint-soft:#DDEDEA;
    --gg-mint-bg:#EEF7F4;
    --gg-blue:#1F4E96;
    --gg-blue-dark:#173C75;
    --gg-blue-soft:#E8F0FF;
    --gg-terra:#B85C4A;
    --gg-terra-soft:#E8A092;
    --gg-cream:#F6EFD8;
    --gg-paper:#FBFAF5;
    --gg-ink:#243842;
    --gg-muted:#60727B;
    --gg-line:rgba(31,78,150,.14);
    --gg-shadow:0 18px 42px rgba(36,56,66,.10);
}

.ggp-wrap{
    position:relative;
    overflow:hidden;
    font-family:'Pretendard',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
    color:var(--gg-ink);
    background:
            radial-gradient(circle at 12% 10%, rgba(255,255,255,.85) 0 0, transparent 28%),
            radial-gradient(circle at 88% 14%, rgba(255,255,255,.65) 0 0, transparent 25%),
            linear-gradient(180deg,var(--gg-mint) 0%,var(--gg-mint-bg) 38%,var(--gg-paper) 100%);
    letter-spacing:-.01em;
}

.ggp-wrap *{
    box-sizing:border-box;
    -webkit-font-smoothing:antialiased;
}

.ggp-wrap h1,
.ggp-wrap h2,
.ggp-wrap h3,
.ggp-wrap h4{
    font-weight:900;
    letter-spacing:-.04em;
}

.ggp-wrap a{
    text-decoration:none;
}

/* =========================
   Hero
========================= */

.ggp-hero{
    position:relative;
    overflow:hidden;
    padding:84px 0 64px;
}

.ggp-hero::before,
.ggp-hero::after{
    content:"";
    position:absolute;
    top:-8%;
    width:58px;
    height:116%;
    border-radius:999px;
    background:linear-gradient(180deg,var(--gg-terra),#C96555);
    opacity:.88;
    z-index:0;
}

.ggp-hero::before{
    left:8%;
    transform:rotate(-2deg);
}

.ggp-hero::after{
    right:8%;
    transform:rotate(2deg);
}

.ggp-bg-orb{
    position:absolute;
    border-radius:999px;
    pointer-events:none;
    z-index:0;
    filter:blur(.2px);
}

.ggp-bg-orb.orb-1{
    width:220px;
    height:220px;
    left:-70px;
    top:120px;
    background:rgba(255,255,255,.34);
}

.ggp-bg-orb.orb-2{
    width:260px;
    height:260px;
    right:-100px;
    top:40px;
    background:rgba(246,239,216,.55);
}

.ggp-bg-orb.orb-3{
    width:180px;
    height:180px;
    right:12%;
    bottom:40px;
    background:rgba(232,160,146,.20);
}

.ggp-pola{
    position:absolute;
    width:116px;
    padding:8px 8px 22px;
    border-radius:4px;
    background:#fff;
    box-shadow:0 14px 28px rgba(36,56,66,.14);
    z-index:0;
    pointer-events:none;
}

.ggp-pola span{
    display:block;
    width:100%;
    height:74px;
    border-radius:3px;
}

.ggp-pola.p1{
    left:5%;
    top:16%;
    transform:rotate(-8deg);
}

.ggp-pola.p1 span{
    background:linear-gradient(145deg,#9BCB77 0%,#F4D46B 46%,#7FCBD5 100%);
}

.ggp-pola.p2{
    right:5%;
    top:20%;
    transform:rotate(7deg);
}

.ggp-pola.p2 span{
    background:linear-gradient(145deg,#D7DCE2 0%,#87919D 50%,#7DD5D6 100%);
}

.ggp-pola.p3{
    left:6%;
    bottom:9%;
    transform:rotate(6deg);
}

.ggp-pola.p3 span{
    background:linear-gradient(145deg,#F5F7F3 0%,#8FB56A 58%,#E6C24A 100%);
}

.ggp-pola.p4{
    right:6%;
    bottom:8%;
    transform:rotate(-6deg);
}

.ggp-pola.p4 span{
    background:linear-gradient(145deg,#F7FBFF 0%,#86BE63 48%,#CBD7DF 100%);
}

.ggp-hero-inner{
    position:relative;
    z-index:1;
}

.ggp-eyebrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:8px 16px;
    border-radius:999px;
    background:rgba(255,255,255,.78);
    color:var(--gg-terra);
    font-size:.92rem;
    font-weight:800;
    box-shadow:0 10px 24px rgba(36,56,66,.08);
}

.ggp-ribbon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:20px;
    padding:.5rem 1.6rem;
    background:var(--gg-blue);
    color:#fff;
    border-radius:8px;
    font-size:clamp(1.9rem,7vw,3.5rem);
    font-weight:900;
    line-height:1;
    box-shadow:0 14px 34px rgba(31,78,150,.28);
    clip-path:polygon(0 0,100% 0,94% 50%,100% 100%,0 100%,6% 50%);
}

.ggp-title{
    margin:.55rem 0 0;
    color:var(--gg-blue);
    font-size:clamp(2.45rem,8.5vw,4.9rem);
    line-height:1.05;
}

.ggp-lede{
    margin:1.1rem 0 0;
    color:#3F9B58;
    font-size:clamp(1.05rem,3.3vw,1.42rem);
    font-weight:800;
}

.ggp-hero-meta{
    display:inline-flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    margin-top:22px;
}

.ggp-meta-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:38px;
    padding:0 14px;
    border-radius:999px;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(31,78,150,.10);
    color:var(--gg-blue-dark);
    font-size:.94rem;
    font-weight:800;
}

/* =========================
   Camera
========================= */

.ggp-camera{
    position:relative;
    max-width:420px;
    margin:34px auto 0;
    padding:22px 26px 24px;
    border-radius:28px;
    background:linear-gradient(135deg,#E5EAF8 0%,#F8FAFF 58%,#D7E2F5 100%);
    box-shadow:0 28px 60px rgba(31,78,150,.18);
}

.ggp-camera::before{
    content:"";
    position:absolute;
    left:34px;
    top:-16px;
    width:90px;
    height:34px;
    border-radius:12px 12px 0 0;
    background:#CBD6EC;
}

.ggp-camera-top{
    height:26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:8px;
}

.ggp-camera-slot{
    width:92px;
    height:18px;
    border-radius:5px;
    background:#273044;
}

.ggp-camera-flash{
    width:68px;
    height:42px;
    border-radius:8px;
    border:5px solid #394358;
    background:#fff;
    box-shadow:inset 0 0 0 8px #E6ECF7;
}

.ggp-lens{
    width:164px;
    height:164px;
    margin:auto;
    border-radius:999px;
    border:14px solid #fff;
    background:
            radial-gradient(circle at 34% 31%,#fff 0 8%,transparent 9%),
            radial-gradient(circle,#111827 0 20%,#273044 21% 42%,#4b556f 43% 62%,#222a3b 63%);
    box-shadow:0 12px 26px rgba(0,0,0,.18);
}

/* =========================
   Button
========================= */

.ggp-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:50px;
    padding:0 24px;
    border-radius:12px;
    font-weight:900;
    transition:.18s ease;
}

.ggp-btn-primary{
    background:var(--gg-terra);
    color:#fff;
    box-shadow:0 10px 22px rgba(184,92,74,.30);
}

.ggp-btn-primary:hover{
    background:#A94E3D;
    color:#fff;
    transform:translateY(-2px);
}

.ggp-btn-outline{
    background:var(--gg-blue);
    color:#fff;
    border:1.5px solid var(--gg-blue);
}

.ggp-btn-outline:hover{
    background:var(--gg-blue);
    color:#fff;
    transform:translateY(-2px);
}

/* =========================
   Section
========================= */

.ggp-section{
    position:relative;
    padding:64px 0;
}

.ggp-section.is-soft{
    background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.78));
}

.ggp-sec-head{
    margin-bottom:28px;
}

.ggp-sec-kicker{
    color:var(--gg-terra);
    font-size:.9rem;
    font-weight:900;
    letter-spacing:.06em;
}

.ggp-sec-title{
    margin:.35rem 0 0;
    color:var(--gg-blue);
    font-size:clamp(1.55rem,5vw,2.2rem);
    line-height:1.25;
}

.ggp-sec-line{
    width:48px;
    height:4px;
    margin-top:14px;
    border-radius:999px;
    background:var(--gg-terra);
}

/* =========================
   Equal Height
========================= */

.ggp-eq-row > [class*="col-"]{
    display:flex;
}

.ggp-eq-row .ggp-card{
    height:100%;
}

/* =========================
   Card
========================= */

.ggp-card{
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    padding:1.55rem;
    border:1px solid var(--gg-line);
    border-radius:18px;
    background:rgba(255,255,255,.88);
    box-shadow:0 12px 30px rgba(36,56,66,.06);
}

.ggp-card.is-blue{
    background:linear-gradient(135deg,var(--gg-blue) 0%,var(--gg-blue-dark) 100%);
    color:#fff;
}

.ggp-card.is-mint{
    background:linear-gradient(135deg,#FFFFFF 0%,var(--gg-mint-bg) 100%);
}

.ggp-card-label{
    display:inline-flex;
    align-self:flex-start;
    align-items:center;
    gap:6px;
    padding:5px 10px;
    border-radius:8px;
    background:var(--gg-blue);
    color:#fff;
    font-size:.82rem;
    font-weight:900;
}

.ggp-card-label i{
    font-size:.95rem;
    line-height:1;
}

.ggp-card.is-blue .ggp-card-label{
    background:rgba(255,255,255,.18);
}

.ggp-icon-title{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:14px;
}

.ggp-icon-title > i{
    flex:0 0 34px;
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:rgba(31,78,150,.10);
    color:var(--gg-blue);
    font-size:1.05rem;
    margin-top:2px;
}

.ggp-card.is-blue .ggp-icon-title > i{
    background:rgba(255,255,255,.18);
    color:#fff;
}

.ggp-card-title{
    margin:0;
    color:var(--gg-blue-dark);
    font-size:1.3rem;
    font-weight:900;
    line-height:1.38;
}

.ggp-card.is-blue .ggp-card-title{
    color:#fff;
}

.ggp-card-desc{
    margin:10px 0 0;
    color:var(--gg-muted);
    line-height:1.72;
    font-weight:600;
}

.ggp-card.is-blue .ggp-card-desc{
    color:#DDEDEA;
}

/* =========================
   Info List
========================= */

.ggp-info-list{
    display:grid;
    gap:12px;
    margin:18px 0 0;
    padding:0;
    list-style:none;
}

.ggp-info-list li{
    display:flex;
    gap:12px;
    padding-bottom:12px;
    border-bottom:1px dashed var(--gg-line);
}

.ggp-info-list li:last-child{
    padding-bottom:0;
    border-bottom:0;
}

.ggp-info-list b{
    flex:0 0 108px;
    color:var(--gg-blue-dark);
    font-weight:900;
}

.ggp-info-list b i{
    margin-right:6px;
    color:var(--gg-terra);
}

.ggp-info-list span{
    color:var(--gg-muted);
    font-weight:650;
    line-height:1.6;
}

/* =========================
   Spec
========================= */

.ggp-spec-box{
    padding:1.25rem;
    border-radius:16px;
    background:var(--gg-mint-bg);
    border:1px solid rgba(31,78,150,.10);
}

.ggp-spec-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}

.ggp-spec-chip{
    height:100%;
    padding:1rem;
    border-radius:14px;
    background:#fff;
    border:1px solid var(--gg-line);
}

.ggp-spec-chip .k{
    display:flex;
    align-items:center;
    gap:6px;
    color:var(--gg-blue);
    font-size:.84rem;
    font-weight:900;
}

.ggp-spec-chip .k i{
    color:var(--gg-terra);
}

.ggp-spec-chip .v{
    margin-top:4px;
    color:var(--gg-ink);
    font-size:1.08rem;
    font-weight:900;
}

/* =========================
   Table & Scroll Hint
========================= */

.ggp-scroll-hint{
    display:none;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:0 0 10px;
    padding:9px 12px;
    border-radius:999px;
    background:rgba(31,78,150,.08);
    border:1px solid rgba(31,78,150,.14);
    color:var(--gg-blue);
    font-size:.86rem;
    font-weight:800;
}

.ggp-scroll-hint .ggp-scroll-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    border-radius:999px;
    background:rgba(31,78,150,.12);
    animation:ggpScrollMove 1.2s ease-in-out infinite;
}

.ggp-scroll-hint i{
    font-size:1rem;
}

@keyframes ggpScrollMove{
    0%,100%{
        transform:translateX(0);
    }
    50%{
        transform:translateX(4px);
    }
}

.ggp-table-wrap{
    position:relative;
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border-radius:16px;
    border:1px solid var(--gg-line);
    background:#fff;
}

.ggp-table{
    width:100%;
    min-width:620px;
    margin:0;
    border-collapse:separate;
    border-spacing:0;
}

.ggp-table th{
    padding:.85rem 1rem;
    background:var(--gg-blue);
    color:#fff;
    font-size:.94rem;
    font-weight:900;
    text-align:center;
    white-space:nowrap;
}

.ggp-table td{
    padding:.9rem 1rem;
    border-bottom:1px solid var(--gg-line);
    color:var(--gg-ink);
    font-weight:650;
    text-align:center;
    vertical-align:middle;
    background:#fff;
}

.ggp-table tbody tr:last-child td{
    border-bottom:0;
}

.ggp-table .grade{
    color:var(--gg-blue);
    font-weight:900;
}

.ggp-table .money{
    color:var(--gg-terra);
    font-weight:900;
}

/* =========================
   Timeline
========================= */

.ggp-timeline{
    position:relative;
    display:grid;
    gap:16px;
}

.ggp-timeline.ggp-fill{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:16px;
}

.ggp-step{
    position:relative;
    display:flex;
    align-items:center;
    gap:14px;
    height:100%;
    padding:18px;
    border-radius:16px;
    background:rgba(255,255,255,.88);
    border:1px solid var(--gg-line);
}

.ggp-timeline.ggp-fill .ggp-step{
    flex:1;
}

.ggp-step-num{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:var(--gg-terra);
    color:#fff;
    font-weight:900;
}

.ggp-step-num i{
    font-size:1rem;
}

.ggp-step-date{
    color:var(--gg-blue);
    font-weight:900;
}

.ggp-step-title{
    margin-top:3px;
    color:var(--gg-ink);
    font-weight:900;
}

.ggp-step-title i{
    margin-right:6px;
    color:var(--gg-terra);
}

.ggp-step-desc{
    margin-top:3px;
    color:var(--gg-muted);
    font-size:.92rem;
    font-weight:600;
    line-height:1.55;
}

/* =========================
   Notice
========================= */

.ggp-notice{
    display:grid;
    gap:10px;
    margin:0;
    padding:0;
    list-style:none;
}

.ggp-notice.ggp-fill{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.ggp-notice li{
    position:relative;
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 14px;
    border-radius:14px;
    background:#fff;
    border:1px solid var(--gg-line);
    color:#44555E;
    font-weight:650;
    line-height:1.6;
}

.ggp-notice.ggp-fill li{
    flex:1;
    min-height:72px;
}

.ggp-notice li i{
    flex:0 0 20px;
    color:var(--gg-terra);
    font-size:1rem;
}

.ggp-notice-desc{
    margin-top:18px;
}

/* =========================
   CTA
========================= */

.ggp-cta{
    position:relative;
    overflow:hidden;
    padding:3rem 1.4rem;
    border-radius:26px;
    background:
            radial-gradient(circle at 12% 16%,rgba(255,255,255,.16),transparent 24%),
            radial-gradient(circle at 86% 24%,rgba(184,218,212,.20),transparent 28%),
            linear-gradient(135deg,var(--gg-blue) 0%,var(--gg-blue-dark) 100%);
    color:#fff;
    text-align:center;
    box-shadow:var(--gg-shadow);
}

.ggp-cta h2{
    margin:0;
    color:#fff;
    font-size:clamp(1.7rem,5vw,2.45rem);
}

.ggp-cta p{
    margin:.7rem 0 0;
    color:#DDEDEA;
    font-weight:800;
}

.ggp-cta .ggp-btn-outline{
    background:rgba(255,255,255,.10);
    color:#fff;
    border-color:rgba(255,255,255,.55);
}

.ggp-cta .ggp-btn-outline:hover{
    background:#fff;
    color:var(--gg-blue);
}

.ggp-contact{
    margin-top:18px;
    color:#E8F3F0;
    font-size:.94rem;
    font-weight:650;
}

/* =========================
   Responsive
========================= */

@media(max-width:991px){
    .ggp-hero::before,
    .ggp-hero::after{
        width:28px;
    }

    .ggp-hero::before{
        left:2%;
    }

    .ggp-hero::after{
        right:2%;
    }

    .ggp-pola{
        opacity:.42;
        transform:scale(.72) rotate(0deg);
    }

    .ggp-pola.p1,
    .ggp-pola.p3{
        left:-22px;
    }

    .ggp-pola.p2,
    .ggp-pola.p4{
        right:-22px;
    }

    .ggp-spec-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .ggp-timeline.ggp-fill,
    .ggp-notice.ggp-fill{
        display:grid;
    }

    .ggp-notice.ggp-fill li{
        min-height:auto;
    }
}

@media(max-width:768px){
    .ggp-hero{
        padding:48px 0 40px;
    }

    .ggp-section{
        padding:42px 0;
    }

    .ggp-card{
        padding:1rem;
        border-radius:16px;
    }

    .ggp-icon-title > i{
        width:30px;
        height:30px;
        flex-basis:30px;
        font-size:.95rem;
    }

    .ggp-info-list li{
        display:block;
    }

    .ggp-info-list b{
        display:block;
        margin-bottom:4px;
    }

    .ggp-camera{
        max-width:300px;
        padding:18px;
    }

    .ggp-lens{
        width:126px;
        height:126px;
    }

    .ggp-btn{
        width:100%;
    }

    .ggp-scroll-hint{
        display:flex;
    }

    .ggp-table-wrap{
        box-shadow:inset -18px 0 20px rgba(31,78,150,.08);
    }

    .ggp-table{
        min-width:680px;
    }
}