@charset "utf-8";
/*
Theme Name: ef-company
Theme URI:
Description:
Author: s.t
Author URI:
License:
License URI:
Version: 10000.0
*/
/**
/* CSS RESET START
----------------------------------------------- */
html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, embed,figure, figcaption, footer, header, hgroup,menu, nav, output, ruby, section, summary,time, mark, audio, video {margin: 0;padding: 0;border: 0;vertical-align: baseline;box-sizing: border-box;-webkit-box-sizing: border-box;}
article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {display: block;}
html{overflow-y: scroll;}
blockquote, q {quotes: none;}
blockquote:before, blockquote:after,q:before, q:after {content: '';content: none;}
input, textarea{margin: 0;padding: 0;outline: none;}
ol, ul{list-style:none;}
table{border-collapse: collapse; border-spacing:0;width:100%;}
caption, th{text-align: left;}
img {vertical-align: middle;max-width:100%;height: auto;}
.clearfix {min-height: 1px;}
.clearfix:after {content: "."; display: block;clear: both;height: 0;visibility: hidden;}
.both{clear:both;}
/**
/* CSS START
----------------------------------------------- */
html,body {
	width: 100%;
	font-family: 'Zen Kaku Gothic New', sans-serif;
	color: #171717;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.01em;
	margin: 0;
	padding: 0;
}
#Wrapper{
	width: 100%;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow: hidden;
}
*, *:before, *:after{
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
}
* {
	word-break: break-all;
}
a{
	text-decoration: none;
	-webkit-transition: 0.8s;
	-moz-transition: 0.8s;
	-o-transition: 0.8s;
	-ms-transition: 0.8s;
	transition: 0.8s;
	color: #32A10A;
}
a:hover{
	opacity: 0.8;
}
.Com{
	zoom: 1;
}
.Com:before, .Com:after{
	content: "";
	display: table;
}
.Com:after{
	clear: both;
}
br.pc_br,
.pc_img,
.pc{
	display: none;
}
@media only screen and (min-width: 768px){
	br.sp_br,
	.sp_img,
	.sp{
		display: none;
	}
	.pc_img,
	br.pc_br{
		display: inline-block;
	}
	.pc{
		display: block;
	}
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}
/**
/* flex CSS
----------------------------------------------- */
.flex{
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}
.flex_row{
	webkit-box-orient: horizontal;
	-webkit-box-direction: reverse;
	-ms-flex-direction: row-reverse;
	flex-direction: row-reverse;
}
.flex_between{
	-webkit-justify-content: space-between;
	justify-content: space-between;
}
.flex_column{
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
		flex-direction: column;
}
.flex_center{
	-webkit-justify-content: center;
	justify-content: center;
}
.flex_wrap{
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	flex-wrap: wrap;
}
.items_center{
	align-items: center;
}
/**
/* Btn CSS
----------------------------------------------- */
.block_btn li{
	display: inline-block;
	width: 100%;
	max-width: 275px;
}
.block_btn .btn{
	position:relative;
	display: block;
	font-size: 18px;
	font-weight: 500;
	line-height: 2.5;
	letter-spacing: 0.1em;
	text-align: center;
}
.block_btn .blue{
	background: #ffffff;
	border: 1px solid #32A10A;
	color: #32A10A;
}
.block_btn .blue::after{
	position: absolute;
	top: 0;
	bottom: 0;
	right: 25px;
	margin: auto;
	content: "";
	vertical-align: middle;
	width: 10px;
	height: 10px;
	border-top: 2px solid #32A10A;
	border-right: 2px solid #32A10A;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.block_btn .blue:hover{
	background: #32A10A;
	color: #ffffff;
	opacity: 1;
}
.block_btn .blue:hover::after{
	border-top: 2px solid #ffffff;
	border-right: 2px solid #ffffff;
}
.block_btn .white{
	background: #ffffff;
	border: 1px solid #ffffff;
	color: #32A10A;
}
.block_btn .white:hover{
	background: #32A10A;
	color: #ffffff;
	opacity: 1;
}
.sns_btn.facebook li{
	display: inline-block;
	width: 100%;
}
.sns_btn.facebook a{
	background: #1877F2;
	color: #ffffff;
	display: flex;
	align-items: center;
	font-weight: 700;
}
.sns_btn.facebook a i{
	font-size: 30px;
}
@media only screen and (max-width: 767px) {
	.block_btn li{
		width: 100%;
		max-width: 100%;
	}
	.block_btn .btn{
		font-size: 4vw;
		line-height: 3;
	}
	.block_btn .blue::after{
		right: 5%;
		width: 2vw;
		height: 2vw;
	}
	.sns_btn.facebook a i{
		font-size: 6vw;
	}
}
@media only screen and (min-width: 768px) and (max-width: 1024px){
	.block_btn li{
		max-width: 230px;
	}
	.block_btn .btn{
		font-size: 16px;
	}
	.block_btn .blue::after{
		right: 20px;
		width: 8px;
		height: 8px;
	}
	.sns_btn.facebook a i{
		font-size: 26px;
	}
}
/* ===========================================
   ヘッダー CSS - TK GOLF STUDIO風デザイン
   =========================================== */

/* ヘッダー全体 */
.global-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: #fff;
}

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

/* ロゴ */
.header-logo {
    padding-left: 20px;
}

.header-logo h1,
.header-logo div {
    line-height: 0;
    margin: 0;
}

.header-logo img {
    height: 50px;
    width: auto;
}

/* ナビゲーション */
.header-nav {
    flex: 1;
    display: flex;
    justify-content: center;
}

