
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
  font-family: "Noto Sans JP", sans-serif;
}

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

.hidden {
  display: none!important;
}

.site-header {
    width: 100%;
    height: 80px;
    display: flex;
    align-items: center;
    position: fixed;
    z-index: 5;
    top: 0;
}

.site-header2 {
  background: #fff;
  top: 0;
  box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.2);
}

.mv_under {
  margin-top: 80px;
}

.slider_area {
  width: 100%;
  overflow: hidden;
  margin-top: 100px;
}

.slider img {
  width: 100%;
  aspect-ratio: 360 / 300;
  object-fit: cover;
}

.header-container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 60px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-logo img {
    height: 60px;
    display: block;
}

.header-nav {
  display: flex;
  gap: 40px;
  align-items: center;
}

.header-nav ul {
    list-style: none;
    display: flex;
    gap: 30px;
    padding-left: 40px;
}

.header-nav a {
    text-decoration: none;
    color: #FFFFFF;
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.045em;
    white-space: nowrap;
}

.site-header2 .header-nav a {
    color: #000;
}

.is-scrolled {
  box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.2);
  background: #fff;
  transition-duration: 400ms;
  transition-timing-function: ease-in-out;
}

.is-scrolled .header-nav a {
  color: #000000;
  transition-duration: 400ms;
  transition-timing-function: ease-in-out;
}

.btn-consultation {
    display: inline-block;
    background-color: #B83B5A;
    color: #FFFFFF;
    text-decoration: none;
    font-weight: bold;
    width: 200px;
    text-align: center;
    height: 44px;
    line-height: 40px;
    border-radius: 4px;
    font-size: 14px;
    position: relative;
    transition: opacity 0.3s;
    letter-spacing: 0.045em;
}

.header-cta a {
  font-size: 14px;
  border: solid 2px #B83B5A;
}

.header-cta a:hover {
  border: solid 2px #B83B5A;
  background: #fff;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  color: #B83B5A;
}

.btn-consultation::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 6px;
    height: 6px;
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}

.header-cta a.btn-consultation:hover::after {
  border-top: 2px solid #B83B5A;
  border-right: 2px solid #B83B5A;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

.btn-consultation:hover {
    opacity: 0.8;
}

.header-cta a.btn-consultation:hover {
    opacity: 1;
}

#index .mv {
  background: linear-gradient(180deg, #fff 0%, #fff 40%, #F3F3F3 40%, #F3F3F3 100%);
	position: relative;
  height: 690px;
}

#index .mv-inner {
	display: flex;
	justify-content: center;
	max-width: 1400px;
	margin: 0 auto;
	position: relative;
}
#index .mv .mv-img {
	display: flex;
	width: 500px;
	position: relative;
}

/* 擬似要素は不要になるので削除、または content: none; にする */
#index .mv-bg:before {
	content: none;
}

/* 1. 親要素を「固定された枠」にする */
#index .mv-bg {
    position: absolute;
    top: 0;
    right: 0;
    width: 85%;
    height: 640px;
    border-radius: 0 0 0 75px;
    overflow: hidden; /* ここで、はみ出た動画をカットする */
}

/* 2. ビデオ要素をその中で拡大する */
#index .mv-bg video {
    width: 100%;       /* 親要素の幅いっぱいにする */
    height: 100%;      /* 親要素の高さいっぱいにする */
    object-fit: cover; /* 比率を保って隙間なく表示 */

    /* ここで拡大をかける */
    transform: scale(1.19);
    transform-origin: center; /* 中心を基準に拡大 */
}

/* 不要なスタイルがあれば削除/調整 */
#index .mv-bg:before {
    content: none;
}

.features-container {
  display: flex;
  justify-content: center;
  gap: 13px;
  margin-top: 30px;
}

.fv-cta {
  margin-top: 40px;
}

.fv-cta a {
  width: 100%!important;
}

/* 130pxの円形コンテナ */
.feature-circle {
  width: 130px;
  height: 130px;
  background-color: #fff; /* 白い円 */
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  text-align: center;
  align-items: center;
  /* 影をつけると白い背景でも見やすくなります */
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/* チェック画像 */
.feature-circle img {
  width: 34.5px; /* 円に収まるサイズに調整 */
  height: 30px;
  margin-top: 15px;
}

/* 円の中のテキスト */
.feature-text {
  font-size: 11px; /* 130pxの円に収めるため小さめに設定 */
  font-weight: bold;
  line-height: 1.3;
  color: #333;
}

/* 強調色（ワインレッド系） */
.highlight {
  color: #B83B5A;
}

.flow {
  padding: 100px 0;
  background: #F8F6F4;
}

.beginner {
  padding: 100px 0;
}

.section-home-flow .flow-layout {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 0 100px;
    max-width: 940px;
    margin: 0 auto;
}

.section-home-flow .flow-layout .flow-col {
    width: 420px;
}

.section-home-flow .flow-layout .flow-list-title {
    overflow: hidden;
    position: relative;
    padding: 22px 0 22px 32px;
    list-style: none;
    list-style-image: none;
}

.section-home-flow .flow-layout .flow-list-title:before {
    display: block;
    content: "";
    position: absolute;
    top: 33px;
    left: 0;
    width: 12px;
    height: 12px;
    border-radius: 50px;
    background: #B83B5A;
    z-index: 2;
}

.section-home-flow .flow-layout .flow-list .title {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 0 8px;
    padding-right: 24px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
}

.section-home-flow .flow-layout .flow-list .title span {
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    -webkit-background-clip: text;
    background-clip: text;
    color: #B83B5A;
    white-space: nowrap;
}

em {
  font-style: normal;
}

.section-home-flow .flow-layout .flow-list .title em {
  font-family: "Noto Sans", sans-serif;
  position: relative;
  padding-right: 10px;
  margin-right: 2px;
  width: 50px;
  font-size: 26px;
  font-weight: 500;
  line-height: 1;
  color: #B83B5A;
  -webkit-background-clip: text;
  background-clip: text;
  white-space: nowrap;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.section-home-flow .flow-layout .flow-list .title em:after {
    display: block;
    content: "";
    position: absolute;
    top: 3px;
    right: 0;
    width: 1px;
    height: calc(100% - 7px);
    background-color: #B83B5A;
}

.section-home-flow .flow-layout .flow-list .title .icon {
    display: block;
    width: 22px;
    height: 22px;
    position: absolute;
    top: 50%;
    right: 0;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

.section-home-flow .flow-layout .flow-list .title .icon::after, .section-home-flow .flow-layout .flow-list .title .icon::before {
  content: "";
  display: block;
  width: 20px;
  height: 2.3px;
  background: #B83B5A;
  border-radius: 4px;
  position: absolute;
  top: 50%;
  left: 50%;
}

.section-home-flow .flow-layout .flow-list-container.step-01 .flow-list-title:after, .section-home-flow .flow-layout .flow-list-container.step-05 .flow-list-title:after {
    top: 40px;
}

.section-home-flow .flow-layout .flow-list-container.step-04 .flow-list-title:after, .section-home-flow .flow-layout .flow-list-container.step-08 .flow-list-title:after {
    top: -30px;
}

.section-home-flow .flow-layout .flow-list .title .icon::before {
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.section-home-flow .flow-layout .flow-list .title .icon::after {
    -webkit-transition: all .5s;
    transition: all .5s;
    -webkit-transform: translate(-50%, -50%) rotate(90deg);
    transform: translate(-50%, -50%) rotate(90deg);
}

.section-home-flow .flow-layout .flow-list-title:after {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 5px;
    width: 1px;
    height: 100%;
    background-color: #B83B5A;
    z-index: 1;
}

.section-home-flow .flow-layout .flow-list-content {
    overflow: hidden;
    position: relative;
    padding: 0 0 12px 32px;
}

.section-home-flow .flow-layout .flow-list .thumb {
    margin-bottom: 16px;
}

.l-body img {
    width: 100%;
    height: auto;
}

.thumb img {
  width: 100%;
  height: auto;
}

.section-home-flow .flow-layout .flow-list-content:after {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 5px;
    width: 1px;
    height: 100%;
    background-color: #B83B5A;
    z-index: 1;
}

.step-04 .flow-list-content:after {
  display: none!important;
}

.step-08 .flow-list-content:after {
  display: none!important;
}

.section-home-flow .flow-layout .flow-list .lead {
    margin-bottom: .75em;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.045em;
}

.mdl-txt-small {
    font-size: 14px;
    line-height: 1.45;
    letter-spacing: 0.045em;
    font-weight: 400;
}

.column {
  width: 100%;
  background: #F8F6F4;
}

.column_inner {
  max-width: 1100px;
  margin: 0 auto;
  padding-top: 80px;
  padding-bottom: 100px;
}

.column_txt {
  padding-top: 10px;
}

.column_txt data {
  font-size: 14px;
  margin: 0;
  padding: 0;
}

.column_txt p {
  margin: 0;
  padding: 0;
  font-size: 14px;
  letter-spacing: 0.045em;
  line-height: 1.7;
  padding-top: 5px;
}

/* ボタンのコンテナ */
.nav-wrapper {
  display: flex;
  gap: 10px; /* 円同士の距離 */
  justify-content: flex-end;
  margin-bottom: 20px;
}

/* ボタンの共通スタイル */
.nav-btn {
  position: relative;
  width: 60px;
  height: 60px;
  background-color: transparent;
  border: 1px solid #B83B5A; /* 円のボーダー */
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  outline: none;
  transition: opacity 0.3s;
}

.nav-btn:hover {
  opacity: 0.7;
}

/* 矢印の共通スタイル（擬似要素） */
.nav-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7.5px;
  height: 7.5px;
  border-top: 2px solid #B83B5A; /* 矢印の太さ */
  border-left: 2px solid #B83B5A;
}

/* 左矢印（<）の調整 */
.prev::before {
  transform: translate(-35%, -50%) rotate(-45deg);
}

/* 右矢印（>）の調整 */
.next::before {
  transform: translate(-65%, -50%) rotate(135deg);
}

.column_contents {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

.column_img {
  width: calc((100% - 60px) / 3);
  aspect-ratio: 293.33 / 200;
  object-fit: cover;
}

.column_img img {
  width: 100%;
  object-fit: cover;
  height: auto;
}

/* スマホ等で円が小さすぎる場合の調整（必要に応じて） */
@media screen and (max-width: 480px) {
  .features-container {
    gap: 10px;
  }
  .feature-circle {
    width: 110px;
    height: 110px;
  }
  .feature-text {
    font-size: 9px;
  }
}

/* --- レスポンシブ部分の書き換え --- */

/* tab/m (940px以下) */
@media screen and (max-width: 940px) {
	#index .mv-bg video {
		right: inherit;
		top: 340px;
		left: 30px;
		width: 100%;
		height: 240px;
		border-radius: 40px 0 0 40px;
		object-position: left bottom 0;
	}
}

/* m (640px以下) */
@media screen and (max-width: 640px) {
	#index .mv-bg video {
		top: 260px;
		/* object-position はそのままで良ければ記述不要 */
	}
}

#index .mv .mv-img .girl {
	max-width: 460px;
	position: absolute;
	bottom: 0;
	left: 0;
}
#index .mv-img .badge {
	max-width: 200px;
	position: absolute;
	top: 140px;
	left: 260px;
	padding: 0 20px;
}
#index .mv .text {
	margin-left: 200px;
	width: 420px;
}
#index .mv .text h2 {
	font-weight: bold;
	margin-top: 180px;
	font-size: 40px;
	line-height:1.4;
  color: #fff;
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
#index .mv .text p {
  font-size: 16px;
	margin: 10px 0 0;
  letter-spacing: 0.045em;
}
#index .mv .text p span.highlight {
  font-size: 18px;
}
#index .mv .text .base-btn {
	margin: 40px 0 70px;
}
.bg_color {
  background: #F3F3F3;
}

