/* AI × セキュリティセミナー LP（.lp-aisec 内のみに効く） */
.lp-aisec {
    --night: #0a0925;
    --night-2: #12103a;
    --star: #f4f0ff;
    --mist: #b9b3d9;
    --gold: #e8c170;
    --gold-soft: rgba(232, 193, 112, .28);
    --violet: #6c5ce7;
    --measure: 40rem;
  }
.lp-aisec *, .lp-aisec *::before, .lp-aisec *::after { box-sizing: border-box; }
.lp-aisec {
    margin: 0;
    background: var(--night);
    color: var(--star);
    font-family: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;
    font-size: 1.0625rem;
    line-height: 1.95;
    letter-spacing: .02em;
  }
.lp-aisec h1, .lp-aisec h2, .lp-aisec h3, .lp-aisec p, .lp-aisec dl, .lp-aisec dd, .lp-aisec ol { margin: 0; padding: 0; }
.lp-aisec ol { list-style: none; }
.lp-aisec a { color: inherit; }
.lp-aisec :focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.lp-aisec .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lp-aisec .serif { font-family: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif; }
.lp-aisec .wrap { width: min(100% - 2rem, var(--measure)); margin-inline: auto; }
/* ── ヒーロー：画像そのものが主役 ── */
.lp-aisec .hero { position: relative; background: #05041a; }
.lp-aisec .hero img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 100svh;
    aspect-ratio: 1448 / 1086;
    object-fit: cover;
    object-position: center;
    animation: rise 1.1s cubic-bezier(.2, .7, .2, 1) both;
  }
.lp-aisec .hero::after { /* 下端を本文の夜色へなじませる */
    content: "";
    position: absolute; inset: auto 0 0 0; height: 22%;
    background: linear-gradient(to bottom, transparent, var(--night));
    pointer-events: none;
  }
@media (max-width: 48rem) {
.lp-aisec .hero img { aspect-ratio: 941 / 1672; }
}
@keyframes rise {
    from { opacity: 0; transform: scale(1.03); }
    to   { opacity: 1; transform: none; }
  }
.lp-aisec .glance {
    position: relative; z-index: 1;
    margin-top: -1.25rem;
    padding-bottom: 1rem;
  }
.lp-aisec .glance ul {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; justify-content: center;
    gap: .25rem 1.75rem;
    font-size: 1rem;
    color: var(--star);
  }
.lp-aisec .glance li + li { position: relative; }
.lp-aisec .glance li + li::before {
    content: ""; position: absolute; left: -.9rem; top: .55em; bottom: .55em;
    width: 1px; background: var(--gold-soft);
  }
.lp-aisec .cta-top { text-align: center; margin-top: 0; }
.lp-aisec .cta-top .btn { margin-top: 0; }
/* ── 問い ── */
.lp-aisec .question { padding: 4rem 0 3.5rem; }
.lp-aisec .question .big {
    font-size: clamp(2.1rem, 8vw, 3.6rem);
    text-wrap: balance;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: .01em;
    background: linear-gradient(100deg, #fff 0%, #dcd3ff 45%, var(--gold) 100%);
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
    margin-bottom: 2.25rem;
  }
.lp-aisec .question p + p { margin-top: 1.1rem; }
.lp-aisec .question .lead {
    font-family: "Shippori Mincho B1", serif;
    font-weight: 700;
    font-size: 1.35rem;
    line-height: 1.7;
  }
/* ── 区切り ── */
.lp-aisec section + section { position: relative; margin-top: 1.5rem; }
.lp-aisec section + section > :first-child { padding-top: 1.5rem; }
.lp-aisec section + section::before {
    content: ""; position: absolute; top: -.9rem; left: 50%; transform: translateX(-50%);
    width: min(100% - 2rem, 30rem); height: 1.8rem;
    background: url("../img/ai-security-20261010/divider-6.webp") center / contain no-repeat;
    pointer-events: none;
  }
.lp-aisec h2 {
    font-family: "Shippori Mincho B1", serif;
    font-weight: 800;
    font-size: clamp(1.5rem, 4.6vw, 1.95rem);
    line-height: 1.4;
    margin-bottom: 2rem;
    text-align: center;
  }
/* ── 開催概要 ── */
.lp-aisec .info { padding: 3.5rem 0; }
.lp-aisec .info dl { border-top: 1px solid var(--gold-soft); }
.lp-aisec .info .row {
    display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem;
    padding: 1.1rem 0;
    border-bottom: 1px solid var(--gold-soft);
  }
.lp-aisec .info dt { color: var(--gold); font-weight: 700; }
.lp-aisec .info dd small { display: block; color: var(--mist); font-size: .9rem; line-height: 1.7; margin-top: .15rem; }
.lp-aisec .price { font: inherit; }
/* ── プログラム：時刻のある本物の時系列 ── */
.lp-aisec .program { padding: 3.5rem 0; }
.lp-aisec .timeline { position: relative; }
.lp-aisec .timeline::before {
    content: ""; position: absolute; left: 5.1rem; top: .6rem; bottom: .6rem;
    width: 1px; background: var(--gold-soft);
  }
.lp-aisec .timeline li {
    position: relative;
    display: grid; grid-template-columns: 4.1rem 1fr; gap: 2rem;
    padding-bottom: 2rem;
  }
.lp-aisec .timeline li:last-child { padding-bottom: 0; }
.lp-aisec .timeline li::before {
    content: ""; position: absolute; left: calc(5.1rem - 4px); top: .7rem;
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--gold); box-shadow: 0 0 0 4px rgba(232, 193, 112, .16);
  }
