html {
    scroll-behavior:smooth;
}

:root {

--bg-beige:#F7F4EE;
--bg-card:#F0ECE1;
--bg-story:#EFE9DC;
--text-main:#1C1A17;
--text-muted:#736E65;
--border-line:#DCD5C9;
--accent-red:#A93226;

}

* {

margin:0;
padding:0;
box-sizing:border-box;
scroll-behavior:smooth;

}

body {

background-color:var(--bg-beige);
color:var(--text-main);
font-family:
    'Plus Jakarta Sans',
    'Noto Sans KR',
    sans-serif;
line-height:1.8;
overflow-x:hidden;
-webkit-font-smoothing:antialiased;

}

a {

text-decoration:none;
color:inherit;

}

/* Reveal Animation */

.reveal-element {

opacity:0;

transform:translateY(30px);

transition:
opacity .8s ease,
transform .8s ease;

}


.reveal-element.active {

opacity:1;

transform:translateY(0);

}



/* Header */

header {

position:fixed;

top:0;

left:0;

width:100%;

display:flex;

justify-content:space-between;

align-items:center;

padding:24px 32px;

background:
rgba(247,244,238,.9);

backdrop-filter:blur(12px);

z-index:1000;

border-bottom:
1px solid var(--border-line);

}


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


.logo{

display:flex;

align-items:center;

}



.logo img{

width:clamp(120px, 12vw, 190px);

height:auto;

display:block;

}



.footer-logo{

width:clamp(150px, 18vw, 240px);

height:auto;

margin-bottom:25px;

display:block;

}



nav.desktop-nav {

display:flex;

gap:30px;

align-items:center;

}


nav.desktop-nav a {

font-size:11px;

font-weight:600;

letter-spacing:2px;

text-transform:uppercase;

}



.btn-outline {

border:1px solid var(--text-main);

padding:9px 18px;

font-size:11px;

font-weight:600;

letter-spacing:1.5px;

text-transform:uppercase;

transition:.3s;

}


.btn-outline:hover {

background:var(--text-main);

color:white;

}


/* ==========================
 HERO CINEMATIC INTRO
========================== */


.hero-scroll{

height:220vh;
position:relative;

}



.hero-sticky{

position:sticky;

top:0;

height:100vh;

overflow:hidden;

display:flex;

align-items:center;

justify-content:center;

}



.hero-video{

position:absolute;

inset:0;

width:100%;

height:100%;

object-fit:cover;

z-index:-2;


filter:
brightness(.5)
contrast(1.05);


}

.hero-tag{

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

margin-bottom:30px;

}


.hero-overlay{

position:absolute;

inset:0;

background:
linear-gradient(
180deg,
rgba(0,0,0,.15),
rgba(0,0,0,.65)
);

z-index:1;

}


.hero-content{

position:relative;

z-index:2;

max-width:750px;

padding:20px;

text-align:center;

color:white;

opacity:1;

transform:translateY(0);

}





.hero-title{

font-family:'Shippori Mincho',serif;

font-size:60px;

line-height:1.25;

margin-bottom:10px;


}



.hero-desc{

font-size:18px;

line-height:2;

margin-bottom:40px;

}


@media(max-width:768px){


.hero-content{



opacity:1;

transform:translateY(0);

transition:none;


width:88%;

max-width:420px;

padding:0;

}


/* small label */

.hero-tag{

font-size:9px;

letter-spacing:4px;

margin-bottom:18px;

}



/* main title */

.hero-title{

font-size:42px;

line-height:1.18;

letter-spacing:-0.8px;

margin:15px 0 22px;

}



/* subtitle */

.hero-subtitle{

font-size:22px;

line-height:1.45;

letter-spacing:-0.3px;

margin-bottom:20px;

}



/* description */

.hero-desc{

font-size:14px;

line-height:1.8;

padding:0 10px;

max-width:320px;

margin:auto;

}



/* button */

.hero-buttons{

margin-top:30px;

}



}

/* Mobile Header */

@media(max-width:768px){


header{

padding:18px 20px;

}



@media(max-width:768px){


.logo img{

width:130px;

}



.footer-logo{

width:170px;

}


}



nav.desktop-nav a:not(.btn-outline){

display:none;

}



.btn-outline{

padding:8px 14px;

font-size:10px;

}


}

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