.fv_under {
  margin-top: 80px;
}

/* メインコンテナ（外枠） */
.banner-card {
    max-width: 1100px;
    margin: 0 auto;
    width: 100%;
    background-color: #fff;
    border: 5px solid #5d825d; /* 外枠の緑色 */
    border-radius: 15px;
    padding: 40px;
    box-sizing: border-box;
    text-align: center;
}

/* ヘッダーテキスト */
.header-text {
    margin-bottom: 30px;
}

.sub-title {
  margin: 0;
  padding: 0;
  font-size: 24px;
  font-weight: bold;
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.sub-title span {
    font-size: 38px;
    color: #537B55;
}

.main-title {
    font-size: 2.2rem;
    font-weight: bold;
    color: #333;
    margin: 0;
}

.main-title span {
    color: #5d825d; /* 結婚相談所の文字色 */
}

/* コンテンツ部分（左右配置） */
.content-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 30px;
    text-align: left;
}

.description {
    flex: 1.5;
    line-height: 1.8;
    max-width: 450px;
    font-size: 16px;
    letter-spacing: 0.045em;
}

.logo-area {
    flex: 1;
    text-align: center;
}

.logo-area img {
  width: auto;
  height: 80px;
}

/* ボタンエリア */
.button-area {
    margin: 0 auto;
    margin-top: 40px;
    text-align: center;
}

.btn2 {
    background-color: #537B55; /* ボタンの背景色 */
}

/* ボタンの矢印アイコン（擬似要素） */
.btn::after {
    content: '>';
    position: absolute;
    right: 20px;
    font-weight: normal;
}

.btn:hover {
    background-color: #4a694a;
}

.reason {
  max-width: 940px;
  margin: 0 auto;
  margin-top: 100px;
}

.reason_under {
  margin-bottom: 100px;
}

h2.reason_ttl {
  font-size: 30px;
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  letter-spacing: 0.045em;
  text-align: center;
  padding-bottom: 60px;
}

h2.reason_ttl2 {
  padding-bottom: 20px;
}

.reason_box {
  display: flex;
  gap: 60px;
  align-items: center;
}

.reason_left, .reason_right {
  width: calc((100% - 60px) / 2);
}

.order1 {
  order: 1;
}

.order2 {
  order: 2;
}

.line {
  width: 100%;
  margin: 50px 0;
  border: solid 0.5px #D1D1D1;
}

.reason_right video {
  width: 100%;
  height: 295px;
  object-fit: cover;
}

