/* ========================================
   @font-face
======================================== */
@font-face {
  font-family: "A-OTF Ryumin Pro";
  src: url("../fonts/A-OTF-RyuminPro-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "A-OTF Ryumin Pro";
  src: url("../fonts/A-OTF-RyuminPro-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "A-OTF Ryumin Pro";
  src: url("../fonts/A-OTF-RyuminPro-Heavy.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* ========================================
   CSS変数
======================================== */
:root {
  /* カラー - メイン */
  --color-blue: #004ea2;
  --color-dark-navy: #002146;
  --color-yellow: #ffea32;
  --color-light-yellow: #fff476;

  /* カラー - アクセント */
  --color-red: #bc334f;
  --color-dark-red: #87001c;
  --color-error-red: #de3b3b;

  /* カラー - テキスト・背景・ボーダー */
  --color-black: #111111;
  --color-dark-gray: #3d3d3d;
  --color-medium-gray: #515151;
  --color-gray: #717171;
  --color-light-gray-border: #b8b8b8;
  --color-light-gray: #d0d0d0;
  --color-bg-gray: #f5f5f5;
  --color-white: #ffffff;

  /* フォント */
  --font-sans: "Noto Sans JP", sans-serif;
  --font-A-OTF: "A-OTF Ryumin Pro", "Noto Serif JP", serif;
  --font-times: "Times New Roman", serif;
  --font-serif: "Noto Serif JP", serif;
  --font-roboto: "Roboto", sans-serif;
  --font-inter: "Inter", "Noto Sans JP", sans-serif;

  /* シャドウ */
  --shadow-book: 0px 0px 30px 0px rgba(255, 255, 255, 0.3);

  /* ボーダーラディウス */
  --radius-sm: 3px;
  --radius-md: 6px;
  --radius-full: 100px;
}

/* ========================================
   リセット・共通スタイル
======================================== */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-serif);
  color: var(--color-black);
  background: var(--color-white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  max-width: 1440px;
  margin: 0 auto;
}

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

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

ul, ol {
  list-style: none;
}

em {
  font-style: normal;
}

input, select, button, textarea {
  font-family: inherit;
  font-size: inherit;
}

.sp-only {
  display: none;
}

/* ========================================
   ヘッダー
======================================== */
.header {
  width: 100%;
  height: calc(60 / 1440 * 100vw);
  background: var(--color-white);
  display: flex;
  align-items: center;
}

.header__inner {
  width: 100%;
  padding: 0 calc(117 / 1440 * 100vw);
}

.header__logo {
  width: calc(230 / 1440 * 100vw);
}

/* ========================================
   ヒーロー / FV
======================================== */
.hero {
  position: relative;
  overflow: hidden;
  background-image: url("../images/hero-bg.webp");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  height: calc(688 / 1440 * 100vw);
}

.hero__inner {
  position: relative;
  z-index: 1;
  max-width: calc(1200 / 1440 * 100vw);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.hero__left {
  flex: 1;
  padding-top: calc(140 / 1440 * 100vw);
  position: relative;
}

.hero__lead-group {
  position: absolute;
  top: 4%;
  left: 0%;
}
.hero__lead1 {
  font-family: var(--font-A-OTF);
  font-weight: 700;
  font-size: calc(44 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1;
  letter-spacing: -0.04em;
  font-feature-settings: "palt";
  transform: rotate(-4deg);


}

.hero__lead2 {
  font-family: var(--font-A-OTF);
  font-weight: 700;
  font-size: calc(44 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1;
  letter-spacing: -0.04em;
  margin-top: calc(8 / 1440 * 100vw);
  transform: rotate(-4deg);
  font-feature-settings: "palt";
}

.hero__catch-group {
  margin-top: calc(50 / 1440 * 100vw);
}

.hero__catch-text {
  line-height: 0.3;
}
.hero__catch1 {
  font-family: var(--font-A-OTF);
  font-weight: 900;
  font-size: calc(72 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1;
  letter-spacing: -0.16em;
}

.hero__catch2 {
  font-family: var(--font-A-OTF);
  font-weight: 900;
  font-size: calc(72 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1;
  margin-top: calc(8 / 1440 * 100vw);
}

.hero__catch3 {
  font-family: var(--font-A-OTF);
  font-weight: 900;
  font-size: calc(72 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1;
  margin-top: calc(8 / 1440 * 100vw);
  margin-left: calc(-35 / 1440 * 100vw);
  display: inline-flex;
  align-items: flex-end;
}

.hero__catch3-os {
  font-family: "Times New Roman", serif;
  font-weight: 700;
  font-size: calc(88 / 1440 * 100vw);
  margin-bottom: calc(-11 / 1440 * 100vw);
}

.hero__text-small {
  font-size: calc(60 / 1440 * 100vw);
}

.hero__catch3-small {
  font-weight: 700;
}

.hero__catch3-quote {
  font-family: var(--font-A-OTF);
}

.hero__catch3-quote-last {
  margin-bottom: calc(6 / 1440 * 100vw);
  margin-left: calc(-3 / 1440 * 100vw);
}
.hero__limited-text {
  margin-top: calc(28 / 1440 * 100vw);
  color: var(--color-white);
  font-size: calc(22 / 1440 * 100vw);
  font-weight: 700;
  line-height: 1;
}

.hero__limited-500 {
  font-family: "Times New Roman", serif;
  font-weight: 700;
  font-size: calc(52 / 1440 * 100vw);
}

.hero__limited-rest {
  font-family: var(--font-A-OTF);
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  letter-spacing: -0.04em;
  font-feature-settings: "palt";
}
.hero__limited-rest-small {
  font-size: calc(32 / 1440 * 100vw);
}
.hero__condition {
  margin-top: calc(40 / 1440 * 100vw);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: calc(22 / 1440 * 100vw);
  color: var(--color-yellow);
  line-height: 1.6;
}

.hero__right {
  position: relative;
  width: calc(400 / 1440 * 100vw);
  flex-shrink: 0;
}

.hero__book-img {
  position: relative;
  height: calc(684 / 1440 * 100vw);
  width: calc(440 / 1440 * 100vw);
  
}
.hero__book-img-inner {
  position: absolute;
  width: 100%;
  height: 100%;
  right: 4%;
  top: 0%;
  z-index: -1;
}


.hero__badges {
  position: absolute;
  display: flex;
  gap: calc(8 / 1440 * 100vw);
  margin-top: calc(20 / 1440 * 100vw);
  justify-content: flex-end;
  bottom: 8%;
  right: 24%;
}

.hero__badge {
  width: calc(113 / 1440 * 100vw);
  height: calc(113 / 1440 * 100vw);
  border-radius: 50%;
  background: var(--color-red);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hero__badge p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(28 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1.08;
}


/* ========================================
   CTAボタン（共通）
======================================== */
.cta-section {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: calc(40 / 1440 * 100vw) 0;
}

.cta-button {
  background: var(--color-yellow);
  display: flex;
  align-items: center;
  gap: calc(40 / 1440 * 100vw);
  padding: calc(40 / 1440 * 100vw) calc(80 / 1440 * 100vw);
  cursor: pointer;
  transition: opacity 0.3s;
  width: calc(599 / 1440 * 100vw);
  height: calc(122 / 1440 * 100vw);
}

.cta-button:hover {
  opacity: 0.8;
}

.cta-button__text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(32 / 1440 * 100vw);
  color: var(--color-black);
}

.cta-button__text em {
  color: var(--color-red);
}

.cta-button__arrow {
  width: calc(15 / 1440 * 100vw);
  height: calc(24 / 1440 * 100vw);
  padding-top: calc(1.5 / 1440 * 100vw);
}

.cta-section__inner {
  width: calc(854 / 1440 * 100vw);
  height: calc(480 / 1440 * 100vw);
  margin: 0 auto;
}

.cta-section__1 {
  flex-direction: column;
  gap: calc(60 / 1440 * 100vw);
  padding: calc(80 / 1440 * 100vw) 0 calc(60 / 1440 * 100vw);
}


/* ========================================
   課題提起セクション
======================================== */
.problems {
  position: relative;
  padding: calc(100 / 1440 * 100vw) 0;
  overflow: hidden;
  background-image: url("../images/problems-bg.webp");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  height: calc(890 / 1440 * 100vw);
}


.problems__inner {
  position: relative;
  z-index: 2;
  width: calc(1100 / 1440 * 100vw);
  height: calc(404 / 1440 * 100vw);
  margin: 0 auto;
}

.problems__title {
  font-family: var(--font-serif);
  font-weight: 900;
  font-size: calc(44 / 1440 * 100vw);
  color: var(--color-white);
  text-align: center;
  line-height: 1.6;
  letter-spacing: 0;
}

.problems__title em {
  background: var(--color-white);
  color: var(--color-blue);
  padding: calc(6 / 1440 * 100vw);
  font-feature-settings: "palt";
  margin-right: calc(16 / 1440 * 100vw);
}

.problems__title-small {
  font-size: calc(40 / 1440 * 100vw);
}

.problems__list {
  margin-top: calc(50 / 1440 * 100vw);
  background: var(--color-white);
  padding: calc(80 / 1440 * 100vw) calc(157 / 1440 * 100vw);
  
}

.problems__item {
  display: flex;
  align-items: center;
  gap: calc(8 / 1440 * 100vw);
  padding: calc(16 / 1440 * 100vw) 0;
  border-bottom: 1px solid #b8b8b8;
  width: calc(785 / 1440 * 100vw);
}
.problems__item:first-child {
  padding-top: 0;
}

.problems__check {
  width: calc(33 / 1440 * 100vw);
  height: calc(33 / 1440 * 100vw);
  flex-shrink: 0;
}

.problems__item p {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-black);
  line-height: 1;
  letter-spacing: 0;
}

/* ========================================
   本文セクション
======================================== */
.main-text {
  padding: calc(90 / 1440 * 100vw) 0 calc(50 / 1440 * 100vw);
  background: var(--color-white);
}

.main-text__inner {
  max-width: calc(1081 / 1440 * 100vw);
  margin: 0 auto;
}

.main-text__block1 {
  text-align: center;
}

.main-text__block1 p {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-black);
  line-height: 2.2;
  margin-bottom: calc(40 / 1440 * 100vw);
}

.main-text__block1 p:last-child {
  margin-bottom: 0;
}
.main-text__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-blue);
  line-height: 2.2;
  text-align: center;
  margin: calc(60 / 1440 * 100vw) 0 calc(60 / 1440 * 100vw);
}

.main-text__block2 {
  text-align: center;
}

.main-text__block2 p {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-black);
  line-height: 2.2;
  margin-bottom: calc(40 / 1440 * 100vw);
}

/* ========================================
   書籍紹介セクション
======================================== */
.books-intro {
  padding:0 0 calc(60 / 1440 * 100vw);
  background: var(--color-white);
}

.books-intro__inner {
  max-width: calc(1081 / 1440 * 100vw);
  margin: 0 auto;
  text-align: center;
}

.books-intro__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-blue);
  line-height: 2.2;
}

.books-intro__video {
  width: calc(854 / 1440 * 100vw);
  aspect-ratio: 16 / 9;
  margin: calc(40 / 1440 * 100vw) auto 0 auto;
}

.books-intro__video iframe {
  width: 100%;
  height: 100%;
}

.books-intro__sub {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-black);
  line-height: 2.2;
  margin-top: calc(60 / 1440 * 100vw);
}

/* ========================================
   特典書籍セクション
======================================== */
.book-detail {
  position: relative;
  overflow: hidden;
  padding-top: calc(90 / 1440 * 100vw);
  margin-top: calc(-2 / 1440 * 100vw);
}

.book-detail--2 {
  padding-top: 0;
}

.book-detail__inner {
  padding: 0;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.book-detail--1 .book-detail__inner {
  background-image: url("../images/book-detail--1-bg.png");
  height: calc(1480 / 1440 * 100vw);
  padding: calc(170 / 1440 * 100vw) 0;
}

.book-detail--2 .book-detail__inner {
  background-image: url("../images/book-detail--2-bg.png");
  height: calc(1250 / 1440 * 100vw);
  padding-top: calc(250 / 1440 * 100vw);
}
.book-detail__inner-inner {
  width: calc(1100 / 1440 * 100vw);
  margin: 0 auto;
  position: relative;
}

.book-detail__inner-inner--2 {
  margin: 0 auto 0 calc(481 / 1440 * 100vw);
}
.book-detail__header {
  display: flex;
  align-items: center;
  gap: calc(16 / 1440 * 100vw);
}

.book-detail__label {
  display: inline-block;
  background: var(--color-white);
  color: var(--color-dark-navy);
  font-family: var(--font-serif);
  font-weight: 900;
  font-size: calc(24 / 1440 * 100vw);
  padding: calc(12 / 1440 * 100vw) calc(28 / 1440 * 100vw);
  line-height: 1;
}

.book-detail__title {
  font-family: var(--font-serif);
  font-weight: 900;
  font-size: calc(60 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 2.4;
}

.book-detail__title span {
  font-size: calc(35 / 1440 * 100vw);
  font-weight: 900;
  display: block;
  line-height: 1.2;
}
.book-detail__inner-inner--2 .book-detail__title{
  width: calc(790 / 1440 * 100vw);
  text-align: center;
}
.book-detail__inner-inner--2 .book-detail__title span{
  font-size: calc(32 / 1440 * 100vw);
}

.book-detail__book-image {
  width: calc(310 / 1440 * 100vw);
  height: calc(503 / 1440 * 100vw);
  position: absolute;
  right: 9.8%;
  top: 2.1%;
  z-index: 1;
}

.book-detail__book-image--2 {
  left: -31.2%;
  top: -100%;
  right: auto;
}

.book-detail__chapters {
  width: 100%;
}

.book-detail__chapters-inner {
  max-width: calc(1100 / 1440 * 100vw);
  margin: 0 auto;
  padding: calc(120 / 1440 * 100vw) 0 calc(60 / 1440 * 100vw);
}

.book-detail__chapters-inner--2 {
  padding-top: calc(130 / 1440 * 100vw);
  padding-bottom: 0;
}

.book-detail__chapter {
  margin-bottom: calc(40 / 1440 * 100vw);
}

.book-detail__chapter:last-child {
  margin-bottom: 0;
}

.book-detail__chapter-head {
  display: flex;
  align-items: center;
  background: var(--color-white);
  padding: calc(12 / 1440 * 100vw) calc(16 / 1440 * 100vw);
  gap: calc(10 / 1440 * 100vw);
  margin-bottom: calc(20 / 1440 * 100vw);
  height: calc(56 / 1440 * 100vw);
  justify-content: center;
}

.book-detail__chapter-num {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-dark-navy);
  flex-shrink: 0;
}

.book-detail__chapter-head h4 {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(28 / 1440 * 100vw);
  color: var(--color-dark-navy);
}

.book-detail__chapter > p {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(20 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 2.2;
  text-align: center;
}


/* ========================================
   お客様の声
======================================== */
.testimonials {
  padding: calc(120 / 1440 * 100vw) 0;
  background: var(--color-white);
  position: relative;
  background-image: url("../images/testimonials-bg.webp");
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

.testimonials__inner {
  width: calc(1100 / 1440 * 100vw);
  margin: 0 auto;
}

.testimonials__title {
  font-family: var(--font-serif);
  font-weight: 900;
  font-size: calc(56 / 1440 * 100vw);
  color: var(--color-red);
  text-align: center;
  line-height: 1;
  letter-spacing: 0;
}

.testimonials__subtitle {
  font-family: var(--font-serif);
  font-weight: 900;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-red);
  text-align: center;
  margin-top: calc(40 / 1440 * 100vw);
  line-height: 1;
  letter-spacing: 0;
  font-feature-settings: "palt";
  -webkit-font-feature-settings: "palt";
  margin-left: calc(40 / 1440 * 100vw);
}

.testimonials__image {
  display: none;
}

.testimonials__cards {
  display: flex;
  gap: calc(40 / 1440 * 100vw);
  margin-top: calc(60 / 1440 * 100vw);
}

.testimonials__card {
  flex: 1;
  background: var(--color-white);
  overflow: hidden;
}

.testimonials__card-header {
  background: var(--color-red);
  padding: calc(18 / 1440 * 100vw) calc(20 / 1440 * 100vw);
  text-align: center;
  height: calc(69 / 1440 * 100vw);
}

.testimonials__card-catch {
  font-family: var(--font-serif);
  font-weight: 900;
  font-size: calc(22 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1.4;
}

.testimonials__card-deco {
  width: calc(29 / 1440 * 100vw);
  height: calc(20 / 1440 * 100vw);
  margin: calc(19 / 1440 * 100vw) auto 0;
}

.testimonials__card-body {
  padding: calc(20 / 1440 * 100vw) 0;
}

.testimonials__card-body p {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: calc(20 / 1440 * 100vw);
  color: var(--color-black);
  line-height: 1.4;
  margin-bottom: calc(16 / 1440 * 100vw);
}

.testimonials__card-body p:last-child {
  margin-bottom: 0;
}

.testimonials__card-author {
  font-weight: 900 !important;
  margin-top: calc(28 / 1440 * 100vw);
  font-size: calc(24 / 1440 * 100vw) !important;
  text-align: center;
}

/* ========================================
   セミナー内容
======================================== */
.seminar-content {
  background: var(--color-red);
  padding: calc(120 / 1440 * 100vw) 0 calc(40 / 1440 * 100vw) 0;
}

.seminar-content__inner {
  width: calc(1200 / 1440 * 100vw);
  margin: 0 auto;
}

.seminar-content__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-white);
  text-align: center;
  line-height: 1.6;
  letter-spacing: 0;
}

.seminar-content__sub {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-white);
  text-align: center;
  line-height: 2.2;
  margin-top: calc(40 / 1440 * 100vw);
  letter-spacing: 0;
}

.seminar-content__sub-highlight {
  color: var(--color-red);
  font-feature-settings: "palt";
  -webkit-font-feature-settings: "palt";
  position: relative;
  z-index: 1;
}
.seminar-content__sub-highlight::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 100%;
  width: 97%;
  background-color: var(--color-yellow);
  z-index: -1;
}
.seminar-content__box {
  width: calc(1200 / 1440 * 100vw);
  background: var(--color-white);
  padding: calc(60 / 1440 * 100vw) 0 calc(80 / 1440 * 100vw);
  margin-top: calc(60 / 1440 * 100vw);
}