.zen-story{

background:#080808;

color:white;

padding:140px 5%;

overflow:hidden;

}



.story-top{

display:grid;

grid-template-columns:1fr 1fr;

gap:100px;

align-items:center;

}



.eyebrow{


font-size:12px;

letter-spacing:5px;

color:#cbb28a;

display:block;

margin-bottom:35px;


}




.zen-story-title h2{

font-family:'Shippori Mincho',serif;

font-size:72px;

line-height:1.05;

font-weight:400;

}




.story-title h2 span{


display:block;


}





.story-copy{


padding:45px;


background:

linear-gradient(
135deg,
rgba(255,255,255,.08),
rgba(255,255,255,.02)
);


border-radius:24px;


backdrop-filter:blur(20px);


}



.story-copy p{


font-size:18px;

line-height:1.9;

color:#ddd;

margin-bottom:25px;


}




.zen-button{


display:inline-flex;

margin-top:25px;

padding:16px 38px;

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

border-radius:50px;

color:white;

text-decoration:none;

letter-spacing:2px;

font-size:13px;

transition:.4s;


}



.zen-button:hover{


background:white;

color:black;


}




.favorites-header{


margin-top:130px;

margin-bottom:45px;

text-align:center;

letter-spacing:6px;

font-size:13px;

color:#cbb28a;


}




.favorites-grid{


display:grid;

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

gap:22px;


}




.favorite-card{


height:520px;

border-radius:24px;

overflow:hidden;

position:relative;

}



.favorite-card img{


width:100%;

height:100%;

object-fit:cover;

transition:

transform 1.2s ease;


}



.favorite-card:hover img{


transform:scale(1.08);


}



.favorite-card::after{


content:"";

position:absolute;

inset:0;


background:

linear-gradient(
transparent 30%,
rgba(0,0,0,.85)
);


}




.card-content{


position:absolute;

bottom:0;

padding:35px;

z-index:2;


}



.card-content span{


font-size:12px;

letter-spacing:4px;


}



.card-content h3{


font-family:'Shippori Mincho',serif;

font-size:32px;

margin:15px 0;


}



.card-content p{


font-size:15px;

line-height:1.7;

color:#ddd;


}



.card-content a{


display:inline-block;

margin-top:20px;

font-size:12px;

letter-spacing:3px;

border-bottom:1px solid #cbb28a;

padding-bottom:5px;


}

@media(max-width:768px){


.zen-story{

padding:90px 20px;

}



.story-top{

gap:35px;

}



.story-title h2{

font-size:42px;

line-height:1.15;

}



.story-copy{

padding:25px;

border-radius:18px;

}



.story-copy p{

font-size:15px;

line-height:1.8;

}



.zen-button{

width:100%;

justify-content:center;

}



}


@media(max-width:768px){


.favorite-card{

height:460px;

}



.card-content{

padding:25px;

}



.card-content h3{

font-size:28px;

}



}

/* animation */


.reveal{


opacity:0;

transform:

translateY(60px);


transition:

opacity 1.2s ease,

transform 1.2s ease;


}



.reveal.active{


opacity:1;

transform:

translateY(0);


}





@media(max-width:900px){


.story-top{

grid-template-columns:1fr;

gap:50px;

}


.story-title h2{


font-size:45px;


}


.favorites-grid{


grid-template-columns:1fr;


}



}

/* ==========================
   WHY ZEN SECTION
========================== */

.section {

padding:100px 24px;

max-width:1200px;

margin:auto;

}


.section-header {

text-align:center;

margin-bottom:50px;

}


.section-tag {

font-size:10px;

font-weight:600;

letter-spacing:2.5px;

color:var(--text-muted);

text-transform:uppercase;

display:block;

margin-bottom:10px;

}


.section-title {

font-family:'Shippori Mincho',serif;

font-size:32px;

font-weight:600;

line-height:1.4;

}



.why-grid {

display:grid;

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

gap:24px;

}



.why-card {

background:var(--bg-card);

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

padding:35px 28px;

transition:.3s;

}



.why-card:hover {

transform:translateY(-5px);

}



.why-number {

font-size:12px;

letter-spacing:2px;

color:var(--accent-red);

font-weight:600;

}



.why-title {

font-family:'Shippori Mincho',serif;

font-size:22px;

margin:15px 0;

}



.why-text {

font-size:14px;

color:var(--text-muted);

line-height:1.8;

}


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