.number {
  color: #D4979C;
  font-size: 28px;
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.number span {
  font-size: 56px;
  font-family: "Cochin", serif;
  font-weight: normal;
  padding-left: 5px;
}

.txt_area h3 {
  font-size: 26px;
  letter-spacing: 0.045em;
  line-height: 1.5;
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  margin: 0;
  padding: 0;
  padding-bottom: 25px;
  padding-top: 5px;
}

.txt_area p {
  margin: 0;
  padding: 0;
  line-height: 1.8;
  font-size: 16px;
  letter-spacing: 0.045em;
}

.under_img {
  position: relative;
}

.under_img img {
  width: 100%;
}

.under_ttl {
  max-width: 1100px;
  margin: 0 auto;
  position: absolute;
  top: 50%;
  left: 60px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.under_ttl h2 {
    color: #fff;
    font-size: 30px;
    letter-spacing: 0.045em;
    /* 0pxだと意味がないため、縁取りが必要なら1px以上に変更してください */
    -webkit-text-stroke: 0px black;
    text-shadow: 0 0 7px #404040;
    font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    font-weight: bold;
}

.section-faq-qa {
  padding: 80px 0 100px;
}

.taikendan {
  background: #F8F8F8;
}

.accordion {
  margin: 0 auto;
  max-width: 940px;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title {
    position: relative;
    color: #111111;
    background-color: #F7F7F7;
    cursor: pointer;
    font-size: 18px;
    letter-spacing: 0.045em;
    font-weight: 500;
    padding: 23px 0 20px 87px;
    border-radius: 7px;
}

.section-faq-qa .accordion .accordion-container .accordion-item {
  margin-bottom: 20px;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title::before {
    content: "Q";
    position: absolute;
    top: 50%;
    left: 41px;
    transform: translateY(-50%);
    font-size: 24px;
    font-weight: bold;
    color: #B83B5A;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title .open-close-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 40px;
    background-color: #B83B5A;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    transition: 0.5s;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-content {
    display: none;
    background-color: #F7F7F7;
    border-radius: 0 0 7px 7px;
    position: relative;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-content p {
    position: relative;
    font-size: 18px;
    margin: 0;
    text-align: left;
    padding: 24px 60px 22px 42px;
    margin: 0 45px;
    line-height: 1.8;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-content p::before {
    content: "A";
    position: absolute;
    top: 40px;
    left: -3px;
    transform: translateY(-50%);
    font-size: 24px;
    font-weight: bold;
    color: #B83B5A;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title .open-close-btn::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    width: 2px;
    height: 15px;
    background: #FFF;
    transition: all 0.2s 0s ease;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title .open-close-btn::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    width: 15px;
    height: 2px;
    background: #FFF;
    transition: all 0.2s 0s ease;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title.open {
    border-radius: 7px 7px 0 0;
    font-weight: bold;
    color: #B83B5A;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title.open .open-close-btn::before {
    opacity: 0;
    transition: all 0.2s 0s ease;
}.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title.open .open-close-btn::before {
    opacity: 0;
    transition: all 0.2s 0s ease;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-title.open .open-close-btn::after {
    content: "";
    transform: translate(50%, -50%) rotate(180deg);
    transition: all 0.2s 0s ease;
}

.section-faq-qa .accordion .accordion-container .accordion-item .accordion-content::before {
    content: "";
    display: block;
    border-top: 1px dashed #9F9F9F;
    margin: 0 45px;
}

.pankuzu {
  width: 100%;
  margin-top: 20px;
}

.pankuzu_menu {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: 15px;
}

.pankuzu_menu a {
  display: block;
  font-size: 14px;
  text-decoration: none;
  color: #000;
  margin: 0;
  padding: 0;
  letter-spacing: 0.045em;
}

.pankuzu_menu .menu_div {
  font-size: 14px;
  margin: 0;
  padding: 0;
  color: #000;
  letter-spacing: 0.045em;
}

.company {
  padding: 80px 0 100px;
}

/* テーブル全体のスタイル */
.company-profile {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #D3D3D3;
  font-size: 16px;
  letter-spacing: 0.045em;
  line-height: 1.7;
  color: #333;
}

.company_inner {
  max-width: 940px;
  margin: 0 auto;
}

.access {
  padding-top: 120px;
}

.googlemap iframe {
  width: 100%;
  height: 480px;
}

.access p {
  font-size: 16px;
  letter-spacing: 0.045em;
  line-height: 2;
  text-align: center;
  font-weight: 400;
  padding-bottom: 40px;
}

/* 共通のセルスタイル */
.company-profile th,
.company-profile td {
  padding: 20px;
  border: 1px solid #D3D3D3;
  text-align: left;
}

/* 項目名（左側）のスタイル */
.company-profile th {
  width: 30%;
  background-color: #F8F6F4;
  font-weight: normal;
}

/* 内容（右側）のスタイル */
.company-profile td {
  width: 70%;
  background-color: #fff;
}

/* 共通スタイル */
.footer {
  font-size: 14px;
  letter-spacing: 0.045em;
  line-height: 1.8;
  color: #333;
}

.footer a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

.footer a:hover {
  opacity: 0.7;
}

/* メインフッター（#DEDEDE） */
.footer-main {
  background-color: #fff;
  padding: 60px 20px;
}

.footer-inner {
  max-width: 1000px; /* デザインに合わせて調整してください */
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

/* ロゴ・住所エリア */
.footer-logo {
  margin-bottom: 20px;
}

.footer-logo img {
  width: auto;
  height: 60px;
}

.footer-address {
  font-style: normal;
}

/* ナビゲーションエリア */
.footer-nav {
  display: flex;
  gap: 80px; /* メニュー列同士の間隔 */
}

.nav-group {
  list-style: none;
  padding: 0;
  margin: 0;
}

.nav-group li {
  margin-bottom: 15px;
}

/* コピーライト（#F8F6F4） */
.footer-copyright {
  background-color: #F8F6F4;
  text-align: center;
  padding: 20px 0;
}

.footer-copyright small {
  color: #B83B5A;
  font-size: 14px;
}

/* レスポンシブ (767px以下) */
@media screen and (max-width: 767px) {

  .sp_none {
    display: none!important;
  }

  .site-header {
    top: 0;
    height: 60px;
  }

  .header-container {
    padding: 0;
    justify-content: center;
  }

  .header-logo a img {
    height: 46px;
  }

  #index .mv-bg {
    width: calc(100% - 20px);
    height: 462px;
  }

  .footer-inner {
    flex-direction: column;
    gap: 40px;
  }

  .nav-group li {
    margin-bottom: 10px;
  }
}

/* レスポンシブ対応 (768px以下) */
@media screen and (max-width: 768px) {
  .company-profile,
  .company-profile tbody,
  .company-profile tr,
  .company-profile th,
  .company-profile td {
    display: block; /* 全ての要素をブロック化して縦並びに */
    width: 100%;
  }

  .company-profile th {
    padding: 10px 20px;
    border-bottom: none; /* 項目と内容の間の境界線をスッキリさせる */
    font-weight: bold;
  }

  .company-profile td {
    padding: 15px 20px 18px;
  }

  h2.reason_ttl {
    font-size: 22px;
    padding-bottom: 40px;
  }

  .flow {
    padding: 60px 0;
    background: #F8F6F4;
  }

  .beginner {
    padding: 60px 0;
  }

}

/* スマホ対応（画面が狭い時） */
@media (max-width: 768px) {
    .content-wrapper {
        flex-direction: column;
        text-align: center;
    }

    .logo-area {
        text-align: center;
    }

    .main-title {
        font-size: 1.6rem;
    }
}

/* pc1100 */
@media  (min-width: 941px) and (max-width: 1100px) {
	#index .mv .text {
		margin-left: 60px;
	}
	#index .mv-img .badge {
		left: 200px;
	}
}
/* tab/m */
@media screen and (max-width: 940px) {
	main#index {
		font-size: 16px;
	}
	#index .rwd {
		display: none;
	}
	#index .mv-inner {
		display: block;
	}
	#index .mv .mv-img {
		position: initial;
	}
	#index .mv .mv-img .girl {
		max-width: 300px;
		bottom: inherit;
		top: 206px;
		right: 17%;
		left: inherit;
	}
	#index .mv-img .badge {
		max-width: 190px;
		right: 20px;
		left: inherit;
		top: 200px;
	}
	#index .mv .text {
		margin:0 25px auto;
		width: auto;
	}
	#index .mv .text h2 {
		font-size: 56px;
		margin: 90px 0 310px;
		line-height: var(--lh_m);
	}
	#index .mv .text .mv-sec-text-wrap {
		display: flex;
		gap:40px;
		margin: 20px 0 0;
	}
	#index .mv .text .mv-sec-text-wrap p {
		flex: 1;
	}
	#index .mv .text .mv-sec-text-wrap a {
		flex: 1;
		max-width: 320px;
	}
	#index .mv-bg:before {
		background-position: left bottom 0;
		background-size: 900px;
		right: inherit;
		top: 340px;
		left: 30px;
		width: 100%;
		height: 240px;
		border-radius: 40px 0 0 40px;
	}
	#index .mv .text .base-btn {
		margin: 20px 0 60px;
		max-width: 100%;
	}
	.base-btn.pri-cv-btn .first {
		display: block;
	}
	.base-btn.pri-cv-btn .second {
		margin-top: 0.25em;
	}
}
/* m */
@media screen and (max-width: 640px) {
	#index .rwd-sec {
		display: block;
	}
	#index .mv-inner {
		padding-bottom: 60px;
	}
	#index .mv .text h2 {
		font-size: 40px;
		overflow: visible;
	}
	#index .mv-bg:before {
		top: 260px;
		background-position: left bottom 0;
		background-size: 600px;
	}
	#index .mv .mv-img .girl {
		max-width: 240px;
		top: 200px;
	}
	#index .mv-img .badge {
		max-width: 150px;
		right: 0;
	}
	#index .mv .text p {
		margin-top: 0px;
	}
	.base-btn.pri-cv-btn .time {
		font-size: 30px;
	}
	.base-btn.pri-cv-btn .first {
		font-size: 20px;
	}
	.base-btn.pri-cv-btn .free {
		font-size: 14px;
	}
	#index .mv .text .mv-sec-text-wrap {
		display: block;
	}
	#index .mv .text .mv-sec-text-wrap a {
		margin: 20px auto 0;
	}
}

