/* =========================
   1100 GOJI STYLE
   Build 0.41
========================= */

:root{

    --green:#2f5d50;
    --beige:#f7f3ee;
    --dark:#222;
    --gray:#666;
    --white:#ffffff;

}



*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}



html{

    scroll-behavior:smooth;

}



body{

    font-family:'Noto Sans KR',sans-serif;
    background:var(--beige);
    color:var(--dark);
    line-height:1.6;

}



img{

    width:100%;
    display:block;

}



a{

    text-decoration:none;
    color:inherit;

}



/* =========================
HEADER
========================= */


.header{

    position:fixed;
    top:0;
    left:0;
    width:100%;
    padding:25px 50px;

    display:flex;
    justify-content:space-between;
    align-items:center;

    color:white;

    z-index:100;

}



.logo{

font-size:30px;
font-weight:900;
letter-spacing:3px;
text-align:center;
line-height:.9;

}



.logo span{

    display:block;
    font-size:11px;
    letter-spacing:5px;

}



.header nav{

    display:flex;
    gap:35px;

    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);

}



.header nav a{

    font-size:14px;
    letter-spacing:2px;

}



.mobile-menu{

    display:none;
    font-size:25px;

}





/* =========================
HERO
========================= */


.hero{
    position:relative;

    height:100vh;
    min-height:700px;

    background:
        linear-gradient(
            rgba(0,0,0,.15),
            rgba(0,0,0,.45)
        ),
        url("../images/hero.jpg");

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:white;
}




.hero-content{


animation:fadeUp 1.2s ease;


}



.small-title{


font-size:14px;

letter-spacing:5px;

margin-bottom:20px;


}



.hero h1{

font-size:90px;
letter-spacing:12px;
font-weight:900;
line-height:1;

}



.hero h2{


font-size:30px;

margin-top:25px;

line-height:1.5;


}



.button{

    display:inline-block;

    margin-top:45px;

    padding:16px 42px;

    border-radius:60px;

    color:white;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(14px);

    border:1px solid rgba(255,255,255,.25);

    transition:.4s;

}

.button:hover{

    background:white;

    color:#222;

    transform:translateY(-3px);

}






/* =========================
COMMON
========================= */


.section{

padding:120px 20px;

}



.container{

max-width:1200px;

margin:auto;

}



.label{


color:var(--green);

font-size:13px;

letter-spacing:4px;

margin-bottom:20px;


font-weight:700;


}




h2{

font-size:45px;

line-height:1.3;

margin-bottom:40px;

}






/* =========================
STORY
========================= */


.story{

text-align:center;

}



.story .text{


font-size:18px;

color:#555;

line-height:2;


}







/* =========================
MENU
========================= */


.menu{

background:white;
   text-align:center;

}



.menu > .container > h2{

margin-bottom:60px;

}



.menu-grid{


display:grid;

grid-template-columns:repeat(3,1fr);

gap:35px;


}



.menu-card{


background:white;

border-radius:25px;

overflow:hidden;

box-shadow:
0 15px 40px rgba(0,0,0,.08);


transition:.4s;


}



.menu-card:hover{


transform:translateY(-10px);


}
.menu-card img{

transition:.5s;

}


.menu-card:hover img{

transform:scale(1.05);

}



.menu-content{

    padding:30px;

}



.menu-card h3{


font-size:28px;

margin-bottom:5px;


}



.menu-card span{


font-size:12px;

letter-spacing:3px;

color:var(--green);


}



.menu-card p{


margin-top:20px;

color:#666;


}


.menu-card img{

height:280px;
object-fit:cover;

}



/* =========================
   JEJU MOMENT
   1100 GOJI TRAVEL EDITION
========================= */

.moment{
    position:relative;

    background:
        linear-gradient(
            180deg,
            #f7f3ee 0%,
            #ffffff 100%
        );

    text-align:center;

    overflow:hidden;
}


/* 작은 라벨 */

.moment .label{

    margin-bottom:24px;

    color:#2f5d50;

    font-size:10px;

    font-weight:600;

    letter-spacing:4px;
}


