@charset "UTF-8";

/* =========================================================
   おかやまWOMAN起業イベント2026 - LP stylesheet
   Palette は公式チラシから抽出
   ========================================================= */

:root{
  /* Brand */
  --rose:        #e17182;
  --rose-deep:   #cc5a70;
  --rose-dark:   #a83c53;
  --rose-soft:   #ea929e;
  --rose-pale:   #efb5bd;
  --green:       #2d9273;
  --green-deep:  #227a5f;
  --green-pale:  #77ad9d;

  /* Surfaces */
  --pink-50:  #fdf8f9;
  --pink-100: #f8ecef;
  --pink-200: #f0d8de;
  --pink-300: #ebd2d8;
  --white:    #ffffff;

  /* Ink */
  --ink:      #2a1f24;
  --ink-2:    #5f4f56;
  --ink-3:    #8b7a81;
  --line:     rgba(42,31,36,.12);

  /* Type */
  --ff-jp: "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, system-ui, sans-serif;
  --ff-en: "Outfit", "Zen Kaku Gothic New", system-ui, sans-serif;

  /* Layout */
  --header-h: 76px;
  --radius: 20px;
  --radius-lg: 32px;
  --shadow-sm: 0 4px 18px rgba(168,60,83,.07);
  --shadow:    0 18px 50px rgba(168,60,83,.12);
  --shadow-lg: 0 30px 80px rgba(168,60,83,.18);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; }
body{
  margin:0;
  font-family:var(--ff-jp);
  font-weight:500;
  color:var(--ink);
  background:var(--pink-50);
  line-height:1.9;
  letter-spacing:.02em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol,dl,dd{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p,figure,blockquote{ margin:0; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
:focus-visible{ outline:3px solid var(--green); outline-offset:3px; border-radius:4px; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink); color:#fff; padding:.8em 1.4em;
}
.skip-link:focus{ left:0; }

/* ---------- Layout helpers ---------- */
.container{ width:min(1180px, 100% - 2 * clamp(20px,5vw,56px)); margin-inline:auto; }
.container--narrow{ width:min(840px, 100% - 2 * clamp(20px,5vw,56px)); }
.br-sp{ display:none; }
@media (max-width:640px){ .br-sp{ display:inline; } }

.section{ position:relative; padding:clamp(72px,10vw,140px) 0; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.10s; }
.reveal[data-delay="2"]{ transition-delay:.20s; }

/* =========================================================
   Buttons
   ========================================================= */
.btn{
  --btn-bg: var(--rose);
  --btn-fg: #fff;
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:1em 2.2em;
  border-radius:999px;
  background:var(--btn-bg); color:var(--btn-fg);
  font-weight:700; font-size:1rem; line-height:1.4; letter-spacing:.06em;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background-color .3s, color .3s;
  will-change:transform;
}
.btn::after{
  content:""; width:.5em; height:.5em; margin-left:.1em;
  border-top:2px solid currentColor; border-right:2px solid currentColor;
  transform:rotate(45deg); transition:transform .35s var(--ease);
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(204,90,112,.32); }
.btn:hover::after{ transform:rotate(45deg) translate(3px,-3px); }
.btn:active{ transform:translateY(-1px); }

.btn--primary{ --btn-bg:var(--rose); box-shadow:0 8px 22px rgba(204,90,112,.26); }
.btn--primary:hover{ --btn-bg:var(--rose-deep); }
.btn--ghost{
  --btn-bg:transparent; --btn-fg:var(--rose-dark);
  box-shadow:inset 0 0 0 2px var(--rose-pale);
}
.btn--ghost:hover{ --btn-bg:var(--rose-dark); --btn-fg:#fff; box-shadow:inset 0 0 0 2px var(--rose-dark), 0 14px 30px rgba(168,60,83,.22); }
.btn--white{ --btn-bg:#fff; --btn-fg:var(--rose-dark); }
.btn--white:hover{ --btn-bg:var(--ink); --btn-fg:#fff; }
.btn--lg{ padding:1.15em 2.6em; font-size:1.05rem; }
.btn--sm{ padding:.7em 1.4em; font-size:.85rem; }
.btn--block{ display:flex; width:100%; }

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--header-h);
  transition:background-color .4s var(--ease), box-shadow .4s var(--ease), height .4s var(--ease);
}
.site-header.is-stuck{
  height:64px;
  background:rgba(253,248,249,.86);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line), 0 10px 30px rgba(168,60,83,.06);
}
/* backdrop-filter が効いている要素は、その子孫の position:fixed の基準
   （包含ブロック）になってしまう。ヘッダーにぼかしが乗ったままだと、
   中にあるモバイルメニュー（.gnav / position:fixed; inset:0）が
   画面全体ではなくヘッダーの高さ 64px に閉じ込められる。
   モバイルメニューを使う 1000px 以下では、ぼかしの代わりに
   不透明度を上げた背景色でヘッダーを表現する。 */
@media (max-width:1000px){
  .site-header.is-stuck{
    background:rgba(253,248,249,.96);
    backdrop-filter:none; -webkit-backdrop-filter:none;
  }
}
.site-header__inner{
  height:100%;
  width:min(1400px, 100% - 2 * clamp(18px,4vw,40px)); margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}

.brand{ display:flex; align-items:center; gap:10px; }
.brand__mark{ width:26px; height:auto; }
.brand__text{ display:flex; flex-direction:column; line-height:1; }
.brand__sub{ font-size:.62rem; letter-spacing:.24em; color:var(--rose); font-weight:700; }
.brand__main{ font-family:var(--ff-en); font-size:1.02rem; font-weight:800; letter-spacing:.04em; color:var(--ink); }
.brand__main em{ font-family:var(--ff-jp); font-style:normal; font-size:.86em; font-weight:900; }
.brand__year{
  font-family:var(--ff-en); font-size:.72rem; font-weight:800; letter-spacing:.1em;
  color:#fff; background:var(--rose); border-radius:999px; padding:.25em .7em;
}

@media (max-width:520px){
  .brand{ gap:8px; }
  .brand__mark{ width:22px; }
  .brand__main{ font-size:.92rem; }
  .brand__main em{ display:none; }
  .brand__sub{ font-size:.56rem; letter-spacing:.2em; }
  .brand__year{ font-size:.62rem; padding:.24em .6em; }
}

.gnav{ display:flex; align-items:center; gap:clamp(16px,2.2vw,34px); }
.gnav__list{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); }
.gnav__list a{
  position:relative; display:flex; align-items:baseline; gap:.5em;
  font-family:var(--ff-en); font-size:.86rem; font-weight:700; letter-spacing:.1em;
  padding:.4em 0; color:var(--ink);
  transition:color .3s;
}
.gnav__num{ font-size:.62rem; font-weight:800; color:var(--rose); letter-spacing:.06em; }
.gnav__list a::before{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:2px;
  background:var(--rose); transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease);
}
.gnav__list a:hover::before,
.gnav__list a.is-active::before{ transform:scaleX(1); transform-origin:left; }
.gnav__list a.is-active{ color:var(--rose-dark); }