.seminar-content__box-title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-red);
  text-align: center;
  line-height: 1;
  letter-spacing: 0;
}

.seminar-content__box-line {
  width: calc(60 / 1440 * 100vw);
  height: calc(1 / 1440 * 100vw);
  background: var(--color-red);
  margin: calc(32 / 1440 * 100vw) auto;
}

.seminar-content__items {
  margin: 0 auto;
  margin-top: calc(-16 / 1440 * 100vw);
  width: calc(757 / 1440 * 100vw);
}

.seminar-content__item {
  display: flex;
  align-items: baseline;
  gap: calc(20 / 1440 * 100vw);
  padding: calc(16 / 1440 * 100vw) 0;
}

.seminar-content__item-num {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-red);
  flex-shrink: 0;
  line-height: 1;
  letter-spacing: 0;
}

.seminar-content__item p {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(28 / 1440 * 100vw);
  color: var(--color-red);
  line-height: 1;
  letter-spacing: 0;
}

/* ========================================
   会場・日程情報
======================================== */
.venue {
  background: var(--color-red);
  padding: 0 0 calc(120 / 1440 * 100vw);
  margin-top: calc(-2 / 1440 * 100vw);
}

.venue__inner {
  width: calc(1200 / 1440 * 100vw);
  margin: 0 auto;
  background-color: var(--color-dark-red);
  padding: calc(60 / 1440 * 100vw) 0 calc(80 / 1440 * 100vw);
}

.venue__head {
  color: var(--color-white);
  text-align: center;
  margin-bottom: calc(40 / 1440 * 100vw);
  font-family: Noto Serif JP;
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  line-height: 1;
  letter-spacing: 0;
}

.venue__sub {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(20 / 1440 * 100vw);
  line-height: 1;
  letter-spacing: 0.04em;
  text-align: center;
  margin-bottom: calc(20 / 1440 * 100vw);
  color: var(--color-white);
}
.venue__cards {
  display: flex;
  flex-direction: column;
  width: calc(680 / 1440 * 100vw);
  margin: 0 auto;
}

.venue__card {
  display: flex;
  gap: calc(20 / 1440 * 100vw);
  padding: calc(16 / 1440 * 100vw) calc(30 / 1440 * 100vw);
  border-bottom: 1px solid var(--color-white);
}

