@charset "UTF-8";
/* ---------- reset ---------- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

ul,
ol,
li {
  list-style: none;
}

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

a {
  color: inherit;
  text-decoration: none;
}

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

body {
  color: #333333;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  line-height: 1.6;
  background: #e3e9f0;
}

.sr-only {
  white-space: nowrap;
  width: 1px;
  height: 1px;
  border: 0;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  position: absolute;
}

/* ---------- コンテンツ列 ---------- */
.lp {
  width: 100%;
  max-width: 500px;
  background: #fff;
  box-shadow: 0 0 8cqw rgba(0, 0, 0, 0.08);
  margin: 0 auto;
  padding-bottom: 80px;
  overflow-x: clip;
  container-type: inline-size;
  position: relative;
}

/* ---------- ヘッダー ---------- */
.header {
  height: 14.9333333333cqw;
  background: rgba(255, 255, 255, 0.95);
  padding: 0 4.2666666667cqw;
  backdrop-filter: blur(2px);
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
}
.header .logo img {
  width: auto;
  height: 5.0666666667cqw;
}

/* ---------- ヒーロー（画像背景＋HTML重ね） ---------- */
.hero {
  position: relative;
}
.hero .bg {
  width: 100%;
  aspect-ratio: 750/1250;
  background-size: cover;
  background-position: center;
}
.hero .lead {
  width: 90.1333333333cqw;
  transform: translateX(-50%);
  position: absolute;
  top: 4.2666666667cqw;
  left: 50%;
}
.hero .lead svg {
  width: 100%;
  height: auto;
  display: block;
}
.hero .lead::after {
  content: "";
  width: 100%;
  height: 0.5333333333cqw;
  background: #fff;
  margin-top: 1.2cqw;
  display: block;
}
.hero .catch {
  width: 87.4666666667cqw;
  margin: 0;
  position: absolute;
  top: 17.3866666667cqw;
  left: 5.3333333333cqw;
}
.hero .catch svg {
  width: 100%;
  height: auto;
  display: block;
}
.hero .badge {
  width: 35.2cqw;
  border-radius: 50%;
  box-shadow: 0 0.8cqw 2.6666666667cqw rgba(0, 0, 0, 0.25);
  position: absolute;
  top: 45.3333333333cqw;
  left: 5.8666666667cqw;
}
.hero .card {
  text-align: center;
  background: #fff;
  border-radius: 4.2666666667cqw;
  box-shadow: 0 1.0666666667cqw 3.7333333333cqw rgba(0, 0, 0, 0.18);
  padding: 4cqw 3.4666666667cqw 3.7333333333cqw;
  position: absolute;
  right: 3.7333333333cqw;
  bottom: 3.2cqw;
  left: 3.7333333333cqw;
}
.hero .intro {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 4cqw;
  line-height: 1.2;
}
.hero .title {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.1666666667;
  margin-top: 0.5333333333cqw;
}
.hero .title br {
  display: none;
}
.hero .title em {
  color: #e65100;
  font-style: normal;
}
.hero .feats {
  margin-top: 2.9333333333cqw;
  display: flex;
  gap: 1.6cqw;
}
.hero .card .note {
  color: #555555;
  font-weight: 400;
  font-size: 2.8cqw;
  line-height: 1.4;
  margin-top: 2.1333333333cqw;
}
.hero .feat {
  color: #1b3a6b;
  background: #fff4e0;
  border-radius: 2.1333333333cqw;
  padding: 2.1333333333cqw 0.5333333333cqw;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.hero .feat.eq {
  font-weight: 900;
  font-size: 3.8666666667cqw;
  line-height: 1.25;
}
.hero .feat .label {
  font-weight: 700;
  font-size: 3.3333333333cqw;
  line-height: 1.1;
}
.hero .feat .value {
  font-weight: 900;
  font-size: 5.0666666667cqw;
  line-height: 1.1;
}
.hero .feat .value b {
  font-weight: 900;
  font-size: 6.4cqw;
}
.hero.kouryaku .catch {
  width: 77.3333333333cqw;
  top: 15.2533333333cqw;
}
.hero.kouryaku .badge {
  top: 80cqw;
  right: 5.8666666667cqw;
  left: auto;
}

/* ---------- お悩み ---------- */
.worries {
  text-align: center;
  background: linear-gradient(180deg, #E3EAF1 0%, #F5FAFF 100%);
  padding: 10.1333333333cqw 6.9333333333cqw 16cqw;
  overflow: hidden;
  position: relative;
}
.worries .title {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 5.8666666667cqw;
  line-height: 1.4090909091;
}
.worries .list {
  margin-top: 5.3333333333cqw;
  display: flex;
  flex-direction: column;
  gap: 2.6666666667cqw;
}
.worries .pill {
  color: #333333;
  font-weight: 700;
  font-size: 3.7333333333cqw;
  line-height: 1.4285714286;
  text-align: center;
  min-height: 16.2666666667cqw;
  background: #fff;
  border-radius: 5.3333333333cqw;
  box-shadow: 0 0.8cqw 2.1333333333cqw rgba(27, 58, 107, 0.12);
  padding: 2.1333333333cqw 4.2666666667cqw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.worries .pill em {
  color: #e65100;
  font-style: normal;
}
.worries .person {
  width: 26.1333333333cqw;
  position: absolute;
  top: 68cqw;
  right: 0;
  z-index: 2;
}
.worries .cap {
  margin-top: 5.8666666667cqw;
  position: relative;
}
.worries .arrow {
  width: 0;
  height: 0;
  border-left: 5.3333333333cqw solid transparent;
  border-right: 5.3333333333cqw solid transparent;
  border-top: 6.9333333333cqw solid #1b3a6b;
  margin: 0 auto 3.7333333333cqw;
  display: block;
}
.worries .lead {
  color: #1b3a6b;
  font-weight: 700;
  font-size: 4.2666666667cqw;
  line-height: 1.625;
}
.worries .solve {
  color: #1b3a6b;
  font-weight: 700;
  font-size: 8.5333333333cqw;
  line-height: 1.40625;
  margin-top: 1.6cqw;
}
.worries .solve em {
  color: #e65100;
  font-style: normal;
}
.worries .solve .band {
  background: linear-gradient(transparent 62%, #ffe07c 62%);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* ---------- とは（about） ---------- */
.about {
  background: linear-gradient(180deg, #e65100 0%, #ff8800 93%, #fff4df 93%, #fff4df 100%);
  clip-path: polygon(0 0, 50% 10.1333333333cqw, 100% 0, 100% 100%, 0 100%);
  margin-top: -10.1333333333cqw;
  position: relative;
  z-index: 1;
}
.about .inner {
  padding: 19.7333333333cqw 3.2cqw 11.2cqw;
}
.about .head {
  text-align: center;
}
.about .head .title {
  color: #fff;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.2142857143;
}
.about .head .desc {
  color: #fff;
  font-weight: 400;
  font-size: 3.7333333333cqw;
  line-height: 1.4285714286;
  text-align: left;
  margin-top: 4cqw;
}
.about .head .desc .marker {
  color: #ffe07c;
  font-weight: 900;
  font-style: normal;
}
.about .head .desc strong {
  font-weight: 900;
}
.about .illust {
  width: 68.8cqw;
  margin: 3.7333333333cqw auto 0.5333333333cqw;
}
.about .illust img {
  width: 100%;
}
.about .subtitle {
  color: #fff;
  font-weight: 700;
  font-size: 6.4cqw;
  line-height: 1.25;
  text-align: center;
  margin: 7.4666666667cqw auto 5.3333333333cqw;
}
.about .cards {
  box-shadow: 0 1.0666666667cqw 3.7333333333cqw rgba(0, 0, 0, 0.18);
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.about .card {
  display: flex;
  flex-direction: column;
}
.about .card .tab {
  color: #fff;
  font-weight: 700;
  font-size: 4.2666666667cqw;
  height: 10.6666666667cqw;
  border-radius: 2.6666666667cqw 2.6666666667cqw 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about .card .tab.gold {
  background: #c7a24d;
}
.about .card .tab.navy {
  background: #1b3a6b;
}
.about .card .body {
  background: #fff;
  padding: 2.6666666667cqw 2.4cqw 3.2cqw;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4cqw;
}
.about .card:last-child .body {
  border-left: solid 1px #1b3a6b;
}
.about .card .photo {
  width: 100%;
  aspect-ratio: 152/96;
  object-fit: cover;
}
.about .card .desc {
  color: #333333;
  font-weight: 400;
  font-size: 3.4666666667cqw;
  line-height: 1.3846153846;
  text-align: left;
}
.about .card .badge {
  color: #333333;
  font-weight: 700;
  font-size: 3.4666666667cqw;
  line-height: 1.2307692308;
  text-align: center;
  width: 100%;
  background: #ffe07c;
  border-radius: 1.3333333333cqw;
  margin-top: auto;
  padding: 2.1333333333cqw 2.6666666667cqw;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.6cqw;
}
.about .card .badge img {
  width: 5.3333333333cqw;
  height: auto;
  flex-shrink: 0;
}

/* ---------- メリット ---------- */
.merit {
  background: #fff4df;
  margin-top: -0.2666666667cqw;
  padding: 2.6666666667cqw 6.4cqw 13.3333333333cqw;
  position: relative;
  z-index: 2;
}
.merit .head {
  text-align: center;
}
.merit .eyebrow {
  color: #e65100;
  font-weight: 900;
  font-size: 5.3333333333cqw;
  line-height: 1.55;
}
.merit .title {
  color: #e65100;
  font-weight: 900;
  font-size: 9.6cqw;
  line-height: 1.1;
}
.merit .title span {
  color: #1b3a6b;
}
.merit .list {
  border-bottom: 0.5333333333cqw solid #e65100;
  margin-top: 5.3333333333cqw;
}
.merit .item {
  border-top: 0.5333333333cqw solid #e65100;
  padding: 5.3333333333cqw 0.5333333333cqw;
  display: flex;
  gap: 2.6666666667cqw;
}
.merit .num {
  color: #e65100;
  font-weight: 900;
  font-size: 9.6cqw;
  line-height: 1.1944444444;
  width: 13.3333333333cqw;
  flex-shrink: 0;
}
.merit .body {
  flex: 1;
}
.merit .name {
  color: #1b3a6b;
  font-weight: 700;
  font-size: 6.4cqw;
  line-height: 1.2083333333;
}
.merit .desc {
  color: #333333;
  font-weight: 400;
  font-size: 3.8933333333cqw;
  line-height: 1.3698630137;
  margin-top: 2.1333333333cqw;
}

/* ---------- 参加者の声 ---------- */
.voice {
  background-color: #f6f9fd;
  background-image: radial-gradient(rgba(140, 160, 190, 0.35) 0.4266666667cqw, transparent 0.48cqw);
  background-size: 5.0666666667cqw 5.0666666667cqw;
  padding: 12.8cqw 8.2666666667cqw 10.6666666667cqw;
}
.voice .title {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.2142857143;
  text-align: center;
}
.voice .list {
  margin-top: 5.8666666667cqw;
  display: flex;
  flex-direction: column;
  gap: 5.6cqw;
}
.voice .card {
  min-height: 22.6666666667cqw;
  border-radius: 4cqw;
  padding: 3.2cqw 4.2666666667cqw;
  display: flex;
  align-items: center;
  gap: 3.2cqw;
}
.voice .card.blue {
  background: #dfebfd;
}
.voice .card.peach {
  background: #fff4df;
}
.voice .card.reverse {
  flex-direction: row-reverse;
}
.voice .avatar {
  width: 17.0666666667cqw;
  margin-top: -4.8cqw;
  flex-shrink: 0;
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5333333333cqw;
}
.voice .avatar img {
  width: 17.0666666667cqw;
  height: 17.0666666667cqw;
  border-radius: 50%;
}
.voice .who {
  color: #1b3a6b;
  font-weight: 700;
  font-size: 3.7333333333cqw;
  white-space: nowrap;
}
.voice .text {
  color: #333333;
  font-weight: 400;
  font-size: 3.7333333333cqw;
  line-height: 1.75;
  text-align: left;
  flex: 1;
}
.voice .marker {
  font-weight: 700;
  font-size: 5.0666666667cqw;
  background: linear-gradient(transparent 55%, #fff15d 55%);
}
.voice .marker.navy {
  color: #1b3a6b;
}
.voice .marker.orange {
  color: #e65100;
}
.voice .marker .particle {
  font-size: 3.7333333333cqw;
}

/* ---------- 受けるとどう変わる（Before → After） ---------- */
.beforeafter {
  background: #e9eef4;
  padding: 12.5333333333cqw 7.4666666667cqw 8cqw;
}
.beforeafter .title {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.3928571429;
  text-align: center;
}
.beforeafter .list {
  margin-top: 4.2666666667cqw;
}
.beforeafter .row {
  padding: 5.8666666667cqw 0;
  position: relative;
}
.beforeafter .row + .row {
  border-top: 0.5333333333cqw solid #d4d4d4;
}
.beforeafter .top {
  margin: 0 0 2.6666666667cqw;
  display: flex;
  align-items: center;
  gap: 1.0666666667cqw;
}
.beforeafter .illust {
  width: 27.7333333333cqw;
  flex-shrink: 0;
}
.beforeafter .bubble {
  aspect-ratio: 179/89;
  background: url("../images/ba_bubble.png") no-repeat center/100% 100%;
  padding: 1.6cqw 4.2666666667cqw 6.6666666667cqw 5.3333333333cqw;
  box-sizing: border-box;
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.beforeafter .bubble p {
  color: #1b3a6b;
  font-weight: 700;
  font-size: 3.7333333333cqw;
  line-height: 1.2142857143;
  text-align: center;
}
.beforeafter .label {
  color: #fff;
  font-weight: 700;
  font-size: 3.7333333333cqw;
  line-height: 1;
  background: #1b3a6b;
  border-radius: 4cqw;
  padding: 1.3333333333cqw 4.2666666667cqw;
  transform: translateX(-50%);
  position: absolute;
  top: -2.4cqw;
  left: 50%;
}
.beforeafter .arrow {
  width: 12.8cqw;
  margin: 1.0666666667cqw auto 2.1333333333cqw;
  position: absolute;
  top: 24cqw;
  right: 18.6666666667cqw;
  display: block;
}
.beforeafter .after {
  color: #fff;
  font-weight: 700;
  font-size: 3.7333333333cqw;
  line-height: 1;
  text-align: center;
  background: #e65100;
  border-radius: 4cqw;
  padding: 1.3333333333cqw 0;
}
.beforeafter .benefit {
  color: #e65100;
  font-weight: 700;
  font-size: 5.3333333333cqw;
  line-height: 1.2;
  text-align: center;
  margin-top: 2.4cqw;
}

/* ---------- 特徴 ---------- */
.feature {
  background: linear-gradient(180deg, #e65100 0%, #e65100 45%, #f9d24d 92%);
  padding: 11.7333333333cqw 0 0;
  overflow: hidden;
}
.feature .title {
  color: #fff;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.3928571429;
  text-align: center;
}
.feature .list {
  margin-top: 5.3333333333cqw;
  padding: 0 3.4666666667cqw;
  display: flex;
  flex-direction: column;
  gap: 2.6666666667cqw;
}
.feature .pill {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 6.9333333333cqw;
  line-height: 1.18;
  text-align: center;
  min-height: 14.9333333333cqw;
  background: #fff;
  border-radius: 1.3333333333cqw;
  padding: 2.1333333333cqw 2.6666666667cqw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.feature .pill .big {
  font-size: 10.6666666667cqw;
}
.feature .photo {
  width: 100%;
  margin-top: 6.4cqw;
}

/* ---------- 流れ ---------- */
.flow {
  background: #fff;
  padding: 12.8cqw 6.6666666667cqw 16cqw;
}
.flow .title {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.3928571429;
  text-align: center;
}
.flow .list {
  margin-top: 4.2666666667cqw;
}
.flow .step {
  border-top: 0.5333333333cqw solid #1b3a6b;
  padding: 5.3333333333cqw 0;
  display: flex;
  gap: 3.2cqw;
}
.flow .step .num {
  text-align: center;
  width: 13.8666666667cqw;
  flex-shrink: 0;
}
.flow .step .label {
  color: #e65100;
  font-weight: 700;
  font-size: 3.7333333333cqw;
  line-height: 1;
  display: block;
}
.flow .step .no {
  color: #e65100;
  font-weight: 900;
  font-size: 10.6666666667cqw;
  line-height: 1.05;
  display: block;
}
.flow .step .body {
  flex: 1;
}
.flow .step .name {
  color: #333333;
  font-weight: 700;
  font-size: 6.4cqw;
  line-height: 1.1;
}
.flow .step .desc {
  color: #333333;
  font-weight: 400;
  font-size: 3.8933333333cqw;
  line-height: 1.5753424658;
  margin-top: 1.6cqw;
}
.flow .step .gift {
  color: #fff;
  font-weight: 700;
  font-size: 4.2666666667cqw;
  line-height: 1.375;
  text-align: center;
  background: #e65100;
  border-radius: 1.3333333333cqw;
  margin-top: 2.6666666667cqw;
  padding: 2.6666666667cqw 3.2cqw;
}
.flow .step .gift em {
  color: #ffe07c;
  font-weight: 700;
  font-style: normal;
}

/* ---------- バナー（クーポン） ---------- */
.banner {
  background: linear-gradient(160deg, #14315c 0%, #1b3a6b 35%, #255cad 100%);
  padding: 20cqw 6.4cqw 7.4666666667cqw;
  position: relative;
  z-index: 1;
}
.banner .ribbon {
  transform: translateX(-50%);
  position: absolute;
  top: -9.3333333333cqw;
  left: 50%;
}
.banner .ribbon-bg {
  width: 82.6666666667cqw;
  height: 21.6cqw;
  background: #c8a24b;
  border-radius: 999px;
  opacity: 0.42;
  transform: translateX(-50%);
  position: absolute;
  top: -1.6cqw;
  left: 50%;
  z-index: 0;
}
.banner .ribbon-text {
  color: #fff;
  font-weight: 900;
  font-size: 5.3333333333cqw;
  line-height: 1.2;
  text-align: center;
  width: 78.4cqw;
  aspect-ratio: 294/103;
  background: url("../images/bn_gold.png") no-repeat center/100% 100%;
  margin: 0 auto;
  padding-bottom: 9.3333333333cqw;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.banner .card {
  text-align: center;
  background: linear-gradient(180deg, #f4efe4 0%, #fef5df 100%);
  border-radius: 1.0666666667cqw;
  margin-top: -1.6cqw;
  overflow: hidden;
  position: relative;
  padding: 6.9333333333cqw 6.4cqw 7.4666666667cqw;
}
.banner .deco {
  width: 40cqw;
  height: auto;
  position: absolute;
  z-index: 0;
}
.banner .deco.tl {
  transform: translate(-10.6666666667cqw, -18.6666666667cqw);
  top: 0;
  left: 0;
}
.banner .deco.br {
  transform: translate(10.6666666667cqw, 18.6666666667cqw);
  right: 0;
  bottom: 0;
}
.banner .lead {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 6cqw;
  letter-spacing: 0.02em;
  position: relative;
  z-index: 1;
}
.banner .big {
  color: #c8a24b;
  font-weight: 900;
  font-size: 12.2666666667cqw;
  line-height: 1;
  letter-spacing: 0.02em;
  position: relative;
  z-index: 1;
}
.banner .big b {
  font-weight: 900;
  font-size: 15.4666666667cqw;
}
.banner .big .unit {
  font-size: 9.0666666667cqw;
}
.banner .big .word {
  font-size: 12.8cqw;
}
.banner .mid {
  color: #c8a24b;
  font-weight: 900;
  font-size: 8cqw;
  line-height: 1.5333333333;
  position: relative;
  z-index: 1;
}
.banner .note {
  color: #828282;
  font-weight: 500;
  font-size: 3.7333333333cqw;
  line-height: 1.2857142857;
  margin-top: 2.6666666667cqw;
  position: relative;
  z-index: 1;
}
.banner .terms {
  color: #fff;
  text-align: left;
  margin-top: 4.8cqw;
}
.banner .terms dt {
  font-weight: 500;
  font-size: 2.6666666667cqw;
}
.banner .terms dd {
  font-weight: 400;
  font-size: 2.6666666667cqw;
  line-height: 1.9090909091;
}

/* ---------- FIORE ---------- */
.fiore {
  background: #fff7e6 url("../images/fiore_bg.png") top center/cover no-repeat;
  padding: 7.4666666667cqw 3.2cqw;
}
.fiore .inner {
  text-align: center;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 1.3333333333cqw;
  padding: 6.9333333333cqw 5.3333333333cqw 8cqw;
}
.fiore .title {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.3928571429;
  text-align: center;
  margin-bottom: 3.7333333333cqw;
}
.fiore .title em {
  color: #e65100;
  font-style: normal;
}
.fiore .title .small {
  font-size: 5.3333333333cqw;
}
.fiore .brand {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 5.3333333333cqw;
  line-height: 1.4;
  margin-top: 4.2666666667cqw;
}
.fiore .photos {
  margin: 5.3333333333cqw -8.5333333333cqw 0;
  display: flex;
  gap: 0.8cqw;
}
.fiore .photos img {
  width: 50%;
  aspect-ratio: 185/147;
  object-fit: cover;
}
.fiore .award {
  width: min(82.6666666667cqw, 100%);
  margin: 5.8666666667cqw auto;
}
.fiore .desc {
  color: #333333;
  font-weight: 400;
  font-size: 3.84cqw;
  line-height: 1.3888888889;
  text-align: left;
  margin-top: 1.0666666667cqw;
}
.fiore .desc em {
  color: #e65100;
  font-weight: 700;
  font-style: normal;
}
.fiore .desc b {
  font-weight: 700;
}
.fiore .note {
  color: #999999;
  font-weight: 400;
  font-size: 2.9013333333cqw;
  line-height: 1.5625;
  text-align: left;
  margin-top: 4.2666666667cqw;
}

/* ---------- FAQ ---------- */
.faq {
  background: #e9eef4;
  padding: 16.5333333333cqw 6.4cqw 12.8cqw;
}
.faq .title {
  color: #1b3a6b;
  font-weight: 900;
  font-size: 7.4666666667cqw;
  line-height: 1.1071428571;
  text-align: center;
}
.faq .list {
  margin-top: 6.4cqw;
  display: flex;
  flex-direction: column;
  gap: 2.6666666667cqw;
}
.faq .item {
  background: #fff;
  border: 0.2666666667cqw solid #ececec;
  border-radius: 1.3333333333cqw;
  padding: 4.2666666667cqw;
}
.faq .q {
  color: #1b3a6b;
  font-weight: 700;
  font-size: 3.9253333333cqw;
  line-height: 1.4945652174;
  display: flex;
  gap: 1.6cqw;
}
.faq .q .icon {
  color: #c8a24b;
}
.faq .a {
  color: #555555;
  font-weight: 500;
  font-size: 3.6693333333cqw;
  line-height: 1.6715116279;
  margin-top: 2.1333333333cqw;
  display: flex;
  gap: 1.6cqw;
}
.faq .a .icon {
  color: #2e6fd6;
}
.faq .icon {
  font-weight: 700;
  flex-shrink: 0;
}
.faq .text {
  flex: 1;
}
.faq .text em {
  color: #e65100;
  font-weight: 900;
  font-style: normal;
}

/* ---------- フッター ---------- */
.footer {
  text-align: center;
  background: #fff;
  padding: 6.4cqw 4.2666666667cqw;
}
.footer .copy {
  color: #888;
  font-weight: 400;
  font-size: 2.9333333333cqw;
  line-height: 1.6;
}

/* ---------- SP固定フローティングCTA（1000px未満） ---------- */
.sp-cta {
  width: 100%;
  max-width: 500px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.14);
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  gap: 8px;
  container-type: inline-size;
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 60;
  display: flex;
}
.sp-cta .btn {
  color: #fff;
  font-weight: 900;
  font-size: 4cqw;
  white-space: nowrap;
  background: linear-gradient(90deg, #ffc60b 0%, #ff5900 100%);
  border-radius: 999px;
  padding: 3.4666666667cqw 2.1333333333cqw;
  transition: opacity 0.2s ease;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.0666666667cqw;
}
.sp-cta .btn:active {
  opacity: 0.85;
}
.sp-cta .btn span {
  font-size: 4.8cqw;
  line-height: 1;
}
.sp-cta .btn-explore {
  color: #1b3a6b;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px #1b3a6b;
}

/* ---------- PC固定サイドCTA ---------- */
.side-cta {
  display: none;
}

@media (min-width: 1000px) {
  :root {
    --gap: clamp(40px, calc((100vw - 940px) / 2), 120px);
  }
  .lp {
    margin-right: 0;
    margin-left: calc(50vw - 30px + var(--gap) / 2);
    padding-bottom: 0;
  }
  .sp-cta {
    display: none;
  }
  .side-cta {
    width: 440px;
    background: #1b3a6b;
    border-radius: 20px;
    padding: 44px 30px 43px;
    position: fixed;
    top: 50%;
    left: calc(50vw - 470px - var(--gap) / 2);
    transform: translateY(-50%);
    z-index: 60;
    display: block;
  }
  .side-cta .card {
    text-align: center;
    background: #fff4e0;
    border: 4px solid #e65100;
    border-radius: 20px;
    padding: 31px 32px;
  }
  .side-cta .lead {
    color: #1b3a6b;
    font-weight: 900;
    font-size: 26px;
    line-height: 1.1923076923;
  }
  .side-cta .title {
    color: #1b3a6b;
    font-weight: 900;
    font-size: 46px;
    line-height: 1.1956521739;
    white-space: nowrap;
    margin: 4px 0;
  }
  .side-cta .title em {
    color: #e65100;
    font-style: normal;
  }
  .side-cta .pill {
    color: #e65100;
    font-weight: 900;
    font-size: 20px;
    line-height: 1.2;
    background: #fff;
    border-radius: 10px;
    margin-top: 14px;
    padding: 10px 12px;
  }
  .side-cta .btn {
    color: #fff;
    font-weight: 900;
    font-size: 20px;
    background: transparent;
    border-radius: 60px;
    margin-top: 29px;
    padding: 18px 0;
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }
  .side-cta .btn::before, .side-cta .btn::after {
    content: "";
    background: linear-gradient(90deg, #ffc60b 0%, #ff5900 100%);
    border-radius: inherit;
    position: absolute;
    inset: 0;
    z-index: -1;
  }
  .side-cta .btn::after {
    background: linear-gradient(90deg, #ffd34d 0%, #ffbd0a 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .side-cta .btn:hover::after {
    opacity: 1;
  }
  .side-cta .btn span {
    font-size: 26px;
    line-height: 1;
  }
  .side-cta .btn-explore {
    color: #1b3a6b;
    margin-top: 12px;
  }
  .side-cta .btn-explore::before {
    background: #fff;
  }
  .side-cta .btn-explore::after {
    background: #fff4e0;
  }
}