.navtoggle{ display:none; align-items:center; gap:.6em; z-index:110; }
.navtoggle__bars{ position:relative; display:block; width:26px; height:14px; }
.navtoggle__bars i{
  position:absolute; left:0; width:100%; height:2px; border-radius:2px; background:var(--ink);
  transition:transform .4s var(--ease), opacity .3s;
}
.navtoggle__bars i:nth-child(1){ top:0; }
.navtoggle__bars i:nth-child(2){ top:6px; }
.navtoggle__bars i:nth-child(3){ top:12px; }
.navtoggle__label{ font-family:var(--ff-en); font-size:.68rem; font-weight:800; letter-spacing:.16em; }
.is-navopen .navtoggle__bars i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.is-navopen .navtoggle__bars i:nth-child(2){ opacity:0; }
.is-navopen .navtoggle__bars i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width:1000px){
  .navtoggle{ display:flex; }
  .gnav{
    position:fixed; inset:0; z-index:105;
    height:100%; min-height:100svh;
    flex-direction:column; justify-content:center; gap:36px;
    /* 画面が低いとき（横向きなど）でも先頭が隠れないように */
    justify-content:safe center;
    padding:calc(var(--header-h) + 20px) 20px 36px;
    overflow-y:auto; overscroll-behavior:contain;
    background:linear-gradient(160deg,#fff 0%, var(--pink-100) 60%, var(--pink-200) 100%);
    opacity:0; visibility:hidden; transform:translateY(-12px);
    transition:opacity .4s var(--ease), transform .5s var(--ease), visibility .4s;
  }
  .gnav > *{ flex:none; }
  .is-navopen .gnav{ opacity:1; visibility:visible; transform:none; background-color: fff; }
  .gnav__list{ flex-direction:column; gap:22px; }
  .gnav__list a{ font-size:1.15rem; flex-direction:column; align-items:center; gap:.2em; }
  .gnav__num{ font-size:.66rem; }
}

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  padding:calc(var(--header-h) + 40px) 0 90px;
  background:
    radial-gradient(120% 90% at 90% 0%,  #ffffff 0%, rgba(255,255,255,0) 55%),
    radial-gradient(90% 70% at 8% 100%,  var(--pink-300) 0%, rgba(235,210,216,0) 60%),
    linear-gradient(165deg, #ffffff 0%, var(--pink-100) 45%, var(--pink-300) 100%);
  overflow:hidden;
}
.hero__bubbles{ position:absolute; inset:0; pointer-events:none; }
.bubble{
  position:absolute; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, rgba(255,255,255,.95), rgba(239,181,189,.55) 55%, rgba(225,113,130,.28) 100%);
  filter:blur(.4px);
  animation:float 12s ease-in-out infinite;
}
.bubble--1{ width:clamp(120px,16vw,260px); aspect-ratio:1; top:-4%;  left:6%;  opacity:.6; }
.bubble--2{ width:clamp(90px,11vw,180px);  aspect-ratio:1; top:12%; right:12%; opacity:.5; animation-delay:-3s; }
.bubble--3{ width:clamp(200px,26vw,420px); aspect-ratio:1; bottom:-14%; right:-6%; opacity:.45; animation-delay:-6s; }
.bubble--4{ width:clamp(60px,7vw,110px);   aspect-ratio:1; bottom:22%; left:3%;  opacity:.55; animation-delay:-2s; }
.bubble--5{ width:clamp(40px,5vw,80px);    aspect-ratio:1; top:44%; left:46%; opacity:.4;  animation-delay:-8s; }
@keyframes float{
  0%,100%{ transform:translate3d(0,0,0) scale(1); }
  50%    { transform:translate3d(0,-22px,0) scale(1.04); }
}

.hero__inner{ position:relative; z-index:2; }

.hero__eyebrow{
  display:inline-flex; align-items:center; gap:.8em;
  font-size:.78rem; font-weight:700; letter-spacing:.14em; color:var(--green-deep);
  background:rgba(255,255,255,.72); border:1px solid rgba(45,146,115,.28);
  border-radius:999px; padding:.5em 1.3em; margin-bottom:clamp(20px,3vw,30px);
  animation:fadeUp .9s var(--ease) both;
}
@keyframes fadeUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:none; } }

.hero__title{ display:block; line-height:1; margin-bottom:clamp(24px,3.4vw,38px); }
.hero__title > *{ display:block; animation:fadeUp 1s var(--ease) both; }
.hero__title-sub{
  font-size:clamp(1.1rem,2.6vw,1.9rem); font-weight:900; color:var(--rose);
  letter-spacing:.3em; margin-bottom:.4em; animation-delay:.05s;
}
.hero__wordmark{
  display:flex !important; align-items:center; gap:.02em;
  font-family:var(--ff-en); font-weight:900; font-size:clamp(3.6rem,12vw,10rem);
  letter-spacing:-.01em; color:var(--rose); line-height:.86;
  animation-delay:.12s;
}
.hero__peach{
  width:clamp(2.6rem,9.2vw,7.7rem); height:auto; margin:0 .04em;
  transform:translateY(-.04em);
  animation:pop 1.1s var(--ease) both .35s;
}
@keyframes pop{ 0%{ opacity:0; transform:translateY(-.04em) scale(.4) rotate(-14deg);} 100%{ opacity:1; transform:translateY(-.04em) scale(1) rotate(0);} }
.hero__title-jp{
  font-size:clamp(2.2rem,7.6vw,6.2rem); font-weight:900; color:var(--rose);
  letter-spacing:.02em; margin-top:.06em; animation-delay:.2s;
}
.hero__title-branch{
  display:flex !important; align-items:center; flex-wrap:wrap; gap:.35em;
  font-size:clamp(1.05rem,2.9vw,2.15rem); font-weight:900; line-height:1.2;
  color:var(--rose-dark); letter-spacing:.04em; margin-top:.35em; animation-delay:.24s;
}
.hero__title-branch b{ font-weight:900; }
.hero__title-branch i{ font-style:normal; color:var(--rose-pale); font-family:var(--ff-en); font-weight:800; }
.hero__title-year{
  font-family:var(--ff-en); font-size:clamp(1.5rem,4.4vw,3.4rem); font-weight:800;
  color:var(--rose-soft); letter-spacing:.1em; margin-top:.15em; animation-delay:.28s;
}

.hero__lead{
  max-width:44em; font-size:clamp(.92rem,1.15vw,1.06rem); color:var(--ink-2);
  margin-bottom:clamp(24px,3vw,34px);
  animation:fadeUp 1s var(--ease) both .36s;
}
.hero__lead b{ color:var(--rose-dark); font-weight:900; }

.hero__facts{
  display:flex; flex-wrap:wrap; gap:10px; margin-bottom:clamp(26px,3.4vw,36px);
  animation:fadeUp 1s var(--ease) both .44s;
}
.hero__facts li{
  display:flex; align-items:center; gap:.7em;
  background:#fff; border-radius:999px; padding:.55em 1.3em;
  box-shadow:var(--shadow-sm);
}
.hero__facts-label{ font-size:.72rem; font-weight:700; color:var(--ink-3); letter-spacing:.1em; }
.hero__facts strong{ font-size:1.02rem; font-weight:900; color:var(--rose-dark); }

