/* PFL-02 讲台 — friendly trainer / speaker page, navy and coral */
.tpl-pfl-02{
  --gut:clamp(20px,5vw,80px);
  --sans:"Outfit","Noto Sans SC",system-ui,sans-serif;
  --r:28px;
  --dock-bg:var(--fg);--dock-fg:var(--bg);
  font-family:var(--sans);font-size:16px;
}
.tpl-pfl-02 main{overflow-x:clip}
.f2-main>section{max-width:1320px;margin:0 auto;padding:clamp(88px,10vw,160px) var(--gut) 0}

/* header */
.f2-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 28px;max-width:1320px;margin:0 auto;padding:14px var(--gut)}
.f2-brand{display:flex;align-items:center;gap:10px;min-height:48px;font-weight:700;font-size:20px;letter-spacing:-.01em;text-decoration:none}
.f2-brand:not(:has(img))::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--accent)}
.f2-nav{display:flex;flex-wrap:wrap;gap:0 6px;font-size:15px;font-weight:500}
.f2-nav a{min-height:44px;display:inline-flex;align-items:center;padding:0 12px;border-radius:999px;text-decoration:none;transition:background .25s}
.f2-nav a:hover{background:var(--soft)}

/* hero */
.f2-main>.f2-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(40px,6vw,96px);align-items:center;padding-top:clamp(32px,5vw,72px)}
.f2-hero--text{grid-template-columns:minmax(0,1fr)!important;max-width:980px!important}
.f2-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 28px;padding:8px 16px;border-radius:999px;background:var(--soft);font-size:14px;font-weight:600}
.f2-eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.f2-hero h1{font-weight:700;font-size:clamp(42px,6vw,88px);line-height:1.12;letter-spacing:-.02em}
.f2-hero h1::after{content:"";display:block;width:clamp(120px,14vw,200px);height:14px;margin-top:18px;background:var(--accent);-webkit-mask:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M2 9 C 40 2, 80 2, 110 7 S 170 12, 198 4' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");mask:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M2 9 C 40 2, 80 2, 110 7 S 170 12, 198 4' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E")}
.f2-sub{margin-top:28px;max-width:30em;font-size:clamp(16px,1.25vw,19px);line-height:1.85;color:var(--muted)}
.f2-sub p:last-child{margin:0}
.f2-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:36px}
.f2-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 28px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:16px;text-decoration:none;box-shadow:0 10px 24px -12px var(--accent);transition:transform .25s}
.f2-btn:hover{transform:translateY(-2px)}
.f2-btn--dark{background:var(--fg);color:var(--bg);box-shadow:none;margin-top:28px}
.f2-link{min-height:44px;display:inline-flex;align-items:center;font-weight:600;text-decoration:none;border-bottom:2px solid var(--accent)}

.f2-hero-art{position:relative;padding:0 0 40px 40px}
.f2-disc{position:absolute;left:0;bottom:0;width:62%;aspect-ratio:1;border-radius:50%;background:var(--soft)}
.f2-portrait{position:relative;border-radius:var(--r) var(--r) var(--r) 120px;overflow:hidden;background:var(--soft)}
.f2-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}
.f2-slide{position:absolute;right:-12px;bottom:0;width:min(260px,62%);padding:18px 20px 16px;border-radius:16px;background:var(--fg);color:var(--bg);box-shadow:0 24px 48px -20px rgba(0,0,0,.45);transform:rotate(-2deg)}
.f2-slide-k{display:block;margin-bottom:10px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.f2-slide li{display:flex;gap:10px;padding:6px 0;border-top:1px solid color-mix(in srgb,var(--bg) 18%,transparent);font-size:15px;font-weight:500}
.f2-slide li span{opacity:.6;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:no-preference){.f2-slide{animation:f2-in .9s .3s cubic-bezier(.2,.8,.2,1.2) both}}
@keyframes f2-in{from{opacity:0;transform:translateY(20px) rotate(2deg)}to{opacity:1;transform:rotate(-2deg)}}

/* headings */
.f2-kicker{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.tpl-pfl-02 h2{font-weight:700;font-size:clamp(32px,3.6vw,52px);line-height:1.2;letter-spacing:-.015em}
.f2-sec-head{max-width:720px;margin-bottom:clamp(40px,5vw,64px)}
.f2-intro{margin-top:16px;font-size:17px;line-height:1.8;color:var(--muted)}
.f2-intro p:last-child{margin:0}

/* about */
.f2-main>.f2-about{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px);align-items:center}
.f2-main>.f2-about--text{grid-template-columns:minmax(0,1fr);max-width:900px}
.f2-about-ph{border-radius:var(--r);overflow:hidden;background:var(--soft)}
.f2-about-ph img{width:100%;aspect-ratio:4/5;object-fit:cover}
.f2-steps{position:relative;margin-top:36px;display:grid;gap:4px}
.f2-steps::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:var(--line)}
.f2-steps li{position:relative;display:flex;gap:20px;align-items:center;padding:12px 0}
.f2-step-n{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);color:var(--accent);font-weight:700;font-size:17px}
.f2-steps li:first-child .f2-step-n{background:var(--accent);color:var(--on-accent)}
.f2-steps p{margin:0;font-size:17px;line-height:1.6;font-weight:500}
.f2-body{margin-top:24px;font-size:17px;line-height:1.9;color:var(--muted)}