.nav-list {
    display: flex;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-item {
    position: relative;
}

.nav-item a {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 25px;
    color: #333;
    text-decoration: none;
    transition: all 0.3s ease;
}

.nav-item a:hover {
    opacity: 0.7;
}

.nav-ja {
    font-size: 17px;
    font-weight: 500;
    white-space: nowrap;
}

.nav-en {
    font-size: 10px;
    font-weight: 400;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 2px;
}

/* CTAボタン */
.header-cta {
    display: flex;
    height: 70px;
}

.cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 0 25px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.cta-btn:hover {
    opacity: 0.85;
}

.cta-reservation {
    background: #32A10A; /* 緑色 */
    color: #fff;
    gap: 12px;
}

.cta-tel {
    background: #FFD700; /* 黄色 */
    color: #333;
    padding: 0 20px;
}

.cta-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.cta-icon svg {
    width: 28px;
    height: 28px;
}

.cta-text {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}

.cta-main {
    font-size: 36px;
	font-family: 'Montserrat', sans-serif;
font-style: italic;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.cta-sub {
    font-size: 12px;
    font-weight: 500;
}

/* ハンバーガーメニュー */
/* ハンバーガー（drawer.js対応） */
.drawer-hamburger {
    padding: 0;
    width: 30px;
    height: 20px;
    position: relative;
    cursor: pointer;
    margin-right: 15px;
    background: none;
    border: none;
    z-index: 9999;
}

.drawer-hamburger-icon,
.drawer-hamburger-icon::before,
.drawer-hamburger-icon::after {
    display: block;
    position: absolute;
    width: 100%;
    height: 2px;
    background: #333;
    transition: all 0.3s ease;
}

.drawer-hamburger-icon {
    top: 50%;
    transform: translateY(-50%);
}

.drawer-hamburger-icon::before {
    content: "";
    top: -8px;
}

.drawer-hamburger-icon::after {
    content: "";
    top: 8px;
}

/* ハンバーガー開いた状態（drawer-open時） */
.drawer-open .drawer-hamburger-icon {
    background: transparent;
}

.drawer-open .drawer-hamburger-icon::before {
    top: 0;
    transform: rotate(45deg);
}

.drawer-open .drawer-hamburger-icon::after {
    top: 0;
    transform: rotate(-45deg);
}

/* SPナビゲーション */
.sp-nav {
    position: fixed;
    top: 70px;
    left: 0;
    width: 100%;
    height: calc(100vh - 70px);
    background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 40%, #388e3c 100%);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    overflow-y: auto;
}

.sp-nav.active {
    transform: translateX(0);
}

.sp-nav-list {
    list-style: none;
    margin: 0;
    padding: 20px;
}

.sp-nav-list li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.sp-nav-list li a {
    display: block;
    padding: 15px 10px;
    color: #fff;
    text-decoration: none;
    font-size: 16px;
}

/* SPナビゲーション（drawer.js上書き） */
.drawer--top .drawer-nav,
.drawer-nav {
    background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 40%, #388e3c 100%) !important;
    background-color: transparent !important;
    z-index: 9998 !important;
    padding-top: 70px;
}

.drawer-menu > li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.drawer-menu-item {
    color: #fff !important;
    font-size: 16px;
    padding: 15px 20px;
}

.drawer-menu-item:hover {
    color: rgba(255, 255, 255, 0.8) !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
    text-decoration: none !important;
}

/* オーバーレイもヘッダーの下に */
.drawer-overlay {
    z-index: 9997 !important;
}

/* メインビジュアル */
.main-visual {
    margin-top: 70px;
}

.main-visual img {
    width: 100%;
    height: auto;
    display: block;
}

/* コンテンツ余白 */
#Content {
    margin-top: 70px;
}

.home #Content {
    margin-top: 0;
}

/* ===========================================
   レスポンシブ
   =========================================== */

/* タブレット */
@media only screen and (max-width: 1200px) {
    .nav-item a {
        padding: 10px 15px;
    }

    .nav-ja {
        font-size: 13px;
    }

    .cta-main {
        font-size: 16px;
    }

    .cta-btn {
        padding: 0 18px;
    }
}

@media only screen and (max-width: 1024px) {
    .header-inner {
        height: 60px;
    }

    .header-nav.pc,
    .header-cta.pc {
        display: none;
    }

    .hamburger.sp {
        display: block;
    }

    .sp-nav {
        top: 60px;
        height: calc(100vh - 60px);
    }

    .drawer-nav {
        padding-top: 60px !important;
    }

    .main-visual {
        margin-top: 60px;
    }

    #Content {
        margin-top: 60px;
    }

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

/* スマホ */
@media only screen and (max-width: 767px) {
    .header-inner {
        height: 55px;
    }

    .header-logo {
        padding-left: 15px;
    }

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

    .sp-nav {
        top: 55px;
        height: calc(100vh - 55px);
    }

    .drawer-nav {
        padding-top: 55px !important;
    }

    .main-visual {
        margin-top: 55px;
    }

    #Content {
        margin-top: 55px;
    }
}

/* PC表示/SP表示切り替え */
.pc {
    display: flex;
}

.sp {
    display: none;
}

@media only screen and (max-width: 1024px) {
    .pc {
        display: none !important;
    }

    .sp {
        display: block;
    }
}
/**
/* Common CSS
----------------------------------------------- */
.sidebar-ad{
	position: fixed;
	top: 70%;
	right: 0;
	z-index: 1000;
}
.sidebar-ad a{
	display: block;
	background: rgb(16,88,126,0.4);
	background: linear-gradient(335deg, rgba(16,88,126,0.4) 0%, rgba(22,46,69,0.4) 35%);
	color: #FFFFFF;
	font-size: 25px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: 0.1em;
	outline: 1px solid #FFFFFF;
	outline-offset: -12px;
	text-align: center;
	padding: 75px 63px 63px 63px;
}
.page-guide{
	padding: 100px 0 130px 0;
}
.single-guide{
	padding: 83px 0 80px 0;
}
.inner-wrap{
	width: 94%;
	max-width: 1100px;
	margin: 0 auto;
}
.inner{
	width: 90%;
	max-width: 1000px;
	margin: 0 auto;
}
.roma{
	font-family: 'Raleway', sans-serif;
}
dl.dl_table{
	width: 100%;
	display: table;
}
dl.dl_table dt,
dl.dl_table dd{
	display: table-cell;
}
@media only screen and (max-width: 767px) {
	.sidebar-ad{
		width: 100%;
		top: auto;
		bottom: 0;
		left: 0;
		right: 0;
	}
	.sidebar-ad a{
		font-size: 5vw;
		outline-offset: -5px;
		padding: 5%;
	}
	.page-guide{
		padding: 12% 0 15% 0;
	}
	.single-guide{
		padding: 10% 0 15% 0;
	}
	.inner-wrap{
		width: 90%;
	}
}
@media only screen and (min-width: 768px) and (max-width: 1024px){
	.sidebar-ad{
		top: 60%;
	}
	.sidebar-ad a{
		font-size: 20px;
		outline-offset: -8px;
		padding: 49px 40px 47px 40px;
	}
	.page-guide{
		padding: 60px 0 80px 0;
	}
	.single-guide{
		padding: 50px 0 60px 0;
	}
}
/**
/* 見出し　CSS
----------------------------------------------- */
.page-view{
	background: url(image/page-view.webp) no-repeat right center;
	background-size: cover;
	position: relative;
	padding: 67px 0 69px 0;
}

/* 緑グラデーション用のクラス */
.page-id-1249 .page-view {
	background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 40%, #388e3c 100%) 
}


