/* FIT-04 红角拳馆 — fight-night poster. Bebas Neue (+ Noto Serif SC) + Archivo. */
.tpl-fit-04{
  --gut:clamp(18px,5vw,80px);--max:1280px;--pad-x:max(var(--gut),calc((100% - var(--max))/2));
  --disp:"Bebas Neue","Noto Serif SC",Impact,sans-serif;
  --sans:"Archivo","Noto Sans SC",system-ui,sans-serif;
  --dock-bg:var(--stage);--dock-fg:var(--on-stage);
  font-family:var(--sans);font-size:16.5px;line-height:1.7;
}
.tpl-fit-04 main{overflow-x:clip}
.tpl-fit-04 h1,.tpl-fit-04 h2,.tpl-fit-04 h3{font-family:var(--disp);font-weight:600;font-synthesis:none;letter-spacing:.01em;text-transform:uppercase}
.tpl-fit-04 ::selection{background:var(--accent);color:var(--on-accent)}
.f4-main>section{padding:clamp(80px,9vw,140px) var(--pad-x)}

/* header */
.f4-head{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 28px;padding:14px var(--pad-x);background:var(--stage);color:var(--on-stage)}
.f4-brand{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-family:var(--disp);font-size:26px;font-weight:600;font-synthesis:none;letter-spacing:.04em;text-decoration:none}
.f4-brand:not(:has(img))::before{content:"";flex:none;width:14px;height:22px;background:var(--accent);clip-path:polygon(0 0,100% 0,100% 100%,0 80%)}
.f4-nav{display:flex;flex-wrap:wrap}
.f4-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;opacity:.78;transition:opacity .2s}
.f4-nav a:hover{opacity:1}

/* buttons */
.f4-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:34px}
.f4-btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:12px 32px;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:15px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;text-align:center;transition:transform .2s}
.f4-btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 currentColor}
.f4-btn--inv{background:var(--on-accent);color:var(--accent)}
.f4-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:600;font-size:14px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none}
.f4-link::after{content:"";width:26px;height:2px;background:var(--accent)}

/* hero */
.f4-main>.f4-hero{position:relative;display:grid;min-height:min(90vh,860px);padding:0;background:var(--stage);color:var(--on-stage);isolation:isolate}
.f4-hero-ph{position:absolute;inset:0;margin:0;z-index:-1}
.f4-hero-ph img{width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.f4-hero-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--stage) 0%,color-mix(in srgb,var(--stage) 70%,transparent) 34%,transparent 62%),linear-gradient(0deg,var(--stage) 0%,transparent 30%)}
.f4-hero--text{min-height:0!important}
.f4-hero-copy{align-self:end;padding:clamp(60px,8vw,120px) var(--pad-x) clamp(56px,6vw,96px);max-width:calc(var(--pad-x) + 720px)}
.f4-ropes{display:block;width:min(340px,60%);height:15px;margin-bottom:28px;background:linear-gradient(var(--accent),var(--accent)) 0 0/100% 3px no-repeat,linear-gradient(var(--on-stage),var(--on-stage)) 0 6px/100% 3px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 12px/100% 3px no-repeat;opacity:.95}
.f4-eyebrow{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.26em;color:color-mix(in srgb,var(--on-stage) 78%,transparent)}
.f4-hero h1{font-size:clamp(64px,10vw,168px);line-height:.88;letter-spacing:.005em}
.f4-sub{margin-top:26px;max-width:30em;font-size:clamp(16px,1.2vw,18px);color:color-mix(in srgb,var(--on-stage) 82%,transparent)}
.f4-sub p:last-child{margin:0}