/* services: slide deck on a navy band */
.f2-main>.f2-services{max-width:none;padding-left:0;padding-right:0}
.f2-band{background:var(--fg);color:var(--bg);padding:clamp(72px,8vw,128px) max(var(--gut),calc((100% - 1320px)/2 + var(--gut)))}
.f2-band .f2-intro{color:color-mix(in srgb,var(--bg) 78%,var(--fg))}
.f2-band .f2-kicker{color:color-mix(in srgb,var(--accent) 70%,var(--bg))}
.f2-deck{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.f2-card{display:flex;flex-direction:column;min-height:280px;padding:clamp(24px,2.6vw,36px);border-radius:20px;background:var(--bg);color:var(--fg);box-shadow:0 1px 0 rgba(0,0,0,.08);transition:transform .3s}
.f2-card:hover{transform:translateY(-4px)}
.f2-card-n{margin:0;font-size:14px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}
.f2-card-n span{color:var(--muted);font-weight:400}
.f2-card h3{margin-top:auto;padding-top:40px;font-weight:700;font-size:clamp(26px,2.4vw,36px);line-height:1.2;letter-spacing:-.01em}
.f2-card-d{margin-top:12px;color:var(--muted);line-height:1.75;max-width:30em}
.f2-card-d p:last-child{margin:0}
.f2-price{margin:8px 0 0;font-weight:600}
.f2-ask{align-self:flex-start;margin-top:18px;min-height:44px;display:inline-flex;align-items:center;font-weight:600;text-decoration:none;border-bottom:2px solid var(--accent)}

/* work */
.f2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.f2-tile{position:relative}
.f2-tile-ph{border-radius:var(--r);overflow:hidden;background:var(--soft)}
.f2-tile-ph img{width:100%;aspect-ratio:3/2;object-fit:cover}
.f2-tile figcaption{position:absolute;left:16px;bottom:16px;max-width:calc(100% - 32px);padding:8px 16px;border-radius:999px;background:var(--bg);color:var(--fg);font-size:14px;font-weight:600}

/* testimonials */
.f2-quote-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px}
.f2-quote-list figure{padding:28px;border-radius:20px;background:var(--soft)}
.f2-quote-list blockquote{font-size:18px;line-height:1.75}
.f2-quote-list figcaption{margin-top:14px;font-size:14px;font-weight:600;color:var(--muted)}

/* faq */
.f2-faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.f2-faq-list details{padding:0 24px;border-radius:18px;background:var(--soft)}
.f2-faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:18px 0;font-weight:600;font-size:17px}
.f2-faq-list summary::after{float:none;flex:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:18px}
.f2-faq-list details p{margin:0 0 22px;color:var(--muted);line-height:1.8}

/* contact */
.f2-main>.f2-contact{padding-bottom:clamp(72px,8vw,120px)}
.f2-contact-card{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:40px;align-items:end;padding:clamp(36px,5vw,80px);border-radius:36px;background:var(--accent);color:var(--on-accent);position:relative;overflow:hidden}
.f2-contact-card::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;aspect-ratio:1;border-radius:50%;border:40px solid color-mix(in srgb,var(--on-accent) 12%,transparent);pointer-events:none}
.f2-contact-card .f2-kicker{color:inherit;opacity:.85}
.f2-contact-card h2{font-size:clamp(32px,4.4vw,64px)}
.f2-contact-intro{margin-top:18px;max-width:30em;font-size:17px;line-height:1.8}
.f2-contact-intro p:last-child{margin:0}
.f2-contact-card .f2-btn--dark{background:var(--on-accent);color:var(--accent)}
.f2-contact-list{display:grid;gap:14px}
.f2-contact-list .bc-k{opacity:.8}
.f2-contact-list a{min-height:44px;display:inline-flex;align-items:center;font-weight:600;font-size:18px}
.f2-social{display:flex;flex-wrap:wrap;gap:0 18px;margin-top:12px}
.f2-social a{min-height:44px;display:inline-flex;align-items:center;font-weight:600}

/* footer */
.f2-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;max-width:1320px;margin:0 auto;padding:24px var(--gut) 36px;font-size:14px;color:var(--muted)}
.f2-foot-brand{font-weight:700;color:var(--fg)}

@media (max-width:900px){
  .f2-main>.f2-hero,.f2-main>.f2-about{grid-template-columns:minmax(0,1fr)}
  .f2-hero-art{max-width:480px;margin:0 auto;width:100%}
  .f2-about-ph{max-width:520px}
  .f2-contact-card{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
  .f2-head{gap:0 8px;padding-top:8px;padding-bottom:4px}
  .f2-nav{margin-left:-12px;font-size:14px}
  .f2-nav a{padding:0 10px}
  .f2-hero h1{font-size:clamp(38px,11vw,52px)}
  .f2-hero-art{padding:0 0 56px 20px}
  .f2-slide{right:0;width:min(230px,72%)}
  .f2-deck,.f2-grid,.f2-faq-list{grid-template-columns:minmax(0,1fr)}
  .f2-card{min-height:0}
  .f2-card h3{padding-top:28px}
  .f2-contact-card{border-radius:28px}
}
