/*
Theme Name: Kaoshe
Theme URI: https://www.kaoshe.com/
Author: Kaoshe Brand Studio
Author URI: https://www.kaoshe.com/
Description: 烤奢 KAOSHE — 新中式精品炭烤品牌官方主题。专为餐饮品牌官网与加盟招商设计,具备品牌故事、菜品展示、工艺流程、加盟模式、门店分布与表单收集等完整模块。编辑感设计语言,炭黑余烬橙的标志性配色,响应式自适应。
Version: 1.0.3
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kaoshe
Tags: restaurant, food, franchise, business, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, full-width-template, theme-options, two-columns, right-sidebar
*/

/* =========================================================
   烤奢 KAOSHE · Theme Stylesheet
   Brand: 一炉炭火 · 一席江湖
   ========================================================= */

:root{
  --ink:#1a1410;
  --ink-2:#2a2018;
  --char:#3a2c20;
  --paper:#f4ead7;
  --paper-2:#ebdfc4;
  --paper-3:#e2d3b0;
  --ember:#c8431f;
  --ember-deep:#9c2e15;
  --ember-glow:#e8743a;
  --gold:#c89855;
  --gold-deep:#9c7234;
  --smoke:rgba(244,234,215,.55);
  --line:rgba(244,234,215,.18);
  --line-dark:rgba(26,20,16,.18);

  --serif-cn:"Noto Serif SC", "Songti SC", serif;
  --serif-en:"Cormorant Garamond", Georgia, serif;
  --sans:"Manrope", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* WP reset additions */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; height:auto; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}

/* Grain overlay */
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none; z-index:1000;
  opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

/* WP admin bar fix */
.admin-bar .topbar{top:32px;}
@media (max-width:782px){
  .admin-bar .topbar{top:46px;}
}

/* === Top Bar === */
.topbar{
  position:fixed; top:0; left:0; right:0;
  z-index:100;
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 48px;
  background:rgba(26,20,16,.65);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);
  transition:padding .3s;
}
.topbar.scrolled{padding:12px 48px; background:rgba(26,20,16,.92);}

.brand{
  display:flex; align-items:baseline; gap:10px;
  font-family:var(--serif-cn);
  font-weight:700;
}
.brand .cn{font-size:22px; letter-spacing:6px; color:var(--paper);}
.brand .en{font-family:var(--serif-en); font-weight:500; font-style:italic; font-size:14px; color:var(--gold); letter-spacing:3px;}
.brand .dot{width:6px; height:6px; background:var(--ember); border-radius:50%; align-self:center; box-shadow:0 0 12px var(--ember-glow);}
.brand--logo{display:flex; align-items:center;}
.brand--logo .custom-logo-link{display:flex; align-items:center; line-height:0;}
.brand--logo img{display:block; max-height:44px; width:auto;}

.main-nav ul{display:flex; gap:38px; list-style:none;}
.main-nav a{
  color:var(--paper);
  font-size:13px; letter-spacing:2px;
  font-family:var(--serif-cn); font-weight:400;
  position:relative;
  padding:6px 0;
  transition:color .3s;
}
.main-nav a::after{
  content:""; position:absolute; left:50%; bottom:0;
  width:0; height:1px; background:var(--ember-glow);
  transition:width .4s, left .4s;
}
.main-nav a:hover, .main-nav .current-menu-item > a{color:var(--ember-glow);}
.main-nav a:hover::after, .main-nav .current-menu-item > a::after{width:100%; left:0;}

/* Mobile menu toggle */
.menu-toggle{
  display:none;
  background:transparent; border:none;
  width:40px; height:40px;
  position:relative;
}
.menu-toggle span{
  display:block; width:22px; height:1px;
  background:var(--paper);
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%);
  transition:all .3s;
}
.menu-toggle span:nth-child(1){transform:translate(-50%,-7px);}
.menu-toggle span:nth-child(3){transform:translate(-50%,7px);}

.cta-top{
  background:transparent;
  border:1px solid var(--gold);
  color:var(--gold);
  padding:10px 22px;
  font-family:var(--serif-cn); font-size:13px; letter-spacing:3px;
  transition:all .35s;
}
.cta-top:hover{background:var(--gold); color:var(--ink);}

/* === HERO === */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:center;
  padding:120px 48px 80px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 70% 50%, rgba(200,67,31,.28), transparent 60%),
    radial-gradient(ellipse 60% 50% at 20% 80%, rgba(156,46,21,.22), transparent 65%),
    linear-gradient(180deg, #1a1410 0%, #251a12 50%, #1a1410 100%);
}

.embers{position:absolute; inset:0; pointer-events:none; overflow:hidden;}
.ember{
  position:absolute; bottom:-20px;
  width:3px; height:3px; border-radius:50%;
  background:var(--ember-glow);
  box-shadow:0 0 8px var(--ember-glow), 0 0 16px var(--ember);
  animation:rise linear infinite;
  opacity:0;
}
@keyframes rise{
  0%{transform:translateY(0) translateX(0); opacity:0;}
  10%{opacity:1;}
  90%{opacity:.6;}
  100%{transform:translateY(-110vh) translateX(var(--drift,30px)); opacity:0;}
}