.venue__card-label {
  background: var(--color-white);
  padding: calc(4 / 1440 * 100vw) 0;
  flex-shrink: 0;
  height: calc(30 / 1440 * 100vw);
  margin-top: calc(15 / 1440 * 100vw);
  width: calc(104 / 1440 * 100vw);
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.venue__card-label span {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(20 / 1440 * 100vw);
  color: var(--color-dark-red);
  line-height: 1;
  letter-spacing: 0;
}

.venue__card-date {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(28 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.venue__card-date__num {
  font-size: calc(40 / 1440 * 100vw);
}

.venue__card-address {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(20 / 1440 * 100vw);
  color: var(--color-white);
  margin-top: calc(8 / 1440 * 100vw);
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.venue__price-area {
  text-align: center;
  margin-top: calc(40 / 1440 * 100vw);
}

.venue__price-note1 {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-white);
  margin-bottom: calc(16 / 1440 * 100vw);
}

.venue__price {
  display: flex;
  align-items: center;
  justify-content: center;

}

.venue__price-label {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-white);
  margin-right: calc(20 / 1440 * 100vw);
}

.venue__price-amount {
  font-family: "Times New Roman", serif;
  font-weight: 700;
  font-size: calc(60 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1;
  
}

.venue__price-yen {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(32 / 1440 * 100vw);
  color: var(--color-white);
  margin-left: calc(4 / 1440 * 100vw);
  margin-bottom: calc(-8 / 1440 * 100vw);
}

.venue__note {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(17 / 1440 * 100vw);
  color: var(--color-white);
  text-align: center;
  margin-top: calc(40 / 1440 * 100vw);
  line-height: 1;
  letter-spacing: 0;
}

/* ========================================
   全額返金保証
======================================== */
.guarantee {
  padding: calc(120 / 1440 * 100vw) 0 0;
  background: var(--color-white);
}

.guarantee__inner {
  max-width: calc(1179 / 1440 * 100vw);
  margin: 0 auto;
  text-align: center;
}

.guarantee__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(44 / 1440 * 100vw);
  color: var(--color-black);
  line-height: 2.2;
  letter-spacing: 0;
}

.guarantee__content {
  margin-top: calc(40 / 1440 * 100vw);
}

.guarantee__content p {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-black);
  line-height: 2.2;
  margin-bottom: calc(40 / 1440 * 100vw);
}

.guarantee__bold {
  font-size: calc(24 / 1440 * 100vw) !important;
  font-weight: 700 !important;
}

.text-red {
  color: var(--color-red);
}

/* ========================================
   CTAボタン バリエーション
======================================== */
.cta-section--alt {
  margin: calc(20 / 1440 * 100vw) 0 calc(120 / 1440 * 100vw);
}
.cta-section--alt .cta-button {
  width: calc(682 / 1440 * 100vw);
  height: calc(112 / 1440 * 100vw);
}
.cta-section--alt .cta-button__text {
  font-size: calc(32 / 1440 * 100vw);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.cta-section--alt .cta-button__text-red {
  color: var(--color-red);
}
.cta-section--alt .cta-button__arrow {
  width: calc(15 / 1440 * 100vw);
  height: calc(24 / 1440 * 100vw);
  padding-top: calc(4 / 1440 * 100vw);
}

/* ========================================
   実績セクション
======================================== */
.achievements {
  background: var(--color-blue);
  padding: calc(120 / 1440 * 100vw) 0;
}

.achievements__inner {
  width: calc(1320 / 1440 * 100vw);
  margin: 0 auto;
}

.achievements__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-white);
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0;
}

.achievements__sub {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(24 / 1440 * 100vw);
  color: var(--color-white);
  text-align: center;
  line-height: 2.2;
  margin-top: calc(40 / 1440 * 100vw);
  margin-bottom: calc(20 / 1440 * 100vw);
  letter-spacing: 0;
}

.text-yellow {
  color: var(--color-yellow);
}

.achievements__row {
  display: flex;
  align-items: center;
  gap: calc(50 / 1440 * 100vw);
  margin-top: calc(40 / 1440 * 100vw);
}

.achievements__row--reverse {
  flex-direction: row-reverse;
}

.achievements__row-text {
  width: 50%;
}

.achievements__row-text--left {
  width: calc(520 / 1440 * 100vw);
  margin-left: auto;
}
.achievements__row-title {
  font-family: var(--font-serif);
  font-weight: 900;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 1.5;
}
.achievements__row-title-num {
  font-size: calc(60 / 1440 * 100vw);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1;
}

.achievements__row-note {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: calc(16 / 1440 * 100vw);
  color: var(--color-white);
  margin-top: calc(8 / 1440 * 100vw);
  text-align: end;
  margin-right: calc(44 / 1440 * 100vw);
}

.achievements__row-note--2 {
  margin-right: calc(153 / 1440 * 100vw);
}

.achievements__row-body {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(20 / 1440 * 100vw);
  color: var(--color-white);
  line-height: 2;
  margin-top: calc(16 / 1440 * 100vw);
}

.achievements__row-image {
  width: calc(640 / 1440 * 100vw);
  height: calc(360 / 1440 * 100vw);
  flex-shrink: 0;
  overflow: hidden;
}

.achievements__row-image img {
  display: block;
  width: 100%;
}

.achievements__articles {
  display: flex;
  gap: calc(40 / 1440 * 100vw);
  margin-top: calc(60 / 1440 * 100vw);
}

.achievements__article {
  width: calc(640 / 1440 * 100vw);
  height: calc(360 / 1440 * 100vw);
  overflow: hidden;
}

.cta-section--last {
  margin: calc(80 / 1440 * 100vw) 0;
}
.cta-section__last-text {
  text-align: center;
  background-color: var(--color-yellow);
  height: calc(74 / 1440 * 100vw);
  display: flex;
  align-items: center;
  justify-content: center;
}
.cta-section__last-text-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: calc(40 / 1440 * 100vw);
  color: var(--color-error-red);
  position: relative;
}

.cta-section__last-text-title:after,
.cta-section__last-text-title:before{
  content: "";
  background-image: url("../images/sankaku-last.png");
  background-size: contain;
  background-repeat: no-repeat;
  display: block;
  width: calc(42 / 1440 * 100vw);
  height: calc(30 / 1440 * 100vw);
  top: 54%;
  transform: translateY(-50%);
  position: absolute;
}

.text-rotate:after,
.text-rotate:before{
  transform: rotate(180deg);
  top: 30%;
}
.cta-section__last-text-title:after{
  left: -13%;
}
.cta-section__last-text-title:before{
  right: -10%;
}
.text-white {
  color: var(--color-white);
  background-color: var(--color-error-red);
  padding: calc(0 / 1440 * 100vw) calc(8 / 1440 * 100vw) calc(4 / 1440 * 100vw) calc(8 / 1440 * 100vw);
}
/* ========================================
   申し込みフォーム（既存サイトから流用）
======================================== */
.section-title__wrap {
  position: relative;
}
.section-title__wrap h2 {
  width: calc(453 / 1440 * 100vw);
  height: calc(71 / 1440 * 100vw);
  margin: 0 auto;
}
.section-title__wrap h2 img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.section-title__wrap h4 {
  position: absolute;
  font-size: calc(20 / 1440 * 100vw);
  color: #004EA2;
  border: solid calc(2 / 1440 * 100vw) #004EA2;
  text-align: center;
  width: calc(271 / 1440 * 100vw);
  height: calc(39 / 1440 * 100vw);
  border-radius: calc(100 / 1440 * 100vw);
  background-color: #fff;
  left: 50%;
  transform: translateX(-50%);
  top: calc(50/1440*100vw);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.1rem;
  font-weight: 600;
  font-family: var(--font-sans);
}
.section-title__wrap p {
  text-align: center;
  font-size: calc(16/1440*100vw);
  color: #353535;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.03rem;
  margin-bottom: calc(30/1440*100vw);
  font-family: var(--font-inter);
}
.section-title__wrap .-p__red {
  color: #DE3B3B;
  margin-bottom: 0;
}
.section-title__wrap .-p__red:last-child {
  margin-bottom: calc(50/1440*100vw);
}