/* 사진 */

.moment-image{

    display:block;

    width:100%;

    max-width:1100px;

    height:560px;

    margin:0 auto 65px;

    object-fit:cover;

    object-position:center;

    border-radius:30px;

    box-shadow:
        0 25px 70px rgba(0,0,0,.12);

    transition:
        transform 1.2s cubic-bezier(.2,.7,.2,1);
}


/* 사진에 마우스를 올리면 아주 천천히 */

.moment-image:hover{

    transform:scale(1.015);

}


/* 제목 */

.moment h2{

    margin:0 auto 32px;

    color:#222;

    font-size:42px;

    font-weight:500;

    line-height:1.45;

    letter-spacing:-1.5px;

}


/* 설명 */

.moment-text{

    margin:0 auto;

    max-width:620px;

    color:#666;

    font-size:17px;

    font-weight:400;

    line-height:2.05;

    word-break:keep-all;

}


/* =========================
   DECORATIVE LINE
========================= */

.moment::after{

    content:"";

    display:block;

    width:1px;

    height:70px;

    margin:70px auto 0;

    background:
        linear-gradient(
            to bottom,
            rgba(47,93,80,.5),
            transparent
        );

}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .moment{

        padding-left:0;
        padding-right:0;

    }


    .moment .container{

        width:100%;

    }


    .moment .label{

        margin-bottom:18px;

        font-size:9px;

        letter-spacing:3px;

    }


    .moment-image{

        width:calc(100% - 32px);

        height:390px;

        margin:
            0 auto 42px;

        border-radius:20px;

        box-shadow:
            0 15px 40px rgba(0,0,0,.10);

    }


    .moment h2{

        padding:0 20px;

        font-size:29px;

        line-height:1.5;

        letter-spacing:-1px;

        margin-bottom:25px;

    }


    .moment-text{

        padding:0 25px;

        font-size:15px;

        line-height:1.95;

    }


    .moment::after{

        height:55px;

        margin-top:55px;

    }

}


/* =========================
LOCATION
========================= */


.location-desc{

    margin-bottom:45px;

    color:#666;

    line-height:2;

    font-size:18px;

}

.location-info{

    display:grid;

    gap:18px;

    margin-bottom:45px;

    font-size:18px;

}

.location-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}

.location-buttons a{

    padding:14px 32px;

    border-radius:50px;

    background:#2f5d50;

    color:white;

    transition:.3s;

}

.location-buttons a:hover{

    transform:translateY(-3px);

    background:#24483d;

}


/* =========================
ANIMATION
========================= */


@keyframes fadeUp{


from{

opacity:0;

transform:translateY(40px);

}


to{

opacity:1;

transform:translateY(0);

}


}






/* =========================
MOBILE
========================= */


@media(max-width:768px){



.header{

padding:20px;

}



.logo{

font-size:22px;

}



.header > nav{
    display:none;
}



.mobile-menu{

display:block;

}




.hero{


background-position:center;


}





.hero h2{


font-size:20px;


}



.small-title{


font-size:11px;


}



.section{


padding:80px 20px;


}



h2{


font-size:32px;


}



.menu-grid{


grid-template-columns:1fr;


}



.menu-card img{


height:240px;


}


}

/* =========================
SCROLL EFFECT
========================= */


.hidden{

opacity:0;

transform:translateY(50px);

transition:1s;

}



.show{

opacity:1;

transform:translateY(0);

}


.logo span{

    margin-top:8px;

}


.route{

    padding:140px 20px;

    background:linear-gradient(
        #f7f3ee,
        #ffffff
    );

    text-align:center;

}

.route p{

letter-spacing:5px;

color:#2f5d50;

font-size:13px;

}


.route h2{

margin:30px 0;

}



.route-line{

font-size:20px;

line-height:3;

}



.route-line strong{

    display:block;

    font-size:52px;

    color:#2f5d50;

    letter-spacing:4px;

    margin:20px 0;

}
.hero{

background-position:center center;

}