.hero-inner{
  position:relative; z-index:2;
  max-width:1400px; margin:0 auto;
  width:100%;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:60px;
  align-items:center;
}

.hero-eyebrow{
  font-family:var(--serif-en);
  font-style:italic;
  color:var(--gold);
  font-size:18px;
  letter-spacing:4px;
  margin-bottom:24px;
  display:flex; align-items:center; gap:14px;
  opacity:0; animation:fadeUp 1s .2s forwards;
}
.hero-eyebrow::before{content:""; display:block; width:48px; height:1px; background:var(--gold);}

.hero h1{
  font-family:var(--serif-cn);
  font-weight:900;
  font-size:clamp(56px, 8vw, 124px);
  line-height:.95;
  letter-spacing:-2px;
  color:var(--paper);
  margin-bottom:32px;
}
.hero h1 .row{display:block; opacity:0; animation:fadeUp 1.2s forwards;}
.hero h1 .row:nth-child(1){animation-delay:.4s;}
.hero h1 .row:nth-child(2){animation-delay:.6s; color:var(--ember-glow); font-style:italic; font-family:var(--serif-en); font-weight:500; font-size:.6em; letter-spacing:8px; padding-left:8px;}
.hero h1 .row:nth-child(3){animation-delay:.8s;}
.hero h1 em{font-style:normal; color:var(--ember-glow); position:relative;}
.hero h1 em::after{
  content:"";
  position:absolute; left:-4px; right:-4px; bottom:8%;
  height:30%;
  background:radial-gradient(ellipse at center, rgba(232,116,58,.4), transparent 70%);
  z-index:-1;
}

.hero-sub{
  font-family:var(--serif-cn);
  font-weight:400;
  font-size:18px;
  line-height:1.9;
  color:var(--paper-2);
  max-width:480px;
  margin-bottom:48px;
  opacity:0; animation:fadeUp 1s 1s forwards;
}
.hero-sub strong{color:var(--gold); font-weight:500;}

.hero-actions{
  display:flex; gap:20px; align-items:center; flex-wrap:wrap;
  opacity:0; animation:fadeUp 1s 1.2s forwards;
}
.btn-primary{
  background:var(--ember);
  color:var(--paper);
  border:none;
  padding:18px 36px;
  font-family:var(--serif-cn); font-weight:500;
  font-size:15px; letter-spacing:4px;
  position:relative; overflow:hidden;
  transition:transform .3s;
  display:inline-block;
}
.btn-primary::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, var(--ember-glow), var(--ember));
  transform:translateY(100%);
  transition:transform .4s;
}
.btn-primary span{position:relative; z-index:1;}
.btn-primary:hover{transform:translateY(-2px); color:var(--paper);}
.btn-primary:hover::before{transform:translateY(0);}

.btn-ghost{
  background:transparent;
  color:var(--paper);
  border:none;
  font-family:var(--serif-cn); font-size:14px; letter-spacing:3px;
  display:inline-flex; align-items:center; gap:10px;
  transition:gap .3s, color .3s;
}
.btn-ghost:hover{gap:18px; color:var(--ember-glow);}
.btn-ghost::after{content:"→"; font-family:var(--serif-en);}

.hero-visual{
  position:relative;
  height:580px;
  opacity:0; animation:fadeUp 1.4s .6s forwards;
}
.hero-card{
  position:absolute;
  background:var(--paper);
  color:var(--ink);
  padding:42px 36px;
  font-family:var(--serif-cn);
  box-shadow:0 40px 80px rgba(0,0,0,.5), 0 0 0 1px rgba(0,0,0,.05);
}
.hero-card-1{
  top:30px; right:60px;
  width:300px;
  transform:rotate(2deg);
  z-index:2;
}
.hero-card-1 .label{
  font-family:var(--serif-en); font-style:italic;
  color:var(--ember-deep); font-size:13px; letter-spacing:3px;
  margin-bottom:12px;
}
.hero-card-1 .title{
  font-size:42px; font-weight:900; line-height:1.1;
  margin-bottom:16px;
}
.hero-card-1 .desc{
  font-size:13px; color:var(--char); line-height:1.7;
  font-weight:400; padding-bottom:16px; border-bottom:1px solid var(--line-dark);
  margin-bottom:16px;
}
.hero-card-1 .meta{
  display:flex; justify-content:space-between;
  font-family:var(--serif-en); font-size:12px;
  color:var(--char); letter-spacing:2px;
}
.hero-card-1 .meta .price{color:var(--ember-deep); font-weight:600;}

.hero-card-2{
  bottom:40px; left:0;
  width:240px;
  transform:rotate(-3deg);
  background:var(--ink-2);
  color:var(--paper);
  z-index:1;
  padding:32px 28px;
}
.hero-card-2 .num{
  font-family:var(--serif-en); font-style:italic;
  font-size:64px; font-weight:500; line-height:1;
  color:var(--ember-glow);
  margin-bottom:8px;
}
.hero-card-2 .desc{
  font-size:14px; line-height:1.7; color:var(--paper-2);
}
.hero-card-2 .stamp{
  margin-top:20px; padding-top:16px;
  border-top:1px dashed var(--line);
  font-family:var(--serif-cn); font-size:12px; letter-spacing:3px;
  color:var(--gold);
}