.lp-aisec .timeline time {
    font-family: "Cormorant Garamond", serif;
    font-weight: 600; font-size: 1.7rem; line-height: 1.5;
    color: var(--gold); text-align: right;
  }
.lp-aisec .timeline h3 { font-family: "Shippori Mincho B1", serif; font-weight: 700; font-size: 1.2rem; line-height: 1.6; }
.lp-aisec .timeline .len { color: var(--mist); font-size: .9rem; margin-left: .5rem; font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 400; }
.lp-aisec .timeline p { color: var(--mist); font-size: .98rem; line-height: 1.8; margin-top: .2rem; }
.lp-aisec .note { margin-top: 1.75rem; color: var(--mist); font-size: .9rem; }
/* ── 申込 ── */
.lp-aisec .join {
    padding: 4rem 0 5.5rem;
    background: linear-gradient(to bottom, var(--night), var(--night-2));
    text-align: left;
  }
.lp-aisec .join p + p { margin-top: 1rem; }
.lp-aisec .btn {
    display: inline-block; margin-top: 2.5rem;
    padding: .95rem 1.75rem;
    border: 1px solid var(--gold);
    color: var(--gold);
    font-weight: 700; text-decoration: none;
    border-radius: 2px;
  }
.lp-aisec .btn-img { display: block; width: min(100%, 420px); margin: 2.5rem auto 0; transition: transform .2s, filter .2s; }
.lp-aisec .btn-img img { display: block; width: 100%; height: auto; }
.lp-aisec .btn-img:hover { transform: translateY(-1px); filter: brightness(1.08); }
.lp-aisec .cta-top .btn-img { margin-top: 0; }
.lp-aisec .btn.is-pending { color: var(--mist); border-color: rgba(185, 179, 217, .4); cursor: default; }
.lp-aisec a.btn { background: var(--gold); color: #1a1240; transition: background .2s, transform .2s; }
.lp-aisec a.btn:hover { background: #f3d28c; transform: translateY(-1px); }
/* ── こんな方に ── */
.lp-aisec .for { padding: 3.5rem 0; }
.lp-aisec .for h3 { font-family: "Shippori Mincho B1", serif; font-weight: 700; font-size: 1.2rem; line-height: 1.6; margin-bottom: .9rem; }
.lp-aisec .for ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--gold-soft); }
.lp-aisec .for ul + h3 { margin-top: 4.5rem; text-align: center; }
.lp-aisec .for li { position: relative; margin: 0; padding: .9rem 0 .9rem 1.5rem; border-bottom: 1px solid var(--gold-soft); line-height: 1.8; font-size: 15px; }
.lp-aisec .for li::before { content: "◆"; position: absolute; left: .1rem; top: 1.2rem; font-size: .6rem; color: var(--gold); }
.lp-aisec .for .goal { margin-top: 2.5rem; font-family: "Shippori Mincho B1", serif; font-weight: 700; font-size: 1.2rem; line-height: 1.8; text-align: center; }
.lp-aisec .for .goal small { display: block; margin-top: .6rem; font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 400; font-size: .9rem; color: var(--mist); }
/* ── お伝えすること ── */
.lp-aisec .learn { padding: 3.5rem 0; }
.lp-aisec .learn-list { border-top: 1px solid var(--gold-soft); }
.lp-aisec .learn-list li {
    display: grid; grid-template-columns: 5.5rem 1fr; gap: 1.5rem; align-items: center;
    padding: 1.4rem 0; border-bottom: 1px solid var(--gold-soft);
  }