@media screen and (min-width: 1480px) {
  #index .mv-bg {
    min-height: 640px;
    height: auto;
  }
}

/* 1380px以上の時のレスポンシブ設定 */
@media (min-width: 1380px) {
  #index .mv {
    /* 690px / 1380px = 0.5 つまり 50vw */
    height: 50vw;
  }

  #index .mv-bg {
    /* 640px / 1380px ≒ 0.4637 つまり 46.37vw */
    height: 46.37vw;
    /* 横幅に合わせて高さが自動で伸びるようになります */
  }

  #index .mv-bg video {
    transform: scale(1.19);
  }

  #index .mv .text {
    margin-left: 140px;
  }

  .header-nav ul {
    padding-left: 0;
  }

  #index .mv .text h2 {
    margin-top: 200px;
  }
}

@media screen and (max-width: 767px) {
  .section-home-flow .flow-layout {
    flex-wrap: wrap;
    padding: 0px 30px;
  }

  .section-home-flow .flow-layout .flow-col {
    width: 100%;
  }

  .section-home-flow .flow-layout .flow-list-container.step-04 .flow-list-title:after {
    top: 0;
  }

  .section-home-flow .flow-layout .flow-list-container.step-05 .flow-list-title:after {
    top: 0;
  }

  .section-faq-qa {
    padding: 60px 0 60px;
  }

  .section-home-flow .flow-layout .flow-list .title {
    font-size: 16px;
  }

  .section-home-flow .flow-layout .flow-list .title span {
    font-size: 12px;
  }

  .section-home-flow .flow-layout .flow-list .title em {
    font-size: 24px;
    width: 40px;
  }

  .section-home-flow .flow-layout .flow-list .title .icon {
    display: block;
    width: 18px;
    height: 18px;
    position: absolute;
    top: 50%;
    right: 0;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
  }

  .section-home-flow .flow-layout .flow-list .title .icon::after, .section-home-flow .flow-layout .flow-list .title .icon::before {
    width: 16px;
    height: 2px;
  }

  .accordion {
    padding-left: 20px;
    padding-right: 20px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-title {
    padding: 20px 50px 20px 47px;
    font-size: 16px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-title::before {
    left: 15px;
    font-size: 22px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-title .open-close-btn {
    right: 15px;
    width: 22px;
    height: 22px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-title .open-close-btn::before {
    height: 11px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-title .open-close-btn::after {
    width: 11px;
  }

  .column_inner {
    padding: 60px 20px;
  }

  .reason_ttl2 {
    padding-bottom: 5px!important;
  }

  .nav-btn {
    width: 40px;
    height: 40px;
  }

  .column_img {
    width: 100%;
  }

  .reason {
    margin-top: 60px;
    padding: 0 20px;
  }

  .reason_under {
    margin-bottom: 80px;
  }

  .reason_box {
    flex-wrap: wrap;
    gap: 30px;
  }

  .reason_left, .reason_right {
    width: 100%;
  }

  .line {
    margin: 40px 0;
  }

  .number {
    font-size: 20px;
  }

  .number span {
    font-size: 40px;
  }

  .txt_area h3 {
    font-size: 20px;
    padding-bottom: 20px;
  }

  .txt_area p {
    font-size: 14px;
  }

  .order1 {
    order: 2;
  }

  .order2 {
    order: 1;
  }

  .slider_area {
    margin-top: 80px;
  }

  .footer-logo {
    margin-bottom: 15px;
  }

  .nav-group {
    width: 50%;
  }

  .footer-nav {
    flex-wrap: wrap;
    width: 100%;
    gap: 0;
  }

  .footer-main {
    padding: 40px 20px;
  }

  .footer-copyright {
    padding: 10px 0;
  }

  .footer-copyright small {
    font-size: 12px;
  }

  .fv_under {
    margin-top: 60px;
  }

  .banner-card {
    max-width: 1100px;
    width: calc(100% - 40px);
    border: 3px solid #5d825d;
    border-radius: 15px;
    padding: 40px 20px;
  }

  .sub-title {
    font-size: 18px;
  }

  .sub-title span {
    font-size: 28px;
  }

  .description {
    font-size: 14px;
    text-align: left;
  }

  .logo-area img {
    height: 60px;
  }

  #index .mv .text h2 {
    font-size: 26px;
    padding: 0;
    margin: 0;
  }

  #index .mv {
    margin-top: 60px;
    height: 568px;
  }

  #index .mv-bg video {
    height: 100%;
    border-radius: 0;
    transform: scale(1);
  }

  #index .mv-bg {
    height: 482px;
  }

  #index .mv .text {
    margin:0 45px auto;
    padding-top: 160px;
  }

  .features-container {
    flex-wrap: wrap;
    gap: 0px 15px;
    width: 195px;
    margin-top: 25px;
  }

  .feature-circle {
    width: 90px;
    gap: 8px;
    height: 90px;
  }

  .feature-circle img {
    height: 20px;
    margin-top: 10px;
    width: 24px;
  }

  #index .mv .text p {
    font-size: 11px;
  }

  #index .mv .text p span.highlight {
    font-size: 12px;
  }

  .fv-cta {
    margin-top: 60px;
  }

  .pankuzu {
    margin-top: 10px;
  }

  .company {
    padding: 60px 0 60px;
  }

  .company_inner {
    padding-left: 20px;
    padding-right: 20px;
  }

  .access {
    padding-top: 80px;
  }

  .access p {
    font-size: 14px;
    letter-spacing: 0.045em;
    line-height: 1.8;
    text-align: center;
    font-weight: 400;
    padding-bottom: 40px;
  }

  .company-profile {
    font-size: 14px;
  }

  .pankuzu_menu {
    max-width: 1100px;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
    display: flex;
    gap: 15px;
  }

  .pankuzu_menu a {
    display: block;
    font-size: 12px;
    text-decoration: none;
    color: #000;
    margin: 0;
    padding: 0;
    letter-spacing: 0.045em;
  }

  .pankuzu_menu .menu_div {
    font-size: 12px;
    margin: 0;
    padding: 0;
    color: #000;
    letter-spacing: 0.045em;
  }

  .googlemap iframe {
    height: 280px;
  }

  .under_img img {
    height: 180px;
    object-fit: cover;
  }

  .under_ttl {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
  }

  .under_ttl h2 {
    font-size: 22px;
  }

  .mv_under {
    margin-top: 60px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-content p {
    margin: 0;
    font-size: 16px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-content p::before {
      top: 40px;
      left: 15px;
      transform: translateY(-50%);
      font-size: 22px;
  }

  .section-faq-qa .accordion .accordion-container .accordion-item .accordion-content p {
    font-size: 14px;
    padding: 24px 40px 22px 45px;
  }

}

.contact {
  margin-top: 80px;
  margin-bottom: 100px;
}

.form-wrapper {
    width: 100%;
    max-width: 800px;
}

.contact_form {
  max-width: 960px;
  margin: 0 auto;
  background: #F8F8F8;
  border-radius: 30px;
  padding-top: 70px;
}

.contact_form form {
  padding: 40px;
  padding-bottom: 80px;
}

.form-title {
    text-align: center;
    font-size: 28px;
    margin-bottom: 40px;
    font-weight: bold;
}

.txtarea {
  background: #fff;
  border: solid 2px #F1F3F3;
  padding: 20px;
}

.txtarea_kakunin {
  background: none;
  border: none;
  padding: 0;
}

/* 各入力グループ */
.form-group {
    margin-bottom: 24px;
}

.form-label {
    display: block;
    font-weight: bold;
    margin-bottom: 10px;
    font-size: 15px;
}

/* テキスト入力・テキストエリア */
.form-control, .form-textarea {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #F1F3F3;
    border-radius: 0px;
    background-color: #fff;
    box-sizing: border-box;
    font-size: 16px;
}

.form-textarea {
    height: 250px;
    resize: none;
    border: 2px solid #eee; /* 画像の二重枠線を再現 */
    padding: 15px;
}

/* ラジオボタンのカスタマイズ */
.radio-flex {
    display: flex;
    gap: 15px;
}

.radio-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 15px;
}