.menu-grid {

display:grid;

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

gap:24px;

}



.menu-card {

background:var(--bg-card);

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

padding:20px;

}



.menu-img-wrapper {

height:220px;

overflow:hidden;

margin-bottom:15px;

}



.menu-img {

width:100%;

height:100%;

object-fit:cover;

}



.menu-title {

font-family:'Shippori Mincho',serif;

font-size:18px;

}



.menu-desc {

font-size:13px;

color:var(--text-muted);

margin-top:10px;

}


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


.story-page {

background:var(--bg-story);

padding:110px 24px;

border-top:1px solid var(--border-line);

border-bottom:1px solid var(--border-line);

}



.story-container {

max-width:900px;

margin:auto;

}



.story-title {

font-family:'Shippori Mincho',serif;

font-size:34px;

text-align:center;

line-height:1.5;

}



.story-text {

margin-top:35px;

font-size:15px;

color:var(--text-muted);

line-height:2;

text-align:center;

}

/* ==========================
   LOCATIONS V1.2
========================== */


.locations-grid {

    display:grid;

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

    gap:24px;

}


.location-card {

    background-color:var(--bg-card);

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

    padding:30px 26px;

    display:flex;

    flex-direction:column;

    justify-content:space-between;

    min-height:360px;

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

}


.location-card:hover {

    transform:translateY(-5px);

    border-color:var(--text-main);

}

@media (max-width:768px){

.location-card {

    padding:20px 18px;
    border-radius:4px;

}


.location-name {

    font-size:22px;
    margin-bottom:12px;

}


.location-address {

    font-size:14px;

}


}



.location-meta {

    font-size:10px;

    letter-spacing:2px;

    color:var(--accent-red);

    font-weight:600;

    margin-bottom:15px;

    text-transform:uppercase;

}



.location-name {

    font-family:'Shippori Mincho',serif;

    font-size:24px;

    margin-bottom:15px;

}



.location-address {

    font-size:13px;

    line-height:1.8;

    color:var(--text-muted);

}



.location-phone {

    margin-top:15px;

    font-size:14px;

    font-weight:600;

}



.location-hours {

    margin-top:20px;

    padding-top:15px;

    border-top:

    1px solid var(--border-line);

}



.location-hours-title {

    font-size:10px;

    letter-spacing:2px;

    font-weight:700;

    margin-bottom:8px;

}



.location-hours p {

    font-size:12px;

    color:var(--text-muted);

    line-height:1.7;

}



.location-actions {

display:flex;

justify-content:space-between;

margin-top:25px;

padding-top:15px;

border-top:1px solid var(--border-line);

}



.location-link {

    font-size:10px;

    letter-spacing:1.5px;

    font-weight:600;

}

@media(max-width:768px){

.location-meta {

margin-bottom:14px;

}


.location-status {

font-size:11px;
letter-spacing:1px;

}

}


@media(max-width:1024px){

.locations-grid{

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

}

}



@media(max-width:768px){

.locations-grid{

    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;

    gap:0;

    width:100%;

    scroll-snap-type:x mandatory;

    padding-bottom:20px;

    scrollbar-width:none;

}


.locations-grid::-webkit-scrollbar{

display:none;

}



.location-card{

    flex:0 0 100%;

    width:100%;

    min-width:100%;

    scroll-snap-align:start;

}

}

@media(max-width:768px){

#locations{
overflow:hidden;
}

}

/* Location Image */

.location-image {

    width:100%;

    height:210px;

    background:#ddd;

    margin-bottom:25px;

    overflow:hidden;

}


.location-image img {

    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;

}


.location-card:hover .location-image img {

    transform:scale(1.05);

}



/* Phone Button */

.location-phone-link {

    display:inline-block;

    margin-top:12px;

    font-size:14px;

    color:var(--text-main);

    font-weight:600;

}


/* Action Buttons */

.location-buttons {

    display:flex;

    gap:10px;

    flex-wrap:wrap;

    margin-top:20px;

}


.location-button {

    border:1px solid var(--text-main);

    padding:10px 12px;

    font-size:10px;

    letter-spacing:1px;

    font-weight:600;

    transition:.3s;

}


.location-button:hover {

    background:var(--text-main);

    color:white;

}

