@charset "UTF-8";

/* ===== CSS変数 ===== */
:root {
  --color-deep: #1a1025;
  --color-accent: #7b3fa0;
  --color-gold: #c9a84c;
  --color-text: #2a2a2a;
  --color-bg-light: #f8f5f2;
  --font-serif: 'Noto Serif JP', 'Yu Mincho Light', 'YuMincho', '游明朝体', 'ヒラギノ明朝 ProN', serif;
  --font-sans: "ヒラギノ角ゴ ProN W6", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, "ＭＳ Ｐゴシック", sans-serif;
}

/* ===== リセット・基本 ===== */
*:focus {
  outline: none !important;
  box-shadow: none !important;
}

body {
  background-color: var(--color-bg-light);
  color: var(--color-text);
  font-size: 16px;
  line-height: 28px;
  font-family: var(--font-sans);
}

h1, h2, h3, h4 {
  margin: 0;
  padding: 0;
  text-align: center;
}

main a {
  color: var(--color-accent);
  text-underline-offset: 3px;
}
main a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.w-760 {
  max-width: 760px;
  margin: 0 auto;
  width: 100%;
}

@media screen and (min-width: 543px) {
  .br-pc { display: block; }
  .br-sp { display: none; }
}
@media screen and (max-width: 544px) {
  .br-pc { display: none; }
  .br-sp { display: block; }
}

/* ===== ユーティリティ ===== */
.fw_b  { font-weight: bold !important; }
.fc_b  { color: #000 !important; }
.fs_xlg { font-size: 2rem !important; }
.fs_lg  { font-size: 1.5625rem !important; margin-top: 10px; }
.fs_md  { font-size: 1.25rem !important; }
.fs_s   { font-size: 1.3rem !important; text-align: center; }
.fs_ss  { font-size: 0.9rem !important; }
.fs_ss02 { font-size: 0.875rem !important; }
.fs_sg  { font-size: 0.875rem !important; text-align: center; }
.fs_sss { font-size: 0.75rem !important; }
.fs_mt  { font-size: 1.1rem !important; }

.text_area {
  max-width: 800px;
  width: 100%;
  margin: auto;
}
.btn_area { text-align: center; }

:root{
  --nav-bg:#ffffff;
  --nav-text:#333333;
  --nav-accent:#e8743b;   /* ログインボタン等のアクセント */
  --nav-border:#eeeeee;
  --nav-height:70px;
}
 
*{box-sizing:border-box;}
body{margin:0;font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Meiryo",sans-serif;}
 
/* ===== ヘッダー（画面上部に固定） ===== */
.header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:var(--nav-height);
  background:var(--nav-bg);
  border-bottom:1px solid var(--nav-border);
  z-index:1000;
}
.header__inner{
  max-width:1100px;
  height:100%;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
 
/* ロゴ */
.header__logo img{
  display:block;
  height:36px;
  width:auto;
}
 
/* ===== ナビ ===== */
.nav__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:24px;
}
.nav__link{
  color:var(--nav-text);
  text-decoration:none;
  font-size:14px;
  font-weight:bold;
  transition:opacity .2s;
}
.nav__link:hover{opacity:.6;}
 
/* 会員ログイン（ボタン風） */
.nav__login{
  color:#fff;
  background:var(--nav-accent);
  padding:8px 16px;
  border-radius:4px;
  font-size:13px;
}
.nav__login:hover{opacity:.85;}
 
/* ===== ハンバーガー（スマホ用・初期は非表示） ===== */
.nav__toggle{display:none;}
.hamburger{
  display:none;
  flex-direction:column;
  justify-content:space-between;
  width:28px;
  height:20px;
  cursor:pointer;
}
.hamburger span{
  display:block;
  height:3px;
  background:var(--nav-text);
  border-radius:2px;
  transition:transform .3s, opacity .3s;
}
 
/* 本文がヘッダーに隠れないように余白 */
.spacer{height:var(--nav-height);}
 
/* ===== レスポンシブ（スマホ） ===== */
@media (max-width:900px){
  .hamburger{display:flex;}
 
  .nav{
    position:fixed;
    top:var(--nav-height);
    left:0;
    width:100%;
    background:var(--nav-bg);
    border-bottom:1px solid var(--nav-border);
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
  }
  .nav__list{
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    padding:0 20px;
  }
  .nav__list li{
    width:100%;
    border-bottom:1px solid var(--nav-border);
  }
  .nav__link,
  .nav__login{
    display:block;
    width:100%;
    padding:16px 0;
  }
  .nav__login{
    background:none;
    color:var(--nav-accent);
    border-radius:0;
  }
 
  /* チェックボックスがONのときメニューを開く */
  .nav__toggle:checked ~ .nav{max-height:80vh;}
 
  /* ハンバーガー → ×印 */
  .nav__toggle:checked + .hamburger span:nth-child(1){transform:translateY(8.5px) rotate(45deg);}
  .nav__toggle:checked + .hamburger span:nth-child(2){opacity:0;}
  .nav__toggle:checked + .hamburger span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg);}
}