.hero__actions{
  display:flex; flex-wrap:wrap; gap:14px; margin-bottom:clamp(34px,4.4vw,52px);
  animation:fadeUp 1s var(--ease) both .52s;
}

/* 2トラック（イベント / プログラム）のショートカット */
.hero__tracks{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(12px,1.6vw,20px);
  max-width:820px;
  animation:fadeUp 1s var(--ease) both .6s;
}
.hero__track{
  --track: var(--rose);
  position:relative; display:block;
  background:rgba(255,255,255,.72); border:1px solid rgba(168,60,83,.16);
  border-radius:var(--radius); padding:clamp(16px,1.8vw,22px) clamp(18px,2vw,26px);
  box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), background-color .3s;
}
.hero__track--green{ --track: var(--green); border-color:rgba(45,146,115,.2); }
.hero__track::before{
  content:""; position:absolute; left:0; top:14%; bottom:14%; width:4px; border-radius:0 4px 4px 0;
  background:var(--track);
}
.hero__track:hover{ transform:translateY(-4px); background:#fff; box-shadow:var(--shadow); }
.hero__track-step{
  display:inline-block; font-family:var(--ff-en); font-size:.66rem; font-weight:800; letter-spacing:.18em;
  color:#fff; background:var(--track); border-radius:999px; padding:.3em .9em; margin-bottom:.7em;
}
.hero__track-name{ display:block; font-size:clamp(1.02rem,1.7vw,1.28rem); font-weight:900; color:var(--ink); line-height:1.4; }
.hero__track-meta{ display:block; font-size:.76rem; color:var(--ink-3); letter-spacing:.04em; margin-top:.15em; }
.hero__track-dates{
  display:flex; flex-wrap:wrap; gap:6px; margin-top:.85em;
  padding-top:.85em; border-top:1px dashed rgba(42,31,36,.14);
}
.hero__track-dates li{
  font-family:var(--ff-en); font-size:.92rem; font-weight:800; color:var(--ink);
  background:var(--pink-50); border-radius:8px; padding:.16em .6em; letter-spacing:.01em;
}
.hero__track--green .hero__track-dates li{ background:rgba(45,146,115,.09); }

@media (max-width:760px){
  .hero__tracks{ grid-template-columns:1fr; }
}

.hero__scroll{
  position:absolute; z-index:3; right:clamp(18px,4vw,44px); bottom:0;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--ff-en); font-size:.64rem; font-weight:800; letter-spacing:.24em; color:var(--rose-dark);
}
.hero__scroll span{ writing-mode:vertical-rl; }
.hero__scroll i{ position:relative; display:block; width:1px; height:72px; background:rgba(168,60,83,.25); overflow:hidden; }
.hero__scroll i::after{
  content:""; position:absolute; inset:0 auto auto 0; width:1px; height:34px; background:var(--rose);
  animation:scrolldot 2s var(--ease) infinite;
}
@keyframes scrolldot{ 0%{ transform:translateY(-100%);} 60%,100%{ transform:translateY(220%);} }

@media (max-width:640px){
  .hero__scroll{ display:none; }
  .hero__tracks{ max-width:none; }
}

/* =========================================================
   Marquee
   ========================================================= */
.marquee{
  overflow:hidden; background:var(--rose); color:#fff;
  padding:.9em 0; transform:rotate(-1.2deg) scale(1.04);
  margin:-24px 0 0;
  position:relative; z-index:5;
}
.marquee__track{ display:flex; width:max-content; animation:marquee 34s linear infinite; }
.marquee__track span{
  font-family:var(--ff-en); font-size:.92rem; font-weight:800; letter-spacing:.16em;
  white-space:nowrap; padding-right:2em;
}
.marquee__track i{ font-style:normal; padding:0 1.2em; color:rgba(255,255,255,.6); }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* =========================================================
   Section head
   ========================================================= */
.sec-head{ margin-bottom:clamp(40px,5.4vw,70px); max-width:56em; }
.sec-head--center{ margin-inline:auto; text-align:center; }
.sec-head__label{
  display:flex; align-items:center; gap:.8em;
  font-family:var(--ff-en); font-size:.82rem; font-weight:800; letter-spacing:.22em;
  color:var(--rose-dark); margin-bottom:16px;
}
.sec-head--center .sec-head__label{ justify-content:center; }
.sec-head__num{
  font-size:.72rem; color:#fff; background:var(--green);
  border-radius:999px; padding:.35em .8em; letter-spacing:.1em;
}
.sec-head__label--light{ color:rgba(255,255,255,.9); }
.sec-head__label--light .sec-head__num{ background:rgba(255,255,255,.22); }
.sec-head__title{
  font-size:clamp(1.7rem,4.4vw,3.1rem); font-weight:900; line-height:1.35; letter-spacing:.01em;
  margin-bottom:.6em;
}
.sec-head__title--light{ color:#fff; }
.sec-head__text{ font-size:clamp(.92rem,1.05vw,1.02rem); color:var(--ink-2); }
.sec-head__text--light{ color:rgba(255,255,255,.9); }

/* =========================================================
   About
   ========================================================= */
.section--about{ background:var(--white); }

/* 2ステップ（イベント → プログラム） */
.steps{
  display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:clamp(14px,2vw,26px); align-items:stretch;
  margin-bottom:clamp(48px,6vw,84px);
}
.steps__item{
  --step: var(--rose);
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  background:linear-gradient(170deg,var(--pink-50),#fff 72%);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(26px,3vw,40px) clamp(24px,2.4vw,34px);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.steps__item--green{ --step: var(--green); background:linear-gradient(170deg,rgba(45,146,115,.07),#fff 72%); }
.steps__item::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--step);
}
.steps__item:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.steps__label{
  display:inline-block; align-self:flex-start;
  font-family:var(--ff-en); font-size:.7rem; font-weight:800; letter-spacing:.2em;
  color:#fff; background:var(--step); border-radius:999px; padding:.35em 1em; margin-bottom:1em;
}
.steps__title{ font-size:clamp(1.15rem,1.9vw,1.45rem); font-weight:900; line-height:1.45; margin-bottom:.35em; }
.steps__meta{
  font-family:var(--ff-en); font-size:.84rem; font-weight:800; letter-spacing:.06em;
  color:var(--step); margin-bottom:1em;
}
.steps__text{ font-size:.92rem; color:var(--ink-2); margin-bottom:1.4em; }
.steps__link{
  margin-top:auto; align-self:flex-start;
  display:inline-flex; align-items:center; gap:.5em;
  font-size:.88rem; font-weight:900; color:var(--step);
  border-bottom:2px solid currentColor; padding-bottom:.15em;
  transition:gap .3s var(--ease);
}
.steps__link::after{
  content:""; width:.45em; height:.45em;
  border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);
}
.steps__link:hover{ gap:.9em; }

.steps__arrow{
  position:relative; align-self:center; width:44px; height:44px;
  border-radius:50%; background:var(--pink-100);
}
.steps__arrow::after{
  content:""; position:absolute; top:50%; left:46%; width:.6em; height:.6em;
  border-top:3px solid var(--rose-dark); border-right:3px solid var(--rose-dark);
  transform:translate(-50%,-50%) rotate(45deg);
}

