:root{
  --bg:#eaf6ff;            /* 全体背景：淡い水色 */
  --card:#ffffff;          /* カードは白 */
  --text:#1a2a3a;          /* 濃い青グレー文字 */
  --muted:#5f6f82;
  --accent:#2f80ed;        /* 青系アクセント */
  --accent2:#2fbf9f;
  --line:#d6e6f2;
  --shadow: 0 6px 18px rgba(0,0,0,.08);
  --radius: 14px;
  --max: 1080px;
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family:var(--font);
  color:var(--text);
  font-size:20px; 
  background:var(--bg);
  line-height:1.6;
}

a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}

.container{max-width:var(--max); margin:0 auto; padding:0 18px}

/* ===== Fixed top header =====
  / 画面上部に固定して、スクロールしてもメニューが残るようにします */
header{
  position: fixed;          /* ✅ 固定する */
  top: 0;                   /* ✅ 画面上端に貼り付け */
  left: 0;
  width: 100%;
  z-index: 1000;            /* ✅ 画像より前面に出す */

  background:#ffffffcc;     /* ✅ 半透明白 */
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}

/* ===== Header menu buttons ===== */

.nav{
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;   /* 折り返し禁止 */
  gap: 12px;
}

.main-title{
  font-style: italic;
  color: #2f80ed;
  font-size: 2em;      /* 3em だと厳しいので少し下げる */
  font-weight: 700;
  flex: 1 1 auto;
  min-width: 0;
}

.menu{
  display: flex;
  flex-wrap: nowrap;   /* ボタン折り返し禁止 */
  gap: 8px;
  flex: 0 0 auto;
}

.menu a{
  display: inline-block;          /* ボタン形にする */
  margin-left: 0px;
  padding: 8px 16px;              /* 内側の余白 */
  background-color: #2f80ed;      /* ボタン色 */
  color: white;                   /* 文字色 */
  border-radius: 6px;             /* 角を丸く */
  text-decoration: none;
  font-weight: 500;
  transition: 0.2s ease;          /* ホバーアニメーション */
  white-space: nowrap;  /* ← 文字の折り返し防止 */
}

.menu a:hover{
  background-color: #1c5fd1;      /* マウスを乗せた時 */
  transform: translateY(-2px);    /* 少し浮かせる */
}

.hero{
  padding:40px 0 20px;
}

.h-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px;
}

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px;
}

.table{
  width:100%;
  border-collapse:collapse;
  border:1px solid var(--line);
  background:white;
}

.table th, .table td{
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}

.table th{
  background:#f0f8ff;
  text-align:left;
}

.footer{
  padding:30px 0;
  border-top:1px solid var(--line);
  font-size:13px;
  color:var(--muted);
}

/* ===== Hero Image ===== */

.hero-image{
  margin-top:70px; /* 固定ヘッダー分 */
  height:380px;
  background-image:url("header.png"); /* ← 画像ファイル名 */
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}

.hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.35);
}

.hero-text{
  position:relative;
  color:white;
  text-align:center;
}

.hero-text h1{
  font-size:48px;
  margin:0;
}

.hero-text p{
  font-size:20px;
}

.site-title{
  color: #2f80ed;
  font-weight: 700;
}

/* ===== Program Title ===== */
.program-title{
  font-size:32px;
  border-left:6px solid #2f80ed;
  padding-left:12px;
  margin-bottom:20px;
}

/* ===== Table Style ===== */
.program-table{
  width:100%;
  border-collapse:collapse;
  background:white;
  box-shadow:0 6px 18px rgba(0,0,0,.08);
  border-radius:10px;
  overflow:hidden;
}

.program-table th{
  background:#2f80ed;
  color:white;
  padding:12px;
  text-align:left;
  font-size:18px;
}

.program-table td{
  padding:12px;
  border-bottom:1px solid #e6e6e6;
  vertical-align:top;
}

/* Speaker smaller and muted */
.speaker{
  color:#666;
  font-size:0.9em;
  margin-top:3px;
}

/* ===== Special Rows ===== */
.special{
  font-weight:600;
}

.lunch{
  background:#fff3cd;
}

.coffee{
  background:#e3f2fd;
}

.closing{
  background:#f8d7da;
}

.label{
  color: #2f80ed;   /* 今使っているアクセント青 */
}

p{
  padding-left: 12px;
  border-left: 3px solid #e0e0e0;  /* うっすら線 */
}

p,
ul{
  border-left: 3px solid #e0e0e0; /* うっすら線 */
  padding-left: 30px;
}