.lp-aisec .learn-list img { width: 100%; height: auto; max-height: 6.5rem; object-fit: contain; filter: drop-shadow(0 0 14px rgba(108, 92, 231, .45)); }
.lp-aisec .learn-list h3 { font-family: "Shippori Mincho B1", serif; font-weight: 700; font-size: 1.2rem; line-height: 1.6; }
.lp-aisec .learn-list p { color: var(--mist); font-size: .98rem; line-height: 1.8; margin-top: .15rem; }
/* ── 登壇者 ── */
.lp-aisec .duo { padding: 3.5rem 0; }
.lp-aisec .duo h2 { margin-bottom: 1.5rem; }
.lp-aisec .duo-list {
    list-style: none; margin: 0 auto; padding: 0;
    width: min(100% - 2rem, 34rem);
    display: grid; grid-template-columns: 1fr; gap: 2.25rem;
    text-align: left;
  }
.lp-aisec .duo-list > li { display: grid; grid-template-columns: 6rem 1fr; column-gap: 1.1rem; align-items: start; margin: 0; padding: 0; }
.lp-aisec .duo-list > li > :not(.duo-photo) { grid-column: 2; }
.lp-aisec .duo-photo {
    grid-column: 1; grid-row: 1 / span 4;
    width: 6rem; aspect-ratio: 1 / 1;
    border-radius: 50%; overflow: hidden;
    border: 1px solid var(--gold-soft);
    box-shadow: 0 0 22px rgba(108, 92, 231, .35);
  }
.lp-aisec .duo-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-aisec .duo-photo.soon-photo { background: rgba(108, 92, 231, .18); } /* 公開許可待ちの仮枠（単色） */
.lp-aisec .duo-photo.popo { background: rgba(108, 92, 231, .18); }
.lp-aisec .duo-photo.popo img { object-fit: contain; padding: .3rem; }
.lp-aisec .info .row-receipt dd { color: var(--mist); font-size: .9rem; line-height: 1.7; } /* 他の行の補足文（small）と同じ */
.lp-aisec .info dd .pay-label { display: block; margin-top: .9rem; color: var(--gold); font-size: .85rem; font-weight: 700; letter-spacing: .06em; }
.lp-aisec .info dd .pay-label:first-child { margin-top: 0; }
.lp-aisec .duo-assistant {
    width: min(100% - 2rem, 34rem); margin: 2.75rem auto 0; padding: 1.25rem;
    border: 1px solid var(--gold-soft); border-radius: 1rem; background: rgba(108, 92, 231, .08);
    display: grid; grid-template-columns: 6rem 1fr; column-gap: 1.1rem; align-items: center;
  }