.page-view .view-ttl{
	color: #FFFFFF;
}
.page-view .view-ttl h1{
	font-family: 'zenkaku gothic new', sans-serif;
	font-size: 34px;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.1em;
	margin-bottom: 7px;
}
.page-view .view-ttl .roma{
    font-family: 'Montserrat', sans-serif;
    font-style: italic;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.166;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.grid-ttl{
	margin-bottom: 16px;
}
.grid-ttl h2{
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.1em;
}
.grid-ttl .roma{
	color: #32A10A;
	font-size: 40px;
	font-weight: 600;
	line-height: 1.17;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
@media only screen and (max-width: 767px) {
	.page-view{
		background: url(image/sp_page-view.webp) no-repeat right center;
		background-size: cover;
		padding: 10% 0;
		margin-top: 15px;
	}

.page-id-1249 .page-view {
background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 40%, #388e3c 100%) 
}

	.page-view .view-ttl h1{
        	font-family: 'zenkaku gothic new', sans-serif;
		font-size: 7vw;
		margin-bottom: 1%;
	}
	.page-view .view-ttl .roma{
     font-family: 'Montserrat', sans-serif;
    font-style: italic;
		font-size: 4.4vw;
	}
	.grid-ttl{
		text-align: center;
		margin-bottom: 5%;
	}
	.grid-ttl h2{
		font-size: 4vw;
	}
	.grid-ttl .roma{
		font-size: 8vw;
	}
}
@media only screen and (min-width: 768px) and (max-width: 1024px){
	.page-view{
		background: url(image/page-view.png) no-repeat right 25% center;
		padding: 50px 0 50px 0;
		margin-top: 70px;
	}

.page-id-1249 .page-view {
	background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
}

	.page-view .view-ttl h1{
		font-size: 28px;
		margin-bottom: 5px;
	}
	.page-view .view-ttl .roma{
		font-size: 16px;
	}
	.grid-ttl{
		margin-bottom: 12px;
	}
	.grid-ttl h2{
		font-size: 14px;
	}
	.grid-ttl .roma{
		font-size: 32px;
	}
}
/**
/* パンくず CSS
----------------------------------------------- */
.breadcrumbs{
    position: relative;
	padding-top: 15px;
    padding-bottom: 20px;
    z-index: 20;
}
.breadcrumbs span{
	color: #B5B5B5;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.1em;
}
.breadcrumbs a span{
	color: #171717;
}

.page-id-1249 .breadcrumbs a span,
.page-id-1253 .breadcrumbs a span{
	color: #fff;
}

.breadcrumbs i{
	color: #32A10A;
	font-size: 14px;
	margin: 0 8px;
}
@media only screen and (max-width: 767px) {
	.breadcrumbs{
		padding-top: 3%;
	}
	.breadcrumbs span{
		font-size: 3.6vw;
	}
	.breadcrumbs i{
		font-size: 3.4vw;
		margin: 0 5px;
	}
}
@media only screen and (min-width: 768px) and (max-width: 1024px){
	.breadcrumbs span{
		font-size: 14px;
	}
	.breadcrumbs i{
		font-size: 12px;
		margin: 0 5px;
	}
}
/**
/* ページネーション CSS
----------------------------------------------- */
.wp-pagenavi{
	text-align: center;
	margin-top: 90px;
}
.wp-pagenavi a,
.wp-pagenavi span{
	display: inline-block;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
	color: #171717;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.33;
	border-radius: 4px;
	margin: 0 5px;
}
.wp-pagenavi a{
	background: #FFFFFF;
	border: 1px solid #E3E3E3;
	padding: 10px 13px 9px 13px;
}
.wp-pagenavi span.extend{
	border: none;
}
.wp-pagenavi a.previouspostslink{
	font-weight: 700;
	margin: 0 30px 0 0;
}
.wp-pagenavi a.nextpostslink{
	font-weight: 700;
	margin: 0 0 0 30px;
}
.wp-pagenavi span.current{
	background: #32A10A;
	border: 1px solid #32A10A;
	color: #ffffff;
	padding: 10px 13px 9px 13px;
}
.wp-pagenavi a:hover{
	background: #32A10A;
	border: 1px solid #32A10A;
	color: #ffffff;
}
@media only screen and (max-width: 767px) {
	.wp-pagenavi{
		margin-top: 15%;
	}
	.wp-pagenavi a,
	.wp-pagenavi span{
		font-size: 3.4vw;
		margin: 0 0.5%;
	}
	.wp-pagenavi a{
		padding: 2% 3% 1% 3%;
	}
	.wp-pagenavi a.previouspostslink{
		margin: 0 2% 0 0;
		padding: 2% 2% 1% 2%;
	}
	.wp-pagenavi a.nextpostslink{
		margin: 0 0 0 2%;
		padding: 2% 2% 1% 2%;
	}
	.wp-pagenavi span.current{
		padding: 2% 3% 1% 3%;
	}
}
@media only screen and (min-width: 768px) and (max-width: 1024px){
	.wp-pagenavi{
		margin-top: 70px;
	}
	.wp-pagenavi a,
	.wp-pagenavi span{
		font-size: 16px;
		margin: 0 3px;
	}
	.wp-pagenavi a{
		padding: 10px 12px 7px 12px;
	}
	.wp-pagenavi a.previouspostslink{
		margin: 0 20px 0 0;
	}
	.wp-pagenavi a.nextpostslink{
		margin: 0 0 0 20px;
	}
	.wp-pagenavi span.current{
		padding: 10px 12px 7px 12px;
	}
}
/**
/* お問い合わせ CSS
----------------------------------------------- */
.bottom-inquiry{
	background: linear-gradient(90deg, #427BB4 0%, #427BB4 50%, #32A10A 50%, #32A10A 100%);
}
.bottom-inquiry .inquiry-list{
	align-items: center;
}
.inquiry-list .inquiry-items{
	width: 50%;
	padding: 40px 0;
}
.inquiry-list .tel-items{
	max-width: 420px;
}
.inquiry-list .mail-items{
	max-width: 390px;
}
.inquiry-list .inquiry-items .iconArea{
	text-align: center;
}
.inquiry-list .tel-items .iconArea{
	margin-bottom: 9px;
}
.inquiry-list .mail-items .iconArea{
	margin-bottom: 16px;
}
.inquiry-list .inquiry-items .ttl{
	color: #ffffff;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.05em;
	text-align: center;
}
.inquiry-list .tel-items .tel_btn{
	margin-top: 12px;
}
.inquiry-list .tel-items .tel_btn a{
	font-family: 'Alata', sans-serif;
	display: block;
	color: #ffffff;
	font-size: 46px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.1em;
}
.inquiry-list .mail-items .block_btn{
	margin-top: 20px;
}
.inquiry-list .mail-items .block_btn li{
	max-width: 390px;
}
.inquiry-list .mail-items .block_btn .btn{
	font-weight: 700;
	line-height: 2.9;
}
@media only screen and (max-width: 767px) {
	.bottom-inquiry .inquiry-list{
		width: 100%;
	}
	.inquiry-list .inquiry-items{
		width: 100%;
		padding: 6% 5% 5% 5%;
	}
	.inquiry-list .tel-items{
		background: #427BB4;
		max-width: 100%;
	}
	.inquiry-list .mail-items{
		background: #32A10A;
		max-width: 100%;
	}
	.inquiry-list .tel-items .iconArea{
		margin-bottom: 2%;
	}
	.inquiry-list .tel-items .iconArea img{
		width: 12vw;
	}
	.inquiry-list .mail-items .iconArea{
		margin-bottom: 3%;
	}
	.inquiry-list .mail-items .iconArea img{
		width: 10vw;
	}
	.inquiry-list .inquiry-items .ttl{
		font-size: 4.2vw;
	}
	.inquiry-list .tel-items .tel_btn{
		margin-top: 2%;
	}
	.inquiry-list .tel-items .tel_btn a{
		font-size: 8vw;
		text-align: center;
	}
	.inquiry-list .mail-items .block_btn{
		text-align: center;
		margin-top: 2%;
	}
	.inquiry-list .mail-items .block_btn li{
		width: 90%;
		max-width: 100%;
	}
}
@media only screen and (min-width: 768px) and (max-width: 1024px){
	.bottom-inquiry .inquiry-list{
		width: 94%;
	}
	.inquiry-list .inquiry-items{
		padding: 30px 0;
	}
	.inquiry-list .tel-items{
		max-width: 420px;
	}
	.inquiry-list .mail-items{
		max-width: 300px;
	}
	.inquiry-list .tel-items .iconArea{
		margin-bottom: 7px;
	}
	.inquiry-list .tel-items .iconArea img{
		width: 46px;
	}
	.inquiry-list .mail-items .iconArea{
		margin-bottom: 16px;
	}
	.inquiry-list .mail-items .iconArea img{
		width: 40px;
	}
	.inquiry-list .inquiry-items .ttl{
		font-size: 16px;
	}
	.inquiry-list .tel-items .tel_btn{
		margin-top: 10px;
	}
	.inquiry-list .tel-items .tel_btn a{
		font-size: 34px;
	}
	.inquiry-list .mail-items .block_btn{
		margin-top: 15px;
	}
	.inquiry-list .mail-items .block_btn li{
		max-width: 300px;
	}
}

/* ===========================================
   フッター CSS
   =========================================== */

#footer {
    margin-top: auto;
}

.footer-main {
    background: #32A10A;
    padding: 50px 0;
}

.footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    gap: 60px;
}

/* 左側：ロゴ・住所・営業時間 */
.footer-info {
    color: #fff;
}

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

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

.footer-company {
    font-family: 'Montserrat', sans-serif;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin: 0 0 20px 0;
    color: #fff;
}

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

.footer-address p {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.footer-hours p {
    font-size: 14px;
    line-height: 1.8;
    margin: 0;
}

/* 右側：ナビゲーション */
.footer-nav {
    display: flex;
    gap: 60px;
}

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

.footer-nav-list li {
    margin-bottom: 12px;
}

.footer-nav-list li:last-child {
    margin-bottom: 0;
}

.footer-nav-list a {
    color: #fff;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.footer-nav-list a:hover {
    opacity: 0.7;
}

/* コピーライト */
.footer-copy {
    background: #32A10A;
    text-align: center;
    padding: 15px 20px;
}

.footer-copy p {
    color: #fff;
    font-size: 12px;
    letter-spacing: 0.05em;
    margin: 0;
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 1024px) {
    .footer-main {
        padding: 40px 0;
    }

    .footer-inner {
        gap: 40px;
    }

    .footer-nav {
        gap: 40px;
    }

    .footer-company {
        font-size: 20px;
    }
}

@media only screen and (max-width: 767px) {
    .footer-main {
        padding: 35px 0;
    }

    .footer-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 30px;
        padding: 0 15px;
    }

    .footer-info {
        width: 100%;
    }

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

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

    .footer-company {
        font-size: 18px;
        margin-bottom: 15px;
    }

    .footer-address p,
    .footer-hours p {
        font-size: 13px;
    }

    .footer-nav {
        flex-direction: column;
        gap: 25px;
        width: 100%;
    }

    .footer-nav-list {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px 20px;
    }

    .footer-nav-list li {
        margin-bottom: 0;
    }

    .footer-nav-list a {
        font-size: 13px;
    }

    .footer-copy {
        padding: 12px 15px;
    }

    .footer-copy p {
        font-size: 11px;
    }
}


/* ===========================================
   ABOUTセクション CSS
   =========================================== */

.about-section {
    padding: 20px 0;
    background: #fff;
}

.about-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* タイトル */
.about-title {
    text-align: center;
    margin-bottom: 30px;
}

.about-title .title-en {
font-family: 'Montserrat', sans-serif;
font-style: italic;
    font-size: 60px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #32A10A;
    margin: 0;
}

.about-title .title-ja {
    font-size: 14px;
    color: #666;
    margin-top: 10px;
}

/* リード文 */
.about-lead {
    text-align: center;
    font-size: 32px;
    line-height: 1.8;
    margin-bottom: 40px;
}

.about-lead .highlight {
    color: #32A10A;
    font-weight: 700;
}

/* 3カラム */
.about-points {
    display: flex;
    justify-content: center;
    gap: 25px;
    margin-bottom: 50px;
}

.point-item {
    flex: 1;
    max-width: 320px;
    text-align: center;
	    background: #fff;
    border-radius: 20px;
    padding: 0 0 30px 0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

/* 画像 */
.point-image {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: -25px;
}

.point-image img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

/* POINTラベル */
.point-label {
    position: relative;
    z-index: 1;
    display: inline-block;
}

.point-label span {
    display: inline-block;
    background: #32A10A;
    color: #fff;
    font-family: 'Train One', cursive;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 12px 30px;
    border-radius: 30px;
}

/* テキスト */
.point-text {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.8;
    color: #333;
    margin-top: 20px;
}

/* ボタン */
.about-btn {
    text-align: center;
}

.about-btn a {
    display: inline-block;
    background: #32A10A;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 18px 80px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.about-btn a:hover {
    background: #32A10A;
    opacity: 1;
}

/* ===========================================
   レスポンシブ
   =========================================== */

/* タブレット */
@media only screen and (max-width: 1024px) {
    .about-section {
        padding: 60px 0;
    }

    .about-title .title-en {
        font-size: 58px;
    }

    .about-lead {
        font-size: 26px;
    }

    .about-points {
        gap: 15px;
    }

    .point-image img {
        height: 180px;
    }

    .point-label span {
        font-size: 18px;
        padding: 10px 25px;
    }

    .point-text {
        font-size: 14px;
    }
}

/* スマホ */
@media only screen and (max-width: 767px) {
    .about-section {
        padding: 50px 0;
    }

    .about-inner {
        padding: 0 15px;
    }

    .about-title .title-en {
        font-size: 58px;
        white-space: nowrap;
    }

    .about-title .title-ja {
        font-size: 20px;
    }

    .about-lead {
        font-size: 25px;
        margin-bottom: 30px;
    }

    /* 1列に変更 */
    .about-points {
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }

    .point-item {
        max-width: 100%;
        width: 100%;
    }

    .point-image img {
        height: 200px;
    }

    .point-label span {
        font-size: 20px;
        padding: 12px 35px;
    }

    .point-text {
        font-size: 25px;
    }

    .about-btn a {
        padding: 15px 60px;
        font-size: 15px;
    }
}

/* ===========================================
   お知らせバー CSS
   =========================================== */

.announce-bar {
    background: #32A10A;
    text-align: center;
    padding: 12px 15px;
}

.announce-bar p {
    color: #fbff00;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0;
}

/* ===========================================
   バナーセクション CSS
   =========================================== */

.banner-section {
    padding: 50px 0;
}

.banner-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.banner-inner a {
    display: inline-block;
    transition: all 0.3s ease;
}

.banner-inner a:hover {
    opacity: 0.85;
    transform: scale(1.02);
}

.banner-inner img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 767px) {
    .announce-bar {
        padding: 10px 15px;
    }

    .announce-bar p {
        font-size: 14px;
    }

    .banner-section {
        padding: 30px 0;
    }

    .banner-inner {
        padding: 0 15px;
    }
}

/* ===========================================
   COACHセクション CSS
   =========================================== */

.coach-section {
    padding: 80px 0;
    background: #fff;
}

.coach-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    gap: 60px;
}