/* ===== ヘッダーバー ===== */
.event-header {
  background-color: var(--color-deep);
  color: #fff;
  text-align: center;
  padding: 10px 15px;
  font-size: 13px;
  letter-spacing: 0.08em;
}
.event-header a {
  color: #d4b8e8;
  text-decoration: none;
}

/* ===== ヒーローセクション ===== */
.hero-section {
  background: linear-gradient(160deg, #1a1025 0%, #2e1a44 55%, #1e2a4a 100%);
  color: #fff;
  padding: 60px 20px 50px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.hero-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(123,63,160,0.18) 0%, transparent 65%),
              radial-gradient(ellipse at 20% 80%, rgba(30,42,74,0.4) 0%, transparent 60%);
  pointer-events: none;
}
.back-wrap { text-align: center; }
.back-link {
  display: inline-block;
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.08em;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,0.2);
  padding: 3px 14px;
  border-radius: 20px;
  margin-bottom: 20px;
}
.back-link:hover { color: #fff; border-color: rgba(255,255,255,0.5); }

.hero-label {
  display: inline-block;
  border: 1px solid rgba(201,168,76,0.7);
  color: var(--color-gold);
  font-size: 12px;
  letter-spacing: 0.18em;
  padding: 4px 18px;
  margin-bottom: 28px;
  font-family: var(--font-sans);
}
.hero-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.55rem, 4vw, 2.5rem);
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: #fff;
  margin-bottom: 12px;
}
.hero-title em {
  font-style: normal;
  color: #d4b8e8;
}
.hero-subtitle {
  font-size: 13px;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,0.55);
  margin-bottom: 36px;
  font-family: var(--font-sans);
}
.hero-speakers {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 38px;
}
.hero-speaker-tag {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 40px;
  padding: 7px 22px;
  font-size: 14px;
  letter-spacing: 0.08em;
  color: #e8ddf5;
  font-family: var(--font-sans);
}
.hero-meta {
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.05em;
  line-height: 2;
}

/* ===== トップ画像 ===== */
.main-visual {
  text-align: center;
  line-height: 0;
}
.main-visual-title {
  margin: 0;
}
.main-visual-title img {
  width: 100%;
  max-width: 760px;
  display: block;
  margin: 0 auto;
}

/* ===== リード文 ===== */
.lead-section {
  background: #fff;
  padding: 50px 20px 44px;
  border-bottom: 1px solid #e8e0d8;
}
.lead-inner {
  max-width: 660px;
  margin: 0 auto;
}
.lead-section p {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 2.1;
  color: #333;
  margin-bottom: 16px;
}
.lead-section p.lead-catch {
  font-size: 1.13rem;
  font-weight: 700;
  color: var(--color-deep);
  margin-bottom: 24px;
  line-height: 1.9;
}
.lead-section p.lead-close {
  font-size: 0.97rem;
  color: var(--color-accent);
  font-weight: 700;
  margin-top: 24px;
  margin-bottom: 0;
}