@media(max-width:768px){

.hero{

background-size:cover;
background-position:55% center;

}

}
.hero::after{

content:"";

position:absolute;

inset:0;

z-index:1;
pointer-events:none;

}
/* =========================
   HERO SCROLL INDICATOR
========================= */

.scroll-indicator{
    position:absolute;
    left:50%;
    bottom:35px;
    transform:translateX(-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    color:#fff;
    z-index:5;
    letter-spacing:3px;
    font-size:11px;
}

.mouse{
    width:26px;
    height:42px;
    border:2px solid rgba(255,255,255,.8);
    border-radius:20px;
    margin-top:10px;
    position:relative;
}

.wheel{
    width:4px;
    height:8px;
    background:#fff;
    border-radius:3px;
    position:absolute;
    left:50%;
    top:8px;
    transform:translateX(-50%);
    animation:wheelMove 1.8s infinite;
}

@keyframes wheelMove{

0%{
opacity:1;
top:8px;
}

100%{
opacity:0;
top:22px;
}

}

.button{

background:rgba(255,255,255,.08);

backdrop-filter:blur(12px);

border:1px solid rgba(255,255,255,.25);

}
   .hero-content{

position:relative;
z-index:2;

}


.scroll-indicator{

position:absolute;
z-index:5;

}

.menu-more{

display:inline-block;
margin-top:50px;

padding:15px 45px;

border:1px solid #2f5d50;

border-radius:50px;

color:#2f5d50;

transition:.3s;

}


.menu-more:hover{

background:#2f5d50;
color:white;

}

.menu-more{

display:inline-block;
margin-top:50px;

padding:15px 45px;

border:1px solid #2f5d50;

border-radius:50px;

color:#2f5d50;

transition:.3s;

}


.menu-more:hover{

background:#2f5d50;

color:white;

}

/* =========================
JEJU MOMENT
========================= */

.moment{

    background:#ffffff;
    text-align:center;

}

.moment-image{

    width:100%;
    max-width:1000px;
    height:500px;

    object-fit:cover;

    border-radius:28px;

    margin:0 auto 60px;

    box-shadow:0 20px 50px rgba(0,0,0,.12);

}

.moment h2{

    margin-bottom:30px;

}

.moment-text{

    font-size:19px;
    color:#555;
    line-height:2;

}

@media(max-width:768px){

.moment-image{

    height:280px;
    border-radius:18px;
    margin-bottom:40px;

}

.moment-text{

    font-size:17px;

}

}

.location-info{

margin:50px 0;

display:grid;

gap:18px;

font-size:19px;

color:#555;

}

.location-buttons{

display:flex;

justify-content:center;

gap:20px;

margin-top:40px;

flex-wrap:wrap;

}

.location-buttons a{

padding:14px 32px;

border:1px solid var(--green);

border-radius:50px;

transition:.3s;

}

.location-buttons a:hover{

background:var(--green);

color:white;

}
/* =========================
HERO IMAGE ZOOM
========================= */

.hero{

    animation:heroZoom 18s ease-in-out infinite alternate;

}

@keyframes heroZoom{

    from{

        background-size:100%;

    }

    to{

        background-size:108%;

    }

}
.hero .small-title{

animation:fadeUp 1s .2s both;

}

.hero h1{

animation:fadeUp 1s .6s both;

}

.hero h2{

animation:fadeUp 1s 1s both;

}

.button{

animation:fadeUp 1s 1.4s both;

}

.scroll-indicator{

animation:float 2.8s ease-in-out infinite;

}

@keyframes float{

0%,100%{

transform:translateX(-50%) translateY(0);

}

50%{

transform:translateX(-50%) translateY(8px);

}

}
/* =========================
MENU IMAGE EFFECT
========================= */

.menu-image{
    position:relative;
    overflow:hidden;
}

.menu-image img{
    display:block;
    width:100%;
    transition:transform .6s ease;
}

.menu-card:hover .menu-image img{
    transform:scale(1.08);
}

.menu-overlay{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:28px;

    background:linear-gradient(
        transparent 30%,
        rgba(0,0,0,.65)
    );

    color:#fff;
    opacity:0;
    transition:opacity .4s ease;
}

.menu-card:hover .menu-overlay{
    opacity:1;
}

.menu-overlay span{
    font-size:11px;
    letter-spacing:3px;
    opacity:.9;
}

.menu-overlay h4{
    margin-top:8px;
    font-size:22px;
    font-weight:700;
    line-height:1.3;
}
/* =========================
   CLOSING
========================= */

.closing{

    padding:180px 20px;
    background:#2f5d50;
    color:#fff;
    text-align:center;

}

.closing h2{

    font-size:56px;
    line-height:1.5;
    margin-bottom:40px;
    font-weight:700;

}

.closing p{

    font-size:16px;
    letter-spacing:6px;
    opacity:.8;
    line-height:2;

}

@media(max-width:768px){

    .closing{

        padding:120px 20px;

    }

    .closing h2{

        font-size:34px;

    }

    .closing p{

        font-size:13px;
        letter-spacing:4px;

    }

}

/* =========================
   HEADER SCROLL
========================= */

.header.scrolled{

    background:rgba(255,255,255,.96);

    color:#222;

    box-shadow:0 6px 30px rgba(0,0,0,.08);

    backdrop-filter:blur(14px);

    transition:.35s;

}

.header.scrolled a{

    color:#222;

}
/* =========================
   MOBILE NAV
========================= */

.mobile-nav{
    position:fixed;

    inset:0;

    width:100%;
    height:100vh;
    height:100dvh;

    background:rgba(247,243,238,.97);

    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    overflow-y:auto;
    overflow-x:hidden;

    z-index:9999;

    opacity:0;
    visibility:hidden;

    transform:translateX(100%);

    transition:
        opacity .4s ease,
        visibility .4s ease,
        transform .5s cubic-bezier(.77,0,.18,1);
}


/* 메뉴 OPEN */

.mobile-nav.active{

    opacity:1;
    visibility:visible;

    transform:translateX(0);
}


/* =========================
   MOBILE NAV LIST
========================= */

.mobile-nav nav{

    display:flex;

    flex-direction:column;

    gap:30px;

    text-align:center;
}


/* 메뉴 링크 */

.mobile-nav a{

    display:block;

    font-size:28px;

    font-weight:700;

    letter-spacing:4px;

    color:#2f5d50;

    opacity:0;

    transform:translateY(20px);

    transition:
        opacity .5s ease,
        transform .5s ease,
        color .3s ease;
}


/* 메뉴가 열리면 순서대로 등장 */

.mobile-nav.active a{

    opacity:1;

    transform:translateY(0);
}


/* 순차 애니메이션 */

.mobile-nav.active a:nth-child(1){
    transition-delay:.10s;
}

.mobile-nav.active a:nth-child(2){
    transition-delay:.16s;
}

.mobile-nav.active a:nth-child(3){
    transition-delay:.22s;
}

.mobile-nav.active a:nth-child(4){
    transition-delay:.28s;
}


/* 메뉴 터치/호버 */

.mobile-nav a:hover{

    color:#1f4037;

    transform:scale(1.04);
}


/* =========================
   CLOSE BUTTON
========================= */

.close-menu{

    position:absolute;

    top:25px;
    right:25px;

    width:52px;
    height:52px;

    display:flex;

    align-items:center;
    justify-content:center;

    font-size:38px;

    font-weight:300;

    border:none;

    background:transparent;

    cursor:pointer;

    color:#2f5d50;

    z-index:10000;

    transition:
        transform .3s ease,
        color .3s ease;
}


.close-menu:hover{

    transform:rotate(90deg);

    color:#1f4037;
}


/* =========================
   MOBILE HEADER BUTTON
========================= */

.mobile-menu{

    display:none;

    font-size:30px;

    line-height:1;

    cursor:pointer;

    color:#ffffff;

    background:none;

    border:none;

    padding:0;

    z-index:10001;
}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .header nav{
        display:none;
    }

    .mobile-menu{
        display:block;
    }

}


