@charset "utf-8";
/* スタイルシート
作成者：Hatomi Inc.
作成日：R7.8.26
-------------------------------------------------------------------------------------*/
.home {}
.bold {
 font-weight: bold;
}
.gold-txt {
 color: #D0C285;
}
/*************************************************************************************
**************************************************************************************

mainVisual

**************************************************************************************
**************************************************************************************/
#mainVisual {
 display: flex;
	overflow: hidden;
	justify-content: center;
}
@media only screen and (min-width: 3001px) {
 #mainVisual {
  justify-content: center;
 }
}
@media only screen and (min-width: 1151px) {
 #mainVisual {
  align-items: center;
  margin-top: 85px;
 }
}
@media only screen and (min-width: 951px) and (max-width: 1150px) {
 #mainVisual {
  margin-top: 85px;
 }
}
@media only screen and (min-width: 701px) and (max-width: 950px) {
 #mainVisual {
  margin-top: 45px;
 }
}

@media only screen and (min-width: 3001px) {
 #mainVisual picture,
 #mainVisual img {
  width: 100%;
 }
}

@media only screen and (min-width: 801px) and (max-width: 1400px) {
 #mainVisual picture,
 #mainVisual img {
  height: 100%;
		max-height: 600px;
		max-width: none;
 }
}

@media only screen and (min-width: 701px) and (max-width: 800px) {
 #mainVisual picture,
 #mainVisual img {
  height: 100%;
		max-height: 500px;
		max-width: none;
 }
}



/*************************************************************************************
**************************************************************************************

main

**************************************************************************************
**************************************************************************************/
.home #main {}
.home #main .block {}
.home #main .column__inner {
 width: 100%;
 margin: 0 auto;
}
@media (min-width: 1051px) {
 .home #main .column__inner {
  max-width: 1000px;
 }
}
@media (max-width: 1050px) {
 .home #main .column__inner {
  padding-right: 2rem;
  padding-left: 2rem;
 }
}
.cta-area {}
.cta-area .catch {
 display: flex;
 justify-content: center;
}
.cta-area .catch p {
 position: relative;
 display: inline-block;
 padding: 0 2rem;
 margin-bottom: 2rem;
 color: #A47B2C;
	font-size: 120%;
}

@media (max-width: 700px) {
 .cta-area .catch p {
  font-size: 130%;
		text-align: center;
 }
}

@media (max-width: 480px) {
 .cta-area .catch p {
  font-size: 110%;
		text-align: center;
 }
}

.cta-area .catch p span {
}

@media (max-width: 480px) {
 .cta-area .catch p span {
  display: block;
 }
}

.special .cta-area .catch p, .rep-profile .cta-area .catch p {
 color: #FFF;
}
.cta-area .catch p span {
 color: #D93035;
}
.special .cta-area .catch p span, .rep-profile .cta-area .catch p span {
 color: #FFF;
 line-height: 1.7;
}
@media (max-width: 480px) {
 .special .cta-area .catch p span, .rep-profile .cta-area .catch p span {
  display: block;
 }
}
.cta-area .catch p::before, .cta-area .catch p::after {
 background-color: #333;
}
.special .cta-area .catch p::before, .special .cta-area .catch p::after {
 background-color: #FFF;
}
.rep-profile .cta-area .catch p::before, .rep-profile .cta-area .catch p::after {
 background-color: #FFF;
}
.cta-area .catch p::before {
 content: "";
 width: 1px;
 height: 30px;
 display: inline-block;
 transform: rotate(-25deg);
 position: absolute;
 left: 0;
 bottom: 0;
}
.cta-area .catch p::after {
 content: "";
 width: 1px;
 height: 30px;
 display: inline-block;
 transform: rotate(25deg);
 position: absolute;
 right: 0;
 bottom: 0;
}

@media (max-width: 700px) {
 .cta-area .catch p::before, .cta-area .catch p::after {
  height: 30px;
		bottom: -.3rem;
 }
}

@media (max-width: 480px) {
 .cta-area .catch p::before, .cta-area .catch p::after {
  height: 55px;
	 bottom: 0rem;

 }
 .special .cta-area .catch p::before, .special .cta-area .catch p::after {
  height: 55px;
 }
 .rep-profile .cta-area .catch p::before, .rep-profile .cta-area .catch p::after {
  height: 55px;
 }
}
@media (max-width: 400px) {
 .cta-area .catch p::before, .cta-area .catch p::after {
  height: 45px;
	 bottom: 0rem;

 }
 .special .cta-area .catch p::before, .special .cta-area .catch p::after {
  height: 45px;
 }
 .rep-profile .cta-area .catch p::before, .rep-profile .cta-area .catch p::after {
  height: 45px;
 }
}
.cta-area .cta-btn {
 display: flex;
 justify-content: center;
 margin: 0 auto;
}
@media (min-width: 701px) {
 .cta-area .cta-btn {
  max-width: 700px;
 }
}
.cta-area .cta-btn a {
 position: relative;
 width: 100%;
 display: flex;
 justify-content: center;
 align-items: center;
 padding: 0 1rem;
 background-color: #D93035;
 color: #FFF;
 min-height: 100px;
 box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.05), 5px 5px 3px rgba(0, 0, 0, 0.2);
}
@media (max-width: 400px) {
 .cta-area .cta-btn a {
  min-height: 80px;
 }
}
.cta-area .cta-btn a .txt {
 font-size: clamp(1.1rem, 3vw, 1.25rem);
 font-weight: 600;
}
@media (min-width: 481px) and (max-width: 700px) {
 .cta-area .cta-btn a .txt {
  font-size: clamp(1.5rem, 3vw, 1.25rem);
 }
}
@media (max-width: 480px) {
 .cta-area .cta-btn a .txt {
  font-size: clamp(1.0rem, 3vw, 1.25rem);
 }
}
.cta-area .cta-btn a .icon {
 position: relative;
}
.cta-area .cta-btn a .icon::before {
 content: "";
 display: inline-block;
 position: absolute;
 right: 0;
 top: 50%;
 transform: translateY(-50%);
 transition: .3s ease-in-out;
 background-position: top left;
 background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2030.3%2032.3%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23fff%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M30%2C32.3H.4c-.2%2C0-.4-.2-.4-.4V4.1c0-.2.2-.4.4-.4h5.6c.2%2C0%2C.4.2.4.4s-.2.4-.4.4H.7v27.1h28.9V4.5h-3.5c-.2%2C0-.4-.2-.4-.4s.2-.4.4-.4h3.9c.2%2C0%2C.4.2.4.4v27.8c0%2C.2-.2.4-.4.4Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M21.3%2C4.5h-10.5c-.2%2C0-.4-.2-.4-.4s.2-.4.4-.4h10.5c.2%2C0%2C.4.2.4.4s-.2.4-.4.4Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M30%2C11.3H.4C.2%2C11.3%2C0%2C11.1%2C0%2C10.9s.2-.4.4-.4h29.6c.2%2C0%2C.4.2.4.4s-.2.4-.4.4Z%22%2F%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M7.5%2C8.2c-1%2C0-1.9-.9-1.9-1.9V1.9c0-1%2C.8-1.9%2C1.9-1.9s1.9.9%2C1.9%2C1.9v4.4c0%2C1-.8%2C1.9-1.9%2C1.9ZM7.5.7c-.6%2C0-1.2.5-1.2%2C1.2v4.4c0%2C.7.5%2C1.2%2C1.2%2C1.2s1.2-.5%2C1.2-1.2V1.9c0-.7-.5-1.2-1.2-1.2Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M22.8%2C8.2c-1%2C0-1.9-.9-1.9-1.9V1.9c0-1%2C.8-1.9%2C1.9-1.9s1.9.9%2C1.9%2C1.9v4.4c0%2C1-.8%2C1.9-1.9%2C1.9ZM22.8.7c-.6%2C0-1.2.5-1.2%2C1.2v4.4c0%2C.7.5%2C1.2%2C1.2%2C1.2s1.2-.5%2C1.2-1.2V1.9c0-.7-.5-1.2-1.2-1.2Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M12.3%2C17.2h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M12.3%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M12.3%2C27.4h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M18%2C17.2h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M18%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M18%2C27.4h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M23.7%2C17.2h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M23.7%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M6.6%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M6.6%2C27.4h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
 width: 25px;
 height: 27px;
 background-size: 25px 27px;
 margin-right: 2rem;
}
@media (max-width: 480px) {
 .cta-area .cta-btn a .icon::before {
  margin-right: 1rem;
 }
}
.cta-area .cta-btn a .arrow {
 position: absolute;
 right: 2rem;
 top: calc(50% + 3px);
 transform: translateY(-50%);
 transition: .3s ease-in-out;
}
.cta-area .cta-btn a:hover .arrow {
 position: absolute;
 right: 1rem;
 transition: .3s ease-in-out;
}
.cta-area .cta-btn a .arrow::after {
 content: "";
 display: block;
 width: 1px;
 height: 12px;
 background-color: #FFF;
 position: absolute;
 right: 4px;
 top: calc(50% - 10px);
 transform: rotate(-45deg);
}
.cta-area .cta-btn a .arrow::before {
 content: "";
 display: block;
 width: 65px;
 height: 1px;
 background-color: #FFF;
 position: absolute;
 right: 0;
 top: 50%;
 transform: translateY(-50%);
}
@media (max-width: 480px) {
 .cta-area .cta-btn a .arrow::before {
  width: 30px;
 }
}
/*************************************************************************************
**************************************************************************************

section01

**************************************************************************************
**************************************************************************************/
#section01 {}
#section01 .block {
 padding: 5.5rem 0 0;/*アンカーのため*/
}
.home #main #section01 .ttl-block {
 width: 100%;
 margin: 0 auto 2rem;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 text-align: center;
}
.home #main #section01 .ttl-block .block-ttl {
 position: relative;
 display: inline-block;
 padding: 0 4rem;
}
@media (max-width: 640px) {
 .home #main #section01 .ttl-block .block-ttl {
  padding: 0 7rem;
 }
}
@media (max-width: 480px) {
 .home #main #section01 .ttl-block .block-ttl {
  padding: 0 3rem;
 }
}
.home #main #section01 .ttl-block .block-ttl .sp_view {
 display: none;
}
@media (max-width: 900px) {
 .home #main #section01 .ttl-block .block-ttl .sp_view {
  display: block;
 }
}
.home #main #section01 .ttl-block .block-ttl .left {
 width: 1px;
 height: 80px;
 transform: rotate(-25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: 0;
 bottom: 0;
}
.home #main #section01 .ttl-block .block-ttl .left::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: -8px;
 bottom: 3px;
}
.home #main #section01 .ttl-block .block-ttl .right {
 width: 1px;
 height: 80px;
 transform: rotate(25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: 0;
 bottom: 0;
}
.home #main #section01 .ttl-block .block-ttl .right::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: -8px;
 bottom: 3px;
}
/* ======================= PC（901px以上） ======================= */
@media (min-width: 901px) {
  .flow{
    --size: clamp(140px, 22vw, 260px);
    --arrow-size: clamp(10px, 1.1vw, 40px);
    --arrow-stroke: 2px;

    display: flex;
    align-items: center;
    gap: 0;                     /* ← 間はセパレーターに任せる */
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .flow__item{
    position: relative;
    display: grid;
    place-items: center;
    flex: 0 0 auto;             /* 伸縮させない */
  }
  /* 念のため無効化（旧実装の残り対策） */
  .flow__item::after{ content:none !important; }

  /* 可変の「間」 */
  .flow__sep{
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(16px, 4vw, 80px);
  }
  .flow__sep::before{
    content: "";
    width: var(--arrow-size);
    height: var(--arrow-size);
    border-right: var(--arrow-stroke) solid #b88b3e;
    border-bottom: var(--arrow-stroke) solid #b88b3e;
    transform: rotate(-45deg);  /* ＞ */
  }

  .flow__circle{
    --img: url("../images/circle.png");
    --img2x: url("../images/circle@2x.png");
    width: var(--size);
    aspect-ratio: 1/1;
    display: grid;
    place-items: center;
    text-align: center;
    padding: clamp(35px, 3vw, 46px);
    background-image: var(--img);
    background-image: image-set(var(--img) 1x, var(--img2x) 2x);
    background-image: -webkit-image-set(var(--img) 1x, var(--img2x) 2x);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,.06));
    max-width: 190px;
  }

  .flow__num{
    font-weight: 700;
    font-size: clamp(28px, 5.2vw, 35px);
    letter-spacing: .02em;
    background: linear-gradient(180deg, #caa461, #8a6a2f);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: block;
    line-height: 1;
  }
  .flow__text{
    font-size: clamp(12px, 1.8vw, 18px);
    line-height: 1.6;
    color: #330000;
    margin: 0;
    word-break: keep-all;
    font-weight: 500;
  }
				
}

