:root{
  /* フライヤー由来のブランドカラー */
  --navy-deep:#0A1E45;
  --navy:#123566;
  --blue:#1E5AA8;
  --magenta:#B0225F;
  --gold:#DFA33F;

  /* 本文まわり（可読性優先で維持） */
  --pale:#EEF3F9;
  --ink:#2B2B2B;
  --sub:#5A6B7A;
  --line:#D3DEE8;
  --white:#FFFFFF;

  --mincho:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho",YuMincho,"MS PMincho",serif;
  --gothic:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,"Noto Sans JP",sans-serif;
}

*{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  font-family:var(--gothic);
  font-size:18px;
  line-height:1.9;
  color:var(--ink);
  background:var(--white);
  overflow-wrap:break-word;
}

img{max-width:100%;height:auto;}

a{color:var(--blue);}

.wrap{
  max-width:840px;
  margin:0 auto;
  padding:0 20px;
}

/* ---------- header ---------- */

.site-header{
  padding:16px 0 0;
  background:var(--white);
}
.site-header .wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 14px;
  padding-bottom:14px;
}
.site-header .brandline{
  height:3px;
  background:linear-gradient(90deg,var(--navy-deep) 0%,var(--blue) 45%,var(--magenta) 100%);
}
.site-title{
  font-size:19px;
  font-weight:700;
  color:var(--navy);
  text-decoration:none;
  line-height:1.4;
}
.site-title span{
  display:block;
  font-size:12px;
  font-weight:400;
  color:var(--sub);
  letter-spacing:.14em;
}

/* ---------- hero（アーカイブ共通・淡色） ---------- */

.hero{
  background:var(--pale);
  padding:44px 0;
  border-bottom:1px solid var(--line);
}
.hero h1{
  margin:0 0 10px;
  font-size:26px;
  line-height:1.6;
  color:var(--navy);
}
.hero p{
  margin:0;
  color:var(--sub);
  font-size:16px;
}

/* ---------- hero（Fontanセミナー・ブランド面） ---------- */

.hero-fontan{
  background:
    linear-gradient(148deg,
      var(--navy-deep) 0%,
      #14336B 30%,
      var(--blue) 55%,
      #6A2A78 82%,
      var(--magenta) 100%);
  color:#fff;
  padding:52px 0 46px;
}

.lockup-lead{
  font-family:var(--mincho);
  font-size:clamp(17px,4.2vw,23px);
  letter-spacing:.14em;
  margin:0 0 10px;
  color:#fff;
}
.lockup-name{
  margin:0 0 14px;
  line-height:1.2;
}
.lockup-name b{
  display:inline-block;
  background:#fff;
  color:var(--navy-deep);
  font-family:var(--mincho);
  font-weight:700;
  font-size:clamp(23px,6.2vw,42px);
  letter-spacing:.02em;
  padding:.18em .32em .24em;
  white-space:nowrap;
  vertical-align:middle;
}
.lockup-name i{
  display:inline-block;
  font-style:normal;
  font-family:var(--mincho);
  font-size:clamp(20px,4.8vw,32px);
  letter-spacing:.06em;
  margin-left:.5em;
  padding-bottom:2px;
  border-bottom:2px solid var(--gold);
  vertical-align:middle;
}
.lockup-sub{
  font-family:var(--mincho);
  font-size:clamp(16px,3.9vw,24px);
  letter-spacing:.06em;
  margin:0;
  color:#fff;
}
.lockup-sub em{
  font-style:normal;
  color:var(--gold);
}
.lockup-sub s{
  text-decoration:none;
  border:1px solid rgba(255,255,255,.85);
  padding:0 .12em;
  margin:0 .04em;
}

.hero-meta{
  margin:26px 0 0;
  padding:16px 0 0;
  border-top:1px solid rgba(255,255,255,.32);
  font-size:16px;
  color:rgba(255,255,255,.94);
  line-height:1.8;
}

/* ---------- sections ---------- */

section{padding:40px 0;}
section + section{border-top:1px solid var(--line);}

h2{
  font-size:22px;
  color:var(--navy);
  margin:0 0 20px;
  padding-left:12px;
  border-left:5px solid var(--blue);
  line-height:1.5;
}
h3{
  font-size:19px;
  color:var(--navy);
  margin:28px 0 8px;
}

.eyebrow{
  display:inline-block;
  background:var(--navy-deep);
  color:#fff;
  font-size:13px;
  letter-spacing:.16em;
  padding:4px 14px;
  margin-bottom:14px;
}
.eyebrow.alt{background:var(--magenta);}

/* ---------- cards ---------- */