/* =========================
   SMALL MOBILE
========================= */

@media(max-width:480px){

    .mobile-nav nav{

        gap:26px;

    }

    .mobile-nav a{

        font-size:24px;

        letter-spacing:3px;

    }

    .close-menu{

        top:20px;
        right:18px;

        width:48px;
        height:48px;

        font-size:34px;

    }

}

/* =========================
   ALL MENU - PREMIUM CARD
========================= */

.all-menu-list{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
    text-align:left;
}

/* =========================
   MENU PRICE / TEXT ITEM
========================= */
.menu-price{
    display:block;
    font-size:18px;
    font-weight:700;
    color:var(--green);
    white-space:nowrap;
}

.all-menu-item{
    overflow:hidden;
    padding:0;

    background:#fff;

    border-radius:22px;

    box-shadow:0 12px 35px rgba(0,0,0,.07);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.all-menu-item:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 45px rgba(0,0,0,.11);
}


/* 사진 */

.all-menu-image{
    width:100%;
    aspect-ratio:4 / 3;

    overflow:hidden;

    background:#e9e3da;
}

.all-menu-image img{
    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    transition:transform .6s ease;
}

.all-menu-item:hover .all-menu-image img{
    transform:scale(1.05);
}


/* 내용 */

.all-menu-content{
    padding:25px 27px 28px;
}


