/* CRITICAL FIX: gradient text 완전 제거 */
.sec-title,
.sec-title.intro-title,
h2.sec-title,
.sec-intro .sec-title,
.sec-head .sec-title {
  color: #1C1C1E !important;
  -webkit-text-fill-color: #1C1C1E !important;
  background: none !important;
  background-image: none !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
  -moz-background-clip: border-box !important;
}

/* ══════════════════════════════════════
   별서보길 Byeolseo Bogil — Stylesheet
   ══════════════════════════════════════ */

:root {
  --ocean: #14455A;
  --ocean-deep: #0C2E3D;
  --ocean-light: #1B6B8A;
  --gold: #C9956B;
  --gold-light: #DDB48A;
  --gold-pale: #F0DCC8;
  --forest: #2D4A30;
  --stone: #7A8490;
  --cream: #F6F2EC;
  --warm: #FDFBF8;
  --ink: #1C1C1E;
  --ink-mid: #3D3D40;
  --ink-light: #6E6E73;
  --border: rgba(20,69,90,.07);
  --sh-sm: 0 1px 4px rgba(0,0,0,.04);
  --sh-lg: 0 12px 40px rgba(0,0,0,.08);
  --ease: cubic-bezier(.22,1,.36,1);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Noto Sans KR', sans-serif;
  color: var(--ink);
  background: var(--warm);
  overflow-x: hidden;
  line-height: 1.75;
}
h1,h2,h3 { font-family: 'Noto Serif KR', serif; font-weight:700; line-height:1.3; }
a { text-decoration:none; color:inherit; }
button { border:none; background:none; cursor:pointer; font-family:inherit; }
.box { max-width:1140px; margin:0 auto; padding:0 1.25rem; }
@media(min-width:768px){ .box { padding:0 2.5rem; } }

/* ── Animations ── */
.rv { opacity:0; transform:translateY(30px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.rv.vis { opacity:1; transform:none; }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s}

/* ══════ NAV ══════ */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition: all .4s var(--ease);
}
.nav.scrolled {
  background: rgba(253,251,248,.95);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
}
.nav-inner {
  display:flex; align-items:center; justify-content:space-between; height:64px;
}
/* Logo */
.logo { display:flex; align-items:center; gap:10px; }
.logo-mark {
  width:32px; height:32px; border-radius:8px;
  background: linear-gradient(135deg, var(--ocean), var(--forest));
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.logo-mark::after {
  content:''; position:absolute; top:-5px; right:-5px;
  width:16px; height:16px; border-radius:50%;
  background: var(--gold); opacity:.55;
}
.logo-mark span {
  font-family:'Noto Serif KR',serif; font-weight:900;
  font-size:14px; color:#fff; position:relative; z-index:1;
}
.logo-kr {
  font-family:'Noto Serif KR',serif; font-weight:700;
  font-size:1rem; color:#fff; transition:color .4s;
}
.logo-en {
  font-size:.55rem; letter-spacing:.15em; text-transform:uppercase;
  color:rgba(255,255,255,.55); transition:color .4s;
}
.nav.scrolled .logo-kr { color:var(--ink); }
.nav.scrolled .logo-en { color:var(--stone); }

.nav-links { display:none; align-items:center; gap:1.6rem; }
@media(min-width:768px){ .nav-links { display:flex; } }
.nav-a {
  font-size:.82rem; font-weight:500;
  color:rgba(255,255,255,.8); transition:color .3s;
}
.nav-a:hover { color:#fff; }
.nav.scrolled .nav-a { color:var(--ink-light); }
.nav.scrolled .nav-a:hover { color:var(--ocean); }

.nav-lang {
  font-size:.75rem; padding:4px 12px; border-radius:20px;
  border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.7);
  transition:all .3s; display:flex; align-items:center; gap:4px;
}
.nav.scrolled .nav-lang { color:var(--stone); border-color:var(--border); }
.nav-lang:hover { color:var(--gold); border-color:var(--gold); }

.nav-book {
  font-size:.8rem; font-weight:600; color:#fff;
  background:var(--ocean); padding:7px 18px; border-radius:20px;
  transition:all .3s;
}
.nav-book:hover { background:var(--ocean-deep); transform:translateY(-1px); }

.mob-btn {
  display:flex; width:40px; height:40px; align-items:center;
  justify-content:center; color:#fff; transition:color .4s;
}
.nav.scrolled .mob-btn { color:var(--ink); }
@media(min-width:768px){ .mob-btn { display:none; } }

.mob-menu {
  display:none; position:fixed; top:64px; left:0; right:0; bottom:0;
  background:rgba(253,251,248,.98); backdrop-filter:blur(20px);
  z-index:99; padding:1.5rem;
}
.mob-menu.open { display:flex; flex-direction:column; gap:.25rem; }
.mob-menu a, .mob-menu button {
  display:block; padding:.85rem .5rem; font-size:1rem; font-weight:500;
  color:var(--ink); border-bottom:1px solid var(--border);
  text-align:left; width:100%;
}
.mob-cta {
  margin-top:.75rem; background:var(--ocean)!important;
  color:#fff!important; border-radius:12px;
  text-align:center!important; border:none!important; padding:1rem!important;
}

/* ══════ HERO ══════ */
.hero {
  position:relative; min-height:100vh;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background: url('images/hero.jpg') center/cover no-repeat;
}
.hero-bg::after {
  content:''; position:absolute; inset:0;
  background: linear-gradient(
    180deg,
    rgba(8,32,28,.15) 0%,
    rgba(12,36,30,.25) 30%,
    rgba(15,30,25,.45) 60%,
    rgba(12,30,25,.65) 100%
  );
}
.hero-bg::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 45%, rgba(255,220,160,.08) 0%, transparent 70%),
    radial-gradient(ellipse 60% 50% at 20% 80%, rgba(40,80,60,.12) 0%, transparent 60%);
}
.hero-circles { position:absolute; inset:0; pointer-events:none; }
.hc {
  position:absolute; border-radius:50%;
  border:1px solid rgba(255,255,255,.04);
  animation: hcFloat 9s ease-in-out infinite;
}
.hc1 { width:320px; height:320px; top:5%; right:-80px; }
.hc2 { width:200px; height:200px; bottom:15%; left:-40px; animation-delay:3s; }
.hc3 { width:140px; height:140px; top:30%; left:15%; border-color:rgba(201,180,140,.05); animation-delay:5s; }
@keyframes hcFloat {
  0%,100% { transform:translateY(0) } 50% { transform:translateY(-16px) }
}
.hero-wave {
  position:absolute; bottom:0; left:0; right:0; height:100px; overflow:hidden;
}
.hero-wave svg {
  position:absolute; bottom:-2px; width:200%; min-width:1200px;
  animation: wDrift 14s ease-in-out infinite alternate;
}
@keyframes wDrift { 0%{transform:translateX(0)} 100%{transform:translateX(-20%)} }

