:root{
  --navy:#10284a;
  --navy-2:#0b1c36;
  --green:#007a3d;
  --green-soft:#dcebdf;
  --paper:#f6f2e8;
  --ink:#16202e;
  --muted:#4a5568;
  --mustard:#f5c400;
  --white:#fff;
  --ff:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --ff-num:"Barlow Condensed","Noto Sans JP",sans-serif;
  --wrap:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--ff);font-size:16px;line-height:1.9;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3{margin:0;line-height:1.3}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--mustard);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

/* 告知バー */
.notice{background:var(--green);color:#fff;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 18px;padding:10px 16px;font-size:.9rem;line-height:1.5}
.notice p{margin:0}
.notice__tag{display:inline-block;background:var(--mustard);color:var(--navy);font-weight:700;font-size:.75rem;padding:1px 9px;border-radius:99px;margin-right:10px}
.notice__link{color:#fff;font-weight:700;text-underline-offset:4px}
.notice__link:hover{text-decoration-thickness:2px}

/* ヘッダー */
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid rgba(16,40,74,.1)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}
.brand img{width:44px;height:44px;object-fit:contain}
.brand__text{display:block;font-weight:900;font-size:1.15rem;line-height:1.2;letter-spacing:.02em}
.brand__text small{display:block;font-weight:500;font-size:.68rem;color:var(--muted);letter-spacing:.06em}
.gnav{display:flex;align-items:center;gap:2px}
.gnav a{position:relative;padding:10px 14px;text-decoration:none;font-weight:500;font-size:.95rem;color:var(--ink)}
.gnav a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.gnav a:hover::after,.gnav a[aria-current]::after{transform:scaleX(1)}
.menu-btn{display:none;position:relative;width:44px;height:44px;border:0;background:transparent;cursor:pointer}
.menu-btn span{position:absolute;left:11px;right:11px;height:2px;background:var(--navy);transition:.25s}
.menu-btn span:nth-child(1){top:14px}.menu-btn span:nth-child(2){top:21px}.menu-btn span:nth-child(3){top:28px}
.menu-btn[aria-expanded="true"] span:nth-child(1){top:21px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* ヒーロー */
.hero{position:relative;display:grid;grid-template-rows:1fr auto;min-height:clamp(600px,86vh,860px);color:#fff;background:var(--navy)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 92%}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 80%;opacity:0;transition:opacity 1.2s ease}
.hero__video.is-on{opacity:1}
.hero__video.is-top{z-index:1}
.hero__shade,.hero__mosaic{z-index:2}
/* グレーのモザイク（細かい格子）。--mosaic-cell と --mosaic-alpha で粗さ・濃さを調整 */
.hero{--mosaic-cell:6px;--mosaic-alpha:.34}
.hero__mosaic{position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(128,132,140,var(--mosaic-alpha)) 1px,transparent 1px),
    linear-gradient(90deg,rgba(128,132,140,var(--mosaic-alpha)) 1px,transparent 1px);
  background-size:var(--mosaic-cell) var(--mosaic-cell)}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,28,54,.55) 0%,rgba(11,28,54,.22) 48%,rgba(11,28,54,0) 78%),linear-gradient(180deg,rgba(11,28,54,.35) 0%,rgba(11,28,54,.10) 30%,rgba(11,28,54,.55) 68%,rgba(11,28,54,.88) 100%)}