/* 제목 + 가격 */

.all-menu-title{
    display:flex;

    align-items:flex-start;
    justify-content:space-between;

    gap:15px;

    margin-bottom:14px;
}

.all-menu-title strong{
    display:block;

    font-size:25px;
    line-height:1.3;

    color:#222;
}

.all-menu-title span{
    display:block;

    margin-top:5px;

    font-size:9px;

    letter-spacing:2.5px;

    color:#2f5d50;
}

.menu-price{
    flex-shrink:0;

    padding-top:4px;

    font-size:16px;

    color:#2f5d50;
}

.all-menu-content p{
    margin:0;

    font-size:14px;

    line-height:1.7;

    color:#777;
}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .all-menu-list{
        grid-template-columns:1fr;

        gap:18px;
    }

    .all-menu-image{
        aspect-ratio:16 / 10;
    }

    .all-menu-content{
        padding:22px 22px 24px;
    }

    .all-menu-title strong{
        font-size:22px;
    }

    .all-menu-content p{
        font-size:13px;
    }

}

/* =========================
   ALL MENU - SCREEN
========================= */

.all-menu{

    position:fixed;

    inset:0;

    width:100%;
    height:100vh;
    height:100dvh;

    background:rgba(247,243,238,.98);

    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);

    z-index:20000;

    overflow-y:auto;
    overflow-x:hidden;

    opacity:0;
    visibility:hidden;

    transform:translateY(20px);

    transition:
        opacity .35s ease,
        visibility .35s ease,
        transform .35s ease;
}


/* OPEN */

.all-menu.active{

    opacity:1;

    visibility:visible;

    transform:translateY(0);
}


/* =========================
   ALL MENU INNER
========================= */

.all-menu-inner{

    position:relative;

    width:100%;
    max-width:1000px;

    margin:0 auto;

    padding:110px 30px 80px;

    text-align:center;
}


/* =========================
   CLOSE BUTTON
========================= */

.all-menu-close{

    position:absolute;

    top:25px;
    right:15px;

    width:52px;
    height:52px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:none;

    background:transparent;

    color:#2f5d50;

    font-size:42px;

    font-weight:300;

    cursor:pointer;

    z-index:20001;

    transition:
        transform .3s ease,
        color .3s ease;
}


.all-menu-close:hover{

    transform:rotate(90deg);

    color:#1f4037;
}


/* =========================
   ALL MENU TITLE
========================= */

.all-menu-inner .label{

    margin-bottom:20px;

}


.all-menu-inner h2{

    margin-bottom:55px;

    font-size:48px;

    line-height:1.35;

}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .all-menu-inner{

        padding:90px 20px 60px;

    }


    .all-menu-inner h2{

        font-size:32px;

        margin-bottom:35px;

    }


    .all-menu-close{

        top:15px;

        right:10px;

        width:48px;

        height:48px;

        font-size:36px;

    }

}

