  /* ===== Base (Purple Theme) ===== */
  :root{
    /* brand purple */
    --brand-400:#c084fc;
    --brand-500:#a855f7;
    --brand-600:#9333ea;
    --brand-700:#7e22ce;
    --brand-800:#6b21a8;

    /* neutrals */
    --ink:#111;
    --muted:#666;
    --bg:#fff;
    --panel:#fafafa;
    --line:#e5e5ef;

    /* compat */
    --clr-text:#222;
    --clr-bg:#fff;
    --clr-surface:#fafafa;
  }

  *{box-sizing:border-box}
  html,body{height:100%}
  body{
    margin:0;
    font-family:"Noto Sans JP",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
    line-height:1.7;
    color:var(--ink);
    background:var(--bg);
  }
  img{max-width:100%; height:auto; display:block}
  a{color:inherit; text-decoration:none}

  /* ===== Layout ===== */
  .wrap{width:min(1100px,92%); margin:0 auto}
  .content-section{padding:56px 0}
  h1,h2,h3{margin:0 0 .6em}
  h2{
    font-size:clamp(20px,2.8vw,28px);
    color:var(--brand-700);
    text-align:center;
  }
  h2::after{
    content:""; display:block; width:60px; height:3px;
    background:var(--brand-500); margin:12px auto 0; border-radius:2px;
  }

  /* ===== Header ===== */
  .site-header{
    position:sticky; top:0; z-index:20;
    background:#fff;
    border-bottom:1px solid var(--line);
  }
  .header-inner{display:flex; align-items:center; justify-content:space-between; min-height:64px;}
  .logo a{font-weight:800; font-size:clamp(18px,2.2vw,22px); color:var(--brand-700);}
  #global-nav ul{display:flex; gap:22px; list-style:none; margin:0; padding:0;}
  #global-nav a{
    display:block; padding:10px 0; font-weight:700; color:var(--ink); position:relative;
  }
  #global-nav a::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
    background:var(--brand-500); transform:scaleX(0); transition:.25s;
  }
  #global-nav a:hover::after{transform:scaleX(1);}

  /* ===== Hero (Purple Gradient) ===== */
.hero {
  color: #fff;
  text-align: center;
  background: linear-gradient(
    135deg,
    var(--brand-500) 0%,
    var(--brand-600) 40%,
    var(--brand-800) 100%
  );

  /* 中央寄せのために追加 */
  display: flex;
  align-items: center;      /* 縦中央 */
  justify-content: center;  /* 横中央 */
  flex-direction: column;   /* 上下に積む */
  min-height: 60vh;         /* 画面の6割くらいの高さを確保 */
}

.hero-inner {
  padding: 0 1rem;
  max-width: 800px;
}

.hero-brand {
  margin: 0 0 6px;
  font-weight: 700;
  opacity: .95;
}

.hero-title {
  margin: 0 0 18px;
  font-weight: 900;
  font-size: clamp(26px, 4vw, 36px);
  color: #fff; /* 白色に固定 */
}