@media (max-width:768px){

.location-buttons {

    display:flex;
    flex-direction:column;
    gap:10px;

}


.location-button {

    width:100%;
    text-align:center;
    padding:14px 10px;

}

}

.location-status {
    font-size: 10px;
    letter-spacing: 1.5px;
    font-weight: 700;
    text-transform: uppercase;
}

.location-status.open {
    color: #2f7d32;
}

.location-status.closed {
    color: #a93226;
}

.location-phone-link {

display:block;
font-size:14px;
font-weight:500;
margin-bottom:18px;

}

.location-swipe-hint,
.location-scroll-indicator{

    display:none;

}

@media(max-width:768px){


.location-swipe-hint{

    display:block;

    text-align:center;

    font-size:11px;

    letter-spacing:2px;

    color:var(--text-muted);

    margin-top:25px;

    animation: swipeFade 2s ease forwards;

}



.location-scroll-indicator{

    display:block;

    text-align:center;

    margin-top:15px;

    font-size:12px;

    letter-spacing:2px;

    color:var(--text-muted);

}



.location-dots{

    display:flex;

    justify-content:center;

    gap:7px;

    margin-top:10px;

}



.location-dots span{

    width:6px;

    height:6px;

    border-radius:50%;

    background:#DCD5C9;

}



.location-dots span.active{

    background:var(--text-main);

}



}



@keyframes swipeFade{


0%{

opacity:0;

transform:translateX(15px);

}


30%{

opacity:1;

}


100%{

opacity:.7;

transform:translateX(0);

}


}

@media(max-width:768px){

.location-swipe-hint{

    margin-top:25px;

}


.location-scroll-indicator{

    width:100%;
    text-align:center;
    margin-top:15px;

}


.location-dots{

    display:flex;
    justify-content:center;
    gap:7px;
    margin-top:10px;

}

}

.location-top-swipe-hint{

    display:none;

}


@media(max-width:768px){

.location-top-swipe-hint{

    display:block;

    text-align:center;

    font-size:11px;

    letter-spacing:2px;

    color:var(--text-muted);

    margin-bottom:18px;

    animation: swipeFade 2s ease forwards;

}

}


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


.cinematic-story{

width:100%;
overflow:hidden;

}



.cinematic-item{

position:relative;

height:650px;

overflow:hidden;

}



.cinematic-item img{

width:100%;

height:100%;

object-fit:cover;

transform:scale(1.05);

transition:
transform 1.8s ease,
opacity 1.2s ease;

opacity:.45;

}



.cinematic-item.active img{

transform:scale(1);

opacity:1;

}



.cinematic-overlay{

position:absolute;

inset:0;

background:
linear-gradient(
180deg,
rgba(0,0,0,.25),
rgba(0,0,0,.65)
);

}




.cinematic-text{

position:absolute;

top:50%;

left:50%;

transform:
translate(-50%,-35%);

width:80%;

max-width:700px;

text-align:center;

color:white;

opacity:0;

transition:
opacity 1s ease,
transform 1s ease;

}



.cinematic-item.active .cinematic-text{

opacity:1;

transform:
translate(-50%,-50%);

}



.cinematic-text span{

font-size:11px;

letter-spacing:3px;

opacity:.8;

}



.cinematic-text h2{

font-family:
'Shippori Mincho',
serif;

font-size:46px;

line-height:1.3;

margin:20px 0;

}



.cinematic-text p{

font-size:16px;

line-height:1.8;

max-width:520px;

margin:auto;

}



@media(max-width:768px){


.cinematic-item{

height:420px;

}



.cinematic-text{

width:85%;

}



.cinematic-text h2{

font-size:30px;

}



.cinematic-text p{

font-size:14px;

}



}


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


.pinned-story{

    height:800vh;
    background:#000;

}



.pinned-container{

    position:sticky;
    top:0;

    height:100vh;

    overflow:hidden;

}



/* IMAGE AREA */

.pinned-image{

    position:absolute;

    inset:0;

}



/* 두 이미지 레이어 */

#storyImage,
#storyImageNext{

position:absolute;

inset:0;

width:100%;
height:100%;

object-fit:cover;

clip-path:circle(18% at 50% 50%);

transition:
clip-path 1.8s cubic-bezier(.22,1,.36,1),
opacity 1.5s ease,
transform 2s ease;

}

#storyImage.reveal-full,
#storyImageNext.reveal-full{