@media (max-width:900px){
  .steps{ grid-template-columns:1fr; }
  .steps__arrow{ justify-self:center; transform:rotate(90deg); }
}

.features{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,28px);
  margin-bottom:clamp(48px,6vw,84px);
}
.feature{
  position:relative; overflow:hidden;
  padding:clamp(28px,3vw,40px) clamp(24px,2.4vw,34px);
  background:linear-gradient(170deg,var(--pink-50),#fff 70%);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.feature::before{
  content:""; position:absolute; inset:auto -40% -60% auto; width:200px; height:200px;
  border-radius:50%; background:radial-gradient(circle at 35% 30%, rgba(239,181,189,.5), rgba(239,181,189,0) 70%);
  transition:transform .7s var(--ease);
}
.feature:hover{ transform:translateY(-8px); box-shadow:var(--shadow); }
.feature:hover::before{ transform:scale(1.35); }
.feature__num{
  position:relative; display:block;
  font-family:var(--ff-en); font-size:2.6rem; font-weight:800; line-height:1;
  color:transparent; -webkit-text-stroke:1.5px var(--rose-pale);
  margin-bottom:.35em;
}
.feature__title{ position:relative; font-size:1.16rem; font-weight:900; margin-bottom:.6em; }
.feature__text{ position:relative; font-size:.92rem; color:var(--ink-2); }

.flow{
  background:var(--pink-50); border-radius:var(--radius-lg);
  padding:clamp(28px,3.4vw,48px); margin-bottom:clamp(32px,4vw,52px);
}
.flow__title{ font-size:1.2rem; font-weight:900; margin-bottom:1.2em; }
.flow__title small{ font-size:.72rem; font-weight:500; color:var(--ink-3); letter-spacing:.06em; }
.flow__list{ display:grid; gap:0; }
.flow__item{
  display:grid; grid-template-columns:110px 1fr; gap:clamp(14px,2vw,28px);
  padding:18px 0; border-top:1px dashed rgba(168,60,83,.22);
}
.flow__item:first-child{ border-top:0; }
.flow__time{
  font-family:var(--ff-en); font-size:1.15rem; font-weight:800; color:var(--rose-dark); letter-spacing:.02em;
}
.flow__body{ font-size:.94rem; color:var(--ink-2); }
.flow__body b{ display:block; color:var(--ink); font-weight:900; font-size:1rem; margin-bottom:.15em; }

.target{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
}
.target__head{
  width:100%; font-size:1rem; font-weight:900; color:var(--rose-dark); margin-bottom:.2em;
}
.target li:not(.target__head){
  display:flex; align-items:center; gap:.55em;
  font-size:.9rem; font-weight:700; color:var(--ink-2);
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:.5em 1.2em;
}
.target li:not(.target__head)::before{
  content:""; width:.5em; height:.5em; border-radius:50%; background:var(--green); flex:none;
}

@media (max-width:900px){
  .features{ grid-template-columns:1fr; }
  .flow__item{ grid-template-columns:80px 1fr; }
}

/* =========================================================
   Event
   ========================================================= */
.section--event{
  background:
    radial-gradient(80% 50% at 100% 0%, #fff 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg,var(--pink-100) 0%, var(--pink-50) 100%);
}
.days{ display:grid; gap:clamp(30px,4vw,56px); }

.day{
  position:relative;
  display:grid; grid-template-columns:minmax(0,360px) minmax(0,1fr);
  gap:clamp(24px,3.6vw,60px); align-items:center;
  background:#fff; border-radius:var(--radius-lg);
  padding:clamp(26px,3.4vw,52px);
  box-shadow:var(--shadow-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
  overflow:hidden;
}
.day::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px;
  background:linear-gradient(180deg,var(--rose),var(--rose-pale));
}
.day--rev{ direction:rtl; }
.day--rev > *{ direction:ltr; }
.day--rev::before{ left:auto; right:0; background:linear-gradient(180deg,var(--rose),var(--rose-pale)); }
.day:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }

.day__media{ position:relative; }
.day__photo{
  position:relative; aspect-ratio:1; border-radius:50%; overflow:hidden;
  box-shadow:0 22px 50px rgba(168,60,83,.2);
  isolation:isolate;
}
.day__photo::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  box-shadow:inset 0 0 0 8px rgba(255,255,255,.9);
}
.day__photo img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.day:hover .day__photo img{ transform:scale(1.06); }
.day__plate{
  position:relative; z-index:2; width:min(94%,320px); margin:-34px auto 0;
  background:var(--rose); color:#fff; border-radius:14px;
  padding:.8em 1.2em; text-align:center;
  font-size:.8rem; font-weight:700; letter-spacing:.04em; line-height:1.5;
  box-shadow:0 12px 26px rgba(168,60,83,.24);
}
.day__plate b{ display:block; font-size:.98rem; font-weight:900; }
.day--rev .day__plate{ background:var(--rose); box-shadow:0 12px 26px rgba(34,122,95,.26); }

.day__tag{
  display:inline-flex; align-items:baseline; gap:.15em;
  font-family:var(--ff-en); font-size:.86rem; font-weight:800; letter-spacing:.18em;
  color:#fff; background:var(--green); border-radius:999px; padding:.35em 1.1em;
  margin-bottom:1em;
}
.day__tag span{ font-size:1.1rem; }

.day__date{ display:flex; align-items:baseline; flex-wrap:wrap; gap:.5em .8em; margin-bottom:.7em; }
.day__date-num{
  font-family:var(--ff-en); font-size:clamp(3rem,7vw,4.6rem); font-weight:800; line-height:.9;
  letter-spacing:-.02em; color:var(--ink);
}
.day__date-num i{ font-style:normal; color:var(--rose); padding:0 .02em; }
.day__date-dow{
  font-size:.86rem; font-weight:900; color:#fff; background:var(--rose);
  border-radius:999px; padding:.3em .9em; letter-spacing:.06em;
}
.day__date-time{
  font-family:var(--ff-en); font-size:1.05rem; font-weight:700; color:var(--ink-2); letter-spacing:.06em;
}
.day__title{
  font-size:clamp(1.3rem,2.5vw,1.95rem); font-weight:900; line-height:1.45; margin-bottom:.25em;
}
.day__sub{ font-size:clamp(.92rem,1.2vw,1.06rem); font-weight:700; color:var(--rose-dark); margin-bottom:1.1em; }
.day__text{ font-size:.94rem; color:var(--ink-2); margin-bottom:1.8em; }