.hero-stamp{
  position:absolute;
  bottom:140px; right:-20px;
  width:140px; height:140px;
  border:1px solid var(--ember);
  border-radius:50%;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  background:var(--ink);
  z-index:3;
  transform:rotate(-8deg);
  animation:slowRotate 30s linear infinite;
}
.hero-stamp::before{
  content:""; position:absolute; inset:6px;
  border:1px dashed var(--ember-glow); border-radius:50%;
}
.hero-stamp .ch{
  font-family:var(--serif-cn); font-weight:900;
  font-size:32px; color:var(--ember-glow);
  letter-spacing:2px;
  text-shadow:0 0 20px var(--ember);
}
.hero-stamp .en{
  font-family:var(--serif-en); font-style:italic;
  font-size:11px; color:var(--gold); letter-spacing:2px;
  margin-top:4px;
}
@keyframes slowRotate{from{transform:rotate(-8deg);} to{transform:rotate(352deg);}}

@keyframes fadeUp{
  from{opacity:0; transform:translateY(40px);}
  to{opacity:1; transform:translateY(0);}
}

.marquee{
  position:absolute;
  bottom:0; left:0; right:0;
  background:var(--ember-deep);
  color:var(--paper);
  padding:14px 0;
  overflow:hidden;
  border-top:1px solid rgba(244,234,215,.15);
  z-index:5;
}
.marquee-track{
  display:flex; gap:60px;
  white-space:nowrap;
  animation:scroll 40s linear infinite;
  font-family:var(--serif-cn);
  font-weight:500;
  letter-spacing:4px;
  font-size:14px;
}
.marquee-track span{display:flex; align-items:center; gap:60px;}
.marquee-track span::after{content:"◆"; color:var(--gold);}
@keyframes scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* === STORY === */
.story{
  background:var(--paper);
  color:var(--ink);
  padding:160px 48px;
  position:relative;
}
.story-inner{
  max-width:1400px; margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:100px;
  align-items:start;
}

.section-label{
  font-family:var(--serif-en);
  font-style:italic;
  font-size:14px;
  letter-spacing:6px;
  color:var(--ember-deep);
  margin-bottom:20px;
  display:flex; align-items:center; gap:14px;
  text-transform:uppercase;
}
.section-label::before{content:"—"; color:var(--ember-deep);}

.story h2{
  font-family:var(--serif-cn);
  font-weight:900;
  font-size:72px;
  line-height:1.05;
  color:var(--ink);
  margin-bottom:40px;
}
.story h2 .accent{
  color:var(--ember);
  font-style:italic;
  font-family:var(--serif-en);
  font-weight:500;
  display:block;
  font-size:.5em;
  letter-spacing:6px;
  margin-top:8px;
}

.story-poem{
  font-family:var(--serif-cn);
  font-weight:400;
  font-style:italic;
  font-size:20px;
  line-height:2;
  color:var(--char);
  padding:32px 36px;
  border-left:2px solid var(--ember);
  background:var(--paper-2);
  margin-bottom:40px;
}

.story-text{
  font-family:var(--serif-cn);
  font-size:16px;
  line-height:2.1;
  color:var(--char);
}
.story-text p{margin-bottom:24px;}
.story-text p:first-of-type:first-letter{
  font-family:var(--serif-en);
  font-size:64px;
  font-weight:600;
  float:left;
  line-height:.85;
  margin-right:8px;
  margin-top:6px;
  color:var(--ember);
}

.story-pillars{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  margin-top:48px;
}
.pillar{
  border-top:1px solid var(--line-dark);
  padding-top:24px;
}
.pillar .num{
  font-family:var(--serif-en); font-style:italic;
  color:var(--ember); font-size:14px; letter-spacing:3px;
  margin-bottom:12px;
}
.pillar h4{
  font-family:var(--serif-cn); font-weight:700;
  font-size:22px; color:var(--ink); margin-bottom:10px;
  letter-spacing:2px;
}
.pillar p{
  font-family:var(--serif-cn); font-size:14px;
  line-height:1.8; color:var(--char);
}

/* === MENU === */
.menu-section{
  background:var(--ink);
  padding:160px 48px;
  position:relative;
  overflow:hidden;
}
.menu-section::before{
  content:""; position:absolute;
  top:10%; right:-200px;
  width:600px; height:600px;
  background:radial-gradient(circle, var(--ember-deep), transparent 70%);
  opacity:.3; filter:blur(80px);
}

.menu-head{
  max-width:1400px; margin:0 auto 80px;
  display:flex; justify-content:space-between; align-items:flex-end;
  position:relative; z-index:2; gap:40px;
}
.menu-head h2{
  font-family:var(--serif-cn);
  font-weight:900;
  font-size:88px;
  line-height:1;
  color:var(--paper);
  letter-spacing:-2px;
}
.menu-head h2 em{
  font-family:var(--serif-en); font-style:italic;
  font-weight:500; color:var(--ember-glow);
  font-size:.6em; letter-spacing:6px;
  display:block;
  margin-top:8px;
}
.menu-head .desc{
  max-width:340px;
  font-family:var(--serif-cn); font-size:15px;
  line-height:2; color:var(--paper-2);
}

