@charset "UTF-8";
/* ==========================================================
   印刷用スタイル（A4縦）
   index.html で style.css の後に media="print" で読み込む。
   画面用の style.css を上書きする形で、
   ・ナビやボタンなど紙で使えない要素を隠す
   ・広い背景色を外してインクを節約する
   ・リンク先URLを文字で表示する
   ・カードや経路の途中で改ページしないようにする
   ========================================================== */

@page {
  size: A4 portrait;
  margin: 14mm 13mm 14mm;
}

/* 紫のバッジなど、色が意味を持つ小さな要素は色を残す */
* {
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  box-shadow: none !important;
  text-shadow: none !important;
}

html { scroll-padding-top: 0; }

body {
  background: #fff !important;
  color: #000;
  font-size: 10pt;
  line-height: 1.6;
}

/* style.css の max-width:760px / 900px のメディアクエリが
   印刷時に効いてしまうため、余白・幅はここで明示的に指定する */
.container,
.about {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}

/* ---------- 紙では使えない要素を隠す ---------- */
.skip-link,
.site-header,
.hero__actions,
.entry__box .btn,
.btn svg {
  display: none !important;
}

/* ---------- リンク先を文字で添える ---------- */
a { color: inherit; text-decoration: none; }
.route .note a::after {
  content: "（" attr(href) "）";
  font-size: 8pt;
  word-break: break-all;
}
.contact__detail a { color: #000; }

.print-only { display: block !important; }

/* ---------- ヒーロー ---------- */
.hero {
  background: none !important;
  border-bottom: 1.5pt solid var(--c-primary);
}
.hero__inner {
  flex-wrap: nowrap !important;
  gap: 8mm !important;
  padding: 0 0 6mm !important;
  align-items: center;
}
.hero__text { flex: 1 1 auto !important; gap: 3mm !important; }
.hero__label { font-size: 9pt !important; padding: 1mm 4mm !important; }

/* グラデーション文字は印刷環境で消えることがあるため単色にする */
.hero__title {
  font-size: 30pt !important;
  line-height: 1.2 !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: var(--c-heading) !important;
  color: var(--c-heading) !important;
}
.hero__catch { font-size: 12.5pt !important; }
.hero__date { margin-top: 1mm !important; gap: 2mm 6mm !important; }
.hero__day { font-size: 22pt !important; }
.hero__day small { font-size: 12pt !important; }
.hero__time { font-size: 11pt !important; }
.hero__time small { font-size: 9pt !important; }
.chips li { font-size: 8.5pt !important; padding: 0.6mm 3mm !important; }
.hero__visual { flex: 0 0 58mm !important; }
.hero__visual img { max-width: 58mm !important; mix-blend-mode: normal !important; }

/* ---------- 開催概要の帯 ---------- */
.info-strip {
  background: none !important;
  border: 0 !important;
}
.info-strip__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 2.5mm 6mm !important;
  padding: 4mm 0 !important;
  border-bottom: 0.5pt solid var(--c-border);
}
.info-item { gap: 2mm !important; break-inside: avoid; }
.info-item svg { width: 6mm !important; height: 6mm !important; }
.info-item dt { font-size: 8pt !important; }
.info-item dd { font-size: 8.5pt !important; }
.info-item dd strong { font-size: 9.5pt !important; }

/* ---------- セクション共通 ---------- */
.section,
.section--white,
.section--bordered,
#contact {
  background: none !important;
  border-top: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
section { margin-top: 6mm; }
.section-head { gap: 1mm !important; margin-bottom: 3mm !important; break-after: avoid; }
.section-head__en { font-size: 8pt !important; }
.section-head__title { font-size: 15pt !important; }
h2, h3, h4 { break-after: avoid; }
p { orphans: 3; widows: 3; }

/* 概要 */
.about { padding: 0 !important; }
.about p { font-size: 10pt !important; line-height: 1.8 !important; }
.about p + p { margin-top: 2mm !important; }

/* ---------- プログラム ---------- */
.program { padding: 0 !important; }
.program__list { gap: 4mm !important; }
.session {
  border-radius: 3mm !important;
  border: 0.75pt solid var(--c-border) !important;
  break-inside: avoid;
}
.session__head { padding: 2mm 5mm !important; gap: 2mm 5mm !important; }
.session__part { font-size: 10pt !important; padding: 0.5mm 3mm !important; }
.session__time { font-size: 10pt !important; }
.session__title { font-size: 11pt !important; }
.session__body { padding: 4mm 5mm !important; }

.keynote { flex-wrap: nowrap !important; gap: 5mm !important; }
.keynote img {
  width: 36mm !important;
  height: 29mm !important;
  aspect-ratio: auto !important;
  border-radius: 2mm !important;
}
.keynote__text { flex: 1 1 auto !important; gap: 2mm !important; }
.keynote__theme { font-size: 13pt !important; }
.speaker-line__name { font-size: 12pt !important; }
.speaker-line__aff { font-size: 9pt !important; }