/* =========================
   1100 GOJI
   ALL MENU DETAIL
========================= */

.all-menu-list{
    width:100%;
    max-width:900px;

    margin:0 auto;

    display:grid;

    grid-template-columns:repeat(2, minmax(0, 1fr));

    gap:24px;
}


/* =========================
   MENU CARD
========================= */

.all-menu-item{

    position:relative;

    overflow:hidden;

    padding:0;

    background:#fff;

    border:1px solid rgba(47,93,80,.08);

    border-radius:22px;

    box-shadow:
        0 10px 30px rgba(0,0,0,.045);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}


.all-menu-item:hover{

    transform:translateY(-5px);

    box-shadow:
        0 18px 40px rgba(0,0,0,.09);
}


/* =========================
   IMAGE
========================= */

.all-menu-image{

    position:relative;

    width:100%;

    aspect-ratio:4 / 3;

    overflow:hidden;

    background:#e9e3da;
}


.all-menu-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.12),
            transparent 35%
        );

    pointer-events:none;
}


.all-menu-image img{

    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    transition:
        transform .7s cubic-bezier(.2,.7,.2,1);
}


.all-menu-item:hover
.all-menu-image img{

    transform:scale(1.06);
}


/* =========================
   CONTENT
========================= */

.all-menu-content{

    padding:25px 26px 27px;
}


/* =========================
   TITLE
========================= */

.all-menu-title{

    display:flex;

    align-items:flex-start;

    justify-content:space-between;

    gap:20px;

    margin-bottom:14px;
}


.all-menu-title strong{

    display:block;

    color:#222;

    font-size:24px;

    font-weight:600;

    line-height:1.3;
}


.all-menu-title span{

    display:block;

    margin-top:5px;

    color:#2f5d50;

    font-size:9px;

    font-weight:500;

    letter-spacing:2.5px;

    line-height:1.4;
}


/* =========================
   PRICE
========================= */

.menu-price{

    flex-shrink:0;

    padding-top:3px;

    color:#2f5d50;

    font-size:15px;

    font-weight:600;

    letter-spacing:.5px;
}


/* =========================
   DESCRIPTION
========================= */

.all-menu-content p{

    margin:0;

    color:#777;

    font-size:13px;

    font-weight:400;

    line-height:1.75;

    word-break:keep-all;
}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .all-menu-list{

        grid-template-columns:1fr;

        gap:18px;

    }


    .all-menu-image{

        aspect-ratio:16 / 10;

    }


    .all-menu-content{

        padding:21px 21px 23px;

    }


    .all-menu-title strong{

        font-size:21px;

    }


    .all-menu-title span{

        font-size:8px;

        letter-spacing:2px;

    }


    .menu-price{

        font-size:14px;

    }


    .all-menu-content p{

        font-size:13px;

        line-height:1.7;

    }

}

/* =========================
   JEJU ROUTE
   1100 GOJI TRAVEL ROUTE
========================= */

.route{

    position:relative;

    padding:120px 20px;

    background:#f7f3ee;

    text-align:center;

    overflow:hidden;

}


/* =========================
   LABEL
========================= */

.route > p{

    margin:0 0 22px;

    color:#2f5d50;

    font-size:10px;

    font-weight:600;

    letter-spacing:4px;

}


/* =========================
   TITLE
========================= */

.route h2{

    margin:0 auto 70px;

    color:#222;

    font-size:42px;

    font-weight:500;

    line-height:1.5;

    letter-spacing:-1.5px;

}


/* =========================
   ROUTE
========================= */

.route-line{

    position:relative;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:35px;

    max-width:800px;

    margin:0 auto;

    padding:30px 0;

}


/* 가운데 연결선 */

.route-line::before{

    content:"";

    position:absolute;

    left:10%;

    right:10%;

    top:50%;

    height:1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(47,93,80,.25),
            transparent
        );

    z-index:0;

}


/* 모든 요소 */

