@charset "UTF-8";

*,
*::before,
*::after {
  box-sizing: border-box;
}

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

body {
  margin: 0;
  background: #fbeff1;
  color: #222;
  font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Noto Serif JP", serif;
  line-height: 1.8;
}

h1,
h2,
dl,
dd {
  margin: 0;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

/* コンテンツ幅：スマホ100%／PC700px */
.lp {
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
  background: #fff;
  overflow: hidden;
}

/* プログラム下のCTAと登壇者の間隔 */
.sec--program {
  padding-bottom: 12%;
}

/* 申込ボタン */
.cta {
  display: block;
  position: relative;
  z-index: 1;
  transition: opacity .2s;
}

/* ボタン部分だけ切り抜いて重ね、ふわふわ拡大縮小させる */
.cta__anim {
  position: absolute;
  top: 0;
  left: 0;
  clip-path: inset(4% 2% round 999px);
  animation: fuwafuwa 1.6s ease-in-out infinite;
}

@keyframes fuwafuwa {
  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cta__anim {
    animation: none;
  }
}

@media (hover: hover) {
  .cta:hover {
    opacity: .85;
  }
}

/* よくある質問 */
.faq {
  padding: 40px 6% 64px;
  font-size: clamp(14px, 3.8vw, 17px);
}

.faq__item {
  padding: 20px 0;
  border-bottom: 2px dotted #eeb1c1;
}

.faq__item:first-child {
  padding-top: 0;
}

.faq dt,
.faq dd {
  position: relative;
  padding-left: 2em;
}

.faq dt::before,
.faq dd::before {
  position: absolute;
  top: 0;
  left: 0;
  font-weight: bold;
}

.faq dt {
  color: #222;
  font-weight: bold;
}

.faq dt::before {
  content: "Q.";
  color: #f94a77;
}

.faq dd {
  margin-top: 8px;
  color: #444;
}

.faq dd::before {
  content: "A.";
  color: #aaa;
}