clip-path:circle(100% at 50% 50%);

}

/* 기본 이미지 */

#storyImage{

    opacity:1;

    z-index:1;

}



/* 다음 이미지 */

#storyImageNext{

    opacity:0;

    z-index:2;

}



/* 사진 어둡게 */

#storyImage,
#storyImageNext{

    filter:
    brightness(.45);

    transform:
    scale(1.04);


    clip-path:
    circle(18% at 50% 50%);

    transition:

    opacity 2s ease,
    filter 2s ease,
    transform 3s ease;

}



/* crossfade */

#storyImageNext.fade-in{

    opacity:1;

    filter:
    brightness(.45);

    transform:
    scale(1);

}



/* 이전 사진 */

#storyImage.fade-out{

    opacity:0;

    filter:
    brightness(.25)
    blur(10px);

    transform:
    scale(1.08);

}



/* Overlay */

.pinned-image::after{

content:"";

position:absolute;

inset:0;


/* cinematic dark gradient */

background:

linear-gradient(
180deg,
rgba(0,0,0,.15) 0%,
rgba(0,0,0,.35) 45%,
rgba(0,0,0,.75) 100%
);


z-index:3;

}


.pinned-image img{

width:100%;
height:100%;

object-fit:cover;

opacity:1;

transform:scale(1.05);

filter:
brightness(.45)
blur(0px);

transition:

opacity 1.8s ease,
filter 1.8s ease,
transform 2.5s ease;

background:#111;


}

/* ==========================
   PINNED CIRCLE REVEAL
========================== */


.pinned-image{

background:#000;

}


/* circle mask */

.pinned-image img{

clip-path:circle(0% at 50% 50%);

transition:
clip-path 1.8s ease,
transform 2s ease,
opacity 1.5s ease;

}


/* reveal */

.pinned-image img.reveal-circle{

clip-path:circle(75% at 50% 50%);

}



/* mobile */

@media(max-width:768px){

.pinned-image img.reveal-circle{

clip-path:circle(85% at 50% 50%);

}

}


/* 현재 이미지가 사라질 때 */

#storyImage.fade-out{

opacity:0;

filter:

brightness(.25)
blur(14px);

transform:

scale(1.12);

}



/* 다음 이미지 등장 */

#storyImageNext.fade-in{

opacity:1;

filter:

brightness(.55)
blur(0px);

transform:

scale(1.03);

}



/* Black glass text background */

.pinned-content::before{

content:"";

position:absolute;

top:50%;

left:50%;

transform:translate(-50%,-50%);

width:120%;

height:260px;

background:

linear-gradient(
180deg,
rgba(0,0,0,0),
rgba(0,0,0,.45),
rgba(0,0,0,0)
);

filter:blur(25px);

z-index:-1;

}



/* TEXT AREA */

.pinned-content{

    position:absolute;

    top:50%;
    left:50%;

    transform:
    translate(-50%,-50%);

    width:85%;

    max-width:850px;

    color:white;

    text-align:center;

    z-index:5;

}

.pinned-content::before{

content:"";

position:absolute;


top:50%;
left:50%;


width:850px;
height:420px;


transform:
translate(-50%,-50%);



background:

radial-gradient(
ellipse,
rgba(0,0,0,.55),
rgba(0,0,0,0)
);



filter:blur(35px);


z-index:-1;


opacity:.8;

}

.story-step{

position:absolute;

opacity:0;

top:50%;

left:50%;

width:100%;

transform:
translate(-50%, -40%);


pointer-events:none;

transition:
opacity .8s ease,
transform .8s ease;

}


.story-step.active{

opacity:1;

transform:
translate(-50%, -50%);

}



/* stagger animation */

.story-step span,
.story-step h2,
.story-step p{

opacity:0;

transform:translateY(25px);

}



.story-step.active span{

animation:
textReveal .9s ease forwards;

animation-delay:.2s;

}



.story-step.active h2{

animation:
textReveal 1s ease forwards;

animation-delay:.45s;

}



.story-step.active p{

animation:
textReveal 1s ease forwards;

animation-delay:.75s;

}



@keyframes textReveal{


from{

opacity:0;

transform:translateY(25px);

}


to{

opacity:1;

transform:translateY(0);

}


}





.story-step span{


    font-size:12px;

    letter-spacing:4px;

    opacity:.8;

}