.route-line span,
.route-line strong{

    position:relative;

    z-index:1;

    display:flex;

    align-items:center;

    justify-content:center;

    min-width:130px;

    min-height:48px;

    padding:0 20px;

    background:#f7f3ee;

}


/* 출발 / 도착 */

.route-line span{

    color:#8c8175;

    font-size:10px;

    font-weight:600;

    letter-spacing:3px;

}


/* 1100 GOJI */

.route-line strong{

    color:#2f5d50;

    font-size:16px;

    font-weight:600;

    letter-spacing:1px;

}


/* 화살표 */

.route-line{

    font-size:18px;

    color:#a58d72;

}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .route{

        padding:85px 20px 95px;

    }


    .route > p{

        margin-bottom:18px;

        font-size:9px;

        letter-spacing:3px;

    }


    .route h2{

        margin-bottom:50px;

        font-size:29px;

        line-height:1.55;

        letter-spacing:-1px;

    }


    .route-line{

        flex-direction:column;

        gap:10px;

        padding:0;

    }


    /* 모바일에서는 가로선을 세로선으로 */

    .route-line::before{

        left:50%;

        right:auto;

        top:0;

        bottom:0;

        width:1px;

        height:auto;

        background:
            linear-gradient(
                to bottom,
                transparent,
                rgba(47,93,80,.25) 15%,
                rgba(47,93,80,.25) 85%,
                transparent
            );

        transform:translateX(-50%);

    }


    .route-line span,
    .route-line strong{

        min-width:150px;

        min-height:45px;

        padding:0 18px;

        background:#f7f3ee;

    }


    .route-line span{

        font-size:9px;

        letter-spacing:2.5px;

    }


    .route-line strong{

        font-size:15px;

    }

}

/* =========================
   LOCATION
   CENTER ALIGN
========================= */

.location{
    text-align:center;
}


/* LOCATION 라벨 */

.location .label{
    margin-bottom:20px;

    color:#2f5d50;

    font-size:10px;
    font-weight:600;

    letter-spacing:4px;
}


/* 제목 */

.location h2{
    margin:0 auto 28px;

    color:#222;

    font-size:40px;
    font-weight:500;

    line-height:1.5;
    letter-spacing:-1px;
}


/* 설명 */

.location-desc{
    max-width:600px;

    margin:0 auto 40px;

    color:#666;

    font-size:16px;
    line-height:1.9;

    word-break:keep-all;
}


/* =========================
   LOCATION INFO
========================= */

.location-info{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:14px;

    max-width:600px;

    margin:0 auto 38px;

    color:#555;

    font-size:14px;

    line-height:1.6;
}


.location-info div{

    width:100%;

    text-align:center;

}


/* =========================
   LOCATION BUTTONS
========================= */

.location-buttons{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    margin:0 auto;

}


.location-buttons a{

    display:flex;

    align-items:center;

    justify-content:center;

    min-width:170px;

    min-height:48px;

    padding:0 20px;

    border:1px solid rgba(47,93,80,.25);

    border-radius:999px;

    background:#fff;

    color:#2f5d50;

    font-size:13px;

    font-weight:500;

    text-decoration:none;

    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease,
        border-color .3s ease;
}


.location-buttons a:hover{

    background:#2f5d50;

    border-color:#2f5d50;

    color:#fff;

    transform:translateY(-2px);

}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .location h2{

        font-size:29px;

        line-height:1.55;

        letter-spacing:-1px;

    }


    .location-desc{

        padding:0 20px;

        margin-bottom:32px;

        font-size:14px;

        line-height:1.9;

    }


    .location-info{

        gap:12px;

        padding:0 15px;

        margin-bottom:32px;

        font-size:13px;

    }


    .location-info div{

        line-height:1.7;

    }


    .location-buttons{

        flex-direction:column;

        width:100%;

        padding:0 20px;

        gap:10px;

    }


    .location-buttons a{

        width:100%;

        min-width:0;

    }

}

/* =========================
   1100 GOJI FOOTER
========================= */