.speakers { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 4mm !important; }
.speaker { gap: 3mm !important; break-inside: avoid; }
.speaker img { width: 17mm !important; height: 23mm !important; border-radius: 1.5mm !important; }
.speaker__body { gap: 0.5mm !important; }
.speaker__univ { font-size: 8pt !important; }
.speaker__theme { font-size: 9.5pt !important; }
.speaker__name { font-size: 9.5pt !important; margin-top: 1mm !important; }
.speaker__name small { font-size: 8pt !important; }
.speaker__aff { font-size: 8pt !important; }

.company { flex-wrap: nowrap !important; gap: 6mm !important; }
.company__name { font-size: 11pt !important; white-space: nowrap; }
.company p { flex: 1 1 auto !important; font-size: 9.5pt !important; line-height: 1.7 !important; }

/* ---------- 会場・参加方法 ---------- */
.entry { flex-wrap: nowrap !important; gap: 6mm !important; break-inside: avoid; }
.entry__text { flex: 1 1 55% !important; gap: 2mm !important; }
.entry__venue { font-size: 13pt !important; }
.entry__text p { font-size: 9.5pt !important; line-height: 1.7 !important; }
.entry__box {
  flex: 1 1 45% !important;
  background: none !important;
  border: 1pt solid var(--c-primary);
  border-radius: 3mm !important;
  padding: 4mm 5mm !important;
  gap: 2mm !important;
}
.entry__box h3 { font-size: 12pt !important; }
.entry__box p { font-size: 9pt !important; }
.entry__box .print-url {
  font-size: 10pt;
  font-weight: 700;
  color: var(--c-primary-deep);
  word-break: break-all;
}

/* ---------- アクセス（新しいページから始める） ---------- */
#access { break-before: page; margin-top: 0; }
.venue-badge { font-size: 9pt !important; padding: 0.8mm 4mm !important; margin-top: 1mm !important; }
.access { flex-wrap: nowrap !important; gap: 5mm !important; align-items: flex-start; }
.routes { flex: 1 1 52% !important; gap: 2mm !important; }
.route {
  padding: 2.5mm 3.5mm !important;
  gap: 2.5mm !important;
  border-radius: 2mm !important;
  border: 0.75pt solid var(--c-border) !important;
  break-inside: avoid;
}
.route__num { width: 5.5mm !important; height: 5.5mm !important; font-size: 9pt; }
.route h4 { font-size: 10pt !important; margin-bottom: 0.5mm !important; }
.route p { font-size: 8.5pt !important; line-height: 1.6 !important; }
.route .note { font-size: 8pt !important; }
.access__map { flex: 1 1 48% !important; }
.access__map img { border-radius: 2mm !important; max-height: 88mm; width: auto !important; max-width: 100% !important; margin: 0 auto; }

.guide-title { font-size: 12pt !important; margin: 4mm 0 2.5mm !important; }
.guide { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 4mm !important; }
.guide__card {
  padding: 3mm !important;
  gap: 2mm !important;
  border-radius: 2mm !important;
  border: 0.75pt solid var(--c-border) !important;
  break-inside: avoid;
}
.guide__head h4 { font-size: 10pt !important; }
.guide__num { font-size: 9pt !important; padding: 0.5mm 2.5mm !important; }
.guide__card img { max-height: 40mm; width: auto !important; max-width: 100% !important; margin: 0 auto; border-radius: 1.5mm !important; }
.guide__card p { font-size: 8.5pt !important; line-height: 1.6 !important; }

.notice {
  margin-top: 3mm !important;
  padding: 2.5mm 4mm !important;
  font-size: 9pt !important;
  background: none !important;
  border: 0.75pt solid var(--c-border);
  border-radius: 2mm !important;
  break-inside: avoid;
}

/* ---------- お問い合わせ ---------- */
#contact { margin-top: 4mm; }
.contact {
  padding: 3mm 0 0 !important;
  gap: 3mm 10mm !important;
  flex-wrap: nowrap !important;
  border-top: 0.5pt solid var(--c-border);
  break-inside: avoid;
}
.contact__icon { width: 9mm !important; height: 9mm !important; }
.contact__icon svg { width: 5mm !important; height: 5mm !important; }
.contact__label strong { font-size: 11pt !important; }
.contact__label small,
.contact__label span { font-size: 8pt !important; }
.contact__detail { font-size: 10pt !important; }

/* ---------- フッター（濃い背景をやめて文字だけに） ---------- */
.site-footer {
  background: none !important;
  color: #000 !important;
  margin-top: 4mm;
  border-top: 0.5pt solid var(--c-border);
  break-inside: avoid;
}
.site-footer__inner { padding: 3mm 0 0 !important; font-size: 9pt !important; }
.site-footer p + p { margin-top: 0.5mm !important; }
.site-footer .copy { display: none; }