/* 左側：テキスト */
.coach-content {
    flex: 1;
    min-width: 0;
}

.coach-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 60px;
    font-weight: 700;
    font-style: italic;
    color: #32A10A;
    letter-spacing: 0.05em;
    margin: 0 0 15px 0;
}

.coach-name-ja {
    font-size: 28px;
    font-weight: 700;
    color: #333;
    margin: 0 0 5px 0;
}

.coach-name-en {
    font-size: 14px;
    color: #888;
    margin: 0 0 20px 0;
}

.coach-text {
    margin-bottom: 30px;
}

.coach-text p {
    font-size: 18px;
    line-height: 2;
    color: #333;
    margin: 0;
}

.coach-btn a {
    display: inline-block;
    background: #32A10A;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 15px 50px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.coach-btn a:hover {
    background: #32A10A;
    opacity: 1;
}

/* 右側：画像 */
.coach-image {
    flex-shrink: 0;
    width: 380px;
}

.image-frame {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
}

/* 装飾ライン（右上・右下） */
.image-frame::before,
.image-frame::after {
    content: '';
    position: absolute;
    width: 3px;
    height: 80px;
    background: #32A10A;
    right: -15px;
}

.image-frame::before {
    top: 0;
}

.image-frame::after {
    bottom: 0;
}