.story-step h2{

font-family:
'Shippori Mincho',
serif;

font-size:56px;

line-height:1.25;

margin:25px 0;


font-weight:500;


letter-spacing:-1px;


text-shadow:

0 10px 40px rgba(0,0,0,.6);

}



.story-step p{

font-size:17px;

line-height:2;


color:
rgba(255,255,255,.88);


text-shadow:

0 5px 20px rgba(0,0,0,.5);

}


.story-step:not(.active) span,
.story-step:not(.active) h2,
.story-step:not(.active) p{

animation:
textFadeOut .8s ease forwards;

}



@keyframes textFadeOut{


from{

opacity:1;

transform:translateY(0);

}


to{

opacity:0;

transform:translateY(-25px);

}


}


/* Desktop */

@media(min-width:1024px){


.story-step.active{

    transition-delay:.2s;

}


}



/* Mobile */

@media(max-width:768px){


.pinned-story{

    height:420vh;

}



.pinned-container{

    height:100svh;

}



.pinned-image img{

    object-position:center;

}



.pinned-content{

    width:88%;

    top:52%;

}



.story-step{

    width:100%;

    padding:0 10px;

}



.story-step span{

    font-size:10px;

    letter-spacing:3px;

}



.story-step h2{

    font-size:34px;

    line-height:1.25;

    margin:18px 0;

}



.story-step p{

    font-size:14px;

    line-height:1.8;

}



}

footer{

padding:80px 5% 30px;

background:#111;

color:white;

}


.footer-container{

display:grid;

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

gap:40px;

}


.footer-brand p,
.footer-col p{

color:#aaa;

font-size:14px;

}



.copyright{

margin-top:50px;

padding-top:20px;

border-top:1px solid rgba(255,255,255,.15);

font-size:12px;

color:#777;

}



@media(max-width:768px){

.footer-container{

grid-template-columns:1fr;

}

}

/* map */
.nearest-zen{

background:#EFE9DC;

padding:100px 24px;

}

.nearest-status{

font-size:11px;

letter-spacing:2px;

font-weight:700;

color:#2f7d32;

margin-top:22px;

text-transform:uppercase;

}


.distance{

font-size:13px;

color:var(--text-muted);

margin-top:12px;

margin-bottom:12px;

}



.nearest-actions{

display:flex;

flex-direction:column;

gap:12px;

margin-top:20px;

}


.nearest-actions a{

border:1px solid var(--text-main);

padding:12px 15px;

text-align:center;

font-size:11px;

letter-spacing:2px;

font-weight:600;

transition:.3s;

}



.nearest-actions a:hover{

background:var(--text-main);

color:white;

}


.zip-search{

display:flex;

justify-content:center;

gap:10px;

margin:40px auto;

}


.zip-search input{

width:220px;

padding:15px;

border:1px solid #ccc;

font-size:16px;

}


.zip-search button{

padding:15px 30px;

background:#1C1A17;

color:white;

border:none;

letter-spacing:2px;

}


.nearest-result-card{

max-width:600px;

margin:15px auto;

background:white;

padding:25px;

border:1px solid #ddd;

}


.nearest-result-card h3{

font-family:'Shippori Mincho',serif;

font-size:26px;

}


.nearest-result-card a{

display:inline-block;

margin-top:15px;

font-size:12px;

letter-spacing:2px;

}


/* ==========================
 HERO SCROLL EXPERIENCE
========================== */


.hero-scroll{

height:200vh;
position:relative;

}



.hero-sticky{

position:sticky;
top:0;

height:100vh;

overflow:hidden;

}



.hero-video{

transition:
transform 1s ease,
filter 1s ease;

}


.hero-content{

transition:
opacity 0.8s ease,
transform 0.8s ease;

}


/* ==========================
 HERO TEXT SPACING UPDATE
========================== */


/* 일본어 전통 + 현대적 편안함 */

.hero-tag{

margin-bottom:28px;

}


/* 메인 타이틀 */

.hero-title{

margin-bottom:28px;

}


/* subtitle */

.hero-subtitle{

margin-bottom:28px;

}


/* 설명 */

.hero-desc{

margin-bottom:40px;

}



/* FIND A LOCATION BUTTON */

.hero-buttons a{

background:#A93226;

color:#1C1A17;

border:none;

padding:14px 32px;

font-size:11px;

font-weight:1100;

letter-spacing:2px;

transition:.3s ease;

}



