/* ============================================================
   LF Poster Templates
   All templates consume theme tokens from brand.css (.poster[data-theme])
   Designed at a ~720–800px base width; exported at high pixelRatio.
   ============================================================ */

.poster{
  position:relative;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--font-sans);
  overflow:hidden;
  --pad:56px;
}
/* paper grid background — a quiet LF signature */
.poster .bg-grid{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:40px 40px;
  mask-image:linear-gradient(180deg,#000,#000);
}
/* corner brackets */
.poster .corner{position:absolute;width:34px;height:34px;border-color:var(--gold);z-index:2;}
.poster .c-tl{top:22px;left:22px;border-left:1.5px solid;border-top:1.5px solid;}
.poster .c-tr{top:22px;right:22px;border-right:1.5px solid;border-top:1.5px solid;}
.poster .c-bl{bottom:22px;left:22px;border-left:1.5px solid;border-bottom:1.5px solid;}
.poster .c-br{bottom:22px;right:22px;border-right:1.5px solid;border-bottom:1.5px solid;}

/* ---------- shared brand atoms ---------- */
.lf-mark{display:inline-flex;align-items:center;gap:12px;}
.lf-mark .box{
  width:34px;height:34px;border:1.5px solid var(--fg-strong);
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-serif);font-style:italic;font-size:16px;color:var(--fg-strong);
}
.lf-mark .pipe{width:1px;height:20px;background:var(--rule-strong);}
.lf-mark .wm{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;font-weight:600;color:var(--fg);
}
.lf-mark .cn{font-family:var(--font-sans);font-size:11px;color:var(--fg-faint);letter-spacing:.1em;}

.kicker{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--accent);font-weight:600;
  display:inline-flex;align-items:center;gap:10px;
}
.kicker .bar{width:26px;height:1px;background:var(--accent);}

.eng{font-family:var(--font-serif);font-style:italic;color:var(--accent-soft);}
.hair{height:1px;background:var(--rule);width:100%;}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent-soft);}

.poster .topbar{display:flex;justify-content:space-between;align-items:center;}
.poster .topbar .meta{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--fg-faint);text-align:right;line-height:1.7;
}

/* footer shared */
.lf-footer{display:flex;justify-content:space-between;align-items:flex-end;}
.lf-footer .left{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--fg-faint);line-height:1.8;}
.lf-footer .left b{color:var(--fg);font-weight:600;}
.lf-footer .tagline{font-family:var(--font-serif);font-style:italic;font-size:21px;color:var(--accent-soft);}

/* contact block (toggleable) */
.contact-block{
  margin-top:22px;padding-top:18px;border-top:1px solid var(--rule);
  display:flex;align-items:center;gap:22px;
}
.contact-block .qr{
  width:88px;height:88px;flex-shrink:0;border:1px solid var(--rule);
  background:#fff;object-fit:contain;padding:4px;
}
.contact-block .lines{display:flex;flex-direction:column;gap:5px;}
.contact-block .lines .ln{display:flex;align-items:baseline;gap:9px;font-size:13.5px;color:var(--fg);}
.contact-block .lines .ln .k{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);width:62px;flex-shrink:0;font-weight:600;
}

/* ============================================================
   TEMPLATE 1 · 产品介绍图 (product overview)
   ============================================================ */
.tpl-product{padding:var(--pad);display:flex;flex-direction:column;}
.tpl-product .hero{padding:30px 0 22px;}
.tpl-product .title{
  font-family:var(--font-serif);font-weight:400;font-size:94px;line-height:.94;
  letter-spacing:-.01em;color:var(--fg-strong);margin:18px 0 0;
}
.tpl-product .subtitle{
  font-family:var(--font-serif);font-style:italic;font-size:34px;color:var(--accent);
  margin-top:14px;line-height:1.2;
}
.tpl-product .subtitle .sep{color:var(--gold);font-style:normal;margin:0 6px;}
.tpl-product .lead{
  font-size:19.5px;line-height:1.65;color:var(--fg-muted);margin-top:18px;max-width:580px;
  font-weight:500;
}
.tpl-product .features{display:flex;flex-direction:column;gap:0;margin-top:8px;flex:1;justify-content:center;}
.tpl-product .feat{
  display:flex;gap:18px;padding:20px 0;border-top:1px solid var(--rule);
}
.tpl-product .feat:last-child{border-bottom:1px solid var(--rule);}
.tpl-product .feat .idx{
  font-family:var(--font-serif);font-size:40px;line-height:1;color:var(--gold);
  width:50px;flex-shrink:0;
}
.tpl-product .feat .ft{flex:1;}
.tpl-product .feat .ft .h{font-size:23px;font-weight:700;color:var(--fg-strong);margin-bottom:5px;}
.tpl-product .feat .ft .p{font-size:16px;line-height:1.55;color:var(--fg-muted);}
.tpl-product .pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px;}
.tpl-product .pill{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fg-muted);border:1px solid var(--rule);padding:7px 13px;
}
.tpl-product .pill.cta{border-color:var(--accent);color:var(--accent);font-weight:600;}
.tpl-product .foot-wrap{margin-top:26px;}