.coach-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 20px;
}

/* ===========================================
   レスポンシブ
   =========================================== */

/* タブレット */
@media only screen and (max-width: 1024px) {
    .coach-section {
        padding: 60px 0;
    }

    .coach-inner {
        gap: 40px;
    }

    .coach-title {
        font-size: 58px;
    }

    .coach-name-ja {
        font-size: 24px;
    }

    .coach-text p {
        font-size: 18px;
    }

    .coach-image {
        max-width: 400px;
    }
}

/* スマホ */
@media only screen and (max-width: 767px) {
    .coach-section {
        padding: 50px 0;
    }

    .coach-inner {
        flex-direction: column;
        gap: 30px;
        padding: 0 20px; /* 15px → 20px に変更 */
        align-items: center; /* 中央揃えを追加 */
    }

    .coach-content {
        width: 100%; /* 幅を100%に */
        padding-left: 0; /* 左パディングを削除 */
        order: 2;
        text-align: center; /* テキストを中央揃え */
    }

    .coach-image {
        max-width: 100%;
        width: 100%;
        order: 1;
    }

    .coach-title {
        font-size: 58px;
        margin-bottom: 10px;
    }

    .coach-name-ja {
        font-size: 22px;
    }

    .coach-name-en {
        font-size: 13px;
        margin-bottom: 15px;
    }

    .coach-text {
        margin-bottom: 25px;
        text-align: left; /* 本文は左揃え */
        padding: 0 10px; /* 左右に余白を追加 */
    }

    .coach-text p {
        font-size: 18px;
        line-height: 1.9;
    }

    .coach-btn {
        text-align: center;
    }

    .coach-btn a {
        padding: 14px 45px;
    }

    .image-frame::before,
    .image-frame::after {
        display: none; /* スマホでは装飾ラインを非表示 */
    }
}

/* ===========================================
   区切り線 CSS
   =========================================== */

.section-line {
    border: none;
    height: 4px;
    background: #32A10A;
    margin: 0;
}

/* ===========================================
   ゴルフ理論セクション CSS
   =========================================== */

.theory-section {
    position: relative;
    background-image: url('./image/theory_bg.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 100px 0;
}

/* 緑のオーバーレイ */
.theory-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(50, 161, 10, 0.60);
    z-index: 1;
}

.theory-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* タイトル */
.theory-title {
    color: #fff;
    margin: 0 0 35px 0;
}

.theory-title .title-name {
    display: block;
    font-size: 28px;
    font-weight: 500;
    letter-spacing: 0.2em;
    margin-bottom: 10px;
}