.radio-box {
    display: flex;
    align-items: center;
    background: #fff;
    border: 2px solid #F1F3F3;
    padding: 15px 20px;
    cursor: pointer;
    font-size: 15px;
    position: relative;
    flex: 1;
}

.radio-box input {
    display: none; /* 本物のラジオボタンは隠す */
}

.radio-custom {
    width: 20px;
    height: 20px;
    background-color: #f0f0f0;
    border-radius: 50%;
    margin-right: 15px;
    display: inline-block;
    position: relative;
}

/* 選択時のスタイル（お好みで追加してください） */
.radio-box input:checked + .radio-custom::after {
    content: "";
    width: 10px;
    height: 10px;
    background-color: #b14258;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* セレクトボックス（生年月日） */
.date-flex {
    display: flex;
    gap: 10px;
    width: 50%;
}

.select-wrapper {
    position: relative;
    flex: 1;
}

.select-wrapper select {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #F1F3F3;
    background-color: #fff;
    appearance: none;
    -webkit-appearance: none;
    font-size: 16px;
    cursor: pointer;
}

/* セレクトの矢印 */
.select-wrapper::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 8px solid #333;
    pointer-events: none;
}

/* ボタン */
.btn-container {
    text-align: center;
    margin-top: 50px;
}

.btn-container2 {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.submit-btn {
    background-color: #b14258;
    color: #fff;
    border: none;
    padding: 15px 80px;
    font-size: 18px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
    position: relative;
    transition: background 0.3s;
}

.back-btn {
  background-color: #959595!important;
  width: 232px;
  padding: 15px 0;
  text-align: center;
}

.wpcf7-spinner {
    display: none !important;
}

/*.submit-btn::after {
    content: ">";
    position: absolute;
    right: 20px;
    font-family: serif;
    font-weight: bold;
}*/

.submit-btn:hover {
    background-color: #923447;
}

.section-home-flow .flow-layout .flow-list-container.is-open .flow-list-title .title .icon::after {
    -webkit-transform: translate(-50%, -50%) rotate(180deg);
    transform: translate(-50%, -50%) rotate(180deg);
}

/* レスポンシブ対応 */
@media (max-width: 767px) {

  .btn-container2 {
    display: block;
  }

  .btn-container2 .back-btn {
    margin-bottom: 20px;
  }

  .contact {
    margin-top: 60px;
    margin-bottom: 80px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .contact_form {
    border-radius: 20px;
    padding-top: 40px;
  }

  .form-label {
    font-size: 14px;
    margin-bottom: 5px;
  }

  .txtarea {
      padding: 10px;
  }

  .txtarea_kakunin {
      padding: 0px;
  }

  .form-control, .form-textarea {
    padding: 8px 10px;
    font-size: 14px;
  }

  .contact_form form {
      padding: 20px;
      padding-bottom: 40px;
      padding-top: 0;
  }


    .radio-flex {
        flex-direction: column;
    }
    .radio-grid {
        grid-template-columns: 1fr;
    }

    .step-04 .flow-list-content:after {
      display: block!important;
    }

    .section-home-flow .flow-layout .flow-list .lead {
      font-size: 14px;
    }

    .date-flex {
      width: 100%;
    }
}

::-webkit-details-marker {
  display: none!important;
}

summary::-webkit-details-marker {
  display: none!important;
}

/* タブ切り替え全体のスタイル */
.tabs {
  margin-top: 50px;
  padding-bottom: 40px;
  max-width: 940px;
  margin: 0 auto;
}

/*タブのスタイル*/
.tab_item {
  position: relative;
  width: 200px;
  margin-right: 20px;
  height: 48px;
  border: 2px solid #537B55;
  background: #fff;
  border-radius: 4px;
  line-height: 42px;
  font-size: 18px;
  text-align: center;
  color: #537B55;
  display: block;
  float: left;
  text-align: left;
  padding-left: 20px;
  font-weight: bold;
  transition: all 0.2s ease;
}

.tab_item:hover {
  opacity: 0.75;
}

/*ラジオボタンを全て消す*/
input[name="tab_item"] {
  display: none;
}

/*タブ切り替えの中身のスタイル*/
.tab_content {
  display: none;
  padding: 60px 0 0;
  clear: both;
  overflow: hidden;
}

/*選択されているタブのコンテンツのみを表示*/
#all:checked ~ #all_content,
#programming:checked ~ #programming_content,
#design:checked ~ #design_content,
#design2:checked ~ #design_content2 {
  display: block;
}

/*選択されているタブのコンテンツのみを表示*/
#service_tab:checked ~ #service_tab_content,
#nyukai_tab:checked ~ #nyukai_tab_content,
#katusdo:checked ~ #katusdo_content {
  display: block;
}

.accordion2 {
  width: 100%;
  max-width: 100%;
}

.tab_content h3 {
  font-size: 24px;
  letter-spacing: 0.045em;
  margin: 0;
  padding: 0;
  padding-bottom: 40px;
}

/* ラベル本体：右側に円が入るスペースを確保 */
.tabs label {
  position: relative;
}

/* 緑の正円（::before） */
.tabs label::before {
  content: '';
  position: absolute;
  right: 10px;         /* 右端からの位置 */
  top: 50%;
  transform: translateY(-50%);
  width: 24px;         /* 円の直径 */
  height: 24px;
  background: #537B55;
  border-radius: 50%;  /* これで正円になる */
}

/* 白い矢印（::after） */
.tabs label::after {
  content: '';
  position: absolute;
  /* 円の中央に来るように調整 */
  right: 20px;         /* (円のright 10px) + (円の幅の約半分) */
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 5px;          /* 矢印のサイズ */
  height: 5px;
  border-top: 2px solid #FFF;
  border-right: 2px solid #FFF;
}
@media (min-width: 767.1px) {
  .pc_none {
    display: none!important;
  }
}

@media (max-width: 767px) {

  .tab_item {
    position: relative;
    width: calc(100% / 2 - 4px);
    margin-right: 0px;
    height: 40px;
    border: 2px solid #537B55;
    background: #fff;
    border-radius: 4px;
    line-height: 34px;
    font-size: 13px;
    text-align: center;
    color: #537B55;
    display: block;
    float: left;
    text-align: left;
    padding-left: 8px;
    font-weight: bold;
    transition: all 0.2s ease;
  }

  .tabs label::before {
      content: '';
      position: absolute;
      right: 6px;
      top: 50%;
      transform: translateY(-50%);
      width: 14px;
      height: 14px;
      background: #537B55;
      border-radius: 50%;
  }

  .tabs label::after {
      content: '';
      position: absolute;
      right: 11.5px;
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
      width: 3.5px;
      height: 3.5px;
      border-top: 1px solid #FFF;
      border-right: 1px solid #FFF;
  }

  .tab_content {
    padding-top: 40px;
  }

  .tab_content h3 {
      font-size: 18px;
      padding-bottom: 30px;
  }

  .accordion2 {
    padding-right: 0;
    padding-left: 0;
  }

  h2.reason_ttl {
    display: none;
  }

  h2.reason_ttl_beginner {
    display: block!important;
  }

  .tabs label:nth-child(2) {
    margin-right: 8px!important;
  }

  .tabs label:nth-child(6) {
    margin-right: 8px!important;
    margin-top: 10px!important;
  }

  .tabs label:nth-child(8) {
    margin-top: 10px!important;
  }

}

