/* 長井創業塾 参加者募集LP ― チラシのデザインをWebに移したもの */
:root{
  --teal:#0fa79c; --teal-d:#0a8f86; --green:#12a07a; --leaf:#7fc46f;
  --sky:#1aa3d6; --sky-l:#8ed3ef; --cream:#fdf8c8; --yellow:#fff35a;
  --coral:#e8665a; --coral-d:#d4503f; --navy:#2a4f9c;
  --ink:#2b2b2b; --pale:#d6eef3; --card:#fbf4a8;
  --w:1080px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-weight:500;
  color:var(--ink);background:#fff;line-height:1.8;font-size:16px;
  word-break:auto-phrase;line-break:strict;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{width:100%;max-width:var(--w);margin:0 auto;padding:0 20px;position:relative}
.sp{display:inline}
@media(min-width:768px){.sp{display:none}}
.en,.en-name{font-family:"Oswald",sans-serif;font-weight:600;letter-spacing:.04em}
.tag{display:inline-block;background:var(--coral);color:#fff;font-weight:700;font-size:14px;line-height:1;padding:7px 14px;letter-spacing:.3em}

/* ---------- FV ---------- */
.fv{position:relative;color:#fff;overflow:hidden;padding-bottom:40px;background:var(--teal)}
.fv-bg{position:absolute;inset:0;z-index:0}
.fv-bg i{position:absolute;inset:0;display:block}
.fv-bg .s1{background:linear-gradient(160deg,#16ad9f 0%,#0e9f86 45%,#16a8a5 100%)}
.fv-bg .s2{background:linear-gradient(120deg,rgba(135,200,110,.0) 0%,rgba(135,200,110,.85) 60%,rgba(170,215,120,.9) 100%);clip-path:polygon(0 62%,100% 30%,100% 78%,0 100%)}
.fv-bg .s3{background:var(--cream);clip-path:polygon(38% 100%,100% 62%,100% 100%)}
.fv-bg .s4{background:linear-gradient(90deg,var(--sky) 0%,#3cb6de 100%);clip-path:polygon(0 76%,62% 100%,0 100%)}
.ribbon{position:relative;z-index:2;display:flex;font-weight:900;font-size:clamp(14px,3.6vw,24px);line-height:1}
.rb-l{background:var(--coral);color:#fff;padding:14px 34px 14px 20px;clip-path:polygon(0 0,100% 0,calc(100% - 22px) 100%,0 100%);white-space:nowrap}
.rb-r{flex:1;background:#fff;color:var(--coral);padding:14px 20px 14px 14px;margin-left:-18px;clip-path:polygon(22px 0,100% 0,calc(100% - 26px) 100%,0 100%);white-space:nowrap}
.fv-grid{position:relative;z-index:2;display:grid;gap:40px;padding-top:26px}
.fv-grid>*,.sp-grid>*,.fc>*{min-width:0}
.brand{font-weight:900;font-size:15px;letter-spacing:.2em;opacity:.95}
.catch{font-weight:900;line-height:1.08;letter-spacing:-.01em;margin:6px 0 22px;text-shadow:0 2px 14px rgba(0,80,70,.25)}
.catch span{display:block}
.catch .c1{font-size:clamp(46px,13vw,92px)}
.catch .c1 b{font-size:1.5em;font-weight:900;letter-spacing:-.02em}
.catch .c2{font-size:clamp(46px,13vw,92px)}
.catch .c2 em{font-style:normal;color:var(--yellow)}
.catch .c3{font-size:clamp(46px,13vw,92px)}
.sub{display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-weight:900;color:var(--coral);font-size:clamp(18px,5vw,30px);line-height:1.25}
.sub span{background:var(--yellow);padding:8px 14px 8px 16px;box-shadow:4px 4px 0 rgba(0,0,0,.08)}
.fv-date{position:relative}
.date-card{position:relative;background:rgba(255,255,255,.95);color:var(--teal-d);border-radius:14px;padding:18px 20px 16px;box-shadow:0 10px 30px rgba(0,60,60,.18)}
.d-label{display:flex;align-items:center;gap:12px}
.d-label .tag{font-size:13px}
.yr{font-family:"Barlow",sans-serif;font-weight:800;font-size:30px;line-height:1}
.yr small,.d-main small{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;font-size:.5em}
.d-main{font-family:"Barlow",sans-serif;font-weight:800;font-size:clamp(64px,19vw,104px);line-height:1;letter-spacing:-.02em;display:flex;align-items:baseline;gap:2px;margin-top:4px}
.dow{display:inline-grid;place-items:center;width:.46em;height:.46em;border-radius:50%;background:var(--navy);color:#fff;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;font-size:.46em;margin-left:6px;align-self:center;line-height:1;padding-bottom:.02em}
.dow{width:1.4em;height:1.4em;font-size:.3em;flex:none}
.d-time{font-family:"Barlow",sans-serif;font-weight:800;color:var(--ink);font-size:clamp(28px,8vw,40px);line-height:1.1}
.free{position:absolute;right:12px;top:-20px;width:96px;height:96px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 6px rgba(232,102,90,.35);display:grid;place-items:center;color:#fff;font-weight:900;font-size:22px;line-height:1.15;text-align:center;transform:rotate(-6deg)}
.d-place{margin:16px 0 20px;font-weight:900;font-size:18px;line-height:1.5;text-shadow:0 1px 8px rgba(0,60,60,.35)}
.d-place span{display:block;font-size:14px;font-weight:700;opacity:.95}

/* ---------- ボタン ---------- */
.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:520px;min-height:68px;padding:14px 56px;
  background:linear-gradient(180deg,#f07466 0%,var(--coral-d) 100%);color:#fff;text-decoration:none;font-weight:900;font-size:clamp(18px,5vw,22px);line-height:1.2;
  border-radius:999px;box-shadow:0 6px 0 #b13e2f,0 12px 24px rgba(160,50,40,.3);overflow:hidden;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.btn:active{transform:translateY(4px);box-shadow:0 2px 0 #b13e2f,0 6px 12px rgba(160,50,40,.3)}
.btn::before{content:"";position:absolute;top:-60%;left:-60%;width:36%;height:220%;transform:skewX(-22deg);
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.55),rgba(255,255,255,0));animation:sweep 3.6s ease-in-out infinite}
@keyframes sweep{0%{left:-60%}30%,100%{left:140%}}
.btn-ico{position:absolute;left:22px;width:24px;height:24px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 8h8M8 12h8M8 16h5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 8h8M8 12h8M8 16h5'/%3E%3C/svg%3E") center/contain no-repeat}
.btn-arw{position:absolute;right:22px;width:22px;height:22px;border-radius:50%;background:#fff}
.btn-arw::after{content:"";position:absolute;left:6px;top:7px;width:6px;height:6px;border-top:2.5px solid var(--coral-d);border-right:2.5px solid var(--coral-d);transform:rotate(45deg)}
.btn.big{min-height:76px;font-size:clamp(19px,5.4vw,25px);max-width:560px}
.btn.closed{background:#9aa3a6;box-shadow:0 6px 0 #7b8386;pointer-events:none}
.btn.closed::before,.btn.closed .btn-arw{display:none}
.btn-note{margin-top:12px;font-size:14px;font-weight:700;text-align:center;max-width:520px}
.btn-note b{color:var(--yellow);font-size:1.15em}
.countdown{margin-top:10px;max-width:520px;text-align:center;font-weight:900;font-size:15px}
.countdown b{font-family:"Barlow",sans-serif;font-size:1.8em;color:var(--yellow);margin:0 3px;line-height:1}

/* ---------- 見出し ---------- */
section{padding:72px 0}
.h2{text-align:center;font-weight:900;font-size:clamp(23px,6.2vw,34px);line-height:1.4;margin-bottom:34px;color:var(--teal-d)}
.h2 .en{display:block;font-size:clamp(28px,8vw,44px);letter-spacing:.18em;color:var(--teal);line-height:1.1;margin-bottom:6px;
  background:linear-gradient(90deg,var(--teal),var(--leaf));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- リード ---------- */
.lead{background:linear-gradient(170deg,var(--teal-d),var(--teal));color:#fff;padding:52px 0 56px}
.lead-t{font-weight:700;font-size:clamp(17px,4.6vw,22px);line-height:2;max-width:820px;margin:0 auto;text-wrap:pretty}
.lead-t mark{background:none;color:var(--yellow);font-weight:900}

/* ---------- こんな方へ ---------- */
.for{background:var(--cream)}
.checks{list-style:none;display:grid;gap:12px;max-width:760px;margin:0 auto}
.checks li{position:relative;background:#fff;border-radius:12px;padding:16px 18px 16px 58px;font-weight:700;font-size:17px;line-height:1.6;box-shadow:0 3px 0 rgba(15,167,156,.18)}
.checks li::before{content:"";position:absolute;left:18px;top:50%;margin-top:-13px;width:26px;height:26px;border-radius:50%;background:var(--teal)}
.checks li::after{content:"";position:absolute;left:26px;top:50%;margin-top:-7px;width:9px;height:5px;border-left:3px solid #fff;border-bottom:3px solid #fff;transform:rotate(-45deg)}
.for-note{text-align:center;margin-top:24px;font-weight:700;font-size:16px;color:var(--teal-d)}
@media(min-width:768px){.checks{grid-template-columns:1fr 1fr}}

/* ---------- POINT ---------- */
.points{background:#fff}
.pt-list{display:grid;gap:18px}
.pt{position:relative;background:linear-gradient(160deg,#f2fbfa,#e2f4f1);border-left:6px solid var(--teal);border-radius:12px;padding:24px 22px 22px}
.pt-n{position:absolute;right:16px;top:6px;font-family:"Oswald",sans-serif;font-weight:600;font-size:48px;line-height:1;color:rgba(15,167,156,.18)}
.pt h3{font-weight:900;font-size:20px;line-height:1.45;color:var(--teal-d);margin-bottom:8px;padding-right:56px}
.pt p{font-size:16px;line-height:1.85;text-wrap:pretty}
@media(min-width:900px){.pt-list{grid-template-columns:repeat(3,1fr)}}

/* ---------- 講師 ---------- */
.speaker{position:relative;background:var(--cream);overflow:hidden}
.speaker-bg{position:absolute;inset:0;background:linear-gradient(135deg,rgba(127,196,111,.55) 0%,rgba(127,196,111,0) 40%);clip-path:polygon(0 0,70% 0,0 55%)}
.sp-grid{display:grid;gap:22px}
.sp-photo{max-width:420px;margin:0 auto;width:100%}
.sp-photo{position:relative;max-width:340px;aspect-ratio:1;border-radius:50%;overflow:hidden;background:linear-gradient(160deg,#fff 0%,#e6f5ef 100%);box-shadow:0 0 0 8px rgba(255,255,255,.7),0 14px 30px rgba(0,80,60,.15)}
.sp-circle{position:absolute;inset:0;background:linear-gradient(200deg,rgba(143,211,239,.55),rgba(127,196,111,.35))}
.sp-photo img{position:relative;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transform:scale(1.08);transform-origin:50% 0}
.sp-org{font-weight:900;font-size:17px;line-height:1.5;margin-top:14px}
.sp-name{font-weight:900;font-size:40px;line-height:1.2;letter-spacing:.1em;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:14px}
.sp-name small,.fc-name small{font-size:.5em;letter-spacing:0;margin-left:-.2em}
.sp-name .en-name{font-size:24px;color:var(--teal);letter-spacing:.03em;font-weight:500}
.sp-bio{margin-top:16px;background:rgba(255,255,255,.75);border-radius:12px;padding:18px 20px;font-size:16px;line-height:1.9;text-wrap:pretty}
.sp-theme{margin-top:18px}
.sp-theme .tag{margin-bottom:8px;letter-spacing:.15em}
.sp-theme b{display:block;font-weight:900;color:var(--teal-d);font-size:clamp(20px,5.4vw,26px);line-height:1.45}
@media(min-width:768px){.sp-grid{grid-template-columns:1fr 1.15fr;align-items:center;gap:40px}}

/* ---------- ファシリテーター ---------- */
.facil{background:#fff}
.fc{display:grid;border-radius:14px;overflow:hidden;margin:0 auto 20px;max-width:900px;box-shadow:0 8px 24px rgba(0,60,60,.12)}
.fc-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.fc-body{padding:20px 22px 22px;color:#fff;font-size:15.5px;line-height:1.85}
.fc-body.g{background:linear-gradient(160deg,#0c9a6e,#0a8a64)}
.fc-body.b{background:linear-gradient(160deg,#0a9bb4,#0888a4)}
.fc-name{font-weight:900;font-size:28px;line-height:1.3;color:var(--yellow);margin-bottom:10px;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px}
.fc-name .en-name{font-size:20px;font-weight:500}
@media(min-width:768px){.fc{grid-template-columns:1fr 1.1fr}.fc-photo img{height:100%}.fc-body{padding:26px 28px;display:flex;flex-direction:column;justify-content:center}}

/* ---------- スケジュール ---------- */
.sched{background:var(--pale)}
.steps{display:grid;gap:26px}
.step{position:relative;background:var(--card);border-radius:14px;padding:20px 22px 18px}
.step:not(:last-child)::after{content:"";position:absolute;left:50%;bottom:-20px;margin-left:-16px;border:16px solid transparent;border-top:14px solid var(--card);border-bottom:0}
.st-h{display:flex;align-items:baseline;gap:12px;font-weight:900;color:var(--coral);font-size:18px;margin-bottom:8px}
.st-n{font-family:"Oswald",sans-serif;font-weight:600;font-size:40px;line-height:1;color:rgba(232,102,90,.55)}
.step dl div{display:flex;gap:14px;padding:6px 0;border-top:1px dashed rgba(10,143,134,.3)}
.step dt{font-family:"Barlow",sans-serif;font-weight:800;color:var(--teal-d);font-size:21px;line-height:1.5;flex:none;width:58px}
.step dd{font-weight:700;font-size:17px;line-height:1.55;padding-top:1px}
.step dd b{font-weight:900;font-size:1.12em}
@media(min-width:900px){.steps{grid-template-columns:repeat(3,1fr)}
  .step:not(:last-child)::after{left:auto;right:-22px;top:50%;bottom:auto;margin:-16px 0 0;border:16px solid transparent;border-left:14px solid var(--card);border-right:0}}

/* ---------- 中間CTA ---------- */
.cta-mid{background:linear-gradient(160deg,var(--teal),var(--green));color:#fff;padding:48px 0 52px}
.cta-mid .wrap{display:flex;flex-direction:column;align-items:center}
.cta-lead{font-weight:900;font-size:18px;margin-bottom:18px;text-align:center}
.cta-lead b{font-family:"Barlow",sans-serif;font-size:1.9em;color:var(--yellow);margin:0 2px;line-height:1}

/* ---------- 開催概要 ---------- */
.info{background:#fff}
.tbl{max-width:820px;margin:0 auto;border-top:2px solid var(--teal)}
.tbl div{display:grid;grid-template-columns:104px 1fr;border-bottom:1px solid #d9e8e6}
.tbl dt{background:#eaf6f4;color:var(--teal-d);font-weight:900;font-size:15px;padding:16px 12px;display:flex;align-items:center}
.tbl dd{padding:14px 16px;font-size:16px;line-height:1.7}
.tbl dd b{font-weight:900;font-size:1.06em}
.map{max-width:820px;margin:26px auto 0;border-radius:12px;overflow:hidden;aspect-ratio:16/10;background:#eef}
.map iframe{width:100%;height:100%;border:0;display:block}
@media(min-width:768px){.tbl div{grid-template-columns:160px 1fr}.tbl dt{padding-left:22px}}

/* ---------- FAQ ---------- */
.faq{background:var(--cream)}
.faq-list{max-width:820px;margin:0 auto;display:grid;gap:12px}
.faq details{background:#fff;border-radius:12px;box-shadow:0 3px 0 rgba(15,167,156,.15);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;position:relative;padding:18px 52px 18px 56px;font-weight:900;font-size:17px;line-height:1.5}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";position:absolute;left:18px;top:14px;font-family:"Oswald",sans-serif;font-size:26px;line-height:1.2;color:var(--teal)}
.faq summary::after{content:"";position:absolute;right:22px;top:50%;width:10px;height:10px;margin-top:-8px;border-right:3px solid var(--teal);border-bottom:3px solid var(--teal);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
.faq details p{position:relative;padding:0 22px 20px 56px;font-size:16px;line-height:1.85;text-wrap:pretty}
.faq details p::before{content:"A";position:absolute;left:19px;top:-4px;font-family:"Oswald",sans-serif;font-size:26px;line-height:1.2;color:var(--coral)}

/* ---------- 最終CTA ---------- */
.cta{position:relative;background:var(--teal);color:#fff;overflow:hidden;padding:72px 0 76px}
.cta-bg{position:absolute;inset:0;background:
  linear-gradient(115deg,rgba(135,200,110,0) 45%,rgba(135,200,110,.7) 45.2%,rgba(135,200,110,.7) 70%,rgba(142,211,239,.8) 70.2%)}
.cta .wrap{display:flex;flex-direction:column;align-items:center;text-align:center}
.cta-catch{font-weight:900;font-size:clamp(25px,7vw,44px);line-height:1.35;margin-bottom:14px;text-shadow:0 2px 12px rgba(0,60,60,.3)}
.cta-catch em{font-style:normal;color:var(--yellow)}
.cta-sum{font-weight:700;font-size:17px;line-height:1.8;margin-bottom:26px;text-shadow:0 1px 8px rgba(0,60,60,.35)}
.cta-sum b{color:var(--yellow);font-weight:900}

/* ---------- アワード ---------- */
.award{background:var(--coral)}
.award a{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:18px;row-gap:4px;padding-top:18px;padding-bottom:18px;color:#fff;text-decoration:none;text-align:center}
.aw-t{font-weight:900;font-size:clamp(18px,4.8vw,24px);line-height:1.4}
.aw-s{font-weight:700;font-size:15px}
.aw-s b{font-size:1.25em;font-weight:900}
.aw-more{font-weight:900;font-size:14px;border:2px solid #fff;border-radius:999px;padding:3px 16px 4px;margin-top:6px}

/* ---------- フッター ---------- */
.ft{background:var(--pale);padding:40px 0 120px;font-size:15px;line-height:1.75}
.ft-grid{display:grid;gap:26px}
.ft-brand{font-weight:900;font-size:22px;letter-spacing:.1em;margin-bottom:6px}
.ft-org p span{display:inline-block;font-weight:900;margin-right:8px;color:var(--teal-d)}
.ft-contact{background:#fff;border-radius:12px;padding:18px 20px}
.ft-ttl{display:inline-block;background:var(--teal);color:#fff;font-weight:900;font-size:13px;padding:2px 12px;border-radius:4px;margin-bottom:6px}
.ft-name{font-weight:900}
.ft-name small{display:block;font-weight:500;font-size:13px}
.ft .tel{font-family:"Barlow",sans-serif;font-weight:800;font-size:22px;text-decoration:none;color:var(--teal-d);margin-right:6px}
.ft .mail{word-break:break-all;color:var(--teal-d)}
.ft small{font-size:13px}
@media(min-width:768px){.ft-grid{grid-template-columns:1fr 1fr;align-items:center}.ft{padding-bottom:48px}}

/* ---------- 追従CTA ---------- */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);box-shadow:0 -4px 16px rgba(0,0,0,.1);transform:translateY(110%);transition:transform .3s}
.sticky.show{transform:none}
.sticky .btn{margin:0 auto;min-height:56px;font-size:18px;box-shadow:0 4px 0 #b13e2f}
@media(min-width:900px){.sticky{display:none}}
.shot .sticky{display:none}

/* ---------- PC FV ---------- */
@media(min-width:900px){
  .fv{padding-bottom:64px}
  .fv-grid{grid-template-columns:1.2fr 1fr;align-items:center;gap:40px;padding-top:40px}
  .fv-date{padding-top:30px}
  .btn-note,.countdown{margin-left:auto;margin-right:auto}
  .fv .btn{margin:0 auto}
}

/* ---------- 動き ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.btn::before{animation:none}html{scroll-behavior:auto}}
.shot .rv{opacity:1;transform:none;transition:none}

/* FV下部の明るい背景でも注記が読めるよう、濃い下地を敷く */
.fv .btn-note,.fv .countdown{background:rgba(6,95,88,.72);border-radius:10px;padding:8px 12px;line-height:1.6}
.fv .countdown{display:table;margin:10px auto 0;padding:6px 16px}
.fv .countdown[hidden]{display:none}
@media(max-width:560px){
  .ribbon{font-size:3.15vw;letter-spacing:-.02em}
  .rb-l{padding:11px 24px 11px 14px;clip-path:polygon(0 0,100% 0,calc(100% - 16px) 100%,0 100%)}
  .rb-r{padding:11px 14px 11px 10px;margin-left:-14px;clip-path:polygon(16px 0,100% 0,100% 100%,0 100%)}
}
.nw{white-space:nowrap}
.fc-photo img{height:auto}
.fc-photo img[alt^="大長"]{aspect-ratio:16/9;object-position:60% 50%}
@media(min-width:768px){.fc-photo img,.fc-photo img[alt^="大長"]{height:100%;aspect-ratio:auto;min-height:260px}}
.catch span,.sub span{white-space:nowrap}
@media(min-width:900px){
  .catch .c1,.catch .c2,.catch .c3{font-size:clamp(60px,5.6vw,80px)}
  .catch .c1 b{font-size:1.4em}
}

/* ---------- FVの人物(柴田氏) ---------- */
.fv-main{position:relative}
.fv-main>*:not(.fv-person){position:relative;z-index:2}
.fv-person{position:absolute;z-index:1;margin:0}
.fv-person img{width:100%;height:auto;filter:drop-shadow(0 8px 20px rgba(0,50,40,.22))}
.fv-person figcaption{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.3;color:var(--ink)}
.fp-tag{background:var(--coral);color:#fff;font-weight:900;font-size:11px;letter-spacing:.3em;padding:3px 8px 3px 10px}
.fp-org{background:rgba(255,255,255,.94);font-weight:700;font-size:10.5px;padding:4px 8px}
.fp-name{background:rgba(255,255,255,.94);font-weight:900;font-size:20px;letter-spacing:.08em;padding:2px 10px 4px}
.fp-name small{font-size:.55em;letter-spacing:0;margin-left:2px}
/* スマホ: 見出しの下、右端に大きく。下半身は日付カードの裏へ */
.fv-person.m{right:-26px;bottom:-150px;width:min(60vw,300px)}
.fv-person.m figcaption{left:-6px;bottom:150px;transform:translateX(-62%)}
.fv-person.p{display:none}
.fv .sub{padding-right:0}
.fv-date{z-index:3}
.fv-main{padding-bottom:150px}
@media(min-width:420px){.fv-main{padding-bottom:180px}}
@media(min-width:900px){
  .fv-main{padding-bottom:0}
  .fv-person.m{display:none}
  .fv-person.p{display:block;position:relative;width:78%;margin:-10px 0 -150px auto;z-index:0}
  .fv-person.p figcaption{left:-38%;top:34%}
  .date-card{z-index:2}
  .fv-date>*:not(.fv-person){position:relative;z-index:2}
  .fp-org{font-size:12px}.fp-name{font-size:24px}.fp-tag{font-size:12px}
}
/* 調整: 顔を大きく、カードに隠れる範囲を減らす */
.fv-person.m{right:-18px;bottom:-120px;width:min(68vw,320px)}
.fv-person.m::before{content:"";position:absolute;left:12%;top:4%;width:82%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55) 0%,rgba(255,255,255,.18) 60%,rgba(255,255,255,0) 72%);z-index:-1}
.fv-person.m figcaption{left:0;bottom:auto;top:30%;transform:translateX(-78%)}
.fv-main{padding-bottom:200px}
@media(min-width:420px){.fv-main{padding-bottom:220px}}
@media(min-width:900px){.fv-main{padding-bottom:0}}
.fv-person.m figcaption{left:auto;right:100%;margin-right:-44px;transform:none;top:32%;width:max-content;max-width:172px}
.fv-person.m .fp-org{font-size:10px}
.fv-person.m figcaption{margin-right:-64px}
/* v3: 写真で縦を伸ばさない。帯を3本にして右の空きに顔を置く */
.fv-main{padding-bottom:0}
@media(min-width:420px){.fv-main{padding-bottom:0}}
.fv-person.m{right:-14px;bottom:-44px;width:min(47vw,230px)}
.fv-person.m figcaption{right:auto;left:-6px;top:auto;bottom:52px;margin-right:0;max-width:none}
.fv-person.m .fp-org{display:none}
.fv-person.m .fp-name{font-size:17px}
@media(min-width:560px){.fv-person.m{width:min(40vw,260px)}}
/* v5: 最上部の帯。元の1行デザインのまま、文字と余白だけ調整 */
.rb-brand{display:none}
@media(max-width:560px){
  .ribbon{font-size:clamp(11.5px,3.6vw,16px);letter-spacing:-.01em}
  .rb-l{padding:13px 20px 13px 12px;clip-path:polygon(0 0,100% 0,calc(100% - 13px) 100%,0 100%)}
  .rb-r{padding:13px 6px 13px 14px;margin-left:-11px;clip-path:polygon(13px 0,100% 0,100% 100%,0 100%);text-align:center}
}
/* v6: 講師ラベルを横並びにして、帯3本目(短い行)の高さに下げる。2本目の帯と重ならないように */
.fv-person.m figcaption{flex-direction:row;align-items:stretch;gap:0;bottom:34px;left:-4px}
.fv-person.m .fp-tag{display:flex;align-items:center;letter-spacing:.15em;padding:3px 6px 3px 8px}
.fv-person.m .fp-name{padding:3px 9px 4px;font-size:16px}

/* ================= FVモーション(v7) ================= */
.fv-net{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.9;pointer-events:none}
.fv-bg .scan{background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.16) 48%,rgba(255,255,255,.02) 52%,transparent 60%);background-size:250% 100%;background-position:150% 0;animation:scan 7s ease-in-out 2.2s infinite}
@keyframes scan{0%{background-position:150% 0}45%,100%{background-position:-60% 0}}
.fv-bg .s2{animation:drift2 14s ease-in-out infinite alternate}
.fv-bg .s3{animation:drift3 16s ease-in-out infinite alternate}
.fv-bg .s4{animation:drift4 12s ease-in-out infinite alternate}
@keyframes drift2{to{transform:translate3d(0,-3%,0) skewY(-1deg)}}
@keyframes drift3{to{transform:translate3d(2%,-2%,0)}}
@keyframes drift4{to{transform:translate3d(-2%,2%,0)}}
/* 開いた瞬間の登場 */
.catch>span{overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.catch .ln{display:block;animation:lineUp .9s cubic-bezier(.2,.8,.2,1) both}
.catch .c1 .ln{animation-delay:.25s}.catch .c2 .ln{animation-delay:.42s}.catch .c3 .ln{animation-delay:.59s}
@keyframes lineUp{from{transform:translateY(105%)}to{transform:none}}
.catch .c2 em{display:inline-block;animation:glow 1.2s ease-out 1.1s both}
@keyframes glow{0%{text-shadow:0 0 0 rgba(255,243,90,0)}40%{text-shadow:0 0 28px rgba(255,243,90,.9)}100%{text-shadow:0 2px 14px rgba(0,80,70,.25)}}
.fv .brand{animation:fadeUp .7s ease both .1s}
.sub span{animation:wipe .7s cubic-bezier(.6,0,.2,1) both}
.sub span:nth-child(1){animation-delay:.95s}.sub span:nth-child(2){animation-delay:1.08s}.sub span:nth-child(3){animation-delay:1.21s}
@keyframes wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.ribbon .rb-l{animation:slideR .6s cubic-bezier(.2,.8,.2,1) both}
.ribbon .rb-r{animation:fadeIn .6s ease both .25s}
@keyframes slideR{from{transform:translateX(-100%)}to{transform:none}}
.fv-person img{animation:personIn 1s cubic-bezier(.2,.8,.2,1) both .9s}
@keyframes personIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.fv-person figcaption{animation:fadeUp .6s ease both 1.5s}
.fv-person.m::before{animation:pulseGlow 4s ease-in-out infinite 2s}
@keyframes pulseGlow{50%{transform:scale(1.08);opacity:.75}}
.date-card{animation:cardUp .8s cubic-bezier(.2,.8,.2,1) both 1.15s}
@keyframes cardUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.free{animation:pop .6s cubic-bezier(.3,1.6,.5,1) both 1.6s}
@keyframes pop{from{opacity:0;transform:rotate(-6deg) scale(.3)}to{opacity:1;transform:rotate(-6deg) scale(1)}}
.free::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:3px solid rgba(255,255,255,.7);animation:ring 2.6s ease-out infinite 2.4s;opacity:0}
@keyframes ring{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.35)}}
.d-place,.fv .btn,.fv .btn-note,.fv .countdown{animation:fadeUp .7s ease both 1.45s}
.fv .btn{animation-delay:1.55s}.fv .btn-note{animation-delay:1.65s}.fv .countdown{animation-delay:1.75s}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
/* 日付の数字にうっすらグラデーションを流す */
.d-main{background:linear-gradient(100deg,var(--teal-d) 0%,var(--teal-d) 40%,#3cc7b5 50%,var(--teal-d) 60%,var(--teal-d) 100%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 5s ease-in-out 2.4s infinite}
.d-main small{color:var(--teal-d);-webkit-text-fill-color:var(--teal-d)}
.d-main .dow{-webkit-text-fill-color:#fff}
@keyframes shine{0%{background-position:100% 0}40%,100%{background-position:0 0}}
@media(prefers-reduced-motion:reduce){
  .fv *,.fv *::before,.fv *::after{animation:none!important}
  .fv-net{display:none}
}
.shot .fv *,.shot .fv *::before,.shot .fv *::after{animation:none!important}
/* v8: スマホのFVラベルにも肩書きを出す(上段: 会社名・役職、下段: 講師タグ+名前) */
.fv-person.m figcaption{flex-wrap:wrap;width:172px;row-gap:0}
.fv-person.m .fp-org{display:block;order:-1;flex:0 0 100%;font-size:10.5px;line-height:1.4;font-weight:900;padding:5px 8px 4px;background:rgba(255,255,255,.96);border-bottom:1px solid #e5e5e5}
.fv-person.m .fp-tag{padding:4px 7px 4px 9px}
.fv-person.m .fp-name{flex:1;padding:3px 8px 5px}
.fv-person.m figcaption{bottom:8px}
.fv-person.m figcaption{bottom:25px}.fv-person.m .fp-org{font-size:10px;line-height:1.35;padding:4px 8px 3px}.fv-person.m .fp-name{font-size:15px;padding:2px 8px 4px}.fv-person.m .fp-tag{font-size:10.5px}
.fv-person.m figcaption{bottom:30px;left:8px;width:162px}

/* v9: スマホFVは「写真(左)|帯(右)」の2列。重ねないので文字が大きい端末でも顔が隠れない */
.fv-row{position:relative;z-index:2}
@media(max-width:899px){
  .fv-row{display:grid;grid-template-columns:44% 1fr;align-items:center;column-gap:6px;margin-right:-4px}
  .fv-person.m{position:relative;right:auto;bottom:auto;left:auto;width:auto;margin:-6px 0 -64px -14px;z-index:1;align-self:end}
  .fv-person.m img{width:100%}
  .fv-person.m::before{left:4%;top:0;width:92%}
  .fv-row .sub{align-items:flex-end;gap:7px;font-size:clamp(15px,4.6vw,24px)}
  .fv-row .sub span{white-space:normal;text-align:right;padding:7px 12px 7px 13px}
  .fv-person.m figcaption{left:10px;right:auto;bottom:70px;top:auto;width:138px;max-width:calc(100% - 8px);margin:0}
  .fv-person.m .fp-org{font-size:9.5px;padding:4px 7px 3px}
  .fv-person.m .fp-name{font-size:14px}
  .fv-person.m .fp-tag{font-size:10px;padding:3px 6px 3px 8px}
}
@media(min-width:900px){.fv-row{display:block}}
/* v10: 講師ラベルは写真から外して、右列の帯の下に置く(顔にかからない) */
.fp-cap-m{display:none}
@media(max-width:899px){
  .fv-row{grid-template-columns:47% 1fr}
  .fv-person.m figcaption{display:none}
  .fv-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:0}
  .fp-cap-m{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:stretch;max-width:100%;color:var(--ink);line-height:1.3;text-align:right}
  .fp-cap-m .fp-tag{display:flex;align-items:center;font-size:10.5px;padding:3px 6px 3px 8px;letter-spacing:.2em}
  .fp-cap-m .fp-name{background:rgba(255,255,255,.95);font-weight:900;font-size:15px;letter-spacing:.06em;padding:3px 9px 4px}
  .fp-cap-m .fp-name small{font-size:.6em;margin-left:2px}
  .fp-cap-m .fp-org2{flex:0 0 100%;color:#fff;font-weight:700;font-size:10px;line-height:1.45;margin-top:4px;text-shadow:0 1px 6px rgba(0,60,50,.45)}
}
@media(min-width:900px){.fv-right{display:block}}
@media(max-width:899px){.fv-row .sub{font-size:clamp(13.5px,4.3vw,24px)}.fv-row .sub span{padding:7px 10px 7px 11px}}
@media(max-width:350px){.free{width:78px;height:78px;font-size:18px;right:8px;top:-30px}.yr{font-size:26px}}

/* v11: 元の配置(写真右・帯左)に戻す。写真をさらに右へ寄せ、重なっても顔(写真)が帯より手前 */
@media(max-width:899px){
  .fv-row{display:block;position:static;margin-right:0}
  .fv-right{display:block}
  .fp-cap-m{display:none}
  .fv-row .sub{position:relative;z-index:2;align-items:flex-start;gap:8px;font-size:clamp(18px,5vw,30px)}
  .fv-row .sub span{white-space:nowrap;text-align:left;padding:8px 14px 8px 16px}
  .fv-person.m{position:absolute;left:auto;right:-30px;bottom:-44px;width:min(47vw,230px);margin:0;z-index:3;align-self:auto}
  .fv-person.m::before{left:12%;top:4%;width:82%}
  .fv-person.m figcaption{display:flex;flex-wrap:wrap;left:auto;right:38px;bottom:30px;top:auto;width:142px;max-width:none;margin:0}
  .fv-person.m .fp-org{display:block;font-size:10px;padding:4px 7px 3px}
}
@media(min-width:400px) and (max-width:899px){.fv-person.m{bottom:-62px}}
@media(max-width:350px){.fv-person.m .fp-org{display:none}.fv-person.m figcaption{width:auto;right:30px;bottom:44px}}
@media(min-width:400px) and (max-width:899px){.fv-person.m figcaption{bottom:50px}}
@media(max-width:899px){.fv .catch{position:relative;z-index:4}}
@media(min-width:380px) and (max-width:399px){.fv-person.m{bottom:-62px}.fv-person.m figcaption{bottom:50px}}