.theory-title .title-main {
    display: block;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

/* ボタン */
.theory-btn a {
    display: inline-block;
    background: #fff;
    color: #32A10A;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.15em;
    padding: 18px 60px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.theory-btn a:hover {
    background: #333;
    color: #fff;
    opacity: 1;
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 1024px) {
    .theory-section {
        padding: 80px 0;
    }

    .theory-title .title-name {
        font-size: 24px;
    }

    .theory-title .title-main {
        font-size: 30px;
    }
}

@media only screen and (max-width: 767px) {
    .theory-section {
        padding: 60px 0;
    }

    .theory-inner {
        padding: 0 15px;
    }

    .theory-title {
        margin-bottom: 30px;
    }

    .theory-title .title-name {
        font-size: 20px;
        letter-spacing: 0.15em;
        margin-bottom: 8px;
    }

    .theory-title .title-main {
        font-size: 24px;
        letter-spacing: 0.1em;
    }

    .theory-btn a {
        padding: 15px 50px;
        font-size: 13px;
    }
}

/* ===========================================
   PRICEセクション CSS
   =========================================== */

.price-section {
    position: relative;
    background-image: url('./image/price_bg.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 80px 0;
}

.price-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

.price-inner {
	 position: relative;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px;
	z-index: 2;
}

/* タイトル */
.price-header {
    text-align: center;
    margin-bottom: 30px;
}

.price-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 60px;
    font-weight: 700;
    font-style: italic;
    color: #fff;
    letter-spacing: 0.1em;
    margin: 0;
}

.price-subtitle {
    font-size: 14px;
    color: #fff;
    margin-top: 5px;
}

/* 入会金 */
.admission-fee {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-bottom: 10px;
}

.admission-fee .fee-label {
    display: inline-block;
    background: #382900;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    padding: 8px 20px;
    border-radius: 5px;
}

.admission-fee .fee-amount {
    font-size: 42px;
    font-weight: 700;
    color: #fff;
}

.admission-note {
    text-align: center;
    font-size: 14px;
    color: #fff;
    margin-bottom: 30px;
}

/* 料金カード 2カラム */
.price-cards {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}

.price-card {
    flex: 1;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 10px;
    overflow: hidden;
}

/* カードヘッダー */
.card-header {
    text-align: center;
    padding: 2px 20px;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.3em;
    color: #fff;
}

.monthly-header {
    background: #FFC400;
}

.single-header {
    background: #F47920;
}

/* カードボディ */
.card-body {
    padding: 25px 25px 20px;
}

.plan-name {
    font-size: 26px;
    font-weight: 700;
    color: #382900;
    margin: 0 0 15px 0;
}

/* タグ */
.plan-tags {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.plan-tags .tag {
    display: inline-block;
    font-size: 13px;
	font-family: 'zenkaku gothic new', sans-serif;
    color: #fff;
    padding: 5px 20px;
	background-color: #382900;
    border: 3px solid #382900;
    border-radius: 20px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

/* 料金行 */
.plan-prices {
    border-top: 1px dotted #ccc;
}

.plan-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
    border-bottom: 2px dotted #ccc;
}

.plan-type .type-name {
    display: block;
    font-size: 24px;
    font-weight: 700;
    color: #333;
}

/* スマホサイズ */
@media screen and (max-width: 480px) {
    .plan-type .type-name {
        font-size: 32px;  /* スマホ用 */
    }
}

.plan-type .type-note {
    display: block;
    font-size: 11px;
    color: #888;
    margin-top: 3px;
}

.plan-price {
    font-size: 24px;
	font-family: 'Montserrat', sans-serif;
	font-style: italic;
    font-weight: 700;
    color: #333;
}

.plan-price .tax {
    font-size: 14px;
    font-weight: 500;
}

.card-note {
    text-align: right;
    font-size: 12px;
    color: #888;
    margin: 10px 0 0 0;
}

/* ビジター練習利用料金 */
.visitor-fee {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 10px;
    padding: 20px 30px;
    margin-bottom: 30px;
}

.visitor-label {
    display: flex;
    flex-direction: column;
    background: #32A10A;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    padding: 10px 20px;
    border-radius: 5px;
    line-height: 1.4;
}

.visitor-price .amount {
    font-size: 42px;
	font-family: 'Montserrat', sans-serif;
	font-style: italic;
    font-weight: 700;
    color: #32A10A;
}

.visitor-price .tax {
    font-size: 18px;
    font-weight: 700;
    color: #32A10A;
}

.visitor-note {
    flex: 1;
}

.visitor-note p {
    font-size: 16px;
    color: #666;
    margin: 0;
}

/* ボタン */
.price-btn {
    text-align: center;
}

.price-btn a {
    display: inline-block;
    background: #32A10A;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 18px 80px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.price-btn a:hover {
    background: #32A10A;
    opacity: 1;
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 1024px) {
    .price-section {
        padding: 60px 0;
    }

    .price-title {
        font-size: 48px;
    }

    .admission-fee .fee-amount {
        font-size: 50px;
    }

    .plan-name {
        font-size: 28px;
    }

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

    .visitor-price .amount {
        font-size: 36px;
    }
}

@media only screen and (max-width: 767px) {
    .price-section {
        padding: 50px 0;
    }

    .price-inner {
        padding: 0 15px;
    }

    .price-title {
        font-size: 48px;
    }

    .admission-fee {
        flex-direction: column;
        gap: 10px;
    }

    .admission-fee .fee-label {
        font-size: 16px;
        padding: 6px 16px;
    }

    .admission-fee .fee-amount {
        font-size: 32px;
    }

    /* 1カラムに変更 */
    .price-cards {
        flex-direction: column;
    }

    .card-body {
        padding: 20px 30px;
    }

    .plan-name {
        font-size: 28px;
    }

    .plan-tags {
        flex-wrap: wrap;
    }

    .plan-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }

    .plan-price {
        font-size: 22px;
        align-self: flex-end;
    }

    /* ビジター */
    .visitor-fee {
        flex-direction: column;
        text-align: center;
        padding: 20px 15px;
    }

    .visitor-price .amount {
        font-size: 32px;
    }

    .price-btn a {
        padding: 15px 60px;
        font-size: 15px;
    }
}

/* ===========================================
   NEWSセクション CSS
   =========================================== */

.news-section {
    padding: 80px 0;
    background: #fff;
}

.news-inner {
    display: flex;
    align-items: flex-start;
    gap: 50px;
    max-width: 900px;
    margin: 0 auto 40px;
    padding: 0 20px;
}

/* 左側：タイトルブロック */
.news-title-block {
    background: #4CAF50;
    color: #fff;
    text-align: center;
    padding: 40px 50px;
    flex-shrink: 0;
}

.news-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 36px;
    font-weight: 700;
    font-style: italic;
    letter-spacing: 0.05em;
    margin: 0 0 5px 0;
}

.news-subtitle {
    font-size: 14px;
    letter-spacing: 0.1em;
    margin: 0;
}

/* 右側：ニュース一覧 */
.news-list {
    flex: 1;
}

.news-item {
    display: block;
    padding: 20px 0;
    border-bottom: 1px solid #eee;
    text-decoration: none;
    transition: all 0.3s ease;
}

.news-item:first-child {
    padding-top: 0;
}

.news-item:hover {
    opacity: 0.7;
}

.news-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.news-date {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    color: #4CAF50;
    letter-spacing: 0.05em;
}

.news-new {
    display: inline-block;
    background: #4CAF50;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 3px;
}

.news-item-title {
    font-size: 20px;
    color: #333;
    margin: 0;
    line-height: 1.6;
}

/* ボタン */
.news-btn {
    text-align: center;
}

.news-btn a {
    display: inline-block;
    background: #4CAF50;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.15em;
    padding: 18px 70px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.news-btn a:hover {
    background: #32A10A;
    opacity: 1;
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 1024px) {
    .news-section {
        padding: 60px 0;
    }

    .news-inner {
        gap: 30px;
    }

    .news-title-block {
        padding: 30px 35px;
    }

    .news-title {
        font-size: 30px;
    }
}

@media only screen and (max-width: 767px) {
    .news-section {
        padding: 50px 0;
    }

    .news-inner {
        flex-direction: column;
        align-items: center;
        gap: 25px;
        padding: 0 15px;
        margin-bottom: 30px;
    }

    .news-title-block {
        width: 100%;
        padding: 25px 20px;
    }

    .news-title {
        font-size: 28px;
    }

    .news-subtitle {
        font-size: 13px;
    }

    .news-list {
        width: 100%;
    }

    .news-item {
        padding: 15px 0;
    }

    .news-date {
        font-size: 13px;
    }

    .news-item-title {
        font-size: 16px;
    }

    .news-btn a {
        padding: 15px 55px;
        font-size: 13px;
    }
}

/* ===========================================
   MAPセクション CSS
   =========================================== */

.exterior-section {
    width: 100%;
}

.exterior-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 20px;
}

.exterior-container img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.map-section {
    width: 100%;
}

.map-container {
    width: 100%;
    height: 400px;
}

.map-container iframe {
    width: 100%;
    height: 100%;
    display: block;
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 767px) {
    .map-container {
        height: 300px;
    }

    .exterior-container {
        padding: 24px 15px;
    }

    .exterior-container img {
        border-radius: 4px;
    }
}

/* ===========================================
   CTAセクション CSS
   =========================================== */

.cta-section {
    padding: 40px 0;
}

.cta-inner {
    display: flex;
    justify-content: center;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.cta-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    flex: 1;
    max-width: 360px;
    padding: 20px 30px;
    border-radius: 5px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.cta-box:hover {
    opacity: 0.85;
}

/* 電話ボタン */
.cta-tel-box {
    background: #FCAF17;
    color: #fff;
}

/* 予約ボタン */
.cta-reservation-box {
    background: #3E3A39;
    color: #fff;
}

/* LINEボタン */
.cta-line-box {
    background: #06C755;
    color: #fff;
}

.cta-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.cta-icon svg {
    width: 32px;
    height: 32px;
}

.cta-text {
    display: flex;
    flex-direction: column;
    line-height: 1.4;
}

.cta-main {
    font-family: 'Montserrat', sans-serif;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.cta-sub {
    font-size: 13px;
    letter-spacing: 0.05em;
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 1024px) {
    .cta-inner {
        gap: 12px;
    }

    .cta-box {
        padding: 16px 18px;
    }

    .cta-main {
        font-size: 20px;
    }

    .cta-sub {
        font-size: 12px;
    }

    .cta-icon svg {
        width: 28px;
        height: 28px;
    }
}

@media only screen and (max-width: 767px) {
    .cta-section {
        padding: 30px 0;
    }

    .cta-inner {
        flex-direction: column;
        align-items: center;
        gap: 15px;
        padding: 0 15px;
    }

    .cta-box {
        width: 100%;
        max-width: 100%;
        padding: 18px 20px;
        gap: 12px;
    }

    .cta-main {
        font-size: 20px;
    }

    .cta-sub {
        font-size: 12px;
    }

    .cta-icon svg {
        width: 26px;
        height: 26px;
    }
}

/* スマホのみ改行 */
.sp-br {
    display: none;
}

@media only screen and (max-width: 767px) {
    .sp-br {
        display: block;
    }
}

/* ===========================================
   トップへ戻るボタン CSS
   =========================================== */

.totop {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 9000;
    /* 常に表示 */
    opacity: 1;
    visibility: visible;
}

.totop img {
    width: 60px;
    height: auto;
    display: block;
}

.totop:hover {
    opacity: 0.8;
}

.totop img {
    width: 60px;
    height: auto;
    display: block;
}

/* ===========================================
   レスポンシブ
   =========================================== */

@media only screen and (max-width: 767px) {
    .totop {
        right: 15px;
        bottom: 15px;
    }

    .totop img {
        width: 50px;
    }
}

html {
    scroll-behavior: smooth;
}

/* 初期状態 */
.js-animate {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* 表示状態 */
.js-animate.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* ===========================================
   facilityセクション CSS
   =========================================== */

.facility-section {
    padding: 80px 0;
    background: #fff;
}

.facility-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1100px;
    margin: 0 auto;
    padding: 20px 20px;
    gap: 60px;
}

/* 左側：テキスト */

.facility-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 60px;
    font-weight: 700;
    font-style: italic;
    color: #32A10A;
    letter-spacing: 0.05em;
    margin: 0 0 15px 0;
}

.facility-name-ja {
        font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 700;
    color: #333;
    margin: 0 0 5px 0;
}

.facility-name-en {
    font-size: 14px;
    color: #888;
    margin: 0 0 20px 0;
}

.facility-text {
    margin-bottom: 30px;
}

.facility-text p {
    font-size: 15px;
    line-height: 2;
    color: #333;
    margin: 0;
}

.facility-btn a {
    display: inline-block;
    background: #32A10A;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 15px 50px;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.facility-btn a:hover {
    background: #32A10A;
    opacity: 1;
}

/* 右側：画像 */
.facility-image {
    flex: 1;
    max-width: 480px;
}

.image-frame {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
}

/* 装飾ライン（右上・右下） */
.image-frame::before,
.image-frame::after {
    content: '';
    position: absolute;
    width: 3px;
    height: 80px;
    background: #32A10A;
    right: -15px;
}

.image-frame::before {
    top: 0;
}

.image-frame::after {
    bottom: 0;
}

.facility-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 20px;
}

/* ===========================================
   レスポンシブ
   =========================================== */

/* タブレット */
@media only screen and (max-width: 1024px) {
    .facility-section {
        padding: 60px 0;
    }

    .facility-inner {
        gap: 40px;
    }

    .facility-title {
        font-size: 58px;
    }

    .facility-name-ja {
            font-family: 'Montserrat', sans-serif;
        font-size: 32px;
    }

    .facility-text p {
        font-size: 16px;
    }

    .facility-image {
        max-width: 400px;
    }
}

/* スマホ */
@media only screen and (max-width: 767px) {
    .facility-section {
        padding: 50px 0;
    }

    .facility-inner {
        flex-direction: column;
        gap: 30px;
        padding: 0 20px; /* 15px → 20px に変更 */
        align-items: center; /* 中央揃えを追加 */
    }

    .facility-content {
        width: 100%; /* 幅を100%に */
        padding-left: 0; /* 左パディングを削除 */
        order: 2; /* 画像の下に配置 */
    }

    .facility-image {
        max-width: 100%;
        width: 100%;
        order: 1; /* 画像を上に配置 */
    }

    .facility-title {
        font-size: 58px;
        margin-bottom: 10px;
    }

    .facility-name-ja {
        font-family: 'Montserrat', sans-serif;
        font-size: 46px;
    }

    .facility-name-en {
        font-size: 24px;
        margin-bottom: 15px;
    }

    .facility-text {
        margin-bottom: 25px;
        text-align: left; /* 本文は左揃え */
        padding: 0 10px; /* 左右に余白を追加 */
    }

    .facility-text p {
        font-size: 14px;
        line-height: 1.9;
    }

    .facility-btn {
        text-align: center;
        margin-bottom: 30px;
    }

    .facility-btn a {
        padding: 14px 45px;
    }

    .image-frame::before,
    .image-frame::after {
        display: none; /* スマホでは装飾ラインを非表示 */
    }
}



/* ===========================================
   営業日
   =========================================== */


.business-hours {
  background: linear-gradient(135deg, #2e7d32 0%, #388e3c 40%, #43a047 100%);
  padding: 32px 40px 36px;
  position: relative;
  overflow: hidden;
}

/* ドット模様の背景 */
.business-hours::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.08) 1.5px, transparent 1.5px);
  background-size: 18px 18px;
  pointer-events: none;
}