.menu-grid{
  max-width:1400px; margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  position:relative; z-index:2;
}

.dish-card{
  background:var(--ink-2);
  border:1px solid var(--line);
  position:relative;
  overflow:hidden;
  transition:transform .5s, border-color .5s;
}
.dish-card:hover{
  transform:translateY(-8px);
  border-color:var(--ember);
}
.dish-art{
  height:280px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, #2a1810, #4a2a18);
}
.dish-art svg{width:100%; height:100%; display:block;}
.dish-art img{width:100%; height:100%; object-fit:cover;}

.dish-tag{
  position:absolute; top:16px; left:16px;
  background:var(--ember);
  color:var(--paper);
  font-family:var(--serif-cn); font-size:11px;
  letter-spacing:3px;
  padding:4px 12px;
  z-index:2;
}
.dish-tag.gold{background:var(--gold); color:var(--ink);}

.dish-info{padding:28px 28px 32px;}
.dish-info .num{
  font-family:var(--serif-en); font-style:italic;
  font-size:13px; color:var(--gold);
  letter-spacing:3px; margin-bottom:10px;
}
.dish-info h3{
  font-family:var(--serif-cn); font-weight:700;
  font-size:28px; color:var(--paper);
  margin-bottom:8px; letter-spacing:2px;
}
.dish-info .en{
  font-family:var(--serif-en); font-style:italic;
  color:var(--gold); font-size:15px;
  letter-spacing:2px; margin-bottom:18px;
}
.dish-info p{
  font-family:var(--serif-cn); font-size:14px;
  line-height:1.8; color:var(--paper-2);
  padding-bottom:20px; border-bottom:1px dashed var(--line);
  margin-bottom:18px;
}
.dish-info .footer{
  display:flex; justify-content:space-between; align-items:center;
  font-family:var(--serif-en); font-size:13px;
  color:var(--paper-2); letter-spacing:2px;
}
.dish-info .price{
  color:var(--ember-glow); font-size:22px;
  font-style:italic; font-weight:500;
}

/* === CRAFT === */
.craft{
  background:var(--paper-2);
  color:var(--ink);
  padding:160px 48px;
}
.craft-inner{max-width:1400px; margin:0 auto;}
.craft-head{text-align:center; margin-bottom:100px;}
.craft-head .section-label{justify-content:center;}
.craft-head h2{
  font-family:var(--serif-cn);
  font-weight:900;
  font-size:84px; line-height:1;
  color:var(--ink);
  margin-bottom:24px;
  letter-spacing:-1px;
}
.craft-head h2 em{
  font-style:normal; color:var(--ember);
  position:relative; padding:0 12px;
}
.craft-head .sub{
  font-family:var(--serif-cn); font-style:italic;
  font-size:18px; color:var(--char);
  max-width:540px; margin:0 auto;
  line-height:1.9;
}

.craft-steps{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
}
.step{
  padding:48px 32px;
  border-right:1px solid var(--line-dark);
  position:relative;
  transition:background .4s;
}
.step:last-child{border-right:none;}
.step:hover{background:var(--paper-3);}

.step .step-num{
  font-family:var(--serif-en); font-style:italic;
  font-size:14px; color:var(--ember-deep);
  letter-spacing:4px; margin-bottom:32px;
}
.step .step-icon{
  width:64px; height:64px;
  margin-bottom:32px;
  color:var(--ink);
}
.step .step-icon svg{width:100%; height:100%; stroke:var(--ink); fill:none; stroke-width:1.2;}
.step h4{
  font-family:var(--serif-cn); font-weight:700;
  font-size:24px; letter-spacing:3px;
  margin-bottom:12px; color:var(--ink);
}
.step .en-name{
  font-family:var(--serif-en); font-style:italic;
  color:var(--ember); font-size:14px;
  letter-spacing:3px; margin-bottom:20px;
}
.step p{
  font-family:var(--serif-cn); font-size:14px;
  line-height:1.9; color:var(--char);
}

