
:root{
  --ink:#332e24;
  --ink-soft:#6f6857;
  --brown:#584a30;
  --green:#3f9c68;
  --green-deep:#2e7a50;
  --green-pale:#eef7f0;
  --blue:#2f6ea8;
  --blue-pale:#eaf2f9;
  --orange:#dd7a45;
  --orange-pale:#fbf0e7;
  --yellow:#f2c94c;
  --bg:#faf8f2;
  --line:#e8e2d3;
  --white:#fff;
  --dummy:#d9d5cc;
}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:62.5%;scroll-behavior:smooth}
body{
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:1.6rem;
  line-height:1.9;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--green-deep)}
ul{list-style:none}
.inner{max-width:104rem;margin:0 auto;padding:0 2.4rem}
.inner--narrow{max-width:86rem}

/* 見出し */
.sec{padding:11rem 0}
.sec--tint{background:var(--white)}
.sec-head{text-align:center;margin-bottom:6.4rem}
.sec-title{font-size:3.4rem;font-weight:900;letter-spacing:.06em;line-height:1.5}
.sec-title::after{content:"";display:block;width:4.8rem;height:.4rem;border-radius:.2rem;background:var(--green);margin:2rem auto 0}
.sec-lead{margin-top:2.4rem;font-size:1.6rem;color:var(--ink-soft)}

/* ダミー画像 */
.ph-dummy{background:var(--dummy);border-radius:1.6rem}