.hero__inner{position:relative;z-index:2;align-self:end;max-width:var(--wrap);width:100%;margin:0 auto;padding:120px 24px 110px}
.eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-family:var(--ff-num);font-weight:600;font-size:1rem;letter-spacing:.24em;text-transform:uppercase;color:var(--green);line-height:1}
.eyebrow::before{content:"";width:32px;height:2px;background:currentColor}
.eyebrow--light{color:var(--mustard)}
.hero .eyebrow{text-shadow:0 1px 10px rgba(0,0,0,.65)}
.hero__title{display:flex;flex-direction:column;font-weight:900;font-size:clamp(46px,9vw,112px);letter-spacing:-.01em;line-height:1.08;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hero__title span:last-child{color:var(--mustard)}
.hero__lead{max-width:34em;margin:28px 0 32px;font-size:clamp(.98rem,1.5vw,1.15rem);font-weight:500;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px}

.btn{display:inline-block;padding:14px 30px;border-radius:99px;font-weight:700;font-size:.98rem;text-decoration:none;text-align:center;line-height:1.4;border:2px solid transparent;transition:transform .2s,background .2s,color .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.btn--primary{background:var(--mustard);color:var(--navy)}
.btn--ghost{border-color:rgba(255,255,255,.7);color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.14)}
.btn--light{background:var(--navy);color:#fff}

/* チケット */
.ticket{position:absolute;z-index:3;right:max(24px,calc((100vw - var(--wrap))/2 + 24px));bottom:-56px;width:min(320px,calc(100vw - 48px));display:grid;gap:4px;padding:26px 26px 22px;background:#fff;color:var(--navy);text-decoration:none;border-radius:6px;border-top:8px solid var(--mustard);box-shadow:0 24px 60px rgba(11,28,54,.35);transition:transform .25s}
.ticket:hover{transform:translateY(-6px)}
.ticket::before,.ticket::after{content:"";position:absolute;top:96px;width:18px;height:18px;border-radius:50%;background:var(--paper)}
.ticket::before{left:-9px}.ticket::after{right:-9px}
.ticket__vol{font-family:var(--ff-num);font-weight:700;letter-spacing:.18em;font-size:.95rem;color:var(--green)}
.ticket__date{display:flex;align-items:baseline;gap:6px;font-family:var(--ff-num);font-weight:700;font-size:82px;line-height:.95;letter-spacing:.01em}
.ticket__date b{font-weight:700}
.ticket__date i{font-style:normal;margin-left:6px;font-size:1.5rem;letter-spacing:.14em;color:var(--green)}
.ticket__name{margin-top:8px;padding-top:14px;border-top:2px dashed rgba(16,40,74,.25);font-weight:900;font-size:1.35rem;line-height:1.3}
.ticket__name small{display:block;font-weight:500;font-size:.68rem;letter-spacing:.06em;color:var(--muted);margin-top:2px}
.ticket__meta{font-size:.78rem;color:var(--muted);line-height:1.6;margin-top:4px}
.ticket__go{margin-top:10px;font-weight:700;font-size:.92rem;color:var(--green)}

/* セクション共通 */
.section{padding:clamp(72px,10vw,128px) 0}
.h2{font-size:clamp(30px,4.4vw,46px);font-weight:900;letter-spacing:.02em;margin-bottom:.9em}
.h2--light{color:#fff}
.h3{font-size:1.25rem;font-weight:900;margin-bottom:1.2em}
.textlink{display:inline-block;font-weight:700;color:var(--green);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px}
.textlink span{display:inline-block;margin-left:8px;transition:transform .2s}
.textlink:hover span{transform:translateX(5px)}
.textlink--light{color:var(--mustard)}

/* 私たちについて */
.about{background:var(--paper);padding-top:clamp(110px,13vw,168px)}
.about__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,80px);align-items:center}
.about__text p{color:#2b3546}
.about__photo{margin:0}
.about__photo img{width:100%;aspect-ratio:1/.92;object-fit:cover;border-radius:4px;box-shadow:18px 18px 0 var(--green-soft)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(56px,8vw,96px);border-top:1px solid rgba(16,40,74,.2)}
.stats li{position:relative;padding:34px 12px 8px;display:flex;flex-direction:column;gap:10px}
.stats li::before{content:"";position:absolute;top:-2px;left:0;width:44px;height:3px;background:var(--green)}
.stats li+li::before{left:26px}
.stats b{font-family:var(--ff-num);font-weight:700;font-size:clamp(44px,5.4vw,72px);line-height:1;color:var(--navy);letter-spacing:.01em;white-space:nowrap}
.stats b small{font-family:var(--ff);font-size:.3em;font-weight:700;margin-left:.3em;letter-spacing:.04em}
.stats b i{font-family:var(--ff);font-style:normal;font-size:.3em;font-weight:700;margin-right:.3em;letter-spacing:.04em}
.stats span{font-size:.92rem;color:var(--ink);font-weight:700;letter-spacing:.06em}
.stats li+li{border-left:1px solid rgba(16,40,74,.14);padding-left:26px}

/* 活動・事業 */
.activities{background:#fff}
.act__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);margin-top:40px}
.act{border-top:4px solid var(--navy);padding-top:22px}
.act__no{display:block;font-family:var(--ff-num);font-weight:700;font-size:64px;line-height:1;color:var(--green);margin-bottom:10px}
.act h3{font-size:1.28rem;font-weight:900;margin-bottom:.7em}
.act p{color:var(--muted);font-size:.96rem}

/* ギャラリー */
.gallery{background:var(--paper)}
.gallery .head-row{margin-bottom:36px}
.gallery__note{max-width:22em;margin:0;color:var(--muted);font-size:.95rem}
.gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(130px,16vw,230px);gap:10px}
.g{margin:0;overflow:hidden;background:#d9d4c6}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.g:hover img{transform:scale(1.05)}
.g--big{grid-column:span 2;grid-row:span 2}
.g--big img{object-position:50% 92%}
.g--wide{grid-column:span 2}

/* イベント */
.events{background:var(--navy);color:#fff}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:44px}
.head-row .h2{margin-bottom:0}
.ev__grid{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:auto auto;gap:24px}
.ev{color:#fff;text-decoration:none}
.ev--main{grid-row:span 2;display:grid;grid-template-columns:clamp(240px,25vw,340px) minmax(0,1fr);background:var(--navy-2);border:1px solid rgba(255,255,255,.14);overflow:hidden;transition:transform .25s,border-color .25s}
.ev--main:hover{transform:translateY(-4px);border-color:var(--mustard)}
.ev--main img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:top center}
.ev__body{padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.ev h3{font-size:1.6rem;font-weight:900;margin-top:8px}
.ev p{margin:0;color:rgba(255,255,255,.82);font-size:.95rem}
.ev--main .ev__body{padding:28px 22px}
.ev__date{font-family:var(--ff-num)!important;font-weight:700;font-size:2.3rem!important;letter-spacing:.04em;line-height:1.1;color:#fff!important}
.ev__date small{font-family:var(--ff);font-size:.85rem;font-weight:500;letter-spacing:.08em;margin-left:6px;opacity:.8}
.ev--main .textlink{margin-top:14px}
.ev--sub{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.04)}
.ev--sub .ev__body{height:100%}
.ev__past{margin-top:auto!important;padding-top:12px;width:100%;border-top:1px dashed rgba(255,255,255,.28);font-size:.82rem!important;opacity:.75}
.badge{display:inline-block;background:var(--mustard);color:var(--navy);font-weight:700;font-size:.74rem;letter-spacing:.06em;padding:3px 12px;border-radius:99px}
.badge--line{background:transparent;color:var(--mustard);border:1px solid var(--mustard)}

/* ニュース */
.news{background:var(--paper)}
.news__grid{display:grid;grid-template-columns:280px 1fr;gap:clamp(24px,5vw,72px)}
.news__list li{display:grid;grid-template-columns:110px 72px 1fr;gap:6px 16px;align-items:baseline;padding:20px 0;border-bottom:1px solid rgba(16,40,74,.15)}
.news__list li:first-child{border-top:1px solid rgba(16,40,74,.15)}
.news__list time{font-family:var(--ff-num);font-weight:600;font-size:1.15rem;letter-spacing:.04em;color:var(--navy)}
.tag{display:inline-block;text-align:center;font-size:.72rem;font-weight:700;padding:2px 0;border:1px solid var(--navy);color:var(--navy);border-radius:2px}
.tag--recruit{background:var(--green);border-color:var(--green);color:#fff}
.news__list a{text-decoration:none;font-weight:500;line-height:1.7}
.news__list a:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}

/* 会員・支援 */
.join{background:#e9f2eb}
.join__lead{max-width:36em;color:#2b3546;margin-bottom:40px}
.join__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,36px)}
.join__card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:clamp(28px,4vw,48px);text-decoration:none;border-radius:6px;transition:transform .25s,box-shadow .25s}
.join__card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(16,40,74,.22)}
.join__card--a{background:var(--navy);color:#fff}
.join__card--b{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.join__label{font-weight:700;font-size:.8rem;letter-spacing:.14em;padding:3px 12px;border-radius:99px;background:var(--mustard);color:var(--navy)}
.join__card--b .join__label{background:var(--navy);color:#fff}
.join__card h3{font-size:1.6rem;font-weight:900;margin-top:6px}
.join__card p{margin:0}
.join__card--a p{color:rgba(255,255,255,.85)}
.join__card--b p{color:var(--muted)}
.join__price{margin:14px 0 18px!important;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-weight:700}
.join__price b{font-family:var(--ff-num);font-size:64px;line-height:1;font-weight:700}
.join__price small{font-size:.82rem;font-weight:500;opacity:.8}
.join__card .btn{margin-top:auto}

/* 支えてくださる団体 */
.partners{background:var(--paper);padding:clamp(56px,7vw,88px) 0}
.partners__cols{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.partners__h{font-size:.85rem;font-weight:700;letter-spacing:.14em;color:var(--green);margin-bottom:10px;padding-bottom:10px;border-bottom:2px solid var(--navy)}
.partners li{padding:5px 0;font-weight:500}
.partners a{text-underline-offset:4px}
.partners a:hover{color:var(--green)}

/* フッター */
.site-footer{background:var(--navy-2);color:#fff;padding-top:64px}
.footer__grid{display:grid;grid-template-columns:1.3fr 1.1fr auto;gap:40px;align-items:start}
.footer__brand{display:flex;align-items:center;gap:14px;margin-bottom:18px;font-size:1.1rem;line-height:1.35}
.footer__brand img{background:#fff;border-radius:6px;padding:4px}
.site-footer address{font-style:normal;font-size:.86rem;line-height:1.9;color:rgba(255,255,255,.82)}
.site-footer address a{color:#fff}
.footer__nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.footer__nav a{padding:6px 0;text-decoration:none;font-size:.92rem;color:rgba(255,255,255,.9)}
.footer__nav a:hover{color:var(--mustard)}
.sns{display:flex;gap:12px}
.sns a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--navy);transition:transform .2s,background .2s}
.sns a:hover{transform:translateY(-3px);background:var(--mustard)}
.sns svg{width:22px;height:22px;fill:currentColor}
.copy{margin:56px 0 0;padding:20px 24px;border-top:1px solid rgba(255,255,255,.14);text-align:center;font-size:.78rem;color:rgba(255,255,255,.65)}

/* スクロール表示（JS無効時は常時表示） */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  *{transition:none!important}
}

/* タブレット */
@media (max-width:980px){
  .about__grid,.news__grid,.join__grid,.partners__cols{grid-template-columns:1fr}
  .act__grid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stats li:nth-child(3){border-left:0;padding-left:12px}
  .stats li:nth-child(n+3){border-top:1px solid rgba(16,40,74,.14)}
  .ev__grid{grid-template-columns:1fr}
  .ev--main{grid-row:auto;grid-template-columns:clamp(220px,38vw,340px) minmax(0,1fr)}
  .ev--main img{height:auto;aspect-ratio:210/297}
  .footer__grid{grid-template-columns:1fr;gap:28px}
}

/* スマートフォン */
@media (max-width:860px){
  .menu-btn{display:block}
  .gnav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;border-bottom:1px solid rgba(16,40,74,.12);max-height:0;overflow:hidden;visibility:hidden;transition:max-height .3s,visibility .3s}
  .gnav.is-open{max-height:480px;visibility:visible;padding:8px 0 16px}
  .gnav a{padding:14px 24px;font-size:1rem}
  .gnav a::after{display:none}
}
@media (max-width:640px){
  .pc{display:none}
  .hero{min-height:0;background:var(--paper)}
  .hero__inner{padding:84px 20px 64px}
  .hero__img,.hero__video,.hero__shade,.hero__mosaic{bottom:auto;height:calc(100% - 184px)}
  .hero__img,.hero__video{object-position:50% 100%}
  .ev h3{font-size:1.35rem}
  .ticket{position:relative;right:auto;bottom:auto;grid-row:2;margin:0 20px -56px;width:auto;justify-self:stretch}
  .ticket::before,.ticket::after{top:92px}
  .ticket__date{font-size:72px}
  .wrap{padding:0 20px}
  .ev--main{grid-template-columns:1fr}
  .ev--main img{width:100%;height:auto;aspect-ratio:210/297;max-height:none}
  .gallery__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;gap:8px}
  .g--big{grid-column:span 2;grid-row:span 2}
  .g--wide{grid-column:span 2}
  .news__list li{grid-template-columns:auto 1fr}
  .news__list li a{grid-column:1/-1}
  .footer__nav{grid-template-columns:1fr 1fr}
  .site-header{padding:8px 16px}
  .brand__text{font-size:1.02rem}
  .notice{font-size:.82rem}
}

/* ===== 下層ページ共通 ===== */
.crumbs{font-size:.82rem;color:rgba(255,255,255,.75);margin:0 0 22px}
.crumbs a{color:inherit;text-underline-offset:3px}
.crumbs span{margin:0 8px;opacity:.6}
.pg-head{background:var(--navy);color:#fff;padding:clamp(44px,6vw,80px) 0 clamp(56px,7vw,96px)}
.pg-head__grid{display:grid;grid-template-columns:1fr minmax(240px,340px);gap:clamp(28px,5vw,72px);align-items:center}
.pg-head h1{font-size:clamp(40px,7vw,84px);font-weight:900;line-height:1.1;letter-spacing:.01em}
.pg-head__en{margin:10px 0 0;font-family:var(--ff-num);font-weight:600;font-size:clamp(1rem,2vw,1.35rem);letter-spacing:.14em;color:var(--mustard)}
.pg-head__date{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;margin:28px 0 8px;font-family:var(--ff-num);font-weight:700;font-size:clamp(46px,7vw,84px);line-height:1;letter-spacing:.02em}
.pg-head__date small{font-family:var(--ff);font-weight:500;font-size:clamp(.9rem,1.6vw,1.1rem);letter-spacing:.06em;opacity:.85}
.pg-head__flyer{margin:0}
.pg-head__flyer img{width:100%;height:auto;border-radius:3px;box-shadow:0 26px 60px rgba(0,0,0,.45),0 0 0 6px rgba(255,255,255,.06);transform:rotate(1.4deg)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chip{display:inline-block;padding:4px 14px;border:1px solid rgba(255,255,255,.5);border-radius:99px;font-size:.84rem;font-weight:500}
.chip--hot{background:var(--mustard);border-color:var(--mustard);color:var(--navy);font-weight:700}

.anchor-nav{position:sticky;top:64px;z-index:40;background:#fff;border-bottom:1px solid rgba(16,40,74,.12)}
.anchor-nav .wrap{display:flex;gap:4px;overflow-x:auto;padding-top:0;padding-bottom:0}
.anchor-nav a{flex:none;padding:14px 16px;text-decoration:none;font-weight:700;font-size:.9rem;color:var(--navy);border-bottom:3px solid transparent}
.anchor-nav a:hover{border-bottom-color:var(--green)}

.pg-sec{padding:clamp(56px,8vw,104px) 0}
.pg-sec--paper{background:var(--paper)}
.pg-sec--green{background:#e9f2eb}
.pg-lead{max-width:40em;color:#2b3546}
.facts{display:grid;grid-template-columns:150px 1fr;margin:0;border-top:2px solid var(--navy)}
.facts dt,.facts dd{margin:0;padding:18px 0;border-bottom:1px solid rgba(16,40,74,.15)}
.facts dt{font-weight:700;color:var(--green);font-size:.9rem;letter-spacing:.08em}
.facts dd{font-weight:500}
.facts dd small{display:block;color:var(--muted);font-weight:400}
.facts a{color:var(--navy);text-underline-offset:3px}

.apply{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,36px);margin-top:36px}
.card{display:flex;flex-direction:column;gap:10px;padding:clamp(26px,3.6vw,44px);background:#fff;border:2px solid var(--navy);border-radius:6px}
.card--navy{background:var(--navy);color:#fff}
.card__label{align-self:flex-start;background:var(--mustard);color:var(--navy);font-weight:700;font-size:.78rem;letter-spacing:.12em;padding:3px 12px;border-radius:99px}
.card h3{font-size:1.5rem;font-weight:900}
.card__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:6px 0}
.card__price b{font-family:var(--ff-num);font-size:60px;line-height:1;font-weight:700}
.card__price small{font-size:.85rem;font-weight:500;opacity:.85}
.card p{margin:0;font-size:.95rem}
.card ul{margin:4px 0 8px;padding:0;list-style:none}
.card li{position:relative;padding:5px 0 5px 1.2em;font-size:.93rem}
.card li::before{content:"";position:absolute;left:0;top:.95em;width:.5em;height:2px;background:var(--green)}
.card--navy li::before{background:var(--mustard)}
.deadline{display:inline-block;padding:6px 14px;background:rgba(245,196,0,.16);border-left:4px solid var(--mustard);font-weight:700;font-size:.92rem}
.card:not(.card--navy) .deadline{background:#fff6cc}
.card--navy .deadline{background:var(--mustard);color:var(--navy);border-left-color:#fff}
.card .btn{margin-top:auto;align-self:stretch}
.linkrow{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.linkrow a{display:flex;justify-content:space-between;gap:12px;padding:12px 4px;border-bottom:1px solid rgba(16,40,74,.18);text-decoration:none;font-weight:700;font-size:.93rem;color:inherit}
.card--navy .linkrow a{border-bottom-color:rgba(255,255,255,.25)}
.linkrow a::after{content:"→";color:var(--green);transition:transform .2s}
.card--navy .linkrow a::after{color:var(--mustard)}
.linkrow a:hover::after{transform:translateX(5px)}
.btn--navy{background:var(--navy);color:#fff}
.notice-box{margin-top:28px;padding:22px 26px;background:#fff;border:1px solid rgba(16,40,74,.18);border-left:6px solid var(--green);border-radius:4px}
.notice-box h3{font-size:1.15rem;font-weight:900;margin-bottom:8px}
.notice-box p{margin:0 0 .6em;font-size:.95rem;color:#2b3546}
.contact-band{background:var(--navy);color:#fff;text-align:center;padding:clamp(48px,6vw,72px) 0}
.contact-band p{margin:0 auto 22px;max-width:34em;color:rgba(255,255,255,.85)}
.contact-band .btn--primary{margin:0 6px 10px}

@media (max-width:860px){
  .pg-head__grid{grid-template-columns:1fr}
  .pg-head__flyer{max-width:300px}
  .anchor-nav{top:0;position:sticky}
  .apply{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr}
  .facts dt{padding:16px 0 0;border-bottom:0}
  .facts dd{padding:4px 0 16px}
}

/* ===== ヘッダーのドロップダウン ===== */
.gnav__group{position:relative;display:flex}
.gnav__parent::before{content:"";position:absolute;right:2px;top:50%;width:0;height:0;margin-top:-2px;border:4px solid transparent;border-top-color:currentColor;opacity:.55}
.gnav__group>.gnav__parent{padding-right:22px}
.gnav__sub{position:absolute;left:0;top:100%;min-width:200px;padding:8px 0;background:#fff;border:1px solid rgba(16,40,74,.14);border-radius:4px;box-shadow:0 14px 34px rgba(11,28,54,.16);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}
.gnav__sub a{display:block;padding:10px 18px;font-size:.92rem;white-space:nowrap}
.gnav__sub a::after{display:none}
.gnav__sub a:hover{background:var(--paper)}
.gnav__group:hover .gnav__sub,.gnav__group:focus-within .gnav__sub{opacity:1;visibility:visible;transform:none}

/* ===== 下層ページ（見出し帯・本文） ===== */
.pg-head--plain{padding:clamp(40px,5vw,64px) 0 clamp(44px,6vw,72px)}
.pg-head--plain .pg-head__grid{grid-template-columns:1fr}
.pg-head--plain h1{font-size:clamp(34px,5.4vw,60px)}
.pg-head__lead{max-width:40em;margin:18px 0 0;color:rgba(255,255,255,.88)}
.article{max-width:860px}
.article h2{font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:900;margin:2.4em 0 .8em;padding-left:14px;border-left:6px solid var(--green)}
.article h2:first-child,.article>.notice-box+h2{margin-top:1.2em}
.article h2.doc{margin-top:3.4em;padding:14px 18px;background:var(--navy);color:#fff;border-left:6px solid var(--mustard)}
.article h2.doc:first-child{margin-top:0}
.article h3{font-size:1.08rem;font-weight:700;margin:1.8em 0 .5em;color:var(--navy)}
.article p{margin:0 0 1.1em}
.article ul{margin:0 0 1.2em;padding-left:1.3em;list-style:disc}
.article li{margin:.35em 0}
.article .ul-num{list-style:none;padding-left:0;counter-reset:n}
.article .ul-num li{counter-increment:n;position:relative;padding-left:2.2em}
.article .ul-num li::before{content:counter(n);position:absolute;left:0;top:.15em;width:1.6em;height:1.6em;border-radius:50%;background:var(--green);color:#fff;font-weight:700;font-size:.85em;display:grid;place-items:center}
.article .sign{margin-top:2.2em;color:var(--muted)}
.article a:not(.btn):not(.textlink){color:var(--green);text-underline-offset:3px}
.facts--tight{margin:14px 0 22px}
.facts--tight dt,.facts--tight dd{padding:10px 0}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.btn--navy{background:var(--navy);color:#fff}
.notice-box--top{margin-top:0}
.badge--dark{background:var(--navy);color:#fff}

/* イベント一覧 */
.evlist{display:grid;gap:28px}
.evrow{display:grid;gap:clamp(20px,3vw,40px);padding:clamp(24px,3.4vw,40px);border:2px solid var(--navy);border-radius:6px;background:#fff}
.evrow--main{grid-template-columns:minmax(200px,300px) 1fr;background:var(--paper)}
.evrow__img img{width:100%;height:auto;border-radius:3px;box-shadow:0 14px 34px rgba(11,28,54,.25)}
.evrow h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:900;margin:8px 0 12px}
.evrow p{color:#2b3546}

/* 賛助会員の特典区分 */
.tiers{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:0 0 1.4em}
.tier{padding:20px 22px;border:2px solid var(--navy);border-radius:6px;background:#fff}
.tier:nth-child(4){background:var(--navy);color:#fff}
.tier h3{margin:0 0 .6em;font-size:1.05rem;color:inherit;display:flex;flex-direction:column}
.tier h3 small{font-family:var(--ff-num);font-size:1.1rem;font-weight:700;color:var(--green);letter-spacing:.04em;line-height:1.2}
.tier:nth-child(4) h3 small{color:var(--mustard)}
.tier ul{margin:0;padding-left:1.2em}

/* お問い合わせフォーム */
.formframe{margin:1em 0}
.formframe iframe{display:block;width:100%;height:1150px;border:1px solid rgba(16,40,74,.18);border-radius:4px;background:#fff}
.formframe__note{font-size:.9rem;color:var(--muted)}

/* ニュース一覧ページ */
.news__list--page li{grid-template-columns:110px 72px 1fr}
.news__text a{color:var(--green);text-underline-offset:3px}

@media (max-width:860px){
  .gnav__group{display:block}
  .gnav__parent::before{display:none}
  .gnav__group>.gnav__parent{padding-right:24px}
  .gnav__sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 4px}
  .gnav__sub a{padding:10px 24px 10px 44px;font-size:.92rem;color:var(--muted)}
  .evrow--main{grid-template-columns:1fr}
  .evrow__img{max-width:280px}
  .tiers{grid-template-columns:1fr}
  .formframe iframe{height:1300px}
  .news__list--page li{grid-template-columns:auto 1fr}
  .news__list--page li .news__text{grid-column:1/-1}
}
.note-small{font-size:.88rem;color:var(--muted);line-height:1.8;padding:12px 16px;background:var(--paper);border-left:3px solid var(--green);border-radius:2px}
.nb{white-space:nowrap}
@media (max-width:520px){.nb{white-space:normal}}
.article .facts{margin-bottom:1.8em}

/* よくあるご質問（開閉式） */
.faq-group{margin-top:2em}
.faq{border-top:1px solid rgba(16,40,74,.18)}
.faq details{border-bottom:1px solid rgba(16,40,74,.18);transition:background-color .3s}
.faq details[open]{background:var(--paper)}
.faq summary{position:relative;cursor:pointer;list-style:none;padding:16px 52px 16px 52px;font-weight:700;color:var(--navy);line-height:1.6;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";position:absolute;left:10px;top:15px;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:1.05rem;line-height:28px;text-align:center}
.faq summary::after{content:"";position:absolute;right:14px;top:50%;width:10px;height:10px;margin-top:-8px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq details[open] summary{color:var(--green)}
.faq summary:hover{color:var(--green)}
.faq details p{position:relative;margin:0;padding:2px 52px 22px 52px;font-size:.95rem;font-weight:400;color:var(--ink);line-height:1.9}
.faq details p::before{content:"A";position:absolute;left:10px;top:2px;width:28px;height:28px;border-radius:50%;background:var(--mustard);color:var(--navy);font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:1.05rem;line-height:28px;text-align:center}
@media (max-width:520px){.faq summary,.faq details p{padding-right:40px}.faq summary::after{right:10px}}
.contact-band__faq{color:inherit;font-weight:700;text-underline-offset:3px}
.faq details p+p{padding-top:0;margin-top:-10px}
.faq details p+p::before{display:none}
.card .card__note{margin-top:4px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.35);font-size:.9rem;line-height:1.8}
.card:not(.card--navy) .card__note{border-top-color:rgba(16,40,74,.25)}
.tier__plus{margin:0 0 .3em;font-size:.82rem;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.tier:nth-child(4) .tier__plus{color:rgba(255,255,255,.75)}
.tier .tier__for{margin:.9em 0 0;padding-top:.7em;border-top:1px dashed rgba(16,40,74,.25);font-size:.85rem;line-height:1.7;color:var(--muted)}
.tier:nth-child(4) .tier__for{border-top-color:rgba(255,255,255,.35);color:rgba(255,255,255,.85)}
.tier-notes{margin:0 0 1.6em;padding-left:1.2em;list-style:disc;font-size:.92rem;color:var(--muted)}
.tier-notes li{margin:.2em 0}
.dl-box{margin:1.6em 0;padding:22px 26px;background:var(--paper);border-left:6px solid var(--mustard);border-radius:2px}
.dl-box h3{margin:0 0 .4em;font-size:1.05rem;color:var(--navy)}
.dl-box p{margin:0 0 1em}