/* ======================= SP/Tablet（900px以下） ======================= */
@media (max-width: 900px) {
  .flow{
    --size: clamp(140px, 22vw, 260px);
    --arrow-size: clamp(14px, 5vw, 22px);
    --arrow-stroke: 2.2px;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;                     /* ← セパレーター管理 */
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .flow__item{
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
  }
  /* 旧実装を完全に殺す */
  .flow__item::after{ content:none !important; }

  /* 縦並びの「間」 */
  .flow__sep{
    height: clamp(16px, 6vw, 40px);      /* 余白 */
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
				transform: rotate(-90deg);
  }
  .flow__sep::before{
    content: "";
    width: var(--arrow-size);
    height: var(--arrow-size);
    border-right: var(--arrow-stroke) solid #b88b3e;
    border-bottom: var(--arrow-stroke) solid #b88b3e;
    transform: rotate(135deg);           /* ˅（下向き） */
  }

/*
  .flow__circle{
    --img: url("../images/circle_sp.png");
    --img2x: url("../images/circle_sp@2x.png");
    width: 90%;
    max-width: 400px;
    aspect-ratio: 4/1;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 2rem;
    padding: clamp(20px, 3vw, 30px);
    background-image: var(--img);
    background-image: image-set(var(--img) 1x, var(--img2x) 2x);
    background-image: -webkit-image-set(var(--img) 1x, var(--img2x) 2x);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% auto;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,.06));
  }
*/

.flow__circle{
  width: 90%;
  max-width: 400px;
  aspect-ratio: 4/1;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 2rem;
  padding: clamp(20px, 3vw, 30px);

  /* 1) まずは素の背景（古いブラウザ用） */
  background: url("../images/circle_sp.png") center / 100% auto no-repeat;

  /* 2) iOS Safari 用（-webkit-）*/
  background-image: -webkit-image-set(
    url("../images/circle_sp.png") 1x,
    url("../images/circle_sp@2x.png") 2x
  );

  /* 3) 標準（対応ブラウザ用）*/
  background-image: image-set(
    url("../images/circle_sp.png") 1x,
    url("../images/circle_sp@2x.png") 2x
  );

  filter: drop-shadow(0 2px 8px rgba(0,0,0,.06));
}

  .flow__num{
    font-weight: 700;
    font-size: clamp(24px, 5.2vw, 36px);
    letter-spacing: .02em;
    background: linear-gradient(180deg, #caa461, #8a6a2f);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: block;
    line-height: 1;
  }
  .flow__text{
    font-size: clamp(12px, 4.6vw, 16px);
    line-height: 1.7;
    color: #5a4d38;
    margin: 0;
    word-break: keep-all;
				font-weight: 500;
  }
  .flow__circle .sp_view{ display: none; }
		
  .flow__sep::before{
    width: 12px;      /* ← 好きな値に */
    height: 12px;
    border-right-width: 2px; /* 線の太さ */
    border-bottom-width: 2px;
    /* transform: rotate(135deg); ← そのままでOK（SPは下向き） */
  }		
		
}

/* Flow と CTA の間隔*/
.flow + .cta-banner {
 margin-top: clamp(28px, 6vw, 80px);
}
.cta-banner {
 text-align: center;
 margin-inline: auto;
}
/* 三角（下向き） */
/* 下向き三角（▼）に修正 */
.cta-banner__inner::before {
 --tri-size: clamp(10px, 2.5vw, 25px);
 --tri-color: #e23b3b;
 content: "";
 display: block;
 width: 0;
 height: 0;
 margin: 0 auto clamp(12px, 3vw, 28px);
 border-left: var(--tri-size) solid transparent;
 border-right: var(--tri-size) solid transparent;
 border-top: calc(var(--tri-size) * 1.4) solid var(--tri-color);
}
/* テキスト */
.cta-banner__text {
 font-size: clamp(20px, 2.7vw, 25px);
 line-height: 1.9;
 letter-spacing: .01em;
 color: #4b3f36;
 margin: 0;
 /*font-weight: 500;*/
}
@media (max-width: 900px) {
 .cta-banner__text {
  margin-top: 2rem;
 }
}
@media (max-width: 500px) {
 .cta-banner__text {
  font-size: clamp(18px, 2.7vw, 25px);
 }
}
@media (max-width: 400px) {
 .cta-banner__text {
  font-size: clamp(15px, 2.7vw, 25px);
 }
}
/* 強調（赤・太字） */
.cta-banner__em {
 color: #e23b3b;
 font-weight: 700;
}
/* スクリーンリーダー用テキスト隠し */
.sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0 0 0 0);
 white-space: nowrap;
 border: 0;
}
/* セクションの外側余白・最大幅 */
.consult-banner {
 max-width: 1000px;
 margin: clamp(28px, 4vw, 6rem) auto clamp(28px, 10vw, 8rem);
 padding: 0 0;
}
/* 画像は全面クリック可能 */
.consult-banner__link {
 display: block;
 position: relative;
 outline: none;
}
/* 画像をレスポンシブ表示（元画像の角丸や縁取りは画像側に含有） */
.consult-banner__img {
 width: 100%;
 height: auto;
 display: block;
}
/* ちょい演出（任意）：Hover/Focusで持ち上げる */
.consult-banner__link:focus-visible, .consult-banner__link:hover {
 filter: drop-shadow(0 8px 22px rgba(0, 0, 0, .15));
 transition: filter .25s ease;
}
/*************************************************************************************
**************************************************************************************

video-sec

**************************************************************************************
**************************************************************************************/
/* セクション背景：1枚画像をcoverで敷く */
.video-sec {
 /* フォールバック */
 background-image: url("../images/video_bg.png"); /* or .png */
 /* 高解像度（任意。@2xを用意した場合） */
 background-image: image-set(url("../images/video_bg.png") 1x, url("../images/video_bg@2x.png") 2x);
 background-position: center;
 background-repeat: no-repeat;
 background-size: cover;
 position: relative;
 padding: clamp(5rem, 6vw, 6rem) 0 clamp(5rem, 9vw, 6rem);
 overflow: hidden;
}
/* 見出し */
.video-sec__head {
 text-align: center;
 max-width: min(1000px, 92vw);
 margin: 0 auto clamp(3rem, 5vw, 6rem);
}
.video-sec__lead {
 margin: 0;
 font-weight: 500;
 color: #463c33;
 letter-spacing: .05em;
 line-height: 1.9;
 font-size: clamp(1.15rem, 2.1vw, 1.3rem);
 display: inline-block;
 position: relative;
}
@media (max-width: 600px) {
 .video-sec__lead {
  font-size: clamp(1.5rem, 2vw, 4rem);
 }
}
@media (max-width: 500px) {
 .video-sec__lead {
  font-size: clamp(1.5rem, 2.1vw, 4rem);
 }
}
@media (max-width: 480px) {
 .video-sec__lead {
  font-size: clamp(1.15rem, 2.1vw, 2rem);
 }
}
.video-sec__em {
 color: #e23b3b;
 font-weight: 700;
}
.video-sec__head .video-sec__lead .left {
 width: 1px;
 height: 80px;
 transform: rotate(-25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: -10%;
 bottom: 0;
}
.video-sec__head .video-sec__lead .left::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: -8px;
 bottom: 3px;
}
.video-sec__head .video-sec__lead .right {
 width: 1px;
 height: 80px;
 transform: rotate(25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: -10%;
 bottom: 0;
}
.video-sec__head .video-sec__lead .right::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: -8px;
 bottom: 3px;
}
/* YouTube：レスポンシブ */
.video-sec__frame {
 /*max-width: min(1000px, 92vw); */
 margin: 0 auto;
}
@media (min-width: 1051px) {
 .video-sec__frame {
  max-width: 1000px;
 }
}
@media (max-width: 1050px) {
 .video-sec__frame {
  padding-right: 2rem;
  padding-left: 2rem;
 }
}
.yt-wrap {
 aspect-ratio: 16/9;
 /*background:#2a2a2a;*/
 border-radius: 6px;
 /*box-shadow:0 8px 24px rgba(0,0,0,.18);*/
 overflow: hidden;
}
.yt-wrap > iframe {
 width: 100%;
 height: 100%;
 border: 0;
 display: block;
}
/* 動画iframeの枠線リセット */
.video-sec .yt-wrap > iframe {
 border: 0 !important; /* 他CSSを上書き */
 outline: none; /* クリック時のフォーカス枠も消す */
 display: block; /* 余白防止の保険 */
 width: 100%;
 height: 100%;
}
/*************************************************************************************
**************************************************************************************

mymsg

**************************************************************************************
**************************************************************************************/
.mymsg {}
.mymsg__inner {
 padding-bottom: 4rem;
}
.mymsg .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .mymsg .sp_view {
  display: inline;
 }
}
/* 見出し */
.mymsg__head {
 text-align: center;
 margin-top: clamp(3rem, 6vw, 5rem);
 margin-bottom: clamp(20px, 5vw, 2rem);
 position: static !important;
}
.mymsg__title {
 /*font-size: clamp(1.1rem, 4vw, 1.6rem);*/
 line-height: 2;
 letter-spacing: .06em;
 margin: 0 0 2rem;
 position: relative;
 display: inline-block;
 text-align: center;
}
/* >=1001px */
@media (min-width: 1001px) {
 .mymsg__title {
  font-size: 1.7rem;
 }
}
@media (max-width: 1000px) {
 .mymsg__title {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .mymsg__title {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .mymsg__title {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .mymsg__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .mymsg__title {
  font-size: clamp(1.5rem, 4vw, 5rem);
 }
}
.mymsg__lead {
 margin: 0;
 color: #8a7d71;
 /*font-size: clamp(12px, 1.6vw, 14px);*/
 font-size: clamp(14px, 2vw, 1.2rem);
 letter-spacing: .08em;
}
.u-titlebar-gold {
 padding-bottom: 30px;
 background:
  url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%20500%209.5%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23cfb287%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cpolygon%20class%3D%22cls-1%22%20points%3D%22248.5%200%200%204.7%20248.7%209.5%20500%204.7%20248.5%200%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E') center bottom / clamp(100px, 36vw, 560px) 4px no-repeat;
}
.mymsg__rows {
 margin-top: clamp(4rem, 6vw, 6rem);
 margin-bottom: clamp(4rem, 6vw, 6rem);
}
/* 行レイアウト（PC:2カラム / 交互） */
.mymsg__row {
 display: grid;
 grid-template-areas: "text img";
 grid-template-columns: 1.06fr .94fr;
 align-items: center;
 column-gap: clamp(24px, 5vw, 64px);
 row-gap: 20px;
 margin-top: clamp(28px, 6vw, 64px);
 margin-bottom: clamp(28px, 6vw, 64px);
}
.mymsg__row.is-rev {
 grid-template-areas: "img text";
 /*grid-template-columns: .94fr 1.06fr;*/
}
.mymsg__text {
 grid-area: text;
 position: relative;
}
@media (min-width: 1001px) {
 .mymsg__text {
  max-width: 90%;
  margin: 0 auto;
 }
}
.mymsg__media {
 grid-area: img;
 margin: 0;
}
.mymsg__media img {
 width: 100%;
 height: auto;
 display: block;
}
/* 各行の角丸 */
.mymsg__row:nth-of-type(1) .mymsg__media img {
 border-radius: 0 0 0 40px;
}
.mymsg__row:nth-of-type(2) .mymsg__media img {
 border-radius: 40px 0 0 0;
}
.mymsg__row:nth-of-type(3) .mymsg__media img {
 border-radius: 0 0 40px 0;
}
/* 大きな番号（背面固定） */
.mymsg__num {
 position: absolute;
 top: -0.15em;
 right: -0.15em;
 font-size: clamp(6rem, 20vw, 12rem);
 line-height: 1;
 color: #F9E1E0;
 z-index: 0;
 pointer-events: none;
}
.mymsg__row.is-rev .mymsg__num {
 right: 0;
 left: auto;
}
/* テキスト前面 */
.mymsg__h3, .mymsg__body {
 position: relative;
 z-index: 1;
}
/* 本文 */
.mymsg__body {
 font-size: clamp(14px, 1.6vw, 15px);
 line-height: 2.1;
 margin: 0;
 color: #4a4139;
}
/* 行タイトルラッパー */
.mymsg__row .mymsg__rowttl {
 display: flex;
 align-items: center;
 min-height: 160px;
}
/* ─────────────────────────────
   SP（<=700px）
   ───────────────────────────── */
@media (max-width: 700px) {
 .mymsg__row {
  grid-template-columns: 1fr;
  grid-template-areas:
   "text"
   "img";
  justify-items: center;
  row-gap: 16px;
  margin-bottom: 4rem;
 }
 .mymsg__row.is-rev {
  grid-template-areas:
   "text"
   "img";
 }
 .mymsg__row .mymsg__text, .mymsg__row .mymsg__media {
  grid-column: 1 / -1;
  width: 100%;
  /*max-width: 560px;*/
  margin-left: auto;
  margin-right: auto;
 }
 .mymsg__row .mymsg__media {
  margin-top: 12px;
 }
 .mymsg__row .mymsg__media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
 }
 /* 番号（SPは常に右側に重ねる） */
 .mymsg__num {
  position: absolute;
  top: -.18em;
  right: -0.06em;
  left: auto;
  line-height: 1;
  color: #F9E1E0;
  z-index: 0;
  pointer-events: none;
 }
 .mymsg__row.is-rev .mymsg__num {
  right: -0.06em;
  left: auto; /* 反転を打ち消す */
 }
 .mymsg__row .mymsg__rowttl {
  display: flex;
  align-items: center;
  min-height: 100px;
 }
 .mymsg__h3 {
  font-size: clamp(1.4rem, 4vw, 5rem);
  line-height: 1.8;
  margin: 0 0 40px;
  letter-spacing: .1em;
  min-height: 100px;
  display: flex;
  align-items: center;
 }
 .mymsg__body {
  font-size: clamp(14px, 1.6vw, 15px);
  line-height: 2.1;
  margin: 0;
  color: #4a4139;
 }
}
/* ─────────────────────────────
   追加のSPブレーク
   ───────────────────────────── */
@media (max-width: 800px) {
 .mymsg__num {
  top: 0;
 }
}
@media (max-width: 700px) {
 .mymsg__num {
  top: -.12em;
  font-size: clamp(11rem, 18vw, 12rem);
 }
}
@media (max-width: 600px) {
 .mymsg__num {
  top: -.18em;
  font-size: clamp(14rem, 18vw, 12rem);
 }
}
@media (max-width: 480px) {
 .mymsg__num {
  top: -.18em;
  font-size: clamp(9rem, 18vw, 12rem);
 }
}
@media (max-width: 450px) {
 .mymsg__num {
  top: -.18em;
  font-size: clamp(12rem, 18vw, 12rem);
 }
}
@media (max-width: 400px) {
 .mymsg__num {
  top: -.16em;
  font-size: clamp(11rem, 18vw, 12rem);
 }
}
/* ─────────────────────────────
   タイポ
   ───────────────────────────── */
.mymsg__h3 {
 line-height: 1.8;
 margin: 0 0 20px;
 letter-spacing: .1em;
}
/* >=1001px */
@media (min-width: 1001px) {
 .mymsg__h3 {
  font-size: 1.55rem;
 }
}
@media (max-width: 1000px) {
 .mymsg__h3 {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .mymsg__h3 {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .mymsg__h3 {
  font-size: clamp(1.3rem, 3.3vw, 5rem);
 }
}
@media (max-width: 500px) {
 .mymsg__h3 {
  font-size: clamp(1.3rem, 4vw, 5rem);
 }
}
@media (max-width: 400px) {
 .mymsg__h3 {
  font-size: clamp(1.4rem, 4vw, 5rem);
 }
}
/*************************************************************************************
**************************************************************************************

profile

**************************************************************************************
**************************************************************************************/
.profile {}
.profile .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .profile .sp_view {
  display: inline;
 }
}
/* ===== Profile ===== */
.profile {
 padding-block: clamp(32px, 6vw, 0);
 color: #2b1f17;
}
/* カスタムプロパティ */
.profile {
 --accent: #e85b52; /* 強調色（見出し一部＆ドット） */
 --text-main: #2b1f17; /* 本文色 */
 --muted: #5a4a3f; /* 少し薄めの本文 */
 --frame: #e7c3b2; /* 写真フレーム色 */
}
.profile__inner {
 display: flex;
 align-items: center;
 gap: clamp(24px, 5vw, 72px);
}
@media (min-width: 701px) and (max-width: 850px) {
 .profile__inner {
  gap: clamp(24px, 3vw, 72px);
 }
}
.profile__bg {
 background-image: url(../images/profile_bg.jpg);
 background-position: left bottom;
 background-size: cover;
 background-repeat: no-repeat;
 padding: 4rem 0 5rem;
}
@media (max-width: 700px) {
 .profile__bg {
  background-image: url(../images/profile_bg_sp.jpg);
  background-position: center top;
  background-size: 100% auto;
  padding: 4rem 0 4rem;
 }
}
/* 画像側 */
.profile__media {
 /*flex: 0 1 520px;
  max-width: 560px;*/
}
@media (min-width: 1001px) {
 .profile__media {
  flex: 0 1 520px;
  max-width: 560px;
 }
}
@media (min-width: 851px) and (max-width: 1000px) {
 .profile__media {
  flex: 0 1 400px;
  max-width: 440px;
 }
}
@media (min-width: 701px) and (max-width: 850px) {
 .profile__media {
  flex: 0 1 370px;
  max-width: 410px;
 }
}
@media (min-width: 501px) and (max-width: 700px) {
 .profile__media {
  flex: 0 1 400px;
  max-width: 440px;
 }
}
@media (max-width: 500px) {
 .profile__media {
  max-width: 100%;
 }
}
.profile__photo {
 padding: 10px;
 border: 1px solid var(--frame);
 /*box-shadow: 0 3px 10px rgba(0,0,0,.06);*/
}
.profile__photo img {
 display: block;
 width: 100%;
 height: auto;
 outline-offset: -6px;
}
/* テキスト側 */
.profile__body {
 flex: 1 1 0%;
 color: var(--text-main);
}
.profile__title {
 font-weight: 600;
 line-height: 2;
 letter-spacing: .04em;
 font-size: clamp(20px, 2.2vw, 28px);
 margin: 0 0 1.25em;
 color: var(--text-main);
}
.profile__title .em {
 color: var(--accent);
 font-weight: 700;
}
/* 箇条書き（赤いまるドット） */
.profile__list {
 list-style: none;
 margin: 0;
 padding: 0;
 color: var(--muted);
 font-size: clamp(14px, 1.4vw, 16px);
 line-height: 2;
}
.profile__list li {
 position: relative;
 padding-left: 1.4em;
 margin: .35em 0;
}
.profile__list li::before {
 content: "";
 position: absolute;
 left: .3em;
 top: .9em; /* 行の中央にくるよう微調整 */
 width: .5em;
 height: .5em;
 border-radius: 50%;
 background: var(--accent);
}
/* ===== レスポンシブ ===== */
@media (max-width: 700px) {
 .profile__inner {
  flex-direction: column;
  align-items: stretch;
 }
 .profile__media, .profile__body {
  max-width: none;
 }
 .profile__title {
  line-height: 1.9;
 }
}
/*************************************************************************************
**************************************************************************************

concern

**************************************************************************************
**************************************************************************************/
/* ===== カスタムプロパティ ===== */
.concern {
 --bg-overlay: rgba(54, 42, 33, .55); /* 背景の暗がり */
 --gold: #c7a466; /* 金色ライン/枠/チェック */
 --panel-border: #d9c7a5; /* 外枠ボーダー */
 --white: #fff;
 --text: #ffffff; /* ヒーロー上の見出し色 */
 --em: #e14b44; /* 赤い強調 */
}
/* ===== 背景（写真＋色被せ） ===== */
.concern__bg {
 position: relative;
 background: url("../images/concern_bg.jpg") center/cover no-repeat;
 /*padding: clamp(56px, 10vw, 120px) 0 clamp(72px, 12vw, 140px);*/
 padding: 4rem 0 4rem;
}
@media (max-width: 700px) {
 .concern__bg {
  position: relative;
  background: url("../images/concern_bg.jpg") center/cover no-repeat;
  padding: 4rem 0 4rem;
 }
}
/* 下の小さな菱形（セパレーター） */
/*
.concern__bg::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-12px;
  width:18px; height:18px;
  background:#3d2f26;
  transform: translateX(-50%) rotate(45deg);
}
*/
/* 見出し */
.concern__head {
 text-align: center;
 position: static !important;
 background-color: transparent !important;
}
.concern__title {
 /*font-size: clamp(1.1rem, 4vw, 1.6rem);*/
 line-height: 2;
 letter-spacing: .06em;
 margin: 0 0 2rem;
 position: relative;
 display: inline-block;
 text-align: center;
 color: #FFF;
}
/* >=1001px */
@media (min-width: 1001px) {
 .concern__title {
  font-size: 1.7rem;
 }
}
@media (max-width: 1000px) {
 .concern__title {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .concern__title {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .concern__title {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .concern__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .concern__title {
  font-size: clamp(1.5rem, 4vw, 5rem);
 }
}
.concern__head .u-titlebar-gold {
 padding-bottom: 30px;
 background:
  url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%20500%209.5%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23cfb287%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cpolygon%20class%3D%22cls-1%22%20points%3D%22248.5%200%200%204.7%20248.7%209.5%20500%204.7%20248.5%200%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E') center bottom / clamp(100px, 36vw, 560px) 4px no-repeat;
}
.concern__head .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .concern__head .sp_view {
  display: inline;
 }
}
/* ===== 外枠パネル ===== */
.concern__panel {
 max-width: 770px;
 margin: clamp(20px, 4vw, 40px) auto 0;
 border: 1px solid var(--panel-border);
 padding: clamp(16px, 3vw, 26px);
 background: rgba(255, 255, 255, .02); /* 背景になじむ薄い透明 */
}
/* ===== リスト ===== */
.concern__list {
 list-style: none;
 padding: 0;
 margin: 0;
 display: grid;
 gap: clamp(10px, 1.6vw, 14px);
}
/* 各行の白いボックス */
.concern__list li {
 position: relative;
 background: var(--white);
 border: 1px solid #efe8da;
 box-shadow: 0 2px 0 rgba(0, 0, 0, .08);
 border-radius: 2px;
 padding: 12px 16px 12px 56px; /* 左にチェックスペース */
 font-size: clamp(14px, 1.5vw, 16px);
 font-weight: 500;
 line-height: 1.9;
 color: #3e3430;
}
/* 赤の強調 */
.concern__list .em {
 color: var(--em);
 font-weight: 700;
}
/* チェックボックス（SVG背景） */
.concern__list li::before {
 content: "";
 position: absolute;
 left: 16px;
 top: 50%;
 transform: translateY(-50%);
 /*
  background: center/contain no-repeat
    url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'>\
  <rect x='1.5' y='1.5' width='23' height='23' rx='2' fill='%23fff' stroke='%23c7a466' stroke-width='2'/>\
  <path d='M7 13.8l4.2 4.2L20 9' fill='none' stroke='%23c7a466' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/>\
</svg>");*/
 background-position: top left;
 background-repeat: no-repeat;
 background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2029.5%2025.4%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23a2782b%3B%20%7D%20.cls-2%20%7B%20fill%3A%20none%3B%20stroke%3A%20%23a2782b%3B%20stroke-miterlimit%3A%2010%3B%20stroke-width%3A%20.5px%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Crect%20class%3D%22cls-2%22%20x%3D%22.2%22%20y%3D%22.2%22%20width%3D%2224.9%22%20height%3D%2224.9%22%2F%3E%20%3Cpolygon%20class%3D%22cls-1%22%20points%3D%225%2012.2%2014.2%2019%2029.5%205.4%2014.2%2015%205%2012.2%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
 width: 29px;
 height: 24px;
 background-size: 29px 24px;
}
/* ====== レスポンシブ (<=700px) ====== */
@media (max-width: 700px) {
 .concern__bg {
  padding: 48px 0 70px;
 }
 .concern__panel {
  margin-top: 18px;
  padding: 14px;
  border-width: 1.5px;
 }
 .concern__list li {
  padding: 12px 14px 12px 45px;
 }
 .concern__list li::before {
  left: 14px;
  top: 17px;
  width: 24px;
  height: 19px;
  background-size: 24px 19px;
  transform: none;
 }
}
/*************************************************************************************
**************************************************************************************

coach-invite

**************************************************************************************
**************************************************************************************/
/* ===== コーチ誘導セクション ===== */
.coach-invite {
 /* 調整しやすい用にカスタムプロパティ化 */
 --em: #D93035; /* 赤強調 */
 --gold: #cfb27f; /* 金ライン/枠 */
 --ttl: #D93035; /* タイトル文字色 */
 --text: #3a2d24; /* 基本文字色 */
 --box-border: #e9dcc7; /* カード枠の薄金 */
 --overlap: 24px; /* 前コンテンツへ被せる量(負) */
 --notch-w: 34px; /* ノッチの幅 */
 --notch-h: 18px; /* ノッチの深さ */
}
.coach-invite__bg {
 position: relative;
 margin-top: calc(var(--overlap) * -1); /* 前のコンテンツに被せる */
 /* ここでは透明。白い面は::beforeで作り、ノッチを抜く */
 background: transparent;
}
/* 白背景＋中央ノッチ（前セクションが透けて見える） */
.coach-invite__bg::before {
 content: "";
 position: absolute;
 inset: 0;
 background: #fff;
 /* 上辺中央を切り欠いた多角形（透過） */
 clip-path: polygon(0 0, calc(50% - var(--notch-w)/2) 0, 50% var(--notch-h), calc(50% + var(--notch-w)/2) 0, 100% 0, 100% 100%, 0 100%);
 z-index: 0;
 background-image: url(../images/coach-invite_bg.jpg);
 background-position: right bottom;
 background-repeat: no-repeat;
 background-size: cover;
}
@media (max-width: 660px) {
 .coach-invite__bg::before {
  background-image: none;
 }
}
.coach-invite__inner {
 position: relative;
 z-index: 1;
 padding-block: clamp(40px, 7vw, 96px);
}
.coach-invite__content {
 text-align: center;
 color: var(--text);
}
/*
.coach-invite__title{
  font-weight:700;
  font-size:clamp(20px,2.6vw,30px);
  line-height:1.9;
  letter-spacing:.06em;
  margin:0 0 .8em;
  position:relative;
  display:inline-block;
  padding-inline: clamp(24px,4vw,48px);
}
.coach-invite__title::before,
.coach-invite__title::after{
  content:"";
  position:absolute;
  top: .2em;
  width: clamp(36px,4vw,56px);
  height: 2px;
  background: var(--gold);
  transform-origin: left center;
}
.coach-invite__title::before{ left:0; transform: translateX(-100%) rotate(-20deg); }
.coach-invite__title::after{ right:0; transform: translateX(100%) rotate(20deg); }
*/
.coach-invite .ttl-block {
 width: 100%;
 margin: 3rem auto 2rem;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 text-align: center;
 position: static !important;
 background-color: transparent !important;
}
.coach-invite .ttl-block .block-ttl {
 position: relative;
 display: inline-block;
 padding: 0 4rem;
 color: #D93035;
}
@media (max-width: 640px) {
 .coach-invite .ttl-block .block-ttl {
  padding: 0 7rem;
 }
}
@media (max-width: 480px) {
 .coach-invite .ttl-block .block-ttl {
  padding: 0 3rem;
 }
}
.coach-invite .ttl-block .block-ttl .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .coach-invite .ttl-block .block-ttl .sp_view {
  display: block;
 }
}
.coach-invite .ttl-block .block-ttl .left {
 width: 1px;
 height: 80px;
 transform: rotate(-25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: 0;
 bottom: 0;
}
.coach-invite .ttl-block .block-ttl .left::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: -8px;
 bottom: 3px;
}
.coach-invite .ttl-block .block-ttl .right {
 width: 1px;
 height: 80px;
 transform: rotate(25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: 0;
 bottom: 0;
}
.coach-invite .ttl-block .block-ttl .right::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: -8px;
 bottom: 3px;
}
.coach-invite__lead {
 margin: 0 auto clamp(28px, 5vw, 48px);
 font-size: clamp(14px, 1.6vw, 16px);
 line-height: 2;
 color: #6b5a4d;
}
.coach-invite__steps {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 /*gap: clamp(16px,2.4vw,28px);*/
 margin: 4.5rem auto 4.5rem;
 padding: 0;
 list-style: none;
 max-width: 1100px;
 gap: 1rem;
}
@media (max-width: 660px) {
 .coach-invite__steps {
  gap: 3rem;
 }
}
@media (max-width:480px) {
 .coach-invite__steps {
  gap: 4rem;
 }
}

.step-card {
 position: relative;
 /*flex: 1 1 280px;*/
 width: calc(100% / 3 - 2rem * 2 / 3);
 max-width: 340px;
 border: 1px solid var(--box-border);
 padding: clamp(22px, 2.2vw, 26px) clamp(18px, 2vw, 22px);
 text-align: center;
 background-color: #FFF;
}
@media (min-width: 661px) and (max-width: 800px) {
 .step-card {
  padding: clamp(22px, 2.2vw, 26px) clamp(10px, 1vw, 20px);
 }
}
@media (max-width: 660px) {
 .step-card {
  position: relative;
  /*flex: 1 1 280px;*/
  width: 100%;
  max-width: 340px;
  border: 1px solid var(--box-border);
  padding: clamp(22px, 2.2vw, 26px) clamp(10px, 1vw, 20px);
  text-align: center;
 }
}
/* 丸い番号バッジ（上に半分はみ出す） */
.step-card__badge {
 position: absolute;
 left: 50%;
 top: 0;
 transform: translate(-50%, -50%);
 width: 68px;
 height: 68px;
 border-radius: 50%;
 background: #D2C5A2;
 color: #fff;
 font-size: 28px;
 display: flex;
 align-items: center;
 justify-content: center;
 font-family: "Bodoni Moda", serif;
 font-optical-sizing: auto;
 font-weight: 600;
 font-style: normal;
}
/* テキスト */
.step-card__text {
 margin: 20px 0 6px;
 font-size: clamp(14px, 1.6vw, 16px);
 line-height: 2;
 letter-spacing: -.05em;
}
.step-card .em {
 color: var(--em);
 font-weight: 700;
}
/* CTAとの間隔（CTA側は汎用CSSに任せる前提で最小だけ） */
.coach-invite .cta-area {
 margin-top: clamp(28px, 6vw, 64px);
 text-align: left;
}
/* ===== スマホ（<=700px） ===== */
@media (max-width:700px) {
 .coach-invite {
  --overlap: 16px; /* 被せ量 */
  --notch-w: 24px; /* ノッチ幅（スマホ時に小さく） */
  --notch-h: 12px; /* ノッチ深さ */
 }
 .step-card__badge {
  width: 56px;
  height: 56px;
  font-size: 24px;
 }
 .coach-invite__title::before, .coach-invite__title::after {
  width: 38px;
 }
}
@media (max-width:480px) {
 .step-card__badge {
  width: 75px;
  height: 75px;
  font-size: 24px;
 }
}

/*************************************************************************************
**************************************************************************************

coaches

**************************************************************************************
**************************************************************************************/
.coaches__bg {
 background: url('../images/coaches_bg.jpg') top center/cover no-repeat;
}
/* セクション内で使う色変数 */
.coaches {
 --em: #D93035; /* 赤強調 */
 --ink: #3b2f26; /* 濃い文字色 */
 --muted: #6b5a4d; /* 薄めの本文色 */
 --gold: #cfb287; /* 金色 */
 --gold-light: #D3B489; /* 薄金ボーダー */
 --panel-shadow: 0 10px 30px rgba(0, 0, 0, .08);
}
.coaches .em {
 color: var(--em);
 font-weight: 700;
}
/* ===== 見出し（指示のCSSを coaches 名に置換） ===== */
.coaches__head {
 text-align: center;
 position: static !important;
 background-color: transparent !important;
 padding: 5rem 0 2rem;
}
.coaches__title {
 line-height: 2;
 letter-spacing: .06em;
 margin: 0 0 2rem;
 position: relative;
 display: inline-block;
 text-align: center;
}
@media (min-width: 1001px) {
 .coaches__title {
  font-size: 1.7rem;
 }
}
@media (max-width: 1000px) {
 .coaches__title {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .coaches__title {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .coaches__title {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .coaches__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .coaches__title {
  font-size: clamp(1.5rem, 4vw, 5rem);
 }
}
.coaches__head .u-titlebar-gold {
 padding-bottom: 30px;
 background:
  url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 500 9.5%22%3E%3Cpolygon fill=%22%23cfb287%22 points=%22248.5 0 0 4.7 248.7 9.5 500 4.7 248.5 0%22/%3E%3C/svg%3E') center bottom / clamp(100px, 36vw, 560px) 4px no-repeat;
}
.coaches__head .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .coaches__head .sp_view {
  display: inline;
 }
}
/* カード群 */
.coach-cards {
 display: grid;
 /*gap: clamp(28px, 3.2vw, 40px);*/
 gap: 4rem;
 margin-bottom: 5rem;
}
/* 1枚のカード */
.coach-card {
 width: 100%;
 display: flex;
 gap: 2rem;
 background-color: #FFF;
 align-items: center;
 padding: 2rem 2rem;
 max-width: 940px;
 margin: 0 auto;
}
.coach-card.is-left {
 flex-direction: row;
}
.coach-card.is-right {
 flex-direction: row-reverse;
}
@media (max-width: 700px) {
 .coach-card {
  width: 100%;
  /*display: flex;*/
  display: block;
  position: relative;
 }
}
.coach-card .coach-card__photo {
 display: block;
}
.coach-card:nth-of-type(1) .coach-card__photo {
 margin: -4rem 2rem 0 -4rem;
 float: left;
}
.coach-card:nth-of-type(2) .coach-card__photo {
 margin: auto -4rem -4rem 2rem;
 float: right;
 padding-top: 2rem;
}
.coach-card:nth-of-type(3) .coach-card__photo {
 margin: auto 2rem -4rem -4rem;
 float: left;
 padding-top: 2rem;
}
@media (max-width: 700px) {
 .coach-card:nth-of-type(1) .coach-card__photo, .coach-card:nth-of-type(2) .coach-card__photo, .coach-card:nth-of-type(3) .coach-card__photo {
  margin: -4rem 2rem 0 -4rem;
  display: inline-block;
  float: left;
  padding-top: 0;
 }
}
.coach-card .coach-card__photo img {
 max-width: 300px;
 border: #D93035 solid 1px;
}
@media (min-width: 701px) {
 .coach-card .coach-card__photo img {
  max-width: 300px;
  padding: 10px;
 }
}
@media (max-width: 700px) {
 .coach-card .coach-card__photo img {
  max-width: 150px;
  padding: 7px;
 }
}
.coach-card__panel {
 display: flex;
 flex-direction: column;
 gap: 1rem;
}
@media (max-width: 700px) {
 .coach-card__panel {}
}
.coach-card__panel .coach-card__nameblock {}
.coach-card__panel .coach-card__en {
 color: #D93035;
}
.coach-card__panel .coach-card__role {
 color: #AAA;
 line-height: 1.2;
}
.coach-card__panel .coach-coach-card__ja {}
@media (min-width: 1001px) {
 .coach-card__panel .coach-card__ja {
  font-size: 1.7rem;
 }
}
@media (max-width: 1000px) {
 .coach-card__panel .coach-card__ja {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .coach-card__panel .coach-card__ja {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .coach-card__panel .coach-card__ja {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .coach-card__panel .coach-card__ja {
  font-size: clamp(1.4rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .coach-card__panel .coach-card__ja {
  font-size: clamp(1.5rem, 4vw, 5rem);
 }
}
.coach-card__panel .coach-card__text {
 margin-top: 1rem;
}
@media (min-width: 701px) {
 .coach-card:nth-of-type(1) .coach-card__text {
  padding-left: 270px;
 }
 .coach-card:nth-of-type(2) .coach-card__text {
  padding-right: 270px;
 }
 .coach-card:nth-of-type(3) .coach-card__text {
  padding-left: 270px;
 }
}
.mm-head {
 text-align: center;
 color: #3b2f26;
 letter-spacing: .06em;
 line-height: 1.85;
 margin: 0 0 3rem;
}
.mm-head__kicker {
 margin-bottom: .9rem;
}
/* マルチライン下線（各行に入る） */
.coaches .u-ml-underline {
 display: inline;
 padding: 0 4px 4px; /* 下線との距離 */
 background:
  linear-gradient(to bottom, transparent 0, transparent calc(100% - .5px), /* 線の太さ=1px */ #CCC calc(100% - .5px), #CCC 100%);
 -webkit-box-decoration-break: clone;
 box-decoration-break: clone;
 font-weight: 700;
 font-size: clamp(18px, 3vw, 26px);
}
/* 赤強調 */
.mm-head .em {
 color: #e14b44;
 font-weight: 800;
}
.mm-head .sp_view {}
@media (min-width: 451px) {
 .mm-head .sp_view {
  display: none;
 }
}
@media (max-width: 450px) {
 .mm-head .sp_view {
  display: block;
 }
}
/* ===== ② カルーセル（slick想定の骨） ===== */
.carousel {
 margin: 2rem 0 3.5rem;
}
.js-coach-carousel {
 margin-top: clamp(6px, 2vw, 12px);
}
.carousel-item {
 text-align: center;
 padding: 6px !important;
}
.carousel-item img {
 width: 100%;
 height: auto;
 display: block;
}
.js-coach-carousel .slick-slide {
 padding: 0 12px;
 box-sizing: border-box;
}
.js-coach-carousel .slick-list {
 margin: 0 -12px;
}
/* SPだけ 16px ガターに */
@media (max-width:700px) {
 .js-coach-carousel .slick-slide {
  padding: 0 8px;
 }
 .js-coach-carousel .slick-list {
  margin: 0 -8px;
 }
}
/* ===== ③ 認定コーチとは？（二重枠＋チェック） ===== */
.coach-about {
 position: relative;
 border: 1px solid var(--gold-light);
 padding: 2rem 3rem;
 color: var(--ink);
}
.coach-about::after {
 content: "";
 position: absolute;
 inset: 12px;
 border: 2px solid var(--gold-light);
 pointer-events: none;
}
.coach-about__title {
 text-align: center;
 font-weight: 700;
 letter-spacing: .08em;
 margin: 1em 0 1.5em;
 position: relative;
 font-size: clamp(18px, 2.6vw, 26px);
}
.coach-about__title span {
 padding: 0 2rem;
}

@media only screen and (max-width: 600px){
.coach-about__title span {
 padding: 0 0;
}
}

.coach-about__title .sp_view_irregular {
display: none;
}

@media only screen and (max-width: 480px){
.coach-about__title .sp_view_irregular {
display:inline;
}
}

.coach-about__title span::before {
 content: "";
 display: inline-block;
 width: calc((100% - 230px) / 2);
 height: 1px;
 background-color: var(--gold-light);
 position: absolute;
 left: 0;
 top: 50%;
 transform: translateY(-50%);
}
.coach-about__title span::after {
 content: "";
 display: inline-block;
 height: 1px;
 background-color: var(--gold-light);
 position: absolute;
 right: 0;
 top: 50%;
 transform: translateY(-50%);
}

@media (min-width: 941px) {
 .coach-about__title span::before, .coach-about__title span::after {
  width: calc((100% - 500px) / 2);
 }
}

@media (min-width: 851px) and (max-width: 940px) {
 .coach-about__title span::before, .coach-about__title span::after {
  width: calc((100% - 450px) / 2);
 }
}

@media (min-width: 701px) and (max-width: 850px) {
 .coach-about__title span::before, .coach-about__title span::after {
  width: calc((100% - 400px) / 2);
 }
}

@media only screen and (min-width: 481px) and (max-width: 700px) {
 .coach-about__title span::before, .coach-about__title span::after {
  width: calc((100% - 350px) / 2);
 }
}

@media only screen and (max-width: 480px) {
 .coach-about__title span::before, .coach-about__title span::after {
  width: calc((100% - 200px) / 2);
 }
}
.coach-about__grid {
 display: flex;
}
@media only screen and (min-width: 801px) {
 .coach-about__grid {
  display: flex;
  gap: clamp(16px, 3vw, 32px);
  align-items: center;
 }
}
@media only screen and (max-width: 800px) {
 .coach-about__grid {
  flex-direction: column;
  gap: 2rem;
 }
}
.coach-about__text {}
@media only screen and (min-width: 801px) {
 .coach-about__text {
  flex: 1 1 320px;
 }
}
@media only screen and (max-width: 800px) {
 .coach-about__text {}
}
.coach-about__desc {
 margin: 0 0 .6em;
 line-height: 1.9;
 font-size: clamp(16px, 2.4vw, 19px);
}
.coach-about__note {
 margin-top: .8em;
 line-height: 1.6;
 font-size: clamp(16px, 2.6vw, 22px);
 letter-spacing: 0.01em;
}
.coach-about__list {
 list-style: none;
 margin: .2em 0;
 padding: 0;
}
.coach-about__list li {
 position: relative;
 padding-left: 30px;
 line-height: 1.9;
 margin: .25em 0;
}
.coach-about__list li::before {
 content: "";
 position: absolute;
 left: 0;
 top: .55em;
 width: 18px;
 height: 18px;
 background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2025.1%2019.4%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20none%3B%20stroke%3A%20%23cd3234%3B%20stroke-miterlimit%3A%2010%3B%20stroke-width%3A%205px%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cpolyline%20class%3D%22cls-1%22%20points%3D%2223.4%201.8%209.2%2015.8%201.8%208.1%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
 background-position: center center;
 background-repeat: no-repeat;
 background-size: contain;
}





.coach-about__text .coach-about__btn {
 display: flex;
 justify-content: center;
 margin: 1.5rem auto 0;
}
@media (min-width: 701px) {
 .coach-about__text .coach-about__btn {
  max-width: 700px;
 }
}
.coach-about__text .coach-about__btn a {
 position: relative;
 width: 100%;
 display: flex;
 justify-content: center;
 align-items: center;
 padding: 0 1rem;
 background-color: #D93035;
 color: #FFF;
 min-height: 60px;
 box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.05), 5px 5px 3px rgba(0, 0, 0, 0.2);
}
@media (max-width: 400px) {
 .coach-about__text .coach-about__btn a {
  min-height: 50px;
 }
}

.coach-about__text .coach-about__btn a:hover {
  background: var(--cta-red-dk);
}

.coach-about__text .coach-about__btn a .txt {
 /*font-size: clamp(1.1rem, 3vw, 1.25rem);*/
 font-weight: 500;
	white-space: nowrap;
}
/*
@media (min-width: 481px) and (max-width: 700px) {
 .coach-about__text .coach-about__btn a .txt {
  font-size: clamp(1.5rem, 3vw, 1.25rem);
 }
}
@media (max-width: 480px) {
 .coach-about__text .coach-about__btn a .txt {
  font-size: clamp(1.0rem, 3vw, 1.25rem);
 }
}
*/
.coach-about__text .coach-about__btn a .icon {
 position: relative;
}
.coach-about__text .coach-about__btn a .icon::before {
 content: "";
 display: inline-block;
 position: absolute;
 right: 0;
 top: 50%;
 transform: translateY(-50%);
 transition: .3s ease-in-out;
 background-position: top left;
 background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2030.3%2032.3%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23fff%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M30%2C32.3H.4c-.2%2C0-.4-.2-.4-.4V4.1c0-.2.2-.4.4-.4h5.6c.2%2C0%2C.4.2.4.4s-.2.4-.4.4H.7v27.1h28.9V4.5h-3.5c-.2%2C0-.4-.2-.4-.4s.2-.4.4-.4h3.9c.2%2C0%2C.4.2.4.4v27.8c0%2C.2-.2.4-.4.4Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M21.3%2C4.5h-10.5c-.2%2C0-.4-.2-.4-.4s.2-.4.4-.4h10.5c.2%2C0%2C.4.2.4.4s-.2.4-.4.4Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M30%2C11.3H.4C.2%2C11.3%2C0%2C11.1%2C0%2C10.9s.2-.4.4-.4h29.6c.2%2C0%2C.4.2.4.4s-.2.4-.4.4Z%22%2F%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M7.5%2C8.2c-1%2C0-1.9-.9-1.9-1.9V1.9c0-1%2C.8-1.9%2C1.9-1.9s1.9.9%2C1.9%2C1.9v4.4c0%2C1-.8%2C1.9-1.9%2C1.9ZM7.5.7c-.6%2C0-1.2.5-1.2%2C1.2v4.4c0%2C.7.5%2C1.2%2C1.2%2C1.2s1.2-.5%2C1.2-1.2V1.9c0-.7-.5-1.2-1.2-1.2Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M22.8%2C8.2c-1%2C0-1.9-.9-1.9-1.9V1.9c0-1%2C.8-1.9%2C1.9-1.9s1.9.9%2C1.9%2C1.9v4.4c0%2C1-.8%2C1.9-1.9%2C1.9ZM22.8.7c-.6%2C0-1.2.5-1.2%2C1.2v4.4c0%2C.7.5%2C1.2%2C1.2%2C1.2s1.2-.5%2C1.2-1.2V1.9c0-.7-.5-1.2-1.2-1.2Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M12.3%2C17.2h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M12.3%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M12.3%2C27.4h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M18%2C17.2h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M18%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M18%2C27.4h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M23.7%2C17.2h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M23.7%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M6.6%2C22.3h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M6.6%2C27.4h0c-.5%2C0-.9-.4-.9-.9s.4-.9.9-.9h0c.5%2C0%2C.9.4.9.9s-.4.9-.9.9Z%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
 width: 25px;
 height: 27px;
 background-size: 25px 27px;
 margin-right: 2rem;
}
@media (max-width: 480px) {
 .coach-about__text .coach-about__btn a .icon::before {
  margin-right: 1rem;
 }
}
.coach-about__text .coach-about__btn a .arrow {
 position: absolute;
 right: 2rem;
 top: calc(50% + 3px);
 transform: translateY(-50%);
 transition: .3s ease-in-out;
}
.coach-about__text .coach-about__btn a:hover .arrow {
 position: absolute;
 right: 1rem;
 transition: .3s ease-in-out;
}
.coach-about__text .coach-about__btn a .arrow::after {
 content: "";
 display: block;
 width: 1px;
 height: 12px;
 background-color: #FFF;
 position: absolute;
 right: 4px;
 top: calc(50% - 10px);
 transform: rotate(-45deg);
}
.coach-about__text .coach-about__btn a .arrow::before {
 content: "";
 display: block;
 width: 65px;
 height: 1px;
 background-color: #FFF;
 position: absolute;
 right: 0;
 top: 50%;
 transform: translateY(-50%);
}
@media (max-width: 480px) {
 .coach-about__text .coach-about__btn a .arrow::before {
  width: 30px;
 }
}















.coach-about__media {}
@media only screen and (min-width: 801px) {
 .coach-about__media {
  flex: 0 1 360px;
 }
}
@media only screen and (max-width: 800px) {
 .coach-about__media {}
}
.about__img {
 margin: 0 0 10px;
}
.about__img img {
 display: block;
 width: 100%;
 height: auto;
}
.about__thumbs {
 display: flex;
 gap: 10px;
}
.about__thumbs img {
 width: calc(33.333% - 6.7px);
 display: block;
}
@media (max-width:700px) {
 .coach-about__grid {
  flex-direction: column;
 }
}
/* レイアウト */
.invite {
 padding: clamp(24px, 6vw, 56px) 0;
}
.invite__inner {
 text-align: center;
}
/* 本文（太め・中央） */
.invite__copy {
 color: #3b2f26;
 letter-spacing: .01em;
 line-height: 1.9;
 font-weight: 800;
 font-size: clamp(14px, 3.4vw, 25px); /* 目安：SP14px〜PC25px */
 margin: 0 0 2rem;
}
/* 逆三角（赤） */
.invite__triangle {
 display: block;
 width: 0;
 height: 0;
 margin: clamp(14px, 2vw, 22px) auto 0;
 border-left: 16px solid transparent;
 border-right: 16px solid transparent;
 border-top: 24px solid #DA3134;
}
.invite .pc_view {
 display: inline;
}
@media (max-width:700px) {
 .invite .pc_view {
  display: none;
 }
}
.invite .sp_view {
 display: none;
}
@media (max-width:700px) {
 .invite .sp_view {
  display: inline;
 }
}
/*************************************************************************************
**************************************************************************************

consult

**************************************************************************************
**************************************************************************************/
.consult__bg {
 color: #fff;
 padding: 4rem 0;
}
@media (min-width:1151px) {
 .consult__bg {
  background:
   url('../images/red_texture.jpg') center/cover no-repeat;
 }
}
@media (min-width:701px) and  (max-width:1150px) {
 .consult__bg {
  background:
   url('../images/red_texture.jpg') right -7rem top/cover no-repeat;
 }
}
@media (max-width:700px) {
 .consult__bg {
  background:
   url('../images/red_texture_sp.jpg') center/cover no-repeat;
 }
}
.consult {}
.consult__kicker {
 text-align: center;
 letter-spacing: .14em;
 font-size: clamp(14px, 4vw, 19px);
 font-weight: 900;
}
.gold-text {
 /* まず塗りを透明化してグラデを文字にクリップ */
 color: transparent;
 background-image: linear-gradient(90deg, /* ほんのり白金のハイライト */ #fff7d1 0%, #f7e7b2 12%, /* 明→中間へ */ #F2DFC1 24%, /* 金属のコア色（やや濃い金） */ #F9EDD6 36%, /* 中央ハイライト（鏡面っぽい抜け） */ #FAEBD1 48%, /* 再び濃い金へ落とす */ #F9EDD6 60%, /* 一段暗い金（深み） */ #F2DFC1 74%, /* 仕上げに明るめへ戻す */ #f7e7b2 88%, #fff7d1 100%);
 -webkit-background-clip: text;
 background-clip: text;
 -webkit-text-fill-color: transparent; /* Safari安定化 */
}
.consult__title {
 text-align: center;
 font-size: clamp(30px, 4vw, 40px);
 line-height: 1.6;
 letter-spacing: .06em;
 color: #fff;
 margin: 0 0 24px;
}
.consult__title .sp_view {}
@media (min-width:701px) {
 .consult__title .sp_view {
  display: none;
 }
}
@media (max-width:700px) {
 .consult__title .sp_view {
  display: inline-block;
 }
}
/* ===== レイアウト（左情報＋右人物） ===== */
.consult__grid {
 display: flex;
 align-items: flex-end;
 /*gap: clamp(24px, 4vw, 48px);*/
}
.consult__info {}
@media (min-width:701px) {
 .consult__info {
  flex: 1 1 560px;
 }
}
@media (max-width:700px) {
 .consult__info {}
}
.consult__photo {
 flex: 0 0 auto;
 margin: 0;
}
@media (max-width:700px) {
 .consult__photo {
  display: none;
 }
}
.consult__photo img {
 display: block;
 width: min(42vw, 420px);
 height: auto;
}
/* SP：縦積み */
@media (max-width:700px) {
 .consult__grid {
  flex-direction: column;
  align-items: center;
 }
 .consult__photo img {
  width: min(80vw, 420px);
 }
}
/* ===== 情報表（罫線＋左右2カラム） ===== */
.consult__list {
 margin: 0 0 18px;
 padding: 0;
}
.consult__row {
 /*display: grid;
 grid-template-columns: 9em 1fr;
 gap: 0;
 align-items: start;*/
 padding: 14px 0;
 position: relative;
 display: flex;
 align-items: center;
}
.consult__row dt {
 font-weight: 700;
 color: #fff;
 border-bottom: rgba(255, 255, 255, 1.00) solid 1px;
 padding-bottom: 20px;
 min-width: 120px;
}
.consult__row dd {
 color: #fff;
 border-bottom: rgba(255, 255, 255, .7) solid 1px;
 padding-bottom: 20px;
}
/* SP：ラベル幅縮小 */
@media (max-width:700px) {
 .consult__row {
  grid-template-columns: 6em 1fr;
  gap: 0;
  padding: 12px 0;
 }
}
.consult__table {
 position: relative;
}
.consult__table::before {
 content: "";
 display: block;
 width: 100%;
 height: 1px;
 background-color: rgba(255, 255, 255, .7);
 position: absolute;
 left: 0;
 top: 0;
 z-index: 1;
}
.consult__table::after {
 content: "";
 display: block;
 width: 120px;
 height: 1px;
 background-color: rgba(255, 255, 255, 1);
 position: absolute;
 left: 0;
 top: 0;
 z-index: 2;
}
.consult__table th {
 color: #fff;
 border-bottom: rgba(255, 255, 255, 1) solid 1px;
 padding: 10px 0;
 vertical-align: middle;
 text-align: left;
 width: 120px;
}
.consult__table td {
 color: #fff;
 border-bottom: rgba(255, 255, 255, .7) solid 1px;
 padding: 10px 0;
 vertical-align: middle;
}
/* ===== キャッチ（点線＋左右の斜線） ===== */
.consult__catch {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 14px;
 margin: 18px 0 8px;
 text-align: center;
}
@media (max-width:700px) {
 .consult__catch {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 50px;
  margin: 18px 0 0;
  text-align: center;
  display: inline-flex;
  padding-left: 30px;
 }
}
@media (max-width:400px) {
 .consult__catch {
  gap: 0;
 }
}
.consult__catch p.consult__catch__txt {
 margin: 0;
 font-weight: 900;
}
@media (max-width:700px) {
 .consult__catch p.consult__catch__txt {
  font-size: clamp(1rem, 8vw, 1.4rem);
 }
}
@media (max-width:480px) {
 .consult__catch p.consult__catch__txt {
  font-size: clamp(.8rem, 1vw, 1.4rem);
  min-width: 90px;
 }
}
.consult__catch span {}
.consult__slash__outer {
 position: relative;
 display: inline-block;
 padding: 0 2rem;
}
.consult__slash.-l::before, .consult__slash.-r::before {
 content: "";
 position: absolute;
 width: 60px;
 height: 2px;
 /*
	border-top: #e9d7b8 dashed 2px;
 transform-origin: left center;
	*/
 background-image: linear-gradient(to right, #e9d7b8, #e9d7b8 1px, transparent 1px, transparent 2px);
 background-position: left bottom;
 background-repeat: repeat-x;
 background-size: 4px 1px;
}
.consult__slash.-l::before {
 bottom: 20px;
 left: -30px;
 transform: rotate(-125deg);
}
.consult__slash.-r::before {
 bottom: 20px;
 right: -30px;
 transform: rotate(125deg);
}
@media (min-width:701px) {
 .consult__catch .sp_view {
  display: none;
 }
}
@media (max-width:700px) {
 .consult__catch .sp_view {
  display: inline-block;
 }
}
.consult__catch__img {}
@media (min-width:701px) {
 .consult__catch__img {
  display: none;
 }
}
@media (max-width:700px) {
 .consult__catch__img {
  flex: 0 1 210px;
  position: relative;
  z-index: 2;
  margin-top: -3rem;
 }
}
@media (max-width:600px) {
 .consult__catch__img {
  flex: 0 1 180px;
  position: relative;
  z-index: 2;
  margin-top: -3rem;
 }
}
@media (max-width:480px) {
 .consult__catch__img {
  flex: 0 1 150px;
  position: relative;
  z-index: 2;
  margin-top: -2rem;
 }
}
@media (max-width: 350px) {
 .consult__catch__img {
  flex: 0 0 150px;
  position: relative;
  z-index: 2;
  margin-top: -2rem;
 }
}
/* ===== CTA（白大ボタン／金枠＋影） ===== */
.consult__cta {
 /*margin: clamp(22px, 5vw, 38px) auto 0;*/
 margin: 0 auto;
 display: flex;
 justify-content: center;
 width: 100%;
}
.consult-btn {
 position: relative;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 background: #fff;
 color: #d63b35; /* ボタン文字赤 */
 border: 3px solid #d6c3a3; /* 薄金の縁 */
 padding: clamp(14px, 2vw, 20px) clamp(20px, 5vw, 64px);
 font-size: clamp(16px, 2vw, 22px);
 line-height: 1.6;
 text-decoration: none;
 box-shadow:
  6px 6px 1px rgba(0, 0, 0, .09), 0 1px 0 rgba(255, 255, 255, .3) inset;
 width: 100%;
}
@media (min-width:701px) {
 .consult-btn {
  gap: 16px;
 }
}
@media (max-width:700px) {
 .consult-btn {
  width: 100%;
  justify-content: center;
 }
}
@media (max-width:400px) {
 .consult-btn {
  gap: 0;
 }
}
.consult-btn .wrapper {
 position: relative;
 padding-right: 3rem;
}
.consult-btn .txt {
 font-weight: 900;
 letter-spacing: 0.001em;
}
@media (min-width:701px) {
 .consult-btn .txt {}
}
@media (max-width:400px) {
 .consult-btn .txt {
  font-size: clamp(12px, 2vw, 22px);
 }
}
.consult-btn .arrow {
 width: 10px;
 height: 10px;
 border-right: 1px solid currentColor;
 border-top: 1px solid currentColor;
 margin-left: 6px;
 position: absolute;
 right: 1rem;
 top: calc(50% + 2px);
 transform: translateY(-50%) rotate(45deg);
 transition: .3s ease-in-out;
}
.consult-btn:hover .arrow {
 right: 0rem;
 transition: .3s ease-in-out;
}
/*************************************************************************************
**************************************************************************************

basic

**************************************************************************************
**************************************************************************************/
.basic {}
.basic__bg {
 padding: 3rem 0;
 background-position: top center;
 /*background-size: cover;*/
 background-repeat: repeat-x;
 /* フォールバック */
 background-image: url('../images/basic_bg_long.jpg');
 /* WebP優先（1xだけ） */
 background-image: -webkit-image-set(url('../images/basic_bg_long.webp') type('image/webp') 1x, url('../images/basic_bg_long.jpg') type('image/jpeg') 1x);
 background-image: image-set(url('../images/basic_bg_long.webp') type('image/webp') 1x, url('../images/basic_bg_long.jpg') type('image/jpeg') 1x);
}
@media (min-width:701px) {
 .basic__bg {
  background-size: 500px 100%;
 }
}
@media (max-width:700px) {
 .basic__bg {
  background-size: 160% auto;
 }
}
/* セクション内で使う色変数 */
.basic {
 --em: #D93035; /* 赤強調 */
 --ink: #3b2f26; /* 濃い文字色 */
 --muted: #6b5a4d; /* 薄めの本文色 */
 --gold: #cfb287; /* 金色 */
 --gold-light: #D3B489; /* 薄金ボーダー */
 --panel-shadow: 0 10px 30px rgba(0, 0, 0, .08);
 overflow: hidden;
}
.basic .em {
 color: var(--em);
 font-weight: 700;
}
/* ===== 見出し ===== */
.basic__head {
 text-align: center;
 position: static !important;
 background-color: transparent !important;
 padding: 0 0 2rem;
}
.basic__title {
 line-height: 2;
 letter-spacing: .06em;
 margin: 0 0;
 position: relative;
 display: inline-block;
 text-align: center;
}
@media (min-width: 1001px) {
 .basic__title {
  font-size: 1.7rem;
 }
}
@media (max-width: 1000px) {
 .basic__title {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .basic__title {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .basic__title {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .basic__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .basic__title {
  font-size: clamp(1.5rem, 4vw, 5rem);
 }
}
.basic__head .u-titlebar-gold {
 padding-bottom: 30px;
 background:
  url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 500 9.5%22%3E%3Cpolygon fill=%22%23cfb287%22 points=%22248.5 0 0 4.7 248.7 9.5 500 4.7 248.5 0%22/%3E%3C/svg%3E') center bottom / clamp(100px, 36vw, 560px) 4px no-repeat;
}
.basic__head .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .basic__head .sp_view {
  display: inline;
 }
}
.basic .lead {
 color: var(--em);
 text-align: center;
 font-weight: 500;
}
@media (min-width: 1001px) {
 .basic .lead {
  font-size: 1.2rem;
 }
}
@media (max-width: 1000px) {
 .basic .lead {
  font-size: 1.1rem;
 }
}
@media (max-width: 700px) {
 .basic .lead {
  font-size: clamp(1.4rem, 2.7vw, 5rem);
 }
}
@media (max-width: 480px) {
 .basic .lead {
  font-size: clamp(1rem, 3vw, 2rem);
 }
}
@media (max-width: 430px) {
 .basic .lead {
  font-size: clamp(.8rem, 4vw, 5rem);
 }
}
.basic .lead .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .basic .lead .sp_view {
  display: inline;
 }
}
.basic .lead_after {
 margin: 2rem 0;
}
@media (max-width: 500px) {
 .basic .lead_after {
  margin: 2rem -2rem 2rem -2rem;
 }
}
.basic .lead_after img {}
@media (max-width: 500px) {
 .basic .lead_after img {
  width: calc(100% + 4rem);
 }
}
.basic .box {
 background-color: rgba(204, 51, 51, 0.1);
 padding: 3rem clamp(16px, 3vw, 26px) 1rem;
 margin-top: 3rem;
}
.basic .mm-head {
 text-align: center;
 color: #3b2f26;
 letter-spacing: .06em;
 line-height: 1.85;
 margin: 0 0 3rem;
}
@media (min-width: 1001px) {
 .basic .mm-head {
  font-size: 1.4rem;
 }
}
@media (max-width: 1000px) {
 .basic .mm-head {
  font-size: 1.35rem;
 }
}
@media (max-width: 700px) {
 .basic .mm-head {
  font-size: clamp(1.7rem, 4vw, 1.4rem);
 }
}
@media (max-width: 600px) {
 .basic .mm-head {
  font-size: clamp(1.7rem, 4vw, 1.4rem);
  margin: 0 0 4rem;
 }
}
@media (max-width: 480px) {
 .basic .mm-head {
  font-size: clamp(1.22rem, 4vw, 1.28rem);
 }
}
@media (max-width: 430px) {
 .basic .mm-head {
  font-size: clamp(1.45rem, 4vw, 1.1rem);
 }
}
.basic .mm-head__kicker {
 margin-bottom: .9rem;
}
/* マルチライン下線（各行に入る） */
.basic .mm-head .u-ml-underline {
 display: inline;
 padding: 0 4px 4px; /* 下線との距離 */
 background:
  linear-gradient(to bottom, transparent 0, transparent calc(100% - .75px), /* 線の太さ=1px */ var(--gold-light) calc(100% - .75px), var(--gold-light) 100%);
 -webkit-box-decoration-break: clone;
 box-decoration-break: clone;
 font-weight: 700;
 /*font-size: clamp(18px, 2.6vw, 26px);*/
}
/* 赤強調 */
.basic .mm-head .em {
 color: #e14b44;
 font-weight: 800;
}
.basic .mm-head .sp_view {}
@media (min-width: 451px) {
 .basic .mm-head .sp_view {
  display: none;
 }
}
@media (max-width: 450px) {
 .basic .mm-head .sp_view {
  display: block;
 }
}
.basic .separator {
 display: flex;
 gap: 2rem;
 counter-reset: listnum; /* カウンターをリセット */
}
@media (max-width: 500px) {
 .basic .separator {
  flex-wrap: wrap;
 }
}
.basic .separator .item {
 width: calc(100% / 3 - 2rem * 2 / 3);
 display: flex;
 flex-direction: column;
 flex: 1 0 auto;
 position: relative;
 z-index: 0;
 margin-bottom: 2rem;
}
@media (max-width: 500px) {
 .basic .separator .item {
  width: 100%;
 }
}
.basic .separator .item .item-ttl {
 font-weight: 700;
 position: relative;
 z-index: 1;
}
@media (min-width: 1001px) {
 .basic .separator .item .item-ttl {
  font-size: 1.4rem;
  margin-bottom: 4rem;
 }
}
@media (max-width: 1000px) {
 .basic .separator .item .item-ttl {
  font-size: 1.2rem;
  margin-bottom: 2rem;
 }
}
@media (max-width: 700px) {
 .basic .separator .item .item-ttl {
  font-size: clamp(1.4rem, 3vw, 1.2rem);
  margin-bottom: 2rem;
 }
}
@media (max-width: 480px) {
 .basic .separator .item .item-ttl {
  font-size: clamp(1.2rem, 4vw, 2rem);
  margin-bottom: 2rem;
 }
}
@media (max-width: 430px) {
 .basic .separator .item .item-ttl {
  font-size: clamp(1.2rem, 3vw, 1.2rem);
  margin-bottom: 2rem;
 }
}
.basic .separator .item .item-ttl .front {
 z-index: 1;
 position: relative;
}
/* 大きな番号（背面固定） */
.basic .separator .item .item-ttl::before {
 counter-increment: listnum; /* counter-resetと同じ文字列 */
 content: counter(listnum, decimal-leading-zero); /* カウントした数に応じて番号を表示 */
 position: absolute;
 left: 50%;
 top: -3rem;
 transform: translateX(-50%);
 font-size: clamp(6rem, 20vw, 12rem);
 line-height: 1;
 color: rgba(217, 48, 53, .1);
 z-index: 0;
 pointer-events: none;
 display: block;
 font-family: "Bodoni Moda", serif;
 font-optical-sizing: auto;
 font-weight: 400;
 font-style: normal;
}
@media (max-width: 600px) {
 .basic .separator .item .item-ttl::before {
  left: 50%;
  top: -2rem;
  transform: translateX(-50%);
  font-size: clamp(10rem, 20vw, 12rem);
 }
}
@media (max-width: 500px) {
 .basic .separator .item .item-ttl::before {
  left: 25%;
  top: -2rem;
  font-size: clamp(10rem, 20vw, 12rem);
 }
}
@media (max-width: 480px) {
 .basic .separator .item .item-ttl::before {
  left: 50%;
  top: -2.3rem;
  transform: translateX(-50%);
  font-size: clamp(9rem, 20vw, 12rem);
 }
}
.basic .box {
 /* そのまま使う背景色 */
 --bg: rgba(204, 51, 51, 0.10);
 /* 三角サイズと位置 */
 --notch-w: 24px;
 --notch-h: 12px;
 --notch-x: 50%; /* 中央。ずらすなら 45% など */
 position: relative;
 overflow: visible; /* 三角を外側に出すため保険 */
 padding: 3rem 2.5rem calc(2rem + var(--notch-h)); /* 三角ぶん下に余白 */
 background-color: var(--bg); /* 矩形は要素の背景として描く */
}
@media (min-width: 701px) {
 .basic .box {
  --notch-w: 28px;
  --notch-h: 18px;
  padding: 2rem 3rem calc(1rem + var(--notch-h)); /* 三角ぶん下に余白 */
 }
}
/* 下向き三角だけを描く（本体と同じ色） */
.basic .box::after {
 content: "";
 position: absolute;
 left: var(--notch-x);
 bottom: calc(-1 * var(--notch-h)); /* 要素の外へ突き出す */
 transform: translateX(-50%);
 width: var(--notch-w);
 height: var(--notch-h);
 background: var(--bg);
 clip-path: polygon(0 0, 100% 0, 50% 100%); /* 下向き三角形 */
}
/* clip-path 非対応なら三角を出さず四角だけ（自然フォールバック） */
@supports not (clip-path: polygon(0 0, 100% 0, 50% 100%)) {
 .basic .box::after {
  display: none;
 }
}
/*************************************************************************************
**************************************************************************************

learning

**************************************************************************************
**************************************************************************************/
.learning {}
/* セクション内で使う色変数 */
.learning {
 --em: #D93035; /* 赤強調 */
 --ink: #3b2f26; /* 濃い文字色 */
 --muted: #6b5a4d; /* 薄めの本文色 */
 --gold: #cfb287; /* 金色 */
 --gold-light: #D3B489; /* 薄金ボーダー */
 --panel-shadow: 0 10px 30px rgba(0, 0, 0, .08);
}
.learning .em {
 color: var(--em);
 font-weight: 700;
}
.learning .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .learning .sp_view {
  display: inline;
 }
}
.learning .block-ttl {}
@media (min-width: 1001px) {
 .learning .block-ttl {
  font-size: 1.65rem;
 }
}
@media (max-width: 1000px) {
 .learning .block-ttl {
  font-size: 1.6rem;
 }
}
@media (max-width: 700px) {
 .learning .block-ttl {
  font-size: clamp(1.4rem, 3.3vw, 5rem);
 }
}
@media (max-width: 480px) {
 .learning .block-ttl {
  font-size: clamp(1rem, 5vw, 2rem);
 }
}
@media (max-width: 430px) {
 .learning .block-ttl {
  font-size: clamp(1rem, 4.5vw, 5rem);
 }
}
.learning .over {
 padding: 3rem 2rem 6rem;
 position: relative;
}
@media (max-width: 1000px) {
 .learning .over {
  padding: 2rem 0 6rem;
 }
}
@media (max-width: 800px) {
 .learning .over {
  padding: 1.5rem 0 4.5rem;
 }
}
.learning .over .lead {
 display: flex;
 justify-content: center;
}
@media (min-width: 1001px) {
 .learning .lead {
  font-size: 1.65rem;
 }
}
@media (max-width: 1000px) {
 .learning .lead {
  font-size: 1.6rem;
 }
}
@media (max-width: 700px) {
 .learning .lead {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .learning .lead {
  font-size: clamp(1rem, 5vw, 2rem);
 }
}
@media (max-width: 430px) {
 .learning .lead {
  font-size: clamp(1rem, 5vw, 5rem);
 }
}

.learning .over::after {
 content: "";
 width: 1px;
 display: block;
 background-color: var(--gold-light);
 position: absolute;
 left: 50%;
}
@media (min-width: 701px) {
 .learning .over::after {
  height: 120px;
  bottom: -65px;
 }
}
@media (max-width: 700px) {
 .learning .over::after {
  height: 90px;
  bottom: -45px;
 }
}

@media (max-width: 550px) {
 .learning .over::after {
  height: 80px;
  bottom: -40px;
 }
}

/*
.learning .over .arrow {
 display: block;
 background-color: var(--gold-light);
 position:relative;
 left: 50%;
}

@media only screen and (min-width: 701px){
.learning .over .arrow {
  width: 1px;height: 140px;
		bottom: -140px;
}
}

@media only screen  and (max-width: 700px){
.learning .over .arrow {
  width: 1px; height: 100px;
		bottom: -100px;
}
}

.learning .over .arrow::before {
  content:"";
  margin: 0 auto;
		display: block;
  background-color:var(--gold-light);
  position: absolute;
  -webkit-animation: arrow 2.5s ease 0s infinite normal;
  animation: arrow 2.5s ease 0s infinite normal;
}

@media only screen and (min-width: 701px){
.learning .over .arrow::before {
  width: 3px; height: 140px;
		top: -140px;right: -2px;
}
}

@media only screen  and (max-width: 700px){
.learning .over .arrow::before {
  width: 3px; height: 100px;
  top: -100px;right: -2px;
}
}


@keyframes arrow {
  0% {
    -webkit-transform: translate3d(-50%, 0, 0);
    transform: translate3d(-50%, 0, 0);
  }

  60% {
    -webkit-transform: translate3d(-50%, 100px, 0);
    transform: translate3d(-50%, 100px, 0);
  }

  100% {
    -webkit-transform: translate3d(-50%, 100px, 0);
    transform: translate3d(-50%, 100px, 0);
  }
}
*/






.learning .under {}
@media (min-width:701px) {
 .learning .under {
  background-size: cover;
  padding: 3rem 0;
  background-position: top center;
  /*background-size: cover;*/
  background-repeat: repeat-x;
  /* フォールバック */
  background-image: url('../images/leaning_bg.jpg');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/leaning_bg.webp') type('image/webp') 1x, url('../images/leaning_bg.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/leaning_bg.webp') type('image/webp') 1x, url('../images/leaning_bg.jpg') type('image/jpeg') 1x);
 }
}
@media (max-width:700px) {
 .learning .under {
  background-size: cover;
  padding: 3rem 0;
  background-position: top right;
  /*background-size: cover;*/
  background-repeat: repeat-x;
  /* フォールバック */
  background-image: url('../images/leaning_bg_sp.jpg');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/leaning_bg_sp.webp') type('image/webp') 1x, url('../images/leaning_bg_sp.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/leaning_bg_sp.webp') type('image/webp') 1x, url('../images/leaning_bg_sp.jpg') type('image/jpeg') 1x);
 }
}
.learning .ttl-block {
 width: 100%;
 margin: 3rem auto 2rem;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 text-align: center;
 position: static !important;
 background-color: transparent !important;
}
.learning .ttl-block .block-ttl {
 position: relative;
 display: inline-block;
 padding: 0 3rem;
}
@media (max-width: 640px) {
 .learning .ttl-block .block-ttl {
  padding: 0 7rem;
 }
}
@media (max-width: 480px) {
 .learning .ttl-block .block-ttl {
  padding: 0 2rem;
 }
}
.learning .ttl-block .block-ttl .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .learning .ttl-block .block-ttl .sp_view {
  display: block;
 }
}
.learning .ttl-block .block-ttl .left {
 width: 1px;
 height: 80px;
 transform: rotate(-25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: 0;
 bottom: 0;
}
.learning .ttl-block .block-ttl .left::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 left: -8px;
 bottom: 3px;
}
.learning .ttl-block .block-ttl .right {
 width: 1px;
 height: 80px;
 transform: rotate(25deg);
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: 0;
 bottom: 0;
}
.learning .ttl-block .block-ttl .right::before {
 content: "";
 width: 1px;
 height: 80px;
 background-color: #D6B992;
 display: inline-block;
 position: absolute;
 right: -8px;
 bottom: 3px;
}
.learning .details {
 display: flex;
 flex-wrap: wrap;
 gap: 2rem;
 justify-content: space-around;
}
@media only screen and (max-width: 700px) {
 .learning .details {
  margin-top: 5rem;
 }
}
.learning .details .details-box {
 display: flex;
 flex-direction: column;
 justify-content: center;
}
@media only screen and (min-width: 1001px) {
 .learning .details .details-box {
  width: calc(100% / 2 - 2rem * 1 / 2);
  max-width: 400px;
 }
}
@media only screen and (min-width: 701px) and (max-width: 1000px) {
 .learning .details .details-box {
  width: calc(100% / 2 - 2rem * 1 / 2);
  max-width: 380px;
 }
}
@media only screen and (max-width: 700px) {
 .learning .details .details-box {
  width: 80%;
  max-width: 320px;
 }
}
@media only screen and (max-width: 500px) {
 .learning .details .details-box {
  width: 100%;
 }
}
.learning .details .details-box:nth-of-type(1) {}
@media only screen and (min-width: 701px) {
 .learning .details .details-box:nth-of-type(1) {}
}
@media only screen and (max-width: 700px) {
 .learning .details .details-box:nth-of-type(1) {}
}
.learning .details .details-box:nth-of-type(2) {}
@media only screen and (min-width: 701px) {
 .learning .details .details-box:nth-of-type(2) {
  margin-top: 4rem;
 }
}
@media only screen and (max-width: 700px) {
 .learning .details .details-box:nth-of-type(2) {}
}
.learning .details .details-box:nth-of-type(3) {}
@media only screen and (min-width: 701px) {
 .learning .details .details-box:nth-of-type(3) {
  margin-left: 2rem;
 }
}
@media only screen and (max-width: 700px) {
 .learning .details .details-box:nth-of-type(3) {}
}
.learning .details .details-box:nth-of-type(4) {
 align-items: center;
}
@media only screen and (min-width: 701px) {
 .learning .details .details-box:nth-of-type(4) {
  margin-top: 3rem;
  width: calc(100% - 2rem);
 }
}
@media only screen and (min-width: 801px) and (max-width: 1000px) {
 .learning .details .details-box:nth-of-type(4) {
  max-width: 300px;
 }
}
@media only screen and (min-width: 701px) and (max-width: 800px) {
 .learning .details .details-box:nth-of-type(4) {
  max-width: 16rem;
 }
}
@media only screen and (max-width: 700px) {
 .learning .details .details-box:nth-of-type(4) {}
}
.learning .details .details-box .details-ttl {
 display: flex;
 justify-content: center;
 align-items: center;
 position: relative;
 padding: 1rem 1rem;
 color: #A47B2B;
 margin-bottom: 1.5rem;
}
@media (min-width: 1001px) {
 .learning .details .details-box .details-ttl {
  font-size: 1.65rem;
 }
}
@media (max-width: 1000px) {
 .learning .details .details-box .details-ttl {
  font-size: 1.4rem;
  text-align: center;
 }
}
@media (max-width: 700px) {
 .learning .details .details-box .details-ttl {
  font-size: clamp(1.4rem, 3.3vw, 5rem);
  min-height: 110px;
 }
}
@media (max-width: 480px) {
 .learning .details .details-box .details-ttl {
  font-size: clamp(1rem, 5vw, 2rem);
 }
}
@media (max-width: 430px) {
 .learning .details .details-box .details-ttl {
  font-size: clamp(1rem, 5vw, 5rem);
 }
}
.learning .details .details-box .details-ttl .details-ttl__over {
 position: absolute;
 width: 100%;
 height: 15px;
 left: 0;
 top: 0;
}
.learning .details .details-box .details-ttl .details-ttl__over::before, .learning .details .details-box .details-ttl .details-ttl__over::after {
 content: "";
 display: block;
 width: 15px;
 height: 15px;
 position: absolute;
}
.learning .details .details-box .details-ttl .details-ttl__over::before {
 border-top: #AAA solid 1px;
 border-left: #AAA solid 1px;
 left: 0;
 top: 0;
}
.learning .details .details-box .details-ttl .details-ttl__over::after {
 border-top: #AAA solid 1px;
 border-right: #AAA solid 1px;
 right: 0;
 top: 0;
}
.learning .details .details-box .details-ttl .details-ttl__under {
 position: absolute;
 width: 100%;
 height: 15px;
 left: 0;
 bottom: 0;
}
.learning .details .details-box .details-ttl .details-ttl__under::before, .learning .details .details-box .details-ttl .details-ttl__under::after {
 content: "";
 display: block;
 width: 15px;
 height: 15px;
 position: absolute;
}
.learning .details .details-box .details-ttl .details-ttl__under::before {
 border-top: #AAA solid 1px;
 border-left: #AAA solid 1px;
 left: 0;
 bottom: 0;
 transform: rotate(-90deg);
}
.learning .details .details-box .details-ttl .details-ttl__under::after {
 border-top: #AAA solid 1px;
 border-right: #AAA solid 1px;
 right: 0;
 bottom: 0;
 transform: rotate(90deg);
}
.learning .details .details-box .copy {
 display: flex;
 justify-content: center;
 letter-spacing: 0.01em;
}
.learning .details .details-box .copy span {
 display: inline-block;
}
@media only screen and (min-width: 1001px) {
 .learning .details .details-box .copy {
  text-align: center;
  max-width: 95%;
  margin: 0 auto;
 }
}
@media only screen and (min-width: 701px) and (max-width: 1000px) {
 .learning .details .details-box .copy {
  max-width: 85%;
  margin: 0 auto;
 }
}
@media only screen and (max-width: 700px) {
 .learning .details .details-box .copy {
  text-align: center;
  max-width: 100%;
  margin: 0 auto;
 }
}
@media only screen and (max-width: 480px) {
 .learning .details .details-box .copy {
  text-align: left;
  max-width: 100%;
  margin: 0 auto;
 }
}
/*************************************************************************************
**************************************************************************************

curriculum

**************************************************************************************
**************************************************************************************/
.curriculum {}
.curriculum__bg {}
@media (min-width:701px) {
 .curriculum__bg {
  background-size: cover;
  padding: 3rem 0;
  background-position: top center;
  /*background-size: cover;*/
  background-repeat: repeat-x;
  /* フォールバック */
  background-image: url('../images/curriculum_bg.jpg');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/curriculum_bg.webp') type('image/webp') 1x, url('../images/curriculum_bg.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/curriculum_bg.webp') type('image/webp') 1x, url('../images/curriculum_bg.jpg') type('image/jpeg') 1x);
 }
}
@media (max-width:700px) {
 .curriculum__bg {
  background-size: 100% auto;
  padding: 4rem 0;
  background-position: top center;
  /*background-size: cover;*/
  background-repeat: repeat-x;
  /* フォールバック */
  background-image: url('../images/curriculum_bg_sp.jpg');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/curriculum_bg_sp.webp') type('image/webp') 1x, url('../images/curriculum_bg_sp.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/curriculum_bg_sp.webp') type('image/webp') 1x, url('../images/curriculum_bg_sp.jpg') type('image/jpeg') 1x);
 }
}
/* セクション内で使う色変数 */
.curriculum {
 --em: #D93035; /* 赤強調 */
 --ink: #3b2f26; /* 濃い文字色 */
 --muted: #6b5a4d; /* 薄めの本文色 */
 --gold: #cfb287; /* 金色 */
 --gold-light: #D3B489; /* 薄金ボーダー */
 --panel-shadow: 0 10px 30px rgba(0, 0, 0, .08);
 overflow: hidden;
}
.curriculum .em {
 color: var(--em);
 font-weight: 700;
}
/* ===== 見出し ===== */
.curriculum__head {
 text-align: center;
 position: static !important;
 background-color: transparent !important;
 padding: 0 0 2rem;
}
.satisfaction {
 display: flex;
 justify-content: center;
}
.satisfaction p {
 position: relative;
 display: inline-block;
 padding: 0 2rem;
 margin-bottom: .5rem;
}
@media (min-width: 1001px) {
 .satisfaction p {
  font-size: 1.35rem;
 }
}
@media (max-width: 1000px) {
 .satisfaction p {
  font-size: 1.25rem;
 }
}
@media (max-width: 900px) {
 .satisfaction p {
  font-size: 1.2rem;
 }
}
@media (max-width: 700px) {
 .satisfaction p {
  font-size: clamp(1.3rem, 3.0vw, 5rem);
 }
}
@media (max-width: 480px) {
 .satisfaction p {
  font-size: clamp(1.2rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .satisfaction p {
  font-size: clamp(1.2rem, 4vw, 5rem);
 }
}
.satisfaction p span {}
.satisfaction p::before {
 content: "";
 width: 1px;
 height: 25px;
 display: inline-block;
 transform: rotate(-25deg);
 background-color: #333;
 position: absolute;
 left: 0;
 bottom: 0;
}
.satisfaction p::after {
 content: "";
 width: 1px;
 height: 25px;
 display: inline-block;
 transform: rotate(25deg);
 background-color: #333;
 position: absolute;
 right: 0;
 bottom: 0;
}
.curriculum__title {
 line-height: 2;
 letter-spacing: .06em;
 margin: 0 0;
 position: relative;
 display: inline-block;
 text-align: center;
}
@media (min-width: 1001px) {
 .curriculum__title {
  font-size: 1.7rem;
 }
}
@media (max-width: 1000px) {
 .curriculum__title {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .curriculum__title {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .curriculum__title {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .curriculum__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .curriculum__title {
  font-size: clamp(1.5rem, 4vw, 5rem);
 }
}
.curriculum__head .u-titlebar-gold {
 padding-bottom: 25px;
 /*background:
  url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 500 9.5%22%3E%3Cpolygon fill=%22%23cfb287%22 points=%22248.5 0 0 4.7 248.7 9.5 500 4.7 248.5 0%22/%3E%3C/svg%3E') center bottom / clamp(100px, 36vw, 560px) 4px no-repeat;
	*/
 background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%20238.1%203.5%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23a37b51%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cpolygon%20class%3D%22cls-1%22%20points%3D%22118.3%200%200%201.7%20118.4%203.5%20238.1%201.7%20118.3%200%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
 background-position: center bottom;
 background-size: clamp(100px, 36vw, 560px) 4px;
 background-repeat: no-repeat;
}
.curriculum__head .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .curriculum__head .sp_view {
  display: inline;
 }
}
.curriculum .lead p {
 text-align: center;
 font-weight: 500;
}
@media (min-width: 1001px) {
 .curriculum .lead p {
  font-size: 1.1rem;
 }
}
@media (max-width: 1000px) {
 .curriculum .lead p {
  font-size: 1.0rem;
 }
}
@media (max-width: 700px) {
 .curriculum .lead p {
  font-size: clamp(1.3rem, 1.2vw, 5rem);
 }
}
@media (max-width: 480px) {
 .curriculum .lead p {
  font-size: clamp(1rem, 3vw, 2rem);
 }
}
@media (max-width: 430px) {
 .curriculum .lead p {
  font-size: clamp(.7rem, 3.85vw, 5rem);
  letter-spacing: 0.001em;
 }
}
.curriculum .lead p .pc_view {
 display: inline;
}
@media (max-width: 700px) {
 .curriculum .lead p .pc_view {
  display: none;
 }
}
.curriculum .lead p .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .curriculum .lead p .sp_view {
  display: inline;
 }
}
:root {
 --c-text: #3a2e22;
 --c-accent: #cc3333;
 --c-line: #e8e3db;
 --c-bg: #F7F3EC;
 --c-chip: #E7DFC2;
}
* {
 box-sizing: border-box
}
.sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0
}
.chapters {
 margin: 2rem auto;
}
/* ---- chapter head ---- */
.chapter {
 margin-bottom: 10px
}
.chapter__head {
 position: relative;
}
@media only screen and (min-width: 701px) {
 .chapter__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--c-line);
  padding: 12px 16px;
 }
}
@media only screen and (max-width: 700px) {
 .chapter__head {
  background: #fff;
  /*
	border-top: 1px solid var(--c-line);
 border-right: 1px solid var(--c-line);
 border-left: 1px solid var(--c-line);
 border-bottom: 1px solid var(--c-line);
	*/
  padding: 12px 16px;
 }
}
.chapter__title {
 margin: 0;
 font-weight: 700
}
@media (min-width: 701px) {
 .chapter__title {
  font-size: 14px;
 }
}
@media (max-width: 700px) {
 .chapter__title {
  font-size: 14px;
 }
}
@media (max-width: 480px) {
 .chapter__title {
  font-size: 13px;
 }
}
@media (max-width: 400px) {
 .chapter__title {
  font-size: 12px;
 }
}
.chapter__no {
 color: var(--c-accent);
}
@media only screen and (min-width: 701px) {
 .chapter__no {
  margin-right: .4em
 }
}
@media only screen and (max-width: 700px) {
 .chapter__no {
  width: 45px;
  margin-right: .4em;
  display: inline-block;
 }
}
.chapter__meta {
 display: flex;
 gap: .4rem;
 flex-wrap: wrap
}
@media only screen and (min-width: 701px) {
 .chapter__meta {}
}
@media only screen and (max-width: 700px) {
 .chapter__meta {
  margin-top: 5px;
  margin-left: calc(50px + .4em);
 }
}
/* head toggle (+/−) : SPのみ表示、右端中央 */
.chapter__btn {
 position: absolute;
 right: 10px;
 /*top: 50%;
 transform: translateY(-50%);*/
 top: 15px;
 border: 0;
 background: transparent;
 cursor: pointer;
 display: none;
}
.chapter__btn::before {
 content: "＋";
 display: block;
 text-align: center;
 line-height: 22px;
 font-size: 22px;
 color: #B69B68;
}
.chapter__btn[aria-expanded="true"]::before {
 content: "－"
}
/* ---- lessons ---- */
.lesson-list {}
.lesson {
 background: var(--c-bg);
 padding: 12px 16px;
}
.lesson + .lesson {}
.lesson__row {
 display: flex;
 align-items: flex-start;
 gap: .8rem
}
.lesson__index {
 /*min-width: 2.6em;*/
 color: var(--c-accent);
 font-weight: 700;
 white-space: nowrap;
 font-size: 14px;
}
@media only screen and (max-width: 700px) {
 .lesson__index {
  width: 45px;
  margin-right: .4em;
 }
}
.lesson__index.is-sup {}
.lesson__title {
 flex: 1;
 font-size: 13px;
}
.lesson__badges {
 margin-left: auto;
 display: flex;
 gap: 5px;
}
@media only screen and (min-width: 701px) {
 .lesson__badges {}
}
@media only screen and (max-width: 700px) {
 .lesson__badges {
  padding-left: calc(50px + .4em);
  margin-top: .3rem;
 }
}
.chip {
 display: inline-block;
 line-height: 1;
 padding: .5em .7em;
 border-radius: 9999px;
 background: var(--c-chip);
 white-space: nowrap;
}
@media only screen and (min-width: 701px) {
 .chip {
  font-size: .6rem;
 }
}
@media only screen and (max-width: 700px) {
 .chip {
  font-size: .8rem;
 }
}
.lesson .chip {
 background: #FFF;
}
/* ===== SP（～700px）：トグル表示。lesson-listはJSで開閉 ===== */
@media (max-width:700px) {
 .chapter__btn {
  display: block
 }
 .lesson {
  border-bottom: #D1CFC8 solid 1px;
 }
 .lesson:first-child {
  border-top: 1px solid var(--c-line);
 }
}
/* ===== PC（701px～）：2列グリッド・常時展開・トグル非表示 ===== */
@media (min-width:701px) {
 .chapter__btn {
  display: none
 }
 .lesson-list {
  background: var(--c-bg);
  display: grid;
  grid-template-columns: 1fr 1fr;
 }
 .lesson {
  margin: 0;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border-right: #D1CFC8 solid 1px;
  border-bottom: #D1CFC8 solid 1px;
 }
 .lesson + .lesson {
  margin-top: 0
 }
}
/*************************************************************************************
**************************************************************************************

features

**************************************************************************************
**************************************************************************************/
/* ===============================
   features（特長セクション共通）
=============================== */
.features {
 --unit-gap: clamp(7rem, 10vw, 9rem); /* ユニット間の余白 */
 --plus-size: 70px; /* プラスの大きさ */
 --plus-stroke: 2px; /* 線の太さ */
 --plus-offset: 0px; /* 上下微調整（+で下/−で上） */
 --plus-shift-x: 0px; /* 左右微調整（+で右/−で左） */
 --gold-light: #D4B688; /* 茶色っぽい枠 */
 --gray: #CCC;
 --accent-red: #DA3134; /* 赤 */
 --em: #D93035; /* 赤 */
 --ink: #333300;
}
@media (min-width:901px) {
 .features {
  --unit-gap: 7rem;
 }
}
@media (max-width:900px) {
 .features {
  --plus-size: 56px;
 }
}
@media (max-width:480px) {
 .features {
  --plus-size: 56px;
 }
}
.features .em {
 color: var(--em);
}
.features__bg {}
@media (min-width:701px) {
 .features__bg {
  background-size: 1500px auto;
  padding: 3rem 0;
  background-position: top -60px center;
  background-repeat: repeat-Y;
  /* フォールバック */
  background-image: url('../images/features_bg.png');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/features_bg.webp') type('image/webp') 1x, url('../images/features_bg.png') type('image/png') 1x);
  background-image: image-set(url('../images/features_bg.webp') type('image/webp') 1x, url('../images/features_bg.png') type('image/png') 1x);
 }
}
@media (max-width:700px) {
 .features__bg {
  background-size: 120% auto;
  padding: 4rem 0;
  background-position: top -60px right;
  background-repeat: repeat-y;
  /* フォールバック */
  background-image: url('../images/features_bg_sp.png');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/features_bg_sp.webp') type('image/webp') 1x, url('../images/features_bg_sp.png') type('image/png') 1x);
  background-image: image-set(url('../images/features_bg_sp.webp') type('image/webp') 1x, url('../images/features_bg_sp.png') type('image/png') 1x);
 }
}
header.features__head {
 margin: 0 0 2.8rem;
 text-align: center;
 position: static !important;
 background-color: transparent;
}
.features__title {
 color: var(--ink);
 letter-spacing: .06em;
}
/* 外枠カード*/
.features .mm-card {
 border: 1px solid var(--gold-light);
 background: #FEFDFB;
 box-shadow: inset 0 0 0 10px #fff;
 padding: 3rem clamp(1.25rem, 3.5vw, 2.5rem);
 max-width: 100%;
 margin: 0 auto var(--unit-gap);
 position: relative;
}
/* 最終ユニットだけ下マージンを減らす */
.features .mm-unit:last-of-type .mm-card {
 margin-bottom: calc(var(--unit-gap) * 0.45);
}
/* 各ユニット間のプラス（最後のユニットは非表示） */
.features .mm-unit:not(:last-of-type) .mm-card::after {
 content: "";
 position: absolute;
 left: calc(50% + var(--plus-shift-x));
 top: calc(100% + 0.5 * var(--unit-gap) - 0.5 * var(--plus-size) + var(--plus-offset));
 transform: translateX(-50%);
 width: var(--plus-size);
 height: var(--plus-size);
 pointer-events: none;
 background:
  linear-gradient(var(--gold-light), var(--gold-light)) center / var(--plus-stroke) calc(var(--plus-size) - 12px) no-repeat, linear-gradient(var(--gold-light), var(--gold-light)) center / calc(var(--plus-size) - 12px) var(--plus-stroke) no-repeat;
 opacity: .9;
}
/* ユニット見出し*/
.features .mm-head {
 text-align: center;
 color: #3b2f26;
 letter-spacing: .06em;
 line-height: 1.85;
 margin: 0 0 2rem;
}
@media (min-width:1001px) {
 .features .mm-head {
  font-size: 1.4rem;
  margin: 0 0 4rem;
 }
}
@media (max-width:1000px) {
 .features .mm-head {
  font-size: 1.35rem;
  margin: 0 0 2rem;
 }
}
@media (max-width:700px) {
 .features .mm-head {
  font-size: clamp(1.7rem, 4vw, 1.4rem);
 }
}
@media (max-width:600px) {
 .features .mm-head {
  font-size: clamp(1.7rem, 4vw, 1.4rem);
  margin: 0 0 2rem;
 }
}
@media (max-width:480px) {
 .features .mm-head {
  font-size: clamp(1.28rem, 4vw, 1.28rem);
 }
}
@media (max-width:430px) {
 .features .mm-head {
  font-size: clamp(1.45rem, 4vw, 1.1rem);
 }
}
.features .mm-head__kicker {
 margin-bottom: .9rem;
}
/* マルチライン下線 */
.features .mm-head .u-ml-underline {
 display: inline;
 padding: 0 4px 4px;
 background: linear-gradient(to bottom, transparent 0, transparent calc(100% - .75px), var(--gray) calc(100% - .75px), var(--gray) 100%);
 -webkit-box-decoration-break: clone;
 box-decoration-break: clone;
 font-weight: 700;
}
.features .sp_view {
 display: none;
}
@media (max-width: 900px) {
 .features .sp_view {
  display: block;
 }
}
/* ===============================
   #1 mm-learnings（中身）
=============================== */
/* ステップ全体：PC=2列×2行(body+foot / media)、SP=1列×3行(body / media / foot) */
.mm-learnings .mm-step {
 position: relative; /* 縦ライン用 */
 display: grid;
 grid-template-columns: 1fr minmax(260px, 360px);
 grid-template-rows: auto auto;
 grid-template-areas:
  "body  media"
  "foot  media";
 gap: clamp(1rem, 3vw, 2rem);
}

@media (min-width:901px) {
 .mm-learnings .mm-step {
  padding-bottom: 2rem;
 }
}

@media (max-width:900px) {
 .mm-learnings .mm-step {
  padding: clamp(1rem, 3vw, 1.5rem) 0;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
   "body"
   "media"
   "foot";
 }
}
/* 縦ライン（途中で切れない） */
.mm-learnings .mm-step::before {
 content: "";
 position: absolute;
 left: 45px;
 top: 0;
 bottom: 0;
 width: 2px;
 background: var(--accent-red);
}
@media (max-width:900px) {
 .mm-learnings .mm-step::before {
  display: none;
 }
}
.mm-learnings .mm-step:first-of-type {
 border-top: none;
}
.mm-learnings .mm-step__body {
 grid-area: body;
 display: flex;
 gap: 1rem;
 align-items: center;
}
@media (min-width:901px) {
 .mm-learnings .mm-step__body {
  max-height: 90px;
 }
}
@media (max-width:900px) {
 .mm-learnings .mm-step__body {
  margin-bottom: .5rem;
 }
}
.mm-learnings .mm-step__media {
 grid-area: media;
	align-self: start;
}


/* クリックまでの軽量プレースホルダー */
.yt-lite{
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 6px;
  overflow: hidden;
  background: #000 center/cover no-repeat;
  cursor: pointer;
  isolation: isolate; /* iOSの重なり問題の保険 */
}

/* デフォルト */
.yt-lite{ 
}  

@media (min-width:901px){
  .yt-lite{ 
   aspect-ratio: 15.5/9;
   background-size: cover;
   background-color:transparent;
		 border: #DDD solid 1px;
		 border-radius: 20px;
		}         
}

/* SPは4:3 */
@media (max-width:900px){
  .yt-lite{ 
		aspect-ratio: 6/3;
		border: #DDD solid 1px;
		border-radius: 20px;
		}         
}

/* 再生ボタン */
.yt-lite::after{
  content:"";
  position:absolute;
  inset:0;
  /*background:
    radial-gradient(circle at center, rgba(0,0,0,.18) 0%, rgba(0,0,0,.18) 30%, transparent 31%) center/100% 100% no-repeat;*/
  pointer-events:none;
}
.yt-lite__btn{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:68px; height:48px;
  border:0; border-radius:12px;
  background: rgba(255,0,0,.92);
  display:grid; place-items:center;
}
.yt-lite__btn::before{
  content:"";
  display:block;
  width:0; height:0;
  border-left:18px solid #fff;
  border-top:12px solid transparent;
  border-bottom:12px solid transparent;
  margin-left:3px;
}
.yt-lite:hover .yt-lite__btn{ filter:brightness(1.05); }

/* 読み込み後のiframe */
.yt-iframe{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  border:0; display:block;
}







/* YouTube：レスポンシブ */
.video-frame {
 /*max-width: min(1000px, 92vw); */
 margin: 0 auto;
}
@media (min-width: 1051px) {
 .video-frame {
  max-width: 1000px;
 }
}
@media (max-width: 1050px) {
 .video-frame {
  padding-right: 0;
  padding-left: 0;
 }
}
.yt-wrapper {
 /*aspect-ratio: 16/9;*/
 aspect-ratio: 16/9;
 /*background:#2a2a2a;*/
 border-radius: 6px;
 /*box-shadow:0 8px 24px rgba(0,0,0,.18);*/
 overflow: hidden;
}
.yt-wrapper > iframe {
 width: 100%;
 height: 100%;
 border: 0;
 display: block;
}
/* 動画iframeの枠線リセット */
.video-sec .yt-wrapper > iframe {
 border: 0 !important; /* 他CSSを上書き */
 outline: none; /* クリック時のフォーカス枠も消す */
 display: block; /* 余白防止の保険 */
 width: 100%;
 height: 100%;
}




















.mm-learnings .mm-step__foot {
 grid-area: foot;
}
@media (min-width:901px) {
 .mm-learnings .mm-step__foot {
  padding-left: 100px;
  margin-top: -30px;
 }
}
/* 丸バッジ */
.mm-learnings .mm-step__badge {
 flex: 0 0 90px;
 height: 90px;
 border-radius: 50%;
 background: var(--accent-red);
 color: #fff;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 line-height: 1;
}
.mm-learnings .mm-step__txt {
 font-size: 12px;
 letter-spacing: .15em;
 margin-bottom: .25rem;
 font-weight: 700;
}
.mm-learnings .mm-step__num {
 font-family: "Bodoni Moda", serif;
 font-optical-sizing: auto;
 font-weight: 400;
 font-style: normal;
 font-size: 30px;
 letter-spacing: .02em;
}
@media (max-width:900px) {
 .mm-learnings .mm-step__badge {
  flex-basis: 72px;
  height: 72px;
 }
 .mm-learnings .mm-step__num {
  font-size: 26px;
 }
}
/* 本文・見出し */
.mm-learnings .mm-step__text {
 color: var(--ink);
}
.mm-learnings .mm-step__lead {
 font-weight: 700;
 letter-spacing: .04em;
}
@media (min-width:1001px) {
 .mm-learnings .mm-step__lead {
  font-size: 1.3rem;
 }
}
@media (max-width:1000px) {
 .mm-learnings .mm-step__lead {
  font-size: 1.3rem;
 }
}
@media (max-width:700px) {
 .mm-learnings .mm-step__lead {
  font-size: clamp(1.6rem, 4vw, 1.4rem);
 }
}
@media (max-width:600px) {
 .mm-learnings .mm-step__lead {
  font-size: clamp(1.6rem, 4vw, 1.4rem);
 }
}
@media (max-width:480px) {
 .mm-learnings .mm-step__lead {
  font-size: clamp(1.23rem, 4vw, 1.28rem);
 }
}
@media (max-width:430px) {
 .mm-learnings .mm-step__lead {
  font-size: clamp(1.4rem, 4vw, 1.1rem);
 }
}
.mm-learnings .mm-step__lead-kicker {
 padding: 0 .1em;
}
/* フッタ（チップ＋説明） */
.mm-learnings .mm-chips {
 display: flex;
 flex-wrap: wrap;
 gap: .35rem .8rem;
 margin: 0 0 .8rem;
 padding: 0;
 list-style: none;
}
@media (max-width:600px) {
 .mm-learnings .mm-chips {
  margin: 0 0 .5rem;
 }
}
.mm-learnings .mm-chip {
 display: inline-flex;
 align-items: center;
 gap: .45rem;
 border: none;
 background: none;
 padding: 0;
 font-size: .9rem;
}
.mm-learnings .mm-chip__label {
 border-radius: 999px;
 padding: .4rem .6rem;
 font-size: .78rem;
 line-height: 1.2;
 background: #DACBAA;
 font-weight: 700;
}
.mm-learnings .mm-chip__plain {
 font-size: .9rem;
 letter-spacing: .02em;
}
.mm-learnings .mm-step__desc {
 line-height: 1.9;
 font-size: clamp(.92rem, 1.5vw, 1rem);
}
/* 動画プレースホルダー */
.mm-learnings .mm-step__media {}
.mm-learnings .mm-video {
 aspect-ratio: 4/3;
 background: #f0f0f0;
 display: grid;
 place-items: center;
 color: #888;
 font-weight: 700;
 letter-spacing: .2em;
}
@media (min-width:901px) {
 .mm-learnings .mm-video {
  margin-bottom: 3rem;
 }
}
.mm-learnings .mm-video span {
 transform: translateY(-1px);
}
/* ===============================
   #2 mm-followup（フォローアップメール）
=============================== */
.mm-followup .mm-head {
 position: relative;
}
.mm-followup .mm-head::after {
 content: "";
 display: block;
}
.mm-followup .mf-grid {
 display: grid;
 grid-template-columns: 1fr minmax(260px, 360px); /* テキスト左 / 画像右 */
 gap: clamp(1rem, 3vw, 2rem);
 align-items: center;
}
@media (max-width:900px) {
 .mm-followup .mf-grid {
  grid-template-columns: 1fr;
 }
}
.mm-followup .mf-catch {
 color: var(--ink);
 line-height: 1.9;
 letter-spacing: .06em;
 margin: 0 0 1rem;
}
.mm-followup .mf-catch {
 font-weight: 700;
 letter-spacing: .04em;
}
@media (min-width:1001px) {
 .mm-followup .mf-catch {
  font-size: 1.3rem;
 }
}
@media (max-width:1000px) {
 .mm-followup .mf-catch {
  font-size: 1.3rem;
 }
}
@media (max-width:700px) {
 .mm-followup .mf-catch {
  font-size: clamp(1.6rem, 4vw, 1.4rem);
 }
}
@media (max-width:600px) {
 .mm-followup .mf-catch {
  font-size: clamp(1.6rem, 4vw, 1.4rem);
 }
}
@media (max-width:480px) {
 .mm-followup .mf-catch {
  font-size: clamp(1.23rem, 4vw, 1.28rem);
 }
}
@media (max-width:430px) {
 .mm-followup .mf-catch {
  font-size: clamp(1.4rem, 4vw, 1.1rem);
 }
}
.mm-followup .mf-catch .em {
 letter-spacing: .18em;
}
.mm-followup .mf-catch__sub {
 font-weight: 700;
}
.mm-followup .mf-meta {
 list-style: none;
 padding: 0;
 margin: 0 0 1rem;
 display: flex;
 gap: .9rem 1.2rem;
 flex-wrap: wrap;
}
.mm-followup .mf-chip {
 display: inline-flex;
 align-items: center;
 gap: .6rem;
}
.mm-followup .mf-chip__label {
 border-radius: 999px;
 padding: .4rem 1rem;
 font-size: .78rem;
 line-height: 1.2;
 background: #DACBAA;
 font-weight: 700;
}
.mm-followup .mf-chip__plain {
 font-size: .95rem;
 letter-spacing: .02em;
}
.mm-followup .mf-desc {
 line-height: 1.9;
 font-size: clamp(.95rem, 1.5vw, 1.05rem);
 color: var(--ink);
}
.mm-followup .mf-media {
 margin: 0;
}
.mm-followup .mf-photo {
 aspect-ratio: 4/3;
 background: #f0f0f0;
 border: 1px solid #e0e0e0;
 border-radius: 4px;
 display: grid;
 place-items: center;
 color: #888;
 font-weight: 700;
 letter-spacing: .2em;
}
.mm-followup .mf-photo span {
 transform: translateY(-1px);
}
.mm-followup img {
 width: 100%;
 height: auto;
 border-radius: 4px;
 display: block;
}
/* ===============================
   #3 mm-groupsupport（mm-followup と同じ：テキスト左／画像右）
=============================== */
.mm-unit.mm-groupsupport {
 position: relative;
}
.mm-groupsupport .mg-grid {
 display: grid;
 grid-template-columns: 1fr minmax(260px, 360px); /* テキスト左 / 画像右 */
 gap: clamp(1rem, 3vw, 2rem);
 align-items: center;
}
@media (max-width:900px) {
 .mm-groupsupport .mg-grid {
  grid-template-columns: 1fr;
 }
}
/* 左：テキスト */
.mm-groupsupport .mg-badge {
 display: inline-block;
 position: absolute;
}
@media (min-width:901px) {
 .mm-groupsupport .mg-badge {
  left: 3rem;
  top: 4rem;
 }
}
@media (max-width:900px) {
 .mm-groupsupport .mg-badge {
  left: -5px;
  top: -10px;
 }
}
.mm-groupsupport .mg-badge span {
 display: inline-block;
 background: var(--accent-red);
 color: #fff;
 padding: .6rem 1.8rem;
 box-shadow: 0 4px 0 rgba(0, 0, 0, .08);
 font-weight: 700;
 letter-spacing: .12em;
 font-size: .95rem;
}
.mm-groupsupport .mg-catch {
 color: var(--ink);
 line-height: 1.9;
 letter-spacing: .06em;
 margin: 0 0 2rem;
 font-weight: 700;
}
@media (min-width:1001px) {
 .mm-groupsupport .mg-catch {
  font-size: 1.3rem;
 }
}
@media (max-width:1000px) {
 .mm-groupsupport .mg-catch {
  font-size: 1.3rem;
 }
}
@media (max-width:700px) {
 .mm-groupsupport .mg-catch {
  font-size: clamp(1.6rem, 4vw, 1.4rem);
  margin-bottom: 1.5rem;
 }
}
@media (max-width:600px) {
 .mm-groupsupport .mg-catch {
  font-size: clamp(1.6rem, 4vw, 1.4rem);
  margin-bottom: 1.5rem;
 }
}
@media (max-width:480px) {
 .mm-groupsupport .mg-catch {
  font-size: clamp(1.23rem, 4vw, 1.28rem);
  margin-bottom: 1.5rem;
 }
}
@media (max-width:430px) {
 .mm-groupsupport .mg-catch {
  font-size: clamp(1.4rem, 4vw, 1.1rem);
  margin-bottom: 2rem;
 }
}
.mm-groupsupport .mg-meta {
 list-style: none;
 padding: 0;
 margin: 0 0 1rem;
 display: flex;
 gap: .9rem 1.2rem;
 flex-wrap: wrap;
}
.mm-groupsupport .mg-chip {
 display: inline-flex;
 align-items: center;
 gap: .6rem;
}
.mm-groupsupport .mg-chip__label {
 border-radius: 999px;
 padding: .4rem 1rem;
 font-size: .78rem;
 line-height: 1.2;
 background: #DACBAA;
 font-weight: 700;
}
.mm-groupsupport .mg-chip__plain {
 font-size: .95rem;
 letter-spacing: .02em;
}
.mm-groupsupport .mg-desc {
 line-height: 1.9;
 font-size: clamp(.95rem, 1.5vw, 1.05rem);
 color: var(--ink);
}
/* 右：画像 */
.mm-groupsupport .mg-media {
 margin: 0;
}
.mm-groupsupport img {
 width: 100%;
 height: auto;
 display: block;
 border-radius: 4px;
}
/* ===============================
   「さらに・・・」
=============================== */
.features__more {
 text-align: center;
 color: var(--ink);
 letter-spacing: .12em;
 line-height: 1.2;
 margin: calc(var(--unit-gap) * 0.6) 0 calc(var(--unit-gap) * 0.15);
 font-size: clamp(1.5rem, 2.6vw, 1.6rem);
}
/* 必要ならSPだけ少し詰める */
@media (max-width: 900px) {
 .features__more {
  margin-top: calc(var(--unit-gap) * 0.6);
 }
}
/*************************************************************************************
**************************************************************************************

event

**************************************************************************************
**************************************************************************************/
/* ===============================
   event（特長セクション共通）
=============================== */
.event {
 --accent-red: #DA3134; /* 赤 */
 --em: #D93035; /* 赤 */
 --ink: #333300;
}
.event .em {
 color: var(--em);
}
.event .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .event .sp_view {
  display: inline;
 }
}
.event .pc_view {
 display: inline;
}
@media (max-width: 700px) {
 .event .pc_view {
  display: none;
 }
}
.event__bg {}
@media (min-width:701px) {
 .event__bg {
  background-size: cover;
  background-position: top center;
  background-repeat: repeat-x;
  /* フォールバック */
  background-image: url('../images/event_bg.jpg');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/event_bg.webp') type('image/webp') 1x, url('../images/event_bg.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/event_bg.webp') type('image/webp') 1x, url('../images/event_bg.jpg') type('image/jpeg') 1x);
 }
}
@media (max-width:700px) {
 .event__bg {
  background-size: 100% auto;
  background-position: top center;
  background-repeat: repeat-y;
  /* フォールバック */
  background-image: url('../images/event_bg_sp.jpg');
  /* WebP優先（1xだけ） */
  background-image: -webkit-image-set(url('../images/event_bg_sp.webp') type('image/webp') 1x, url('../images/event_bg_sp.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/event_bg_sp.webp') type('image/webp') 1x, url('../images/event_bg_sp.jpg') type('image/jpeg') 1x);
 }
}
/* ===============================
   block layout
=============================== */
.event__inner {
 padding-top: 4rem;
 padding-bottom: 4rem;
}
.event__stack {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: clamp(2rem, 2.8vw, 2rem);
}
/* ===============================
   headings
=============================== */
header.event__head {
 text-align: center;
 position: static !important;
 background-color: transparent;
	z-index: 1;
}
.event__title {
 font-weight: 700;
 /*font-size: clamp(1.6rem, 3.2vw, 2.3rem);*/
 letter-spacing: .06em;
 line-height: 1.5;
 color: var(--ink);
 margin-bottom: 2rem;
}
@media (min-width:1001px) {
 .event__title {
  font-size: 1.9rem;
 }
}
@media (max-width:1000px) {
 .event__title {
  font-size: 1.9rem;
 }
}
@media (max-width:700px) {
 .event__title {
  font-size: clamp(2rem, 4vw, 1.4rem);
 }
}
@media (max-width:600px) {
 .event__title {
  font-size: clamp(2.3rem, 4vw, 1.4rem);
 }
}
@media (max-width:480px) {
 .event__title {
  font-size: clamp(1.8rem, 4vw, 1.28rem);
 }
}
@media (max-width:430px) {
 .event__title {
  font-size: clamp(1.8rem, 6vw, 1.1rem);
 }
}
@media (max-width:400px) {
 .event__title {
  font-size: clamp(1.8rem, 6vw, 1.1rem);
 }
}
.event__lead {
 margin-top: .6rem;
 /*font-size: clamp(.95rem, 2.2vw, 1.05rem);*/
 line-height: 1.9;
 color: var(--ink);
 font-weight: 500;
}
/* ===============================
   list with red check
=============================== */
.event__list {
 display: flex;
 gap: clamp(1.25rem, 3vw, 2.25rem);
 margin: 0;
 padding: 0;
}
.event__list li {
 list-style: none;
 position: relative;
 padding-left: 28px; /* 18pxアイコン + 余白 */
 line-height: 1.9;
 font-size: clamp(.98rem, 2.2vw, 1.05rem);
 color: var(--ink);
 font-weight: 700;
}
.event__list li::before {
 content: "";
 position: absolute;
 left: 0;
 top: .55em;
 width: 18px;
 height: 18px;
 background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2025.1%2019.4%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20none%3B%20stroke%3A%20%23cd3234%3B%20stroke-miterlimit%3A%2010%3B%20stroke-width%3A%205px%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cpolyline%20class%3D%22cls-1%22%20points%3D%2223.4%201.8%209.2%2015.8%201.8%208.1%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
 background-position: center center;
 background-repeat: no-repeat;
 background-size: contain;
}
@media (max-width:700px) {
 .event__list {
  /*flex-direction:column;*/
  gap: .25rem;
  align-self: stretch;
  justify-content: center;
  flex-wrap: wrap;
 }
}
/* ===============================
   photo
=============================== */
.event__photo {
 width: 100%;
}
.event__photo picture, .event__photo img {
 display: block;
 margin: 0 auto;
 height: auto;
}
@media (min-width:901px) {
 .event__photo img {
  width: max(100%, 900px);
 }
}
@media (max-width:900px) {
 .event__photo img {
  max-width: 100%;
 }
}
@media (max-width:700px) {
 .event__photo img {
  max-width: 400px;
  width: 100%;
 }
}
/* ===============================
   message / CTA
=============================== */
.event__msg {
 text-align: center;
 font-size: clamp(1.2rem, 4vw, 1.5rem);
 line-height: 2;
 color: var(--ink);
}
@media (min-width:1001px) {
 .event__msg {
  font-size: 1.4rem;
 }
}
@media (max-width:1000px) {
 .event__msg {
  font-size: 1.35rem;
 }
}
@media (max-width:700px) {
 .event__msg {
  font-size: clamp(1.9rem, 4vw, 1.4rem);
 }
}
@media (max-width:600px) {
 .event__msg {
  font-size: clamp(1.8rem, 4vw, 1.4rem);
 }
}
@media (max-width:480px) {
 .event__msg {
  font-size: clamp(1.28rem, 4vw, 1.28rem);
 }
}
@media (max-width:430px) {
 .event__msg {
  font-size: clamp(1.3rem, 4vw, 1.1rem);
  font-weight: 900;
 }
}
.event__cta {
 width: 100%;
 display: flex;
 justify-content: center;
}
.event__btn {
 display: flex;
 justify-content: center;
 align-items: center;
 padding: 0 1rem;
 width: 450px;
 /*min-height: 65px;*/
 background: rgba(46, 32, 12, .65);
 color: #fff;
 text-decoration: none;
 font-weight: 700;
 font-size: clamp(.95rem, 2.2vw, 1.05rem);
}
@media (min-width:701px) {
 .event__btn {
  width: 450px;
  height: 60px;
  line-height: 1;
 }
}
@media (max-width:700px) {
 .event__btn {
  max-width: 400px;
  min-height: 80px;
  text-align: center;
  font-size: clamp(1.45rem, 4vw, 1.25rem);
  line-height: 1.6;
 }
}
@media (max-width:480px) {
 .event__btn {
  font-size: clamp(.6rem, 4vw, 1.1rem);
		max-width: 100%;
  min-height: 80px;
 }
}
/*************************************************************************************
**************************************************************************************

special（受講者限定の特別案内）

**************************************************************************************
**************************************************************************************/
/* ===============================
   section base
=============================== */
.special {
 --ink: #2f2a24;
 --gold: #c9ad6a;
 --gold-deep: #a98a4c;
 --rose: #e85a63; /* CTA系アクセント（赤寄り） */
 --paper: #f7f4ee; /* パネル背景色イメージ */
 --gold-1: #efe6d2; /* 明るい金（左端/右端） */
 --gold-2: #e3c796; /* 中間の淡金 */
 --gold-3: #cfa766; /* 中央付近の濃い金 */
  z-index: 0;
  position: relative;	
}
.special .em {
 color: var(--gold);
}
.em--goldgrad {
 display: inline-block; /* テキスト幅にフィット */
 background: linear-gradient(90deg, var(--gold-1) 0%, var(--gold-2) 34%, var(--gold-3) 50%, var(--gold-2) 66%, var(--gold-1) 100%);
 background-size: 100% 100%; /* X軸全体に均一配分 */
 -webkit-background-clip: text;
 background-clip: text;
 -webkit-text-fill-color: transparent; /* Safari含む */
 color: transparent; /* 予備 */
}
/* タイトルに括弧を擬似要素で付与（本文と離れない） */
.special__title {
 /* 配置は親レイアウト側で制御。ここでは折り返し可のまま */
 letter-spacing: .06em;
 line-height: 1.3;
 position: relative;
 width: 100%;
 display: block;
}
.special__title::before, .special__title::after {
 color: #f1e9d8; /* 象牙色 */
 font: inherit; /* フォント・太さを継承 */
}
/*
.special__title::before{
  content: "{";
  margin-right: .35em;
}
.special__title::after{
  content: "}";
  margin-left: .35em;
}
*/
.special .sp_view {
 display: none;
}
@media (max-width:700px) {
 .special .sp_view {
  display: inline;
 }
}
.special .pc_view {
 display: inline;
}
@media (max-width:700px) {
 .special .pc_view {
  display: none;
 }
}
/* ===============================
   #1 ヒーロー
=============================== */
/*
.special__hero{
  background: #938779;
  background-image: -webkit-image-set(
    url('../images/cmm_bg.webp') type('image/webp') 1x,
    url('../images/cmm_bg.png') type('image/png') 1x
  );
  background-image: image-set(
    url('../images/cmm_bg.webp') type('image/webp') 1x,
    url('../images/cmm_bg.png') type('image/png') 1x
  );
  background-size: cover;
	 background-repeat: no-repeat;
  background-position: center bottom;
  padding: clamp(2.5rem, 6vw, 5rem) 0 2rem;
}
*/
.special__hero {
 /* ベース色 */
 background-color: #938779;
 /* 1) 最低限フォールバック */
 background-image:
  url('../images/special_bg5.png'), /* 上：重ねる装飾 */ url('../images/cmm_bg.png'); /* 下：ベース */
 /* 2) Safari向け -webkit-image-set（2レイヤー） */
 background-image:
  -webkit-image-set(url('../images/special_bg5.webp') type('image/webp') 1x, url('../images/special_bg5.png') type('image/png') 1x), -webkit-image-set(url('../images/cmm_bg.webp') type('image/webp') 1x, url('../images/cmm_bg.png') type('image/png') 1x);
 /* 3) 標準 image-set（2レイヤー） */
 background-image:
  image-set(url('../images/special_bg5.webp') type('image/webp') 1x, url('../images/special_bg5.png') type('image/png') 1x), image-set(url('../images/cmm_bg.webp') type('image/webp') 1x, url('../images/cmm_bg.png') type('image/png') 1x);
 /* レイヤーごとのプロパティ（左が上, 右が下）*/
 background-repeat: no-repeat, no-repeat;
 background-size: contain, cover;
 background-position: center 10%, right bottom;
 padding: clamp(2.5rem, 6vw, 5rem) 0 2rem;
}
@media (min-width:1801px) {
 .special__hero {
  background-repeat: no-repeat, no-repeat;
  background-size: contain, cover;
  background-position: right bottom 15rem, center bottom;
 }
}
@media only screen and (min-width: 1501px)and (max-width: 1800px) {
 .special__hero {
  background-repeat: no-repeat, no-repeat;
  background-size: 90% auto, cover;
  background-position: right -5rem bottom 20rem, center bottom;
 }
}
@media only screen and (min-width: 1401px)and (max-width: 1500px) {
 .special__hero {
  background-repeat: no-repeat, no-repeat;
  background-size: 110% auto, cover;
  background-position: right -5rem top 15%, center bottom;
 }
}
@media only screen and (min-width: 1301px)and (max-width: 1400px) {
 .special__hero {
  background-repeat: no-repeat, no-repeat;
  background-size: 120% auto, cover;
  background-position: right -10rem top 10%, center bottom;
 }
}
@media only screen and (min-width: 1151px)and (max-width: 1300px) {
 .special__hero {
  background-repeat: no-repeat, no-repeat;
  background-size: 120% auto, cover;
  background-position: right -10rem top 30%, center bottom;
 }
}
@media (max-width:1150px) {
 .special__hero {
  /* 地色 */
  background-color: #938779;
  /* 1) フォールバック（PNG：上=画像 / 下=帯） */
  background-image:
   url('../images/cmm_bg_sp.png'), linear-gradient(to bottom, transparent calc(100% - 10rem), #6D6253 calc(100% - 10rem), #6D6253 100%);
  /* 2) Safari用（-webkit-image-set）：順序は同じ */
  background-image:
   -webkit-image-set(url('../images/cmm_bg_sp.webp') type('image/webp') 1x, url('../images/cmm_bg_sp.png') type('image/png') 1x), linear-gradient(to bottom, transparent calc(100% - 10rem), #6D6253 calc(100% - 10rem), #6D6253 100%);
  background-image:
   image-set(url('../images/cmm_bg_sp.webp') type('image/webp') 1x, url('../images/cmm_bg_sp.png') type('image/png') 1x), linear-gradient(to bottom, transparent calc(100% - 18rem), #6D6253 calc(100% - 18rem), #6D6253 100%);
  /* レイヤー別プロパティ（1=画像 / 2=帯） */
  background-repeat: no-repeat, no-repeat;
  background-size: contain, cover;
  background-position: right bottom, center bottom;
  padding: 4rem 0 3rem;
 }
}
.special__inner {}
.special__heroStack {
 position: relative; /* 女性画像の基準 */
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: clamp(1rem, 2.8vw, 2rem);
}
header.special__head {
 color: var(--ink);
 position: static !important;
 background-color: transparent;
 gap: 1rem;
 display: flex;
 flex-direction: column;
 justify-content: center;
 text-align: center;
}
.special__sup {
 letter-spacing: .08em;
	color: #FFF;
}
.special__title {
 font-weight: 700;
 line-height: 1.4;
 letter-spacing: .06em;
 margin-bottom: .5rem;
}
@media (min-width:1001px) {
 .special__title {
  font-size: 1.9rem;
 }
}
@media (max-width:1000px) {
 .special__title {
  font-size: 1.9rem;
 }
}
@media (max-width:700px) {
 .special__title {
  font-size: clamp(2.3rem, 4vw, 1.4rem);
 }
}
@media (max-width:600px) {
 .special__title {
  font-size: clamp(2.3rem, 4vw, 1.4rem);
 }
}
@media (max-width:480px) {
 .special__title {
  font-size: clamp(2.0rem, 4vw, 1.28rem);
 }
}
@media (max-width:430px) {
 .special__title {
  font-size: clamp(1.9rem, 6vw, 1.1rem);
 }
}
@media (max-width:400px) {
 .special__title {
  font-size: clamp(1.8rem, 6vw, 1.1rem);
 }
}
.special__lead {
color: #FFF;
}
@media (min-width:1001px) {
 .special__lead {
  font-size: 1.4rem;
 }
}
@media (max-width:1000px) {
 .special__lead {
  font-size: 1.3rem;
 }
}
@media (max-width:700px) {
 .special__lead {
  font-size: clamp(1.5rem, 2vw, 1.4rem);
 }
}
@media (max-width:600px) {
 .special__lead {
  font-size: clamp(1.5rem, 2vw, 1.4rem);
 }
}
@media (max-width:480px) {
 .special__lead {
  font-size: clamp(1.25rem, 2vw, 1.4rem);
 }
}
@media (max-width:430px) {
 .special__lead {
  font-size: clamp(1.45rem, 2vw, 1.4rem);
 }
}
@media (max-width:400px) {
 .special__lead {
  font-size: clamp(1.4rem, 2vw, 1.4rem);
 }
}
/* =========================================
   about_cmm：外枠ボーダー + 透明10px溝 + 白パネル
========================================= */
.about_cmm {
 position: relative;
 /*margin: clamp(1.5rem, 3.5vw, 2.5rem) auto 0;*/
 padding: 10px; /* ← ここが “透明の溝” */
 background: transparent;
 border: 1px solid rgba(168, 140, 85, .55); /* 外枠（鈍い金） */
 width: 100%;
}
.about_cmm__body {
 background: rgba(247, 244, 238, .85);
 position: relative;
 z-index: 2;
}
@media (min-width:1001px) {
 .about_cmm__body {
  padding: clamp(4rem, 3vw, 3rem) clamp(4.5rem, 3vw, 3rem);
 }
}
@media (max-width:1000px) {
 .about_cmm__body {
  padding: clamp(3rem, 3vw, 3rem) clamp(3rem, 3vw, 3rem);
 }
}
@media (max-width:480px) {
 .about_cmm__body {
  padding: clamp(3rem, 3vw, 3rem) clamp(2rem, 3vw, 2rem);
 }
}
@media (max-width:400px) {
 .about_cmm__body {
  padding: clamp(3rem, 3vw, 3rem) clamp(2rem, 3vw, 2rem);
 }
}
/* 内側の細い金ライン*/
.about_cmm__body::before {
 content: "";
 position: absolute;
 inset: clamp(.6rem, 1.6vw, .9rem);
 border: 1px solid rgba(201, 173, 106, .50);
 pointer-events: none;
}
/* タイトル：左右ヘアラインを端まで（グリッド方式） */
.about_cmm__ttl {
 width: 100%;
 margin: 0 0 clamp(1rem, 2.6vw, 1.4rem);
 display: grid;
 grid-template-columns: 1fr auto 1fr; /* 左線 | テキスト | 右線 */
 align-items: center;
 column-gap: clamp(.8rem, 2vw, 1.2rem);
 color: #2f2a24;
 font-weight: 700;
 letter-spacing: .06em;
 font-size: clamp(1.4rem, 4vw, 1.6rem);
 position: relative;
 z-index: 1; /* 内側の装飾線より前に出す保険 */
}
.about_cmm__ttl::before, .about_cmm__ttl::after {
 content: "";
 height: 1px;
 background: rgba(201, 173, 106, .85); /* 細金ライン */
}
.about_cmm__ttl > span {
 grid-column: 2;
 padding: 0 .2em; /* 文字左右の僅かな逃げ */
 white-space: nowrap; /* ← 見出しは折り返さない */
}
/* リード */
.about_cmm__lead {
 display: flex;
 justify-content: center;
 /*margin: 0 auto clamp(1.2rem, 3.2vw, 1.8rem);*/
 /*max-width: 48ch;*/
 /*text-align: center;*/
 color: var(--ink);
 line-height: 2;
}
@media (min-width:1001px) {
 .about_cmm__lead {
  font-size: clamp(.95rem, 2.1vw, 1.05rem);
 }
}
@media (max-width:700px) {
 .about_cmm__lead {
  font-size: clamp(1.2rem, 3vw, 1.05rem);
 }
}
@media (max-width:480px) {
 .about_cmm__lead {
  font-size: clamp(1.05rem, 3vw, 1.05rem);
 }
}
@media (max-width:400px) {
 .about_cmm__lead {
  font-size: clamp(1rem, 2.1vw, 1.05rem);
 }
}
.about_cmm__lead span {
 display: inline-block;
}
@media only screen and (min-width: 700px) {
 .about_cmm__lead span {
  text-align: center;
 }
}
/* 三連サークル画像 */
.about_cmm__figure {
 margin: 1rem auto 0;
 width: 100%;
 max-width: 980px;
 display: flex;
 justify-content: center;
 text-align: center;
}
.about_cmm__figure picture, .about_cmm__figure img {
 display: block;
 width: 100%;
 height: auto;
 margin: 0 auto;
}
@media (min-width:551px) and (max-width:700px) {
 .about_cmm__figure picture, .about_cmm__figure img {
  width: 90%;
 }
}
/* 但し書き（右下） */
.about_cmm__note {
 margin-top: clamp(.8rem, 2.4vw, 1rem);
 text-align: right;
 color: #8c7b63;
 font-size: clamp(.75rem, 1.6vw, .85rem);
 letter-spacing: .02em;
}
.special__panel {
 width: 100%;
 max-width: 1000px;
}
.special__panel img {
 display: block;
 width: 100%;
 height: auto;
}
.special__catch__wrapper {}
@media only screen and (min-width: 1151px) {
 .special__catch__wrapper {
  max-width: 1000px;
  width: 100%;
  padding: 0 2rem 0 2rem;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  margin: 0 auto;
 }
}
@media only screen and (max-width: 1150px) {
 .special__catch__wrapper {
  width: 100%;
  padding: 0 0 0 0;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
  min-height: 230px;
 }
}
@media only screen and (max-width: 480px) {
 .special__catch__wrapper {
  justify-content: flex-start;
  min-height: 150px;
  padding: 2rem 2rem 0 2rem;
 }
}
.special__catch {
 /*color: var(--ink);*/
	color: #FFF;
 text-align: center;
 font-size: clamp(1.5rem, 2.4vw, 1.2rem);
 letter-spacing: .06em;
 line-height: 1.9;
 margin-top: 2rem;
 position: relative;
 padding: 0 3rem;
}
@media only screen and (min-width: 1151px) {
 .special__catch {
  margin-bottom: 2.5rem;
 }
}
@media only screen and (max-width: 1150px) {
 .special__catch {
  display: inline-block;
  z-index: 1;
 }
}
@media only screen and (max-width: 850px) {
 .special__catch {
  padding: 2rem 0 0 0;
  margin-top: 0;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
 }
}
@media only screen and (max-width: 700px) {
 .special__catch {
  font-size: clamp(1.7rem, 2vw, 1.4rem);
  line-height: 1.7;
 }
}
@media only screen and (max-width: 600px) {
 .special__catch {
  font-size: clamp(2.2rem, 2vw, 1.4rem);
  margin-left: -10rem;
  margin-bottom: 2.5rem;
 }
}
@media only screen and (max-width: 480px) {
 .special__catch {
  font-size: clamp(1.5rem, 2vw, 1.4rem);
  padding-left: 2rem;
  margin-left: 0;
  padding-top: 0;
 }
}
@media only screen and (max-width: 400px) {
 .special__catch {
  font-size: clamp(1.5rem, 2vw, 1.4rem);
 }
}
@media only screen and (max-width: 350px) {
 .special__catch {
  font-size: clamp(1.5rem, 2vw, 1.4rem);
 }
}
.special__catch .left {
 width: 1px;
 height: 80px;
 transform: rotate(-25deg);
 /*background-color: var(--ink);*/
	background-color: #FFF;
 display: inline-block;
 position: absolute;
 left: 0;
 bottom: 0;
}
@media only screen and (max-width: 850px) {
 .special__catch .left {
  display: none;
 }
}
.special__catch .left::before {
 content: "";
 width: 1px;
 height: 80px;
 /*background-color: var(--ink);*/
	background-color: #FFF;
 display: inline-block;
 position: absolute;
 left: -8px;
 bottom: 3px;
}
@media only screen and (max-width: 850px) {
 .special__catch .left::before {
  display: none;
 }
}
.special__catch .right {
 width: 1px;
 height: 80px;
 transform: rotate(25deg);
 /*background-color: var(--ink);*/
	background-color: #FFF;
 display: inline-block;
 position: absolute;
 right: 0;
 bottom: 0;
}
@media only screen and (max-width: 850px) {
 .special__catch .right {
  display: none;
 }
}
.special__catch .right::before {
 content: "";
 width: 1px;
 height: 80px;
 /*background-color: var(--ink);*/
	background-color: #FFF;
 display: inline-block;
 position: absolute;
 right: -8px;
 bottom: 3px;
}
@media only screen and (max-width: 850px) {
 .special__catch .right::before {
  display: none;
 }
}
.special__catch .small_view {}
@media only screen and (min-width: 651px) {
 .special__catch .small_view {
  display: none;
 }
}
@media only screen and (max-width: 650px) {
 .special__catch .small_view {
  display: inline-block;
 }
}
/* 女性画像（PC：パネル右背面／SP：キャッチ付近） */
.special__woman {
 width: min(30vw, 420px);
 height: auto;
 pointer-events: none;
 z-index: 1; /* パネルの下に回り込ませたい場合は panel を z-index:1 へ */
 position: relative;
}
@media only screen and (min-width: 1151px) {
 .special__woman {
  display: none;
 }
}
.special__panel {
 position: relative;
 z-index: 1;
}
@media (max-width:1150px) {
 .special__woman {
  width: 350px;
  z-index: 0;
  margin-bottom: -6.5rem;
  position: absolute;
  right: -5;
 }
 .special__panel {
  z-index: 1;
 }
}
@media (max-width:1150px) {
 .special__woman {
  width: 400px;
  z-index: 0;
  margin-bottom: -2rem;
  position: absolute;
  right: -6.55vw;
 }
}
@media (max-width:1070px) {
 .special__woman {
  right: -3vw;
 }
}
@media (max-width:1000px) {
 .special__woman {
  width: min(60vw, 400px);
  right: -3rem;
 }
}
@media (max-width:600px) {
 .special__woman {
  width: min(56vw, 360px);
  right: 0;
 }
}
@media (max-width:480px) {
 .special__woman {
  width: 20rem;
 }
}
/* ===============================
   #2 カルーセル（流れる）
=============================== */
.special__carousel {
 /*padding: 0 0 clamp(1.8rem, 3.6vw, 2.4rem);*/
	padding: 0  0 2rem;
 position: relative;
 z-index: 10;
}

@media (max-width:530px) {
 .special__carousel {
  padding: 0  0 .5rem;
 }
}

@media (max-width:480px) {
 .special__carousel {
  padding: 0  0;
 }
}

/*IOSバグ*/
_::-webkit-full-page-media, _:future, :root .special__carousel {
	padding: 0 0 2rem;
}

/* slick がトラックを作るので block/hidden だけ */
.special__carousel .special__carouselRail {
 display: block;
 overflow: hidden;
 will-change: transform;
}
/* 余白は padding で作る（幅計算は slick に任せる） */
.special__carousel .special__slide {
 padding: 0 .375rem;
}
.special__carousel .special__slide img {
 display: block;
 width: 100%;
 height: auto;
 /* 必要なら固定比率に： */
 /* aspect-ratio: 4/3; object-fit: cover; */
}
/* 初期化前のチラつき防止 */
.special__carousel .js-special-carousel:not(.slick-initialized) {
 visibility: hidden;
}
.special__cmm_join {
 padding: 2rem 0;
}

@media (max-width: 400px) {
.special__cmm_join {
 padding: 0 0 2rem;
	z-index: 100;
 position: relative;
}

/*IOSバグ*/
_::-webkit-full-page-media, _:future, :root .special__cmm_join {
	padding: 2rem 0 0;
}
}

.special__cmm_join .special__inner {
 display: flex;
 justify-content: center;
 text-align: center;
 color: #CEB58E;
}
.special__cmm_join .sp_view {
 display: none;
}
@media (max-width: 900px) {
 .special__cmm_join .sp_view {
  display: block;
 }
}
.special__cmm_join .sp_smallview {
 display: none;
}
@media (max-width: 480px) {
 .special__cmm_join .sp_smallview {
  display: block;
 }
}
.special__cmm_join .special__carouselLead {
 font-weight: 700;
 line-height: 1.6;
 letter-spacing: .06em;
 margin-bottom: .5rem;
}
@media (min-width:1001px) {
 .special__cmm_join .special__carouselLead {
  font-size: 1.8rem;
 }
}
@media (max-width:1000px) {
 .special__cmm_join .special__carouselLead {
  font-size: 1.8rem;
 }
}
@media (max-width:700px) {
 .special__cmm_join .special__carouselLead {
  font-size: clamp(1.9rem, 4vw, 1.4rem);
		 margin-bottom: 1rem;
 }
}
@media (max-width:600px) {
 .special__cmm_join .special__carouselLead {
  font-size: clamp(1.9rem, 4vw, 1.4rem);
		margin-bottom: 1rem;
 }
}
@media (max-width:480px) {
 .special__cmm_join .special__carouselLead {
  font-size: clamp(1.4rem, 4vw, 1.28rem);
		margin-bottom: .5rem;
 }
}
@media (max-width:430px) {
 .special__cmm_join .special__carouselLead {
  font-size: clamp(1.4rem, 6vw, 1.1rem);
		margin-bottom: .5rem;
 }
}
@media (max-width:400px) {
 .special__cmm_join .special__carouselLead {
  font-size: clamp(1.35rem, 6vw, 1.0rem);
		margin-bottom: .5rem;
 }
}

/*IOSバグ*/
_::-webkit-full-page-media, _:future, :root .special__cmm_join .special__carouselLead  {
	margin: 1.5rem 0 .5rem;
}


/*********************
#3 CTA
**********************/
/* セクション本体：擬似要素に背景を描き、その背景だけをくり抜く */
.special__cta {
 position: relative;
 overflow: visible; /* 擬似要素がはみ出しても見えるように */
 padding: 0 0 clamp(2rem, 5vw, 3rem);
}
@media (min-width:701px) {
 .special__cta {
  margin-top: -14px;
 }
}
@media (max-width:700px) {
 .special__cta {
  margin-top: -12px;
 }
}
/* 背景は ::before に描画。ここを clip-path で“底辺中央をV字に凹ませる” */
.special__cta::before {
 content: "";
 position: absolute;
 inset: 0;
 z-index: 2; /* 帯より前面（穴から帯が見える） */
 pointer-events: none;
 /* 背景（PC。必要に応じてSPで上書き） */
 background-color: #6d5f51;
 background-image: url('../images/special_cta_bg.jpg');
 background-image: -webkit-image-set(url('../images/special_cta_bg.webp') type('image/webp') 1x, url('../images/special_cta_bg.jpg') type('image/jpeg') 1x);
 background-image: image-set(url('../images/special_cta_bg.webp') type('image/webp') 1x, url('../images/special_cta_bg.jpg') type('image/jpeg') 1x);
 background-repeat: no-repeat;
 background-size: cover;
 background-position: center top;
 /* ▼ 上辺中央をV字に“くり抜く”（幅=28px, 深さ=14px） */
 -webkit-clip-path: polygon(0 0, calc(50% - 14px) 0, 50% 14px, calc(50% + 14px) 0, 100% 0, 100% 100%, 0 100%);
 clip-path: polygon(0 0, calc(50% - 14px) 0, 50% 14px, calc(50% + 14px) 0, 100% 0, 100% 100%, 0 100%);
}
.special__ctaBottom {
 position: relative;
 z-index: 1;
}
/* SP：背景差し替え＋ノッチ浅め（12px） */
@media (max-width:700px) {
 .special__cta::before {
  background-image: url('../images/special_cta_bg_sp.jpg');
  background-image: -webkit-image-set(url('../images/special_cta_bg_sp.webp') type('image/webp') 1x, url('../images/special_cta_bg_sp.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/special_cta_bg_sp.webp') type('image/webp') 1x, url('../images/special_cta_bg_sp.jpg') type('image/jpeg') 1x);
  /* ▼ 上辺中央をV字に“くり抜く”（幅=28px, 深さ=12px） */
  -webkit-clip-path: polygon(0 0, calc(50% - 12px) 0, 50% 12px, calc(50% + 12px) 0, 100% 0, 100% 100%, 0 100%);
  clip-path: polygon(0 0, calc(50% - 12px) 0, 50% 12px, calc(50% + 12px) 0, 100% 0, 100% 100%, 0 100%);
 }
}
/* ピンク帯はフラットのまま。前面の背景が“凹む”ので覗ける */
.special__ctaBottom {
 position: relative;
 z-index: 10;
 width: 100%;
 text-align: center;
 padding: clamp(1rem, 3vw, 1.4rem) clamp(1rem, 4vw, 2rem);
}
/* 万一の残骸を無効化 */
.special__ctaBottom::before, .special__ctaBottom::after {
 content: none !important;
}
/*************************************************************************************
**************************************************************************************

voice

**************************************************************************************
**************************************************************************************/
.voice {
 --em: #C8413C; /* 赤強調 */
 --ink: #333300; /* 濃い文字色 */
 --muted: #6b5a4d; /* 薄め本文色 */
 --gold: #cfb287; /* 金色 */
 --gold-light: #D3B489; /* 薄金ボーダー */
 /*--panel-shadow:0 10px 30px rgba(0,0,0,.08);*/
}
/* ===== 見出し ===== */
.voice__head {
 text-align: center;
 position: static !important;
 background-color: transparent !important;
 padding: 5rem 0 2rem;
}
.voice__title {
 line-height: 2;
 letter-spacing: .06em;
 margin: 0 0 2rem;
 position: relative;
 display: inline-block;
 text-align: center;
}
@media (min-width: 1001px) {
 .voice__title {
  font-size: 1.7rem;
 }
}
@media (max-width: 1000px) {
 .voice__title {
  font-size: 1.5rem;
 }
}
@media (max-width: 900px) {
 .voice__title {
  font-size: 1.4rem;
 }
}
@media (max-width: 700px) {
 .voice__title {
  font-size: clamp(1.4rem, 3.5vw, 5rem);
 }
}
@media (max-width: 480px) {
 .voice__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
 }
}
@media (max-width: 400px) {
 .voice__title {
  font-size: clamp(1.5rem, 4vw, 5rem);
 }
}
.voice__head .u-titlebar-gold {
 padding-bottom: 30px;
 background:
  url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 500 9.5%22%3E%3Cpolygon fill=%22%23cfb287%22 points=%22248.5 0 0 4.7 248.7 9.5 500 4.7 248.5 0%22/%3E%3C/svg%3E') center bottom / clamp(100px, 36vw, 560px) 4px no-repeat;
}
.voice__head .sp_view {
 display: none;
}
@media (max-width: 700px) {
 .voice__head .sp_view {
  display: inline;
 }
}
.voice-list {
 display: grid;
 /*gap:clamp(18px,2.4vw,28px);*/
 gap: clamp(2.4rem, 2.2vw, 2.6rem);
 margin-bottom: 4rem;
}
/* ===== card（SPレイアウト） ===== */
.voice-card {
 position: relative;
 border: 1px solid var(--em);
 background: #F9F5EF;
 box-shadow: var(--panel-shadow);
 /*padding:clamp(14px,2.8vw,22px) clamp(14px,2.8vw,24px);*/
 padding: clamp(2rem, 3.3vw, 2.7rem);
 display: grid;
 grid-template-columns: clamp(92px, 24vw, 130px) 1fr;
 grid-template-areas:
  "thumb profile"
  "body  body";
 column-gap: clamp(10px, 2vw, 14px);
 row-gap: 8px;
 align-items: start;
}
/* バッジ */
.voice-card__badge {
 position: absolute;
 /*top:-12px; 
	 right:clamp(10px,2.2vw,16px);*/
 top: 0;
 right: -1px;
 background: var(--em);
 color: #fff;
 font-size: .85rem;
 line-height: 1;
 padding: .38em .66em .5em;
 border-radius: 0;
 font-family: "Zen Old Mincho", serif;
 font-weight: 600;
 font-style: normal;
}
/* 写真（丸抜き） */
.voice-card__thumb {
 grid-area: thumb;
}
.voice-card__thumb img {
 width: clamp(92px, 24vw, 180px);
 aspect-ratio: 1/1;
 object-fit: cover;
 border-radius: 50%;
}
/* プロフィール（SPは左寄せ） */
.voice-card__profile {
 grid-area: profile;
 align-self: center;
}
.voice-card__name {
 font-weight: 700;
 letter-spacing: .02em;
 margin: 0;
}
.voice-card__name .age {
 font-weight: 500;
}
.voice-card__job {
 font-size: .85rem;
 color: var(--em);
 margin: .18rem 0 0;
 line-height: 1.6;
 font-weight: 500;
}
/* 本文側 */
.voice-card__body {
 grid-area: body;
 color: var(--ink);
}
/* イントロ＋波線（テキスト幅に合わせる） */
.voice-card__intro {
 display: inline-block;
 margin: 4px 0 0;
 font-weight: 700;
 letter-spacing: .05em;
 line-height: 1.9;
}
.voice-card__intro .voice-card__wave {
 display: block;
 height: 12px;
 margin: .22rem 0 .8rem;
 background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='12' viewBox='0 0 160 12'%3E%3Cpath d='M0,8 Q4,2 8,8 T16,8 T24,8 T32,8 T40,8 T48,8 T56,8 T64,8 T72,8 T80,8 T88,8 T96,8 T104,8 T112,8 T120,8 T128,8 T136,8 T144,8 T152,8 T160,8' fill='none' stroke='%23D93035' stroke-width='1' stroke-linecap='round'/%3E%3C/svg%3E") left center / auto 12px repeat-x;
}
/* リード：▶︎▶︎を背景で、2行目が潜らない */
.voice-card__lead {
 --kagi-w: 25px; /* ▶︎▶︎の横幅（2つ合計） */
 --kagi-h: 15px; /* 高さ */
 --kagi-gap: .35em;
 --kagi-y: .7em; /* 縦位置微調整 */
 color: var(--em);
 font-weight: 800;
 font-size: clamp(1.05rem, 3.4vw, 1.35rem);
 line-height: 1.8;
 letter-spacing: .01em;
 background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 12'%3E%3Cpath d='M0 0 L10 6 L0 12 Z' fill='%23C8413C'/%3E%3Cpath d='M12 0 L22 6 L12 12 Z' fill='%23C8413C'/%3E%3C/svg%3E") no-repeat 0 var(--kagi-y) / var(--kagi-w) var(--kagi-h);
 padding-left: calc(var(--kagi-w) + var(--kagi-gap));
}
.voice-card__text {
 color: var(--ink);
 line-height: 1.9;
 margin-top: .45rem;
 font-weight: 500;
}
.voice-card__text p {
 font-size: 90%;
}
.pc-br {
 display: none;
}
/* ===== PC(>=701px)：odd/even 切替 + 間隔を極小化 ===== */
@media (min-width:701px) {
 .pc-br {
  display: inline;
 }
 .voice-card {
  /* ★ここでthumbとprofileの間を制御する */
  --aside-gap: 12px; /* 写真とプロフィールの“見える隙間” */
  row-gap: var(--aside-gap);
  column-gap: 25px;
  /*padding:clamp(16px,2.6vw,24px) clamp(18px,2.8vw,28px);*/
  padding: clamp(2.3rem, 3.3vw, 2.7rem);
 }
 /* odd：左＝固定幅 / 右＝可変 */
 .voice-card:nth-child(odd) {
  grid-template-columns: minmax(180px, 220px) 1fr;
  grid-template-areas:
   "thumb   body"
   "profile body";
 }
 /* even：左＝可変 / 右＝固定幅 */
 .voice-card:nth-child(even) {
  grid-template-columns: 1fr minmax(180px, 220px);
  grid-template-areas:
   "body thumb"
   "body profile";
 }
 /* ★中央揃え */
 .voice-card__thumb {
  justify-self: center; /* 水平中央 */
  align-self: end; /* 行の下端に寄せる → 余白を消す */
  margin: 0;
 }
 .voice-card__profile {
  justify-self: center; /* 水平中央 */
  /*text-align:center;*/
  align-self: start; /* 次の行の上端に付ける */
  margin: 0; /* 既定の余白を消す */
 }
 /* バッジの左右切替 */
 .voice-card:nth-child(odd) .voice-card__badge {
  right: -1px;
  left: auto;
 }
 .voice-card:nth-child(even) .voice-card__badge {
  left: -1px;
  right: auto;
 }
}
/********************************************************
  Representative Profile
*********************************************************/
.rep-profile {
 /* セクション内で使う色（必要に応じて変更OK） */
 --em: #D93035; /* 強調色（赤） */
 --ink: #333333; /* 濃い文字色 */
 --muted: #6b5a4d; /* サブ文字色 */
 --gold: #C09D72; /* 金色 */
 --gold-dark: #A07B3A; /* 濃い金色 */
 --gold-light: #D3B489; /* 薄金（額縁） */
}
.rep-profile_bg {
 /* フォールバック（まずJPGを指定） */
 background-color: #f4efe7;
 background-image: url('../images/rep_profile_bg.jpg');
 background-position: center;
 background-size: cover;
 background-repeat: no-repeat;
 /* セクション上下余白はラッパーに付与 */
 padding-block: clamp(36px, 8vw, 72px);
}
/* Safari古め対応（-webkit-image-set） */
@supports (background-image: -webkit-image-set(url("") 1x)) {
 .rep-profile_bg {
  background-image: -webkit-image-set(url('../images/rep_profile_bg.webp') 1x, url('../images/rep_profile_bg.jpg') 1x);
 }
}
/* 標準 image-set（WebP優先） */
@supports (background-image: image-set(url("") type("image/webp") 1x)) {
 .rep-profile_bg {
  background-image: image-set(url('../images/rep_profile_bg.webp') type("image/webp") 1x, url('../images/rep_profile_bg.jpg') type("image/jpeg") 1x);
 }
}
/* ラッパー */
.rep-profile__inner {}
/* レイアウト */
.rep-profile__wrap {
 display: grid;
 gap: clamp(20px, 3vw, 40px);
}
/* ===== 写真 ===== */
.rep-profile__figure {
 position: relative;
 z-index: 1;
}
.rep-profile__photo {
 position: relative;
 display: block;
 overflow: visible;
}
/* 写真ブロック：ボックスシャドウを右下にズラして敷く */
.rep-profile__photo {
 --mat-offset: 8px; /* 右＆下へのズレ量*/
 position: relative;
 display: block;
 background: #a8242b; /* 画像の赤背景に馴染む保険色 */
 /* ボーダーは使わない。右下へズレた“無ぼかし”の影を敷く */
 box-shadow: var(--mat-offset) var(--mat-offset) 0 0 var(--gold-light);
 /* ↑  [offset-x] [offset-y] [blur=0] [spread=0] [color] */
 overflow: visible;
}
.rep-profile__photo img {
 display: block;
 width: 100%;
 aspect-ratio: 3 / 4;
 object-fit: cover;
}
.rep-profile__photo img {
 display: block;
 width: 100%;
 aspect-ratio: 3 / 4; /* 縦長を強制：画像比率に合わせ調整可 */
 object-fit: cover;
}
/* ===== テキスト ===== */
.rep-profile__text {
 color: var(--ink);
}
/* アイブロウ（小見出し） */
.rep-profile__eyebrow {
 color: var(--gold);
 font-weight: 700;
 letter-spacing: .05em;
 font-size: clamp(1.1rem, 1.8vw, 1.35rem);
 margin: 0 0 .75rem;
 position: relative;
}
.rep-profile__eyebrow span {
 display: inline-block;
}
.rep-profile__eyebrow span::after {
 content: "";
 display: block;
 /*width: clamp(56px, 7vw, 88px);*/
 height: 2px;
 background: var(--gold);
 margin-top: .6rem;
}
/* 氏名 */
.rep-profile__name {
 display: flex;
 align-items: baseline;
 gap: clamp(10px, 2vw, 16px);
 margin: 0 0 .75rem;
}
.rep-profile__name .jp {
 font-family: inherit;
 font-weight: 800;
 font-size: clamp(2rem, 3.1vw, 2rem);
 letter-spacing: .04em;
 margin-top: 1rem;
}
.rep-profile__name .jp em {
 color: var(--em);
 font-style: normal;
}
.rep-profile__name .en {
 color: var(--em);
 font-weight: 700;
 font-size: clamp(.9rem, 1.4vw, 1rem);
 letter-spacing: .12em;
}
/* 会社・役職 */
.rep-profile__role {
 color: var(--gold-dark);
 margin: 0 0 1.25rem;
 line-height: 1.9;
}
/* 本文 */
.rep-profile__desc p {
 margin: 0;
 line-height: 2;
 color: var(--ink);
}
/* リンク（> 赤） */
.rep-profile__link {
 margin-top: 1.0rem;
}
.arrow-link {
 color: var(--em);
 font-weight: 800;
 text-decoration: none;
 display: inline-flex;
 align-items: baseline;
 gap: .35em; /* 矢印と文字の間 */
}
.arrow-link::before {
 content: "";
 width: 1.05em;
 height: 1.05em;
 flex: 0 0 auto;
 background-color: var(--em);
 -webkit-mask: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' shape-rendering='geometricPrecision'>\
  <path d='M4 4 L20 12 L4 20' fill='none' stroke='black' stroke-width='4' stroke-linecap='square' stroke-linejoin='miter'/>\
</svg>") center / contain no-repeat;
 mask: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' shape-rendering='geometricPrecision'>\
  <path d='M4 4 L20 12 L4 20' fill='none' stroke='black' stroke-width='4' stroke-linecap='square' stroke-linejoin='miter'/>\
</svg>") center / contain no-repeat;
 transform: translateY(0.15em); /* ベースライン微調整 */
}
/* =======================
   レスポンシブ
======================= */
/* SP（〜700px）：左＝テキスト群、右＝写真 → 下段に本文＆リンク */
@media (max-width:700px) {
  .sp-br {
    display: none;
  }
  /* 2カラムの明示エリアグリッド（テキスト⇄写真を中央寄せ） */
  .rep-profile__wrap {
    display: grid;
    grid-template-columns: 1fr clamp(120px, 32vw, 160px);
    grid-template-rows: auto auto auto auto auto;
    grid-template-areas:
      "eyebrow photo"
      "name    photo"
      "role    photo"
      "desc    desc"
      "link    link";
    column-gap: 16px;
    row-gap: 5px;
    align-items: center;         /* ← 縦中央寄せ（全アイテムのデフォルト） */
  }

  /* ★テキストの中身を外側グリッドに参加させる */
  .rep-profile__text {
    display: contents;
  }

  /* 各パーツ（左カラム）は自分の行の中で縦中央に */
  .rep-profile__eyebrow {
    grid-area: eyebrow;
    margin: 0;
    align-self: center;
  }
  .rep-profile__name {
    grid-area: name;
    margin: 0;
    flex-direction: column;      /* JP/ENは縦積み */
    align-items: flex-start;
    gap: .35rem;
    align-self: center;          /* ← 縦中央 */
  }
  .rep-profile__role {
    grid-area: role;
    margin: 0;                   /* 余白でズレないように0 */
    color: var(--gold-dark);
    align-self: center;          /* ← 縦中央 */
  }

  /* 写真は3行ぶち抜きエリア内で縦横中央に */
  .rep-profile__figure {
    grid-area: photo;
    justify-self: center;        /* 右寄せにしたければ end に変更 */
    align-self: center;          /* ← 縦中央 */
    width: clamp(120px, 32vw, 160px);
    margin: 0;
  }

  /* 本文とリンクは下段で全幅 */
  .rep-profile__desc {
    grid-area: desc;
    margin-top: .7rem;
  }
  .rep-profile__link {
    grid-area: link;
    margin-top: 1rem;
  }

  .rep-profile .sp_view {
    display: inline-block;
  }
}
/* PC（701px〜） */
@media (min-width:701px) {
 .rep-profile__wrap {
  grid-template-columns: 1fr minmax(250px, 42%);
  /*align-items: center;*/
  align-items: flex-start;
 }
 .rep-profile__figure {
  justify-self: end;
  width: clamp(250px, 36vw, 520px);
 }
 .rep-profile .sp_view {
  display: none;
 }
}
@media (min-width:901px) {
 .rep-profile__wrap {
  grid-template-columns: 1fr minmax(360px, 42%);
  /*align-items: center;*/
  align-items: flex-start;
 }
 .rep-profile__figure {
  justify-self: end;
  width: clamp(360px, 36vw, 520px);
 }
 .rep-profile .sp_view {
  display: none;
 }
}
@media (min-width:1151px) {
 .rep-profile__figure {
  justify-self: end;
  width: clamp(360px, 400px, 520px);
 }
}


/*********************
CTA
**********************/
.rep__cta {
 position: relative;
 overflow: visible;
 padding: 0 0 clamp(2rem, 5vw, 3rem);
}
@media (min-width:701px) {
 .rep__cta {
  margin-top: -14px;
 }
}
@media (max-width:700px) {
 .rep__cta {
  margin-top: -12px;
 }
}
.rep__cta::before {
 content: "";
 position: absolute;
 inset: 0;
 z-index: 2;
 pointer-events: none;
 background-color: #6d5f51;
 background-image: url('../images/special_cta_bg.jpg');
 background-image: -webkit-image-set(url('../images/special_cta_bg.webp') type('image/webp') 1x, url('../images/special_cta_bg.jpg') type('image/jpeg') 1x);
 background-image: image-set(url('../images/special_cta_bg.webp') type('image/webp') 1x, url('../images/special_cta_bg.jpg') type('image/jpeg') 1x);
 background-repeat: no-repeat;
 background-size: cover;
 background-position: center top;
}
.rep__ctaBottom {
 position: relative;
 z-index: 1;
}
@media (max-width:700px) {
 .rep__cta::before {
  background-image: url('../images/special_cta_bg_sp.jpg');
  background-image: -webkit-image-set(url('../images/special_cta_bg_sp.webp') type('image/webp') 1x, url('../images/special_cta_bg_sp.jpg') type('image/jpeg') 1x);
  background-image: image-set(url('../images/special_cta_bg_sp.webp') type('image/webp') 1x, url('../images/special_cta_bg_sp.jpg') type('image/jpeg') 1x);
 }
}
.rep__ctaBottom {
 position: relative;
 z-index: 10;
 width: 100%;
 text-align: center;
 padding: clamp(1rem, 3vw, 1.4rem) clamp(1rem, 4vw, 2rem);
}
/* 万一の残骸を無効化 */
.rep__ctaBottom::before, .rep__ctaBottom::after {
 content: none !important;
}


/*************************************************************************************
**************************************************************************************

faq

**************************************************************************************
**************************************************************************************/
.faq {}
.faq__bg {}
@media (min-width:701px) {
  .faq__bg {
			 padding-bottom: 4rem;
    /*background-size: cover;*/
    background-size: auto 1000px; /* ← 高さを固定気味に */
    background-position: top left;
    background-repeat: repeat-x;
    /* フォールバック */
    background-image: url('../images/faq_bg.jpg');
    /* WebP優先（1xだけ） */
    background-image: -webkit-image-set(
      url('../images/faq_bg.webp') type('image/webp') 1x,
      url('../images/faq_bg.jpg')  type('image/jpeg') 1x
    );
    background-image: image-set(
      url('../images/faq_bg.webp') type('image/webp') 1x,
      url('../images/faq_bg.jpg')  type('image/jpeg') 1x
    );
  }
}
@media (max-width:700px) {
  .faq__bg {
			 padding-bottom: 4rem;
    background-size: auto 1000px;
    background-position: top right;
    background-repeat: repeat-x;
    /* フォールバック */
    background-image: url('../images/faq_bg.jpg');
    /* WebP優先（1xだけ） */
    background-image: -webkit-image-set(
      url('../images/faq_bg.webp') type('image/webp') 1x,
      url('../images/faq_bg.jpg')  type('image/jpeg') 1x
    );
    background-image: image-set(
      url('../images/faq_bg.webp') type('image/webp') 1x,
      url('../images/faq_bg.jpg')  type('image/jpeg') 1x
    );
  }
}
/* セクション内で使う色変数 */
.faq {
  --em: #D93035;         /* 赤強調 */
  --ink: #330000;        /* 濃い文字色 */
  --muted: #6b5a4d;      /* 薄めの本文色 */
  --gold: #cfb287;       /* 金色 */
  --gold-light: #D3B489; /* 薄金ボーダー */
  --panel-shadow: 0 10px 30px rgba(0, 0, 0, .08);
  overflow: hidden;
}
.faq .em {
  color: var(--em);
  font-weight: 700;
}
/* ===== 見出し ===== */
.faq__head {
  text-align: center;
  position: static !important;
  background-color: transparent !important;
  padding: 0 0 2rem;
}

/* ===== Accordion ===== */
.faq-accordion{
  /*margin-top: clamp(16px, 3vw, 28px);*/
  display: grid;
  /*gap: 12px;*/
}

/* Q行（ヘッダー） */
.faq-item__toggle{
  width: 100%;
  display: grid;
  grid-template-columns: 64px 1fr 40px;   /* Q丸 / 文言 / +アイコン */
  align-items: center;
  gap: 14px;
  padding: 24px 20px;
  background: #fff;
  /*border: 1px solid var(--gold-light);*/
	 border-top: none;
	 border-right: none;
	 border-bottom: #CCC solid 1px;
	 border-left: none;
  /*box-shadow: var(--panel-shadow);*/
  text-align: left;
  color: var(--ink);
  font-size: clamp(1rem, 1.6vw, 1.125rem);
  line-height: 1.8;
  cursor: pointer;
  transition: background .2s ease;
}
.faq-item__toggle:hover{ background:#fffdf9; }

/* 左のQ丸 */
.faq-item__qbadge{
  width: 48px; height: 48px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 2px solid var(--em);
  color: var(--em);
  font-weight: 700;
  font-family: "Bodoni Moda", serif;
  font-weight: 600;
  font-style: normal;
}

/* 右の + / − アイコン（CSS線） */
.faq-item__icon{
  position: relative;
  width: 24px; height: 24px;
  justify-self: end;
  color: var(--gold);
}
.faq-item__icon::before,
.faq-item__icon::after{
  content:"";
  position:absolute; inset:0; margin:auto;
  width: 18px; height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: transform .25s cubic-bezier(.2,0,0,1),
              opacity   .25s cubic-bezier(.2,0,0,1);
}
.faq-item__icon::after{ transform: rotate(90deg); }
.faq-item.is-open .faq-item__icon::after{
  opacity:0; transform: rotate(90deg) scaleX(0);
}

/* パネル（高さはJSで数値アニメ。CSSではヒントのみ） */
.faq-item__panel{
  height: 0;
  overflow: hidden;
  will-change: height;
}

/* A行の中身（フェード＋微スライドで質感UP） */
.faq-item__answer{
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 14px;
  align-items: start;
  background: rgba(255,255,255,0);
  padding: 20px 24px;

  opacity: 0;
  transform: translateY(-4px);
  transition:
    opacity   .28s cubic-bezier(.2,0,0,1),
    transform .28s cubic-bezier(.2,0,0,1);
}
.faq-item.is-open .faq-item__answer{
  opacity: 1;
  transform: translateY(0);
}

.faq-item__abadge{
  width: 48px; height: 48px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--em); color:#fff;
  font-family: "Bodoni Moda", serif;
  font-weight: 800;
}
.faq-item__qtext{ 
	letter-spacing:.04em;
 font-family: "Zen Old Mincho", serif;
 font-weight: 700;
}
.faq-item__atext{ color: var(--ink); line-height:2; }

@media (max-width:700px){
  .faq-item__toggle{ grid-template-columns: 56px 1fr 32px; padding: 18px 16px; }
  .faq-item__answer{ grid-template-columns: 56px 1fr; padding: 16px; }
  .faq-item__qbadge, .faq-item__abadge{ width:44px; height:44px; }
}

/* フォーカス可視化 */
.faq-item__toggle:focus-visible{
  outline:2px solid var(--em);
  outline-offset:2px;
}

/*************************************************************************************
**************************************************************************************

greeting

**************************************************************************************
**************************************************************************************/
.greeting {}
.greeting__bg {}
@media (min-width:701px) {
  .greeting__bg {
    padding:4rem 0 4rem;
    background-size: cover;
    background-position: top left;
    background-repeat: repeat-x;
    /* フォールバック */
    background-image: url('../images/greeting_bg.jpg');
    /* WebP優先（1xだけ） */
    background-image: -webkit-image-set(
      url('../images/greeting_bg.webp') type('image/webp') 1x,
      url('../images/greeting_bg.jpg')  type('image/jpeg') 1x
    );
    background-image: image-set(
      url('../images/greeting_bg.webp') type('image/webp') 1x,
      url('../images/greeting_bg.jpg')  type('image/jpeg') 1x
    );
  }
}
@media (max-width:700px) {
  .greeting__bg {
    padding:4rem 0 4rem;
    background-size: cover;
    background-position: top right;
    background-repeat: repeat-x;
    /* フォールバック */
    background-image: url('../images/greeting_bg.jpg');
    /* WebP優先（1xだけ） */
    background-image: -webkit-image-set(
      url('../images/greeting_bg.webp') type('image/webp') 1x,
      url('../images/greeting_bg.jpg')  type('image/jpeg') 1x
    );
    background-image: image-set(
      url('../images/greeting_bg.webp') type('image/webp') 1x,
      url('../images/greeting_bg.jpg')  type('image/jpeg') 1x
    );
  }
}
/* セクション内で使う色変数 */
.greeting {
  --em: #D93035;         /* 赤強調 */
  --ink: #330000;        /* 濃い文字色 */
  --muted: #6b5a4d;      /* 薄めの本文色 */
  --gold: #cfb287;       /* 金色 */
  --gold-light: #D3B489; /* 薄金ボーダー */
  --panel-shadow: 0 10px 30px rgba(0, 0, 0, .08);
  overflow: hidden;
}
.greeting .em { color: var(--em); font-weight: 700; }

/* ===== セクション内の共通余白（内側だけ調整） ===== */
.greeting__inner{
  /*padding-block: clamp(28px, 6vw, 56px);*/
}

/* ===== レイアウト ===== */
.greeting__wrap{
  display: grid;
  gap: clamp(20px, 5vw, 64px);
  align-items: start;
}

/* PC：画像＋テキストの2カラム */
@media (min-width:851px){
  .greeting__wrap{
    grid-template-columns: minmax(260px, 420px) 1fr;
  }
}

/* SP：縦積み（画像→テキスト） */
@media (max-width:850px){
  .greeting__wrap{
    grid-template-columns: 1fr;
  }
}

/* ===== 写真 ===== */
.greeting__photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
}
@media (max-width:850px){
  .greeting__photo{
    max-width: 520px;
    margin-inline: auto; /* 画像を中央に */
  }
}

/* ===== テキスト ===== */
.greeting__content{ color: var(--ink); }
.greeting__lead{
  font-weight: 700;
  margin: 0 0 1rem;
}
.greeting__text p{
  margin: 0 0 1.2rem;
  line-height: 2;
  color: var(--ink);
}

/* サイン（右寄せ・画像） */
.greeting__sign{
  margin: 3rem 0 0;
  text-align: right;
}

@media (max-width:850px){
  .greeting__sign{
    margin: 3.5rem 0 2rem;
  }
}

.greeting__sign img{
  width: clamp(120px, 12vw, 220px);
  height: auto;
}

/* CTA（汎用のまま・セクション内の余白だけ付与） */
.greeting .cta-area{ margin-top: clamp(24px, 6vw, 56px); }




/*************************************************************************************
**************************************************************************************

carousel

**************************************************************************************
**************************************************************************************/

/* 共通 */
.js-coach-carousel,
.js-special-carousel{
  visibility: hidden;           /* 初期化完了まで非表示*/
  opacity: 0;
  transition: opacity .2s ease; /* 初期化後に表示 */
  min-height: 120px;            /* 期待する高さを予約*/
}

/* Slickが入ったら表示 */
.js-coach-carousel.slick-initialized,
.js-special-carousel.slick-initialized{
  visibility: visible;
  opacity: 1;
}

/* レイアウトシフト回避*/
.js-coach-carousel img,
.js-special-carousel img{
  display: block;
  width: 100%;
  height: auto;
  /*aspect-ratio: 1 / 3;*/
  object-fit: cover;
}

/* コーチ用 */
.js-coach-carousel img {
  aspect-ratio: 20 / 23;
}

/* スペシャル用 */
.js-special-carousel img {
  aspect-ratio: 200 / 127;
}




