/* ハルノワ 開催日程・参加方法ページ専用CSS（このページ以外には読み込まれません）
   色・文字サイズを変えたいときは、まず下の変数だけを編集してください。 */
.hw-sch-top, .hw-sch-hero, .hw-sec {
  --hw-navy: #0D3344;       /* 見出し・Dayの札（LPのブルーグリーンの濃色） */
  --hw-ink: #3A3F41;        /* 本文 */
  --hw-gold: #C49A45;       /* 差し色 */
  --hw-gold-soft: #D9BF84;
  --hw-line: #E7DEC9;
  --hw-bg: #FEF8F1;         /* ページ背景（特典ページと同じアイボリー） */
  --hw-mist: #EAF3F2;       /* 淡いブルーグリーン */
  --hw-cream-gold: #FBF1DD; /* アーカイブ期限の背景 */
  --hw-sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "Meiryo", sans-serif;
  --hw-serif: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "Noto Serif CJK JP", serif;
  --hw-measure: 560px;
  --hw-side: max(22px, env(safe-area-inset-left), env(safe-area-inset-right));
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color-scheme: light; }
body.hw-kind-schedule { margin: 0; background: #FEF8F1; color: #3A3F41; font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "Meiryo", sans-serif; -webkit-font-smoothing: antialiased; }
.hw-story { display: block; overflow-x: clip; }

.hw-sch-top, .hw-sch-hero, .hw-sec {
  box-sizing: border-box; padding-left: var(--hw-side); padding-right: var(--hw-side);
  font-family: var(--hw-sans); font-size: clamp(16.5px, 4.4vw, 18px); line-height: 1.95; letter-spacing: .03em;
  line-break: strict; overflow-wrap: anywhere; color: var(--hw-ink);
}
.hw-sch-top > *, .hw-sch-hero > *, .hw-sec > * { max-width: var(--hw-measure); margin-left: auto; margin-right: auto; }
.hw-sch-top p, .hw-sch-hero p, .hw-sec p { font-family: var(--hw-sans); padding: 0; margin-top: 0; margin-bottom: 0; font-size: inherit; line-height: inherit; color: inherit; text-wrap: pretty; }

/* ---- 上部の細い帯（LPのブルーグリーンとつなぐ） ---- */
.hw-sch-top { background: var(--hw-navy); padding-top: 13px; padding-bottom: 13px; }
.hw-sch-top p.hw-sch-brand { font-family: var(--hw-serif); font-size: 12.5px; letter-spacing: .36em; color: #E9D9AE; text-align: center; padding-left: .36em; line-height: 1.4; }

/* ---- タイトル ---- */
.hw-sch-hero { background: linear-gradient(to bottom, #EEF6F4 0, #F6F8F2 55%, var(--hw-bg) 100%); text-align: center; padding-top: 34px; padding-bottom: 30px; }
.hw-sch-hero p.hw-eyebrow {
  display: flex; align-items: center; justify-content: center; gap: .9em; font-size: 13.5px; letter-spacing: .2em; color: #9A7A33; margin-bottom: 14px; font-weight: 500;
}
.hw-sch-hero p.hw-eyebrow::before, .hw-sch-hero p.hw-eyebrow::after { content: ""; width: 26px; height: 1px; background: var(--hw-gold-soft); }
.hw-sch-title {
  font-family: var(--hw-serif); font-weight: 700; font-size: clamp(22px, 6.2vw, 32px); line-height: 1.55; letter-spacing: .05em;
  color: var(--hw-navy); margin: 0 auto; text-wrap: balance;
}
.hw-sch-hero h1.hw-sch-title { font-family: var(--hw-serif) !important; font-weight: 700 !important; color: var(--hw-navy) !important; margin: 0 auto !important; padding: 0 !important; border: 0 !important; background: none !important; text-align: center !important; letter-spacing: .05em !important; line-height: 1.55 !important; }

/* ---- テーマ・編集画面のCSSの干渉を防ぐ（見出しの飾り・余白・フォントの上書きなど） ---- */
.hw-sch-hero :is(h1, p), .hw-sec :is(h2, p), .hw-sch-top p {
  min-height: 0 !important; height: auto !important; float: none !important; text-indent: 0 !important; text-shadow: none !important;
  box-shadow: none !important; background-image: none; text-transform: none !important;
}
.hw-sec p::before, .hw-sec p::after, .hw-sec h2::before, .hw-sch-hero h1::before, .hw-sch-hero h1::after, .hw-sch-top p::before, .hw-sch-top p::after { content: none !important; }

/* ---- 各セクション ---- */
.hw-sec { padding-top: 34px; padding-bottom: 34px; background: var(--hw-bg); }
.hw-sec + .hw-sec { border-top: 1px solid var(--hw-line); }
.hw-sec--last { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
.hw-sec p:not([class]) { margin: 0 !important; padding: 0 !important; letter-spacing: .03em !important; font-family: var(--hw-sans) !important; line-height: 1.95 !important; font-size: inherit !important; }
.hw-sec p:not([class]) + p:not([class]) { margin-top: .55em !important; }
.hw-sec h2.hw-sec-title {
  font-family: var(--hw-serif) !important; font-weight: 700 !important; font-size: clamp(20px, 5.4vw, 23px) !important; line-height: 1.5 !important; letter-spacing: .1em !important;
  color: var(--hw-navy) !important; margin: 0 auto 18px !important; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; position: static !important;
}
.hw-sec h2.hw-sec-title::after { content: "" !important; display: block; width: 34px; height: 2px; background: var(--hw-gold-soft); margin-top: 10px; border: 0; position: static; }

/* ---- 日程：Dayの札＋日付（横並び） ---- */
.hw-sec .hw-day { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: flex-start !important; gap: 18px !important; padding: 12px 0 !important; border-bottom: 1px solid var(--hw-line); margin-top: 0 !important; margin-bottom: 0 !important; }
.hw-sec .hw-day:first-of-type { padding-top: 0 !important; }
.hw-sec .hw-day > * { margin: 0 !important; width: auto !important; max-width: none !important; }
.hw-sec .hw-day p.hw-day-label {
  flex: 0 0 auto !important; box-sizing: border-box !important; min-width: 78px !important; padding: 5px 14px 6px !important; border: 0 !important; border-radius: 999px !important; background: var(--hw-navy) !important; color: #FEF8F1 !important;
  font-family: var(--hw-sans) !important; font-size: 15px !important; font-weight: 700 !important; letter-spacing: .1em !important; line-height: 1.4 !important; text-align: center !important; white-space: nowrap;
}
.hw-sec .hw-day p.hw-day-date {
  flex: 1 1 auto !important; padding: 0 !important; border: 0 !important; background: none !important; color: var(--hw-navy) !important;
  font-family: var(--hw-serif) !important; font-weight: 700 !important; font-size: clamp(24px, 6.8vw, 28px) !important; line-height: 1.4 !important; letter-spacing: .04em !important; text-align: left !important;
}
.hw-sec p.hw-time-box {
  margin: 20px auto 0 !important; padding: 14px 16px !important; border: 0 !important; border-radius: 14px !important; background: var(--hw-mist) !important; color: var(--hw-navy) !important;
  font-family: var(--hw-serif) !important; font-weight: 700 !important; font-size: clamp(17px, 4.7vw, 19px) !important; line-height: 1.6 !important; letter-spacing: .05em !important; text-align: center !important;
}

/* ---- アーカイブ期限 ---- */
.hw-sec p.hw-deadline {
  margin: 18px auto 0 !important; padding: 14px 16px !important; border: 1px solid #E7D3A4 !important; border-radius: 14px !important; background: var(--hw-cream-gold) !important; color: var(--hw-navy) !important;
  font-family: var(--hw-serif) !important; font-weight: 700 !important; font-size: clamp(17px, 4.7vw, 19px) !important; line-height: 1.6 !important; letter-spacing: .04em !important; text-align: center !important;
}

@media (min-width: 720px) {
  .hw-sch-top, .hw-sch-hero, .hw-sec { font-size: 18px; }
  .hw-sch-hero { padding-top: 48px; padding-bottom: 40px; }
  .hw-sch-title { font-size: 34px; }
  .hw-sec { padding-top: 44px; padding-bottom: 44px; }
}