/* ===== セクション共通 ===== */
.content-section {
  padding: 44px 20px;
}
.content-section.bg-alt {
  background: var(--color-bg-light);
}
.section-inner {
  max-width: 700px;
  margin: 0 auto;
}
.section-heading {
  font-family: var(--font-serif);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  color: var(--color-accent);
  text-align: center;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.section-title {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 700;
  text-align: center;
  color: var(--color-deep);
  margin-bottom: 32px;
  letter-spacing: 0.04em;
}

/* ===== 情報ボックス ===== */
.info-box {
  background: #fff;
  border: 1px solid #ddd5c8;
  border-radius: 4px;
  padding: 28px 30px;
  margin-bottom: 20px;
}
.info-box dl { margin: 0; }
.info-box dt {
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  color: var(--color-accent);
  margin-bottom: 4px;
  font-family: var(--font-serif);
}
.info-box dd {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--color-deep);
  font-weight: 700;
  margin-bottom: 20px;
  line-height: 1.7;
}
.info-box dd:last-child { margin-bottom: 0; }
.info-box dd a { color: var(--color-accent); }
.info-box dd .note {
  font-size: 0.82rem;
  color: #666;
  font-weight: 400;
  display: block;
  margin-top: 2px;
}

/* ===== 表示切替（JS用） ===== */
.is-hidden { display: none; }
.is-visible { display: flex; }

/* ===== テーマリスト ===== */
.etc-label {
  font-style: normal;
  font-size: 0.85rem;
  color: #888;
}

.theme-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.theme-list li {
  font-family: var(--font-serif);
  font-size: 1rem;
  padding: 13px 0;
  border-bottom: 1px solid #e8e0d8;
  line-height: 1.7;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.theme-list li:first-child { border-top: 1px solid #e8e0d8; }
.theme-list li::before {
  content: '◆';
  color: var(--color-accent);
  font-size: 0.6rem;
  margin-top: 6px;
  flex-shrink: 0;
}
.theme-note {
  font-size: 0.8rem;
  color: #888;
  margin-top: 16px;
  text-align: right;
}
.theme-link {
  display: inline-block;
  font-size: 0.82rem;
  margin-top: 4px;
  color: var(--color-accent);
  font-family: var(--font-sans);
}

/* ===== 料金カード ===== */
.price-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 20px;
}
.price-card {
  border: 1px solid var(--color-accent);
  border-radius: 4px;
  padding: 22px 20px;
  background: #fff;
  text-align: center;
}
.price-type {
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: #888;
  margin-bottom: 6px;
  font-family: var(--font-serif);
}
.price-amount {
  font-family: var(--font-serif);
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--color-deep);
}
.price-amount small {
  font-size: 0.75rem;
  color: #888;
  font-weight: 400;
}
.price-note {
  font-size: 0.75rem;
  color: #777;
  margin-top: 8px;
  line-height: 1.6;
}
.price-card.clickable {
  padding: 0;
  transition: transform 0.15s, box-shadow 0.15s;
  cursor: pointer;
}
.price-card.clickable:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(123,63,160,0.18);
}
.price-card-btn {
  display: block;
  width: 100%;
  background: none;
  border: none;
  padding: 22px 20px;
  cursor: pointer;
  text-align: center;
}
.price-cta {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--color-accent);
  margin-top: 14px;
  margin-bottom: 0;
  letter-spacing: 0.06em;
}
.cashback-note {
  background: #f3eaf8;
  border-left: 3px solid var(--color-accent);
  padding: 12px 16px;
  font-size: 0.82rem;
  color: var(--color-deep);
  line-height: 1.7;
  margin-bottom: 28px;
  border-radius: 0 4px 4px 0;
}

/* ===== CTAボタン ===== */
.cta-wrap {
  text-align: center;
  margin: 10px 0 24px;
}
.btn-cta-primary {
  display: inline-block;
  background: var(--color-accent);
  color: #fff !important;
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 18px 50px;
  border-radius: 3px;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.15s;
  box-shadow: 0 4px 18px rgba(123,63,160,0.22);
  width: 100%;
  max-width: 480px;
  text-align: center;
}
.btn-cta-primary:hover {
  background: #6a33a0;
  transform: translateY(-1px);
  color: #fff !important;
}
.btn-cta-form {
  background: none;
  border: none;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  width: 100%;
  padding: 0;
}
.btn-cta-online {
  background: var(--color-deep);
  box-shadow: 0 4px 18px rgba(26,16,37,0.25);
}
.btn-cta-online:hover {
  background: #2e1a44;
}
.btn-cta-secondary {
  display: inline-block;
  background: transparent;
  border: 1.5px solid var(--color-deep);
  color: var(--color-deep) !important;
  font-family: var(--font-serif);
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  padding: 14px 40px;
  border-radius: 3px;
  text-decoration: none !important;
  transition: background 0.2s;
  width: 100%;
  max-width: 480px;
  text-align: center;
}
.btn-cta-secondary:hover {
  background: var(--color-deep);
  color: #fff !important;
}

