/* ============================================================
   LAAN 兰 · 国际厨艺研习中心
   LAAN International Culinary Arts — 主样式表
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;}

:root{
  --ink:#0E0C0A;
  --ink-2:#171310;
  --ink-3:#221C16;
  --paper:#FBF8F3;
  --paper-2:#F4EEE4;
  --paper-3:#EDE5D8;
  --red:#C8322A;
  --red-2:#E0433A;
  --gold:#C9A227;
  --gold-2:#E3C569;
  --green:#1F6B4A;
  --muted:#6E655B;
  --line:#E3DACD;
  --line-d:rgba(251,248,243,.15);
  --serif:Georgia,"Times New Roman","Songti SC",serif;
  --sans:"Inter","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --w:1240px;
}

html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.78;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
::selection{background:var(--red);color:#fff;}

.wrap{max-width:var(--w);margin:0 auto;padding:0 44px;}
.eyebrow{
  font-family:var(--serif);
  font-size:12px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold);font-weight:700;
}
.eyebrow.mut{color:#8B7A46;}

h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.01em;}
h2.sec-title{
  font-size:clamp(30px,3.6vw,50px);
  line-height:1.2;letter-spacing:-.02em;margin-top:16px;
}
h2.sec-title .em{color:var(--red);}
.sec-sub{margin-top:20px;font-size:17px;color:var(--muted);max-width:800px;line-height:1.85;}
.sec-head{margin-bottom:64px;}
.lead{font-size:19px;line-height:1.9;color:#3C352D;}

.section{padding:118px 0;}
.section.tight{padding:88px 0;}
.dark{background:var(--ink);color:var(--paper);}
.dark .sec-sub,.dark .lead{color:rgba(251,248,243,.68);}
.warm{background:var(--paper-2);}

.hr{height:1px;background:var(--line);border:0;margin:0;}
.dark .hr{background:var(--line-d);}

/* ---------- 顶部导航 ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 44px;
  transition:background .35s ease,padding .35s ease,box-shadow .35s ease;
}
/* 品牌标识：图形标（深/浅底双版本）+ 文字锁定 */
.nav .brand{display:flex;align-items:center;gap:14px;color:#fff;}
.nav .brand .bm{width:44px;height:44px;flex:none;display:block;object-fit:contain;}
.nav .brand .bm.d{display:none;}
.nav.solid .brand .bm.l{display:none;}
.nav.solid .brand .bm.d{display:block;}
.nav .brand .bt{display:flex;flex-direction:column;gap:5px;}
.nav .brand .bw{
  font-family:var(--serif);font-size:24px;font-weight:700;letter-spacing:.02em;
  line-height:1;display:flex;align-items:center;gap:11px;
}
.nav .brand .bw i{font-style:normal;display:inline-block;width:1px;height:22px;background:var(--gold);}
.nav .brand .bw em{font-style:normal;font-size:20px;letter-spacing:.1em;}
.nav .brand .bs{
  font-size:10.5px;letter-spacing:.2em;line-height:1;white-space:nowrap;
  color:rgba(255,255,255,.58);
}
.nav .menu{display:flex;align-items:center;gap:30px;}
.nav .menu a{
  font-size:14.5px;letter-spacing:.04em;color:rgba(255,255,255,.86);
  padding:6px 0;border-bottom:1px solid transparent;transition:.25s;
}
.nav .menu a:hover{color:#fff;border-bottom-color:var(--gold);}
.nav .menu .btn-nav{
  border:1px solid rgba(255,255,255,.45);border-radius:2px;
  padding:9px 20px;font-size:14px;transition:.25s;
}
.nav .menu .btn-nav:hover{background:var(--red);border-color:var(--red);color:#fff;}
.nav.solid{background:rgba(251,248,243,.96);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);padding:14px 44px;}
.nav.solid .brand{color:var(--ink);}
.nav.solid .brand .bs{color:var(--muted);}
.nav.solid .menu a{color:#43392F;}
.nav.solid .menu a:hover{color:var(--red);}
.nav.solid .menu a.cur{color:var(--red);border-bottom-color:var(--red);}
.nav.solid .menu .btn-nav{border-color:var(--ink);}
.nav.solid .menu .btn-nav:hover{background:var(--red);border-color:var(--red);color:#fff;}
.nav-toggle{display:none;background:none;border:0;width:44px;height:40px;position:relative;cursor:pointer;}
.nav-toggle span{
  position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:.3s;
}
.nav-toggle span:nth-child(1){top:13px;}
.nav-toggle span:nth-child(2){top:21px;}
.nav-toggle span:nth-child(3){top:29px;}
.nav.solid .nav-toggle span{background:var(--ink);}

/* ---------- 首屏 ---------- */
.hero{
  position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;
  background:url('../img/hero-paste.jpg') center 42%/cover no-repeat;
  color:#fff;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,8,6,.72) 0%,rgba(10,8,6,.44) 38%,rgba(10,8,6,.9) 100%);
}
.hero .wrap{position:relative;z-index:2;padding-bottom:76px;padding-top:150px;width:100%;}
.hero .eyebrow{color:var(--gold-2);}
.hero h1{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(64px,10.5vw,148px);line-height:.92;letter-spacing:.01em;
  margin:22px 0 0;
}
.hero h1 .cn{font-family:var(--sans);font-weight:800;font-size:.62em;letter-spacing:.02em;}
.hero .sub{
  font-size:clamp(19px,2.1vw,27px);font-weight:700;letter-spacing:.1em;
  margin-top:24px;color:#fff;
}
.hero .sub .dot{color:var(--red-2);margin:0 10px;}
.hero .desc{
  margin-top:22px;max-width:640px;font-size:17.5px;line-height:1.9;
  color:rgba(255,255,255,.82);
}
.hero .cta{margin-top:42px;display:flex;gap:16px;flex-wrap:wrap;}
.btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:17px 38px;font-size:16px;font-weight:700;letter-spacing:.06em;
  border:1px solid transparent;border-radius:2px;cursor:pointer;
  transition:.28s ease;
}
.btn-red{background:var(--red);color:#fff;box-shadow:0 12px 30px rgba(200,50,42,.28);}
.btn-red:hover{background:var(--red-2);transform:translateY(-2px);box-shadow:0 18px 38px rgba(200,50,42,.36);}
.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;}
.btn-dark{background:var(--ink);color:#fff;}
.btn-dark:hover{background:var(--red);transform:translateY(-2px);}

.hero-facts{
  position:relative;z-index:2;width:100%;border-top:1px solid rgba(255,255,255,.2);
}
.hero-facts .in{
  max-width:var(--w);margin:0 auto;padding:0 44px;
  display:grid;grid-template-columns:repeat(4,1fr);
}
.hero-facts .f{padding:26px 0;border-left:1px solid rgba(255,255,255,.16);padding-left:28px;}
.hero-facts .f:first-child{border-left:0;padding-left:0;}
.hero-facts .n{font-family:var(--serif);font-size:34px;font-weight:700;line-height:1;color:#fff;}
.hero-facts .n small{font-size:16px;font-family:var(--sans);font-weight:600;margin-left:3px;}
.hero-facts .t{margin-top:10px;font-size:13.5px;letter-spacing:.1em;color:rgba(255,255,255,.62);}

.scroll-hint{
  position:absolute;bottom:auto;right:44px;top:50%;z-index:2;
  writing-mode:vertical-rl;font-size:11px;letter-spacing:.34em;
  color:rgba(255,255,255,.45);text-transform:uppercase;
}

/* ---------- 通用网格 ---------- */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.g2.top{align-items:flex-start;}

/* ---------- 优势卡 ---------- */
.adv{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);}
.adv .item{
  padding:44px 38px 46px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  transition:.3s;position:relative;
}
.adv .item:nth-child(3n){border-right:0;}
.adv .item:hover{background:var(--paper-2);}
.adv .item::after{
  content:"";position:absolute;left:0;top:0;width:0;height:2px;background:var(--red);transition:.4s;
}
.adv .item:hover::after{width:100%;}
.adv .no{font-family:var(--serif);font-size:14px;letter-spacing:.2em;color:var(--gold);font-weight:700;}
.adv .it{margin-top:18px;font-size:22px;font-weight:800;line-height:1.4;letter-spacing:-.01em;}
.adv .ds{margin-top:16px;font-size:15.5px;line-height:1.85;color:var(--muted);}

/* ---------- 数字拆分 ---------- */
.split{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-d);}
.split .c{background:var(--ink);padding:46px 34px;}
.split .k{font-family:var(--serif);font-size:52px;font-weight:700;line-height:1;color:#fff;}
.split .k i{font-style:normal;font-size:19px;font-family:var(--sans);font-weight:700;color:var(--gold);margin-left:6px;}
.split .l{margin-top:16px;font-size:15px;letter-spacing:.06em;color:rgba(251,248,243,.62);line-height:1.7;}

/* ---------- 课程表 ---------- */
.tbl-wrap{overflow-x:auto;border:2px solid var(--ink);background:#fff;}
table.ct{border-collapse:collapse;width:100%;min-width:1060px;}
table.ct th,table.ct td{border:1px solid #8A7F6E;padding:20px 22px;vertical-align:top;text-align:left;}
table.ct thead th{
  background:var(--ink);color:#fff;border-color:var(--ink);
  font-size:15px;letter-spacing:.12em;font-weight:700;white-space:nowrap;
}
table.ct tbody tr:nth-child(even) td{background:#FDFBF7;}
table.ct td.day{
  font-family:var(--serif);font-size:19px;font-weight:700;color:var(--red);
  white-space:nowrap;letter-spacing:.04em;background:#FBF6EE !important;
  border-right:2px solid var(--ink);width:96px;
}
table.ct td.theme{font-size:16px;font-weight:800;line-height:1.6;width:210px;}
table.ct td.content{font-size:15px;line-height:1.85;}
table.ct td.content .li{display:block;margin-bottom:3px;color:#3C352D;}
table.ct td.mode{width:150px;}
.tag{
  display:inline-block;padding:5px 12px;font-size:12.5px;font-weight:700;
  border:1px solid var(--ink);border-radius:2px;letter-spacing:.06em;white-space:nowrap;
}
.tag.practice{background:var(--red);color:#fff;border-color:var(--red);}
.tag.demo{background:#fff;color:var(--ink);}
.tag.theory{background:var(--gold);color:#2A2208;border-color:var(--gold);}
.tag.ops{background:var(--green);color:#fff;border-color:var(--green);}
table.ct td.time{font-size:14px;color:var(--muted);white-space:nowrap;width:150px;letter-spacing:.02em;}
.tbl-note{margin-top:18px;font-size:14.5px;color:var(--muted);display:flex;gap:10px;align-items:flex-start;}
.tbl-note b{color:var(--red);}

/* 深色区块内的信息表 —— 覆盖亮底斑马纹，避免白底白字 */
.section.dark table.ct th,
.section.dark table.ct td{
  border-color:#6E5F45;color:rgba(251,248,243,.94);
}
.section.dark table.ct th{
  background:rgba(201,151,63,.10);color:var(--gold-2);font-weight:800;
}
.section.dark table.ct tbody tr:nth-child(even) td{background:rgba(251,248,243,.045);}

/* 深色区块内的编号小列表 */
.fmini{margin-top:42px;border-top:1px solid rgba(201,151,63,.34);}
.fmini .fi{display:flex;gap:22px;align-items:flex-start;padding:21px 0;border-bottom:1px solid rgba(201,151,63,.34);}
.fmini .fn{flex:none;font-family:var(--serif);font-size:13.5px;letter-spacing:.1em;color:var(--gold-2);padding-top:3px;}
.fmini .fi b{display:block;font-size:16.5px;font-weight:800;color:#fff;line-height:1.5;}
.fmini .fi i{display:block;font-style:normal;margin-top:8px;font-size:14.5px;line-height:1.75;color:rgba(251,248,243,.64);}

/* ---------- 菜品清单 tabs ---------- */
.dishes-band{position:relative;margin-bottom:52px;overflow:hidden;}
.dishes-band img{width:100%;height:380px;object-fit:cover;object-position:center 62%;}
.dishes-band .cap{
  position:absolute;left:0;bottom:0;right:0;padding:22px 28px 20px;
  background:linear-gradient(180deg,rgba(10,8,6,0) 0%,rgba(10,8,6,.82) 100%);
  font-family:var(--serif);font-size:13px;letter-spacing:.22em;color:rgba(255,255,255,.82);
  text-transform:uppercase;
}
.tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:2px solid var(--ink);}
.tabs button{
  background:none;border:0;border-bottom:3px solid transparent;
  padding:15px 17px;font-size:15px;font-weight:700;color:var(--muted);
  cursor:pointer;transition:.25s;letter-spacing:.02em;margin-bottom:-2px;
}
.tabs button:hover{color:var(--ink);}
.tabs button.on{color:var(--red);border-bottom-color:var(--red);}
.tabs button i{font-style:normal;font-family:var(--serif);font-size:11.5px;color:#A99C8A;margin-left:5px;}
.panel{display:none;padding-top:38px;}
.panel.on{display:block;animation:fade .35s ease;}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #D2C6B2;border-left:1px solid #D2C6B2;}
.dish{
  border-right:1px solid #D2C6B2;border-bottom:1px solid #D2C6B2;
  padding:22px 24px;display:flex;gap:16px;align-items:flex-start;transition:.25s;
}
.dish:hover{background:var(--paper-2);}
.dish .num{font-family:var(--serif);font-size:13px;color:var(--gold);font-weight:700;padding-top:4px;letter-spacing:.06em;}
.dish .nm{font-size:16.5px;font-weight:600;line-height:1.6;}
.dish .nm em{font-style:normal;color:var(--muted);font-size:14.5px;font-weight:400;}
.panel .phead{
  display:flex;justify-content:space-between;align-items:baseline;gap:24px;
  margin-bottom:26px;flex-wrap:wrap;
}
.panel .phead .pt{font-size:21px;font-weight:800;}
.panel .phead .pd{font-size:15px;color:var(--muted);}

/* ---------- 主厨 ---------- */
.chef-block{display:grid;grid-template-columns:0.86fr 1.14fr;gap:0;background:var(--ink);color:var(--paper);}
.chef-block .pic{background:url('../img/chef.jpg') center 20%/cover no-repeat;min-height:640px;}
.chef-block .txt{padding:88px 74px;}
.chef-block h2{font-size:clamp(28px,3vw,42px);line-height:1.28;margin-top:18px;}
.chef-block p{color:rgba(251,248,243,.72);font-size:16.5px;line-height:1.95;}
.chef-sig{
  margin-top:36px;padding-top:28px;border-top:1px solid var(--line-d);
  display:flex;align-items:center;gap:20px;
}
.chef-sig .nm{font-family:var(--serif);font-size:26px;color:var(--gold-2);letter-spacing:.04em;}
.chef-sig .rl{font-size:13.5px;letter-spacing:.14em;color:rgba(251,248,243,.55);}
.chef-marks{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-d);margin-top:40px;}
.chef-marks .m{background:var(--ink);padding:26px 4px 26px 0;}
.chef-marks .m b{display:block;font-family:var(--serif);font-size:30px;color:#fff;line-height:1.1;}
.chef-marks .m span{display:block;margin-top:8px;font-size:13.5px;color:rgba(251,248,243,.55);letter-spacing:.06em;}

/* ---------- 场地 ---------- */
.venue{position:relative;color:#fff;overflow:hidden;padding:110px 0;}
.venue .bg{position:absolute;inset:0;background:url('../img/kitchen.jpg') center/cover;}
.venue .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,7,5,.94) 0%,rgba(9,7,5,.78) 46%,rgba(9,7,5,.4) 100%);}
.venue .wrap{position:relative;z-index:2;}
.venue .box{max-width:640px;}
.venue address{font-style:normal;margin-top:26px;font-size:16px;color:rgba(255,255,255,.8);line-height:1.9;}
.venue ul{list-style:none;padding:0;margin:34px 0 0;}
.venue ul li{
  display:flex;gap:16px;align-items:flex-start;padding:20px 0;
  border-top:1px solid rgba(255,255,255,.16);
}
.venue ul li:last-child{border-bottom:1px solid rgba(255,255,255,.16);}
.venue ul li .ck{
  flex:none;width:22px;height:22px;border:1px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--gold);margin-top:3px;
}
.venue ul li .tx b{display:block;font-size:17px;margin-bottom:6px;}
.venue ul li .tx span{font-size:15px;color:rgba(255,255,255,.7);line-height:1.8;}

/* ---------- 学费 / 班级 ---------- */
.price-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:60px;align-items:stretch;}
.price-card{
  border:2px solid var(--ink);background:#fff;padding:0;display:flex;flex-direction:column;
}
.price-card .hd{
  background:var(--ink);color:#fff;padding:26px 40px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
}
.price-card .hd .cn{font-size:16px;font-weight:700;letter-spacing:.1em;}
.price-card .hd .en{font-family:var(--serif);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2);}
.price-card .bd{padding:40px;}
.price-amount{display:flex;align-items:flex-end;gap:14px;padding-bottom:32px;border-bottom:1px solid var(--line);}
.price-amount .cur{font-size:24px;font-weight:700;color:var(--red);padding-bottom:12px;}
.price-amount .num{font-family:var(--serif);font-size:76px;font-weight:700;line-height:.9;letter-spacing:-.02em;}
.price-amount .unit{font-size:16px;color:var(--muted);padding-bottom:12px;}
.price-list{list-style:none;margin:32px 0 0;padding:0;}
.price-list li{
  display:flex;justify-content:space-between;gap:20px;padding:16px 0;
  border-bottom:1px dashed var(--line);font-size:16px;
}
.price-list li:last-child{border-bottom:0;}
.price-list li .k{color:var(--muted);}
.price-list li .v{font-weight:700;text-align:right;}

.policy{border:1px solid var(--line);background:var(--paper);padding:40px;height:100%;}
.policy h4{font-size:19px;margin-bottom:8px;}
.policy .stag{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);align-items:flex-start;}
.policy .stag:last-of-type{border-bottom:0;}
.policy .stag .pc{
  flex:none;min-width:96px;font-size:14px;font-weight:700;color:var(--red);
  border-right:2px solid var(--red);padding-right:14px;line-height:1.5;
}
.policy .stag .pd{font-size:15.5px;color:#4A4239;line-height:1.8;}
.policy .note{
  margin-top:26px;padding:20px 24px;background:#FBF3E4;border-left:4px solid var(--gold);
  font-size:15px;line-height:1.85;color:#5B4B22;
}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{
  cursor:pointer;list-style:none;padding:28px 56px 28px 0;position:relative;
  font-size:19px;font-weight:700;line-height:1.6;transition:.2s;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";position:absolute;right:8px;top:26px;
  font-family:var(--serif);font-size:28px;font-weight:400;color:var(--red);transition:.3s;
}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq summary:hover{color:var(--red);}
.faq .ans{padding:0 70px 32px 0;font-size:16px;line-height:1.95;color:#4A4239;}

/* ---------- 报名 ---------- */
.apply{background:var(--ink);color:var(--paper);}
.apply-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.form{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.form .full{grid-column:1 / -1;}
.field label{display:block;font-size:13px;letter-spacing:.14em;color:rgba(251,248,243,.6);margin-bottom:10px;text-transform:uppercase;}
.field input,.field select,.field textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid rgba(251,248,243,.3);
  color:#fff;font-size:16.5px;padding:12px 2px;font-family:inherit;transition:.25s;border-radius:0;
}
.field textarea{resize:vertical;min-height:80px;line-height:1.7;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-bottom-color:var(--red);
}
.field select{color:#fff;}
.field select option{color:#111;}
.form .btn{grid-column:1 / -1;justify-content:center;margin-top:12px;}
.form-msg{
  grid-column:1 / -1;margin-top:6px;font-size:15px;color:var(--gold-2);
  display:none;padding:16px 20px;border:1px solid rgba(201,162,39,.45);background:rgba(201,162,39,.08);
}
.form-msg.show{display:block;}
.contact-side .ci{padding:22px 0;border-bottom:1px solid var(--line-d);}
.contact-side .ci .k{font-size:12.5px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;}
.contact-side .ci .v{margin-top:10px;font-size:19px;font-weight:700;}
.contact-side .ci .v small{display:block;margin-top:6px;font-size:14px;font-weight:400;color:rgba(251,248,243,.6);line-height:1.7;}

/* ---------- 页脚 ---------- */
footer{background:#080706;color:rgba(251,248,243,.55);padding:64px 0 40px;font-size:14.5px;}
footer .fg{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(251,248,243,.12);}
footer .flogo{width:238px;height:auto;display:block;margin-bottom:24px;}
footer .fbrand{font-family:var(--serif);font-size:26px;color:#fff;letter-spacing:.06em;}
footer .fbrand span{font-family:var(--sans);font-size:17px;letter-spacing:.14em;margin-left:10px;}
footer .fdesc{margin-top:16px;line-height:1.9;}
footer h5{color:#fff;font-size:14px;letter-spacing:.16em;margin:0 0 18px;text-transform:uppercase;font-weight:700;}
footer ul{list-style:none;margin:0;padding:0;}
footer ul li{margin-bottom:12px;}
footer ul a:hover{color:var(--gold-2);}
footer .fb{margin-top:30px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13.5px;}
footer .fb .en{font-family:var(--serif);letter-spacing:.14em;}

/* ---------- 动画 ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1);}
.rv.in{opacity:1;transform:none;}
.d1{transition-delay:.08s;}.d2{transition-delay:.16s;}.d3{transition-delay:.24s;}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .wrap{padding:0 30px;}
  .nav{padding:16px 30px;}
  .nav.solid{padding:12px 30px;}
  .nav-toggle{display:block;}
  .nav .menu{
    position:fixed;inset:0 0 0 auto;width:min(84vw,380px);background:var(--ink);
    flex-direction:column;align-items:flex-start;gap:0;padding:110px 34px 40px;
    transform:translateX(100%);transition:transform .38s cubic-bezier(.4,0,.2,1);
    box-shadow:-20px 0 60px rgba(0,0,0,.4);
  }
  .nav .menu.open{transform:none;}
  .nav .menu a{width:100%;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:17px;color:#fff !important;}
  .nav .menu .btn-nav{margin-top:24px;border-color:var(--red);background:var(--red);color:#fff;text-align:center;justify-content:center;}
  .nav .menu .btn-nav:hover{background:var(--red-2);}
  .hero-facts .in{grid-template-columns:1fr 1fr;padding:0 30px;}
  .hero-facts .f{padding-left:20px;}
  .hero-facts .f:nth-child(3){border-left:0;padding-left:0;}
  .g2{grid-template-columns:1fr;gap:44px;}
  .adv{grid-template-columns:1fr 1fr;}
  .adv .item:nth-child(3n){border-right:1px solid var(--line);}
  .adv .item:nth-child(2n){border-right:0;}
  .split{grid-template-columns:1fr 1fr;}
  .dish-grid{grid-template-columns:1fr 1fr;}
  .chef-block{grid-template-columns:1fr;}
  .chef-block .pic{min-height:460px;}
  .chef-block .txt{padding:56px 34px;}
  .price-grid{grid-template-columns:1fr;gap:34px;}
  .apply-grid{grid-template-columns:1fr;gap:50px;}
  .section{padding:84px 0;}
  .scroll-hint{display:none;}
  footer .fg{grid-template-columns:1fr;gap:34px;}
}
@media (max-width:640px){
  body{font-size:16px;}
  .wrap{padding:0 20px;}
  .adv{grid-template-columns:1fr;}
  .adv .item{border-right:0 !important;}
  .split{grid-template-columns:1fr;}
  .dish-grid{grid-template-columns:1fr;}
  .chef-marks{grid-template-columns:1fr;}
  .form{grid-template-columns:1fr;}
  .hero .wrap{padding-bottom:52px;}
  .hero .cta .btn{width:100%;justify-content:center;}
  .hero-facts .n{font-size:26px;}
  .price-card .bd,.policy{padding:28px 24px;}
  .price-amount .num{font-size:58px;}
  .faq .ans{padding-right:20px;}
  .section{padding:68px 0;}
  .section.tight{padding:56px 0;}
  .dishes-band img{height:230px;}
  .dishes-band{margin-bottom:34px;}
  .dishes-band .cap{font-size:10.5px;letter-spacing:.14em;padding:16px 18px 14px;}
  .nav .brand{gap:10px;}
  .nav .brand .bm{width:34px;height:34px;}
  .nav .brand .bw{font-size:19px;gap:8px;}
  .nav .brand .bw i{height:17px;}
  .nav .brand .bw em{font-size:16px;}
  .nav .brand .bs{display:none;}
  footer .flogo{width:190px;margin-bottom:20px;}
  .eyebrow{font-size:10.5px;letter-spacing:.16em;}
}

/* ============================================================
   机构站 · 内页组件
   ============================================================ */

/* ---------- 内页头图 ---------- */
.page-hero{
  position:relative;min-height:58vh;display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;padding:200px 0 72px;
}
.page-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center 46%;}
.page-hero .bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,8,6,.82) 0%,rgba(10,8,6,.5) 42%,rgba(10,8,6,.9) 100%);
}
.page-hero .wrap{position:relative;z-index:2;width:100%;}
.page-hero h1{font-size:clamp(36px,5vw,68px);line-height:1.1;letter-spacing:-.02em;}
.page-hero h1 .em{color:var(--gold-2);}
.page-hero .en{
  font-family:var(--serif);font-size:12.5px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-2);margin-bottom:20px;
}
.page-hero .dsc{margin-top:24px;max-width:680px;font-size:17px;line-height:1.9;color:rgba(255,255,255,.8);}
.page-hero.short{min-height:44vh;padding:180px 0 58px;}

.crumb{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:26px;font-size:13px;letter-spacing:.08em;color:rgba(255,255,255,.6);}
.crumb a{transition:.2s;}
.crumb a:hover{color:var(--gold-2);}
.crumb .sp{color:rgba(255,255,255,.32);}

/* ---------- 页内粘性导航 ---------- */
.subnav{position:sticky;top:0;z-index:60;background:rgba(251,248,243,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.subnav .in{max-width:var(--w);margin:0 auto;padding:0 44px;display:flex;gap:30px;overflow-x:auto;}
.subnav a{padding:19px 0;font-size:14.5px;font-weight:700;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent;transition:.22s;}
.subnav a:hover{color:var(--red);border-bottom-color:var(--red);}

/* ---------- 项目卡 ---------- */
.proj-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
.proj{
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;background:var(--paper);transition:.3s;position:relative;
}
.proj:hover{background:#fff;}
.proj .ph{position:relative;overflow:hidden;aspect-ratio:16/10;background:#111;}
.proj .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1);}
.proj:hover .ph img{transform:scale(1.055);}
.proj .badge{
  position:absolute;top:16px;left:16px;z-index:2;
  font-size:12px;font-weight:700;letter-spacing:.12em;padding:7px 13px;
  background:var(--red);color:#fff;
}
.proj .badge.soon{background:rgba(14,12,10,.86);color:var(--gold-2);border:1px solid rgba(201,162,39,.5);}
.proj .pb{padding:32px 32px 36px;flex:1;display:flex;flex-direction:column;}
.proj .cat{font-family:var(--serif);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;}
.proj h3{margin-top:15px;font-size:23px;line-height:1.36;letter-spacing:-.01em;}
.proj .pd{margin-top:16px;font-size:15.5px;line-height:1.82;color:var(--muted);flex:1;}
.proj .pm{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);display:flex;gap:26px;flex-wrap:wrap;font-size:14.5px;color:#4A4239;}
.proj .pm b{color:var(--ink);}
.proj .go{margin-top:24px;font-size:14.5px;font-weight:800;color:var(--red);display:inline-flex;align-items:center;gap:9px;}
.proj .go::after{content:"→";transition:.3s;}
.proj:hover .go::after{transform:translateX(5px);}
.proj.off .go{color:var(--muted);}
.proj.off .go::after{content:"·";}

/* ---------- 占位 / 筹备中 ---------- */
.soon-box{border:2px solid var(--ink);background:#fff;padding:70px 60px;text-align:center;max-width:860px;margin:0 auto;}
.soon-box .stag{
  display:inline-block;font-family:var(--serif);font-size:12px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--red);border:1px solid var(--red);padding:9px 20px;
}
.soon-box h2{margin-top:30px;font-size:clamp(26px,3vw,38px);line-height:1.3;}
.soon-box .p{margin-top:22px;color:var(--muted);font-size:16.5px;line-height:2;max-width:620px;margin-left:auto;margin-right:auto;}
.soon-box .acts{margin-top:40px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.soon-list{
  margin-top:52px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line);text-align:left;
}
.soon-list .c{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 28px;}
.soon-list .no{font-family:var(--serif);font-size:12.5px;letter-spacing:.2em;color:var(--gold);font-weight:700;}
.soon-list .t{margin-top:14px;font-size:18px;font-weight:800;}
.soon-list .d{margin-top:10px;font-size:14.5px;color:var(--muted);line-height:1.8;}

/* ---------- 空态 ---------- */
.empty{border:1px dashed #C1B5A2;background:var(--paper-2);padding:86px 44px;text-align:center;}
.empty .ic{font-family:var(--serif);font-size:46px;color:#C1B5A2;line-height:1;}
.empty h3{margin-top:22px;font-size:25px;}
.empty p{margin:16px auto 0;color:var(--muted);font-size:16px;line-height:1.9;max-width:580px;}

/* ---------- 图集 ---------- */
.gal-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:38px;}
.gal-filter button{
  background:none;border:1px solid var(--line);padding:11px 22px;
  font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;transition:.25s;letter-spacing:.02em;
}
.gal-filter button:hover{border-color:var(--ink);color:var(--ink);}
.gal-filter button.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;grid-auto-rows:1fr;}
.gal figure{margin:0;position:relative;overflow:hidden;background:#111;aspect-ratio:4/3;}
.gal figure.tall{grid-row:span 2;aspect-ratio:auto;}
.gal figure.hide{display:none;}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1);}
.gal figure:hover img{transform:scale(1.06);}
.gal figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:44px 20px 18px;
  background:linear-gradient(180deg,rgba(8,7,6,0),rgba(8,7,6,.9));
  color:#fff;font-size:14.5px;font-weight:700;letter-spacing:.02em;
  opacity:0;transform:translateY(12px);transition:.4s;
}
.gal figure:hover figcaption{opacity:1;transform:none;}

/* ---------- 时间线 ---------- */
.tl{position:relative;padding-left:38px;border-left:2px solid var(--line);}
.tl .node{position:relative;padding-bottom:46px;}
.tl .node:last-child{padding-bottom:0;}
.tl .node::before{
  content:"";position:absolute;left:-48px;top:9px;width:14px;height:14px;
  background:var(--red);border:4px solid var(--paper);border-radius:50%;
}
.tl .yr{font-family:var(--serif);font-size:14px;letter-spacing:.16em;color:var(--red);font-weight:700;}
.tl h4{margin-top:12px;font-size:21px;line-height:1.45;}
.tl p{margin-top:12px;font-size:15.5px;color:var(--muted);line-height:1.88;}

/* ---------- 双栏图文（内页通用） ---------- */
.fig-full{width:100%;}
.fig-full img{width:100%;object-fit:cover;}
.quote-block{
  border-left:4px solid var(--red);padding:8px 0 8px 32px;margin:0;
  font-family:var(--serif);font-size:24px;line-height:1.6;color:var(--ink);
}
.dark .quote-block{color:var(--paper);border-left-color:var(--gold);}

/* ---------- 页脚四列适配 ---------- */
footer .fg{grid-template-columns:1.6fr 1fr 1fr 1fr;}

@media (max-width:1080px){
  .page-hero{padding:160px 0 58px;min-height:48vh;}
  .subnav .in{padding:0 30px;gap:22px;}
  .proj-grid{grid-template-columns:1fr 1fr;}
  .gal{grid-template-columns:repeat(3,1fr);}
  .soon-box{padding:52px 34px;}
  .soon-list{grid-template-columns:1fr 1fr;}
  footer .fg{grid-template-columns:1fr 1fr;}
  .quote-block{font-size:20px;padding-left:24px;}
}
@media (max-width:640px){
  .proj-grid{grid-template-columns:1fr;}
  .gal{grid-template-columns:repeat(2,1fr);gap:10px;}
  .gal figure.tall{grid-row:span 1;aspect-ratio:4/3;}
  .soon-list{grid-template-columns:1fr;}
  .soon-box{padding:40px 22px;}
  .page-hero{padding:140px 0 48px;}
  footer .fg{grid-template-columns:1fr;}
}

/* ---------- 灯箱 ---------- */
.lightbox{
  position:fixed;inset:0;z-index:200;background:rgba(8,7,6,.95);
  display:none;align-items:center;justify-content:center;padding:40px;
}
.lightbox.on{display:flex;}
.lightbox img{
  max-width:100%;max-height:84vh;width:auto;height:auto;object-fit:contain;
  box-shadow:0 30px 90px rgba(0,0,0,.7);
}
.lightbox .lb-close{
  position:absolute;top:24px;right:30px;width:48px;height:48px;
  background:none;border:1px solid rgba(255,255,255,.4);color:#fff;
  font-size:26px;line-height:1;cursor:pointer;transition:.25s;font-family:inherit;
}
.lightbox .lb-close:hover{background:var(--red);border-color:var(--red);}
.lightbox .lb-cap{
  position:absolute;left:0;right:0;bottom:30px;text-align:center;
  color:rgba(255,255,255,.82);font-size:15px;letter-spacing:.06em;padding:0 40px;
}
@media (max-width:640px){
  .lightbox{padding:16px;}
  .lightbox .lb-close{top:12px;right:12px;width:40px;height:40px;font-size:22px;}
}
