/* --- 既存のスタイル（省略）--- */
body, h1, h2, h3, h4, h5, h6, p, address,
ul, ol, li, dl, dt, dd,
table, caption, th, td, img, form {
	margin: 0;
	padding: 0;
	border: none;
	font-style: normal;
	font-weight: 400;
	font-size: 1.4rem;
	list-style-type: none;
	font-family: YakuHanJP, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
	letter-spacing: 0.1em;
	line-height: 1;
	font-variant-ligatures:none;
}

.grecaptcha-badge {
    visibility: hidden;
}

figure{
    margin: 0;
    padding: 0;
}

textarea {
	font-size: 100%;
}

*:focus {
outline: none;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom; /* 追加: 画像下の余白対策 */
}

hr{
}

html{
	min-height: 620px;
	height: 100%;
	overflow-y: scroll;
	font-size: 62.5%;

	font-feature-settings: "palt" 1;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	text-align: justify;
	text-justify: inter-ideograph;
}

iframe[name="google_conversion_frame"]{
	position: absolute;
	top: 0;
}

input, button, textarea, select {
}

body {
    height: 100%;
    background: #F4F4F4;
    color: #000;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a{
	text-decoration: none;
	color: #000;
}

a:hover{
	text-decoration: none;
}

input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0;
}

.youtube {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.youtube iframe{
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}

.link_button a{
    background-color: #000;
    color: #fff;
    text-align: center;
    line-height: 1; 
    padding: 4px 16px;
    border:solid 1px #000;
    border-radius: 12px;
    transition: all ease .5s;
    font-weight: 600;
}

.link_button a:hover{
    background-color: #fff;
    color: #000;
}

.openbtn1 {
    width: 48px;
    height: 48px;
    cursor: pointer;
    z-index: 1000;
    position: absolute;
    right: 4%;
    top: 40px;
    background-color: #3A9F38;
    border-radius: 8px;
}

.openbtn1 span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    height: 3px;
    background-color: #fff;
    right: 9px;
    width: 64%;
    border-radius: 8px;
}

.openbtn1 span:nth-of-type(1) {
    top: 12px;
}

.openbtn1 span:nth-of-type(2) {
    top: 24px;
}

.openbtn1 span:nth-of-type(3) {
    top: 36px;
}

.openbtn1.active span:nth-of-type(1) {
    top: 16px;
    transform: translateY(6px) rotate(-45deg);
}

.openbtn1.active span:nth-of-type(2) {
    display: none;
}

.openbtn1.active span:nth-of-type(3) {
    top: 28px;
    transform: translateY(-6px) rotate(45deg);
}

.openbtn1.active span{
}

#g-nav {
    position: fixed;
    z-index: -1;
    opacity: 0;
    top: 0;
    transition: all 0.3s;
    right: 0;
    box-sizing: border-box;
    bottom: unset;
    left: unset;
    pointer-events: none;
}

#g-nav.panelactive {
    opacity: 1;
    z-index: 99;
    background-color: #3A9F38;
    pointer-events: unset;
    box-sizing: border-box;
    padding: 100px 40px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow-y: scroll;
    backdrop-filter: blur(4px);
    border-radius: 20px;
    top: 20px;
    right: 20px;
}


/*-------------------------------------------
// Common Components (c-)
// 共通コンポーネント
//-------------------------------------------*/
.c-button {

}

.c-button a {
    border: solid 1px;
    box-sizing: border-box;
    padding: 13px 32px;
    border-radius: 28px;
    font-weight: 500;
    background-color: #fff;
    transition: all 0.3s;
}

.c-button a:hover{
	background-color: #3A9F38;
	border:solid #3A9F38 1px;
	color: #fff;
}

.c-news-item {
    display: flex;
    align-items: baseline;
    gap: 32px;
    padding-bottom: 40px;
    border-bottom: solid 1px;
    padding-top: 40px;
    cursor: pointer;
    position: relative;
}