/* === STATS === */
.stats{
  background:var(--ink);
  padding:100px 48px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stats-inner{
  max-width:1400px; margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:60px;
  align-items:center;
}
.stat{text-align:center; position:relative;}
.stat:not(:last-child)::after{
  content:""; position:absolute;
  right:-30px; top:20%; bottom:20%;
  width:1px; background:var(--line);
}
.stat .num{
  font-family:var(--serif-en); font-style:italic;
  font-size:88px; font-weight:500;
  color:var(--ember-glow); line-height:1;
  margin-bottom:12px;
  text-shadow:0 0 40px rgba(232,116,58,.3);
}
.stat .num sup{
  font-size:.4em; vertical-align:super;
  color:var(--gold); font-weight:600;
}
.stat .label{
  font-family:var(--serif-cn); font-weight:500;
  font-size:14px; letter-spacing:5px;
  color:var(--paper);
}

/* === FRANCHISE === */
.franchise{
  background:linear-gradient(180deg, #1a1410 0%, #2a1a10 100%);
  padding:160px 48px;
  position:relative;
  overflow:hidden;
}
.franchise::before{
  content:""; position:absolute;
  top:-100px; left:50%; transform:translateX(-50%);
  width:800px; height:600px;
  background:radial-gradient(ellipse, rgba(200,67,31,.25), transparent 60%);
  filter:blur(60px);
}
.franchise-inner{max-width:1400px; margin:0 auto; position:relative; z-index:2;}

.franchise-head{text-align:center; margin-bottom:80px;}
.franchise-head .section-label{justify-content:center;}
.franchise-head h2{
  font-family:var(--serif-cn); font-weight:900;
  font-size:96px; color:var(--paper);
  line-height:1; letter-spacing:-2px;
  margin-bottom:24px;
}
.franchise-head h2 em{
  font-family:var(--serif-en); font-style:italic;
  font-weight:500; font-size:.45em;
  color:var(--ember-glow); letter-spacing:6px;
  display:block; margin-top:12px;
}
.franchise-head .sub{
  font-family:var(--serif-cn); font-style:italic;
  font-size:18px; color:var(--paper-2);
  max-width:600px; margin:0 auto; line-height:1.9;
}

.franchise-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  margin-bottom:80px;
}

.support-list{
  background:rgba(244,234,215,.04);
  border:1px solid var(--line);
  padding:48px 40px;
  backdrop-filter:blur(10px);
}
.support-list h3{
  font-family:var(--serif-cn); font-weight:700;
  font-size:32px; color:var(--paper);
  margin-bottom:32px; letter-spacing:3px;
  padding-bottom:20px; border-bottom:1px solid var(--line);
}
.support-list h3 small{
  display:block; font-family:var(--serif-en);
  font-style:italic; font-size:14px;
  color:var(--gold); font-weight:400;
  letter-spacing:3px; margin-top:6px;
}
.support-item{
  display:flex; gap:20px;
  padding:20px 0;
  border-bottom:1px dashed var(--line);
  align-items:flex-start;
}
.support-item:last-child{border-bottom:none;}
.support-item .ic{
  width:40px; height:40px; flex-shrink:0;
  border:1px solid var(--gold);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif-en); font-style:italic;
  color:var(--gold); font-size:14px;
}
.support-item .body h5{
  font-family:var(--serif-cn); font-weight:600;
  color:var(--paper); font-size:17px;
  margin-bottom:6px; letter-spacing:2px;
}
.support-item .body p{
  font-family:var(--serif-cn); font-size:13.5px;
  line-height:1.8; color:var(--paper-2);
}

.tier-stack{display:flex; flex-direction:column; gap:20px;}
.tier{
  border:1px solid var(--line);
  padding:32px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:32px;
  align-items:center;
  background:rgba(244,234,215,.03);
  transition:all .4s;
  position:relative;
  overflow:hidden;
}
.tier:hover{border-color:var(--ember); background:rgba(200,67,31,.08);}
.tier::before{
  content:""; position:absolute;
  left:0; top:0; bottom:0;
  width:3px; background:var(--ember);
  transform:scaleY(0); transform-origin:top;
  transition:transform .4s;
}
.tier:hover::before{transform:scaleY(1);}
.tier .tag{
  font-family:var(--serif-en); font-style:italic;
  color:var(--gold); font-size:13px;
  letter-spacing:3px;
  border:1px solid var(--gold);
  padding:6px 14px;
  white-space:nowrap;
}
.tier.featured .tag{background:var(--gold); color:var(--ink);}
.tier .info h4{
  font-family:var(--serif-cn); font-weight:700;
  font-size:24px; color:var(--paper);
  margin-bottom:6px; letter-spacing:3px;
}
.tier .info p{
  font-family:var(--serif-cn); font-size:13px;
  color:var(--paper-2); line-height:1.7;
}
.tier .investment{text-align:right;}
.tier .investment .amount{
  font-family:var(--serif-en); font-style:italic;
  font-size:32px; font-weight:500;
  color:var(--ember-glow); line-height:1;
}
.tier .investment .label{
  font-family:var(--serif-cn); font-size:11px;
  letter-spacing:3px; color:var(--paper-2);
  margin-top:6px;
}

.apply-block{
  background:var(--paper);
  color:var(--ink);
  padding:60px;
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:60px;
  align-items:center;
}
.apply-block .copy h3{
  font-family:var(--serif-cn); font-weight:900;
  font-size:48px; line-height:1.1;
  margin-bottom:20px;
}
.apply-block .copy h3 em{
  font-style:italic; color:var(--ember);
  font-family:var(--serif-en); font-weight:500;
  display:block; font-size:.5em; letter-spacing:5px;
  margin-top:8px;
}
.apply-block .copy p{
  font-family:var(--serif-cn); font-size:15px;
  line-height:2; color:var(--char);
}
.apply-block .copy .seal{
  margin-top:32px;
  display:inline-block;
  padding:10px 24px;
  border:1px solid var(--ember);
  font-family:var(--serif-cn); font-size:13px;
  letter-spacing:3px; color:var(--ember);
}

