.home-page{background:var(--v-midnight)}.home-hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--v-space-6);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-8) var(--v-gutter)}.home-city-card{position:relative;aspect-ratio:4 / 5;border-radius:var(--v-radius-xl);overflow:hidden;cursor:pointer;transition:transform var(--v-dur-base) var(--v-ease-out)}.home-city-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,0.85) 100%);z-index:1}.home-city-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--v-dur-luxe) var(--v-ease-out)}.home-city-card__content{position:absolute;bottom:0;left:0;right:0;padding:var(--v-space-6);z-index:2;color:var(--v-text-hi)}.home-city-card__label{font-size:var(--v-fs-micro);letter-spacing:var(--v-ls-widest);text-transform:uppercase;color:var(--v-gold-100);margin-bottom:var(--v-space-1)}.home-city-card__name{font-family:var(--v-font-sans);font-size:clamp(24px,2.5vw,34px);font-weight:var(--v-fw-bold);margin:0 0 var(--v-space-2)}.home-city-card__tags{font-size:var(--v-fs-caption);color:var(--v-text-md)}@media (hover:hover) and (pointer:fine){.home-city-card:hover img{transform:scale(1.06)}.home-city-card:hover{transform:translateY(-4px)}}.home-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--v-space-5);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-12) var(--v-gutter)}.home-section{padding:var(--v-space-16) var(--v-gutter)}.home-section-title{font-family:var(--v-font-sans);font-size:var(--v-fs-h1);font-weight:var(--v-fw-bold);color:var(--v-gold-100);text-align:center;margin-bottom:var(--v-space-4);letter-spacing:var(--v-ls-tight)}.home-section-subtitle{text-align:center;color:var(--v-text-md);max-width:640px;margin:0 auto var(--v-space-12);line-height:var(--v-lh-relaxed)}.city-hub{background:var(--v-midnight)}.city-hero{position:relative;padding:var(--v-space-16) var(--v-gutter) var(--v-space-12);text-align:center;overflow:hidden}.city-hero::before{content:"";position:absolute;inset:0;background:var(--v-grad-vignette);z-index:0}.city-hero__eyebrow{position:relative;z-index:1;font-size:var(--v-fs-micro);letter-spacing:var(--v-ls-widest);text-transform:uppercase;color:var(--v-gold-400);font-weight:var(--v-fw-bold);margin-bottom:var(--v-space-4)}.city-hero__title{position:relative;z-index:1;font-family:var(--v-font-sans);font-size:var(--v-fs-display);font-weight:var(--v-fw-bold);line-height:var(--v-lh-tight);color:var(--v-gold-100);margin:0 0 var(--v-space-4);letter-spacing:var(--v-ls-tight)}.city-hero__subtitle{position:relative;z-index:1;font-size:var(--v-fs-body-lg);color:var(--v-text-md);max-width:720px;margin:0 auto var(--v-space-10);line-height:var(--v-lh-relaxed)}.city-hero__stats{position:relative;z-index:1;display:flex;justify-content:center;gap:var(--v-space-10);flex-wrap:wrap}.city-hero__stat{text-align:center}.city-hero__stat-num{font-family:var(--v-font-sans);font-size:clamp(32px,3vw,48px);font-weight:var(--v-fw-bold);color:var(--v-gold-100);line-height:1}.city-hero__stat-label{font-size:var(--v-fs-caption);color:var(--v-text-lo);letter-spacing:var(--v-ls-wide);margin-top:var(--v-space-1)}.city-hub[data-city="hcm"] .city-hero{border-top:2px solid var(--v-city-hcm)}.city-hub[data-city="dn"]  .city-hero{border-top:2px solid var(--v-city-dn)}.city-hub[data-city="hn"]  .city-hero{border-top:2px solid var(--v-city-hn)}.city-hub[data-city="nt"]  .city-hero{border-top:2px solid var(--v-city-nt)}.city-section{padding:var(--v-space-12) var(--v-gutter);max-width:var(--v-max-w-wide);margin:0 auto}.city-section__title{display:flex;align-items:center;gap:var(--v-space-3);font-family:var(--v-font-sans);font-size:var(--v-fs-h2);font-weight:var(--v-fw-bold);color:var(--v-gold-100);margin-bottom:var(--v-space-6)}.listing-page{background:var(--v-midnight)}.listing-filter{display:flex;gap:var(--v-space-2);flex-wrap:wrap;padding:var(--v-space-5) var(--v-gutter);max-width:var(--v-max-w-wide);margin:0 auto;border-bottom:1px solid var(--v-border-whisper)}.listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--v-space-6);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-8) var(--v-gutter)}.listing-item{display:flex;flex-direction:column;background:var(--v-surface-1);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-lg);overflow:hidden;transition:transform var(--v-dur-base) var(--v-ease-out),box-shadow var(--v-dur-base) var(--v-ease-out),border-color var(--v-dur-base) var(--v-ease-out)}@media (hover:hover) and (pointer:fine){.listing-item:hover{transform:translateY(-2px);border-color:var(--v-border-soft);box-shadow:var(--v-shadow-md),var(--v-shadow-gold)}.listing-item:hover .listing-item__media img{transform:scale(1.05)}}.listing-item__media{aspect-ratio:4 / 3;background:var(--v-surface-2);position:relative;overflow:hidden}.listing-item__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--v-dur-luxe) var(--v-ease-out)}.listing-item__badges{position:absolute;top:var(--v-space-3);left:var(--v-space-3);display:flex;gap:var(--v-space-1);z-index:1}.listing-item__body{padding:var(--v-space-5)}.listing-item__title{font-size:var(--v-fs-h3);font-weight:var(--v-fw-semibold);color:var(--v-text-hi);margin:0 0 var(--v-space-2);line-height:var(--v-lh-snug);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.listing-item__meta{font-size:var(--v-fs-caption);color:var(--v-text-md);margin-bottom:var(--v-space-3);display:flex;gap:var(--v-space-3);flex-wrap:wrap}.listing-item__meta-icon{display:inline-flex;align-items:center;gap:var(--v-space-1)}.listing-item__tags{display:flex;gap:var(--v-space-1);flex-wrap:wrap;margin-top:var(--v-space-3)}.venue-page{background:var(--v-midnight)}.venue-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,200px);gap:var(--v-space-2);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-5) var(--v-gutter) 0}.venue-gallery__item{position:relative;overflow:hidden;border-radius:var(--v-radius-md);background:var(--v-surface-2)}.venue-gallery__item:first-child{grid-row:1 / 3;grid-column:1 / 2}.venue-gallery__item img{width:100%;height:100%;object-fit:cover}.venue-container{display:grid;grid-template-columns:1fr 320px;gap:var(--v-space-10);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-10) var(--v-gutter)}@media (max-width:900px){.venue-container{grid-template-columns:1fr}.venue-gallery{grid-template-columns:1fr 1fr;grid-template-rows:180px 180px}.venue-gallery__item:first-child{grid-row:1;grid-column:1 / 3}}.venue-header{padding-bottom:var(--v-space-6);border-bottom:1px solid var(--v-border-divider);margin-bottom:var(--v-space-6)}.venue-title{font-family:var(--v-font-sans);font-size:var(--v-fs-h1);font-weight:var(--v-fw-bold);color:var(--v-text-hi);margin:0 0 var(--v-space-2);line-height:var(--v-lh-tight)}.venue-subtitle{font-size:var(--v-fs-body-lg);color:var(--v-text-md)}.venue-meta{display:flex;gap:var(--v-space-4);flex-wrap:wrap;margin-top:var(--v-space-4);font-size:var(--v-fs-body);color:var(--v-text-md)}.venue-info-panel{position:sticky;top:calc(var(--v-ticker-h) + var(--v-header-h) + var(--v-space-5));background:var(--v-surface-1);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-lg);padding:var(--v-space-6);height:fit-content}.venue-info-panel__price{font-size:var(--v-fs-h2);font-weight:var(--v-fw-bold);color:var(--v-gold-100);margin-bottom:var(--v-space-4)}.venue-info-panel__cta{display:flex;flex-direction:column;gap:var(--v-space-2);margin-top:var(--v-space-5)}.content-page{background:var(--v-midnight)}.content-article{max-width:var(--v-max-w-narrow);margin:0 auto;padding:var(--v-space-12) var(--v-gutter);font-size:var(--v-fs-body-lg);line-height:var(--v-lh-relaxed);color:var(--v-text-hi)}.content-article h1{font-family:var(--v-font-sans);font-size:var(--v-fs-h1);margin-bottom:var(--v-space-5)}.content-article h2{font-family:var(--v-font-sans);font-size:var(--v-fs-h2);margin:var(--v-space-12) 0 var(--v-space-5);padding-top:var(--v-space-6);border-top:1px solid var(--v-border-divider)}.content-article h3{font-size:var(--v-fs-h3);margin:var(--v-space-8) 0 var(--v-space-3);color:var(--v-gold-100)}.content-article p{margin-bottom:var(--v-space-5);color:var(--v-text-md)}.content-article a{color:var(--v-gold-100);text-decoration:underline;text-underline-offset:3px}.content-article a:hover{color:var(--v-gold-50)}.content-article ul,.content-article ol{padding-left:var(--v-space-6);margin-bottom:var(--v-space-5)}.content-article ul{list-style:disc}.content-article ol{list-style:decimal}.content-article li{margin-bottom:var(--v-space-2);color:var(--v-text-md)}.content-article blockquote{border-left:3px solid var(--v-gold-500);padding-left:var(--v-space-5);margin:var(--v-space-8) 0;font-family:var(--v-font-sans);font-size:var(--v-fs-h3);font-style:italic;color:var(--v-text-md)}.content-article img{border-radius:var(--v-radius-md);margin:var(--v-space-6) 0}.content-article pre,.content-article code{font-family:var(--v-font-mono);font-size:var(--v-fs-body);background:var(--v-surface-1);border-radius:var(--v-radius-sm);padding:2px 6px}.content-article pre{padding:var(--v-space-5);overflow-x:auto;border:1px solid var(--v-border-subtle);margin:var(--v-space-6) 0}.tool-page{background:var(--v-midnight)}.tool-layout{display:grid;grid-template-columns:var(--v-sidebar-w) 1fr;gap:var(--v-space-6);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-8) var(--v-gutter)}@media (max-width:900px){.tool-layout{grid-template-columns:1fr}}.tool-sidebar{position:sticky;top:calc(var(--v-ticker-h) + var(--v-header-h) + var(--v-space-4));height:fit-content;padding:var(--v-space-5);background:var(--v-surface-1);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-lg)}.tool-sidebar__title{font-size:var(--v-fs-caption);letter-spacing:var(--v-ls-widest);text-transform:uppercase;color:var(--v-gold-400);font-weight:var(--v-fw-bold);margin-bottom:var(--v-space-4)}.tool-card{background:var(--v-surface-1);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-lg);padding:var(--v-space-6);margin-bottom:var(--v-space-5)}.tool-card-pad-sm{padding:var(--v-space-4)}.tag-cloud{display:flex;flex-wrap:wrap;gap:var(--v-space-2);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-8) var(--v-gutter)}.blog-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--v-space-6);max-width:var(--v-max-w-wide);margin:0 auto;padding:var(--v-space-10) var(--v-gutter)}.blog-post-card{display:flex;flex-direction:column;background:var(--v-surface-1);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-lg);overflow:hidden;transition:all var(--v-dur-base) var(--v-ease-out)}.blog-post-card__media{aspect-ratio:16/9;background:var(--v-surface-2)}.blog-post-card__media img{width:100%;height:100%;object-fit:cover}.blog-post-card__body{padding:var(--v-space-5)}.blog-post-card__date{font-size:var(--v-fs-micro);color:var(--v-text-lo);letter-spacing:var(--v-ls-wide);margin-bottom:var(--v-space-2)}.blog-post-card__title{font-family:var(--v-font-sans);font-size:var(--v-fs-h3);font-weight:var(--v-fw-bold);margin:0 0 var(--v-space-3);line-height:var(--v-lh-snug)}.blog-post-card__excerpt{font-size:var(--v-fs-body);color:var(--v-text-md);line-height:var(--v-lh-relaxed);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.error-page{min-height:calc(100vh - var(--v-header-h) - var(--v-ticker-h));display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--v-space-10) var(--v-gutter);text-align:center}.error-page__code{font-family:var(--v-font-sans);font-size:clamp(80px,12vw,160px);font-weight:var(--v-fw-bold);background:var(--v-grad-gold);background-size:250% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1;letter-spacing:var(--v-ls-tight);animation:v-shimmer-gold 8s linear infinite}.error-page__title{font-family:var(--v-font-sans);font-size:var(--v-fs-h2);margin:var(--v-space-5) 0 var(--v-space-3);color:var(--v-gold-100)}.error-page__subtitle{color:var(--v-text-md);max-width:480px;margin-bottom:var(--v-space-8);line-height:var(--v-lh-relaxed)}.error-page__actions{display:flex;gap:var(--v-space-3);flex-wrap:wrap;justify-content:center}@media (max-width:768px){.home-hero-grid,.home-category-grid,.listing-grid,.blog-index{gap:var(--v-space-4)}.city-hero{padding:var(--v-space-12) var(--v-gutter) var(--v-space-10)}.city-hero__stats{gap:var(--v-space-6)}.venue-info-panel{position:static}.content-article{font-size:var(--v-fs-body)}}section.explore-hub,section.about-section,section.why-vietner,section.howto-guide,section.city-guide,section.city-tabs,section.category-guide,section.blog-section,section.cta-section,section.faq-section{position:relative;overflow:hidden}section.explore-hub::before,section.about-section::before,section.faq-section::before,section.why-vietner::before,section.howto-guide::before,section.city-guide::before,section.category-guide::before,section.blog-section::before,section.cta-section::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--v-gold-400),transparent);opacity:0.6;pointer-events:none}.about-section .about-content{background:transparent;border:none;padding:0;box-shadow:none}section.explore-hub > *,section.about-section > * > *,section.why-vietner > *,section.howto-guide > *,section.city-guide > *,section.city-tabs > *,section.category-guide > *,section.blog-section > *,section.cta-section > *{position:relative;z-index:1}.comparison-insight,.guide-text,.faq-cta{max-width:var(--v-max-w-wide);margin:var(--v-space-8) auto;padding:var(--v-space-8);background:var(--v-grad-surface);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-xl);box-shadow:var(--v-shadow-md);position:relative;overflow:hidden}.venue-cta-section::before,.comparison-insight::before,.guide-text::before,.related-section::before,.faq-cta::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--v-gold-400),transparent);opacity:0.6;pointer-events:none}section.hero,section.venue-hero,section.venue-gallery,section.city-hero{background:transparent;border:none;box-shadow:none;border-radius:0;margin:0;max-width:none}section.hero::before,section.venue-hero::before,section.city-hero::before{content:none}body .section-bordered,body .region-item,body .guide-text,body .content-block{border-left:none}body.city-hub .city-header{position:relative;overflow:hidden;min-height:360px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:80px 24px;border-radius:var(--v-radius-xl);margin-bottom:var(--v-space-8);background:var(--v-midnight)}body.city-hub .city-header::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;opacity:0.55;z-index:0;filter:saturate(1.1)}body.city-hub .city-header::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,15,16,0.35) 0%,rgba(15,15,16,0.75) 70%,rgba(15,15,16,0.95) 100%);z-index:1}body.city-hub .city-header > *{position:relative;z-index:2}body.city-hub[data-city="hcm"] .city-header::before{background-image:url('/assets/img/hero-hochiminh.webp')}body.city-hub[data-city="dn"]  .city-header::before{background-image:url('/assets/img/hero-danang.webp')}body.city-hub[data-city="hn"]  .city-header::before{background-image:url('/assets/img/hero-hanoi.webp')}body.city-hub[data-city="nt"]  .city-header::before{background-image:url('/assets/img/hero-nhatrang.webp')}body.city-hub[data-city="hcm"] .city-header{border-top:3px solid var(--v-city-hcm)}body.city-hub[data-city="dn"]  .city-header{border-top:3px solid var(--v-city-dn)}body.city-hub[data-city="hn"]  .city-header{border-top:3px solid var(--v-city-hn)}body.city-hub[data-city="nt"]  .city-header{border-top:3px solid var(--v-city-nt)}body.city-hub .city-header .hub-city-title{font-size:clamp(40px,6vw,64px);font-weight:800;line-height:1.1;letter-spacing:-0.02em;text-shadow:0 2px 24px rgba(0,0,0,0.6);margin:0 0 16px}body.city-hub .city-header .venue-count{font-size:18px;color:var(--v-gold-100);font-weight:600;letter-spacing:0.06em;text-shadow:0 1px 12px rgba(0,0,0,0.5)}@media (max-width:768px){body.city-hub .city-header{min-height:260px;padding:48px 20px}body.city-hub .city-header .hub-city-title{font-size:clamp(32px,9vw,44px)}body.city-hub .city-header .venue-count{font-size:15px}}section.related-section,section.venue-cta-section,section.nearby-venues{background:transparent;border:none;box-shadow:none;padding:0;margin:var(--v-space-6) 0;max-width:100%;width:100%;border-radius:0;box-sizing:border-box}section.related-section::before,section.venue-cta-section::before,section.nearby-venues::before{content:none;display:none}.venue-gallery .gallery-counter,.venue-gallery .gallery-nav,.venue-gallery-thumb,[class*="gallery-indicator"]{font-size:11px;opacity:0.7;padding:2px 6px;border-radius:var(--v-radius-sm);background:rgba(0,0,0,0.55);color:var(--v-gold-100);backdrop-filter:blur(4px)}.explore-hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px;margin:0 auto}@media (max-width:900px){.explore-hub-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.explore-hub-grid{grid-template-columns:1fr}}.popular-tags,.explore-hub .popular-tags,.home-popular-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 12px;max-width:860px;margin:24px auto 0;padding:24px 20px;background:var(--v-surface-glass);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-xl)}.popular-tags .tag-link,.popular-tags > a,.popular-tags > span{display:inline-flex;align-items:center;padding:8px 14px;min-height:36px;font-size:13px;font-weight:600;letter-spacing:0.01em;background:var(--v-gold-bg-subtle);border:1px solid var(--v-border-subtle);border-radius:var(--v-radius-full);color:var(--v-gold-100);transition:all var(--v-dur-fast) var(--v-ease-out);text-decoration:none}@media (hover:hover) and (pointer:fine){.popular-tags .tag-link:hover,.popular-tags > a:hover{background:var(--v-gold-bg-soft);border-color:var(--v-border-soft);transform:translateY(-1px)}}.v-concierge-dock,.sticky-cta,.cta-fab,body .v-concierge-dock,body .sticky-cta,body .cta-fab,body .float-kakao,body .fab-kakao,body #kakaoBtn,body #floatingCta,body .floating-cta{display:none}body .floating-buttons ~ .floating-buttons{display:none}body .floating-buttons.floating-buttons{position:fixed;bottom:130px;right:24px;z-index:110;display:flex;flex-direction:column;gap:12px}:root{--u-content-max:1200px;--u-content-narrow:800px;--u-gutter-mobile:2px;--u-gutter-tablet:12px;--u-gutter-desktop:32px;--u-section-gap-mobile:12px;--u-section-gap-tablet:24px;--u-section-gap-desktop:40px;--u-card-pad-mobile:8px;--u-card-pad-tablet:20px;--u-card-pad-desktop:32px;--u-inner-pad-mobile:8px;--u-inner-pad-tablet:14px;--u-inner-pad-desktop:16px}body .container,body .v-container,body .hub-lower,body .about-wrap,body .tool-wrap{width:100%;max-width:var(--u-content-max);margin-left:auto;margin-right:auto;padding-left:var(--u-gutter-mobile);padding-right:var(--u-gutter-mobile);box-sizing:border-box}body section.glass-card,body section.hub-section,body .glass-card.hub-section,body .glass-card.reveal,body .tool-card,body .v-card--feature,body .content-block{padding:var(--u-card-pad-mobile);margin-bottom:var(--u-section-gap-mobile);border-radius:16px;box-sizing:border-box}body main > section,body .main-content > section,body .container > section{margin-top:var(--u-section-gap-mobile);margin-bottom:var(--u-section-gap-mobile)}body .hub-h2,body .section-title,body .home-section-title,body .tool-section-title,body .gold-text.heading-22-mb16,body .gold-text.hub-h2,body .glass-card > h2:first-child,body .glass-card > .gold-text{text-align:center;margin-bottom:16px}.hub-desc,.block-desc,.text-13-muted,.text-14-muted,.tool-desc,.hub-area-desc,.hub-tip-desc,.hub-faq-a,.faq-answer p{text-align:left;line-height:1.7}body .flex-tags,body .category-nav-grid,body .popular-tags,body .tag-cloud,body .related-block-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:16px 0;margin:0 auto}body .venues-grid,body .listing-grid,body .hub-stats-grid,body .category-grid,body .explore-hub-grid,body .tool-grid{display:grid;gap:16px;margin:0 auto}@media (min-width:768px) and (max-width:1023px){body .container,body .v-container,body .hub-lower,body .about-wrap,body .tool-wrap{padding-left:12px;padding-right:12px}body section.glass-card,body section.hub-section,body .glass-card.reveal,body .glass-card,body .tool-card,body .content-block,body .home-city-card,body .home-category-card,body .hub-area-card,body .hub-tip,body .section-box,body .card-gold-bg,body .info-card,body .content-card,body .tool-result-box,body .tool-guide-section,body .blog-card,body .related-card,body .listing-guide,body .filters-section,body .browse-section,body .city-header,body .guide-text{padding:20px;border-radius:16px}}@media (min-width:1024px){body .container,body .v-container,body .hub-lower,body .about-wrap,body .tool-wrap{padding-left:var(--u-gutter-desktop);padding-right:var(--u-gutter-desktop)}body section.glass-card,body section.hub-section,body section.faq-section .container,body section.about-section .about-content,body section.explore-hub .container,body .glass-card.hub-section,body .glass-card.reveal,body .tool-card,body .v-card--feature,body .content-block{padding:var(--u-card-pad-desktop);margin-bottom:var(--u-section-gap-desktop);border-radius:20px}body main > section,body .main-content > section,body .container > section{margin-top:var(--u-section-gap-desktop);margin-bottom:var(--u-section-gap-desktop)}}html{max-width:100vw}body{max-width:100vw;overflow-x:clip}main,.main-content{max-width:100vw;overflow-x:clip}body .glass-card img,body .v-card img,body .content-block img,body section img:not([class*='hero-']){max-width:100%;height:auto}body main > section:first-of-type,body .main-content > section:first-of-type{margin-top:0}body main > section:last-of-type,body .main-content > section:last-of-type{margin-bottom:var(--u-section-gap-desktop)}@media (max-width:767px){:root{--u-gutter-mobile:2px;--u-card-pad-mobile:8px;--u-section-gap-mobile:12px}body .container,body .v-container,body .hub-lower,body .about-wrap,body .tool-wrap,body .page-container,body .content-container,body .inner-container{padding-left:2px;padding-right:2px}body section.glass-card,body .glass-card.reveal,body .glass-card,body .section-box,body .card-gold-bg,body .info-card,body .content-card,body .tool-result-box,body .tool-result-box-sm,body .tool-result-box-mt,body .tool-guide-section,body .related-card,body .listing-guide,body .filters-section,body .browse-section,body .city-header,body .guide-text,body .hub-area-card,body .hub-tip{padding:8px;border-radius:14px}.tip-box{padding:8px 10px}.detail-card{padding:8px}.faq-item{padding:10px 8px;border-radius:12px}.glass-card table th,.glass-card table td,.price-guide table th,.price-guide table td{padding:8px 6px;font-size:13px}body main > section,body .main-content > section,body .container > section,body section + section{margin-top:16px;margin-bottom:16px}body .venues-grid,body .listing-grid,body .hub-stats-grid,body .category-grid,body .explore-hub-grid,body .tool-grid,body .home-hero-grid,body .home-category-grid,body .blog-index{gap:10px;padding-left:0;padding-right:0}body .flex-tags,body .category-nav-grid,body .popular-tags,body .tag-cloud,body .related-block-tags,body .city-chips{gap:6px;padding:12px 0}body .popular-tags > a,body .popular-tags .tag-link,body .tag-link,body .v-chip,body .category-link-pill{padding:6px 10px;font-size:12px}body .hub-desc,body .block-desc,body .text-13-muted,body .text-14-muted,body section p{padding-left:2px;padding-right:2px}body .city-header,body .city-hero,body .v-hero-mega,body .v-hero-compact,body.city-hub .city-header{padding-left:16px;padding-right:16px}body.city-hub .city-header{min-height:220px;padding-top:32px;padding-bottom:32px}body.city-hub .city-header .hub-city-title{font-size:clamp(28px,8vw,40px)}body .venue-gallery,body .gallery-grid,body .image-grid{padding-left:0;padding-right:0;gap:4px}.header-inner,body .ticker-bar .container{padding-left:12px;padding-right:12px}body .listing-grid,body .home-hero-grid,body .home-category-grid,body .blog-index,body .venues-grid{grid-template-columns:1fr}body .glass-card,body .v-card,body .tool-card,body .content-block{margin-left:0;margin-right:0}}@media (max-width:360px){:root{--u-gutter-mobile:0px;--u-card-pad-mobile:6px}body .container,body .v-container,body .hub-lower,body .about-wrap,body .tool-wrap{padding-left:0px;padding-right:0px}body section.glass-card,body .v-card,body .tool-card,body .content-block{padding:6px}body .tip-box{padding:6px 8px}body .detail-card{padding:6px}}
/* Mobile space optimization (2026-05-04) */
@media (max-width: 767px) {
  /* 마퀴/헤더 슬림화 — 상단 공간 절약 */
  body .ticker-bar { height: 24px; font-size: 10px; }
  body .ticker-content { font-size: 10px; }
  body .header { height: 52px; }
  body .header-inner { height: 52px; padding-left: 8px; padding-right: 8px; }
  body .logo-text { font-size: 16px; }

  /* 컨테이너 좌우 여백 0 (이미 일부 있음) — 강화 */
  body .container,
  body .v-container,
  body .hub-lower,
  body .about-wrap,
  body .tool-wrap,
  body .page-container,
  body .content-container,
  body .inner-container,
  body main,
  body .main-content {
    padding-left: 0;
    padding-right: 0;
    max-width: 100vw;
  }

  /* 카드 좌우 0 padding, 위아래 6px만 */
  body section.glass-card,
  body .glass-card,
  body .v-card,
  body .tool-card,
  body .content-block,
  body .section-box,
  body .info-card,
  body .content-card {
    padding: 10px 6px;
    border-radius: 12px;
    margin-left: 4px;
    margin-right: 4px;
  }

  /* 도시 페이지 좌우 사이드바 모바일 처리 — 본문 아래로 */
  body .tool-layout,
  body .listing-page-layout,
  body .city-listing-layout {
    grid-template-columns: 1fr;
  }
  body .tool-sidebar {
    position: static;
    margin: 12px 4px;
    padding: 12px;
  }

  /* venue 페이지 사이드바 풀폭 + 본문 아래로 */
  body .venue-layout {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  body .venue-sidebar {
    position: static;
    margin: 0;
  }

  /* venue 헤더 사진 + 정보 모바일 풀폭 */
  body .venue-header {
    padding: 10px;
    gap: 8px;
  }
  body .venue-photo {
    aspect-ratio: 16/10;
  }

  /* venue 갤러리 — 한 화면에 3.5장 보이게 (다음 사진 미리 보임) */
  body .venue-gallery {
    padding: 4px 8px;
  }
  body .gallery-thumb {
    flex: 0 0 calc((100% - 24px) / 3.3);
    height: 76px;
  }

  /* CTA 버튼 모바일 풀폭 */
  body .venue-cta-buttons,
  body .sidebar-consult-btns,
  body .cta-btn-v,
  body .sidebar-cta-btn {
    width: 100%;
  }
  body .venue-cta-buttons { gap: 8px; }
  body .cta-btn-v { padding: 12px 16px; font-size: 14px; }

  /* 카드 그리드 — 2열 유지 (단일 컬럼 너무 휑함) */
  body .listing-grid,
  body .venues-grid,
  body .nearby-grid-v2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    padding: 0 4px;
  }
  body .listing-item,
  body .nearby-card {
    border-radius: 10px;
  }
  body .nearby-card-body { padding: 10px 8px; }
  body .nearby-card-name { font-size: 13px; }
  body .nearby-card-sub { font-size: 11px; }

  /* 도시 카드/카테고리 카드 — 1열 그대로 (이미 풀폭) */
  body .home-hero-grid,
  body .home-category-grid,
  body .blog-index {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 0 4px;
  }

  /* hero 영역 슬림 */
  body .hero {
    padding-top: 24px;
    padding-bottom: 20px;
  }
  body .hero h1 { font-size: clamp(28px, 8vw, 36px); line-height: 1.15; }
  body .hero-description { font-size: 13px; line-height: 1.5; }
  body .hero-stats { gap: 14px; margin: 20px 0; }
  body .stat-value { font-size: 24px; }
  body .stat-label { font-size: 10px; }

  /* 도시별 hero */
  body .city-hero { padding: 28px 12px 22px; }
  body .city-hero__stats { gap: 16px; }

  /* FAQ 압축 */
  body .faq-item summary { padding: 10px 8px; font-size: 13px; }
  body .hub-faq-q { font-size: 13px; }
  body .hub-faq-a { font-size: 12px; line-height: 1.55; padding: 6px 8px; }

  /* 표(table) 모바일 압축 */
  body .glass-card table th,
  body .glass-card table td,
  body .price-guide table th,
  body .price-guide table td,
  body .quick-summary td {
    padding: 6px 4px;
    font-size: 12px;
  }

  /* 플로팅 버튼 — 위치 약간 위로 */
  body .floating-buttons {
    bottom: 90px;
    right: 8px;
  }

  /* 모바일 바텀 네비 표시 + 본문 패딩 보호 */
  body .mobile-bottom-nav { display: flex; }
  body { padding-bottom: 56px; }
}