/* ============================================================
   TEMPLATE 2 · 报价方案图 (pricing tiers)
   ============================================================ */
.tpl-pricing{padding:var(--pad);display:flex;flex-direction:column;}
.tpl-pricing .head .title{
  font-family:var(--font-serif);font-weight:400;font-size:72px;line-height:.98;
  color:var(--fg-strong);margin:16px 0 0;letter-spacing:-.01em;
}
.tpl-pricing .head .sub{font-size:18px;color:var(--fg-muted);margin-top:12px;line-height:1.55;max-width:580px;}
.tpl-pricing .pricing-note{
  font-family:var(--font-serif);font-style:italic;font-size:27px;color:var(--accent);
  margin:26px 0 18px;
}
.tpl-pricing .tiers{display:flex;flex-direction:column;gap:12px;flex:1;}
.tpl-pricing .tier{
  display:flex;align-items:center;gap:20px;
  background:var(--bg-card);border:1px solid var(--rule);
  padding:18px 22px;position:relative;
}
.tpl-pricing .tier.featured{border-color:var(--gold);background:rgba(198,154,82,.08);}
.tpl-pricing .tier .tn{flex:1;}
.tpl-pricing .tier .tn .name{font-size:21px;font-weight:700;color:var(--fg-strong);}
.tpl-pricing .tier .tn .note{font-size:15px;color:var(--fg-muted);margin-top:4px;}
.tpl-pricing .tier .price{
  font-family:var(--font-serif);font-size:54px;line-height:.9;color:var(--fg-strong);
  display:flex;align-items:baseline;gap:3px;white-space:nowrap;
}
.tpl-pricing .tier .price .cur{font-size:26px;color:var(--accent);}
.tpl-pricing .tier .price .unit{font-family:var(--font-sans);font-size:14px;color:var(--fg-muted);margin-left:4px;}
.tpl-pricing .tier .badge{
  position:absolute;top:-9px;right:18px;background:var(--accent);color:#fff;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  padding:3px 9px;border-radius:3px;font-weight:600;
}
.tpl-pricing .cta-bar{
  margin-top:18px;padding:14px 20px;background:var(--accent);color:#fff;
  display:flex;align-items:center;gap:12px;font-size:17px;font-weight:600;border-radius:4px;
}
.tpl-pricing .cta-bar .ic{font-family:var(--font-serif);font-style:italic;font-size:20px;}
.tpl-pricing .foot-wrap{margin-top:22px;}

/* ============================================================
   TEMPLATE 3 · 工作坊/服务图 (workshop / service specs)
   ============================================================ */
.tpl-workshop{padding:var(--pad);display:flex;flex-direction:column;}
.tpl-workshop .head{text-align:left;}
.tpl-workshop .head .title{
  font-family:var(--font-serif);font-weight:400;font-size:80px;line-height:.96;
  color:var(--fg-strong);margin:16px 0 0;letter-spacing:-.01em;
}
.tpl-workshop .head .sub{
  font-family:var(--font-serif);font-style:italic;font-size:27px;color:var(--accent);margin-top:12px;
}
.tpl-workshop .deliver{display:flex;flex-direction:column;gap:10px;margin-top:26px;}
.tpl-workshop .deliver .d{
  border:1px solid var(--rule);border-left:3px solid var(--gold);
  background:var(--bg-card);padding:16px 20px;
}
.tpl-workshop .deliver .d .who{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin-bottom:6px;font-weight:600;
}
.tpl-workshop .deliver .d .what{font-size:17px;color:var(--fg);line-height:1.55;}
.tpl-workshop .specs-title{
  font-family:var(--font-serif);font-size:30px;color:var(--fg-strong);text-align:center;
  margin:30px 0 16px;
}
.tpl-workshop .specs{display:flex;flex-direction:column;gap:10px;flex:1;}
.tpl-workshop .spec{
  display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--rule);
  padding:14px 4px;
}
.tpl-workshop .spec .sn{flex:1;}
.tpl-workshop .spec .sn .name{font-size:20px;font-weight:700;color:var(--fg-strong);}
.tpl-workshop .spec .sn .dur{font-size:15px;color:var(--fg-muted);margin-top:3px;}
.tpl-workshop .spec .sprice{
  font-family:var(--font-serif);font-size:34px;color:var(--gold);white-space:nowrap;
}
.tpl-workshop .audience{
  text-align:center;font-size:15px;color:var(--fg-muted);margin-top:20px;letter-spacing:.02em;
}
.tpl-workshop .audience b{color:var(--fg-strong);}
.tpl-workshop .foot-wrap{margin-top:22px;}