/* kicker + heads */
.f4-kicker{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:12.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.f4-kicker::before{content:"";width:22px;height:3px;background:currentColor}
.f4-main h2{font-size:clamp(46px,6vw,96px);line-height:.95}
:lang(zh-Hans) .f4-main h2{line-height:1.15}
.f4-sec-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:18px 64px;align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.f4-intro{color:var(--muted);max-width:30em}
.f4-intro p:last-child{margin:0}

/* about + rounds */
.f4-about-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px clamp(40px,6vw,96px);align-items:center}
.f4-about-top--text{grid-template-columns:minmax(0,1fr)}
.f4-about-body{margin-top:22px;color:var(--muted);font-size:17.5px;max-width:30em}
.f4-about-ph{margin:0;overflow:hidden;position:relative}
.f4-about-ph::after{content:"";position:absolute;left:0;bottom:0;width:30%;height:8px;background:var(--accent)}
.f4-about-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.35) contrast(1.05)}
.f4-rounds{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin-top:clamp(56px,7vw,100px);border-top:3px solid var(--fg)}
.f4-rounds li{padding:24px 24px 8px 0}
.f4-rounds li+li{padding-left:24px;border-left:1px solid var(--line)}
.f4-round{display:block;font-family:var(--disp);font-size:18px;letter-spacing:.12em;color:var(--muted)}
.f4-round b{display:block;font-weight:400;font-size:clamp(56px,6vw,88px);line-height:.95;letter-spacing:0;color:var(--fg)}
.f4-rounds li:first-child .f4-round b{color:var(--accent)}
.f4-rounds p{margin:14px 0 0;font-size:16.5px;font-weight:500;line-height:1.55}

/* services: fight card */
.f4-main>.f4-services{background:var(--soft)}
.f4-card{border-top:3px solid var(--fg)}
.f4-bout{display:grid;grid-template-columns:clamp(70px,9vw,130px) minmax(0,1fr) auto;gap:8px clamp(18px,3vw,48px);align-items:center;padding:clamp(22px,2.4vw,32px) 0;border-bottom:1px solid var(--line);transition:background .2s}
.f4-bout-n{font-family:var(--disp);font-size:clamp(52px,6vw,90px);line-height:.85;color:transparent;-webkit-text-stroke:1.5px var(--fg);transition:color .2s}
.f4-bout:hover .f4-bout-n{color:var(--accent);-webkit-text-stroke-color:var(--accent)}
.f4-bout h3{font-size:clamp(28px,2.8vw,42px);line-height:1.05}
:lang(zh-Hans) .f4-bout h3{line-height:1.25}
.f4-bout-d{margin-top:6px;color:var(--muted);font-size:15.5px;max-width:40em}
.f4-bout-d p{margin:0}
.f4-price{margin:8px 0 0;font-weight:700}
.f4-ask{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1.5px solid var(--fg);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.f4-ask:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

/* gallery */
.f4-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(10px,1.2vw,16px)}
.f4-tile{margin:0;grid-column:span 4}
.f4-tile:nth-child(4n+1){grid-column:span 7}
.f4-tile:nth-child(4n+2){grid-column:span 5}
.f4-tile:nth-child(4n+3){grid-column:span 5}
.f4-tile:nth-child(4n){grid-column:span 7}
.f4-tile-ph{overflow:hidden}
.f4-tile img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:grayscale(.3) contrast(1.05);transition:filter .3s}
.f4-tile:hover img{filter:none}
.f4-tile:nth-child(4n+2) img,.f4-tile:nth-child(4n+3) img{aspect-ratio:8/7}
.f4-tile figcaption{display:flex;gap:12px;margin-top:10px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.f4-tile figcaption span{color:var(--accent)}

/* quotes */
.f4-main>.f4-quotes{padding-top:0}
.f4-quote-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.f4-quote-list figure{padding:28px;border-left:4px solid var(--accent);background:var(--soft)}
.f4-quote-list blockquote{font-size:18px;line-height:1.6}
.f4-quote-list figcaption{margin-top:12px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* faq */
.f4-main>.f4-faq{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:32px clamp(40px,6vw,96px);padding-top:0;align-items:start}
.f4-main>.f4-work+.f4-faq,.f4-main>.f4-quotes+.f4-faq{padding-top:0}
.f4-faq-list{border-top:3px solid var(--fg)}
.f4-faq-list details{border-bottom:1px solid var(--line)}
.f4-faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:70px;padding:16px 0;font-size:clamp(17px,1.4vw,19.5px);font-weight:600;line-height:1.45}
.f4-faq-list summary::after{flex:none;margin:0;color:var(--accent);font-size:26px;font-weight:400}
.f4-faq-list details p{margin:0 0 22px;color:var(--muted);max-width:40em}

/* contact */
.f4-main>.f4-contact{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px clamp(40px,6vw,96px);align-items:end;background:var(--accent);color:var(--on-accent)}
.f4-contact .f4-kicker{color:var(--on-accent)}
.f4-contact h2{font-size:clamp(64px,9vw,150px);line-height:.88;margin-bottom:24px}
.f4-contact-intro{max-width:28em;margin-bottom:32px}
.f4-contact-intro p:last-child{margin:0}
.f4-contact-list{border-top:3px solid var(--on-accent)}
.f4-contact-list li{padding:14px 0;border-bottom:1px solid color-mix(in srgb,var(--on-accent) 35%,transparent)}
.f4-contact-list .bc-k{font-size:11.5px;letter-spacing:.22em;opacity:.85}
.f4-contact-list a{display:inline-flex;align-items:center;min-height:44px;margin:-6px 0;font-family:var(--disp);font-size:28px;letter-spacing:.03em;text-decoration:none}
.f4-contact-list span a{font-family:var(--sans);font-size:14px;text-decoration:underline}
.f4-social{display:flex;flex-wrap:wrap;gap:4px 20px;padding-top:8px}
.f4-social a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}