.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-grid .full{grid-column:1/-1;}
.form-grid input, .form-grid select, .form-grid textarea{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line-dark);
  padding:14px 4px;
  font-family:var(--serif-cn); font-size:14px;
  color:var(--ink);
  outline:none;
  transition:border-color .3s;
}
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus{
  border-bottom-color:var(--ember);
}
.form-grid label{
  display:block;
  font-family:var(--serif-en); font-style:italic;
  font-size:11px; letter-spacing:3px;
  color:var(--ember-deep);
  margin-bottom:4px;
}
.form-grid button{
  grid-column:1/-1;
  background:var(--ink);
  color:var(--paper);
  border:none;
  padding:18px;
  font-family:var(--serif-cn); font-weight:500;
  font-size:14px; letter-spacing:6px;
  margin-top:12px;
  position:relative; overflow:hidden;
  transition:background .4s;
}
.form-grid button:hover{background:var(--ember);}
.main-nav a:focus-visible,
.cta-top:focus-visible,
.menu-toggle:focus-visible,
.filter:focus-visible,
.btn-primary:focus-visible,
.btn-ghost:focus-visible,
.form-grid input:focus-visible,
.form-grid select:focus-visible,
.form-grid textarea:focus-visible,
.form-grid button:focus-visible{
  outline:2px solid var(--ember-glow);
  outline-offset:3px;
}
.form-message{
  grid-column:1/-1;
  padding:14px;
  font-family:var(--serif-cn); font-size:14px;
  text-align:center;
  display:none;
}
.form-message.success{display:block; background:var(--paper-2); color:var(--ember-deep);}
.form-message.error{display:block; background:#fee; color:#c00;}

/* === STORES === */
.stores{
  background:var(--paper);
  color:var(--ink);
  padding:160px 48px;
}
.stores-inner{max-width:1400px; margin:0 auto;}
.stores-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:60px; gap:40px; flex-wrap:wrap;
}
.stores-head h2{
  font-family:var(--serif-cn); font-weight:900;
  font-size:84px; line-height:1;
  color:var(--ink); letter-spacing:-1px;
}
.stores-head h2 em{
  font-family:var(--serif-en); font-style:italic;
  font-weight:500; color:var(--ember);
  display:block; font-size:.5em; letter-spacing:6px;
  margin-top:8px;
}
.stores-head .filters{display:flex; gap:8px; flex-wrap:wrap;}
.filter{
  background:transparent;
  border:1px solid var(--line-dark);
  padding:10px 20px;
  font-family:var(--serif-cn); font-size:13px;
  letter-spacing:2px; color:var(--char);
  transition:all .3s;
}
.filter:hover, .filter.active{
  background:var(--ink); color:var(--paper); border-color:var(--ink);
}

.stores-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
}
.store-card{
  background:var(--paper-2);
  padding:36px 32px;
  position:relative;
  border:1px solid transparent;
  transition:all .4s;
}
.store-card:hover{
  border-color:var(--ink);
  background:var(--paper);
  transform:translateY(-4px);
  box-shadow:0 20px 60px rgba(26,20,16,.08);
}
.store-card .city{
  font-family:var(--serif-en); font-style:italic;
  color:var(--ember-deep); font-size:13px;
  letter-spacing:4px; margin-bottom:12px;
}
.store-card h4{
  font-family:var(--serif-cn); font-weight:700;
  font-size:26px; color:var(--ink);
  margin-bottom:16px; letter-spacing:2px;
}
.store-card .addr{
  font-family:var(--serif-cn); font-size:13.5px;
  line-height:1.8; color:var(--char);
  padding-bottom:20px; border-bottom:1px dashed var(--line-dark);
  margin-bottom:20px;
}
.store-card .meta{
  display:flex; justify-content:space-between;
  font-family:var(--serif-en); font-size:12px;
  letter-spacing:2px; color:var(--char);
}
.store-card .badge{
  position:absolute; top:32px; right:24px;
  background:var(--ember);
  color:var(--paper);
  font-family:var(--serif-cn); font-size:10px;
  letter-spacing:2px; padding:3px 10px;
}