.c-news-item a{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

.c-news-item__date {
    font-weight: 500;
    letter-spacing: 0.01em;
    min-width: 80px;
}

.c-news-item__title {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.4;
    position: relative;
    padding-right: 64px;
    width: 100%;
}

.c-news-item__title::after {
    content: "";
    width: 32px;
    height: 32px;
    background-image: url(../img/common/allow_left.svg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    right: 0;
    transition: transform 0.3s ease-out;
    top: 50%;
    transform: translate(0, -50%);
}

/* ホバーした時の矢印 */
.c-news-item:hover .c-news-item__title::after {
    transform: translate(-4px, -50%);
}

/*-------------------------------------------
// Layout (l-)
// ヘッダー、フッターなどの骨格
//-------------------------------------------*/
.l-header {
    width: 100%;
    position: fixed;
    z-index: 500;
}

.l-header__inner {
    width: 88%;
    margin: 24px auto 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.l-header__logo {
    width: 200px;
    position: relative;
    z-index: 100;
}

.l-header__nav-wrapper {
}

.l-header__recruit {
    padding-right: 48px;
    position: relative;
    z-index: 100;
}

.l-header__recruit-button {
    position: relative;
}

.l-header__recruit-button a {
    background-color: #EE858C;
    color: #fff;
    box-sizing: border-box;
    padding: 16px 20px 16px 48px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    transition: all 0.3s;
}

.l-header__recruit-button a:hover{
	background-color: #62c1be;
}

.l-header__recruit-illust {
    width: 64px;
    position: absolute;
    bottom: 4px;
    left: 8px;
}

.l-header__hamburger {
}

.l-footer {
    background-image: url(../img/common/bg_footer.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-top: 160px;
    position: relative;
    color: #fff;
    padding-bottom: 40px;
    overflow: hidden;
}

.l-footer::before {
    content: "";
    position: absolute;
    width: 40%;
    height: 0;
    background-image: url(../img/common/ya.svg);
    background-size: contain;
    background-position: center;
    bottom: -4%;
    right: 0;
    background-repeat: no-repeat;
    padding-top: 34%;
    background-size: contain;
    z-index: 50;
    max-width: 560px;
}

.l-footer::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.2);
}

.l-footer__main {
    width: 88%;
    margin: 0 auto;
    position: relative;
    z-index: 50;
}

.l-footer__main-inner {
}

.l-footer__info {
    margin-top: 160px;
}

.l-footer__logo {
    margin-bottom: 40px;
	filter: brightness(0) invert(1);
}

.l-footer__address {
    line-height: 1.8;
    font-size: 1.8rem;
    margin-bottom: 32px;
}

.l-footer__sns {
}

.l-footer__sns a {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-weight: 500;
    text-decoration: underline;
}

.l-footer__sns-icon {
    width: 20px;
    height: 20px;
}

.l-footer__sitemap {
    margin-top: 48px;
}

.l-footer__sitemap-list {
    display: flex;
    gap: 32px;
}

.l-footer__sitemap-item {
    font-weight: 500;
}

.l-footer__sitemap-item a{
	color: #fff;
}

/*-------------------------------------------
// Project (p-)
// 各ページ・セクション固有のパーツ
//-------------------------------------------*/
.main_wrapper {
    position: relative;
    padding-top: 320px;
}

/* Global Navigation */
.p-gnav {
}

.p-gnav__container {
}

.p-gnav__list {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.p-gnav__item {
}

.p-gnav__item small {
    font-size: 1.2rem;
}

.p-gnav__link {
    color: #fff;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.4;
}

.nav__sns a {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-weight: 500;
    border-top: solid 1px;
    padding-top: 24px;
}

.nav__sns-icon {
    width: 20px;
    height: 20px;
}

/* Main Visual */
.p-main-visual {
    background-image: url(../img/home/bg_visual.svg);
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-position: top center;
    background-size: contain;
    position: sticky;
    top: 0;
    z-index: -1;
}

.p-main-visual__image-wrapper {
}

/* Hero Section */
.p-hero {
    position: absolute;
    top: 0;
    height: 100vh;
    width: 100%;
}

.p-hero__inner {
    display: flex;
    justify-content: center;
    margin-top: 80px;
}

.p-hero__title {
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: 2.2rem;
    font-weight: 400;
    color: #3CA038;
    line-height: 2.2;
    font-family: "Noto Sans JP", sans-serif;
}

/* Pickup Section */
.p-pickup {
    background-color: #fff;
    width: auto;
    position: absolute;
    bottom: 64px;
    left: 6%;
    border-radius: 12px;
    box-sizing: border-box;
    padding: 40px 32px;
    max-width: 480px;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
}

.p-pickup__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.p-pickup__title {
    background-color: #EE858C;
    color: #fff;
    font-weight: 600;
    box-sizing: border-box;
    padding: 6px 24px;
    border-radius: 16px;
}

.p-pickup__date {
    color: #626365;
    font-weight: 600;
    font-size: 1.2rem;
    letter-spacing: 0.05em;
}

.p-pickup__post-title {
    font-size: 1.6rem;
    line-height: 1.4;
    font-weight: 500;
}

/* Top: About Section */
.p-top-about {
    height: 100vh;
}

.p-top-about__inner {
    width: 88%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 120px;
    max-width: 1120px;
}

.p-top-about__content {
    background-color: #fff;
    box-sizing: border-box;
    padding: 40px 32px;
    border-radius: 16px;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
}

.p-top-about__title-wrapper {
}

.p-top-about__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 32px;
}

.p-top-about__title span {
    color: #3a9f38;
    font-size: 2.8rem;
    box-sizing: border-box;
}

.p-top-about__body {
}

.p-top-about__text {
    line-height: 2;
    font-size: 1.5rem;
}

.p-top-about__button-wrapper {
    display: flex;
    justify-content: flex-end;
    margin-top: 40px;
}

.p-top-about__button-wrapper .c-button a {
    padding: 12px 28px;
}

.p-top-about__slider {
    width: 32%;
    box-sizing: border-box;
}

.p-top-about__swiper-container {
	width: 100%;
	overflow: hidden; 
    border-radius: 12px;
}

.p-top-about__swiper-container .swiper-slide {
}

.p-top-about__slide-image {
    width: 100%;
    height: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
    padding-top: 120%;
}

.p-top-club {
    background-image: url(../img/common/bg_yamatotaclub.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding-top: 160px;
    padding-bottom: 160px;
    position: relative;
    overflow: hidden;
}

.p-top-club__inner {
    position: relative;
    z-index: 2;
    margin: 0 auto;
    width: 80%;
    max-width: 960px;
}

@keyframes fuwafuwa {
	0% {
		transform: translateY(0);
	}
	100% {
		transform: translateY(-20px);
	}
}

.p-top-club__cloud {
	position: absolute;
	z-index: 1;
	animation: fuwafuwa 4s ease-in-out infinite alternate;
}

.p-top-club__cloud img {
	width: 100%;
}

.p-top-club__cloud--left {
    top: -8%;
    left: -8%;
    width: 32%;
    max-width: 280px;
}

.p-top-club__cloud--right {
    top: 12%;
    right: -8%;
    animation-delay: -2s;
    width: 28%;
    max-width: 280px;
}

.p-top-club__content {
    background-color: #fff;
    margin: 0 auto;
    border-radius: 8px;
    box-sizing: border-box;
    padding: 80px 80px 200px;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
    background-image: url(../img/common/illust_yamatotaclub.svg);
    background-repeat: no-repeat;
    background-position: right 40px bottom 40px;
    background-size: 64%;
}

.p-top-club__title {
    text-align: center;
    margin-bottom: 56px;
}

.p-top-club__body {
}

.p-top-club__text-wrapper {
    width: 56%;
}

.p-top-club__text {
    line-height: 2;
    font-size: 1.5rem;
}

.p-top-club__button-wrapper {
    margin-top: 40px;
}


.p-top-club__button-wrapper .c-button a {
    padding: 12px 28px;
    border-radius: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.p-top-club__button-wrapper .illust_butterfly{

}

.p-top-club__bg-image {

}

/* Top: News Section */
.p-top-news {
    padding: 160px 0;
    background-color: #fff;
}

.p-top-news__inner {
    width: 80%;
    margin: 0 auto;
    display: flex;
    gap: 64px;
    max-width: 880px;
}

.p-top-news__header {
    background-image: url(../img/home/illust_crafts.svg);
    background-repeat: no-repeat;
    background-position: top 56px center;
    background-size: contain;
}

.p-top-news__title-wrapper {
    min-width: 160px;
    max-width: 160px;
}

.p-top-news__title {
    font-size: 3.2rem;
    font-weight: 500;
    letter-spacing: 0.05em;
}

.p-top-news__list-wrapper {
    width: 100%;
    margin-top: -40px;
}

.p-top-news__list {
    display: flex;
    flex-direction: column;
}

.p-top-news__more {
    display: flex;
    justify-content: center;
    margin-top: 64px;
}

/* Footer Contact Section */
.p-footer-contact {
    position: relative;
    z-index: 50;
}

.p-footer-contact__header {
    margin-bottom: 16px;
    text-align: center;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.p-footer-contact__title-group {
    margin: 0 24px;
}

.p-footer-contact__illust--left {
    width: 72px;
    margin-top: -80px;

    animation: alternateTilt 2s infinite step-end; /* 2秒ごとにステップで切り替え、無限ループ */
    transform-origin: bottom center; /* 画像の下部を中心に傾ける */
}

.p-footer-contact__illust--right {
    width: 72px;
    margin-top: 64px;
    animation: alternateTilt 2s infinite step-end; /* 2秒ごとにステップで切り替え、無限ループ */
    transform-origin: bottom center; /* 画像の下部を中心に傾ける */
}

@keyframes alternateTilt {
    0%, 100% {
        transform: rotate(-5deg); /* 左に傾く */
    }
    50% {
        transform: rotate(5deg); /* 右に傾く */
    }
}

.p-footer-contact__title {
    font-size: 4.8rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    margin-bottom: 12px;
}

.p-footer-contact__subtitle {
    font-size: 1.6rem;
    font-weight: 600;
}

.p-footer-contact__body {
}

.p-footer-contact__text {
    text-align: center;
    line-height: 1.8;
    font-size: 2rem;
    font-weight: 500;
    margin-bottom: 40px;
}

.p-footer-contact__button-wrapper {
    text-align: center;
    margin-top: 56px;
}

.p-extra-cta {
    background-image: url(../img/home/illust_omake.svg);
    height: 100vh;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    position: relative;
    background-color: #fff;
}

.p-extra-cta__inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #fff;
    box-sizing: border-box;
    padding: 40px;
    border-radius: 12px;
}

.p-extra-cta__text {
    color: #3A9F38;
    font-size: 2.8rem;
    margin-bottom: 32px;
	min-height: 1.2em;
	font-family: "DotGothic16", sans-serif;
}


.p-extra-cta__list {
    display: flex;
    justify-content: center;
    gap: 64px;
}

.p-extra-cta__item {
    font-family: "DotGothic16", sans-serif;
    font-size: 2rem;
}

.p-extra-cta__item a{
	color: #3A9F38;
}


/*-------------------------------------------
// 共通style
//-------------------------------------------*/
.other-page {
}

/*-------------------------------------------
// 共通：コンテンツセクション
//-------------------------------------------*/
.p-about__inner {
    width: 88%;
    max-width: 880px;
    margin: 0 auto;
    padding: 80px 0;
}

/*-------------------------------------------
// セクション：やまとたの想い
//-------------------------------------------*/

.p-about__parallax-container {
    
    position: relative; /* 中の画像を配置する基準 */
    overflow: hidden; /* ★はみ出した画像を隠す重要な指定 */
}

.p-about-message .p-about__parallax-container{
    height: 72vh; 
}

.p-about-company .p-about__parallax-container{
    height: 48vh;
}

.p-about-message__parallax-bg {
    background-image: url(../img/about/mainimg_about.jpg);
    background-position: center bottom;
    background-size: cover;
    background-repeat: no-repeat;
    will-change: transform;
    top: -20%;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-about-company__parallax-bg {
    background-image: url(../img/about/photo_about_01.jpg);
    width: 80%;
    margin: 0 auto;
    max-width: 880px;
    height: 40vh;
    background-position: center;
    background-size: cover;
    will-change: transform; /* ブラウザにアニメーションすることを伝えて最適化 */
    top: -20%; /* 上下にはみ出すように配置 */
    left: 0;
    width: 100%;
    height: 140%; /* 窓より30%〜40%高くして、動く余白を作る */
}
.p-about-message__header {
    margin-bottom: 80px;
    text-align: center;
}

.p-about-message__title {
    font-size: 2.4rem;
    font-weight: 500;
}

.p-about-message {
    position: relative;
    z-index: 1;
    margin-bottom: 40px;
}

.message_about__image {
    width: 80%;
    max-width: 880px;
    display: block;
    margin: 0 auto;
}

.p-about-message__body {
    display: flex;
    gap: 80px;
    justify-content: space-between;
}

.p-about-message__text-block {
    width: 50%;
}

.p-about-message__text-block:last-child{
    margin-top: 320px;
}

.p-about-message__text-block p {
    line-height: 2;
    margin-bottom: 24px;
}

.p-about-message__text-block p:last-child {
    margin-bottom: 0;
}


/*-------------------------------------------
// セクション：会社概要
//-------------------------------------------*/
.p-about-company {
    position: relative;
    z-index: 1;
}

.p-about-company__inner {
    display: flex;
    gap: 80px;
    width: 88%;
    max-width: 880px;
    margin: 0 auto;
    padding: 80px 0 120px;
}

.p-about-company__header {
    min-width: 160px;
    max-width: 160px;
}

.p-about-company__title {
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.4;
}

.p-about-company__list {
}

.p-about-company__term {
    width: 160px;
    font-weight: 500;
    font-size: 1.6rem;
    float: left;
    clear: left;
    line-height: 1.8;
}

.p-about-company__description {
    line-height: 1.8;
    padding-left: 160px;
    margin-bottom: 24px;
    border-bottom: solid 1px #aaa;
    padding-bottom: 24px;
}

.p-about-company__description:last-child{
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.p-about-company__description p{
    line-height: 1.8;
}

.p-about-company__business-list {
    list-style-type: none;
    padding-left: 0;
}
.p-about-company__business-list li {
    margin-top: 16px;
    line-height: 1.6;
}


/*-------------------------------------------
// セクション：ロゴについて
//-------------------------------------------*/
.p-about-logo {
    position: relative;
    z-index: 1;
    margin-bottom: 160px;
}

.p-about-logo__inner {
    display: flex;
    align-items: center;
    gap: 80px;
    margin: 0 auto;
    width: 88%;
    max-width: 880px;
    border: solid 1px #000;
    padding: 48px 64px;
    box-sizing: border-box;
    border-radius: 32px;
}

.p-about-logo__body{
}

.p-about-logo__body p {
    line-height: 1.8;
    margin-bottom: 16px;
}

.p-about-logo__body p:last-child{
    margin-bottom: 0;
}

.p-about-logo__content {
    width: 100%;
}

.p-about-logo__header {
    margin-bottom: 24px;
}

.p-about-logo__title {
    font-size: 2rem;
    font-weight: 500;
}

.p-about-logo__image-wrapper {
    max-width: 240px;
    min-width: 240px;
}

.p-about-logo__image {
    width: 100%;
}


/*-------------------------------------------
// やまたと倶楽部
//-------------------------------------------*/

.p-yamatotaclub-page {
}

/*-------------------------------------------
// Section: Intro
//-------------------------------------------*/
.p-club-intro {
  /* ... */
}
.p-club-intro__inner {
    display: flex;
    position: relative;
    justify-content: space-between;
    gap: 120px;
}
.p-club-intro__content {
    width: 36%;
    position: relative;
    left: 8%;
    padding-top: 280px;
    padding-bottom: 80px;
}
.p-club-intro__header {
    text-align: center;
    margin-bottom: 120px;
}

.p-club-intro__text {
    font-size: 1.6rem;
    line-height: 2;
    margin-bottom: 24px;
}

.p-club-intro__bg-image {
    background-image: url(../img/yamatotaclub/mainimg_yamatotaclub.jpg);
    height: 100vh;
    min-width: 50%;
    background-position: center;
    background-size: cover;
    position: sticky;
    top: 0;
    right: 0;
}

/*-------------------------------------------
// Section: Course List
//-------------------------------------------*/
.p-club-course-list {
    margin: 200px 0 240px;
}
.p-club-course {
    margin-bottom: 120px;
}

.p-club-course.areamap h3{
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.4;
    margin: 0 auto 16px;
    width: 80%;
    position: relative;
    max-width: 1040px;
}

.p-club-course.areamap img{
    margin: 0 auto;
    width: 100%;
    max-width: 1260px;
    display: flex;
}

.p-club-course--nariwai {
}
.p-club-course__inner {
    margin: 0 auto;
    width: 80%;
    position: relative;
    max-width: 1040px;
}
.p-club-course__content {
    width: 52%;
}
.p-club-course__header {
}
.p-club-course__title {
}
.p-club-course__title-img {
    height: 56px;
    width: auto;
}
.p-club-course__subtitle {
    font-size: 1.8rem;
    font-weight: 500;
    margin: 32px 0;
    line-height: 1.4;
}
.p-club-course__body {
}
.p-club-course__text {
    line-height: 2;
    margin-bottom: 48px;
}

.p-club-course__text a{
    color: #3a9f38;
    text-decoration: underline;
}

.p-club-course__button-wrapper {
}

.p-club-course__bg-image {
    width: 44%;
    background-position: center right;
    background-size: contain;
    background-repeat: no-repeat;
    height: 0;
    padding-top: 26%;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(0, -50%);
}

.p-club-course--nariwai .p-club-course__bg-image{
    background-image: url(../img/common/illust_nariwaicourse.svg);
}

.p-club-course--nogake .p-club-course__bg-image {
    background-image: url(../img/common/illust_nogakecourse.svg);
    background-position: center left;
    right: auto;
    left: 6%;
    width: 34%;
}

.p-club-course--kutsunugi .p-club-course__bg-image {
    background-image: url(../img/common/illust_kutsunugicourse.svg);
    padding-top: 18%;
    background-position: center;
}

.p-club-course--nogake .p-club-course__inner {
    display: flex;
    justify-content: flex-end;
}


/*-------------------------------------------
// Product Detail Page
//-------------------------------------------*/
.p-product-detail-page {
}

.p-product-detail {
}
.p-product-detail__inner {
    display: flex;
    justify-content: space-between;
    gap: 80px;
    width: 88%;
    max-width: 1120px;
    margin: 0 auto;
    padding: 240px 0 120px;
    position: relative;
}

.p-product-detail__content {
    width: 56%;
    border-top: solid 2px #3a9f38;
    padding-top: 48px;
}
.p-product-detail__header {
  margin-bottom: 40px;
}
.p-product-detail__title {
  /* ... */
}

.p-product-detail__title img {
    max-height: 48px;
}

.p-product-detail__description {
  /* the_content() で出力される部分のスタイル */
}
.p-product-detail__description p {
  line-height: 1.8;
}
.p-product-detail__purchase-button {
  margin-top: 40px;
}
.p-product-detail__remarks {
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid #e0e0e0;
}

.p-product-detail__remarks h3{
    font-size: 2rem;
    font-weight: 500;
    margin-bottom: 16px;
}

.p-product-detail__remarks p,
.p-product-detail__remarks li {
    line-height: 1.8;
}

.p-product-detail__remarks p{
    margin-bottom: 16px;
}

.p-product-detail__image-wrapper {
    width: 48%;
    position: sticky;
    top: 320px;
    height: 100%;
}
.p-product-detail__image {
  width: 100%;
  height: auto;
  border-radius: 12px;
}


/*-------------------------------------------
// Single Post Page
//-------------------------------------------*/
.p-single-post-page {
    background-color: #fff;
    padding: 200px 0 120px;
}

/*-------------------------------------------
// Article
//-------------------------------------------*/
.p-article {
}
.p-article__inner {
  width: 88%;
  max-width: 800px; /* 記事の最大幅 */
  margin: 0 auto;
}
.p-article__header {
    margin-bottom: 64px;
}
.p-article__date {
    color: #666;
    margin-bottom: 8px;
    font-weight: 600;
}
.p-article__title {
    font-size: 2.4rem;
    line-height: 1.6;
    font-weight: 500;
}

.p-article__body {
  font-size: 1.6rem;
  line-height: 2;
}
.p-article__body > *:first-child {
  margin-top: 0;
}
.p-article__body h3 {
  font-size: 2.4rem;
  margin-top: 2.5em;
  margin-bottom: 1.5em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #e0e0e0;
}
.p-article__body h4 {
  font-size: 2rem;
  margin-top: 2em;
  margin-bottom: 1em;
}

.p-article__body p {
    margin-bottom: 24px;
    font-size: 1.6rem;
    line-height: 2;
    text-align: left;
}

.p-article__body a {
  color: #3A9F38;
  text-decoration: underline;
}
.p-article__body img {
    max-width: 100%;
    height: auto;
    margin-bottom: 16px;
}
.p-article__body ul,
.p-article__body ol {
  margin-bottom: 1.5em;
  padding-left: 1.5em;
}
.p-article__body li {
  margin-bottom: 0.5em;
}
.p-article__body blockquote {
  margin: 2em 0;
  padding: 1.5em;
  background-color: #f7f7f7;
  border-left: 4px solid #3A9F38;
}

/*-------------------------------------------
// Component: Post Navigation
//-------------------------------------------*/
.c-post-nav {
    margin-top: 64px;
}

.c-post-nav__inner {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    width: 88%;
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    border-top: solid;
}

.c-post-nav__link {
}

.c-post-nav__link a {
    display: flex;
    align-items: center;
}

.c-post-nav__link--next a {
    justify-content: flex-end;
}

.c-post-nav__link a:hover {
}

.c-post-nav__link--prev {
    text-align: left;
    position: absolute;
    top:24px;
    left: 0;
}

.c-post-nav__link--next {
    text-align: right;
    position: absolute;
    top: 24px;
    right: 0;
}

.c-post-nav__arrow {
  font-size: 1.6rem;
}
.c-post-nav__text {
    font-size: 1.2rem;
    line-height: 1.4;
    font-weight: 500;
}

/*-------------------------------------------
// No Content
//-------------------------------------------*/
.p-no-content {
  text-align: center;
  padding: 80px 0;
}
.p-no-content__title {
}
.p-no-content__text {
}



/*-------------------------------------------
// Archive Page
//-------------------------------------------*/
.p-archive-page {
    padding: 160px 0 120px;
}

/*-------------------------------------------
// Archive Header
//-------------------------------------------*/
.p-archive-header {
    text-align: center;
    margin-bottom: 64px;
}
.p-archive-header__inner {
  width: 88%;
  max-width: 960px;
  margin: 0 auto;
}
.p-archive-header__title {
  font-size: 2.8rem;
  font-weight: 500;
}

/*-------------------------------------------
// Post List
//-------------------------------------------*/
.p-post-list {
}
.p-post-list__inner {
  width: 88%;
  max-width: 960px;
  margin: 0 auto;
}
.p-post-list__item {
  border-bottom: 1px solid #e0e0e0;
}
.p-post-list__item:first-child {
  border-top: 1px solid #e0e0e0;
}
.p-post-list__item-link {
  display: block;
  padding: 32px 24px;
  transition: background-color 0.3s;
}
.p-post-list__item-link:hover {
  background-color: #f7f7f7;
}
.p-post-list__item-header {
  margin-bottom: 12px;
}
.p-post-list__item-date {
  font-size: 1.4rem;
  color: #666;
}
.p-post-list__item-title {
  font-size: 2rem;
  line-height: 1.6;
  font-weight: 500;
}

/*-------------------------------------------
// Component: Pagination
//-------------------------------------------*/
.c-pagination {
  margin-top: 64px;
}
.c-pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}
.c-pagination .page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  font-size: 1.4rem;
  transition: background-color 0.3s, color 0.3s;
}
.c-pagination .page-numbers:hover {
  background-color: #f7f7f7;
}
.c-pagination .page-numbers.current {
  background-color: #3A9F38;
  color: #fff;
  border-color: #3A9F38;
}

/*-------------------------------------------
// No Content
//-------------------------------------------*/
.p-no-content {
  text-align: center;
  padding: 80px 0;
}

.p-archive-page .c-news-item__title {
    font-size: 2rem;
}




/*-------------------------------------------
// Contact Page
//-------------------------------------------*/
.p-contact-page {
    padding: 160px 0;
}
.p-contact-page__header {
    text-align: center;
    margin-bottom: 64px;
}
.p-contact-page__header-inner {
}
.p-contact-page__title {
  font-size: 2.8rem;
  font-weight: 500;
}
.p-contact-page__body {
}
.p-contact-page__inner {
    width: 88%;
    max-width: 880px;
    margin: 0 auto;
    background-color: #fff;
    padding: 48px;
    box-sizing: border-box;
    border-radius: 24px;
}
.p-contact-page__form-wrapper {
}

/*-------------------------------------------
// Component: Contact Form 7
//-------------------------------------------*/
.c-contact-form {
}
.c-contact-form__item {
  margin-bottom: 40px;
}
.c-contact-form__label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    font-size: 1.6rem;
}

.c-contact-form__label small{
    color: red;
}
.c-contact-form__input, .c-contact-form__textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 1.6rem;
    box-sizing: border-box;
}
.c-contact-form__textarea {
  height: 200px;
}

/* チェックボックスのスタイル */
.c-contact-form__checkbox-group .wpcf7-list-item {
  display: block;
  margin: 0 0 12px 0;
}
.c-contact-form__checkbox-group .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.c-contact-form__checkbox-group input[type="checkbox"] {
    width: 18px;
    height: 18px;
    appearance: auto;
    -webkit-appearance: auto;
}

.c-contact-form__submit {
    text-align: center;
    margin-top: 48px;
}

/* Contact Form 7 が出力するエラーや完了メッセージのスタイル（任意） */
.wpcf7-response-output {
  margin-top: 40px;
  border-radius: 4px;
}

.wpcf7-not-valid-tip {
    margin-top: 8px;
}

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



/*-------------------------------------------
// 送信ボタンのスタイル
//-------------------------------------------*/

/* Contact Form 7の .c-button クラスにスタイルを適用 */
.c-contact-form__submit .c-button {
    display: inline-block;
    background-color: #3A9F38; /* 背景色（テーマの緑色） */
    color: #fff; /* 文字色 */
    font-size: 1.6rem;
    font-weight: 500;
    text-align: center;
    padding: 16px 48px; /* ボタンの余白 */
    border: none;
    border-radius: 50px; /* 角を丸くして、柔らかい印象に */
    cursor: pointer;
    -webkit-appearance: none; /* iOSなどのデフォルトスタイルをリセット */
    
    /* ホバーアニメーションを滑らかにする設定 */
    transition: background-color 0.3s ease-out, transform 0.3s ease-out;
}

/* ホバー時のスタイル */
.c-contact-form__submit .c-button:hover {
    background-color: #318a30; /* 少し暗い緑色に変更 */
    transform: translateY(-2px); /* 少し上に浮き上がる動き */
    box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* 影をつけて立体感を出す */
}




/*-------------------------------------------
// Application Form Page
//-------------------------------------------*/
.p-application-form-page {
    padding: 160px 0;
}
.p-application-form-page__header {
    text-align: center;
    margin-bottom: 80px;
}
.p-application-form-page__header-inner {
}
.p-application-form-page__title {
  font-size: 2.8rem;
  font-weight: 500;
}
.p-application-form-page__body {
}
.p-application-form-page__inner {
    width: 88%;
    max-width: 880px;
    margin: 0 auto;
    background-color: #fff;
    padding: 48px;
    box-sizing: border-box;
    border-radius: 24px;
}
.p-application-form-page__form-wrapper {
}

/*-------------------------------------------
// Component: Contact Form (Shared)
//-------------------------------------------*/
.c-contact-form__intro {
    margin-bottom: 40px;
    padding: 20px;
    background-color: #f7f7f7;
    border-radius: 8px;
    box-sizing: border-box;
}

.c-contact-form__intro p{
    font-size: 1.6rem;
    line-height: 1.8;
}

.c-contact-form__item {
    margin-bottom: 20px;
    border-bottom: solid 1px #eee;
    padding-bottom: 20px;
}

.border-bottom_none {
    border-bottom: none;
}

.c-contact-form__label {
    display: block;
    margin-bottom: 16px;
    font-weight: 500;
    font-size: 1.8rem;
}
.c-contact-form__label--small {
    font-size: 1.6rem;
    font-weight: 500;
    display: block;
}

.c-contact-form__label--extra-small {
    display: block;
    font-size: 1.4rem;
    margin-top: 24px;
    font-weight: 500;
}

.c-contact-form__label--extra-small small {
    color: red;
}

.c-contact-form__supplement {
    font-size: 1.4rem;
    margin-bottom: 16px;
    line-height: 1.6;
}

.c-contact-form__supplement a{
    text-decoration: underline;
    color: #3a9f38;
}

.c-contact-form__input,
.c-contact-form__textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1.6rem;
}
.c-contact-form__input--short {
  width: 100px;
}
.c-contact-form__textarea {
  height: 200px;
}

/* Fieldset */
.c-contact-form__fieldset {
  border: 1px solid #e0e0e0;
  padding: 24px 32px;
  border-radius: 8px;
  margin-bottom: 40px;
}
.c-contact-form__fieldset .c-contact-form__item:last-child {
    margin-bottom: 0;
    border-bottom: none;
}

.c-contact-form__fieldset legend {
  padding: 0 8px;
}


/* Checkbox & Radio Button */
.c-contact-form__checkbox-group .wpcf7-list-item,
.c-contact-form__radio-group .wpcf7-list-item {
  display: block;
  margin: 0 0 12px 0;
}
.c-contact-form__checkbox-group .wpcf7-list-item label,
.c-contact-form__radio-group .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.c-contact-form__checkbox-group input[type="checkbox"],
.c-contact-form__radio-group input[type="radio"] {
  width: 18px;
  height: 18px;
}

/* ラジオボタンが表示されるように修正 */
.c-contact-form__radio-group input[type="radio"] {
    -webkit-appearance: radio;
    appearance: radio;
}

/* 参加人数の入力欄のレイアウトを整えるラッパー */
.c-contact-form__quantity-wrapper {
    display: flex;
    align-items: center;
    gap: 8px; /* 入力欄と「名」の間隔 */
}

.c-contact-form__select-wrapper {
    display: flex;
    align-items: center;
    gap: 8px; /* ドロップダウンと「名」の間隔 */
}

.c-contact-form__select {
    -webkit-appearance: none;
    appearance: none;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 8px 32px 8px 12px;
    font-size: 1.6rem;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23333' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
}

.p-application-form-page .wpcf7-list-item {
    margin:0;
}

.p-application-form-page .c-contact-form__select-wrapper p{
    display: flex;
    align-items: center;
    gap: 4px;
}

.c-contact-form input[type="checkbox"], .c-contact-form input[type="radio"] {
    -webkit-appearance: none;
    appearance: none;
    background-color: #fff;
    margin: 0;
    font: inherit;
    color: currentColor;
    width: 24px;
    height: 24px;
    border: 1px solid #ccc;
    transform: translateY(-0.075em);
    display: grid;
    place-content: center;
    cursor: pointer;
}

/* ラジオボタンは円形に */
.c-contact-form input[type="radio"] {
    border-radius: 50%;
}

/* チェックマークと円の中の点を ::before で作成 */
.c-contact-form input[type="checkbox"]::before,
.c-contact-form input[type="radio"]::before {
    content: "";
    width: 0.65em;
    height: 0.65em;
    transform: scale(0); /* 通常時は非表示 */
    transition: 120ms transform ease-in-out;
    box-shadow: inset 1em 1em #3A9F38; /* チェックの色 */
}
.c-contact-form input[type="radio"]::before {
    border-radius: 50%;
}
.c-contact-form input[type="checkbox"]::before {
    transform-origin: bottom left;
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

/* チェックが入った時のスタイル */
.c-contact-form input[type="checkbox"]:checked,
.c-contact-form input[type="radio"]:checked {
    border-color: #3A9F38; /* 枠線の色を変更 */
}

.c-contact-form input[type="checkbox"]:checked::before,
.c-contact-form input[type="radio"]:checked::before {
    transform: scale(1); /* チェックマークや点を表示 */
}

.p-application-form-page .wpcf7-radio .wpcf7-list-item label, .p-application-form-page .wpcf7-checkbox .wpcf7-list-item label {
    display: flex;
    flex-direction: row;
    gap: 6px;
    align-items: baseline;
}

.p-application-form-page .wpcf7-radio.wpcf7-form-control,
.p-application-form-page .wpcf7-checkbox.wpcf7-form-control{
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.p-course-detail-page {
    --theme-color: #3A9F38;
    --light-gray: #f7f7f7;
    --dark-gray: #333;
    --header-height: 80px;
}
.p-course-detail-page {
    padding: 160px 0 120px;
}
.p-course-detail-layout {
    display: flex;
    position: relative;
    width: 88%;
    max-width: 1200px;
    margin: 60px auto 0;
    gap: 48px;
}
.p-course-detail-main {
    width: 100%;
    flex-grow: 1; 
}
.p-course-detail__inner {
    width: 100%;
    box-sizing: border-box;
}

.p-course-detail__intro {
    display: flex;
    align-items: center;
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    background-color: #fff;
    border-radius: 16px;
    overflow: hidden;
    padding: 24px 48px;
    box-sizing: border-box;
    gap: 48px;
}

.p-course-detail__intro-image {
    flex: 0 0 48%;
    align-self: stretch;
    background-image: url(../img/common/illust_nariwaicourse.svg);
    background-size: contain;
    background-position: center;
    min-height: 400px;
    background-repeat: no-repeat;
}

.p-course-detail__intro-image.nogake {
    background-image: url(../img/common/illust_nogakecourse.svg);
    background-size: 80%;
}

.p-course-detail__intro-image.kutsunugi {
    background-image: url(../img/common/illust_kutsunugicourse.svg);
    flex: 0 0 36%;
    margin: 0 6%;
}

.p-course-detail__intro-text {
    flex: 1;
}

.p-course-detail__intro-text p{
    line-height: 1.8;
    margin-top: 40px;
}

.p-course-detail__intro-text p a{
    text-decoration: underline;
    color: #3a9f38;
}

.c-anchor-nav {
    position: -webkit-sticky;
    position: sticky;
    top: 160px;
    width: 240px;
    height: fit-content;
    z-index: 100;
    box-sizing: border-box;
    flex-shrink: 0;
}
.c-anchor-nav__inner {
    background-color: #fff;
    padding: 32px;
    border-radius: 12px;
    border: 1px solid #e0e0e0;
}
.c-anchor-nav__apply-button-wrapper { margin-bottom: 24px; padding-bottom: 24px; border-bottom: 1px solid #e0e0e0; }
.c-anchor-nav__apply-button {
    display: block; background-color: #EE858C; color: #fff;
    padding: 12px; border-radius: 50px; font-weight: 500; text-align: center; transition: background-color 0.3s;
}
.c-anchor-nav__apply-button:hover { background-color: #e66a73; }


.c-anchor-nav__return-button-wrapper {
    margin-top: 24px;
}
.c-anchor-nav__return-button {
    display: block;
    background-color: #fff;
    color: #000;
    padding: 12px;
    font-size: 1.2rem;
    border-radius: 50px;
    font-weight: 500;
    text-align: center;
    transition: background-color 0.3s;
    border: solid 1px;
    box-sizing: border-box;
}
.c-anchor-nav__return-button:hover {
    background-color: #000;
    color: #fff;
}


.c-anchor-nav__list { display: flex; flex-direction: column; gap: 8px; }
.c-anchor-nav__link {
    font-weight: 500; color: var(--dark-gray); padding: 10px 12px;
    display: block; border-radius: 4px; transition: background-color 0.2s, color 0.2s;
}
.c-anchor-nav__link:hover { background-color: var(--light-gray); }
.c-anchor-nav__link.is-active { background-color: var(--theme-color); color: #fff; }

.p-course-detail__section {
    padding: 64px 40px;
    background-color: #fff;
    margin-bottom: 60px;
    border-radius: 16px;
}
.p-course-detail__title {
    font-size: 2.4rem;
    font-weight: 500;
    margin-bottom: 80px;
}
.p-course-detail__subtitle { font-size: 2rem; font-weight: 500; margin-top: 64px; margin-bottom: 24px; padding-left: 1em; border-left: 4px solid var(--theme-color); }

.c-note {
    color: rgba(255,105,0,1);
    margin-top: 16px;
    line-height: 1.8;
}

#kutsunugicourse .p-course-detail__section .c-note{
    margin-top: 0;
}

.p-course-detail__section_text_wrapper {
    margin-bottom: 40px;
}

.p-course-detail__section_text {
    line-height: 1.8;
    font-size: 1.6rem;
}

.p-course-detail__section_text a {
    text-decoration: underline;
    color: #3a9f38;
}

.p-course-detail__section_text strong{
}

.p-course-detail__section_text_wrapper .map {
    position: relative;
    width: 100%;
    padding-top: 40%;
    height: 0;
    margin-top: 16px;
}

.p-course-detail__section_text_wrapper .map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-course-detail__price {
    text-align: center;
    margin-bottom: 48px;
    padding-bottom: 48px;
    border-bottom: 1px dashed #ccc;
}
.p-course-detail__price-item { display: inline-flex; align-items: baseline; font-size: 1.8rem; }

.p-course-detail__price-course {
    margin-top: 24px;
    color: rgba(255,105,0,1);
    font-weight: 500;
    line-height: 1.6;
    text-align: left;
    display: flex;
    justify-content: center;
}

.p-course-detail__price-item:not(:last-child){ margin-right: 24px; }
.p-course-detail__price-item span { font-weight: 500; margin-right: 8px; }
.p-course-detail__price-item strong { font-size: 3.2rem; font-weight: bold; color: var(--theme-color); }
.p-course-detail__fees-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.p-course-detail__fees-block { border: 1px solid #e0e0e0; border-radius: 12px; padding: 32px; }
.p-course-detail__fees-title { font-size: 1.8rem; font-weight: 500; margin-bottom: 24px; padding-bottom: 12px; border-bottom: 2px solid; }
.p-course-detail__fees-block--included .p-course-detail__fees-title { border-color: var(--theme-color); }
.p-course-detail__fees-block--excluded .p-course-detail__fees-title { border-color: #EE858C; }
.c-check-list { list-style: none; padding-left: 0; }
.c-check-list__item { padding-left: 2em; position: relative; font-size: 1.6rem; line-height: 1.8; }
.c-check-list__item:not(:last-child) { margin-bottom: 16px; }
.c-check-list__item::before { content: ''; position: absolute; left: 0; top: 0.3em; width: 1.2em; height: 1.2em; background-size: contain; background-repeat: no-repeat; }
.c-check-list--included .c-check-list__item::before { background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%233A9F38"%3E%3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/%3E%3C/svg%3E'); }
.c-check-list--excluded .c-check-list__item::before { background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23EE858C"%3E%3Cpath d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/%3E%3C/svg%3E'); }

.c-timeline {
    position: relative;
    padding-left: 24px;
}
.c-timeline__item {
    padding-left: 48px;
    position: relative;
}
.c-timeline__item:not(:last-child) { padding-bottom: 48px; }
.c-timeline__item::before {
    content: '';
    position: absolute;
    left: -9px;
    top: 5px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background-color: var(--theme-color);
    z-index: 2;
}
.c-timeline__item::after {
    content: '';
    position: absolute;
    left: -2px; top: 5px;
    width: 2px; height: 100%;
    background-color: #e0e0e0;
    z-index: 1;
}
.c-timeline__item:first-child::after {
    top: 15px; height: calc(100% - 15px);
}
.c-timeline__item:last-child::after {
    height: 0;
}
.c-timeline__date, .c-timeline__date-range { font-weight: 500; margin-bottom: 8px; font-size: 2rem; }
.c-timeline__date small{ margin-left: 12px; }
.c-timeline__date br{ display: none; }
.c-timeline__title { font-weight: 500; font-size: 1.8rem; margin-bottom: 8px; }
.c-timeline__content p { font-size: 1.5rem; line-height: 1.8; }
.c-step-list { counter-reset: step-counter; list-style: none; padding-left: 0; }

.c-step-list__item {
    font-size: 1.6rem;
    font-weight: 500;
    padding-left: 32px;
    position: relative;
    line-height: 1.4;
}

.c-timeline__content p a{
    text-decoration: underline;
    color: #3a9f38;
}

.c-step-list__item small {
    margin-top: 4px;
    display: block;
    line-height: 1.6;
    font-weight: 400;
}

.c-step-list__item:not(:last-child) { margin-bottom: 24px; }
.c-step-list__item::before {
    counter-increment: step-counter; content: counter(step-counter);
    position: absolute; left: 0px; top: 0;
    width: 24px; height: 24px;
    border-radius: 50%; background-color: var(--theme-color);
    color: #fff; font-size: 1.2rem;
    display: flex; justify-content: center; align-items: center; line-height: 1;
}

.c-icon-list { list-style: none; padding-left: 0; }
.c-icon-list__item {
    padding-left: 28px;
    position: relative;
    font-size: 1.6rem;
    line-height: 1.8;
}

.c-icon-list__item a{
    text-decoration: underline;
    color: #3a9f38;
}

.c-icon-list__item strong{
    font-weight: 500;
}

.c-icon-list__item:not(:last-child) { margin-bottom: 16px; }
.c-icon-list__item::before {
    content: ''; position: absolute; left: 0; top: 0.3em;
    width: 1.2em; height: 1.2em; background-size: contain; background-repeat: no-repeat;
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%233A9F38"%3E%3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/%3E%3C/svg%3E');
}
.c-icon-list__sublist {
    margin: 12px 0; padding-left: 20px; list-style-type: '・';
    display: flex; flex-direction: column; gap: 12px;
}
.c-instructor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 32px; }
.c-instructor-card {
    cursor: pointer; text-align: center; background: none; border: none; padding: 0; font-family: inherit;
    display: flex; flex-direction: column; height: 100%;
}
.c-instructor-card__img-wrapper {
    width: 100%; aspect-ratio: 1 / 1; background-color: var(--light-gray);
    border-radius: 8px; margin-bottom: 16px; box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transition: transform 0.3s, box-shadow 0.3s; overflow: hidden;
}
.c-instructor-card:hover .c-instructor-card__img-wrapper { transform: scale(1.05); box-shadow: 0 8px 25px rgba(0,0,0,0.15); }
.c-instructor-card__img { width: 100%; height: 100%; object-fit: cover; }
.c-instructor-card__text-content { flex-grow: 1; }
.c-instructor-card__text-content h4 {
    font-weight: 500; font-size: 1.6rem; line-height: 1.5; margin-bottom: 4px;
}
.c-instructor-card__text-content p {
    font-size: 1.3rem; line-height: 1.5; color: #666;
}

.p-course-detail__apply { text-align: center; padding: 100px 0; }
.p-course-detail__apply p { font-size: 1.6rem; line-height: 1.8; margin-top: 24px; }
.p-course-detail__apply-button-wrapper { margin-top: 40px; }
.c-button--large { background-color: var(--theme-color); color: #fff; font-size: 1.8rem; font-weight: 500; padding: 16px 64px; border-radius: 50px; display: inline-block; transition: background-color 0.3s; }
.c-button--large:hover { background-color: #318a30; }

.c-modal {
    margin: auto; 
    padding: 0;
    border: none;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    width: 90%;
    max-width: 600px;
}
.c-modal::backdrop {
    background-color: rgba(0,0,0,0.6);
}
.c-modal__content {
    padding: 40px;
    position: relative;
    overflow-y: scroll;
    max-height: 400px;
}
.c-modal__close-button {
    position: absolute; top: 16px; right: 16px;
    background: none; border: none; font-size: 2.8rem; line-height: 1;
    cursor: pointer; padding: 4px; color: #888;
}
.c-modal__title-group {
    margin-bottom: 24px;
    padding-right: 32px; /* 閉じるボタンと被らないように */
}
.c-modal__title {
    font-size: 2.2rem;
    margin: 0;
}
.c-modal__subtitle {
    font-size: 1.5rem;
    color: #666;
    margin: 8px 0 0;
}
.c-modal__text {
    font-size: 1.6rem;
    line-height: 1.8;
    margin-bottom: 24px;
}

.c-modal__text strong{
    font-weight: 600;
}

.c-modal__text a{
    text-decoration: underline;
    color: #3a9f38;
}

.c-modal__text:last-child{
    margin-bottom: 0;
}

.pp-page__inner{
    width: 88%;
    max-width: 880px;
    margin: 0 auto;
    background-color: #fff;
    padding: 48px;
    box-sizing: border-box;
    border-radius: 24px;
}




/*-------------------------------------------
// 個人情報保護方針
//-------------------------------------------*/
.privacy-policy__intro {
    line-height: 1.8;
    margin-bottom: 40px;
}

/* 各条項のセクション */
.privacy-policy__section {
    margin-top: 40px; /* 各条項の間のマージン */
}

/* 最初のセクションだけ上のマージンを0に */
.privacy-policy__section:first-of-type {
    margin-top: 0;
}

/* 各条項のタイトル (h2) */
.privacy-policy__title {
    font-size: 1.6rem;
    font-weight: bold;
    padding-bottom: 10px;
    border-bottom: 2px solid #eee;
    margin-bottom: 20px;
    margin-top: 0;
}

.privacy-policy__text {
    line-height: 1.8;
    margin-top: 0;
    margin-bottom: 20px;
}

/* 番号付きリスト (ol) */
.privacy-policy__list {
    font-size: 1rem;
    margin-top: 0;
    margin-bottom: 20px;
    
    /* ▼▼▼ ::beforeでマーカーを付けるための変更 ▼▼▼ */
    list-style: none; /* (A) デフォルトのマーカーを非表示 */
    padding-left: 0; /* (B) デフォルトのpaddingをリセット */
    counter-reset: list-counter; /* (C) CSSカウンターを「list-counter」という名前でリセット */
}

/* リストの項目 (li) */
.privacy-policy__item {
    line-height: 1.8;
    margin-bottom: 10px;

    /* ▼▼▼ ::beforeでマーカーを付けるための変更 ▼▼▼ */
    position: relative; /* (D) ::before の絶対位置の基準にする */
    padding-left: 2.5em; /* (E) マーカーを置くためのスペースを確保 */
}

/* リストの項目 (li) の最後の要素 */
.privacy-policy__item:last-child {
    margin-bottom: 0;
}

/* ▼▼▼ ::before マーカー（番号）を新設 ▼▼▼ */
/* (F) リストマーカー（番号）のスタイル */
.privacy-policy__list > .privacy-policy__item::before {
    content: counter(list-counter) "."; /* (G) カウンターの値 + "." を表示 */
    counter-increment: list-counter; /* (H) カウンターを1増やす */
    
    position: absolute;
    left: 0;
    top: 0;
    
    /* 桁が揃うように調整（9. と 10. の位置を揃える） */
    width: 2em; /* マーカーの幅を確保 */
    text-align: right; /* 番号を右揃え */
    padding-right: 0.5em; /* 番号とテキストの間隔 */
    box-sizing: border-box; /* paddingを含めてwidthを計算 */
    
    font-weight: bold; /* 番号を太字に */
}

/* ネストされたリスト（a, b, c...）用 */
.privacy-policy__list--alpha {
    margin-top: 10px;
    counter-reset: alpha-counter; /* (I) ネスト用に別のカウンターをリセット */
}

/* ▼▼▼ ネストされたマーカー（アルファベット）を新設 ▼▼▼ */
/* (J) ネストされたリストのマーカー（a, b, c...） */
.privacy-policy__list--alpha > .privacy-policy__item::before {
    content: "(" counter(alpha-counter, lower-alpha) ")"; /* (a), (b)... の形式 */
    counter-increment: alpha-counter; /* (K) ネスト用カウンターを増やす */
    
    /* スタイルを親と変える（任意） */
    width: 2em;
    text-align: right;
    padding-right: 0.5em;
    font-weight: normal; /* 太字を解除 */
}

/* リンク (a) */
.privacy-policy__link {
    color: #007bff;
    text-decoration: underline;
}
.privacy-policy__link:hover {
    text-decoration: none;
}

/* 問い合わせ先情報 */
.privacy-policy__contact {
    line-height: 1.8;
    margin-top: 0;
    margin-bottom: 20px;
}

/* ネストされたリスト（a, b, c...）用 */
.privacy-policy__list--alpha {
    list-style-type: lower-alpha;
    margin-top: 10px; /* 親リスト項目との余白 */
}















/* --- レスポンシブ設定--- */


/* 960px 以下 */
@media screen and (max-width:960px) {

.p-top-about__inner {
    gap: 80px;
}

.c-news-item__title {
    font-size: 1.6rem;
    box-sizing: border-box;
}




}



/* 880px 以下 */
@media screen and (max-width:880px) {

.p-top-about__title span {
    font-size: 2.4rem;
}

.p-top-about__text {
    font-size: 1.4rem;
}

.p-top-club__text-wrapper {
    width: 100%;
}

.l-footer::before {
    bottom: 88px;
    max-width: 480px;
}

}






/* 800px 以上 */
@media (min-width: 800px) {

a[href*="tel:"] {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}

.sp_view{
	display: none;
}

.p-club-course__body img{
    display: none;
}

}













