.table-wrapper {
  max-width: 1100px;
  position: relative;
  z-index: 1;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
  margin: 0 auto;
}

.table-header {
  background: #32A10A;
  text-align: center;
  padding: 14px 24px;
}

.table-header h2 {
  color: #fff;
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0.6em;
  text-indent: 0.6em;
}

table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}

td {
  padding: 18px 24px;
  font-size: 22px;
  color: #32A10A;
  font-weight: 600;
  border-bottom: 1px solid #e0e0e0;
  letter-spacing: 0.15em;
}

tr:last-child td {
  border-bottom: none;
}

td:first-child {
  width: 45%;
  text-align: center;
  border-right: 1px solid #e0e0e0;
}

td:last-child {
  width: 55%;
  text-align: center;
}

/* タブレット */
@media screen and (max-width: 1140px) {
  .business-hours {
    width: 95%;
    padding: 24px 20px 28px;
  }
}

/* スマホ */
@media screen and (max-width: 600px) {
  .business-hours {
    width: 100%;
    border-radius: 0;
    padding: 16px 12px 20px;
  }

  .table-header {
    padding: 10px 16px;
  }

  .table-header h2 {
    font-size: 22px;
    letter-spacing: 0.4em;
    text-indent: 0.4em;
  }

  td {
    padding: 14px 12px;
    font-size: 16px;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }
}