/* ===== 注意事項リスト ===== */
.notes-list {
  list-style: disc;
  padding-left: 18px;
  margin: 0;
}
.notes-list li {
  font-size: 0.8rem;
  color: #666;
  line-height: 1.8;
  padding: 2px 0;
}

/* ===== プロフィール ===== */
.profile-card {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  margin-bottom: 36px;
  padding-bottom: 36px;
  border-bottom: 1px solid #e8e0d8;
}
.profile-card:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.profile-img-wrap {
  flex-shrink: 0;
  width: 90px;
}
.profile-img-wrap img {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.profile-img-placeholder {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: linear-gradient(135deg, #e8ddf5, #d4b8e8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: var(--color-accent);
}
.profile-body h4 {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-deep);
  text-align: left;
  margin-bottom: 2px;
}
.profile-body .profile-role {
  display: block;
  font-size: 0.75rem;
  color: var(--color-accent);
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}
.profile-body p {
  font-size: 0.82rem;
  line-height: 1.8;
  color: #444;
  margin: 0;
}
.profile-sns {
  display: flex;
  gap: 12px;
  margin-top: 10px;
}
.profile-sns a {
  font-size: 0.75rem;
  color: var(--color-accent);
  text-decoration: none;
  border: 1px solid var(--color-accent);
  padding: 3px 12px;
  border-radius: 20px;
  transition: background 0.2s, color 0.2s;
}
.profile-sns a:hover {
  background: var(--color-accent);
  color: #fff;
}

/* ===== お問い合わせセクション ===== */
.contact-section { text-align: center; }
.contact-note {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 18px;
}
.btn-cta-narrow { max-width: 340px; }

/* ===== 主催説明ボックス ===== */
.about-box {
  border: 1px dotted #bbb;
  border-radius: 4px;
  padding: 24px 26px;
  background: #fff;
}
.about-box p.about-title {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-deep);
  margin-bottom: 12px;
}
.about-box p {
  font-size: 0.85rem;
  line-height: 1.85;
  color: #444;
  margin: 0;
}
.about-box .about-sign {
  text-align: right;
  font-size: 0.78rem;
  color: #888;
  margin-top: 12px;
}

/* ===== 会場写真 ===== */
.venue-photo-wrap {
  margin-top: 20px;
  border-radius: 4px;
  overflow: hidden;
  line-height: 0;
}
.venue-photo {
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* ===== 区切り線 ===== */
.divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, #d4b8e8 30%, #d4b8e8 70%, transparent);
}

/* ===== フッター ===== */
footer.site-footer {
  background-color: var(--color-deep);
  color: rgba(255,255,255,0.6);
  padding: 30px 20px 20px;
}
footer.site-footer .footer-logo {
  display: flex;
  justify-content: center;
  margin-bottom: 16px;
}
footer.site-footer .footer-logo img { width: 60px; }
footer.site-footer .footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 20px;
  margin-bottom: 16px;
}
footer.site-footer .footer-nav a {
  color: rgba(255,255,255,0.55);
  font-size: 12px;
  text-decoration: none;
}
footer.site-footer .footer-nav a:hover { color: #fff; }
footer.site-footer .copyright {
  text-align: center;
  font-size: 11px;
  color: rgba(255,255,255,0.3);
}

/* ===== スマホ対応 ===== */
@media screen and (max-width: 544px) {
  .hero-speakers,
  .hero-meta { display: none; }
  .price-grid { grid-template-columns: 1fr; }
  .profile-card { flex-direction: column; align-items: center; }
  .profile-body h4 { text-align: center; }
  .profile-body .profile-role { text-align: center; }
}