/* ============================================================
   TEMPLATE 4 · 产品详情 (comprehensive product long-form)
   ============================================================ */
.tpl-detail{width:750px;display:block;}
.tpl-detail .d-sec{padding:48px 56px;position:relative;border-bottom:1px solid var(--rule);}
.tpl-detail .d-hero{
  padding:56px 56px 46px;
  background:linear-gradient(180deg,var(--bg-soft),var(--bg));
}
.tpl-detail .d-hero .title{
  font-family:var(--font-serif);font-weight:400;font-size:88px;line-height:.93;
  color:var(--fg-strong);margin:34px 0 0;letter-spacing:-.01em;
}
.tpl-detail .d-hero .sub{
  font-family:var(--font-serif);font-style:italic;font-size:29px;color:var(--accent);margin-top:14px;
}
/* Hook block — lead as prominent pull-quote, outside the hero band */
.tpl-detail .d-hook{
  padding:40px 56px 36px;border-bottom:1px solid var(--rule);
  background:var(--bg-soft);
}
.tpl-detail .d-hook p{
  font-family:var(--font-serif);font-style:italic;font-size:30px;
  color:var(--fg-strong);line-height:1.45;margin:0;
}
.tpl-detail .d-hook p::before{
  content:'"';color:var(--gold);font-size:56px;line-height:0;vertical-align:-18px;
  margin-right:4px;display:inline-block;
}
/* Highlights / stats bar */
.tpl-detail .d-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-bottom:1px solid var(--rule);
}
.tpl-detail .d-stat{
  padding:18px 10px;text-align:center;display:flex;flex-direction:column;gap:4px;
  border-right:1px solid var(--rule);
}
.tpl-detail .d-stat:last-child{border-right:none;}
.tpl-detail .d-stat .sn{
  font-family:var(--font-serif);font-style:italic;font-size:28px;
  color:var(--accent);line-height:1;
}
.tpl-detail .d-stat .sl{
  font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);
  letter-spacing:.1em;text-transform:uppercase;
}
.tpl-detail .sec-title{font-family:var(--font-serif);font-size:38px;color:var(--fg-strong);margin:0 0 22px;letter-spacing:-.01em;}
/* mini section divider within features */
.tpl-detail .feat-section{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--accent);font-weight:700;
  margin:28px 0 4px;padding:10px 0 9px;
  border-top:1.5px solid var(--accent);
  display:flex;align-items:center;gap:10px;
}
.tpl-detail .feat-section::after{content:'';flex:1;height:1px;background:var(--rule);}
.tpl-detail .feat-row{display:flex;gap:18px;padding:18px 0;border-top:1px solid var(--rule);}
.tpl-detail .feat-row:first-of-type{border-top:none;}
.tpl-detail .feat-section + .feat-row{border-top:none;}
.tpl-detail .feat-row .idx{font-family:var(--font-serif);font-size:36px;color:var(--gold);width:48px;flex-shrink:0;line-height:1;}
.tpl-detail .feat-row .idx-sym{font-family:var(--font-sans);font-size:20px;color:var(--accent);width:32px;padding-top:4px;}
.tpl-detail .feat-row .h{font-size:21px;font-weight:700;color:var(--fg-strong);margin-bottom:5px;}
.tpl-detail .feat-row .p{font-size:16px;color:var(--fg-muted);line-height:1.6;}
.tpl-detail .d-tiers{display:flex;flex-direction:column;gap:11px;}
.tpl-detail .d-tier{
  display:flex;align-items:center;gap:18px;background:var(--bg-card);
  border:1px solid var(--rule);padding:16px 20px;
}
.tpl-detail .d-tier.d-feat{border-left:3px solid var(--accent);}
.tpl-detail .d-tier .tn{flex:1;}
.tpl-detail .d-tier .name{font-size:20px;font-weight:700;color:var(--fg-strong);}
.tpl-detail .d-tier .note{font-size:14px;color:var(--fg-muted);margin-top:3px;}
.tpl-detail .d-tier .price{font-family:var(--font-serif);font-size:46px;color:var(--gold);white-space:nowrap;}
.tpl-detail .d-tier .price .cur{font-size:23px;color:var(--accent);}
.tpl-detail .d-cta{background:var(--accent);color:#fff;text-align:center;}
.tpl-detail .d-cta .big{font-family:var(--font-serif);font-size:34px;margin-bottom:8px;}
.tpl-detail .d-cta .small{font-size:16px;opacity:.92;}
.tpl-detail .d-foot{padding:34px 56px;}

/* ============================================================
   TEMPLATE 5 · 师资介绍 (Faculty profile)
   ============================================================ */
.tpl-faculty{padding:var(--pad);display:flex;flex-direction:column;}
/* photo layout — side by side when photo present */
.tpl-faculty .fc-hero{padding:26px 0 18px;}
.tpl-faculty .fc-hero--has-photo{
  display:flex;gap:36px;align-items:flex-start;padding:26px 0 24px;
}
.tpl-faculty .fc-hero-main{flex:1;min-width:0;}
.tpl-faculty .fc-photo{
  width:200px;height:260px;object-fit:cover;object-position:top center;
  flex-shrink:0;border:1.5px solid var(--rule);display:block;
}
.tpl-faculty .fc-name{
  font-family:var(--font-serif);font-weight:400;font-size:86px;line-height:.94;
  letter-spacing:-.01em;color:var(--fg-strong);margin:18px 0 0;
}
/* when photo present, name is smaller to fit */
.tpl-faculty .fc-hero--has-photo .fc-name{font-size:64px;line-height:.96;margin:14px 0 0;}
.tpl-faculty .fc-cred{
  font-family:var(--font-serif);font-style:italic;font-size:26px;color:var(--accent);
  margin-top:13px;line-height:1.3;
}
.tpl-faculty .fc-bio{
  font-size:18px;line-height:1.7;color:var(--fg-muted);margin-top:18px;
  border-left:3px solid var(--gold);padding-left:18px;
}
.tpl-faculty .fc-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  margin:18px 0 10px;
}
.tpl-faculty .fc-stat{
  padding:14px 10px;text-align:center;display:flex;flex-direction:column;gap:4px;
  border-right:1px solid var(--rule);
}
.tpl-faculty .fc-stat:last-child{border-right:none;}
.tpl-faculty .fc-sn{
  font-family:var(--font-serif);font-style:italic;font-size:26px;
  color:var(--accent);line-height:1;
}
.tpl-faculty .fc-sl{
  font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);
  letter-spacing:.1em;text-transform:uppercase;
}
/* reuse .tpl-product feat + pill styles — same class names already work */