.card{
  border:1px solid var(--line);
  border-radius:6px;
  padding:26px 22px;
  background:#fff;
}
.card.accent{
  border:2px solid var(--navy);
}
.card h3:first-child{margin-top:0;}

.card .title{
  font-size:23px;
  font-weight:700;
  color:var(--navy);
  line-height:1.5;
  margin:0 0 4px;
}
.card .sub{
  color:var(--sub);
  font-size:16px;
  margin:0 0 16px;
}

/* TOPのイベントカード */
.event-card{
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
.event-card__brand{
  background:
    linear-gradient(140deg,
      var(--navy-deep) 0%,
      #14336B 34%,
      var(--blue) 60%,
      #6A2A78 86%,
      var(--magenta) 100%);
  color:#fff;
  padding:28px 22px 26px;
}
.event-card__body{
  padding:24px 22px 26px;
}

.meta{
  margin:0 0 18px;
  padding:0;
  list-style:none;
  font-size:16px;
}
.meta li{
  padding:8px 0;
  border-bottom:1px dotted var(--line);
}
.meta li:last-child{border-bottom:none;}
.meta b{
  display:inline-block;
  min-width:7.5em;
  color:var(--sub);
  font-weight:500;
}
.meta.chips b{
  min-width:0;
  background:var(--navy);
  color:#fff;
  font-weight:700;
  font-size:14px;
  letter-spacing:.06em;
  padding:2px 10px;
  margin-right:12px;
  border-radius:2px;
}

/* ---------- buttons ---------- */

.btn{
  display:block;
  width:100%;
  text-align:center;
  padding:18px 16px;
  min-height:58px;
  font-size:18px;
  font-weight:700;
  border-radius:6px;
  text-decoration:none;
  border:2px solid var(--navy);
  cursor:pointer;
  font-family:inherit;
  line-height:1.4;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease;
}
.btn-primary{
  background:var(--navy);
  color:#fff;
}
.btn-secondary{
  background:#fff;
  color:var(--navy);
}
.btn:hover{
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
}
.btn:active{
  background:var(--navy-deep);
  border-color:var(--navy-deep);
}
.btn:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:3px;
}

.note{
  font-size:15px;
  color:var(--sub);
  margin:10px 0 0;
}

.notice{
  background:var(--pale);
  border-left:5px solid var(--blue);
  padding:16px 18px;
  font-size:16px;
  margin:0 0 24px;
}
.notice strong{color:var(--navy);}

.pending{
  border:1px dashed var(--line);
  border-radius:6px;
  padding:26px 22px;
  color:var(--sub);
  text-align:center;
}

/* ---------- lecture list ---------- */

.day-head{
  margin:36px 0 16px;
  padding-bottom:10px;
  border-bottom:2px solid var(--navy);
}
.day-head .day{
  display:inline-block;
  background:var(--navy);
  color:#fff;
  font-size:14px;
  letter-spacing:.18em;
  font-weight:700;
  padding:3px 14px;
  margin-bottom:8px;
}
.day-head .part{
  font-size:21px;
  color:var(--navy);
  font-weight:700;
  line-height:1.5;
}

.lecture{
  border:1px solid var(--line);
  border-left:4px solid var(--blue);
  border-radius:6px;
  margin-bottom:14px;
  overflow:hidden;
  background:#fff;
}
.lecture-head{
  padding:20px 20px 22px;
}
.lecture-no{
  display:inline-block;
  background:var(--pale);
  color:var(--navy);
  font-weight:700;
  font-size:15px;
  letter-spacing:.06em;
  padding:2px 10px;
  border-radius:3px;
  margin-bottom:8px;
}
.lecture-title{
  font-size:21px;
  font-weight:700;
  color:var(--navy);
  line-height:1.5;
  margin:0 0 4px;
}
.lecture-sub{
  font-size:16px;
  color:var(--sub);
  margin:0 0 4px;
}
.lecture-by{
  font-size:16px;
  color:var(--ink);
  margin:0 0 16px;
}
/* 購入完了ページの合言葉表示（追記） */
.passphrase-label{
  margin:24px 0 6px;
  font-size:15px;
  font-weight:700;
  color:var(--sub);
  letter-spacing:.08em;
}
.passphrase{
  margin:0 0 20px;
  padding:18px 16px;
  background:var(--pale);
  border:2px solid var(--navy);
  border-radius:6px;
  text-align:center;
  font-size:26px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--navy-deep);
  word-break:break-all;
  font-family:var(--gothic);
}