.beginner_ttl {
  font-size: 22px;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-align: center;
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

/* 全体設定 */
.circle-container {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 40px 20px;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  box-sizing: border-box;
  margin-bottom: 40px;
}

.circle {
  width: 290px; /* 円のサイズ */
  height: 290px;
  background-color: rgba(83, 123, 85, 0.75); /* #537B55 の 75% */
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
  font-weight: bold;
  font-size: 29px;
  line-height: 1.6;
  white-space: nowrap;
  transition: transform 0.3s ease;
}

/* PC版の重なり（横並び） */
.circle-1 {
  z-index: 1;
}

.circle-2 {
  margin-left: -40px; /* 重なり幅の調整 */
  z-index: 2;
}

.circle-3 {
  margin-left: -40px; /* 重なり幅の調整 */
  z-index: 3;
}

/* SP版（767px以下） */
@media screen and (max-width: 767px) {

  .beginner_ttl {
    font-size: 18px;
    letter-spacing: 0.06em;
    line-height: 1.7;
    margin-bottom: 30px;
    font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  }

}


@media screen and (max-width: 767px) {

  /* --- 共通設定 --- */
  .circle-stage {
    position: relative;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .circle {
    position: absolute; /* ここがポイント：自由配置にする */
    width: 280px;
    height: 280px;
    background-color: rgba(83, 123, 85, 0.75);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    font-weight: bold;
    font-size: 24px;
    line-height: 1.4;
    transition: all 0.3s ease;
  }

  /* --- PC版 (768px以上) --- */
  @media screen and (min-width: 768px) {
    .circle-stage {
      width: 720px; /* 円が重なって並ぶのに必要な幅 */
      height: 300px;
    }
    /* 横にずらして配置 */
    .circle-top { left: 0;   z-index: 1; }
    .circle-left { left: 220px; z-index: 2; } /* 重なりを220pxずらしで調整 */
    .circle-right { left: 440px; z-index: 3; }
  }

  /* --- SP版 (767px以下) --- */
  @media screen and (max-width: 767px) {
    .circle-stage {
      width: 316px;  /* 三角形の土台の幅 */
      height: 298px; /* 三角形の土台の高さ */
      margin-bottom: 60px;
    }

    .beginner {
      padding-left: 20px;
      padding-right: 20px;
    }

    .circle {
      width: 170px;
      height: 170px;
      font-size: 20px;
      line-height: 1.6;
    }

    /* 上の円：中央に配置 */
    .circle-top {
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      z-index: 1;
    }

    /* 左下の円 */
    .circle-left {
      bottom: 0;
      left: 0;
      z-index: 2;
    }

    /* 右下の円 */
    .circle-right {
      bottom: 0;
      right: 0;
      z-index: 3;
    }
  }

}

/* セクション全体の背景設定 */
.points-section {
  background-color: #F8F6F4;
  max-width: 940px;
  padding: 40px 60px;
  margin: 0 auto;
  box-sizing: border-box;
  margin-bottom: 80px;
}

/* リストの構造（PC：2列） */
.points-list {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 均等な2列 */
  column-gap: 60px; /* 左右の列の間隔 */
  row-gap: 24px;    /* 上下の行の間隔 */
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 各アイテムの設定 */
.points-item {
  display: flex;
  align-items: center; /* アイコンとテキストを縦中央で揃える */
  gap: 12px;           /* チェックマークと文字の距離 */
}

/* チェックマーク画像 */
.check-icon {
  width: 24px;  /* 画像サイズ（適宜調整してください） */
  height: auto;
  flex-shrink: 0; /* 文字が長くなってもアイコンが潰れないように */
}

/* テキスト設定 */
.points-text {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.045em;
  font-weight: 500;
}

/* --- SP版レイアウト (767px以下) --- */
@media screen and (max-width: 767px) {
  .points-section {
    padding: 40px 15px;
  }

  .points-list {
    grid-template-columns: 1fr; /* 1列に変更 */
    row-gap: 20px;              /* スマホ用に少し詰める */
  }

  .points-text {
    font-size: 14px; /* 指定のサイズ */
  }

  .check-icon {
    width: 20px; /* スマホ用に少し小さく */
  }
}

/* セクション全体設定 */
.fee-section {
  background-color: #537B55; /* 指定色 */
  color: #ffffff;
  padding: 48px 20px 40px;
  max-width: 940px;
  margin: 0 auto;
  box-sizing: border-box;
  text-align: center;
}

/* メイン部分（PCレイアウト） */
.fee-main {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px; /* 枠と金額の間隔 */
  margin-bottom: 30px;
}

/* 「成婚料金」の枠 */
.fee-label {
  border: 2px solid #ffffff;
  padding: 8px 22px 10px;
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.06em;
}

/* 金額部分 */
.fee-price {
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  display: flex;
  align-items: baseline;
}

.price-number {
  font-size: 64px;
  line-height: 1;
  letter-spacing: 0.045em;
  font-weight: 500;
}

.price-unit {
  font-size: 36px;
  letter-spacing: 0.045em;
  margin-left: 8px;
}

.price-count {
  font-size: 36px;
  letter-spacing: 0.045em;
  margin-left: 0px;
}

/* 注釈テキスト */
.fee-note {
  font-size: 16px;
  line-height: 1.8;
  margin: 0;
  letter-spacing: 0.045em;
}

.hidden {
  display: none!important;
}

/* --- SP版レイアウト (767px以下) --- */
@media screen and (max-width: 767px) {
  .fee-section {
    padding: 20px 40px;
  }

  .fee-main {
    flex-direction: column; /* 縦並び */
    gap: 20px;
    margin-bottom: 25px;
  }

  .fee-label {
    font-size: 16px;
    padding: 8px 25px 9px;
  }

  .fee-price {
    flex-wrap: wrap;
    justify-content: center;
  }

  .price-number {
    font-size: 40px; /* スマホサイズに縮小 */
  }

  .price-unit {
    font-size: 24px;
  }

  .price-count {
    font-size: 24px;
  }

  .fee-note {
    font-size: 12px; /* SP用サイズ */
    text-align: left;
    letter-spacing: 0.03em;
  }

}

/* --- プライバシーポリシー セクション全体の背景 --- */
.privacy-container {
  line-height: 1.8;
  box-sizing: border-box;
}

/* --- 白いメインコンテンツエリア --- */
.privacy-inner {
  max-width: 940px;
  margin: 0 auto;
}

/* --- 大見出し --- */
.privacy-title {
  font-size: 16px;
  text-align: center;
  margin-bottom: 10px;
  position: relative;
  padding-bottom: 15px;
  font-weight: bold;
}

.privacy-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background-color: #537B55;
}

.privacy-intro {
  margin-bottom: 40px;
  font-size: 16px;
  letter-spacing: 0.045em;
}

.numeric-list li {
  list-style: inherit;
}

/* --- 各条文のブロック --- */
.privacy-section {
  margin-bottom: 40px;
}

/* 条文タイトル */
.privacy-section h2 {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 5px;
  letter-spacing: 0.045em;
}

.privacy-section p {
  font-size: 16px;
  letter-spacing: 0.045em;
  margin-bottom: 15px;
}

/* --- リスト（数字・箇条書き）の設定 --- */

/* 数字リスト (1. 2. 3...) */
.numeric-list {
  list-style-type: decimal !important; /* 強制的に数字を表示 */
  padding-left: 1em; /* 数字が隠れないための左余白 */
  margin: 15px 0;
}

.numeric-list li {
  font-size: 15px;
  margin-bottom: 10px;
  padding-left: 0.3em;
}

/* 箇条書きリスト (・) */
.bullet-list {
  list-style-type: disc !important; /* 強制的に黒丸を表示 */
  padding-left: 1.5em;
  margin: 10px 0;
}

.bullet-list li {
  font-size: 15px;
  margin-bottom: 8px;
}

/* リストの中にリストがある場合の調整 */
.numeric-list ol,
.numeric-list ul {
  margin-top: 10px;
}

/* --- お問い合わせ窓口エリア --- */
.privacy-contact {
  background-color: #F8F6F4;
  padding: 30px;
  margin-top: 60px;
  border-radius: 4px;
}


.contact-details p {
  margin-bottom: 5px;
  font-size: 15px;
}

p.contact_txt {
  font-size: 16px;
  letter-spacing: 0.045em;
  line-height: 1.8;
  text-align: center;
  margin: 0;
  padding: 0;
}

.contact-cta {
  padding-top: 60px;
  padding-bottom: 100px;
  text-align: center;
  margin: 0 auto;
}

.column-cta {
  display: flex;
  gap: 40px;
}

/* --- レスポンシブ対応 (767px以下) --- */
@media screen and (max-width: 767px) {

  .privacy-title {
    font-size: 18px;
    margin-bottom: 30px;
  }

  .privacy-section h2 {
    font-size: 16px;
  }

  .privacy-section p,
  .numeric-list li,
  .bullet-list li {
    font-size: 14px; /* SP用文字サイズ */
  }

  .numeric-list {
    padding-left: 1.5em; /* SPでは少し左に寄せる */
  }

  p.contact_txt {
    font-size: 14px;
    line-height: 1.7;
  }

  .contact_form .reason_ttl_beginner {
    padding-left: 20px;
    padding-right: 20px;
    text-align: center;
  }

  p.contact_txt {
    padding-right: 20px;
    padding-left: 20px;
  }

  .contact-cta {
    padding-top: 40px;
    padding-bottom: 60px;
  }
}

.l-header.is-active .l-header__nav__gNav {
    display: block;
    opacity: 1;
    top: -25px;
    z-index: -1;
    pointer-events: auto;
}

.l-header__nav__gNav__wrap {
    flex-direction: column;
    gap: 0;
    background: #F3F3F3;
    width: 100%;
    border-radius: 0px;
    padding-left: 10px!important;
    padding-right: 10px!important;
    margin: 0 auto;
    flex-direction: row;
    overflow: scroll;
    height: 100%;
}

.l-header__ttlWrap {
    width: 71%;
}

a.green {
    background-color: #537B55!important;
    border: none;
}

.header-cta a.green:hover {
  border: solid 2px #537B55!important;
  color: #537B55!important;
  background-color: #fff!important;
}

.header-cta a.green:hover::after {
  border-top: 2px solid #537B55;
  border-right: 2px solid #537B55;
}

.column-cta {
  margin: 0 auto!important;
  text-align: center!important;
  justify-content: center;
}

.detail_area p {
  font-size: 16px;
}

.column_detail {
  background: #F7F7F7;
  padding-bottom: 80px;
}

.detail_area {
  margin: 0 auto;
  background: #fff;
  max-width: 1100px;
  text-align: left;
  padding: 40px 80px 80px;
  box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2);
}

.column_mt {
  margin-top: 80px;
  text-align: center;
}

.pankuzu_gray {
  background: #F7F7F7;
  margin-top: 80px;
  padding-top: 25px;
  padding-bottom: 60px;
}

.pankuzu_gray2 {
  background: #F7F7F7;
  margin-top: 0px!important;
  padding-top: 20px;
}

.detail_area data {
  text-align: left;
  font-size: 14px;
}

.detail_area h2 {
  font-size: 26px;
  letter-spacing: 0.045em;
  line-height: 1.4;
  font-weight: 500;
  padding-top: 20px;
  padding-bottom: 40px;
}

.detail_area img {
  width: 100%;
  padding-left: 40px;
  padding-right: 40px;
  height: auto;
}

.column-cta {
  margin-top: 60px!important;
}

.detail_area p {
  line-height: 1.6;
  font-size: 16px;
  font-weight: 400;
  padding-top: 40px;
}

@media screen and (max-width: 767px) {

  .pankuzu_gray {
    margin-top: 60px;
  }

  .column_detail {
    padding-left: 20px;
    padding-right: 20px;
  }

  .column_mt {
    margin-top: 60px;
  }

  .pankuzu_gray {
    padding-bottom: 20px;
    padding-top: 20px;
  }

  .pankuzu_gray .pankuzu_menu {
    flex-wrap: wrap;
    gap: 5px 15px;
  }

  .pankuzu_gray .pankuzu_menu .menu_div_max {
    width: 100%;
  }

  .detail_area {
    padding: 30px 20px 40px;
    box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2);
  }

  .detail_area data {
    font-size: 12px;
  }

  .detail_area h2 {
    font-size: 18px;
  }

  .detail_area h2 {
    padding-top: 10px;
    padding-bottom: 20px;
  }

  .detail_area p {
    font-size: 14px;
  }

  .column-cta {
    margin-top: 40px!important;
    gap: 20px!important;
    display: block;
  }

  .sp_btn_column {
    margin-top: 20px;
  }

}