.btn.cta {
  display: inline-block;
  background: #fff;
  color: var(--brand-700);
  font-weight: 800;
  padding: 12px 22px;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  transition: transform .06s ease, box-shadow .12s ease;
}
.btn.cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
}


  /* Category Pills */
  .pill-row{
    display:grid; grid-template-columns:repeat(4,1fr); gap:12px;
    max-width:720px; margin:28px auto 0
  }
  .pill{
    background:linear-gradient(180deg,var(--brand-400),var(--brand-500));
    color:#fff; border-radius:999px; padding:14px 0; font-weight:700; text-align:center;
    box-shadow:inset 0 2px 6px rgba(255,255,255,.3),0 3px 8px rgba(0,0,0,.2);
    transition:.2s;
  }
  .pill:hover{filter:brightness(.95)}

  /* ===== Timeline (News / Media) ===== */
  .timeline{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
  .timeline-item{padding:14px 0; border-bottom:1px solid var(--line)}
.timeline-item a {
  color: var(--brand-600);
  font-weight: 700;
  text-decoration: underline;
  transition: color .2s ease;
}

.timeline-item a:hover {
  color: var(--brand-800);
}

  /* ===== Services ===== */
  .services-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px}
  .service-card{
    display:block; background:var(--panel); border-radius:8px; overflow:hidden; text-align:center;
    box-shadow:0 2px 6px rgba(0,0,0,.08); transition:transform .12s ease, box-shadow .12s ease;
    border:1px solid var(--line);
  }
  .service-card:hover{transform:translateY(-2px); box-shadow:0 8px 18px rgba(0,0,0,.12)}
  .service-thumb{background:#e9d5ff; height:140px} /* 薄紫に */
  .service-body{padding:16px}
  .service-body h3{margin:0 0 8px; font-size:1.1rem; color:var(--brand-700);}
  .service-body p{margin:0; color:var(--muted); font-size:.95rem}

  /* ===== Footer ===== */
  footer{
    background:var(--panel); padding:22px 0; text-align:center; border-top:1px solid var(--line);
  }
  footer nav ul{list-style:none; display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:0 0 8px; padding:0}
  footer a{color:var(--brand-700); font-weight:600;}
  .err{display:none; color:#c00; font-weight:700; margin-top:6px}

  /* ===== Responsive ===== */
  @media (max-width:760px){
    .pill-row{grid-template-columns:repeat(2,1fr)}
  }

  .info-table {
  width:100%; max-width:720px; margin:0 auto 2rem;
  border-collapse: collapse;
  font-size:.9rem;
}
.info-table th,
.info-table td {
  border:1px solid var(--line);
  padding:.75rem 1rem;
}
.info-table th {
  width:30%; text-align:left;
  background:#f7f7fa;
  font-weight:600;
  color:var(--brand-700);
}
/* ===== ABOUT (profile & philosophy) ===== */
.content-container{ width:min(92%,1100px); margin:0 auto; }

.profile-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;
  padding:2rem;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.profile-card img{
  max-width:220px; display:block; margin:0 auto 1.25rem; border-radius:8px;
}
.profile-card p{ margin:0 0 1rem; font-size:.95rem; line-height:1.7; }
.profile-card ul{ margin:0 0 1.25rem 1.2rem; }
.profile-card li{ margin:.35rem 0; font-size:.9rem; }

/* Vision / Mission / etc. */
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:1.6rem 1.8rem;
  box-shadow:0 2px 6px rgba(0,0,0,.05);
}
.about-block{ margin-top:1rem; }
.about-h3{
  font-size:1.15rem; font-weight:800; color:var(--brand-700);
  margin:0 0 .8rem; border-left:4px solid var(--brand-500); padding-left:.6rem;
}
.about-list{ list-style:disc; margin:0 0 0 1.4rem; }
.about-list li{ margin:.45rem 0; font-size:.95rem; line-height:1.65; }
.about-text{ font-size:.95rem; line-height:1.8; }

/* Mobile tweaks */
@media (max-width:768px){
  .profile-card{ padding:1.5rem; }
  .profile-card img{ max-width:160px; }
  .card{ padding:1.2rem 1.4rem; }
  .about-h3{ font-size:1.05rem; }
}

.line-float {
  position: fixed;
  right: 20px;
  bottom: 20px;
  background: #06c755; /* LINEカラー */
  color: #fff;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 12px 20px;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  text-decoration: none;
  z-index: 9999;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.line-float:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
}

.hero h1,
.hero h2,
.hero h3,
.hero p {
  color: #fff;
}


/* セクションの横幅を中央に制御 */
.content-section > * {
  max-width: 1100px;   /* コンテンツ幅の上限 */
  margin-left: auto;   /* 左右中央寄せ */
  margin-right: auto;
  padding-left: 1rem;  /* スマホ余白 */
  padding-right: 1rem;
}