/* 価格表示（購入ブロック用・追記） */
.price{
  font-size:38px;
  font-weight:700;
  color:var(--navy);
  line-height:1.2;
  margin:0 0 18px;
  letter-spacing:.01em;
}
.price span{
  font-size:18px;
  font-weight:700;
  margin-left:4px;
}

/* 準備中の講義（既存の .lecture に追加されるだけの指定） */
.lecture.is-pending{
  border-left-color:var(--line);
  background:#FAFCFE;
}
.lecture.is-pending .lecture-title{color:var(--sub);}
.lecture.is-pending .lecture-no{
  background:#F1F4F7;
  color:var(--sub);
}
.pending-label{
  margin:0;
  padding:14px 16px;
  border:1px dashed var(--line);
  border-radius:6px;
  text-align:center;
  color:var(--sub);
  font-size:16px;
  font-weight:700;
  background:#fff;
}

.player-box{
  padding:0 20px 20px;
}
.player-box iframe{
  width:100%;
  aspect-ratio:16/9;
  border:none;
  background:#000;
  border-radius:4px;
  display:block;
}
.player-note{
  font-size:15px;
  color:var(--sub);
  margin:10px 0 0;
}

/* ---------- gate ---------- */

.gate-box{
  max-width:520px;
  margin:0 auto;
}
.gate-box input[type="text"]{
  width:100%;
  padding:16px 14px;
  font-size:20px;
  font-family:inherit;
  border:2px solid var(--line);
  border-radius:6px;
  margin-bottom:16px;
  background:#fff;
  color:var(--ink);
}
.gate-box input[type="text"]:focus{
  border-color:var(--blue);
  outline:3px solid rgba(30,90,168,.25);
  outline-offset:0;
}
.error{
  background:#FCEAF1;
  border-left:5px solid var(--magenta);
  padding:14px 16px;
  margin:0 0 20px;
  font-size:16px;
}

/* ---------- footer ---------- */

.site-footer{
  background:var(--pale);
  border-top:3px solid var(--navy-deep);
  padding:36px 0;
  font-size:15px;
  color:var(--sub);
  line-height:1.9;
}
.site-footer b{color:var(--navy);}
.site-footer .links{
  margin:20px 0;
  padding:20px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.site-footer .links a{
  display:inline-block;
  margin:0 14px 6px 0;
}
.site-footer .credit{font-size:14px;}

/* ---------- responsive ---------- */

@media (max-width:600px){
  body{font-size:17px;}
  .hero{padding:32px 0;}
  .hero h1{font-size:22px;}
  .hero-fontan{padding:36px 0 32px;}
  .hero-meta{font-size:15px;}
  h2{font-size:20px;}
  .card{padding:20px 16px;}
  .card .title{font-size:20px;}
  .event-card__brand{padding:22px 16px;}
  .event-card__body{padding:20px 16px 22px;}
  .lecture-head{padding:18px 16px 20px;}
  .player-box{padding:0 16px 16px;}
  .lecture-title{font-size:19px;}
  .day-head .part{font-size:19px;}
  .meta b{display:block;min-width:0;}
  .meta.chips b{display:inline-block;margin-bottom:4px;}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important;scroll-behavior:auto !important;}
}