.lp-aisec .duo-assistant > div:not(.duo-photo) { grid-column: 2; }
.lp-aisec .duo-tel { margin: .5rem 0 0; font-size: .9rem; color: var(--star); letter-spacing: .04em; }
.lp-aisec .duo-tel a { color: var(--gold); text-decoration: none; }
.lp-aisec .duo-tag { margin: 0 0 .3rem; color: var(--gold); font-size: .75rem; font-weight: 700; letter-spacing: .14em; }
.lp-aisec .duo-name { margin-top: 0; font-family: "Shippori Mincho B1", serif; font-weight: 700; font-size: 1.05rem; line-height: 1.5; color: var(--star); }
.lp-aisec .duo-bio { margin-top: .5rem; color: var(--mist); font-size: .8rem; line-height: 1.75; text-align: left; }
.lp-aisec .duo-cred { list-style: none; margin: .6rem 0 0; padding: .6rem 0 0; border-top: 1px solid var(--gold-soft); }
.lp-aisec .duo-cred li { position: relative; padding-left: 1em; }
.lp-aisec .duo-cred li::before { content: "◆"; position: absolute; left: 0; top: .12em; font-size: .55em; color: var(--gold); }
.lp-aisec .duo-en { display: block; margin-top: .05rem; font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 400; font-size: .78rem; letter-spacing: .14em; color: var(--gold); }
.lp-aisec .duo-role { display: block; margin-top: .25rem; font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 400; font-size: .75rem; line-height: 1.6; color: var(--mist); }
@media (max-width: 30rem) {
.lp-aisec { font-size: 1rem; }
.lp-aisec .info .row { grid-template-columns: 5.2rem 1fr; gap: .75rem; }
.lp-aisec .learn-list li { grid-template-columns: 4.2rem 1fr; gap: 1.1rem; }
.lp-aisec .timeline::before { left: 4.3rem; }
.lp-aisec .timeline li { grid-template-columns: 3.4rem 1fr; gap: 1.8rem; }
.lp-aisec .timeline li::before { left: calc(4.3rem - 4px); }
.lp-aisec .timeline time { font-size: 1.45rem; }
}
@media (prefers-reduced-motion: reduce) {
.lp-aisec .hero img { animation: none; }
.lp-aisec a.btn, .lp-aisec .btn-img { transition: none; }
}

/* テーマ側の見出し色・余白に負けないようにする */
.lp-aisec h1, .lp-aisec h2, .lp-aisec h3, .lp-aisec h4 { color: inherit; }

/* 申込ボタン下のお問い合わせ案内 */
.lp-aisec .join-note { margin-top: 1.5rem; text-align: center; font-size: .9rem; color: var(--mist); }
.lp-aisec .join-note a { color: var(--gold); text-decoration: underline; text-underline-offset: .2em; }

/* 上の申込ボタンから、下のボタンへなめらかに移動（このLPでだけ有効） */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
.lp-aisec #join-btn { scroll-margin-top: 45vh; }

/* ── お支払い完了ページ ── */
.lp-aisec .thanks { padding: 6rem 0 5rem; text-align: center; }
.lp-aisec .thanks .big { font-family: "Shippori Mincho B1", serif; font-weight: 800; font-size: clamp(1.6rem, 6vw, 2.4rem); line-height: 1.4; }
.lp-aisec .thanks .lead { margin-top: 1.25rem; font-family: "Shippori Mincho B1", serif; font-weight: 700; font-size: 1.2rem; line-height: 1.8; }
.lp-aisec .thanks .steps { list-style: none; margin: 2.5rem 0 0; padding: 0; border-top: 1px solid var(--gold-soft); text-align: left; counter-reset: step; }
.lp-aisec .thanks .steps li { position: relative; margin: 0; padding: 1rem 0 1rem 2.75rem; border-bottom: 1px solid var(--gold-soft); line-height: 1.8; counter-increment: step; }
.lp-aisec .thanks .steps li::before { content: counter(step); position: absolute; left: .4rem; top: 1rem; font-family: "Cormorant Garamond", serif; font-weight: 600; font-size: 1.5rem; line-height: 1.5; color: var(--gold); }
.lp-aisec .thanks-note { margin-top: 2rem; color: var(--mist); font-size: .9rem; line-height: 1.9; }
.lp-aisec .thanks-note a { color: var(--gold); }
.lp-aisec .thanks-back { margin-top: 2.5rem; font-size: .95rem; }
.lp-aisec .thanks-back a { color: var(--gold); text-decoration: underline; text-underline-offset: .2em; }
.lp-aisec .thanks-popo { display: block; width: 7.5rem; height: auto; margin: 0 auto 1.25rem; filter: drop-shadow(0 0 18px rgba(108, 92, 231, .45)); }