/* 開催済み */
.day.is-finished{ opacity:.62; }
.day.is-finished .day__photo img{ filter:grayscale(.75); }
.day.is-finished::before{ background:linear-gradient(180deg,#b9adb2,#ded6d9); }
.btn.is-disabled{
  --btn-bg:#ded6d9; --btn-fg:#7d6d74;
  pointer-events:none; box-shadow:none;
}
.btn.is-disabled::after{ display:none; }

@media (max-width:900px){
  .day{ grid-template-columns:1fr; }
  .day--rev{ direction:ltr; }
  .day__media{ max-width:300px; margin-inline:auto; }
  .day__date{ gap:.4em .6em; }
}

/* =========================================================
   Program
   ========================================================= */
.section--program{
  background:
    radial-gradient(70% 50% at 0% 0%, rgba(45,146,115,.09) 0%, rgba(45,146,115,0) 60%),
    var(--white);
}

.prog{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(24px,3.4vw,54px); align-items:start;
  margin-bottom:clamp(36px,4.4vw,60px);
}
.prog__spec{
  background:linear-gradient(160deg,rgba(45,146,115,.08),rgba(45,146,115,.02) 70%);
  border:1px solid rgba(45,146,115,.2); border-radius:var(--radius-lg);
  padding:clamp(22px,2.6vw,34px) clamp(22px,2.4vw,32px);
}
.prog__spec li{
  display:grid; grid-template-columns:5.5em 1fr; gap:1em; align-items:baseline;
  padding:13px 0; border-top:1px solid rgba(34,122,95,.16);
}
.prog__spec li:first-child{ border-top:0; padding-top:0; }
.prog__spec li:last-child{ padding-bottom:0; }
.prog__spec span{ font-size:.8rem; font-weight:900; letter-spacing:.1em; color:var(--green-deep); }
.prog__spec b{ font-size:1rem; font-weight:900; color:var(--ink); line-height:1.6; }
.prog__spec small{ font-size:.78rem; font-weight:700; color:var(--ink-3); letter-spacing:.04em; }

.prog__learn-title{
  font-size:1.16rem; font-weight:900; margin-bottom:1em;
  display:flex; align-items:center; gap:.6em;
}
.prog__learn-title::before{
  content:""; width:1.6em; height:3px; border-radius:3px; background:var(--green); flex:none;
}
.prog__learn-list{ counter-reset:learn; display:grid; gap:2px; }
.prog__learn-list li{
  position:relative; counter-increment:learn;
  padding:14px 0 14px 3.2em; border-top:1px dashed rgba(34,122,95,.24);
  font-size:.92rem; color:var(--ink-2);
}
.prog__learn-list li:first-child{ border-top:0; }
.prog__learn-list li::before{
  content:counter(learn,decimal-leading-zero);
  position:absolute; left:0; top:14px;
  font-family:var(--ff-en); font-size:1.05rem; font-weight:800; color:var(--green);
  letter-spacing:.04em;
}
.prog__learn-list b{ display:block; font-size:1rem; font-weight:900; color:var(--ink); margin-bottom:.1em; }
.prog__learn-note{ margin-top:1.2em; font-size:.8rem; color:var(--ink-3); }

/* 全5回のスケジュール */
.sessions{
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(10px,1.4vw,16px);
  margin-bottom:clamp(32px,4vw,52px);
}
.session{
  position:relative; overflow:hidden;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:clamp(18px,2vw,26px) clamp(14px,1.6vw,20px);
  text-align:center;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s;
}
.session::before{
  content:""; position:absolute; inset:0 0 auto 0; height:4px;
  background:linear-gradient(90deg,var(--green),var(--green-pale));
}
.session:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:rgba(45,146,115,.3); }
.session__no{
  font-size:.76rem; font-weight:900; letter-spacing:.12em; color:var(--green-deep); margin-bottom:.5em;
}
.session__no b{ font-family:var(--ff-en); font-size:1.1rem; font-weight:800; padding:0 .12em; }
.session__date{ display:flex; align-items:baseline; justify-content:center; gap:.45em; }
.session__date-num{
  font-family:var(--ff-en); font-size:clamp(1.8rem,3.2vw,2.5rem); font-weight:800;
  line-height:1; letter-spacing:-.02em; color:var(--ink);
}
.session__date-num i{ font-style:normal; color:var(--green); padding:0 .02em; }
.session__date-dow{
  font-size:.74rem; font-weight:900; color:#fff; background:var(--green);
  border-radius:999px; padding:.2em .62em;
}
.session__year{ font-family:var(--ff-en); font-size:.72rem; font-weight:700; color:var(--ink-3); letter-spacing:.08em; margin-top:.4em; }
.session__time{ font-family:var(--ff-en); font-size:.94rem; font-weight:700; color:var(--ink-2); letter-spacing:.04em; margin-top:.5em; }
.session__place{
  margin-top:.7em; font-size:.76rem; font-weight:700; color:var(--green-deep);
  background:rgba(45,146,115,.09); border-radius:999px; padding:.32em .5em;
}
.session--final::before{ background:linear-gradient(90deg,var(--rose),var(--rose-pale)); }
.session--final .session__date-num i{ color:var(--rose); }
.session--final .session__date-dow{ background:var(--rose); }
.session--final .session__place{ color:var(--rose-dark); background:rgba(225,113,130,.12); }
.session--final .session__no{ color:var(--rose-dark); }

/* 開催済み */
.session.is-finished{ opacity:.5; }
.session.is-finished::before{ background:linear-gradient(90deg,#b9adb2,#ded6d9); }

.prog__cta{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:clamp(22px,3vw,44px); align-items:center;
  background:linear-gradient(120deg,var(--green-deep),var(--green) 70%,#3aa886);
  color:#fff; border-radius:var(--radius-lg); padding:clamp(26px,3.4vw,44px);
}
.prog__cta-badge{
  display:inline-block; font-size:.78rem; font-weight:900; letter-spacing:.12em;
  color:var(--green-deep); background:#fff; border-radius:999px; padding:.36em 1.1em; margin-bottom:.9em;
}
.prog__cta-title{ font-size:clamp(1.25rem,2.6vw,1.8rem); font-weight:900; line-height:1.5; margin-bottom:.5em; }
.prog__cta-text{ font-size:.94rem; color:rgba(255,255,255,.9); max-width:38em; }
.prog__cta-btn{ --btn-fg:#fff; box-shadow:inset 0 0 0 2px rgba(255,255,255,.7); white-space:nowrap; }
.prog__cta-btn:hover{ --btn-bg:#fff; --btn-fg:var(--green-deep); box-shadow:inset 0 0 0 2px #fff, 0 14px 30px rgba(0,0,0,.2); }

@media (max-width:1000px){
  .sessions{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:900px){
  .prog{ grid-template-columns:1fr; }
  .prog__cta{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .sessions{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* =========================================================
   Voice（昨年度プログラム参加者の声 / 満足度）
   ========================================================= */
.section--voice{
  background:
    radial-gradient(75% 55% at 100% 0%, rgba(225,113,130,.12) 0%, rgba(225,113,130,0) 60%),
    linear-gradient(180deg,var(--pink-50) 0%, var(--pink-100) 100%);
}

/* --- 満足度ゲージ --- */
.satis{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:clamp(24px,3.6vw,58px); align-items:center;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(26px,3.4vw,48px);
  box-shadow:var(--shadow-sm);
  margin-bottom:clamp(30px,4vw,56px);
}
.satis__gauge{ position:relative; width:clamp(148px,17vw,200px); aspect-ratio:1; flex:none; }
.satis__gauge svg{ width:100%; height:100%; transform:rotate(-90deg); overflow:visible; }
.satis__ring-bg,.satis__ring-fg{ fill:none; stroke-width:14; stroke-linecap:round; }
.satis__ring-bg{ stroke:var(--pink-200); }
.satis__ring-fg{
  stroke:url(#satisGrad);
  stroke-dasharray:540.4; stroke-dashoffset:540.4;
  transition:stroke-dashoffset 1.7s var(--ease) .2s;
}
.satis.is-in .satis__ring-fg{ stroke-dashoffset:0; }

.satis__value{
  position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
  text-align:center; font-family:var(--ff-en); line-height:1;
}
.satis__num{
  font-size:clamp(2.4rem,4.4vw,3.4rem); font-weight:800; letter-spacing:-.03em;
  color:var(--ink); font-variant-numeric:tabular-nums;
}
.satis__unit{
  font-size:clamp(1.05rem,1.8vw,1.5rem); font-weight:800; color:var(--rose);
  margin-left:.04em; letter-spacing:0;
}

.satis__badge{
  display:inline-block; font-size:.76rem; font-weight:900; letter-spacing:.12em;
  color:#fff; background:var(--green); border-radius:999px; padding:.36em 1.1em; margin-bottom:.9em;
}
.satis__title{ font-size:clamp(1.3rem,2.9vw,2.05rem); font-weight:900; line-height:1.4; margin-bottom:.5em; }
.satis__title em{
  font-style:normal; font-family:var(--ff-en); font-size:1.18em; font-weight:800;
  color:var(--rose-dark); letter-spacing:-.02em; margin-left:.08em;
}
.satis__text{ font-size:.94rem; color:var(--ink-2); max-width:42em; }
.satis__text b{ font-weight:900; color:var(--rose-dark); }

/* --- 参加者の声カード --- */
.voices{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,28px); }
.voice{
  position:relative; overflow:hidden; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(26px,2.8vw,38px) clamp(22px,2.4vw,32px) clamp(22px,2.4vw,30px);
  padding-left:calc(clamp(22px,2.4vw,32px) + 6px);
  box-shadow:var(--shadow-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.voice::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px;
  background:linear-gradient(180deg,var(--rose),var(--rose-pale));
}
.voice:nth-child(2)::before{ background:linear-gradient(180deg,var(--green),var(--green-pale)); }
.voice:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }

.voice__mark{
  font-family:var(--ff-en); font-size:3.4rem; font-weight:800; line-height:.7;
  color:var(--rose-pale); margin-bottom:.22em;
}
.voice:nth-child(2) .voice__mark{ color:var(--green-pale); }
.voice__quote{ flex:1 1 auto; font-size:.95rem; line-height:2.05; color:var(--ink); margin-bottom:1.6em; }

.voice__person{
  display:flex; align-items:center; gap:.9em;
  padding-top:1.1em; border-top:1px solid var(--line);
}
.voice__avatar{
  flex:none; display:grid; place-items:center; width:46px; height:46px; border-radius:50%;
  font-family:var(--ff-en); font-size:1.15rem; font-weight:800; color:#fff; letter-spacing:.02em;
  background:linear-gradient(140deg,var(--rose),var(--rose-deep));
}
.voice:nth-child(2) .voice__avatar{ background:linear-gradient(140deg,var(--green),var(--green-deep)); }
.voice:nth-child(3) .voice__avatar{ background:linear-gradient(140deg,var(--rose-soft),var(--rose-dark)); }
.voice__name{ display:flex; align-items:center; gap:.6em; font-size:1rem; font-weight:900; }
.voice__name span{
  font-size:.7rem; font-weight:800; letter-spacing:.06em; color:var(--rose-dark);
  background:var(--pink-100); border-radius:999px; padding:.24em .75em;
}
.voice:nth-child(2) .voice__name span{ color:var(--green-deep); background:rgba(45,146,115,.12); }
.voice__job{ font-size:.78rem; color:var(--ink-3); margin-top:.25em; }
.voice__job b{ font-weight:700; color:var(--ink-2); }

@media (max-width:980px){
  .voices{ grid-template-columns:1fr; }
}
@media (max-width:820px){
  .satis{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .satis__text{ margin-inline:auto; }
}

/* =========================================================
   Mentor（イベントのファシリテーター / プログラムの講師）
   ========================================================= */
.section--mentor{
  background:linear-gradient(135deg,var(--green-deep) 0%, var(--green) 55%, #3aa886 100%);
  color:#fff;
}
.section--mentor::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 90% at 100% 0%, rgba(255,255,255,.14), rgba(255,255,255,0) 60%);
  pointer-events:none;
}
.mentors{
  position:relative;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,3.4vw,48px);
}
.mentor{
  display:flex; flex-direction:column; align-items:flex-start;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radius-lg); padding:clamp(24px,2.8vw,38px);
  transition:transform .5s var(--ease), background-color .4s;
}
.mentor:hover{ transform:translateY(-6px); background:rgba(255,255,255,.15); }
.mentor__media{
  position:relative; width:clamp(110px,12vw,152px); aspect-ratio:1;
  border-radius:50%; overflow:hidden; margin-bottom:clamp(18px,2vw,26px);
  box-shadow:0 24px 56px rgba(0,0,0,.22);
}
.mentor__media::after{ content:""; position:absolute; inset:0; border-radius:50%; box-shadow:inset 0 0 0 8px rgba(255,255,255,.24); }
.mentor__media img{ width:100%; height:100%; object-fit:cover; }
.mentor__media--mono{
  display:grid; place-items:center;
  background:radial-gradient(circle at 34% 28%, rgba(255,255,255,.4), rgba(255,255,255,.08) 70%);
}
.mentor__media--mono span{
  font-family:var(--ff-en); font-size:3.4rem; font-weight:800; line-height:1;
  color:rgba(255,255,255,.85);
}
.mentor__role{
  font-family:var(--ff-en); font-size:clamp(1.15rem,2.2vw,1.6rem); font-weight:800;
  font-style:italic; letter-spacing:.02em; color:rgba(255,255,255,.55); line-height:1;
}
.mentor__scope{
  display:inline-block; font-size:.74rem; font-weight:900; letter-spacing:.08em;
  color:#fff; background:rgba(255,255,255,.2); border-radius:999px;
  padding:.3em .9em; margin:.7em 0 .6em;
}
.mentor__name{ font-size:clamp(1.35rem,2.1vw,1.85rem); font-weight:900; line-height:1.35; }
.mentor__name small{ font-size:.52em; font-weight:700; margin-left:.4em; white-space:nowrap; }
.mentor__org{ font-size:.92rem; font-weight:700; color:rgba(255,255,255,.85); margin:.3em 0 1em; }
.mentor__text{ font-size:.92rem; color:rgba(255,255,255,.9); }

@media (max-width:820px){
  .mentors{ grid-template-columns:1fr; }
}

/* =========================================================
   Venue
   ========================================================= */
.section--venue{ background:var(--white); }
.venue{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:clamp(24px,3.4vw,56px); align-items:center;
  /*margin-bottom:clamp(32px,4vw,56px);*/
}
.venue__photo{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.venue__photo img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.venue__cat{ font-size:.88rem; font-weight:700; color:var(--rose-dark); letter-spacing:.06em; }
.venue__name{
  font-size:clamp(2rem,4.6vw,3.1rem); font-weight:900; line-height:1.2;
  margin:.1em 0 .8em; letter-spacing:.02em;
}
.venue__dl{ margin-bottom:1.8em; }
.venue__dl > div{ display:grid; grid-template-columns:5.5em 1fr; gap:1em; padding:14px 0; border-top:1px solid var(--line); }
.venue__dl > div:last-child{ border-bottom:1px solid var(--line); }
.venue__dl dt{ font-size:.84rem; font-weight:900; color:var(--rose-dark); letter-spacing:.1em; }
.venue__dl dd{ font-size:.94rem; color:var(--ink-2); }

/* サブ会場（ももスタ） */
.venue2{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:clamp(20px,3vw,44px); align-items:center;
  background:var(--pink-50); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,40px);
  margin-bottom:clamp(24px,3vw,40px);
}
.venue2__name{
  font-size:clamp(1.25rem,2.6vw,1.9rem); font-weight:900; line-height:1.35;
  margin:.1em 0 .7em; letter-spacing:.01em;
}
.venue2__name small{ font-size:.6em; font-weight:700; color:var(--ink-3); }
.venue2 .venue__dl{ margin-bottom:0; }
.venue2__btn{ white-space:nowrap; }

@media (max-width:860px){
  .venue2{ grid-template-columns:1fr; }
}

.childcare{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:clamp(24px,3.4vw,50px); align-items:center;
  background:linear-gradient(120deg,var(--pink-100),var(--pink-200));
  border-radius:var(--radius-lg); padding:clamp(26px,3.4vw,46px); margin: 4vw 3rem;
}
.childcare__badge{
  display:inline-block; font-size:.8rem; font-weight:900; letter-spacing:.1em;
  color:#fff; background:var(--green); border-radius:999px; padding:.4em 1.2em; margin-bottom:1em;
}
.childcare__title{ font-size:clamp(1.25rem,2.6vw,1.8rem); font-weight:900; margin-bottom:.5em; }
.childcare__text{ font-size:.94rem; color:var(--ink-2); max-width:34em; }
.childcare__qr{ text-align:center; }
.childcare__qr img{
  width:clamp(130px,16vw,168px); height:auto; border-radius:14px;
  background:#fff; padding:10px; box-shadow:var(--shadow-sm);
}
.childcare__qr figcaption{ margin-top:.7em; font-size:.78rem; font-weight:700; color:var(--rose-dark); letter-spacing:.06em; }

@media (max-width:860px){
  .venue{ grid-template-columns:1fr; }
  .childcare{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .childcare__text{ margin-inline:auto; }
}

/* =========================================================
   FAQ
   ========================================================= */
.section--faq{ background:linear-gradient(180deg,var(--pink-50),var(--pink-100)); }
.faq{ display:grid; gap:14px; }
.faq__item{
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:var(--shadow-sm); transition:box-shadow .4s var(--ease);
}
.faq__item.is-open{ box-shadow:var(--shadow); }
.faq h3{ margin:0; font-size:inherit; font-weight:inherit; }
.faq__q{
  display:flex; align-items:center; justify-content:space-between; gap:1.2em;
  width:100%; text-align:left;
  padding:clamp(18px,2.2vw,26px) clamp(20px,2.6vw,32px);
  font-size:clamp(.96rem,1.2vw,1.06rem); font-weight:900; line-height:1.6;
}
.faq__q span{ display:flex; align-items:flex-start; gap:.7em; }
.faq__q span::before{
  content:"Q"; font-family:var(--ff-en); font-size:1.1em; font-weight:800; color:var(--rose);
  line-height:1.35;
}
.faq__q i{
  position:relative; flex:none; width:22px; height:22px; border-radius:50%;
  background:var(--pink-100); transition:background-color .3s, transform .4s var(--ease);
}
.faq__q i::before,.faq__q i::after{
  content:""; position:absolute; top:50%; left:50%; width:10px; height:2px; border-radius:2px;
  background:var(--rose-dark); transform:translate(-50%,-50%); transition:transform .4s var(--ease);
}
.faq__q i::after{ transform:translate(-50%,-50%) rotate(90deg); }
.faq__item.is-open .faq__q i{ background:var(--rose); }
.faq__item.is-open .faq__q i::before,
.faq__item.is-open .faq__q i::after{ background:#fff; }
.faq__item.is-open .faq__q i::after{ transform:translate(-50%,-50%) rotate(0deg); }

.faq__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease); }
.faq__item.is-open .faq__a{ grid-template-rows:1fr; }
.faq__a > p{
  overflow:hidden; min-height:0;
  font-size:.94rem; color:var(--ink-2);
  padding:0 clamp(20px,2.6vw,32px);
  transition:padding .45s var(--ease);
}
.faq__item.is-open .faq__a > p{ padding-bottom:clamp(20px,2.4vw,28px); }
.faq__a a{ color:var(--rose-dark); font-weight:700; text-decoration:underline; text-underline-offset:3px; }

/* =========================================================
   Entry
   ========================================================= */
.section--entry{
  background:linear-gradient(135deg,var(--rose-dark) 0%, var(--rose-deep) 45%, var(--rose) 100%);
  overflow:hidden;
}
.entry__bubbles{ position:absolute; inset:0; pointer-events:none; }
.entry__bubbles span{
  position:absolute; border-radius:50%; background:rgba(255,255,255,.09);
  animation:float 14s ease-in-out infinite;
}
.entry__bubbles span:nth-child(1){ width:340px; height:340px; top:-120px; left:-80px; }
.entry__bubbles span:nth-child(2){ width:220px; height:220px; bottom:-90px; right:8%; animation-delay:-5s; }
.entry__bubbles span:nth-child(3){ width:120px; height:120px; top:30%; right:22%; animation-delay:-9s; }

.entry{
  position:relative;
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:clamp(28px,4vw,64px); align-items:center;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-radius:var(--radius-lg);
  padding:clamp(28px,3.6vw,52px);
}
.entry + .entry{ margin-top:clamp(16px,2.2vw,24px); }
.entry--sub{ grid-template-columns:minmax(0,1fr); background:rgba(255,255,255,.06); }

.entry__kicker{
  display:inline-block;
  font-family:var(--ff-en); font-size:.74rem; font-weight:800; letter-spacing:.16em;
  color:var(--rose-dark); background:#fff; border-radius:999px;
  padding:.35em 1em; margin-bottom:1.2em;
}

.entry__qr{ text-align:center; }
.entry__qr img{
  width:clamp(150px,18vw,190px); height:auto;
  background:#fff; border-radius:16px; padding:12px;
  box-shadow:0 20px 44px rgba(0,0,0,.22);
}
.entry__qr p{ margin-top:.9em; font-size:.78rem; font-weight:700; color:rgba(255,255,255,.9); letter-spacing:.06em; line-height:1.6; }

.entry__spec{ display:grid; gap:0; margin-bottom:1.8em; }
.entry__spec li{
  display:grid; grid-template-columns:7em 1fr; gap:1em; align-items:baseline;
  padding:12px 0; border-top:1px solid rgba(255,255,255,.22);
}
.entry__spec li:last-child{ border-bottom:1px solid rgba(255,255,255,.22); }
.entry__spec span{ font-size:.8rem; font-weight:700; letter-spacing:.12em; color:rgba(255,255,255,.75); }
.entry__spec b{ font-size:1.06rem; font-weight:900; color:#fff; }
.entry__note{ margin-top:1.2em; font-size:.86rem; color:rgba(255,255,255,.88); }
.entry__note a{ font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.entry__note--center{
  position:relative; text-align:center;
  margin-top:clamp(24px,3vw,36px); color:rgba(255,255,255,.9);
}

@media (max-width:820px){
  .entry{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .entry__spec{ width:100%; }
  .entry__spec li{ grid-template-columns:6.5em 1fr; text-align:left; }
}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.82); padding:clamp(48px,6vw,80px) 0 24px; }
.site-footer__inner{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:clamp(28px,4vw,60px);
  padding-bottom:clamp(28px,3.4vw,44px); border-bottom:1px solid rgba(255,255,255,.14);
}
.site-footer__mark{ width:34px; margin-bottom:14px; }
.site-footer__title{ font-size:1.15rem; font-weight:900; color:#fff; letter-spacing:.02em; }
.site-footer__sub{ font-size:.82rem; color:rgba(255,255,255,.6); margin-top:.3em; letter-spacing:.06em; }
.site-footer__org{ display:grid; gap:18px; }
.site-footer__org > div{ display:grid; grid-template-columns:3.4em 1fr; gap:1.2em; }
.site-footer__org dt{ font-size:.78rem; font-weight:900; letter-spacing:.14em; color:var(--rose-soft); }
.site-footer__org dd{ font-size:.88rem; line-height:1.8; }
.site-footer__org a{ text-decoration:underline; text-underline-offset:3px; }
.site-footer__copy{
  margin-top:24px; text-align:center;
  font-family:var(--ff-en); font-size:.72rem; letter-spacing:.12em; color:rgba(255,255,255,.42);
}
@media (max-width:760px){
  .site-footer__inner{ grid-template-columns:1fr; }
}

/* =========================================================
   Sticky CTA (mobile)
   ========================================================= */
.sticky-cta{
  position:fixed; z-index:90; left:0; right:0; bottom:0;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(253,248,249,.9);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  box-shadow:0 -2px 20px rgba(168,60,83,.12);
  transform:translateY(110%); transition:transform .45s var(--ease);
  display:none;
}
.sticky-cta.is-show{ transform:none; }
@media (max-width:760px){
  .sticky-cta{ display:block; }
  body{ padding-bottom:0; }
}

/* =========================================================
   Print / PDF
   A4 横（1123px 幅）でレイアウトさせ、Web版と同じ見た目で出力する
   ========================================================= */
@media print{
  @page{ size:A4 landscape; margin:0; }

  *,*::before,*::after{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
    animation:none !important;
    transition:none !important;
  }

  html,body{ background:#fff; }

  /* リビールを確定表示 */
  .reveal{ opacity:1 !important; transform:none !important; }

  /* 画面専用UIを除去 */
  .sticky-cta,.hero__scroll,.navtoggle,.skip-link{ display:none !important; }

  /* ヘッダーは1ページ目の先頭に一度だけ */
  .site-header{ position:absolute; height:64px; background:none; box-shadow:none; backdrop-filter:none; }
  .gnav{ position:static; opacity:1; visibility:visible; transform:none; background:none;
         flex-direction:row; gap:26px; }
  .gnav__list{ flex-direction:row; gap:22px; }
  .gnav__list a{ flex-direction:row; font-size:.78rem; }
  .gnav__cta{ display:none; }

  /* 紙幅（A4横 ≒ 1122px）でもPC版のグリッドを維持する */
  .features{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
  .steps{ grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important; }
  .steps__arrow{ transform:none !important; }
  .day{ grid-template-columns:minmax(0,300px) minmax(0,1fr) !important; }
  .day--rev{ direction:rtl !important; }
  .day--rev > *{ direction:ltr; }
  .day__media{ max-width:none !important; margin-inline:0 !important; }
  .prog{ grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) !important; }
  .sessions{ grid-template-columns:repeat(5,minmax(0,1fr)) !important; }
  .prog__cta{ grid-template-columns:minmax(0,1fr) auto !important; }
  .mentors{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .voices{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
  .satis{ grid-template-columns:auto minmax(0,1fr) !important; justify-items:start !important; text-align:left !important; }
  .satis__ring-fg{ stroke-dashoffset:0 !important; }
  .venue{ grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) !important; }
  .venue2{ grid-template-columns:minmax(0,1fr) auto !important; }
  .childcare{ grid-template-columns:minmax(0,1fr) auto !important; justify-items:start !important; text-align:left !important; }
  .entry{ grid-template-columns:auto minmax(0,1fr) !important; justify-items:start !important; text-align:left !important; }
  .entry--sub{ grid-template-columns:minmax(0,1fr) !important; }
  .site-footer__inner{ grid-template-columns:minmax(0,1fr) auto !important; }
  .flow__item{ grid-template-columns:110px 1fr !important; }
  .hero__tracks{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }

  .hero{ min-height:auto; padding:104px 0 56px; break-after:page; }
  .section--event,.section--program,.section--voice,.section--mentor,.section--venue,
  .section--faq,.section--entry{ break-before:page; }
  .hero__wordmark{ font-size:5.6rem; }
  .hero__peach{ width:4.3rem; }
  .hero__title-jp{ font-size:3.6rem; }
  .hero__title-branch{ font-size:1.5rem; }
  .hero__title-year{ font-size:2rem; }

  .marquee{ transform:none; margin:0; }

  .section{ padding:52px 0; }
  .sec-head{ margin-bottom:34px; break-after:avoid; }

  /* 分割してほしくない塊 */
  .feature,.steps__item,.day,.flow,.target,.prog,.session,.prog__cta,.mentor,
  .satis,.voice,.venue,.venue2,.childcare,.faq__item,.entry,
  .site-footer,.hero__tracks{ break-inside:avoid; page-break-inside:avoid; }

  /* FAQ は開いた状態で出力 */
  .faq__a{ grid-template-rows:1fr !important; }
  .faq__a > p{ padding-bottom:22px !important; }
  .faq__q i{ display:none; }

  /* 影・ぼかしは印刷で潰れるので整理 */
  .btn,.day,.feature,.steps__item,.session,.faq__item,.venue__photo,.day__photo,.mentor__media,.satis,.voice,
  .entry__qr img,.childcare__qr img,.hero__facts li,.hero__track{ box-shadow:none !important; }
  .entry{ background:rgba(255,255,255,.14); backdrop-filter:none; -webkit-backdrop-filter:none; }
  .mentor{ background:rgba(255,255,255,.14); }
  .day,.feature,.steps__item,.session,.faq__item{ border:1px solid rgba(42,31,36,.1); }

  /* リンクURLは出さない（QRと本文で完結させる） */
  a[href]::after{ content:none !important; }
}