/* ヒーロー(メインビジュアル=94vwグレー角丸・文字はダミー配置/無彩色) */
.hero{padding:2.4rem 0}
.hero-canvas{width:94vw;margin:0 auto;background:linear-gradient(180deg,rgba(18,22,32,0) 42%,rgba(18,22,32,.5) 68%,rgba(18,22,32,.86) 100%),url("/miyagi-nouhaku/assets/hero-art.jpg") center/cover no-repeat #1d2230;border-radius:3.2rem;padding:9.6rem 6.4rem 5.6rem;min-height:calc(100vh - 4.8rem);min-height:calc(100svh - 4.8rem);display:flex;align-items:flex-end}
.hero-inner{width:100%;display:grid;grid-template-columns:1fr auto;column-gap:4.8rem;align-items:end}
.hero-badges{grid-column:1;grid-row:1}
.hero-catch{grid-column:1;grid-row:2}
.hero-title{grid-column:1;grid-row:3}
.hero-lead{grid-column:2;grid-row:1/3;align-self:end;text-align:right}
.hero-cta{grid-column:2;grid-row:3;justify-content:flex-end}
.hero-badges{display:flex;gap:1rem;margin-bottom:2.8rem;flex-wrap:wrap}
.badge{display:inline-block;font-size:1.4rem;font-weight:700;letter-spacing:.08em;padding:.5rem 1.6rem;border-radius:99rem;background:rgba(255,255,255,.92);color:var(--ink)}
.hero-catch{font-size:1.8rem;font-weight:700;color:#fff;letter-spacing:.12em;margin-bottom:1.6rem}
.hero-title{font-size:5.6rem;font-weight:900;line-height:1.35;letter-spacing:.04em;color:#fff}
.hero-lead{margin:0 0 2.4rem;font-size:1.7rem;color:#fff}
.hero-org{margin-top:2.8rem;font-size:1.4rem;color:var(--ink);letter-spacing:.04em}
.hero-org span{display:inline-block;margin-right:2.4rem}
.hero-cta{margin:0 0 .8rem;display:flex;gap:1.6rem;flex-wrap:wrap}
.btn{display:inline-block;text-decoration:none;font-weight:700;letter-spacing:.08em;text-align:center;border-radius:99rem;transition:opacity .25s ease,transform .25s ease}
.btn:hover{opacity:.85;transform:translateY(-.2rem)}
.btn--primary{background:var(--green);color:#fff;font-size:1.7rem;padding:1.7rem 4.8rem;box-shadow:0 .8rem 2.4rem rgba(63,156,104,.28)}
.btn--ghost{border:.2rem solid rgba(255,255,255,.9);color:var(--ink);font-size:1.5rem;padding:1.5rem 3.6rem;background:rgba(255,255,255,.9)}

/* ダミー写真枠(カード内) */
.ph-thumb{background:var(--dummy);border-radius:1.2rem;aspect-ratio:16/10}
.ph-thumb{overflow:hidden}
.ph-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.point-card .ph-thumb{margin-bottom:2.4rem}
.detail-body .ph-thumb{aspect-ratio:16/9;margin-bottom:2.8rem}

/* ポイント */
.point-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.8rem}
.point-card{background:var(--white);border:.1rem solid var(--line);border-radius:2rem;padding:3.2rem 3.2rem 4rem;text-align:left}
.sec--tint .point-card{background:var(--bg)}
.point-title{font-size:2rem;font-weight:700;line-height:1.6;margin-bottom:1.4rem}
.point-text{font-size:1.5rem;color:var(--ink-soft);text-align:left}

/* こんな方に */
.reco-list{max-width:64rem;margin:0 auto;display:grid;gap:1.6rem}
.reco-list li{background:var(--white);border:.1rem solid var(--line);border-radius:1.4rem;padding:1.8rem 2.4rem 1.8rem 5.8rem;font-size:1.6rem;font-weight:500;position:relative}
.reco-list li::before{content:"";position:absolute;left:2.2rem;top:50%;transform:translateY(-50%) rotate(-45deg);width:1.5rem;height:.8rem;border-left:.3rem solid var(--green);border-bottom:.3rem solid var(--green);margin-top:-.2rem}

/* スケジュール */
.track{border-radius:2.4rem;overflow:hidden;background:var(--white);border:.1rem solid var(--line)}
.track + .track{margin-top:5.6rem}
.track-head{padding:3.2rem 4rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}
.track--startup .track-head{background:var(--blue)}
.track--jissen .track-head{background:var(--orange)}
.track-name{font-size:2.4rem;font-weight:900;color:#fff;letter-spacing:.06em}
.track-status{font-size:1.3rem;font-weight:700;background:#fff;border-radius:99rem;padding:.4rem 1.6rem}
.track--startup .track-status{color:var(--blue)}
.track--jissen .track-status{color:var(--orange)}
.track-target{width:100%;font-size:1.4rem;color:rgba(255,255,255,.92)}
.track-body{padding:4rem}
.session-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.4rem}
.session-grid--three{grid-template-columns:repeat(3,1fr)}
.session{border-radius:1.6rem;padding:3rem 2.8rem;text-align:center}
.track--startup .session{background:var(--blue-pale)}
.track--jissen .session{background:var(--orange-pale)}
.session-no{display:inline-block;font-size:1.3rem;font-weight:700;color:#fff;border-radius:99rem;padding:.3rem 1.4rem;margin-bottom:1.6rem}
.session-theme{display:inline-block;font-size:1.3rem;font-weight:700;background:#fff;border-radius:99rem;padding:.3rem 1.4rem;margin:0 0 1.6rem .6rem}
.track--startup .session-theme{color:var(--blue)}
.track--jissen .session-theme{color:var(--orange)}
.track--startup .session-no{background:var(--blue)}
.track--jissen .session-no{background:var(--orange)}
.session-date{font-size:2.6rem;font-weight:900;letter-spacing:.04em}
.session-date small{font-size:1.5rem;font-weight:700;margin-left:.4rem}
.session-title{margin-top:1.6rem;font-size:1.7rem;font-weight:700;line-height:1.6}
.session-sub{margin-top:.8rem;font-size:1.4rem;color:var(--ink-soft)}
.track-note{margin-top:2.4rem;font-size:1.3rem;color:var(--ink-soft)}
.cap-note{text-align:center;margin-bottom:4.8rem;font-size:1.5rem;color:var(--ink-soft)}

/* 詳細カード */
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3.2rem}
.venue{margin-top:3.2rem;background:var(--white);border:.1rem solid var(--line);border-radius:2.4rem;padding:3.6rem 3.2rem;display:grid;grid-template-columns:22rem 1fr;gap:3.2rem;align-items:center}
.venue-label{display:inline-block;font-size:1.3rem;font-weight:700;color:#fff;background:var(--blue);border-radius:.8rem;padding:.3rem 1.2rem}
.venue-name{margin-top:1.4rem;font-size:2.4rem;font-weight:900;letter-spacing:.06em;line-height:1.5}
.venue-addr{margin-top:.6rem;font-size:1.4rem;color:var(--ink-soft)}
.venue-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.sched-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.4rem;align-items:start}
.sched-col{background:var(--white);border:.1rem solid var(--line);border-radius:2.4rem;overflow:hidden}
.sched-head{padding:2.4rem 2.8rem 2rem}
.sched-col--startup .sched-head{background:var(--blue)}
.sched-col--jissen .sched-head{background:var(--orange)}
.sched-head-row{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.sched-name{font-size:2rem;font-weight:900;color:#fff;letter-spacing:.06em}
.sched-status{font-size:1.2rem;font-weight:700;background:#fff;border-radius:99rem;padding:.3rem 1.2rem;white-space:nowrap}
.sched-col--startup .sched-status{color:var(--blue)}
.sched-col--jissen .sched-status{color:var(--orange)}
.sched-target{margin-top:.8rem;font-size:1.3rem;color:rgba(255,255,255,.92)}
.sched-list{padding:.8rem 2.8rem}
.sched-list li{padding:2rem 0;border-bottom:.1rem dashed var(--line)}
.sched-list li:last-child{border-bottom:0}
.sched-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.sched-no{font-size:1.2rem;font-weight:700;color:#fff;border-radius:99rem;padding:.2rem 1.2rem}
.sched-col--startup .sched-no{background:var(--blue)}
.sched-col--jissen .sched-no{background:var(--orange)}
.sched-theme{font-size:1.2rem;font-weight:700;border-radius:99rem;padding:.2rem 1.2rem}
.sched-col--startup .sched-theme{background:var(--blue-pale);color:var(--blue)}
.sched-col--jissen .sched-theme{background:var(--orange-pale);color:var(--orange)}
.sched-date{margin-left:auto;font-size:1.8rem;font-weight:900;letter-spacing:.04em}
.sched-date small{font-size:1.3rem;font-weight:700}
.sched-title{margin-top:1rem;font-size:1.5rem;font-weight:700;line-height:1.6}
.sched-note{margin:0;padding:0 2.8rem 2.4rem;font-size:1.2rem;color:var(--ink-soft)}
.detail-card{background:var(--white);border:.1rem solid var(--line);border-radius:2.4rem;overflow:hidden}
.detail-head{background:var(--blue);color:#fff;padding:2.8rem 3.2rem;text-align:center}
.detail-no{display:inline-block;font-size:1.3rem;font-weight:700;background:#fff;color:var(--blue);border-radius:99rem;padding:.3rem 1.6rem;margin-bottom:1.4rem}
.detail-title{font-size:2rem;font-weight:900;line-height:1.6}
.detail-sub{margin-top:.6rem;font-size:1.4rem;opacity:.92}
.detail-body{padding:3.6rem 3.2rem}
.detail-date{text-align:center;font-size:2.8rem;font-weight:900;letter-spacing:.04em}
.detail-date small{font-size:1.6rem;font-weight:700;margin:0 .3rem}
.detail-meta{margin-top:2.8rem;display:grid;gap:1.4rem}
.detail-meta > div{display:grid;grid-template-columns:7.2rem 1fr;gap:1.6rem;align-items:start}
.meta-label{font-size:1.3rem;font-weight:700;color:var(--blue);border:.1rem solid currentColor;border-radius:.8rem;text-align:center;padding:.3rem 0;margin-top:.3rem}
.meta-label:empty{border:none}
.meta-value{font-size:1.5rem}
.meta-value small{display:block;font-size:1.3rem;color:var(--ink-soft)}
.detail-learn{margin-top:3rem;background:var(--bg);border-radius:1.6rem;padding:2.6rem 2.8rem}
.detail-learn-title{font-size:1.4rem;font-weight:700;color:var(--green-deep);margin-bottom:1.4rem}
.detail-learn li{position:relative;padding:.5rem 0 .5rem 3rem;font-size:1.5rem}
.detail-learn li::before{content:"";position:absolute;left:.4rem;top:1.5rem;transform:rotate(-45deg);width:1.2rem;height:.6rem;border-left:.25rem solid var(--green);border-bottom:.25rem solid var(--green)}

/* 講師紹介 */
.teacher-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3.2rem}
.teacher{background:var(--white);border:.1rem solid var(--line);border-radius:2.4rem;padding:4rem 3.6rem;display:grid;grid-template-columns:11rem 1fr;gap:2.8rem}
.teacher-photo{width:11rem;height:11rem;border-radius:50%;background:var(--dummy);overflow:hidden}
.teacher-photo img{width:100%;height:100%;object-fit:cover}
.teacher-band{font-size:1.8rem;font-weight:900;color:#fff;letter-spacing:.06em;line-height:1.5;border-radius:1.2rem;padding:1.2rem 2.4rem;margin:5.6rem 0 2.4rem}
.sec-head + .teacher-band{margin-top:0}
.teacher-band--startup{background:var(--blue)}
.teacher-band--jissen{background:var(--orange)}
.teacher-band--coord{background:var(--green)}
.teacher-role{display:inline-block;font-size:1.2rem;font-weight:700;color:#fff;border-radius:.8rem;padding:.3rem 1.2rem;margin-bottom:1rem}
.teacher-role--startup{background:var(--blue)}
.teacher-role--jissen{background:var(--orange)}
.teacher-role--coord{background:var(--green)}
.teacher-role + .teacher-role{margin-left:.6rem}
.teacher-theme{display:inline-block;font-size:1.2rem;font-weight:700;color:var(--orange);margin-left:.8rem}
.teacher-name{font-size:2.2rem;font-weight:900;letter-spacing:.06em}
.teacher-name small{font-size:1.4rem;font-weight:700;margin-left:.6rem}
.teacher-org{margin-top:.4rem;font-size:1.4rem;font-weight:700;color:var(--green-deep);line-height:1.6}
.teacher-text{margin-top:1.4rem;font-size:1.4rem;color:var(--ink-soft)}

/* 申込 */
.apply{background:var(--green-pale)}
.apply-panel{background:var(--white);border-radius:2.4rem;padding:6.4rem 4.8rem;text-align:center;border:.1rem solid var(--line)}
.apply-deadline{display:inline-block;background:var(--brown);color:#fff;font-size:1.5rem;font-weight:700;letter-spacing:.08em;border-radius:99rem;padding:.7rem 2.8rem}
.apply-deadline strong{font-size:1.9rem;margin-left:.8rem}
.apply-note{margin-top:2.4rem;font-size:1.5rem;color:var(--ink-soft)}
.apply .btn--primary{margin-top:3.2rem;font-size:1.9rem;padding:2rem 7.2rem}
.apply-sub{margin-top:2rem;font-size:1.3rem;color:var(--ink-soft)}

/* 開催概要 */
.summary-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:2rem;overflow:hidden;border:.1rem solid var(--line)}
.summary-table th,.summary-table td{padding:2.2rem 3rem;font-size:1.5rem;text-align:left;border-bottom:.1rem solid var(--line);vertical-align:top}
.summary-table tr:last-child th,.summary-table tr:last-child td{border-bottom:none}
.summary-table th{width:18rem;background:var(--bg);font-weight:700;white-space:nowrap}
.summary-table td small{display:block;color:var(--ink-soft);font-size:1.3rem}

/* 問い合わせ */
.contact-panel{background:var(--white);border:.1rem solid var(--line);border-radius:2.4rem;padding:5.6rem 4.8rem;text-align:center}
.contact-name{font-size:1.8rem;font-weight:700}
.contact-tel{margin-top:2rem;font-size:3.4rem;font-weight:900;letter-spacing:.06em;color:var(--brown)}
.contact-tel a{color:inherit;text-decoration:none}
.contact-hours{font-size:1.4rem;color:var(--ink-soft)}
.contact-mail{margin-top:1.2rem;font-size:1.6rem}

/* フッター */
.footer{background:var(--brown);color:#fff;padding:4.8rem 0;text-align:center}
.footer-org{font-size:1.4rem;line-height:2.1}
.footer-note{margin-top:1.2rem;font-size:1.3rem;line-height:1.9;opacity:.85}
.footer-copy{margin-top:2rem;font-size:1.2rem;opacity:.7}

/* 追従申込ボタン */
.float-cta{position:fixed;left:50%;bottom:2.4rem;transform:translate(-50%,180%);z-index:100;transition:transform .5s cubic-bezier(.3,1,.35,1.1)}
.float-cta.is-show{transform:translate(-50%,0)}
.float-cta .btn{display:block;font-size:1.6rem;padding:1.6rem 6.4rem;box-shadow:0 1rem 3rem rgba(46,122,80,.4)}
@media screen and (max-width:768px){
  .float-cta{width:calc(100% - 3.2rem);bottom:1.6rem}
  .float-cta .btn{padding:1.6rem 2rem}
}

/* 演出 */
.reveal{opacity:0;transform:translateY(2.4rem);transition:opacity .8s ease,transform .8s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* SP */
@media screen and (max-width:768px){
  .sec{padding:6.4rem 0}
  .sec-head{margin-bottom:4rem}
  .sec-title{font-size:2.6rem}
  .hero{padding:1.6rem 0 0}
  .hero-canvas{border-radius:2rem;padding:5.6rem 2.8rem 6.4rem;padding-top:calc(52.875vw + 3.6rem);min-height:0;align-items:flex-start;background:url("/miyagi-nouhaku/assets/hero-art.jpg") top center/100% auto no-repeat #1d2230}
  .hero-inner{display:block}
  .hero-lead{margin:2.4rem 0 0;text-align:left}
  .hero-cta{margin:3.2rem 0 0;justify-content:flex-start}
  .hero-title{font-size:3.4rem}
  .hero-cta .btn{width:100%}
  .point-grid{grid-template-columns:1fr;gap:2rem}
  .track-head{padding:2.4rem 2.4rem}
  .track-body{padding:2.4rem 2rem}
  .session-grid,.session-grid--three{grid-template-columns:1fr}
  .detail-grid{grid-template-columns:1fr}
  .venue{grid-template-columns:1fr;padding:2.8rem 2.4rem;gap:2.4rem;text-align:center}
  .venue-photos{grid-template-columns:1fr;gap:1.6rem}
  .sched-grid{grid-template-columns:1fr}
  .sched-head{padding:2rem 2.4rem 1.8rem}
  .sched-list{padding:.4rem 2.4rem}
  .detail-body{padding:2.8rem 2.4rem}
  .teacher-grid{grid-template-columns:1fr}
  .teacher{grid-template-columns:1fr;padding:3.2rem 2.8rem;text-align:center}
  .teacher-photo{margin:0 auto}
  .teacher-text{text-align:left}
  .apply-panel{padding:4.4rem 2.4rem}
  .apply .btn--primary{width:100%;padding:2rem 2rem}
  .summary-table th{width:10rem;padding:1.8rem 1.6rem}
  .summary-table td{padding:1.8rem 1.6rem}
  .contact-panel{padding:4rem 2.4rem}
  .contact-tel{font-size:2.8rem}
}