/* 360px 이하 초소형 — gutter 완전 0 */
@media (max-width: 380px) {
  body section.glass-card,
  body .glass-card,
  body .v-card,
  body .tool-card,
  body .content-block {
    padding: 8px 4px;
    margin-left: 0;
    margin-right: 0;
  }
  body .listing-grid,
  body .venues-grid {
    gap: 4px;
    padding: 0 2px;
  }
  body .gallery-thumb {
    flex: 0 0 calc((100% - 18px) / 3.2);
    height: 70px;
  }
}

/* 태블릿 (768~1023px) — 사이드바 좁히기, 본문 폭 확보 */
@media (min-width: 768px) and (max-width: 1023px) {
  body .container,
  body .v-container,
  body .hub-lower {
    padding-left: 12px;
    padding-right: 12px;
  }
  body .listing-grid,
  body .venues-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  body .nearby-grid-v2 {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  /* 태블릿 갤러리 4장 */
  body .venue-gallery .gallery-thumb {
    flex: 0 0 calc((100% - 30px) / 4);
    height: 84px;
  }
}

/* Tablet refined optimization (2026-05-04) */

/* 태블릿 세로 모드 (768~899px) */
@media (min-width: 768px) and (max-width: 899px) {
  body .container,
  body .v-container,
  body .hub-lower,
  body .about-wrap,
  body .tool-wrap {
    padding-left: 14px;
    padding-right: 14px;
    max-width: 100%;
  }

  /* 헤더 — PC 메뉴 표시 */
  body .header { height: 60px; }
  body .header-inner { padding: 0 16px; }

  /* 카드 패딩 */
  body section.glass-card,
  body .glass-card,
  body .v-card,
  body .tool-card,
  body .content-block,
  body .info-card,
  body .content-card,
  body .section-box {
    padding: 18px 16px;
    margin-left: 0;
    margin-right: 0;
    border-radius: 14px;
  }

  /* 도시 카드 — 2열 (이미 적용), 카테고리 카드 — 2열 */
  body .home-hero-grid,
  body .home-category-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    padding: 0 14px;
  }

  /* listing 그리드 — 2열 */
  body .listing-grid,
  body .venues-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    padding: 0 14px;
  }

  /* 인근 venue 그리드 — 2열 */
  body .nearby-grid-v2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  /* venue 페이지 — 사이드바 본문 아래 */
  body .venue-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  body .venue-sidebar {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  body .venue-sidebar .sidebar-card:first-child {
    grid-column: 1 / -1;
  }

  /* venue 헤더 — 사진 + 정보 좌우 분할 유지 */
  body .venue-header {
    grid-template-columns: 1.2fr 1fr;
    gap: 16px;
    padding: 18px;
  }

  /* venue 갤러리 — 4장 */
  body .venue-gallery .gallery-thumb {
    flex: 0 0 calc((100% - 30px) / 4);
    height: 90px;
  }

  /* hero 영역 */
  body .hero { padding: 40px 16px 32px; }
  body .hero h1 { font-size: clamp(36px, 5vw, 48px); line-height: 1.15; }
  body .hero-stats { gap: 28px; }
  body .stat-value { font-size: 32px; }

  /* 도시별 hero */
  body .city-hero { padding: 40px 16px 32px; }
  body .city-hero__stats { gap: 28px; flex-wrap: wrap; }

  /* 도구 페이지 — 사이드바 본문 위로 */
  body .tool-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  body .tool-sidebar {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    padding: 16px;
  }

  /* 표(table) */
  body .glass-card table th,
  body .glass-card table td,
  body .price-guide table th,
  body .price-guide table td {
    padding: 10px 8px;
    font-size: 13px;
  }

  /* explore-hub 그리드 — 2열 */
  body .explore-hub-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  /* CTA 버튼 — 적정 크기 */
  body .venue-cta-buttons { gap: 10px; }
  body .cta-btn-v {
    padding: 14px 22px;
    font-size: 14px;
    flex: 1 1 calc(50% - 5px);
  }

  /* FAQ */
  body .faq-item { padding: 12px 14px; }
  body .hub-faq-q { font-size: 14px; }
  body .hub-faq-a { font-size: 13px; line-height: 1.65; }

  /* 플로팅 버튼 */
  body .floating-buttons {
    bottom: 110px;
    right: 16px;
  }
}