/* ============================================================
   TEMPLATE 6 · 主图 (Hero splash — title + 3 big hooks)
   ============================================================ */
.tpl-hero{padding:var(--pad);display:flex;flex-direction:column;}
.tpl-hero .h-hero{padding:26px 0 20px;}
.tpl-hero .h-title{
  font-family:var(--font-serif);font-weight:400;font-size:114px;line-height:.86;
  letter-spacing:-.02em;color:var(--fg-strong);margin:16px 0 0;
}
.tpl-hero .h-sub{
  font-family:var(--font-serif);font-style:italic;font-size:28px;
  color:var(--accent);margin-top:14px;
}
.tpl-hero .h-pts{display:flex;flex-direction:column;flex:1;justify-content:center;margin-top:10px;}
.tpl-hero .h-pt{
  display:flex;gap:22px;align-items:flex-start;
  padding:22px 0;border-top:1.5px solid var(--rule);
}
.tpl-hero .h-pt:last-child{border-bottom:1.5px solid var(--rule);}
.tpl-hero .h-ni{
  font-family:var(--font-serif);font-size:54px;line-height:1;color:var(--gold);
  width:64px;flex-shrink:0;
}
.tpl-hero .h-body{flex:1;}
.tpl-hero .h-ht{font-size:28px;font-weight:800;color:var(--fg-strong);line-height:1.15;}
.tpl-hero .h-hp{font-size:16px;color:var(--fg-muted);margin-top:6px;line-height:1.55;}
/* lean = no description → vertically center the title text in the row */
.tpl-hero .h-pt--lean{align-items:center;}
.tpl-hero .h-pt--lean .h-ht{font-size:34px;}
.tpl-hero .foot-wrap{margin-top:22px;}