.hero-buttons a:hover{

background:#8f281f;

color:#000;

}



/* 모바일 조정 */

@media(max-width:768px){


.hero-tag{

margin-bottom:22px;

}


.hero-title{

font-size:40px;

line-height:1.2;

margin-bottom:22px;

}


.hero-subtitle{

font-size:21px;

margin-bottom:24px;

}


.hero-desc{

margin-bottom:35px;

}


.hero-buttons{

margin-top:0;

}


.hero-buttons a{

padding:14px 28px;

width:auto;

}


}


/* ==========================
FOOTER SOCIAL ICONS
========================== */

.footer-social{

display:flex;

align-items:center;

justify-content:center;

gap:clamp(18px,3vw,35px);

margin-top:30px;

}



.footer-social a{

display:flex;

align-items:center;

justify-content:center;

width:clamp(35px,5vw,55px);

height:clamp(35px,5vw,55px);

transition:.3s ease;

}



.footer-social img{

width:100%;

height:100%;

object-fit:contain;

filter:none;
    opacity:1;


transition:.3s ease;

}



.footer-social a:hover img{

opacity:1;

transform:translateY(-4px);

}

@media(max-width:768px){

.footer-social{

gap:20px;

margin-top:20px;

}


.footer-social a{

width:38px;

height:38px;

}


}

.mobile-order{
    display:none;
}


/* MOBILE */
@media(max-width:768px){

    .desktop-order{
        display:none;
    }


    .mobile-order{
        display:inline;
    }

}


/* ==========================
EVENT POPUP
========================== */


.event-popup-overlay{

position:fixed;

inset:0;

background:
rgba(0,0,0,.75);

display:flex;

align-items:center;

justify-content:center;

z-index:9999;

opacity:0;

visibility:hidden;

transition:.5s;

}



.event-popup-overlay.active{

opacity:1;

visibility:visible;

}



.event-popup{

position:relative;

width:min(420px,90vw);

background:#111;

border-radius:18px;

overflow:hidden;

box-shadow:
0 30px 80px rgba(0,0,0,.7);

animation:
popupFade .5s ease;

}



@keyframes popupFade{

from{

transform:translateY(40px);

opacity:0;

}

to{

transform:none;

opacity:1;

}

}



.event-image{

width:100%;

height:auto;

display:block;

}



.event-content{

padding:28px;

text-align:center;

color:white;

}



.event-content h2{

font-size:28px;

letter-spacing:2px;

margin-bottom:12px;

}



.event-content p{

font-size:16px;

color:#ccc;

margin-bottom:25px;

}



.event-hide-option{

font-size:14px;

color:#aaa;

display:flex;

justify-content:center;

gap:8px;

align-items:center;

}




.event-close{

position:absolute;

right:15px;

top:12px;

width:38px;

height:38px;

border-radius:50%;

border:none;

background:white;

color:black;

font-size:25px;

cursor:pointer;

z-index:2;


/* 처음 숨김 */

opacity:0;

pointer-events:none;

transition:.3s;

}



.event-close.show{

opacity:1;

pointer-events:auto;

}




/* MOBILE */

@media(max-width:600px){


.event-popup{

width:88vw;

}


.event-content{

padding:22px;

}


.event-content h2{

font-size:22px;

}


.event-content p{

font-size:14px;

}


}

.event-hide-option{

    display:flex;
    align-items:center;
    gap:10px;

    margin-top:22px;

    font-family:
    "Plus Jakarta Sans",
    "Noto Sans KR",
    sans-serif;

    font-size:12px;

    letter-spacing:0.08em;

    color:rgba(255,255,255,0.55);

    text-transform:uppercase;

    cursor:pointer;

    transition:0.3s ease;

}



.event-hide-option:hover{

    color:rgba(255,255,255,0.85);

}



.event-hide-option input{

    appearance:none;

    width:15px;
    height:15px;

    border:1px solid rgba(255,255,255,0.4);

    border-radius:2px;

    position:relative;

    cursor:pointer;

}



.event-hide-option input:checked{

    background:#b01818;

    border-color:#b01818;

}



.event-hide-option input:checked::after{

    content:"✓";

    position:absolute;

    color:white;

    font-size:11px;

    left:2px;

    top:-1px;

}