/* === Generic Page Header (用于 about/menu/franchise/contact 等内页) === */
.page-hero{
  position:relative;
  padding:200px 48px 100px;
  background:
    radial-gradient(ellipse at 70% 50%, rgba(200,67,31,.2), transparent 60%),
    var(--ink);
  text-align:center;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.page-hero .embers{position:absolute; inset:0;}
.page-hero-inner{position:relative; z-index:2; max-width:900px; margin:0 auto;}
.page-hero .eyebrow{
  font-family:var(--serif-en); font-style:italic;
  color:var(--gold); font-size:16px;
  letter-spacing:6px; margin-bottom:24px;
}
.page-hero h1{
  font-family:var(--serif-cn); font-weight:900;
  font-size:clamp(48px, 7vw, 96px); line-height:1.05;
  color:var(--paper); letter-spacing:-1px;
  margin-bottom:24px;
}
.page-hero h1 em{
  font-style:italic; font-family:var(--serif-en);
  font-weight:500; color:var(--ember-glow);
  font-size:.7em; display:block; letter-spacing:6px;
  margin-top:8px;
}
.page-hero .lead{
  font-family:var(--serif-cn); font-style:italic;
  font-size:18px; color:var(--paper-2);
  line-height:1.9;
}
.breadcrumb{
  font-family:var(--serif-en); font-size:12px;
  letter-spacing:3px; color:var(--paper-2);
  margin-top:32px;
}
.breadcrumb a{color:var(--gold);}
.breadcrumb span{margin:0 12px; color:var(--ember);}
.page-hero--fill{
  min-height:min(80vh,880px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top:160px;
  padding-bottom:120px;
}
.archive-body{padding-bottom:80px;}
.cpt-featured-wrap{
  max-width:900px;
  margin:0 auto;
  padding:0 48px 40px;
}
.cpt-featured-img{
  display:block;
  width:100%;
  height:auto;
  border:1px solid var(--line);
}
.cpt-meta{
  max-width:760px;
  margin:0 auto 48px;
  padding:0 48px;
  display:grid;
  gap:16px 32px;
  grid-template-columns:auto 1fr;
  align-items:start;
  font-family:var(--sans);
  font-size:15px;
}
.cpt-meta dt{
  font-family:var(--serif-en);
  font-style:italic;
  color:var(--gold);
  font-size:12px;
  letter-spacing:2px;
  margin:0;
  padding-top:2px;
}
.cpt-meta dd{margin:0;color:var(--paper);}
.cpt-meta a{color:var(--ember-glow);}

/* === Single Post & Page Content === */
.post-content{
  max-width:760px; margin:80px auto;
  padding:0 48px;
  font-family:var(--serif-cn);
  font-size:17px; line-height:1.95;
  color:var(--paper);
}
.post-content h2{
  font-family:var(--serif-cn); font-weight:700;
  font-size:36px; margin:48px 0 20px;
  color:var(--paper); letter-spacing:1px;
}
.post-content h3{
  font-family:var(--serif-cn); font-weight:600;
  font-size:24px; margin:36px 0 16px;
  color:var(--gold);
}
.post-content p{margin-bottom:24px; color:var(--paper-2);}
.post-content a{color:var(--ember-glow); text-decoration:underline;}
.post-content blockquote{
  border-left:2px solid var(--ember);
  padding:12px 24px;
  margin:32px 0;
  font-style:italic; color:var(--paper-2);
}
.post-content img{margin:32px 0; border:1px solid var(--line);}
.post-content ul, .post-content ol{padding-left:24px; margin-bottom:24px;}
.post-content li{margin-bottom:8px; color:var(--paper-2);}

.post-meta{
  text-align:center; margin-bottom:40px;
  font-family:var(--serif-en); font-style:italic;
  color:var(--gold); font-size:14px; letter-spacing:3px;
}
.post-meta time{margin:0 8px;}

/* Archive / Blog list */
.archive-grid{
  max-width:1200px; margin:80px auto;
  padding:0 48px;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(360px, 1fr));
  gap:32px;
}
.archive-card{
  background:var(--ink-2);
  border:1px solid var(--line);
  padding:32px;
  transition:all .4s;
}
.archive-card:hover{border-color:var(--ember); transform:translateY(-4px);}
.archive-card .date{
  font-family:var(--serif-en); font-style:italic;
  color:var(--gold); font-size:13px; letter-spacing:3px;
  margin-bottom:16px;
}
.archive-card h3{
  font-family:var(--serif-cn); font-weight:700;
  font-size:24px; color:var(--paper); margin-bottom:16px;
  line-height:1.3;
}
.archive-card .excerpt{
  font-family:var(--serif-cn); font-size:14px;
  color:var(--paper-2); line-height:1.8;
  margin-bottom:20px;
}
.archive-card .more{
  font-family:var(--serif-en); font-style:italic;
  color:var(--ember-glow); font-size:14px;
  letter-spacing:2px;
}

/* === FOOTER === */
.site-footer{
  background:#0e0a07;
  color:var(--paper);
  padding:100px 48px 40px;
}
.footer-inner{
  max-width:1400px; margin:0 auto;
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.2fr;
  gap:60px;
  padding-bottom:60px;
  border-bottom:1px solid var(--line);
}
.footer-brand .brand{margin-bottom:24px;}
.footer-brand .brand .cn{font-size:32px;}
.footer-brand p{
  font-family:var(--serif-cn); font-style:italic;
  font-size:14px; line-height:2;
  color:var(--paper-2);
  max-width:320px; margin-bottom:32px;
}
.footer-brand .social{display:flex; gap:14px;}
.footer-brand .social a{
  width:40px; height:40px;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--paper-2);
  font-family:var(--serif-cn); font-size:13px;
  transition:all .3s;
}
.footer-brand .social a:hover{
  border-color:var(--ember); color:var(--ember-glow);
}

.site-footer h5{
  font-family:var(--serif-cn); font-weight:600;
  font-size:14px; letter-spacing:5px;
  color:var(--gold); margin-bottom:24px;
}
.site-footer ul{list-style:none;}
.site-footer ul li{margin-bottom:14px;}
.site-footer ul a{
  font-family:var(--serif-cn); font-size:14px;
  color:var(--paper-2);
  transition:color .3s;
}
.site-footer ul a:hover{color:var(--ember-glow);}

.footer-contact .item{margin-bottom:18px;}
.footer-contact .item .lab{
  font-family:var(--serif-en); font-style:italic;
  font-size:11px; letter-spacing:3px;
  color:var(--gold); margin-bottom:4px;
}
.footer-contact .item .val{
  font-family:var(--serif-cn); font-size:14px;
  color:var(--paper);
}