.contact {
  width: 100%;
  padding: calc(70/1440*100vw) 0 calc(110/1440*100vw) 0;
  background-color: #F5F5F5;
  position: relative;
}
.contact .__wrap {
  margin: 0 auto;
  width: calc(1020 / 1440 * 100vw);
  max-width: 1440px;
}
.contact .text__line {
  font-size: calc(48 / 1440 * 100vw);
  font-weight: 700;
  text-align: center;
  color: #004EA2;
  margin: calc(40 / 1440 * 100vw) 0 calc(20/1440*100vw) 0;
  letter-spacing: 0.5rem;
  font-family: var(--font-sans);
}
.contact .form__wrap {
  display: flex;
  flex-direction: column;
  width: calc(1020 / 1440 * 100vw);
  margin: 0 auto;
}
.contact .form__wrap .input__wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: calc(28 / 1440 * 100vw);
}
.contact .form__wrap .input__wrap p {
  font-size: calc(16 / 1440 * 100vw);
  color: #353535;
  font-weight: 400;
  letter-spacing: 0.05rem;
  white-space: nowrap;
  font-family: var(--font-sans);
}
.contact .form__wrap .input__wrap p span {
  font-size: calc(16 / 1440 * 100vw);
  background-color: #004EA2;
  color: #fff;
  border-radius: calc(3 / 1440 * 100vw);
  margin-right: calc(16 / 1440 * 100vw);
  height: calc(28 / 1440 * 100vw);
  width: calc(49 / 1440 * 100vw);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-family: var(--font-sans);
}
.contact .form__wrap .input__wrap p .card__color {
  background-color: #353535;
}
.contact .form__wrap .input__wrap input,
.contact .form__wrap .input__wrap .select-like {
  padding: calc(18/1440*100vw) calc(20/1440*100vw);
  width: calc(800 / 1440 * 100vw);
  height: calc(48 / 1440 * 100vw);
  border-radius: calc(6 / 1440 * 100vw);
  border: solid 1px #717171;
  font-size: calc(16 / 1440 * 100vw);
  background-color: #fff;
  display: flex;
  align-items: center;
}
.contact .form__wrap .input__wrap input[type="radio"] {
  width: calc(48 / 1440 * 100vw);
  height: calc(48 / 1440 * 100vw);
  margin-right: calc(8 / 1440 * 100vw);
}
.contact .form__wrap .input__wrap .select-like {
  position: relative;
}
.contact .form__wrap .input__wrap .select-like[open] summary {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.contact .form__wrap .input__wrap .select-like ul {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: calc(200 / 1440 * 100vw);
  overflow-y: auto;
  background: #fff;
  z-index: 10;
  border: solid 1px #717171;
  border-radius: 0 0 calc(6 / 1440 * 100vw) calc(6 / 1440 * 100vw);
  padding: calc(10/1440*100vw);
  list-style: none;
}
.contact .form__wrap .input__wrap .select-like ul li {
  padding: 0;
  cursor: pointer;
  font-family: var(--font-sans);
  font-size: calc(16 / 1440 * 100vw);
  font-weight: 600;
}
.contact .form__wrap .input__wrap .select-like ul li:hover {
  background: #004E9D;
  color: #fff;
}
.contact .form__wrap .input__wrap .select-like ul .li__under {
  padding-bottom: calc(20/1440*100vw);
}
.contact .form__wrap .input__wrap .select-like > summary {
  list-style: none;
  cursor: pointer;
  border-radius: calc(4 / 1440 * 100vw);
  width: 100%;
  appearance: none;
  box-sizing: border-box;
  font-family: var(--font-sans);
}
.contact .form__wrap .input__wrap .select-like > summary.placeholder {
  color: #717171;
}
.contact .form__wrap .input__wrap .select-like > summary:focus {
  outline: none;
  border-color: #004E9D;
}
.contact .form__wrap .input__wrap select {
  width: calc(800/1440*100vw);
  height: calc(48/1440*100vw);
  border-radius: calc(6 / 1440 * 100vw);
  border: solid 1px #717171;
  font-size: calc(16 / 1440 * 100vw);
  background-color: #fff;
  display: flex;
  align-items: center;
  padding-left: calc(16/1440*100vw);
  font-family: var(--font-sans);
}
.contact .form__wrap .input__wrap div {
  width: calc(800 / 1440 * 100vw);
  height: calc(48/1440*100vw);
  display: flex;
  align-items: center;
}

.contact .form__wrap .last__item {
  justify-content: flex-start;
  margin-left: calc(223/1440*100vw);
}
.contact .form__wrap .last__item .partner-line {
  color: #004EA2;
  font-weight: 600;
  font-size: calc(16/1440*100vw);
  font-family: var(--font-sans);
}
.contact .form__wrap .input__wrap:last-child {
  margin-bottom: calc(60 / 1440 * 100vw);
}
.contact .form__wrap .pp {
  width: calc(1020 / 1440 * 100vw);
  background-color: #fff;
  height: calc(152/1440*100vw);
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: calc(30/1440*100vw);
  flex-direction: column;
  border-radius: calc(8/1440*100vw);
}
.contact .form__wrap .pp .pp__wrap {
  width: calc(285 / 1440 * 100vw);
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact .form__wrap .pp .pp__wrap input[type="checkbox"] {
  width: calc(24 / 1440 * 100vw);
  height: calc(24 / 1440 * 100vw);
  border: solid 1px #717171;
  border-radius: 0.3vw;
  appearance: none;
  position: relative;
  flex-shrink: 0;
}
.contact .form__wrap .pp .pp__wrap input[type="checkbox"]:checked {
  background: #fff;
}
.contact .form__wrap .pp .pp__wrap input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  width: calc(8/1440*100vw);
  height: calc(16/1440*100vw);
  border-right: 2px solid #004EA2;
  border-bottom: 2px solid #004EA2;
  transform: translate(-50%, -50%) rotate(45deg);
  top: 47%;
  left: 50%;
}
.contact .form__wrap .pp .pp__wrap p {
  width: calc(245 / 1440 * 100vw);
  display: flex;
  margin-left: calc(16 / 1440 * 100vw);
  letter-spacing: 0.01rem;
  line-height: 2;
  font-size: calc(16 / 1440 * 100vw);
  font-family: var(--font-sans);
}
.contact .form__wrap .pp .pp__wrap p a {
  text-decoration: underline;
}
.contact .form__wrap .pp .pp__wrap:first-child {
  margin-bottom: calc(10/1440*100vw);
}
.contact .form__wrap .important {
  margin-bottom: calc(40/1440*100vw);
}
.contact .form__wrap .important .__wrap {
  width: calc(1020/1440*100vw);
}
.contact .form__wrap .important .__wrap .-head__wrap {
  height: calc(85/1440*100vw);
  background-color: #353535;
  display: flex;
  justify-content: center;
  align-items: center;
}
.contact .form__wrap .important .__wrap .-head__wrap .-card__wrap {
  background-color: var(--color-yellow);
  width: calc(89/1440*100vw);
  height: calc(45/1440*100vw);
  padding: calc(12/1440*100vw) calc(15/1440*100vw);
  margin-right: calc(40/1440*100vw);
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact .form__wrap .important .__wrap .-head__wrap .-card__wrap h3 {
  color: #353535;
  font-size: calc(28/1440*100vw);
  line-height: 0.7;
  font-weight: 700;
  font-family: var(--font-sans);
}
.contact .form__wrap .important .__wrap .-head__wrap h3 {
  font-size: calc(32/1440*100vw);
  font-weight: 700;
  color: var(--color-yellow);
  letter-spacing: 0.05rem;
  font-family: var(--font-sans);
}
.contact .form__wrap .important .__wrap .-message__wrap {
  margin-top: -0.3vw;
  border: solid calc(4/1440*100vw) #353535;
  padding: calc(24/1440*100vw) calc(40/1440*100vw);
}
.contact .form__wrap .important .__wrap .-message__wrap p {
  font-size: calc(16/1440*100vw);
  line-height: 1.6;
  letter-spacing: 0.02rem;
  font-weight: 500;
  font-family: var(--font-sans);
}
.contact .form__wrap button[type="submit"] {
  text-indent: 0.75rem;
  margin: 0 auto;
  width: calc(310 / 1440 * 100vw);
  height: calc(68 / 1440 * 100vw);
  font-size: calc(16/1440*100vw);
  background-color: #004EA2;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: calc(100 / 1440 * 100vw);
  letter-spacing: 0.5rem;
  text-align: center;
  border: none;
  cursor: pointer;
  margin-bottom: calc(50/1440*100vw);
  font-family: var(--font-sans);
}
.contact .form__wrap .tn__wrap {
  text-align: center;
  margin: 0 auto;
}
.contact .form__wrap .tn__wrap .-head__wrap {
  width: calc(243/1440*100vw);
  height: calc(32/1440*100vw);
  border: solid calc(2/1440*100vw) #353535;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact .form__wrap .tn__wrap .-head__wrap h4 {
  font-size: calc(16/1440*100vw);
  color: #353535;
  font-weight: 500;
  letter-spacing: 0.03rem;
  text-align: center;
  position: static;
  border: none;
  width: auto;
  height: auto;
  border-radius: 0;
  background-color: transparent;
  transform: none;
  top: auto;
  font-family: var(--font-sans);
}
.contact .form__wrap .tn__wrap h2 {
  font-size: calc(62/1440*100vw);
  font-weight: 500;
  color: #353535;
  letter-spacing: 0.03rem;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
}
.contact .form__wrap .tn__wrap p {
  font-size: calc(16/1440*100vw);
  color: #353535;
  font-weight: 500;
  letter-spacing: 0.03rem;
  font-family: var(--font-sans);
}

/* --- contact 1441px以上 --- */
@media (min-width: 1441px) {
  .contact { padding: 70px 0 110px 0; }
  .contact .__wrap { width: 1020px; }
  .contact .text__line { font-size: 48px; font-weight: 700; margin: 40px 0 30px 0; }
  .contact .form__wrap { width: 1020px; }
  .contact .form__wrap .input__wrap { margin-bottom: 28px; }
  .contact .form__wrap .input__wrap p { font-size: 16px; }
  .contact .form__wrap .input__wrap p span { font-size: 16px; border-radius: 3px; margin-right: 16px; height: 28px; width: 49px; }
  .contact .form__wrap .input__wrap input,
  .contact .form__wrap .input__wrap .select-like { padding: 18px 20px; width: 800px; height: 48px; border-radius: 6px; font-size: 16px; }
  .contact .form__wrap .input__wrap .select-like ul { max-height: 200px; border-radius: 0 0 6px 6px; padding: 10px; }
  .contact .form__wrap .input__wrap .select-like ul li { padding: 0; }
  .contact .form__wrap .input__wrap .select-like ul .li__under { padding-bottom: 20px; }
  .contact .form__wrap .input__wrap .select-like > summary { border-radius: 4px; }
  .contact .form__wrap .input__wrap select { width: 800px; height: 48px; border-radius: 6px; font-size: 16px; padding-left: 16px; }
  .contact .form__wrap .last__item { justify-content: center; margin-left: -210px; }
  .contact .form__wrap .last__item .partner-line { font-size: 16px; }
  .contact .form__wrap .input__wrap:last-child { margin-bottom: 60px; }
  .contact .form__wrap .pp { width: 1020px; height: 152px; margin-bottom: 48px; }
  .contact .form__wrap .pp .pp__wrap { width: 285px; }
  .contact .form__wrap .pp .pp__wrap input[type="checkbox"] { width: 24px; height: 24px; }
  .contact .form__wrap .pp .pp__wrap input[type="checkbox"]:checked::after { width: 6px; height: 12px; }
  .contact .form__wrap .pp .pp__wrap p { width: 245px; margin-left: 16px; font-size: 16px; }
  .contact .form__wrap .pp .pp__wrap:first-child { margin-bottom: 10px; }
  .contact .form__wrap .important { margin-bottom: 40px; }
  .contact .form__wrap .important .__wrap { width: 1020px; }
  .contact .form__wrap .important .__wrap .-head__wrap { height: 85px; }
  .contact .form__wrap .important .__wrap .-head__wrap .-card__wrap { width: 89px; height: 45px; padding: 12px 15px; margin-right: 40px; }
  .contact .form__wrap .important .__wrap .-head__wrap .-card__wrap h3 { font-size: 28px; }
  .contact .form__wrap .important .__wrap .-head__wrap h3 { font-size: 32px; }
  .contact .form__wrap .important .__wrap .-message__wrap { border: solid 4px #353535; padding: 24px 40px; }
  .contact .form__wrap .important .__wrap .-message__wrap p { font-size: 16px; }
  .contact .form__wrap button[type="submit"] { width: 310px; height: 68px; font-size: 16px; margin-bottom: 50px; }
  .contact .form__wrap .tn__wrap .-head__wrap { width: 243px; height: 32px; border: solid 2px #353535; }
  .contact .form__wrap .tn__wrap .-head__wrap h4 { font-size: 16px; }
  .contact .form__wrap .tn__wrap h2 { font-size: 62px; }
  .contact .form__wrap .tn__wrap p { font-size: 16px; }
  .section-title__wrap h2 { width: 453px; height: 71px; }
  .section-title__wrap h4 { font-size: 20px; font-weight: 700; border: solid 2px #004EA2; padding: 0 36px; height: 39px; top: 50px; }
}

/* ========================================
   ユーティリティ
======================================== */
.sp-only-inline { display: none; }
.br-pc__none { display: none; }

@media (max-width: 768px) {
  .sp-only-inline { display: inline; }
  .br-pc__none { display: inline; }
  .br-sp__none { display: none; }
}

/* ========================================
   確認画面（confirm）
======================================== */
.confirm .form__wrap {
  display: flex;
  flex-direction: column;
  width: calc(1020 / 1440 * 100vw);
  margin: 0 auto;
}
.confirm .form__wrap .input__wrap {
  display: flex;
  justify-content: start !important;
  align-items: center;
  margin-bottom: calc(28 / 1440 * 100vw);
}
.confirm .form__wrap .input__wrap p {
  font-size: calc(16 / 1440 * 100vw);
  color: #353535;
  font-weight: 400;
  letter-spacing: 0.05rem;
  width: calc(220/1440*100vw);
}
.confirm .form__wrap .input__wrap p span {
  font-size: calc(16 / 1440 * 100vw);
  background-color: #004EA2;
  color: #fff;
  border-radius: calc(3 / 1440 * 100vw);
  margin-right: calc(16 / 1440 * 100vw);
  height: calc(28 / 1440 * 100vw);
  width: calc(49 / 1440 * 100vw);
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
.confirm .form__wrap .input__wrap .-input__value {
  width: 300px;
}
.confirm .text__line {
  font-size: 32px;
}
.confirm .form__wrap .-btn__wrap {
  width: calc(604/1440*100vw);
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  margin-top: calc(20/1440*100vw);
}
.confirm .form__wrap .-btn__wrap button {
  text-indent: 0.6rem;
  width: calc(274 / 1440 * 100vw);
  height: calc(68 / 1440 * 100vw);
  font-size: calc(16 / 1440 * 100vw);
  background-color: #004EA2;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: calc(100 / 1440 * 100vw);
  letter-spacing: 0.5rem;
  text-align: center;
  border: none;
  cursor: pointer;
}
.confirm .form__wrap .-btn__wrap button:nth-child(1) {
  background-color: #A9A9A9;
}

@media (min-width: 1441px) {
  .confirm .form__wrap .input__wrap p { width: 220px; }
  .confirm .form__wrap .-btn__wrap { width: 604px; margin-top: 20px; }
  .confirm .form__wrap .-btn__wrap button { width: 274px; height: 68px; font-size: 16px; }
  .confirm .form__wrap .-btn__wrap button:nth-child(1) { width: 274px; }
}

/* ========================================
   完了画面（complete）
======================================== */
.complete .complete__wrap {
  width: calc(1100 / 1440 * 100vw);
  margin: 0 auto;
}
.complete .complete__wrap .text__line {
  font-size: 32px;
}
.complete .complete__wrap .form__wrap p {
  font-size: 16px;
  margin-bottom: calc(40/1440*100vw);
  text-align: center;
}
.complete .complete__wrap .form__wrap p .br-pc__none { display: none; }
.complete .complete__wrap .form__wrap p a {
  display: inline;
  color: #004EA2;
  text-decoration: underline;
}
.complete .complete__wrap .complete-btn__wrap {
  display: flex;
  justify-content: center;
  margin: calc(20/1440*100vw) auto 0;
}
.complete .complete__wrap .complete-btn__wrap button {
  text-indent: 0.6rem;
  width: calc(274 / 1440 * 100vw);
  height: calc(68 / 1440 * 100vw);
  font-size: calc(16 / 1440 * 100vw);
  background-color: #A9A9A9;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: calc(100 / 1440 * 100vw);
  letter-spacing: 0.5rem;
  text-align: center;
  border: none;
  cursor: pointer;
}

@media (min-width: 1441px) {
  .complete .complete__wrap { width: 1100px; }
  .complete .complete__wrap .form__wrap p { margin-bottom: 40px; }
  .complete .complete__wrap .complete-btn__wrap { margin-top: 20px; }
  .complete .complete__wrap .complete-btn__wrap button { width: 274px; height: 68px; font-size: 16px; }
}

/* ========================================
   フッター
======================================== */
.footer {
  padding: calc(40 / 1440 * 100vw) 0;
}

.footer__inner {
  display: flex;
  justify-content: center;
}

.footer__logo {
  width: calc(259 / 1440 * 100vw);
}

/* ========================================
   画面下追随CTAボタン
======================================== */
.sticky-cta {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  width: 100%;
  background: var(--color-yellow);
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.sticky-cta.active {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.sticky-cta__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(16 / 1440 * 100vw);
  height: calc(112 / 1440 * 100vw);
}

.sticky-cta__deco {
  width: calc(62 / 1440 * 100vw);
}

.sticky-cta__link {
  display: flex;
  align-items: center;
  gap: calc(40 / 1440 * 100vw);
}

.sticky-cta__text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(28 / 1440 * 100vw);
  color: var(--color-black);
}

.sticky-cta__text em {
  color: var(--color-red);
  background: var(--color-white);
  padding: calc(4 / 1440 * 100vw) calc(12 / 1440 * 100vw);
  border-radius: calc(3 / 1440 * 100vw);
  font-weight: 700;
}

/* ========================================
   PC大画面固定 LP本体 1441px以上
======================================== */
@media (min-width: 1441px) {
  /* ヘッダー */
  .header { height: 60px; }
  .header__inner { padding: 0 117px; }
  .header__logo { width: 230px; }

  /* ヒーロー */
  .hero { height: 688px; }
  .hero__inner { max-width: 1200px; }
  .hero__left { padding-top: 140px; }
  .hero__lead1 { font-size: 44px; }
  .hero__lead2 { font-size: 44px; margin-top: 8px; }
  .hero__catch-group { margin-top: 50px; }
  .hero__catch1 { font-size: 72px; }
  .hero__catch2 { font-size: 72px; margin-top: 8px; }
  .hero__catch3 { font-size: 72px; margin-top: 8px; margin-left: -35px; }
  .hero__catch3-os { font-size: 88px; margin-bottom: -11px; }
  .hero__text-small { font-size: 60px; }
  .hero__catch3-quote-last { margin-bottom: 6px; margin-left: -3px; }
  .hero__limited-text { margin-top: 28px; font-size: 22px; }
  .hero__limited-500 { font-size: 52px; }
  .hero__limited-rest { font-size: 40px; }
  .hero__limited-rest-small { font-size: 32px; }
  .hero__condition { margin-top: 40px; font-size: 22px; }
  .hero__right { width: 400px; }
  .hero__book-img { height: 684px; width: 440px; }
  .hero__badges { gap: 8px; margin-top: 20px; }
  .hero__badge { width: 113px; height: 113px; }
  .hero__badge p { font-size: 28px; }

  /* CTAボタン */
  .cta-section { padding: 40px 0; }
  .cta-button { gap: 40px; padding: 40px 80px; width: 599px; height: 122px; }
  .cta-button__text { font-size: 32px; }
  .cta-button__arrow { width: 15px; height: 24px; padding-top: 1.5px; }
  .cta-section__inner { width: 854px; height: 480px; }
  .cta-section__1 { gap: 60px; padding: 80px 0 60px; }

  /* 課題提起 */
  .problems { padding: 100px 0; height: 890px; }
  .problems__inner { width: 1100px; }
  .problems__title { font-size: 44px; }
  .problems__title em { padding: 6px; margin-right: 16px; }
  .problems__title-small { font-size: 40px; }
  .problems__list { margin-top: 50px; border-radius: 6px; padding: 80px 157px; }
  .problems__item { gap: 8px; padding: 16px 0; width: 785px; }
  .problems__check { width: 33px; height: 33px; }
  .problems__item p { font-size: 24px; }

  /* 本文 */
  .main-text { padding: 90px 0 50px; }
  .main-text__inner { max-width: 1081px; }
  .main-text__block1 p { font-size: 24px; margin-bottom: 40px; }
  .main-text__title { font-size: 40px; margin: 60px 0; }
  .main-text__block2 p { font-size: 24px; margin-bottom: 40px; }

  /* 書籍紹介 */
  .books-intro { padding: 0 0 60px; }
  .books-intro__inner { max-width: 1081px; }
  .books-intro__title { font-size: 40px; }
  .books-intro__video { width: 854px; margin: 40px auto 0; }
  .books-intro__sub { font-size: 24px; margin-top: 60px; }

  /* 特典書籍 */
  .book-detail { margin-top: -2px; }
  .book-detail__inner { padding: 0 0 40px; }
  .book-detail--1 .book-detail__inner { height: 1480px; padding: 270px 0; }
  .book-detail--2 .book-detail__inner { height: 1300px; padding-top: 310px; }
  .book-detail__inner-inner { width: 1100px; }
  .book-detail__inner-inner--2 { margin: 0 auto 0 481px; }
  .book-detail__header { gap: 16px; }
  .book-detail__label { font-size: 24px; padding: 12px 28px; }
  .book-detail__title { font-size: 60px; }
  .book-detail__title span { font-size: 35px; }
  .book-detail__inner-inner--2 .book-detail__title { width: 790px; }
  .book-detail__inner-inner--2 .book-detail__title span { font-size: 32px; }
  .book-detail__book-image { width: 310px; height: 503px; }
  .book-detail__chapters-inner { max-width: 1100px; padding: 120px 0 60px; }
  .book-detail__chapters-inner--2 { padding-top: 130px; }
  .book-detail__chapter { margin-bottom: 40px; }
  .book-detail__chapter-head { padding: 12px 16px; gap: 10px; margin-bottom: 20px; height: 56px; }
  .book-detail__chapter-num { font-size: 24px; }
  .book-detail__chapter-head h4 { font-size: 28px; }
  .book-detail__chapter > p { font-size: 20px; }

  /* お客様の声 */
  .testimonials { padding: 120px 0; }
  .testimonials__inner { width: 1100px; }
  .testimonials__title { font-size: 56px; }
  .testimonials__subtitle { font-size: 40px; margin-top: 40px; margin-left: 40px; }
  .testimonials__cards { gap: 40px; margin-top: 60px; }
  .testimonials__card-header { padding: 18px 20px; height: 69px; }
  .testimonials__card-catch { font-size: 22px; }
  .testimonials__card-deco { width: 29px; height: 20px; margin: 19px auto 0; }
  .testimonials__card-body { padding: 20px 0; }
  .testimonials__card-body p { font-size: 20px; margin-bottom: 16px; }
  .testimonials__card-author { margin-top: 28px; font-size: 24px !important; }

  /* セミナー内容 */
  .seminar-content { padding: 120px 0 40px; }
  .seminar-content__inner { max-width: 1200px; }
  .seminar-content__title { font-size: 40px; }
  .seminar-content__sub { font-size: 24px; margin-top: 40px; }
  .seminar-content__box { width: 1200px; padding: 60px 0 80px; margin-top: 60px; }
  .seminar-content__box-title { font-size: 40px; }
  .seminar-content__box-line { width: 60px; height: 1px; margin: 32px auto; }
  .seminar-content__items { margin-top: -16px; width: 757px; }
  .seminar-content__item { gap: 20px; padding: 16px 0; }
  .seminar-content__item-num { font-size: 24px; }
  .seminar-content__item p { font-size: 28px; }

  /* 会場・日程 */
  .venue { padding: 0 0 120px; margin-top: -2px; }
  .venue__inner { width: 1200px; padding: 60px 0 80px; }
  .venue__head { margin-bottom: 40px; font-size: 40px; }
  .venue__sub { font-size: 20px; margin-bottom: 20px; }
  .venue__cards { width: 680px; }
  .venue__card { gap: 20px; padding: 16px 30px; }
  .venue__card-label { padding: 4px 0; height: 30px; margin-top: 8px; width: 104px; }
  .venue__card-label span { font-size: 20px; }
  .venue__card-date { font-size: 28px; }
  .venue__card-date__num { font-size: 40px; }
  .venue__card-address { font-size: 20px; margin-top: 8px; }
  .venue__price-area { margin-top: 40px; }
  .venue__price-note1 { font-size: 24px; margin-bottom: 16px; }
  .venue__price-label { font-size: 24px; margin-right: 20px; }
  .venue__price-amount { font-size: 60px; }
  .venue__price-yen { font-size: 32px; margin-left: 4px; margin-bottom: -8px; }
  .venue__note { font-size: 17px; margin-top: 40px; }

  /* 返金保証 */
  .guarantee { padding: 120px 0 0; }
  .guarantee__inner { max-width: 1179px; }
  .guarantee__title { font-size: 44px; }
  .guarantee__content { margin-top: 40px; }
  .guarantee__content p { font-size: 24px; margin-bottom: 40px; }
  .guarantee__bold { font-size: 24px !important; }

  /* CTAボタン バリエーション */
  .cta-section--alt { margin: 20px 0 120px; }
  .cta-section--alt .cta-button { width: 682px; height: 112px; }
  .cta-section--alt .cta-button__text { font-size: 32px; }
  .cta-section--alt .cta-button__arrow { width: 15px; height: 24px; padding-top: 4px; }

  /* 実績 */
  .achievements { padding: 120px 0; }
  .achievements__inner { width: 1320px; }
  .achievements__title { font-size: 40px; }
  .achievements__sub { font-size: 24px; margin-top: 40px; margin-bottom: 20px; }
  .achievements__row { gap: 50px; margin-top: 40px; }
  .achievements__row-text--left { width: 520px; }
  .achievements__row-title { font-size: 40px; }
  .achievements__row-note { font-size: 16px; margin-top: 8px; margin-right: 9px;}
  .achievements__row-note--2 { margin-right: 114px;}
  .achievements__row-body { font-size: 20px; margin-top: 16px; }
  .achievements__row-image { width: 640px; height: 360px; }
  .achievements__articles { gap: 40px; margin-top: 60px; }
  .achievements__article { width: 640px; height: 360px; }
  .cta-section--last { margin: 80px 0; }
  .cta-section__last-text { height: 74px; }
  .cta-section__last-text-title { font-size: 40px; }
  .cta-section__last-text-title::after,
  .cta-section__last-text-title::before { width: 42px; height: 30px; }
  .text-white { padding: 0 8px 4px; }

  /* フッター */
  .footer { padding: 40px 0; }
  .footer__logo { width: 259px; }

  /* 画面下追随CTA */
  .sticky-cta { width: 1440px; }
  .sticky-cta__inner { gap: 16px; height: 112px; }
  .sticky-cta__deco { width: 62px; }
  .sticky-cta__link { gap: 40px; }
  .sticky-cta__text { font-size: 28px; }
  .sticky-cta__text em { padding: 4px 12px; border-radius: 3px; }
}

/* ========================================
   SP版 (max-width: 768px)
======================================== */
@media (max-width: 768px) {
  .sp-only {
    display: inline;
  }

  /* ヘッダー SP */
  .header {
    height: calc(37 / 375 * 100vw);
  }

  .header__inner {
    padding: 0 calc(20 / 375 * 100vw);
  }

  .header__logo {
    width: calc(100 / 375 * 100vw);
  }

  /* ヒーロー SP */
  .hero {
    padding: 0;
    background-image: url("../images/hero-bg-sp.png");
    height: calc(665 / 375 * 100vw);
    text-align: center;
  }

  .hero__inner {
    flex-direction: column;
    max-width: 100%;
  }

  .hero__left {
    padding-top: 0;
  }

  .hero__lead-group {
    position: absolute;
    top: 2%;
    left: 0%;
}
  .hero__lead1 {
    font-size: calc(20 / 375 * 100vw);
    transform: rotate(-4.5deg);
    text-align: start;
    margin-left: calc(20 / 375 * 100vw);
    line-height: 1.2;
  }

  .hero__lead2 {
    font-size: calc(20 / 375 * 100vw);
    transform: rotate(-4.5deg);
    text-align: start;
    margin-left: calc(20 / 375 * 100vw);
    
  }

  .hero__catch-group {
    margin-top: calc(100 / 375 * 100vw);
  }

  .hero__catch-text {
    line-height: 1.8;
}
  .hero__catch1 {
    font-size: calc(31 / 375 * 100vw);
    font-weight: 800;
  }

  .hero__catch2 {
    font-size: calc(32 / 375 * 100vw);
    font-weight: 800;
  }

  .hero__kaiin {
    font-size: calc(31 / 375 * 100vw);
  }

  .hero__text-small {
    font-size: calc(27 / 375 * 100vw);
  }
  .hero__catch3 {
    font-size: calc(37 / 375 * 100vw);
    margin-left: 0;
    letter-spacing: -0.04em;
    font-weight: 800;
  }
  .hero__catch3-small {
    font-size: calc(31 / 375 * 100vw);
  }
  .hero__catch3-os {
    font-size: calc(47 / 375 * 100vw);
    margin-bottom: calc(-6 / 375 * 100vw);
  }

  .hero__limited-text {
    font-size: calc(14 / 375 * 100vw);
    margin-top: calc(240 / 375 * 100vw);
    line-height: 1.2;
  }

  .hero__limited-500 {
    font-size: calc(34 / 375 * 100vw);
    font-weight: 400;
  }
  .hero__limited-rest {
    font-weight: 600;
    font-size: calc(25 / 375 * 100vw);
    letter-spacing: -0.04em;
    font-feature-settings: "palt";
  }
  .hero__limited-rest-small {
    font-size: calc(20/ 375 * 100vw);
  }
  .hero__condition {
    font-size: calc(14 / 375 * 100vw);
    margin-top: calc(12 / 375 * 100vw);
  }

  .hero__right {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: calc(12 / 375 * 100vw);
    margin-top: calc(20 / 375 * 100vw);
  }

  .hero__book-img.book1,
  .hero__book-img.book2 {
    width: calc(140 / 375 * 100vw);
    margin: 0;
  }

  .hero__book-img.book2 {
    margin-top: 0;
  }

  .hero__badges {
    width: 100%;
    justify-content: center;
    flex-direction: column;
    margin-top: calc(16 / 375 * 100vw);
    bottom: 194%;
    right: -80%;
  }

  .hero__badge {
    width: calc(64 / 375 * 100vw);
    height: calc(64 / 375 * 100vw);
  }

  .hero__badge p {
    font-size: calc(16 / 375 * 100vw);
  }
  .hero__book-img {
    width: calc(216 / 375 * 100vw);
    height: calc(220 / 375 * 100vw);
  }
  .hero__book-img-inner {
    right: 15%;
    top: -190%;
  }
  /* CTA SP */
  .cta-section {
    padding: calc(60 / 375 * 100vw) calc(20 / 375 * 100vw) calc(60 / 375 * 100vw);
    gap: calc(32 / 375 * 100vw);
  }

  .cta-section__inner {
    width: calc(335 / 375 * 100vw);
    height: calc(188 / 375 * 100vw);
  }
  .cta-button {
    padding: calc(20 / 375 * 100vw) calc(20 / 375 * 100vw);
    gap: calc(12 / 375 * 100vw);
    width: calc(335 / 375 * 100vw);
    height: calc(76 / 375 * 100vw);
    justify-content: center;
  }

  .cta-button__text {
    font-size: calc(20 / 375 * 100vw);
  }

  .cta-button__arrow {
    width: calc(10 / 375 * 100vw);
    height: calc(16 / 375 * 100vw);
    padding-top: calc(1.5 / 375 * 100vw);
  }

  .cta-section--alt .cta-button__text {
    font-size: calc(18 / 375 * 100vw);
  }

  /* 課題提起 SP */
  .problems {
    padding: calc(40 / 375 * 100vw) calc(20 / 375 * 100vw) calc(80 / 375 * 100vw);
    background-image: url("../images/problems-bg-sp.png");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    height: calc(600 / 375 * 100vw);
  }

  .problems__inner {
    width: 100%;
    height: calc(300 / 375 * 100vw);
  }
  .problems__title {
    font-size: calc(28 / 375 * 100vw);
  }
  .problems__title-small {
    font-size: calc(28 / 375 * 100vw);
  }
  .problems__list {
    width: 100%;
    padding: calc(20 / 375 * 100vw);
    margin-top: calc(32 / 375 * 100vw);
  }

  .problems__item {
    gap: calc(8 / 375 * 100vw);
    width: 100%;
    padding: calc(12 / 375 * 100vw) 0;
  }
  .problems__item:first-child {
    padding-top: 0;
  }
  .problems__check {
    width: calc(16 / 375 * 100vw);
    height: calc(16 / 375 * 100vw);
  }

  .problems__item p {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1.4;
  }

  /* 本文 SP */
  .main-text {
    padding: calc(50 / 375 * 100vw) calc(20 / 375 * 100vw) 0;
  }

  .main-text__inner {
    max-width: 100%;
  }

  .main-text__block1 p,
  .main-text__block2 p {
    font-size: calc(16 / 375 * 100vw);
    text-align: center;
    line-height: 1.6;
    margin-bottom: calc(20 / 375 * 100vw);
  }

  .main-text__title {
    font-size: calc(24 / 375 * 100vw);
    margin: calc(32 / 375 * 100vw) 0;
    line-height: 1.6;
    font-weight: 700;
    text-align: center;
  }

  /* 書籍紹介 SP */
  .books-intro {
    padding: calc(20 / 375 * 100vw) calc(20 / 375 * 100vw) calc(0 / 375 * 100vw);
  }

  .books-intro__inner {
    max-width: 100%;
  }

  .books-intro__title {
    font-size: calc(24 / 375 * 100vw);
    line-height: 1.6;
    font-weight: 700;
  }

  .books-intro__video {
    width: 100%;
    height: calc(188 / 375 * 100vw);
    margin: calc(32/ 375 * 100vw) 0;
  }

  .books-intro__sub {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1.6;
    font-weight: 700;
  }

  

  /* 特典書籍 SP */
.book-detail  {
  padding-top: calc(0 / 375 * 100vw);
  margin-top: calc(-2 / 375 * 100vw);
}
  .book-detail__inner {
    width: 100%;
    padding: calc(32 / 375 * 100vw) calc(20 / 375 * 100vw);
    background-size: 1440px auto;
  }
  .book-detail--1 
  .book-detail__inner {
    padding: calc(160 / 375 * 100vw) calc(20 / 375 * 100vw) calc(40 / 375 * 100vw);
    height: auto;
  }

  .book-detail--2
  .book-detail__inner {
    padding: calc(156 / 375 * 100vw) calc(20 / 375 * 100vw) calc(60 / 375 * 100vw);
    height: auto;
  }

  .book-detail__inner-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
  }
  .book-detail__inner-inner--2 {
    margin: 0 auto;
  }
  .book-detail__header {
    justify-content: center;
    gap: calc(8 / 375 * 100vw);
  }
  .book-detail__label {
    font-size: calc(16 / 375 * 100vw);
    width: calc(104 / 375 * 100vw);
    height: calc(24 / 375 * 100vw);
    padding: calc(4 / 375 * 100vw) calc(12 / 375 * 100vw);
  }

  .book-detail__title {
    font-size: calc(24 / 375 * 100vw);
    font-feature-settings: 'palt';
    line-height: 2;
    margin: 0 auto;
    margin-top: calc(10 / 375 * 100vw);
  }

  .book-detail__title span {
    font-size: calc(14 / 375 * 100vw);
    margin-left: calc(6 / 375 * 100vw);
  }
  .book-detail__inner-inner--2 .book-detail__title {
    width: 100%;
  }
  .book-detail__inner-inner--2 .book-detail__title span {
    font-size: calc(14 / 375 * 100vw);
    margin-left: calc(6 / 375 * 100vw);
    line-height: 2;
  }
  
  .book-detail__book-image {
    width: calc(140 / 375 * 100vw);
    height: calc(168 / 375 * 100vw);
    right: -1%;
    top: 0%;
    margin: calc(0 / 375 * 100vw) auto;
  }

  .book-detail__book-image--2 {
    left: auto;
    width: calc(145 / 375 * 100vw);
    height: calc(168 / 375 * 100vw);
    right: -7%;
    top: -115%;
  }

  .book-detail__chapters-inner {
    max-width: 100%;
    padding: calc(31 / 375 * 100vw) 0 0;
  }

  .book-detail__chapter-head {
    padding: calc(0 / 375 * 100vw) calc(0 / 375 * 100vw) calc(8 / 375 * 100vw);
    display: flex;
    flex-direction: column;  
    gap: 0;
    justify-content: flex-start;
    background-color: #002146;
  }

  .book-detail__chapter-head--2 {
    background-color: #004EA2;
  }
  .book-detail__chapter-num {
    font-size: calc(16 / 375 * 100vw);
    display: block;
    width: 100%;
    color: var(--color-white);
    text-align: center;
  }

  .book-detail__chapter-head h4 {
    font-size: calc(20 / 375 * 100vw);
    line-height: 1.2;
    background-color: var(--color-white);
    width: 100%;
    text-align: center;
    padding: calc(8 / 375 * 100vw) calc(12 / 375 * 100vw);
    margin-top: calc(4 / 375 * 100vw);
  }

  .book-detail__chapter > p {
    font-size: calc(14 / 375 * 100vw);
    text-align: left;
    line-height: 1.6;
    font-feature-settings: 'palt';
    padding-top: calc(84 / 375 * 100vw);
  }

  .book-detail__chapter:nth-child(3) > p  {
    padding-top: calc(60 / 375 * 100vw);
  }
  .book-detail__chapter:nth-child(4) > p  {
    padding-top: calc(60 / 375 * 100vw);
  }

  .book-detail__chapter-text-2-3 {
    padding-top: calc(83 / 375 * 100vw) !important;
  }
  .book-detail__chapter {
    margin-bottom: calc(20 / 375 * 100vw);
  }

  /* テスティモニアルバー SP */
  .testimonials-bar__text {
    font-size: calc(16 / 375 * 100vw);
  }

  .testimonials-bar__deco {
    width: calc(40 / 375 * 100vw);
  }

  /* お客様の声 SP */
  .testimonials {
    padding: calc(60 / 375 * 100vw) 0;
    background-image: url("../images/testimonials-bg-sp.png");
    background-size: 100%;
  }

  .testimonials__inner {
    width: 100%;
  }

  .testimonials__title {
    font-size: calc(22 / 375 * 100vw);
    line-height: 1.4;
    font-feature-settings: 'palt';
  }

  .testimonials__subtitle {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1;
  }

  .testimonials__cards {
    flex-direction: column;
    gap: calc(32 / 375 * 100vw);
    padding: 0 calc(20 / 375 * 100vw);
    margin-top: calc(40 / 375 * 100vw);
  }
  .testimonials__card-header {
    padding: calc(20 / 375 * 100vw) calc(12 / 375 * 100vw) calc(15 / 375 * 100vw);
    height: calc(63 / 375 * 100vw);
  }
  .testimonials__card-header--2 {
    padding: calc(20 / 375 * 100vw) calc(12 / 375 * 100vw) calc(15 / 375 * 100vw);
    height: calc(88 / 375 * 100vw);
  }

  
  .testimonials__card-catch {
    font-size: calc(18 / 375 * 100vw);
    line-height: 1.4;
  }
  .testimonials__card-deco {
    width: calc(17 / 375 * 100vw);
    height: calc(12 / 375 * 100vw);
    margin: calc(16 / 375 * 100vw) auto 0;
  }
  .testimonials__card-body {
    padding: calc(28 / 375 * 100vw) 0 0;
  }
  .testimonials__card-body p {
    font-size: calc(14 / 375 * 100vw);
  }

  .testimonials__card-author {
    font-weight: 900 !important;
    margin-top: calc(20 / 375 * 100vw);
    font-size: calc(16 / 375 * 100vw) !important;
    text-align: center;
    line-height: 1.4;
  }
  /* セミナー内容 SP */
  .seminar-content {
    padding: calc(60 / 375 * 100vw) calc(0 / 375 * 100vw) calc(20 / 375 * 100vw);
  }

  .seminar-content__inner {
    width: 100%;
  }
  .seminar-content__title {
    font-size: calc(19 / 375 * 100vw);
    line-height: 1.4;
  }

  .seminar-content__sub {
    font-size: calc(16 / 375 * 100vw);
    margin-top: calc(32 / 375 * 100vw);
    line-height: 1.6;
  }



  .seminar-content__box {
    padding: calc(32 / 375 * 100vw) calc(20 / 375 * 100vw);
    width: calc(335 / 375 * 100vw);
    margin: 0 auto;
  }

  .seminar-content__box-title {
    font-size: calc(24 / 375 * 100vw);
  }

  .seminar-content__box-line {
    width: calc(40 / 375 * 100vw);
    height: 1px;
    margin: calc(20 / 375 * 100vw) auto;
  }
  .seminar-content__items {
    width: 100%;
  }

  .seminar-content__item { 
    gap: calc(16 / 375 * 100vw);
  }
  .seminar-content__item-num {
    font-size: calc(16 / 375 * 100vw);
  }

  .seminar-content__item p {
    font-size: calc(16 / 375 * 100vw);
    min-width: 0;
    word-break: break-all;
  }

  /* 会場 SP */
  .venue {
    padding: calc(0 / 375 * 100vw) calc(20 / 375 * 100vw) calc(20 / 375 * 100vw);
    margin-top: calc(-2 / 375 * 100vw);
  }

  .venue__inner {
    width: 100%;
    padding: calc(32 / 375 * 100vw) calc(20 / 375 * 100vw);
  }

  .venue__head {
    font-size: calc(24 / 375 * 100vw);
    margin-bottom: calc(20 / 375 * 100vw);
    line-height: 1.4;
  }

  .venue__sub { 
  font-size: calc(12 / 375 * 100vw);
  line-height: 1.3;
  text-align: center;
  margin-top: calc(20 / 375 * 100vw);
  }
  .venue__cards { 
    width: 100%;
  }
  .venue__card {
    gap: calc(8 / 375 * 100vw);
    padding: calc(12 / 375 * 100vw) 0;
  }

  .venue__card-label {
    padding: calc(2 / 375 * 100vw) calc(8 / 375 * 100vw);
    width: calc(58 / 375 * 100vw);
    height: calc(19 / 375 * 100vw);
    margin: calc(3 / 375 * 100vw) 0;
    display: flex;
    justify-content: center;
  }

  .venue__card-label span {
    font-size: calc(14 / 375 * 100vw);
  }

  .venue__card-date {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1;
    letter-spacing: 0.02em;
  }

  .venue__card-date__num {
    font-size: calc(24 / 375 * 100vw);
    line-height: 1;
    letter-spacing: 0.02em;
  }

  .venue__card-address {
    font-size: calc(12 / 375 * 100vw);
    line-height: 1.3;
    letter-spacing: 0.02em;
    margin-top: calc(8 / 375 * 100vw);
  }

  .venue__price-area { 
    margin-top: calc(20 / 375 * 100vw);
  }
  .venue__price-amount {
    font-size: calc(32 / 375 * 100vw);
    line-height: 1;
    font-weight: 900;
  }

  .venue__price-label {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1;
    letter-spacing: 0.02em;
    font-weight: 900;
    margin-right: calc(12 / 375 * 100vw);
    margin-bottom: calc(-6 / 375 * 100vw);
  }

  .venue__price-yen {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1;
    letter-spacing: 0;
    font-weight: 900;
    margin-bottom: calc(-6 / 375 * 100vw);
  }

  .venue__price-note1 {
    font-size: calc(16 / 375 * 100vw);
    margin-bottom: calc(12 / 375 * 100vw);
    letter-spacing: 0.02em;
    line-height: 1;
  }

  .venue__note {
    font-size: calc(12 / 375 * 100vw);
    margin-top: calc(20 / 375 * 100vw);
  }

  /* 返金保証 SP */
  .guarantee {
    padding: calc(60 / 375 * 100vw) calc(20 / 375 * 100vw) 0;
  }

  .guarantee__inner {
    max-width: 100%;
  }

  .guarantee__title {
    font-size: calc(24 / 375 * 100vw);
    line-height: 1.6;
  }

  .guarantee__content {
    margin-top: calc(32 / 375 * 100vw);
  }
  .guarantee__content p {
    font-size: calc(16 / 375 * 100vw);
    text-align: center;
    line-height: 1.6;
    margin-bottom: calc(20 / 375 * 100vw);
  }

  .guarantee__bold {
    font-size: calc(16 / 375 * 100vw) !important;
    text-align: center !important;
  }

  /* ========================================
   CTAボタン バリエーション
======================================== */
.cta-section--alt {
  margin: calc(32 / 375 * 100vw) 0 0;
}
.cta-section--alt .cta-button {
  width: calc(335 / 375 * 100vw);
  height: calc(76 / 375 * 100vw);
  font-size: calc(24 / 375 * 100vw);
  line-height: 1;
  letter-spacing: 0.02em;
  font-weight: 900;
  text-align: center;
  padding: calc(12 / 375 * 100vw) calc(20 / 375 * 100vw);
  margin: 0 auto;
}
.cta-section--alt .cta-button__arrow {
  width: calc(10 / 375 * 100vw);
  height: calc(16 / 375 * 100vw);
  padding-top: calc(2 / 375 * 100vw);
}
  /* 実績 SP */
  .achievements {
    padding: calc(60 / 375 * 100vw) calc(11 / 375 * 100vw);
  }

  .achievements__inner {
    width: 100%;
  }

  .achievements__title {
    font-size: calc(24 / 375 * 100vw);
    line-height: 1.6;
  }

  .achievements__sub {
    font-size: calc(16 / 375 * 100vw);
    line-height: 1.6;
    margin-bottom: calc(0 / 375 * 100vw);
    margin-top: calc(32 / 375 * 100vw);
  }


  .achievements__row {
    flex-direction: column !important;
    gap: calc(20 / 375 * 100vw);
    margin-top: calc(40 / 375 * 100vw);
  }

  .achievements__row-text {
    width: 100%;
  }

  .achievements__row-title {
    font-size: calc(24 / 375 * 100vw);
    line-height: 1.2;
    text-align: center;
  }
  .achievements__row-title-num {
    font-size: calc(32 / 375 * 100vw);
  }

  .achievements__row-note {
    font-size: calc(12 / 375 * 100vw);
    line-height: 1;
    margin-top: calc(12 / 375 * 100vw);
    text-align: right;
    margin-right: calc(40 / 375 * 100vw);
  }

  .achievements__row-body {
    font-size: calc(14 / 375 * 100vw);
    line-height: 1.6;
    margin-top: calc(16 / 375 * 100vw);
  }

  .achievements__row-image {
    width: 100%;
    height: auto;
  }

  .achievements__row-image--graph {
    padding-right: calc(18 / 375 * 100vw);
  }

  .achievements__articles {
    flex-direction: column;
    gap: calc(8 / 375 * 100vw);
    margin-top: calc(8 / 375 * 100vw);
  }
  .achievements__article {
    width: 100%;
    height: auto;
  }

  .achievements__article--left {
    order: 2;
  }

  .achievements__article--right {
    order: 1;
  }

  .cta-section--last {
    margin: calc(0 / 375 * 100vw) 0 0;
  }
  .cta-section__last-text {
    text-align: center;
    background-color: var(--color-yellow);
    height: calc(31 / 375 * 100vw);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(4 / 375 * 100vw) 0;
  }
  .cta-section__last-text-title {
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: calc(20 / 375 * 100vw);
    color: var(--color-error-red);
    position: relative;
  }
  
  .cta-section__last-text-title:after,
  .cta-section__last-text-title:before{
    content: "";
    background-image: url("../images/sankaku-last.png");
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: calc(19 / 375 * 100vw);
    height: calc(13 / 375 * 100vw);
    top: 54%;
    transform: translateY(-50%);
    position: absolute;
  }
  
  .text-rotate:after,
  .text-rotate:before{
    transform: rotate(180deg);
    top: 30%;
  }
  .cta-section__last-text-title:after{
    left: -8%;
  }
  .cta-section__last-text-title:before{
    right: -5%;
  }
  .text-white {
    color: var(--color-white);
    background-color: var(--color-error-red);
    padding: 0 calc(4 / 375 * 100vw);
    height: auto;
    line-height: 1;        display: inline-flex;
    height: calc(28 / 375 * 100vw);
    align-items: center;
  }

  /* フォーム SP */
  .section-title__wrap h2 {
    width: calc(145 / 375 * 100vw);
    height: calc(23 / 375 * 100vw);
  }
  .section-title__wrap p  {
    font-size: calc(12 / 375 * 100vw);
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--color-dark-gray);
  }
  .contact {
    padding: calc(60/375*100vw) 0 calc(60/375*100vw) 0;
  }
  .contact .__wrap {
    width: 100%;
    max-width: 100%;
  }
  .contact .contact-title__wrap h4 {
    top: 5vw;
    width: calc(160 / 375 * 100vw);
    height: calc(25/375*100vw);
    display: flex;
    padding: 1.3vw 0 1.5vw 0;
    font-size: calc(12 / 375 * 100vw);
    letter-spacing: 0.12em;
    line-height: 1.4;
    font-weight: 700;
    font-family: var(--font-sans);
  }
  .contact .text__line {
    font-size: calc(28/375*100vw);
    margin: calc(32/375*100vw) 0 calc(16/375*100vw) 0;
    letter-spacing: 0.1rem;
    line-height: 1.4;
  }
  .contact .text__line .br-pc__none { display: inline; }
  .contact .form__wrap {
    width: 100%;
    padding: 0 calc(20/375*100vw);
  }
  .contact .form__wrap .input__wrap {
    justify-content: start;
    align-items: start;
    flex-direction: column;
    margin-bottom: calc(24/375*100vw);
  }
  .contact .form__wrap .input__wrap p {
    font-size: calc(14/375*100vw);
    margin-bottom: calc(16/375*100vw);
  }
  .contact .form__wrap .input__wrap p span {
    font-size: calc(14/375*100vw);
    border-radius: calc(3/375*100vw);
    margin-right: calc(16/375*100vw);
    height: calc(26/375*100vw);
    width: calc(45/375*100vw);
  }
  .contact .form__wrap .input__wrap input,
  .contact .form__wrap .input__wrap .select-like {
    padding: calc(18/375*100vw) calc(20/375*100vw);
    width: 100%;
    height: calc(48/375*100vw);
    border-radius: calc(6/375*100vw);
    font-size: calc(16/375*100vw);
  }
  .contact .form__wrap .input__wrap input[type="radio"] {
    width: calc(48/375*100vw);
    height: calc(48/375*100vw);
    margin-right: calc(8/375*100vw);
  }
  .contact .form__wrap .input__wrap .select-like {
    display: flex;
  }
  .contact .form__wrap .input__wrap .select-like ul {
    max-height: calc(600/375*100vw);
    border-radius: 0 0 calc(6/375*100vw) calc(6/375*100vw);
    padding: calc(10/375*100vw);
  }
  .contact .form__wrap .input__wrap .select-like ul li { padding: 0; }
  .contact .form__wrap .input__wrap .select-like ul .li__under { padding-bottom: calc(20/375*100vw); font-size: calc(14/375*100vw);}
  .contact .form__wrap .input__wrap .select-like > summary {
    padding: 0;
    border-radius: calc(4/375*100vw);
    background-size: calc(10/375*100vw);
    display: flex;
    align-items: center;
  }
  .contact .form__wrap .input__wrap select,
  .contact .form__wrap .input__wrap div {
    width: 100%;
    height: 12.8vw;
    border-radius: 1.6vw;
    font-size: calc(16/375*100vw);
    padding-left: calc(16/375*100vw);
  }
  .contact .form__wrap .input__wrap select[name="partner"],
  .contact .form__wrap .input__wrap select[name="partner"] option {
    font-size: calc(24/375*100vw);
  }
  
  .contact .form__wrap .input__wrap div {
    padding-left: 0;
  }
  .contact .form__wrap .input__wrap div .--contents {
    width: max-content;
    padding-right: calc(10/375*100vw);
  }
  .contact .form__wrap .last__item {
    justify-content: flex-start;
    margin-left: 0;
    margin-bottom: calc(10/375*100vw);
  }
  .contact .form__wrap .last__item .partner-line {
    font-size: calc(14/375*100vw);
  }
  .contact .form__wrap .input__wrap:last-child { margin-bottom: 0; }
  .contact .form__wrap .input-margin__bottom {
    margin-bottom: calc(-10/375*100vw);
  }
  .contact .form__wrap .input-margin__bottom ul { padding-left: 4vw; }
  .contact .form__wrap .pp {
    width: 100%;
    height: calc(112/375*100vw);
    margin-bottom: calc(32/375*100vw);
    padding: 0 calc(20/375*100vw);
  }
  .contact .form__wrap .pp .pp__wrap {
    width: 100%;
  }
  .contact .form__wrap .pp .pp__wrap input[type="checkbox"] {
    width: calc(24/375*100vw);
    height: calc(24/375*100vw);
  }
  .contact .form__wrap .pp .pp__wrap input[type="checkbox"]:checked::after {
    width: calc(8/375*100vw);
    height: calc(16/375*100vw);
    top: 45%;
  }
  .contact .form__wrap .pp .pp__wrap p {
    width: calc(214/375*100vw);
    margin-left: calc(16/375*100vw);
    letter-spacing: 0.01rem;
    font-size: calc(14/375*100vw);
  }
  .contact .form__wrap .pp .pp__wrap:first-child { margin-bottom: calc(10/375*100vw); }
  .contact .form__wrap .important { margin-bottom: calc(40/375*100vw); }
  .contact .form__wrap .important .__wrap { width: 100%; }
  .contact .form__wrap .important .__wrap .-head__wrap {
    height: calc(107/375*100vw);
    padding-top: calc(10/375*100vw);
    flex-direction: column;
  }
  .contact .form__wrap .important .__wrap .-head__wrap .-card__wrap {
    width: calc(53/375*100vw);
    height: calc(24/375*100vw);
    padding: calc(6/375*100vw) calc(10/375*100vw);
    margin-right: 0;
    margin-bottom: calc(10/375*100vw);
  }
  .contact .form__wrap .important .__wrap .-head__wrap .-card__wrap h3 {
    font-size: calc(16/375*100vw);
  }
  .contact .form__wrap .important .__wrap .-head__wrap h3 {
    font-size: calc(20/375*100vw);
    letter-spacing: 0.03rem;
    text-align: center;
    line-height: 1.4;
  }
  .contact .form__wrap .important .__wrap .-message__wrap {
    border: solid calc(2/375*100vw) #353535;
    padding: calc(20/375*100vw);
  }
  .contact .form__wrap .important .__wrap .-message__wrap p {
    font-size: calc(14/375*100vw);
  }
  .contact .form__wrap button[type="submit"] {
    width: calc(310/375*100vw);
    height: calc(68/375*100vw);
    font-size: calc(16/375*100vw);
    margin-bottom: calc(40/375*100vw);
    border-radius: calc(100/375*100vw);
  }
  .contact .form__wrap .tn__wrap .-head__wrap {
    width: calc(243/375*100vw);
    height: calc(32/375*100vw);
    border: solid calc(2/375*100vw) #353535;
    margin-bottom: calc(6/375*100vw);
  }
  .contact .form__wrap .tn__wrap .-head__wrap h4 {
    font-size: calc(16/375*100vw);
    position: static;
    border: none;
    width: auto;
    height: auto;
    border-radius: 0;
    background-color: transparent;
    transform: none;
    top: auto;
  }
  .contact .form__wrap .tn__wrap h2 {
    font-size: calc(40/375*100vw);
    letter-spacing: 0.02em;
    width: 100%;
    font-weight: 600;
  }
  .contact .form__wrap .tn__wrap p {
    font-size: calc(16/375*100vw);
    font-weight: 600;
    font-family: var(--font-inter);
  }

  /* 確認画面 SP */
  .confirm .form__wrap .input__wrap p { width: 100%; }
  .confirm .form__wrap .-btn__wrap {
    width: 100%;
    display: flex;
    justify-content: start;
    flex-direction: column;
  }
  .confirm .form__wrap .-btn__wrap button {
    width: calc(310/375*100vw);
    height: calc(68/375*100vw);
    font-size: calc(16/375*100vw);
  }
  .confirm .form__wrap .-btn__wrap button:nth-child(1) {
    margin-bottom: calc(10/375*100vw);
  }

  /* 完了画面 SP */
  .complete .complete__wrap { width: 100%; }
  .complete .complete__wrap .form__wrap p {
    font-size: calc(14/375*100vw);
    margin-bottom: calc(20/375*100vw);
    letter-spacing: 0.6vw;
  }
  .complete .complete__wrap .form__wrap p .br-pc__none { display: inline; }
  .complete .complete__wrap .complete-btn__wrap button {
    width: calc(310/375*100vw);
    height: calc(68/375*100vw);
    font-size: calc(16/375*100vw);
  }

  /* フッター SP */
  .footer {
    padding: calc(30 / 375 * 100vw) 0;
  }

  .footer__logo {
    width: calc(180 / 375 * 100vw);
  }

  /* 追随CTA SP */
  .sticky-cta {
    padding: calc(28 / 375 * 100vw) calc(20 / 375 * 100vw);
    width: 100%;
    height: calc(76 / 375 * 100vw);
  }

  .sticky-cta__deco {
    width: calc(28 / 375 * 100vw);
  }

  .sticky-cta__text {
    font-size: calc(18 / 375 * 100vw);
  }

  .sticky-cta__text em {
    padding: calc(2 / 375 * 100vw) calc(8 / 375 * 100vw);
  }
  .sticky-cta__link .cta-button__arrow {
    padding-top: calc(1.5 / 375 * 100vw);
  }
}