/* ===== 未病サミット2026 — shared styles ===== */
:root{
  --grad-pink:#E79C95; --grad-orange:#EBA53F; --grad-yellow:#E9B51E;
  --grad-lime:#C5D231; --grad-green:#9EBF32;
  --brand-gradient:linear-gradient(120deg,#E79C95 0%,#EBA53F 28%,#E9B51E 50%,#C5D231 74%,#9EBF32 100%);
  --green-primary:#7AAD60; --green-cta:#127041; --green-deep:#008040;
  --green-accent:#3B9A3C; --lime-accent:#A0D050;
  --navy-heading:#002050; --blue-accent:#1080D0;
  --wave-yellow:#F0C000; --wave-yellow-soft:#FAF0C8;
  --leaf-mint:#CFEAD8; --bloom-peach:#FCE4D6;
  --text-dark:#46494B; --text-mincho:#1F1F1F; --text-muted:#6B7078;
  --bg-base:#FFFFFF; --bg-soft:#FBFCF8; --border-light:#E6E9E2;
  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:40px; --space-5:64px;
  --radius-sm:12px; --radius-md:16px; --radius-pill:9999px;
  --shadow-soft:0 6px 16px rgba(0,0,0,.10);
  --shadow-card:0 10px 30px rgba(40,60,40,.08);
  --font-serif:"Noto Serif JP","Yu Mincho",serif;
  --font-sans:"Noto Sans JP","Yu Gothic",sans-serif;
  --maxw:1160px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:84px;}
body{
  margin:0; font-family:var(--font-sans); color:var(--text-dark);
  background:var(--bg-base); line-height:1.7; -webkit-font-smoothing:antialiased;
  text-wrap:pretty;
}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3,h4{margin:0; line-height:1.3; font-weight:700;}
p{margin:0;}

/* layout helpers */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.section{padding:clamp(56px,8vw,104px) 0;}
.section--soft{background:var(--bg-soft);}
.eyebrow{
  font-family:var(--font-sans); font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--green-primary); font-size:13px;
  display:flex; align-items:center; gap:10px; justify-content:center;
}
.eyebrow::before,.eyebrow::after{content:""; height:1px; width:34px; background:var(--green-primary); opacity:.5;}
.sec-head{text-align:center; margin-bottom:clamp(32px,5vw,56px);}
.sec-head h2{
  font-size:clamp(27px,4.4vw,40px); color:var(--navy-heading);
  margin-top:14px; letter-spacing:.02em;
}
.sec-head h2 .g{
  background:var(--brand-gradient); -webkit-background-clip:text;
  background-clip:text; color:transparent;
}
.sec-head .lead{color:var(--text-muted); margin-top:16px; font-size:clamp(15px,1.6vw,17px);}
.serif{font-family:var(--font-serif);}

/* buttons */
.btn-cta{
  background:var(--green-cta); color:#fff; font-weight:700; font-size:1.06rem;
  padding:16px 34px; border-radius:var(--radius-pill); border:none; cursor:pointer;
  box-shadow:0 6px 16px rgba(18,112,65,.28); display:inline-flex; align-items:center;
  gap:10px; text-decoration:none; transition:.18s; font-family:var(--font-sans);
}
.btn-cta:hover{filter:brightness(1.07); transform:translateY(-1px);}
.btn-cta .arr{font-size:1.1em; line-height:1;}
.btn-ghost{
  display:inline-flex; align-items:center; gap:10px; text-decoration:none;
  border:1.6px solid var(--green-primary); color:var(--green-cta); font-weight:700;
  padding:13px 28px; border-radius:var(--radius-pill); transition:.18s; background:#fff;
}
.btn-ghost:hover{background:var(--green-primary); color:#fff;}

/* ===== header ===== */
.site-header{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--border-light);
}
.nav{display:flex; align-items:center; gap:18px; height:68px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0;}
.brand img{height:38px; width:auto;}
.brand .wm{display:flex; flex-direction:column; line-height:1;}
.brand .wm b{font-family:var(--font-sans); font-weight:700; color:var(--navy-heading); font-size:17px; letter-spacing:.01em; white-space:nowrap;}
.brand .wm b em{font-style:normal; color:var(--green-primary);}
.brand .wm span{font-size:9.5px; color:var(--text-muted); letter-spacing:.18em; margin-top:3px;}
.nav-links{display:flex; gap:4px; margin-left:auto; align-items:center;}
.nav-links a{
  text-decoration:none; color:var(--text-dark); font-weight:600; font-size:14px;
  padding:8px 12px; border-radius:8px; transition:.15s; white-space:nowrap;
}
.nav-links a:hover{background:var(--bg-soft); color:var(--green-cta);}
.nav-cta{margin-left:6px;}
.nav-cta .btn-cta{padding:11px 22px; font-size:.92rem;}
.menu-btn{display:none; margin-left:auto; background:none; border:none; cursor:pointer; padding:8px;}
.menu-btn span{display:block; width:24px; height:2px; background:var(--navy-heading); margin:5px 0; transition:.2s;}

@media(max-width:980px){
  .nav-links{
    position:fixed; inset:68px 0 auto 0; flex-direction:column; background:#fff;
    gap:0; padding:8px 16px 20px; border-bottom:1px solid var(--border-light);
    box-shadow:var(--shadow-soft); transform:translateY(-130%); transition:.28s; align-items:stretch;
  }
  .nav-links.open{transform:translateY(0);}
  .nav-links a{padding:13px 10px; border-bottom:1px solid var(--border-light); font-size:15px;}
  .nav-cta{margin:12px 0 0;}
  .nav-cta .btn-cta{width:100%; justify-content:center;}
  .menu-btn{display:block;}
}

/* ===== footer ===== */
.site-footer{background:var(--navy-heading); color:#dfe6ef; padding:48px 0 32px; font-size:14px;}
.site-footer .wrap{display:flex; flex-wrap:wrap; gap:32px; justify-content:space-between;}
.site-footer h4{color:#fff; font-size:15px; margin-bottom:12px; letter-spacing:.04em;}
.site-footer a{color:#cdd8e6; text-decoration:none;}
.site-footer a:hover{color:#fff; text-decoration:underline;}
.site-footer .org p{margin:3px 0; color:#aebcd0;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.14); margin-top:32px; padding-top:18px; color:#8fa0b8; font-size:12.5px; text-align:center;}

/* wave divider */
.wave{display:block; width:100%; height:auto; line-height:0;}

/* tag chip */
.chip{
  display:inline-block; font-size:12px; font-weight:700; color:var(--green-cta);
  background:rgba(160,208,80,.18); border-radius:var(--radius-pill); padding:5px 13px;
  letter-spacing:.02em;
}

/* reveal animation */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:none;}
}
