:root{
    --ink:#241F1B; --cream:#F4EEE3; --coral:#BC5A45; --peach:#D69A86;
    --mint:#7C8C6B; --sky:#6E8497; --sand:#E6D9C4; --hair:rgba(36,31,27,.10);
  }
  html { scroll-behavior: smooth; }
  body { background:var(--cream); color:var(--ink); -webkit-font-smoothing:antialiased; letter-spacing:-0.01em; }
  h1,h2,h3,h4{ font-family:'Noto Serif SC',serif; letter-spacing:-0.02em; }

  /* —— 编辑式标题 —— */
  .kicker{ font-family:'Marcellus',serif; letter-spacing:.32em; text-transform:uppercase; font-size:.7rem; color:var(--coral); }
  .sec-index{ font-family:'Marcellus',serif; font-size:.78rem; letter-spacing:.18em; color:rgba(36,31,27,.4); }
  .rule{ height:1px; background:var(--hair); }

  /* —— 导航 —— */
  .nav-blur{ backdrop-filter:saturate(160%) blur(14px); background:rgba(244,238,227,.78); }
  .tab-btn{ position:relative; color:rgba(36,31,27,.62); }
  .tab-btn:hover{ color:var(--ink); }
  .tab-btn.active{ color:var(--ink); }
  .tab-btn.active::after{ content:""; position:absolute; left:50%; bottom:2px; transform:translateX(-50%); width:18px; height:2px; border-radius:2px; background:var(--coral); }
  #tabsMobile .tab-btn.active{ background:var(--ink)!important; color:#fff; }

  /* —— tab 切换 —— */
  .tab-panel { display:none; }
  .tab-panel.active { display:block; animation: fade .55s cubic-bezier(.2,.7,.2,1); }
  @keyframes fade { from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }

  /* —— 纸张颗粒 —— */
  .grain::before{
    content:""; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.05; mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* —— 卡片 —— */
  .bg-white{ border:1px solid var(--hair); }
  .chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.28rem .72rem; border-radius:999px; font-size:.7rem; font-weight:600; letter-spacing:.02em; }
  .map-frame{ border:0; border-radius:.9rem; width:100%; height:300px; filter:grayscale(.18) contrast(1.02); box-shadow:0 18px 48px -22px rgba(54,40,30,.35); }
  .map-frame:hover{ filter:none; }
  .mermaid{ background:transparent; }
  ::selection{ background:var(--coral); color:#fff; }
  .underline-deco{ background:linear-gradient(transparent 60%, rgba(214,154,134,.55) 60%); padding:0 .05em; }

  /* —— 时间线 —— */
  .tl{ position:relative; padding-left:1.7rem; }
  .tl::before{ content:""; position:absolute; left:.42rem; top:.3rem; bottom:.3rem; width:1.5px; background:linear-gradient(var(--coral),var(--mint)); opacity:.55; }
  .tl-item{ position:relative; padding-bottom:1.15rem; }
  .tl-item::before{ content:""; position:absolute; left:-1.32rem; top:.42rem; width:.6rem; height:.6rem; border-radius:999px; background:var(--cream); border:2.5px solid var(--coral); }
  .time-chip{ font-family:'Marcellus',serif; font-variant-numeric:tabular-nums; letter-spacing:.06em; font-weight:400; color:var(--coral); font-size:.82rem; }

  /* —— 方案标识 —— */
  .plan-A{ border-left:3px solid var(--coral); } .plan-B{ border-left:3px solid var(--sky); } .plan-C{ border-left:3px solid var(--mint); }
  .badge-A{ background:var(--coral); } .badge-B{ background:var(--sky); } .badge-C{ background:var(--mint); }
  .day-nav button{ font-family:'Marcellus',serif; letter-spacing:.04em; border:1px solid var(--hair); background:transparent!important; transition:.25s; }
  .day-nav button:hover{ border-color:var(--coral); color:var(--coral); }
  .day-nav button.on{ background:var(--ink)!important; color:#fff; border-color:var(--ink); }

  details.acc summary{ cursor:pointer; list-style:none; } details.acc summary::-webkit-details-marker{ display:none; }
  details.acc[open] .chev{ transform:rotate(180deg); }
  .ck{ display:flex; gap:.55rem; align-items:flex-start; cursor:pointer; }
  .ck input{ accent-color:#BC5A45; margin-top:.15rem; width:1rem; height:1rem; flex-shrink:0; }
  .ck input:checked + span{ text-decoration:line-through; opacity:.42; }

  /* —— 地图卡（替代不稳的 Google 内嵌 / 韩国用 Naver 更准）—— */
  .maptile{
    position:relative; display:flex; flex-direction:column; justify-content:flex-end;
    width:100%; overflow:hidden; text-decoration:none; color:var(--ink);
    background:
      radial-gradient(120% 90% at 85% 8%, rgba(214,154,134,.20), transparent 55%),
      linear-gradient(160deg, #efe7d7 0%, #e7dcc6 100%);
    transition:filter .3s, transform .3s;
  }
  .maptile::before{ /* 等高线 / 路网纹理 */
    content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
    background-image:
      repeating-linear-gradient(0deg,   rgba(124,140,107,.12) 0 1px, transparent 1px 22px),
      repeating-linear-gradient(90deg,  rgba(124,140,107,.12) 0 1px, transparent 1px 22px),
      repeating-linear-gradient(38deg,  rgba(188,90,69,.10) 0 1.5px, transparent 1.5px 60px);
  }
  .maptile::after{ /* 一条主路斜切 */
    content:""; position:absolute; top:-10%; left:-10%; width:130%; height:14px;
    transform:rotate(-24deg); background:rgba(244,238,227,.65);
    box-shadow:0 26px 0 rgba(244,238,227,.45); pointer-events:none;
  }
  .maptile:hover{ filter:saturate(1.05) brightness(1.02); }
  .maptile .pin{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-60%);
    width:34px; height:34px; border-radius:999px; display:grid; place-items:center;
    background:var(--coral); color:#fff; font-size:.85rem;
    box-shadow:0 8px 20px -6px rgba(188,90,69,.7), 0 0 0 6px rgba(188,90,69,.14);
  }
  .maptile .pin::after{ content:""; position:absolute; bottom:-12px; left:50%; transform:translateX(-50%);
    width:0; height:0; border:7px solid transparent; border-top-color:var(--coral); }
  .maptile .mlabel{
    position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:.5rem;
    padding:.55rem .8rem; background:linear-gradient(transparent, rgba(36,31,27,.55));
    color:#fff; font-size:.74rem; font-weight:600; letter-spacing:.01em;
  }
  .maptile .mlabel .open{ font-family:'Marcellus',serif; letter-spacing:.08em; opacity:.92; white-space:nowrap; }
  /* 地图卡：预览 + 双链接（Naver / Google）*/
  .mapwrap{ position:relative; overflow:hidden; border:1px solid var(--hair); box-shadow:0 18px 48px -22px rgba(54,40,30,.32); }
  .mapwrap .maptile{ cursor:pointer; box-shadow:none; border:0; }
  .maptile .mhint{ position:absolute; left:50%; top:50%; transform:translate(-50%,16px); z-index:3;
    font-size:.7rem; font-weight:600; color:var(--ink); background:rgba(244,238,227,.9);
    padding:.26rem .7rem; border-radius:999px; white-space:nowrap; box-shadow:0 4px 12px -4px rgba(36,31,27,.3); }
  .maptile .mhint i{ color:var(--coral); }
  .mapwrap iframe.map-live{ width:100%; border:0; display:block; }
  .map-links{ display:flex; gap:1px; background:var(--hair); }
  .map-links a{ flex:1; display:flex; align-items:center; justify-content:center; gap:.4rem;
    padding:.5rem; font-size:.72rem; font-weight:700; letter-spacing:.01em; text-decoration:none;
    background:#fff; color:var(--ink); transition:background .2s,color .2s; }
  .map-links a:hover{ background:var(--cream); color:var(--coral); }
  .map-links a{ font-size:.68rem; padding:.5rem .2rem; }
  .map-links .ml-n b{ color:#2DB400; } /* Naver 绿 */
  .map-links .ml-g b{ color:#4285F4; } /* Google 蓝 */
  .map-links .ml-a b{ color:#00A0E9; } /* 高德 蓝 */
  .map-links .ml-b b{ color:#3385FF; } /* 百度 蓝 */
  /* 真实环境照做卡封面 */
  .maptile.has-photo{ background-size:cover; background-position:center; }
  .maptile.has-photo::before{ opacity:0; }
  .maptile.has-photo::after{ display:none; }
  .maptile.has-photo .pin{ display:none; }
  .maptile.has-photo .mlabel{ background:linear-gradient(transparent, rgba(36,31,27,.78)); }
  .maptile.has-photo .mhint{ background:rgba(36,31,27,.55); color:#fff; opacity:0; transition:opacity .25s; }
  .maptile.has-photo:hover .mhint{ opacity:1; }
  /* 美食每日街区横幅照 */
  .food-banner{ position:relative; height:140px; border-radius:1.2rem 1.2rem 0 0; overflow:hidden; background-size:cover; background-position:center; margin:-1.25rem -1.25rem .9rem; }
  @media(min-width:768px){ .food-banner{ margin:-1.5rem -1.5rem 1.1rem; height:170px; } }
  .food-banner .cap{ position:absolute; left:0; right:0; bottom:0; padding:.7rem 1rem; color:#fff;
    background:linear-gradient(transparent, rgba(36,31,27,.7)); font-size:.74rem; font-weight:600; letter-spacing:.04em; }
  /* hero 城市实景细条 */
  .hero-strip{ position:relative; height:0; }
  /* 预览源切换（点卡后出现）*/
  .maptile .mhint.mchoose{ background:transparent; box-shadow:none; padding:0; display:flex; gap:.4rem; transform:translate(-50%,8px); }
  .msrc{ border:none; cursor:pointer; padding:.34rem .72rem; border-radius:999px; font-size:.72rem; font-weight:700; color:#fff; background:var(--c,#444); box-shadow:0 6px 16px -5px rgba(36,31,27,.5); transition:filter .2s; }
  .msrc:hover{ filter:brightness(1.1); }

  /* —— AI 旅行助手浮窗 —— */
  #aiFab{
    position:fixed; right:18px; bottom:18px; z-index:80;
    width:56px; height:56px; border-radius:999px; border:none; cursor:pointer;
    background:var(--coral); color:#fff; font-size:1.25rem;
    box-shadow:0 14px 34px -10px rgba(188,90,69,.75), 0 0 0 6px rgba(188,90,69,.12);
    display:grid; place-items:center; transition:transform .25s, box-shadow .25s;
  }
  #aiFab:hover{ transform:translateY(-2px) scale(1.04); }
  #aiFab .dot{ position:absolute; top:11px; right:11px; width:9px; height:9px; border-radius:999px; background:var(--mint); box-shadow:0 0 0 2px var(--coral); }
  #aiPanel{
    position:fixed; right:18px; bottom:84px; z-index:81; width:min(380px, calc(100vw - 36px));
    height:min(560px, calc(100vh - 130px)); display:none; flex-direction:column; overflow:hidden;
    background:var(--cream); border:1px solid var(--hair); border-radius:1.2rem;
    box-shadow:0 30px 70px -24px rgba(36,31,27,.5); animation:fade .35s cubic-bezier(.2,.7,.2,1);
  }
  #aiPanel.on{ display:flex; }
  .ai-head{ padding:.85rem 1rem; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:space-between; }
  .ai-head .t{ font-family:'Marcellus',serif; letter-spacing:.06em; font-size:.95rem; display:flex; align-items:center; gap:.5rem; }
  .ai-head .sub{ font-size:.62rem; opacity:.6; letter-spacing:.12em; text-transform:uppercase; }
  .ai-head button{ background:transparent; border:none; color:#fff; opacity:.7; cursor:pointer; font-size:1rem; }
  .ai-tabs{ display:flex; gap:.4rem; padding:.55rem .8rem 0; }
  .ai-tabs button{ flex:1; padding:.4rem; border:1px solid var(--hair); background:transparent; border-radius:.7rem; cursor:pointer; font-size:.78rem; font-weight:600; color:var(--ink); transition:.2s; }
  .ai-tabs button.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
  .ai-body{ flex:1; overflow-y:auto; padding:.8rem; display:flex; flex-direction:column; gap:.6rem; }
  .ai-msg{ max-width:86%; padding:.55rem .8rem; border-radius:1rem; font-size:.86rem; line-height:1.6; white-space:pre-wrap; word-break:break-word; }
  .ai-msg.u{ align-self:flex-end; background:var(--coral); color:#fff; border-bottom-right-radius:.3rem; }
  .ai-msg.a{ align-self:flex-start; background:#fff; border:1px solid var(--hair); border-bottom-left-radius:.3rem; }
  .ai-msg.sys{ align-self:center; font-size:.72rem; color:var(--ink); opacity:.5; background:transparent; max-width:100%; text-align:center; }
  .ai-sugg{ display:flex; flex-wrap:wrap; gap:.4rem; padding:0 .8rem .4rem; }
  .ai-sugg button{ padding:.32rem .7rem; border:1px solid var(--hair); background:#fff; border-radius:999px; cursor:pointer; font-size:.72rem; color:var(--ink); }
  .ai-sugg button:hover{ border-color:var(--coral); color:var(--coral); }
  .ai-input{ display:flex; gap:.45rem; padding:.7rem .8rem; border-top:1px solid var(--hair); background:rgba(244,238,227,.9); }
  .ai-input input{ flex:1; padding:.55rem .8rem; border:1px solid var(--hair); border-radius:.8rem; background:#fff; outline:none; font-size:.86rem; }
  .ai-input input:focus{ border-color:var(--coral); }
  .ai-input button{ padding:.55rem .9rem; border:none; border-radius:.8rem; background:var(--coral); color:#fff; cursor:pointer; font-weight:700; }
  .ai-input button:disabled{ opacity:.5; cursor:default; }
  .ai-typing span{ display:inline-block; width:6px; height:6px; margin:0 1px; border-radius:999px; background:var(--coral); opacity:.4; animation:blink 1.2s infinite; }
  .ai-typing span:nth-child(2){ animation-delay:.2s; } .ai-typing span:nth-child(3){ animation-delay:.4s; }
  @keyframes blink{ 0%,60%,100%{opacity:.25;transform:translateY(0);} 30%{opacity:1;transform:translateY(-3px);} }

  /* —— 韩语速查卡 —— */
  .phrase{ cursor:pointer; border:1px solid var(--hair); border-radius:.8rem; padding:.6rem .75rem; background:#fff; transition:.2s; }
  .phrase:hover{ border-color:var(--coral); transform:translateY(-1px); }
  .phrase .ko{ font-weight:700; color:var(--ink); }
  .phrase .ro{ font-size:.7rem; color:var(--coral); font-family:'Marcellus',serif; letter-spacing:.03em; }
  .phrase .cn{ font-size:.74rem; color:rgba(36,31,27,.55); }
  .phrase.copied{ background:var(--mint); }
  .phrase.copied .ko,.phrase.copied .ro,.phrase.copied .cn{ color:#fff; }

  /* ============================================================
     v7 视觉焕新（叠加层 · 不改结构与 JS，仅升级质感）
     ============================================================ */
  :root{
    --line:rgba(36,31,27,.085);
    --sh-sm:0 2px 10px -4px rgba(54,40,30,.16);
    --sh-md:0 14px 34px -18px rgba(54,40,30,.30);
    --sh-lg:0 30px 64px -30px rgba(54,40,30,.42);
  }
  /* 暖纸 + 极淡双色光晕底，整体更通透高级 */
  body.grain{
    background:
      radial-gradient(125% 80% at 100% -5%, rgba(214,154,134,.13), transparent 52%),
      radial-gradient(110% 70% at -5% 105%, rgba(124,140,107,.09), transparent 55%),
      var(--cream);
    background-attachment:fixed;
  }
  /* 卡片：更细腻的描边 + 分层柔影 + 悬浮抬升 */
  .bg-white{ border:1px solid var(--line); box-shadow:var(--sh-sm); transition:box-shadow .4s cubic-bezier(.2,.7,.2,1), transform .4s cubic-bezier(.2,.7,.2,1); }
  .shadow-soft{ box-shadow:var(--sh-md) !important; }
  .bg-white.shadow-soft:hover{ box-shadow:var(--sh-lg) !important; transform:translateY(-3px); }
  /* chip：内描边 + 轻微悬浮反馈 */
  .chip{ transition:transform .2s, box-shadow .2s, filter .2s; }
  a.chip{ box-shadow:inset 0 0 0 1px rgba(36,31,27,.07); }
  a.chip:hover{ transform:translateY(-1px); filter:saturate(1.06); box-shadow:inset 0 0 0 1px rgba(188,90,69,.32); }
  /* 导航：更克制的玻璃质感 + 渐变 active 指示 */
  header.nav-blur{ background:rgba(244,238,227,.7); border-bottom:1px solid var(--line); }
  .nav-blur{ backdrop-filter:saturate(170%) blur(16px); -webkit-backdrop-filter:saturate(170%) blur(16px); }
  .tab-btn{ font-weight:600; transition:color .25s; }
  .tab-btn.active::after{ width:22px; height:2.5px; border-radius:3px; background:linear-gradient(90deg,var(--coral),var(--peach)); }
  #tabsMobile .tab-btn.active{ box-shadow:var(--sh-sm); }
  /* kicker / 标题：更编辑化的字距与对比 */
  .kicker{ font-size:.66rem; letter-spacing:.36em; }
  h1,h2{ letter-spacing:-.03em; }
  /* tab 切换：更顺滑的入场 */
  .tab-panel.active{ animation:rise .6s cubic-bezier(.2,.75,.2,1); }
  @keyframes rise{ from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:none;} }
  /* 时间线圆点：双层光圈，更精致 */
  .tl-item::before{ box-shadow:0 0 0 4px rgba(188,90,69,.1); }
  /* 日/段切换按钮：过渡 */
  .stay-nav button, .day-nav button{ transition:.25s; }
  /* 对比度：正文灰字加深到更易读（暖墨基底，仍克制）*/
  .text-black\/50{ color:rgba(36,31,27,.62) !important; }
  .text-black\/55{ color:rgba(36,31,27,.64) !important; }
  .text-ink\/40{ color:rgba(36,31,27,.55) !important; }
  .text-ink\/50{ color:rgba(36,31,27,.6) !important; }
  .text-cream\/40{ color:rgba(244,238,227,.62) !important; }
  /* 方案卡左条更柔，加悬浮 */
  .plan-A,.plan-B,.plan-C{ transition:transform .3s, box-shadow .3s; border-radius:1rem; }
  .plan-A:hover,.plan-B:hover,.plan-C:hover{ transform:translateY(-2px); box-shadow:var(--sh-sm); }
  /* Hero 光晕更柔和有层次 */
  #hero-glow-a{ background:radial-gradient(circle, rgba(214,154,134,.32), transparent 65%) !important; }
  #hero-glow-b{ background:radial-gradient(circle, rgba(124,140,107,.24), transparent 65%) !important; }
  /* 竖排韩文装饰更轻 */
  /* 链接焦点可达性（无障碍）*/
  a:focus-visible, button:focus-visible, input:focus-visible{ outline:2px solid var(--coral); outline-offset:2px; border-radius:5px; }
  /* 滚动条暖色化（桌面）*/
  @media(min-width:768px){
    *::-webkit-scrollbar{ width:10px; height:10px; }
    *::-webkit-scrollbar-thumb{ background:rgba(188,90,69,.32); border-radius:999px; border:3px solid var(--cream); }
    *::-webkit-scrollbar-thumb:hover{ background:rgba(188,90,69,.5); }
  }
  /* 减少动效偏好 */
  @media(prefers-reduced-motion:reduce){ *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; } html{scroll-behavior:auto;} }

/* ===== 多页顶栏 + 子栏 ===== */
.topnav-link{ position:relative; color:rgba(36,31,27,.6); }
.topnav-link:hover{ color:var(--ink); }
.topnav-active{ color:var(--ink) !important; }
.topnav-active::after{ content:""; position:absolute; left:50%; bottom:1px; transform:translateX(-50%); width:22px; height:2.5px; border-radius:3px; background:linear-gradient(90deg,var(--coral),var(--peach)); }
#subnav .tab-btn.active{ background:var(--ink) !important; color:#fff; }
#subnav .tab-btn.active::after{ display:none; }