/* ①・② 選択されているタブ（ラジオボタン）の直後のラベルを反転させる */
input[name="tab_item"]:checked + .tab_item {
  background-color: #537B55; /* 背景を緑に */
  color: #fff;               /* 文字を白に */
}

/* 選択されているタブ内の円（::before）を白くする */
input[name="tab_item"]:checked + .tab_item::before {
  background-color: #fff;
}

/* 選択されているタブ内の矢印（::after）を緑にする */
input[name="tab_item"]:checked + .tab_item::after {
  border-top: 2px solid #537B55;
  border-right: 2px solid #537B55;
}

/* ラジオボタン本体のデザインを上書き */
.wpcf7-radio input[type="radio"] {
    /* これが重要！ブラウザ標準のデザインを解除します */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

    /* ユーザー様の指定スタイル */
    width: 20px !important;
    height: 20px !important;
    background-color: #f0f0f0 !important;
    border-radius: 50%;
    margin-right: 10px; /* テキストとの距離 */
    display: inline-block;
    position: relative;
    vertical-align: middle;
    cursor: pointer;
}

/* チェックが入った時の「中のポチ」 */
.wpcf7-radio input[type="radio"]:checked::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
    background-color: #333; /* 中のポチの色 */
    border-radius: 50%;
}

/* ラベルとボタンの並びを整える */
.wpcf7-list-item {
    margin: 0 15px 0 0 !important;
    display: inline-flex !important;
    align-items: center;
}

.wpcf7-list-item-label {
    cursor: pointer;
    line-height: 1;
}

span.first {
  background: #fff;
  border: 2px #F1F3F3 solid;
  padding: 8px 60px 10px 10px;
}

span.last {
  background: #fff;
  border: 2px #F1F3F3 solid;
  padding: 8px 60px 10px 10px;
}

.gakureki span.wpcf7-list-item {
  background: #fff;
  border: 2px #F1F3F3 solid;
  padding: 8px 60px 10px 10px;
}


.confirmation-wrapper .select-wrapper::after {
    display: none!important;
}

.btn-container2 .submit-btn::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 6px;
    height: 6px;
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}

.submit-two::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 6px;
    height: 6px;
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}

/* --- 追加部分：選択されているタブのスタイル（反転） --- */

/* 1. ラジオボタンがチェックされた時、その隣のラベルの背景と文字色を変える */
.faq_tabs input[name="tab_item"]:checked + .tab_item {
  background-color: #537B55;
  color: #fff;
}

/* 2. チェック時、ラベル内の円(::before)を白くする */
.faq_tabs input[name="tab_item"]:checked + .tab_item::before {
  background: #fff;
}

/* 3. チェック時、ラベル内の矢印(::after)を緑にする */
.faq_tabs input[name="tab_item"]:checked + .tab_item::after {
  border-top: 2px solid #537B55;
  border-right: 2px solid #537B55;
}