/* 태블릿 가로 모드 (900~1023px) — 더 넓게 활용 */
@media (min-width: 900px) and (max-width: 1023px) {
  body .container,
  body .v-container,
  body .hub-lower,
  body .about-wrap,
  body .tool-wrap {
    padding-left: 18px;
    padding-right: 18px;
    max-width: 1100px;
    margin: 0 auto;
  }

  body .header { height: 64px; }

  /* 카드 패딩 — PC급 */
  body section.glass-card,
  body .glass-card,
  body .v-card,
  body .tool-card,
  body .content-block {
    padding: 22px 20px;
    border-radius: 16px;
  }

  /* 도시 카드 — 2열 (큰 카드), 카테고리 — 4열 */
  body .home-hero-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
  }
  body .home-category-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
  }

  /* listing 그리드 — 3열 */
  body .listing-grid,
  body .venues-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }

  /* 인근 venue — 3열 */
  body .nearby-grid-v2 {
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
  }

  /* venue 페이지 — 메인 + 사이드바 2컬럼 유지 */
  body .venue-layout {
    grid-template-columns: 1fr 280px;
    gap: 24px;
  }
  body .venue-sidebar {
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  body .venue-sidebar .sidebar-card:first-child { grid-column: auto; }

  /* venue 헤더 */
  body .venue-header {
    grid-template-columns: 1.1fr 1fr;
    gap: 20px;
    padding: 20px;
  }

  /* 갤러리 — 5장 */
  body .venue-gallery .gallery-thumb {
    flex: 0 0 calc((100% - 40px) / 5);
    height: 90px;
  }

  /* hero 영역 — PC급 */
  body .hero { padding: 56px 20px 44px; }
  body .hero h1 { font-size: clamp(42px, 5vw, 56px); }
  body .hero-stats { gap: 36px; }
  body .stat-value { font-size: 38px; }

  /* explore-hub — 3열 */
  body .explore-hub-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
  }

  /* 도구 페이지 — 사이드바 + 본문 2컬럼 */
  body .tool-layout {
    grid-template-columns: 240px 1fr;
    gap: 18px;
  }
  body .tool-sidebar {
    position: sticky;
    top: 100px;
    display: block;
    padding: 18px;
  }

  /* CTA */
  body .cta-btn-v {
    padding: 14px 28px;
    font-size: 15px;
  }
}