/* ---------- archive hub / 2025 heart-function ---------- */
.archive-hero .eyebrow{margin-bottom:18px;}
.seminar-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.seminar-tile{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff;display:flex;flex-direction:column;}
.seminar-tile__head{padding:26px 22px;color:#fff;min-height:180px;}
.seminar-tile__body{padding:24px 22px;display:flex;flex-direction:column;flex:1;}
.seminar-tile__body .btn{margin-top:auto;}
.fontan-tile .seminar-tile__head{background:linear-gradient(140deg,var(--navy-deep),var(--blue) 58%,var(--magenta));}
.heart-tile .seminar-tile__head{background:linear-gradient(140deg,#3b0714,#74152c 60%,#a51e44);}
.year-badge{display:inline-block;border:1px solid rgba(255,255,255,.65);padding:2px 9px;border-radius:99px;font-size:13px;letter-spacing:.12em;}
.seminar-kicker{font-family:var(--mincho);font-size:15px;letter-spacing:.08em;margin:15px 0 5px;opacity:.95;}
.seminar-tile h3{color:#fff;font-family:var(--mincho);font-size:28px;margin:0;line-height:1.35;}
.seminar-sub{margin:5px 0 0;font-family:var(--mincho);}
.tile-price{font-size:30px;font-weight:700;color:var(--navy);margin:10px 0 18px;line-height:1.2;}
.tile-price span{font-size:14px;font-weight:500;margin-left:4px;color:var(--sub);}
.bundle-section{background:#f8fafc;}
.bundle-card{display:grid;grid-template-columns:1fr 250px;gap:24px;align-items:center;border:2px solid var(--gold);border-radius:9px;padding:26px 24px;background:#fff;}
.bundle-card h2{border:0;padding:0;margin:4px 0 12px;}
.bundle-label{font-size:14px;letter-spacing:.12em;color:var(--sub);font-weight:700;margin:0;}
.bundle-price{text-align:center;border-left:1px solid var(--line);padding-left:20px;}
.bundle-price span{display:block;font-size:14px;color:var(--sub);}
.bundle-price strong{display:block;font-size:34px;color:var(--navy);line-height:1.3;}
.bundle-price small{font-size:14px;margin-left:3px;}
.bundle-price em{display:inline-block;font-style:normal;font-size:13px;font-weight:700;color:#8b5b00;background:#fff2c9;padding:3px 8px;border-radius:3px;}
.compact-notice{margin-top:18px;margin-bottom:0;}
.hero-heart{background:linear-gradient(145deg,#300611,#691229 60%,#9b1d40);color:#fff;padding:52px 0 46px;}
.hero-heart h1{font-family:var(--mincho);font-size:clamp(32px,6vw,48px);margin:0 0 8px;line-height:1.25;}
.heart-year{display:inline-block;border-bottom:2px solid var(--gold);font-size:20px;letter-spacing:.12em;margin:0 0 12px;}
.heart-lead{font-family:var(--mincho);font-size:19px;margin:0;opacity:.96;}
.heart-accent{border-color:#8d1a3a!important;}
.purchase-pending{margin-top:18px;}
.topic-list li{padding-left:1.25em;position:relative;}
.topic-list li::before{content:"#";position:absolute;left:0;color:var(--magenta);font-weight:700;}

@media (max-width:720px){
  .seminar-grid{grid-template-columns:1fr;}
  .seminar-tile__head{min-height:auto;}
  .bundle-card{grid-template-columns:1fr;}
  .bundle-price{border-left:0;border-top:1px solid var(--line);padding:18px 0 0;}
}


/* ---------- live sales: 2025 / set ---------- */
.seminar-grid-three{grid-template-columns:repeat(3,1fr);}
.set-tile .seminar-tile__head{background:linear-gradient(140deg,#053d31,#0b6552 62%,#1b8068);}
.set-tile .seminar-tile__body{border-top:4px solid #d8b04d;}
.btn-heart{background:#8d1a3a;border-color:#8d1a3a;color:#fff;}
.btn-heart:hover{background:#a92049;border-color:#a92049;color:#fff;}
.btn-set{background:#0b6552;border-color:#0b6552;color:#fff;}
.btn-set:hover{background:#0f7b64;border-color:#0f7b64;color:#fff;}
.heart-price{color:#8d1a3a;}
.set-eyebrow{background:#0b6552!important;}
.hero-set{background:linear-gradient(145deg,#043a2e,#075746 58%,#0c745e);color:#fff;padding:52px 0 46px;}
.hero-set h1{font-family:var(--mincho);font-size:clamp(34px,6vw,50px);margin:0 0 8px;line-height:1.25;}
.set-kicker{display:inline-block;border-bottom:2px solid #d8b04d;font-size:18px;letter-spacing:.14em;margin:0 0 12px;}
.set-lead{font-family:var(--mincho);font-size:20px;margin:0;}
.set-accent{border-color:#0b6552!important;}
.set-price{color:#0b6552;}
.bundle-sale{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0 2px;color:var(--sub);}
.bundle-sale span{display:inline-block;background:#fff2c9;color:#7b5500;font-weight:700;font-size:14px;padding:3px 9px;border-radius:3px;}
.set-includes{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:stretch;}
.mini-product{border-radius:8px;padding:24px 20px;color:#fff;text-align:center;}
.mini-product span{display:block;font-size:15px;letter-spacing:.12em;opacity:.9;}
.mini-product strong{display:block;font-family:var(--mincho);font-size:25px;line-height:1.35;margin:5px 0;}
.mini-product p{margin:4px 0 12px;}
.mini-product a{color:#fff;font-weight:700;}
.heart-mini{background:linear-gradient(140deg,#3b0714,#8d1a3a);}
.fontan-mini{background:linear-gradient(140deg,var(--navy-deep),var(--blue));}
.set-plus{display:flex;align-items:center;font-size:34px;color:var(--navy);font-weight:700;}
.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.tile-price s{display:block;font-size:16px;font-weight:500;color:var(--sub);margin-bottom:4px;}

@media (max-width:900px){
  .seminar-grid-three{grid-template-columns:1fr 1fr;}
  .seminar-grid-three .set-tile{grid-column:1 / -1;}
}
@media (max-width:720px){
  .seminar-grid-three{grid-template-columns:1fr;}
  .seminar-grid-three .set-tile{grid-column:auto;}
  .set-includes{grid-template-columns:1fr;}
  .set-plus{justify-content:center;}
  .credential-grid{grid-template-columns:1fr;}
}


/* ---------- v8.1: archive card alignment ---------- */
.archive-grid-wrap{max-width:1080px;}
@media (min-width:901px){
  .seminar-grid-three .seminar-tile__head{min-height:220px;display:flex;flex-direction:column;}
  .seminar-grid-three .seminar-tile h3{font-size:26px;}
  .seminar-grid-three .set-tile h3{font-size:24px;white-space:nowrap;}
  .seminar-grid-three .seminar-tile__body > p:first-child{min-height:112px;}
  .seminar-grid-three .tile-price{min-height:62px;display:flex;align-items:flex-end;flex-wrap:wrap;}
  .seminar-grid-three .tile-price s{width:100%;}
  .seminar-grid-three .btn{display:flex;align-items:center;justify-content:center;min-height:68px;}
}

/* ---------- v8.2: CHOCO brand / existing attendee navigation ---------- */
.brand-header{display:flex!important;align-items:center!important;gap:22px!important;padding-bottom:12px!important;}
.brand-logo-link{display:block;flex:0 0 auto;line-height:0;}
.brand-logo{display:block;width:220px;max-height:78px;object-fit:contain;object-position:left center;}
.brand-header .site-title{padding-left:22px;border-left:1px solid var(--line);font-size:20px;}
.site-header{background:linear-gradient(180deg,#fff 0%,#fffdf8 100%);}
.site-header .brandline{height:5px;background:linear-gradient(90deg,#8d6a2e 0%,#b58a3a 20%,#9cc72f 42%,var(--blue) 70%,var(--magenta) 100%);}
.heart-sub{font-family:var(--mincho);font-size:17px;margin:6px 0 0;opacity:.95;}
.attendee-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.attendee-card{border:1px solid var(--line);border-radius:8px;padding:24px;background:#fff;}
.attendee-card>span{font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--sub);}
.attendee-card h3{margin:4px 0 8px;font-family:var(--mincho);font-size:22px;}
.attendee-card p{font-size:16px;}
.attendee-heart{border-top:4px solid #8d1a3a;}
.attendee-fontan{border-top:4px solid var(--blue);}
.site-footer{background:linear-gradient(180deg,#f5f8fb 0%,#eef3e6 100%);border-top:5px solid #9cc72f;}
.footer-brand{margin-bottom:18px;}
.footer-brand-logo{width:250px;max-height:92px;object-fit:contain;object-position:left center;}
.official-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:14px 0 22px;}
.official-site-btn{display:inline-block;padding:9px 16px;border:1px solid #8d6a2e;border-radius:5px;text-decoration:none;font-weight:700;color:#684b1e;background:#fff;}
.social-links{display:flex;gap:12px;align-items:center;}
.social-links a{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;}
.social-links img{max-width:32px;max-height:32px;display:block;}
@media (max-width:600px){
  .brand-header{align-items:center!important;gap:12px!important;}
  .brand-logo{width:145px;max-height:58px;}
  .brand-header .site-title{font-size:15px;padding-left:12px;}
  .brand-header .site-title span{font-size:9px;letter-spacing:.08em;}
  .attendee-grid{grid-template-columns:1fr;}
  .footer-brand-logo{width:210px;}
}


/* ---------- v8.3: dual organizer official information ---------- */
.organizer-showcase{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 26px;}
.organizer-card{display:grid;grid-template-columns:minmax(0,1fr) 92px;grid-template-areas:"logo qr" "info qr";gap:10px 18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;}
.organizer-logo{grid-area:logo;display:block;max-width:100%;max-height:100px;object-fit:contain;object-position:left center;}
.organizer-logo-npo{max-width:240px;}
.organizer-logo-company{max-width:280px;}
.organizer-info{grid-area:info;display:flex;flex-direction:column;gap:5px;font-size:13px;line-height:1.5;}
.organizer-info strong{color:var(--navy);}
.organizer-qr{grid-area:qr;width:92px;height:92px;object-fit:contain;background:#fff;}
@media(max-width:760px){.organizer-showcase{grid-template-columns:1fr}.organizer-card{grid-template-columns:minmax(0,1fr) 82px}.organizer-qr{width:82px;height:82px}}