.taiken_box {
  background: #fff;
  padding: 40px;
  margin-bottom: 40px;
}

.taiken_ttl {
  font-size: 24px;
  letter-spacing: 0.045em;
  font-weight: 400;
  padding-bottom: 25px;
  font-family: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.one_box {
  font-size: 16px;
  letter-spacing: 0.045em;
  padding-bottom: 10px;
}

.two_box,.three_box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 30px;
  font-size: 16px;
  letter-spacing: 0.045em;
}

.two_box span , .three_box span{
  display: block;
  text-align: center;
  background: #537B55;
  border-radius: 15px;
  width: 120px;
  height: 30px;
  line-height: 28px;
  font-size: 16px;
  color: #fff;
  letter-spacing: 0.045em;
}

.three_box {
  margin-top: 10px;
}

.three_box span{
  background: #B83B5A!important;
}

.four_box {
  font-size: 16px;
  letter-spacing: 0.045em;
  padding-top: 25px;
  line-height: 1.7;
}

/* ページネーション全体のスタイル */
.pagination {
    display: flex;
    justify-content: center;
    gap: 20px; /* 数字同士の間隔 */
    font-family: sans-serif;
    font-size: 20px;
    font-weight: bold;
    align-items: baseline;
    margin-top: 40px;
}

/* 通常のリンク（数字）と「...」の色 */
.pagination a,
.pagination .dots {
    color: #537B55;
    text-decoration: none;
}

/* 現在いるページの数字（黒） */
.pagination .current {
    color: #000;
}

/* マウスを乗せた時の挙動（任意） */
.pagination a:hover {
    opacity: 0.7;
}

.pparea {
  font-size: 14px;
  text-align: center;
  padding-top: 15px;
}

.pparea a {
  text-decoration: underline;
  color: #000;
}

@media screen and (max-width: 767px) {
  .pagination {
      font-size: 16px;
  }

  .pparea {
    font-size: 12px;
    text-align: center;
  }

  .taiken_box {
    background: #fff;
    padding: 40px 20px;
    margin-bottom: 40px;
  }

  .taiken_ttl {
    font-size: 16px;
    padding-bottom: 20px;
    line-height: 1.5;
  }

  .one_box {
    font-size: 14px;
    padding-bottom: 10px;
  }

  .two_box,.three_box {
    gap: 20px;
    font-size: 14px;
    letter-spacing: 0.045em;
  }

  .two_box span , .three_box span{
    display: block;
    text-align: center;
    background: #537B55;
    border-radius: 15px;
    width: 100px;
    height: 24px;
    line-height: 22px;
    font-size: 14px;
    color: #fff;
    letter-spacing: 0.045em;
  }

  .three_box {
    margin-top: 10px;
  }

  .three_box span{
    background: #B83B5A!important;
  }

  .four_box {
    font-size: 14px;
    letter-spacing: 0.045em;
    padding-top: 20px;
    line-height: 1.6;
  }

  .pp_btm {
    padding-top: 20px!important;
  }

  h2.reason_ttl_top {
    display: block!important;
  }

}

/* PCでは非表示 */
.l-header__spMenu, .l-header__nav__gNav, .--overlay {
    display: none;
}

@media screen and (max-width: 767px) {
    /* PC用要素を隠す */
    .sp_none { display: none !important; }

    .header-container {
        padding: 0 20px;
        height: 60px;
    }

    .header-logo img {
        height: 40px;
    }

    /* ハンバーガーボタンの外枠 */
    .l-header__spMenu {
        display: block;
        z-index: 1001;
    }

    .hamburger-box {
        width: 30px;
        height: 35px;
        border-radius: 900px;
        position: relative;
        cursor: pointer;
    }

    /* 三本線のデザイン */
    .hamburger-inner span {
        display: block;
        width: 30px;
        height: 1px;
        background-color: #000;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        transition: .4s;
    }
    .hamburger-inner span:nth-child(1) { top: 10px; }
    .hamburger-inner span:nth-child(2) { top: 17px; }
    .hamburger-inner span:nth-child(3) { top: 24px; }

    /* 開いた時の三本線の変形 */
    .hamburger.is-active .hamburger-inner span:nth-child(1) {
        transform: translateX(-50%) rotate(45deg);
        top: 17px;
    }
    .hamburger.is-active .hamburger-inner span:nth-child(2) {
        opacity: 0;
    }
    .hamburger.is-active .hamburger-inner span:nth-child(3) {
        transform: translateX(-50%) rotate(-45deg);
        top: 17px;
    }

    /* メニュー本体（下から出てくる設定） */
    /* メニュー本体：下からスライドアップ版 */
    .l-header__nav__gNav {
        display: block;
        position: fixed;
        /* 1. 終着点をヘッダーのすぐ下(60px)に固定 */
        top: 60px;
        left: 0;
        width: 100%;
        /* 2. 高さを「画面全体 - ヘッダー」に。dvhを使うとSafariでより正確 */
        height: calc(100dvh - 60px);
        background: #fff;
        z-index: 1000;
        overflow-y: auto;
        padding: 0px 10px;

        /* 3. 初期状態：自分の高さ分(100%)だけ下に下げて隠す */
        transform: translateY(100%);
        transition: transform .4s ease;

        /* 4. 閉じている時に中身を触れないようにする（念のため） */
        visibility: hidden;
    }

    /* iOS Safariで背景が引っ張られるのを防ぐ呪文 */
    body.is-active {
        overscroll-behavior: none;
    }    

    /* アクティブ時：定位置（top:60px）に戻る */
    .site-header.is-active .l-header__nav__gNav {
        transform: translateY(0);
        visibility: visible;
    }

    .l-header__nav__gNav__wrap {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .l-header__nav__gNav__list {
        border-bottom: 1px solid #eee;
    }

    .l-header__nav__gNav__list ._item {
        display: block;
        padding: 25px 20px;
        color: #333;
        text-decoration: none;
        font-size: 16px;
        font-weight: bold;
        border-bottom: 1px solid #707070;
        letter-spacing: 0.03em;
        position: relative;
    }

    ._item::after {
        content: '';
        position: absolute;
        right: 15px;
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
        width: 6px;
        height: 6px;
        border-top: 2px solid #000;
        border-right: 2px solid #000;
    }

    /* メニュー内の無料相談ボタン */
    .l-header__nav__gNav__list ._entry {
        display: block;
        background: #B83B5A;
        color: #fff;
        text-align: center;
        line-height: 40px;
        height: 44px;
        margin-top: 20px;
        font-size: 16px;
        border-radius: 4px;
        text-decoration: none;
        position: relative;
        font-weight: bold;
    }

    ._entry::after {
        content: '';
        position: absolute;
        right: 15px;
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
        width: 6px;
        height: 6px;
        border-top: 2px solid #FFF;
        border-right: 2px solid #FFF;
    }

    /* 背景オーバーレイ */
    .--overlay {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        opacity: 0;
        pointer-events: none;
        transition: .4s;
        z-index: 999;
    }

    .site-header.is-active .--overlay {
        opacity: 1;
        pointer-events: auto;
    }
}

@media screen and (max-width: 767px) {
    .header-container {
        padding: 0 20px;
        height: 60px;
        position: relative; /* ボタンの配置基準にするため追加 */
        display: flex;
        justify-content: center; /* ロゴを中央に寄せる */
        align-items: center;
    }

    .header-logo {
        margin: 0 auto; /* 念のため中央寄せを確実にする */
    }

    .header-logo img {
        height: 40px;
        display: block;
    }

    /* ハンバーガーボタンを右端に固定 */
    .l-header__spMenu {
        display: block;
        position: absolute; /* 親要素に対して絶対配置 */
        right: 20px;       /* 右端からの距離 */
        top: 50%;          /* 上から50% */
        transform: translateY(-50%); /* 自身の高さの半分戻して中央揃え */
        z-index: 1001;
    }

    .l-header__nav__gNav__listbtn {
      padding-left: 25px;
      margin-top: 30px;
      padding-right: 25px;
    }
}