/* footer */
.f4-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 24px;padding:24px var(--pad-x) 40px;font-size:13px;letter-spacing:.08em;color:var(--muted)}
.f4-foot-brand{font-family:var(--disp);font-size:20px;color:var(--fg)}

@media (max-width:900px){
  .f4-sec-head,.f4-about-top,.f4-main>.f4-faq,.f4-main>.f4-contact{grid-template-columns:minmax(0,1fr)}
  .f4-tile,.f4-tile:nth-child(n){grid-column:span 6}
  .f4-tile:nth-child(n) img{aspect-ratio:4/3}
}
@media (max-width:700px){
  .tpl-fit-04{font-size:16px}
  .f4-head{padding-block:10px 4px}
  .f4-nav{width:calc(100% + 16px);margin:0 -8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .f4-nav a{flex:none;padding:0 10px;font-size:12.5px}
  .f4-main>.f4-hero{min-height:0}
  .f4-hero-ph{position:relative;inset:auto}
  .f4-hero-ph img{height:auto;aspect-ratio:4/3;object-position:78% 50%}
  .f4-hero-ph::after{background:linear-gradient(0deg,var(--stage) 0%,transparent 45%)}
  .f4-hero-copy{margin-top:-56px;padding:0 var(--gut) 56px;position:relative}
  .f4-hero h1{font-size:clamp(60px,19vw,84px)}
  .f4-actions>.f4-btn{flex:1 1 100%}
  .f4-rounds{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f4-rounds li,.f4-rounds li+li{padding:20px 14px 18px 0;border-left:0}
  .f4-rounds li:nth-child(even){padding-left:16px;border-left:1px solid var(--line)}
  .f4-round b{font-size:52px}
  .f4-bout{grid-template-columns:58px minmax(0,1fr);align-items:start}
  .f4-bout-n{font-size:50px}
  .f4-ask{grid-column:2;justify-self:start;margin-top:10px}
  .f4-tile,.f4-tile:nth-child(n){grid-column:1/-1}
  .f4-contact h2{font-size:clamp(56px,17vw,80px)}
}
.tpl-fit-04 .f4-main .f4-contact h2{line-height:.95}