.footer-bottom{
  max-width:1400px; margin:40px auto 0;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px;
  font-family:var(--serif-en); font-size:12px;
  letter-spacing:2px; color:var(--paper-2);
}
.footer-bottom .links{display:flex; gap:24px;}

/* WP comments */
.comments-area{max-width:760px; margin:60px auto; padding:0 48px;}
.comments-area h3{font-family:var(--serif-cn); color:var(--paper); margin-bottom:24px;}
.comment-list{list-style:none;}
.comment-list li{padding:24px 0; border-bottom:1px solid var(--line);}
.comment-form input, .comment-form textarea{
  width:100%; padding:12px;
  background:var(--ink-2); border:1px solid var(--line);
  color:var(--paper); margin-bottom:14px;
  font-family:var(--serif-cn);
}
.comment-form input[type="submit"]{
  background:var(--ember); color:var(--paper);
  border:none; padding:14px 32px;
  letter-spacing:3px; cursor:pointer;
}

/* WP utility */
.wp-caption{margin-bottom:1.5em;}
.wp-caption-text{text-align:center; font-style:italic; color:var(--paper-2);}
.alignleft{float:left; margin:0 1.5em 1em 0;}
.alignright{float:right; margin:0 0 1em 1.5em;}
.aligncenter{display:block; margin-left:auto; margin-right:auto;}
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px);
  position:absolute !important;
  height:1px; width:1px;
  overflow:hidden; word-wrap:normal !important;
}
.skip-link:focus{
  clip:auto !important;
  height:auto; width:auto;
  overflow:visible;
  position:fixed; left:16px; top:16px; z-index:10001;
  padding:12px 20px;
  background:var(--paper); color:var(--ink);
  font-family:var(--serif-cn); font-size:14px; letter-spacing:2px;
  box-shadow:0 8px 32px rgba(0,0,0,.35);
  outline:2px solid var(--ember);
  outline-offset:2px;
}

/* Pagination */
.pagination{
  text-align:center; margin:60px auto;
  font-family:var(--serif-en); letter-spacing:3px;
}
.pagination a, .pagination .current{
  display:inline-block; padding:10px 16px;
  margin:0 4px;
  border:1px solid var(--line);
  color:var(--paper-2);
}
.pagination .current, .pagination a:hover{
  background:var(--ember); color:var(--paper); border-color:var(--ember);
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .marquee-track{animation:none;}
  .hero-stamp{animation:none;}
  .ember{animation:none !important; transform:none !important; opacity:.25;}
}

/* === Responsive === */
@media (max-width:1024px){
  .hero-inner, .story-inner, .franchise-grid, .apply-block{grid-template-columns:1fr; gap:60px;}
  .menu-grid, .stores-grid{grid-template-columns:repeat(2, 1fr);}
  .craft-steps{grid-template-columns:repeat(2, 1fr);}
  .stats-inner{grid-template-columns:repeat(2, 1fr); gap:40px;}
  .stat:nth-child(2)::after{display:none;}
  .footer-inner{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  .topbar{padding:14px 20px;}
  .main-nav{
    position:fixed; top:0; right:-100%; bottom:0;
    width:80%; max-width:320px;
    background:var(--ink-2);
    padding:80px 32px; transition:right .4s;
    z-index:99;
  }
  .main-nav.is-open{right:0;}
  .main-nav ul{flex-direction:column; gap:24px;}
  .menu-toggle{display:block; z-index:101;}
  .menu-toggle.is-active span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg);}
  .menu-toggle.is-active span:nth-child(2){opacity:0;}
  .menu-toggle.is-active span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg);}
  .cta-top{display:none;}
  .hero{padding:100px 20px 60px;}
  .hero-visual{height:auto; display:flex; flex-direction:column; gap:20px;}
  .hero-card-1, .hero-card-2{position:relative; transform:none; width:100%; top:0; right:0; bottom:0; left:0;}
  .hero-stamp{display:none;}
  .story h2, .menu-head h2, .craft-head h2, .franchise-head h2, .stores-head h2{font-size:48px;}
  .menu-grid, .stores-grid, .craft-steps, .stats-inner{grid-template-columns:1fr;}
  .stat:not(:last-child)::after{display:none;}
  .step{border-right:none; border-bottom:1px solid var(--line-dark);}
  .menu-head, .stores-head{flex-direction:column; align-items:flex-start;}
  .footer-inner, .footer-bottom{grid-template-columns:1fr; flex-direction:column;}
  .tier{grid-template-columns:1fr; gap:16px; text-align:left;}
  .tier .investment{text-align:left;}
  .story-pillars, .form-grid{grid-template-columns:1fr;}
  .apply-block{padding:40px 24px;}
  section, .site-footer{padding-left:20px; padding-right:20px;}
  .story, .menu-section, .craft, .franchise, .stores{padding-top:100px; padding-bottom:100px;}
  .page-hero{padding:140px 20px 60px;}
  .cpt-meta{grid-template-columns:1fr; padding-left:20px; padding-right:20px;}
  .cpt-featured-wrap{padding-left:20px; padding-right:20px;}
}