.access-title {
    text-align: center;
    margin-bottom: 30px;
    margin-top: 50px;
}

.access-title .title-en {
font-family: 'Montserrat', sans-serif;
font-style: italic;
    font-size: 60px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #fff;
    margin: 0;
}

.access-title .title-ja {
    font-size: 14px;
    color: #fff;
    margin-top: 10px;
}





/* コンテナ */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

/* ステップコンテナ */
.step-container {
    background: white;
    margin-bottom: 30px;
    padding: 30px;
}

.step-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.step-title {
       font-family: 'Montserrat', sans-serif;
    font-size: 1.5rem;
    color: #32A10A;
    font-weight: bold;
    margin-bottom: 20px;
}

.step-text {
    font-size: 0.95rem;
    line-height: 1.8;
}

.step-image img {
    border-radius: 20px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* 矢印 */
.arrow {
    text-align: center;
    margin: 20px 0;
}

.arrow::before {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 45px solid #32A10A;
}

/* スマホ対応（1カラム） */
@media (max-width: 768px) {
    h1 {
        font-size: 2rem;
    }

    .container {
        padding: 20px 15px;
    }

    .step-container {
        padding: 20px;
    }

    .step-content {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .step-text {
        order: 2;
    }

    .step-image {
        order: 1;
    }

    .arrow {
        margin: 15px 0;
    }
}

.faq-section {
  background: linear-gradient(135deg, #2e7d32 0%, #388e3c 40%, #43a047 100%);
  padding: 32px 40px 36px;
  position: relative;
  overflow: hidden;
}

/* ドット模様の背景 */
.faq-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.08) 1.5px, transparent 1.5px);
  background-size: 18px 18px;
  pointer-events: none;
}

.faq-section .inner {
max-width: 1100px;
  margin: 0 auto;
  padding: 40px 20px;
  background-color: #f5f5f5;
    border-radius: 20px;
}

.faq-header {
  background-color: #f5f5f5;
  padding: 20px;
  border-radius: 10px 10px 0 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.faq-icon {
  width: 40px;
  height: 40px;
}

.faq-header h2 {
  font-size: 18px;
  margin: 0;
  color: #333;
}

.faq-list {
  background-color: #f5f5f5;
  padding: 0 20px 20px;
  border-radius: 0 0 10px 10px;
}

.faq-item {
  margin-bottom: 10px;
}

.faq-question {
  width: 100%;
  background-color: #3d2817;
  color: #fff;
  border: none;
  padding: 20px;
  text-align: left;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: 5px;
  transition: background-color 0.3s;
}

.faq-question:hover {
  background-color: #4d3520;
}

.faq-toggle {
  font-size: 24px;
  font-weight: bold;
  transition: transform 0.3s;
}

.faq-item.active .faq-toggle {
  transform: rotate(45deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
  background-color: #fff;
  border-radius: 0 0 5px 5px;
}

.faq-item.active .faq-answer {
  max-height: 500px;
  padding: 20px;
}

.faq-answer p {
  margin: 10px 0;
  line-height: 1.8;
  color: #333;
}

.faq-answer strong {
  color: #000;
}

/* スマホ表示用のメディアクエリ */
@media (max-width: 768px) {
  .faq-section {
    padding: 20px 0px 24px;
  }

  .faq-section .inner {
    padding: 20px 15px;
    border-radius: 15px;
  }

  .faq-header {
    padding: 15px;
  }

  .faq-icon {
    width: 32px;
    height: 32px;
  }

  .faq-header h2 {
    font-size: 16px;
  }

  .faq-list {
    padding: 0 15px 15px;
  }

  .faq-question {
    padding: 18px;
    font-size: 18px;
  }

  .faq-toggle {
    font-size: 20px;
  }

  .faq-item.active .faq-answer {
    padding: 15px;
  }

  .faq-answer p {
    font-size: 17px;
    line-height: 1.7;
  }
}

/* コンタクトフォーム */
.contact-form-wrapper {
    max-width: 800px;
    margin: 0 auto;
    background: white;
    padding: 40px;
    border-radius: 8px;
}

.form-row {
    margin-bottom: 25px;
}

.form-row label {
    display: block;
    font-weight: bold;
    margin-bottom: 8px;
    color: #333;
}

.required {
    background-color: #f44336;
    color: white;
    padding: 2px 8px;
    border-radius: 3px;
    font-size: 0.75rem;
    margin-left: 8px;
}

.wpcf7-form-control {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1rem;
    transition: border-color 0.3s;
}

.wpcf7-form-control:focus {
    outline: none;
    border-color: #4CAF50;
}

.wpcf7-text,
.wpcf7-email,
.wpcf7-tel,
.wpcf7-select {
    height: 45px;
}

.wpcf7-textarea {
    min-height: 150px;
    resize: vertical;
}

.form-privacy {
    margin: 30px 0;
    padding: 15px;
    background-color: #f9f9f9;
    border-radius: 4px;
}

.privacy-check {
    margin-right: 8px;
}

.form-privacy a {
    color: #4CAF50;
    text-decoration: none;
}

.form-privacy a:hover {
    text-decoration: underline;
}

.form-submit {
    text-align: center;
    margin-top: 30px;
}

.submit-btn {
    background-color: #4CAF50;
    color: white;
    padding: 15px 60px;
    border: none;
    border-radius: 50px;
    font-size: 1.1rem;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s;
}

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

/* バリデーションエラー */
.wpcf7-not-valid-tip {
    color: #f44336;
    font-size: 0.85rem;
    margin-top: 5px;
}

.wpcf7-validation-errors {
    border: 2px solid #f44336;
    background-color: #ffebee;
    padding: 15px;
    border-radius: 4px;
    margin-top: 20px;
}

/* 送信成功メッセージ */
.wpcf7-mail-sent-ok {
    border: 2px solid #4CAF50;
    background-color: #e8f5e9;
    padding: 15px;
    border-radius: 4px;
    margin-top: 20px;
}

/* スマホ対応 */
@media (max-width: 768px) {
    .contact-form-wrapper {
        padding: 20px;
    }

    .submit-btn {
        padding: 12px 40px;
        font-size: 1rem;
    }
}