.hero-inner {
  position:relative; z-index:2; text-align:center; color:#fff;
  max-width:640px; padding:0 1.5rem;
  animation: fadeUp 1.5s var(--ease) both;
}
@keyframes fadeUp { from{opacity:0;transform:translateY(36px)} to{opacity:1;transform:none} }

.hero-tag {
  display:inline-flex; align-items:center; gap:6px;
  font-size:.65rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-light); border:1px solid rgba(201,149,107,.2);
  padding:5px 16px; border-radius:20px; margin-bottom:1.75rem;
  background:rgba(201,149,107,.05);
}
.hero h1 {
  font-size:clamp(2.5rem,7vw,5rem); font-weight:900;
  margin-bottom:.5rem; letter-spacing:-.02em;
  text-shadow: 0 2px 20px rgba(0,0,0,.3), 0 0 60px rgba(255,200,120,.08);
}
.hero-sub {
  font-size:clamp(.9rem,2vw,1.2rem); font-weight:300;
  margin-bottom:1.25rem; opacity:.92;
  text-shadow: 0 1px 8px rgba(0,0,0,.3);
}
.hero-desc {
  font-size:.88rem; line-height:2; opacity:.75;
  margin-bottom:2.25rem; white-space:pre-line;
  text-shadow: 0 1px 6px rgba(0,0,0,.25);
}
.hero-btns { display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; }
.btn-gold {
  display:inline-flex; align-items:center; gap:7px;
  font-size:.88rem; font-weight:600; color:#fff;
  background:var(--gold); padding:13px 28px; border-radius:26px;
  transition:all .3s; box-shadow:0 4px 16px rgba(201,149,107,.25);
}
.btn-gold:hover { background:#b8844f; transform:translateY(-2px); }
.btn-ghost {
  display:inline-flex; align-items:center; gap:7px;
  font-size:.88rem; font-weight:500; color:#fff;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2);
  padding:13px 28px; border-radius:26px; transition:all .3s;
  backdrop-filter:blur(4px);
}
.btn-ghost:hover { background:rgba(255,255,255,.16); }

.hero-scroll {
  position:absolute; bottom:1.75rem; left:50%; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:5px;
  color:rgba(255,255,255,.35); font-size:.6rem; letter-spacing:.15em;
  animation: sBounce 2.5s ease-in-out infinite;
}
@keyframes sBounce { 0%,100%{transform:translateX(-50%)} 50%{transform:translateX(-50%) translateY(6px)} }
.scroll-line { width:1px; height:32px; background:linear-gradient(to bottom,rgba(255,255,255,.35),transparent); }


/* ══════ SECTIONS ══════ */
.sec-label {
  font-size:.62rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin-bottom:.6rem; display:block;
}
.sec-title { font-size:clamp(1.5rem,3.2vw,2.4rem); margin-bottom:.5rem; }
.sec-desc { font-size:.92rem; color:var(--stone); max-width:520px; margin:0 auto; }
.sec-head { text-align:center; margin-bottom:3rem; }
.divider { height:1px; background:linear-gradient(90deg,transparent,var(--border),transparent); }

/* ── Intro ── */
.sec-intro { padding:5.5rem 0; background:var(--cream); position:relative; }
.sec-intro::before {
  content:''; position:absolute; top:0; left:0; right:0; height:80px;
  background:linear-gradient(var(--warm),var(--cream)); pointer-events:none;
  z-index:0;
}
.sec-intro .box { position:relative; z-index:1; }
.intro-title {
  color: #14455A;
  -webkit-background-clip: unset;
  -webkit-text-fill-color: unset;
  background-clip: unset;
  background: none;
}
.intro-grid { display:grid; grid-template-columns:1fr; gap:1.15rem; }
@media(min-width:768px){ .intro-grid { grid-template-columns:repeat(3,1fr); } }
.intro-card {
  background:#fff; border-radius:14px; padding:2rem 1.5rem; text-align:center;
  box-shadow:var(--sh-sm); border:1px solid var(--border);
  transition:all .45s var(--ease); position:relative; overflow:hidden;
}
.intro-card::after {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--ocean),var(--gold));
  transform:scaleX(0); transition:transform .45s var(--ease); transform-origin:left;
}
.intro-card:hover { transform:translateY(-5px); box-shadow:var(--sh-lg); }
.intro-card:hover::after { transform:scaleX(1); }
.ic-icon {
  width:64px; height:64px; border-radius:50%; margin:0 auto 1.1rem;
  display:flex; align-items:center; justify-content:center;
}
.ic-icon svg { width:28px; height:28px; }
.ic-nature { background:linear-gradient(135deg,#e8f4f0,#d4ece4); }
.ic-culture { background:linear-gradient(135deg,#fef3e8,#fce5cc); }
.ic-product { background:linear-gradient(135deg,#e8eef4,#d4e0ec); }
.intro-card h3 { font-size:1.1rem; margin-bottom:.5rem; }
.intro-card p { font-size:.82rem; color:var(--stone); line-height:1.7; }

/* ── Discover ── */
.sec-disc { padding:5.5rem 0; background:var(--warm); }
.disc-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:768px){ .disc-grid { grid-template-columns:1fr 1fr; } }
.disc-card {
  position:relative; height:360px; border-radius:18px; overflow:hidden;
  cursor:pointer; transition:transform .5s var(--ease);
}
.disc-card:hover { transform:translateY(-4px); }
.disc-sea { background: url('images/sea.jpg') center/cover no-repeat; }
.disc-forest { background: url('images/forest.jpg') center/cover no-repeat; }
.disc-deco { position:absolute; inset:0; pointer-events:none; opacity:.12; }
.sea-wave-deco {
  position:absolute; bottom:50px; left:0; right:0; height:60px;
  overflow:hidden; opacity:.18;
}
.sea-wave-deco svg { width:200%; animation:wDrift 10s linear infinite alternate; }
.disc-info {
  position:absolute; bottom:0; left:0; right:0; padding:1.75rem;
  color:#fff; z-index:2;
  background:linear-gradient(0deg,rgba(0,0,0,.45),transparent);
}
.disc-info h3 { font-size:1.5rem; margin-bottom:.35rem; }
.disc-info p { font-size:.82rem; opacity:.8; line-height:1.6; }

/* ── Partners ── */
.sec-partners { padding:5.5rem 0; background:var(--cream); }
.tabs { display:flex; justify-content:center; gap:.4rem; margin-bottom:2.25rem; flex-wrap:wrap; }
.tab {
  font-size:.82rem; font-weight:500; padding:7px 18px; border-radius:22px;
  color:var(--stone); border:1px solid var(--border); transition:all .3s;
}
.tab.on, .tab:hover { background:var(--ocean); color:#fff; border-color:var(--ocean); }
.tc { display:none; } .tc.on { display:block; }
.p-grid { display:grid; grid-template-columns:1fr; gap:1.15rem; }
@media(min-width:640px){ .p-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .p-grid { grid-template-columns:repeat(3,1fr); } }

.p-card {
  background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:var(--sh-sm); border:1px solid var(--border);
  transition:all .45s var(--ease);
}
.p-card:hover { transform:translateY(-4px); box-shadow:var(--sh-lg); }
.p-top {
  position:relative; height:160px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.p-bg { position:absolute; inset:0; transition:transform .5s var(--ease); }
.p-card:hover .p-bg { transform:scale(1.03); }
.bg-hanok   { background:linear-gradient(135deg,#2a1810,#5a3828); }
.bg-ocean-v { background:linear-gradient(135deg,#0a3a5a,#2a7a9a); }
.bg-forest-v{ background:linear-gradient(135deg,#1a3020,#3a7040); }
.bg-seafood { background:linear-gradient(135deg,#1a3040,#2a6a80); }
.bg-local   { background:linear-gradient(135deg,#4a3020,#8a6a40); }
.bg-cafe-v  { background:linear-gradient(135deg,#3a2820,#7a6040); }
.bg-tea     { background:linear-gradient(135deg,#2a3020,#5a6a40); }
.bg-sunset  { background:linear-gradient(135deg,#5a2a10,#ca7a30); }
.bg-culture { background:linear-gradient(135deg,#2a2040,#5a4a80); }
.bg-trek    { background:linear-gradient(135deg,#1a3020,#5a7040); }
.bg-heal-v  { background:linear-gradient(135deg,#203020,#406a40); }

.p-ico {
  position:absolute; inset:0; display:flex;
  align-items:center; justify-content:center; pointer-events:none;
}
.p-ico svg { width:80px; height:80px; opacity:.15; }
.p-badge {
  position:absolute; top:10px; left:10px;
  font-size:.65rem; font-weight:600; color:#fff;
  background:rgba(20,69,90,.8); backdrop-filter:blur(6px);
  padding:3px 10px; border-radius:14px;
  display:flex; align-items:center; gap:3px;
}
.p-body { padding:1.1rem; }
.p-body h3 { font-size:.98rem; margin-bottom:.1rem; }
.p-sub {
  font-size:.66rem; color:var(--stone);
  font-family:'Playfair Display',serif; font-style:italic; margin-bottom:.45rem;
}
.p-meta {
  display:flex; align-items:center; gap:10px;
  font-size:.76rem; color:var(--stone); margin-bottom:.45rem; flex-wrap:wrap;
}
.p-star { color:var(--gold)!important; fill:var(--gold)!important; }
.p-desc {
  font-size:.78rem; color:var(--ink-mid); line-height:1.6; margin-bottom:.6rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.p-tags { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:.6rem; }
.p-tag {
  font-size:.65rem; padding:2px 8px; border-radius:10px;
  border:1px solid var(--border); color:var(--stone);
}
.p-hrs {
  font-size:.7rem; background:rgba(20,69,90,.03); padding:6px 9px;
  border-radius:8px; color:var(--ink-mid); margin-bottom:.6rem; line-height:1.5;
}
.p-warn { color:#B45309; font-weight:600; font-size:.68rem; }
.p-foot {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:.6rem; border-top:1px solid var(--border);
}
.p-price-l { font-size:.65rem; color:var(--stone); }
.p-price { font-size:.92rem; font-weight:700; color:var(--ocean); }
.btn-bk {
  font-size:.73rem; font-weight:600; color:#fff;
  background:var(--ocean); padding:6px 14px; border-radius:16px;
  transition:all .3s; display:inline-flex; align-items:center; gap:3px;
}
.btn-bk:hover { background:var(--ocean-deep); }

/* ── Reviews ── */
.sec-rev { padding:5.5rem 0; background:var(--warm); }
.rev-grid { display:grid; grid-template-columns:1fr; gap:1.15rem; }
@media(min-width:768px){ .rev-grid { grid-template-columns:repeat(3,1fr); } }
.rev-card {
  background:#fff; border-radius:14px; padding:1.6rem;
  box-shadow:var(--sh-sm); border:1px solid var(--border);
  transition:all .45s; position:relative;
}
.rev-card::before {
  content:'\201C'; font-family:'Playfair Display',serif;
  font-size:3rem; color:var(--gold-pale);
  position:absolute; top:8px; left:16px; line-height:1;
}
.rev-card:hover { transform:translateY(-3px); box-shadow:var(--sh-lg); }
.rev-stars { display:flex; gap:2px; margin-bottom:.65rem; }
.rev-stars svg { width:14px; height:14px; color:var(--gold); fill:var(--gold); }
.rev-text {
  font-size:.84rem; color:var(--ink-mid); line-height:1.8;
  margin-bottom:.9rem; position:relative; z-index:1;
}
.rev-author { padding-top:.65rem; border-top:1px solid var(--border); }
.rev-name { font-weight:700; font-size:.84rem; }
.rev-loc { font-size:.72rem; color:var(--stone); }

/* ── CTA ── */
.sec-cta {
  padding:4rem 0;
  background:linear-gradient(135deg,var(--ocean-deep),var(--ocean),var(--forest));
  color:#fff; text-align:center; position:relative; overflow:hidden;
}
.sec-cta::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 25% 50%,rgba(201,149,107,.08),transparent 50%),
    radial-gradient(ellipse at 80% 70%,rgba(45,74,48,.12),transparent 50%);
}
.cta-inner { position:relative; z-index:1; max-width:560px; margin:0 auto; }
.cta-inner h2 { font-size:clamp(1.3rem,2.8vw,2rem); margin-bottom:.65rem; }
.cta-inner p { font-size:.92rem; opacity:.8; margin-bottom:1.5rem; }
.btn-cta {
  display:inline-flex; align-items:center; gap:7px;
  font-size:.92rem; font-weight:600; color:var(--ocean-deep);
  background:#fff; padding:13px 30px; border-radius:26px;
  transition:all .3s; box-shadow:0 4px 20px rgba(0,0,0,.12);
}
.btn-cta:hover { transform:translateY(-2px); box-shadow:0 8px 32px rgba(0,0,0,.18); }

/* ── Footer ── */
footer {
  background:var(--warm); border-top:1px solid var(--border);
  padding:3rem 0 1.25rem;
}
.ft-grid { display:grid; grid-template-columns:1fr; gap:1.75rem; margin-bottom:1.75rem; }
@media(min-width:768px){ .ft-grid { grid-template-columns:1.3fr 1fr 1fr; } }
.ft-brand { display:flex; align-items:center; gap:8px; margin-bottom:.6rem; }
.ft-tagline { font-size:.82rem; color:var(--stone); line-height:1.7; }
footer h4 { font-size:.82rem; margin-bottom:.65rem; font-family:'Noto Serif KR',serif; }
.ft-links { list-style:none; display:flex; flex-direction:column; gap:.45rem; }
.ft-links li { font-size:.8rem; color:var(--stone); }
.ft-links a { transition:color .3s; }
.ft-links a:hover { color:var(--ocean); }
.ft-insta {
  display:inline-flex; align-items:center; gap:6px; margin-top:.3rem;
  font-size:.8rem; color:var(--stone); transition:color .3s;
}
.ft-insta:hover { color:#E4405F; }
.ft-bottom {
  border-top:1px solid var(--border); padding-top:1rem;
  text-align:center; font-size:.7rem; color:var(--stone);
}

/* ══════ MAP ══════ */
.sec-map { padding:5.5rem 0; background:var(--warm); }
.map-wrap { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:768px){ .map-wrap { grid-template-columns:2fr 1fr; } }
.map-container {
  position:relative; border-radius:16px; overflow:hidden;
  background:#e8f0f6; box-shadow:var(--sh-sm); border:1px solid var(--border);
  min-height:320px;
}
.island-svg { width:100%; height:auto; display:block; }
.island-map-img { width:100%; height:auto; display:block; border-radius:16px; }
.map-markers { position:absolute; inset:0; }
.marker {
  position:absolute; display:flex; align-items:center; gap:6px;
  transform:translate(-50%,-50%); cursor:pointer; z-index:2;
  transition:all .3s var(--ease); padding:6px;
}
.marker:hover, .marker.m-active { z-index:3; transform:translate(-50%,-50%) scale(1.15); }
.m-dot {
  width:16px; height:16px; border-radius:50%; flex-shrink:0;
  background:var(--gold); border:2.5px solid #fff;
  box-shadow:0 2px 8px rgba(0,0,0,.25); position:relative;
}
.m-dot::after {
  content:''; position:absolute; inset:-4px; border-radius:50%;
  border:2px solid var(--gold); opacity:0;
  animation:mPulse 2s ease-in-out infinite;
}
.marker.m-active .m-dot::after { opacity:1; }
@keyframes mPulse { 0%,100%{transform:scale(1);opacity:.4} 50%{transform:scale(1.5);opacity:0} }
.m-dot.sea { background:var(--ocean-light); }
.m-dot.sea::after { border-color:var(--ocean-light); }
.m-dot.forest { background:var(--forest); }
.m-dot.forest::after { border-color:var(--forest); }
.m-label {
  font-size:.75rem; font-weight:600; color:var(--ink);
  background:rgba(255,255,255,.92); backdrop-filter:blur(6px);
  padding:3px 10px; border-radius:8px; white-space:nowrap;
  box-shadow:0 1px 4px rgba(0,0,0,.1);
}
.spot-panel {
  background:#fff; border-radius:14px; padding:1.25rem;
  box-shadow:var(--sh-sm); border:1px solid var(--border);
  min-height:200px; display:flex; align-items:flex-start;
}
.spot-inner h3 { font-size:1.05rem; margin-bottom:.15rem; color:var(--ocean); }
.spot-inner .spot-en { font-size:.7rem; color:var(--stone); font-style:italic; margin-bottom:.6rem; }
.spot-inner p { font-size:.82rem; color:var(--ink-mid); line-height:1.7; margin-bottom:.5rem; }
.spot-tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:.5rem; }
.spot-tag {
  font-size:.65rem; padding:3px 8px; border-radius:10px;
  background:rgba(20,69,90,.05); color:var(--ocean); font-weight:500;
}

/* ══════ ACCESS ══════ */
.sec-access { padding:5.5rem 0; background:var(--cream); }
.access-steps {
  max-width:640px; margin:0 auto 2.5rem;
  display:flex; flex-direction:column; align-items:stretch; gap:0;
}
.step {
  display:flex; gap:1rem; align-items:flex-start;
  background:#fff; border-radius:14px; padding:1.25rem;
  box-shadow:var(--sh-sm); border:1px solid var(--border);
  transition:all .4s var(--ease);
}
.step:hover { transform:translateX(4px); box-shadow:var(--sh-lg); }
.step-num {
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  background:var(--ocean); color:#fff; font-weight:700; font-size:.95rem;
  display:flex; align-items:center; justify-content:center;
  font-family:'Noto Serif KR',serif;
}
.step.done .step-num { background:var(--gold); }
.step-body h3 { font-size:.95rem; margin-bottom:.2rem; }
.step-body p { font-size:.82rem; color:var(--ink-mid); line-height:1.5; }
.step-detail { font-size:.75rem!important; color:var(--stone)!important; margin-top:.15rem; }
.step-arrow {
  display:flex; justify-content:center; padding:.4rem 0;
  color:var(--stone); opacity:.4;
}
.access-tips {
  display:grid; grid-template-columns:1fr; gap:1rem;
  max-width:640px; margin:0 auto;
}
@media(min-width:640px){ .access-tips { grid-template-columns:repeat(3,1fr); } }
.tip-card {
  background:#fff; border-radius:12px; padding:1.1rem;
  box-shadow:var(--sh-sm); border:1px solid var(--border);
  text-align:center; transition:all .4s var(--ease);
}
.tip-card:hover { transform:translateY(-3px); box-shadow:var(--sh-lg); }
.tip-ico {
  width:40px; height:40px; border-radius:10px; margin:0 auto .65rem;
  background:linear-gradient(135deg,#eef5f8,#d8eaf0);
  display:flex; align-items:center; justify-content:center;
  color:var(--ocean);
}
.tip-card h4 { font-size:.85rem; margin-bottom:.3rem; font-family:'Noto Serif KR',serif; }
.tip-card p { font-size:.75rem; color:var(--stone); line-height:1.5; }

/* ── 글자 깨짐 방지: 강제 텍스트 가시성 ── */
h1, h2, h3, h4 {
  -webkit-text-fill-color: currentColor !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
}
.sec-title {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
}

.map-credit {
  position:absolute; bottom:8px; right:12px;
  font-size:.65rem; color:rgba(255,255,255,.85);
  background:rgba(0,0,0,.45); padding:2px 8px; border-radius:6px;
  backdrop-filter:blur(4px);
}
.map-credit a { color:rgba(255,255,255,.95); text-decoration:none; }
.map-credit a:hover { text-decoration:underline; }