footer{
    position:relative;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    min-height:260px;
    padding:70px 20px;

    background:#2f5d50;
    color:#f7f3ee;

    text-align:center;
}

footer h3{
    margin:0 0 16px;

    color:#f7f3ee;

    font-size:28px;
    font-weight:500;

    line-height:1.3;
    letter-spacing:4px;
}

footer p{
    margin:0;

    color:rgba(247,243,238,.7);

    font-size:10px;
    font-weight:500;

    letter-spacing:4px;
}


/* 위쪽 장식선 */

footer::before{
    content:"";

    position:absolute;

    top:0;
    left:50%;

    width:50px;
    height:1px;

    background:rgba(247,243,238,.45);

    transform:translateX(-50%);
}


/* =========================
   INSTAGRAM
========================= */

.footer-instagram{
    display:inline-flex;

    align-items:center;
    justify-content:center;

    margin-top:28px;

    padding:10px 22px;

    border:1px solid rgba(247,243,238,.35);
    border-radius:999px;

    color:#f7f3ee;

    font-size:11px;
    font-weight:500;

    letter-spacing:2px;

    text-decoration:none;

    transition:
        background .3s ease,
        color .3s ease,
        border-color .3s ease,
        transform .3s ease;
}

.footer-instagram:hover{
    background:#f7f3ee;

    border-color:#f7f3ee;

    color:#2f5d50;

    transform:translateY(-2px);
}


/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    footer{
        min-height:210px;
        padding:55px 20px;
    }

    footer h3{
        margin-bottom:13px;

        font-size:23px;
        letter-spacing:3px;
    }

    footer p{
        font-size:9px;
        letter-spacing:3px;
    }

    footer::before{
        width:40px;
    }

    .footer-instagram{
        margin-top:24px;

        padding:9px 20px;

        font-size:10px;
    }

}

/* =========================
   MOBILE HERO IMAGE FIX
========================= */

@media (max-width:768px){

    .hero{
        min-height:100svh;
        background-size:cover;
        background-position:center center;
        animation:none;
    }

}

/* =========================
   MOBILE JEJU MENU CENTER
========================= */

@media (max-width:768px){

    /* JEJU MENU 제목 */

    .menu > .container{
        text-align:center;
    }

    .menu > .container > .label{
        text-align:center;
    }

    .menu > .container > h2{
        text-align:center;
    }


    /* 메뉴 카드 텍스트 */

    .menu-card > div:not(.menu-image){
        text-align:center;
    }

    .menu-card h3{
        text-align:center;
    }

    .menu-card span{
        display:block;
        text-align:center;
    }

    .menu-card p{
        text-align:center;
    }


    /* 전체 메뉴 보기 */

    .menu-more{
        margin-left:auto;
        margin-right:auto;
    }

}
/* =========================
   MOBILE MENU MORE CENTER
========================= */

@media (max-width:768px){

    .menu-more{
        display:flex;
        align-items:center;
        justify-content:center;

        width:fit-content;

        margin:30px auto 0;

        text-align:center;
    }

}

/* =========================
   LANGUAGE SWITCHER
========================= */

.language-switcher{
    display:flex;
    align-items:center;
    gap:8px;
    margin-left:auto;
    margin-right:25px;
}

.language-switcher button{
    border:none;
    background:transparent;
    color:white;

    padding:5px 3px;

    font-family:inherit;
    font-size:11px;
    font-weight:500;

    letter-spacing:1px;

    cursor:pointer;

    opacity:.65;

    transition:
        opacity .3s ease,
        color .3s ease,
        transform .3s ease;
}

.language-switcher button:hover{
    opacity:1;
    transform:translateY(-1px);
}

.language-switcher button.active{
    opacity:1;
    font-weight:700;
}


/* =========================
   MOBILE LANGUAGE
========================= */

@media(max-width:768px){

    .language-switcher{
        position:absolute;

        right:65px;
        top:50%;

        transform:translateY(-50%);

        margin:0;

        gap:5px;
    }

    .language-switcher button{
        font-size:9px;
        padding:4px 2px;
    }

}
