html {
scroll-behavior: smooth;
}

* {
margin: 0;
padding: 0;
line-height: 1;
font-family: "LINE Seed JP", sans-serif;
box-sizing: border-box;
}

img {
width: 100%;
vertical-align: bottom;
}

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

a:hover {
cursor: pointer;
opacity: 0.6;
}

ul {
list-style: none;
}

/* =========================
CSS VARIABLES
========================= */

:root {
--green: #107339;
--brown: #946134;
--red: #d25039;
--yellow: #e9bc3f;
--beige: #ede6d9;
}

.pc_only {
display: block;
}

.sp_only {
display: none;
}

@media (max-width: 768px) {
.pc_only {
display: none;
}

.sp_only {
display: block;
}
}


/* =========================
ハンバーガーボタン
========================= */

header {
max-width: 1100px;
width: 95%;
margin: 0 auto;
}

.btn {
position: fixed;
top: 0;
left: calc(50% + 550px);
transform: translateX(-100%);
/* ボタン右端を1140pxの右端に合わせる */

width: 124px;
height: 64px;
background: var(--yellow);
border: none;
border-radius: 0 0 21px 21px;
z-index: 1000;
cursor: pointer;
}

@media (max-width: 1140px) {
.btn {
left: auto;
right: 2.6vw;
transform: none;
}
}

@media (max-width: 768px) {
.btn {
width: 74px;
height: 57px;
border-radius: 0 0 10px 10px;
}
}

/* 2本線 */
.line1,
.line2 {
position: absolute;
left: 50%;
width: 34px;
height: 3px;
background: #000;
transform: translateX(-50%);
transition: all .3s ease;
}

.line1 {
/* 上の線 */
top: 19px;
}

.line2 {
/* 下の線 */
top: 28px;
}

@media (max-width: 768px) {
.line1 {
top: 18px;
}

.line2 {
top: 25px;
}
}

/* MENU文字 */
.btn-text {
position: absolute;
left: 50%;
top: 38px;
transform: translateX(-50%);
color: #000;
font-size: 10px;
font-weight: 900;
}

@media (max-width: 768px) {
.btn-text {
top: 31px;
font-size: 9px;
}
}

/* 開いた時 */
.btn.open .btn-text {
/* MENUを消す */
display: none;
}

.btn.open .line1 {
/* ×の左上→右下 */
top: 28px;
transform: translateX(-50%) rotate(45deg);
}

.btn.open .line2 {
/* ×の右上→左下 */
top: 28px;
transform: translateX(-50%) rotate(-45deg);
}


/* =========================
メニュー
========================= */

.nav {
position: fixed;
top: 0;
right: 0;
width: 70%;
height: 100vh;
max-width: 440px;
list-style: none;
background: var(--green);
border-left: 4px solid #005c21;
display: flex;
flex-direction: column;
padding:
clamp(24px, 4vh, 48px)
min(7.3vw, 88px)
clamp(24px, 4vh, 48px);
padding-top: clamp(48px, 11vh, 96px);
transform: translateX(100%);
transition: .3s;
z-index: 999;
}

.nav.open {
/* 開いた時 */
transform: translateX(0);
}

@media (max-width: 431px) {
.nav {
width: 100%;
padding-top: 40px;
border-left: 0;
}
}

.menu {
display: flex;
flex-direction: column;
gap: 16px;
margin: 0;
padding: 0;
list-style: none;
}

.menu li {
margin: 0;
padding: 0;
}

.menu a {
display: flex;
align-items: center;
font-size: 18px;
font-weight: 700;
line-height: 1.4;
color: #fff;
text-decoration: none;
}

.menu a::before {
/* 左の縦ライン */
content: "";
width: 4px;
height: 24px;
background: rgba(255, 255, 255, 0.35);
border-radius: 2px;
margin-right: 8px;
flex-shrink: 0;
}

@media (max-width: 431px) {
.menu {
gap: 14px;
}
}

.low {
font-weight: 400 !important;
}

.menu a.low::before {
/* low の場合は左バーを消す */
content: none;
}

.menu a.low {
/* low の場合は下線を表示 */
position: relative;
display: inline-block;
padding-bottom: 6px;
/* 線との間隔 */
}

.menu a.low::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 1px;
background: rgba(255, 255, 255, 0.35);
}

.menu_title {
border-bottom: 2px solid #FFF;
}

.menu_title img {
width: 26.6vw;
max-width: 103px;
padding-bottom: 9px;
}

.nav_contact_box {
margin-top: 48px;
display: flex;
flex-direction: column;
gap: 20px;
}

.nav_contact_form,
.nav_tel {
width: 100%;
margin: 0 auto;
}

.nav_contact_box a {
align-items: center;
justify-content: center;
display: flex;
width: 100%;
padding: 20px 12px;
border-radius: 6px;
background: #fff;
text-decoration: none;
font-size: 18px;
font-weight: 700;
color: #000;
white-space: nowrap;
}

.nav_contact_box img {
margin-right: 16px;
margin-bottom: 0;
flex-shrink: 0;
}

.nav_contact_form img {
width: 32px;
max-width: none;
}

.nav_tel img {
width: 26px;
max-width: none;
}


/*-------------------------------
FV
-------------------------------*/

.fv {
background: var(--beige);
position: relative;
padding-top: 20px;
}

.h_logo {
width: 28vw;
max-width: 336px;
}

.fv_inner {
width: 95%;
max-width: 1100px;
aspect-ratio: 1100 / 660;
margin: 0 auto;
position: relative;
}

.fv_photo {
position: absolute;
width: clamp(470px, 61vw, 740px);
max-width: 740px;
right: 0;
top: 60px;
}

@media (min-width: 1200px) {
.fv_photo {
position: absolute;
width: clamp(670px, 65vw, 760px);
max-width: 760px;
right: 0;
top: 60px;
}
}

@media (max-width: 1040px) {
.fv_photo {
width: 65%;
right: 45px;
top: 60px;
}
}

@media (max-width: 970px) {
.fv_photo {
width: 60%;
right: 65px;
top: 80px;
}
}

@media (max-width: 920px) {
.fv_photo {
width: 62.5%;
right: 65px;
top: 33px;
}
}

@media (max-width: 870px) {
.fv_photo {
width: 63.5%;
right: 45px;
top: 38px;
}
}

.fv_man {
position: absolute;
width: 37.5%;
left: 0;
bottom: -6%;
z-index: 3;
}

.fv_cloud_01 {
position: absolute;
width: 15%;
left: 2%;
top: 17%;
}

.fv_text {
position: absolute;
width: 54%;
right: 0%;
bottom: 24px;
}

.fv_text h2 {
font-size: clamp(19px, 2.6vw, 32px);
}

.fv_text h2 span:nth-child(1) {
color: var(--red);
}

.fv_text h2 span:nth-child(2) {
color: var(--green);
}

.fv_text h2 span:nth-child(3) {
color: var(--brown);
}

.fv_text p {
font-size: clamp(12px, 1.5vw, 18px);
margin-top: 20px;
line-height: 1.8;
}

.fv_info {
position: absolute;
right: 0;
top: 55px;
width: 100%;
max-width: 130px;
text-align: center;
padding-left: .5vw;
padding-bottom: 1.8vw;
z-index: 2;
}

.fv_info_box {
max-width: 124px;
}

.fv_btn {
display: flex;
align-items: center;
justify-content: center;
border-radius: 999px;
color: #fff;
font-weight: 700;
font-size: 14px;
padding: 15px 0;
}

.fv_btn_price {
background: var(--red);
margin-bottom: 10px;
}

.fv_btn_contact {
background: var(--brown);
margin-bottom: 12px;
}

.fv_business {
margin-top: 8px;
}

.fv_business h3 {
color: var(--green);
font-size: 14px;
font-weight: 700;
padding-bottom: 8px;
margin-bottom: 8px;
border-bottom: 1px solid var(--green);
}

.fv_business p {
font-size: 16px;
font-weight: 700;
line-height: 1.4;
}

.fv_business span {
display: block;
font-size: 14px;
font-weight: 700;
}

.fv_cloud_03 {
position: absolute;
width: 10%;
max-width: 130px;
right: clamp(0px, calc((100vw - 1300px) / 2), 9999px);
top: 55%;
transform: translateY(-50%);
z-index: 3;
}

@media (max-width: 1200px) {
.fv_cloud_03 {
width: 12%;
max-width: none;
right: 0;
top: 55%;
}
}

@media (max-width: 920px) {
.fv_cloud_03 {
width: 10%;
top: 60%;
}
}

.full_clo {
display: block;
}

.half_clo {
display: none;
}

@media (max-width: 1200px) {
.full_clo {
display: none;
}

.half_clo {
display: block;
}
}

.fv_green_line {
position: absolute;
left: 0;
bottom: 24px;
display: flex;
flex-direction: column;
}

.fv_green_line > div {
height: clamp(20px, 3.3vw, 40px);
margin-bottom: clamp(12px, 2vw, 24px);
background: var(--green);
border-top-right-radius: 999px;
border-bottom-right-radius: 999px;
}

.fv_green_line > div:last-child {
margin-bottom: 0;
}

.g_line_01 {
width: 29.17vw;
}

.g_line_02 {
width: 32.08vw;
}

.g_line_03 {
width: 35vw;
}

.g_line_04 {
width: 37.92vw;
}

.g_line_05 {
width: 40.83vw;
}

.g_line_06 {
width: 43.75vw;
}

@media (min-width: 1200px) {
.g_line_01 {
width: 32vw;
}

.g_line_02 {
width: 34vw;
}

.g_line_03 {
width: 36vw;
}

.g_line_04 {
width: 38vw;
}

.g_line_05 {
width: 40vw;
}

.g_line_06 {
width: 42vw;
}
}

.fv_pc {
display: block;
}

.fv_sp {
display: none;
}

@media (max-width: 768px) {
.fv_pc {
display: none;
}

.fv_sp {
display: block;
}

.fv {
padding-top: 20px;
}

.h_logo {
margin-left: 5%;
width: 65.6vw;
margin-bottom: 4.6vw;
}

.fv_inner {
width: 95%;
max-width: none;
aspect-ratio: auto;
display: flex;
flex-direction: column;
position: relative;
}

/* テキスト */
.fv_text {
position: static;
width: 100%;
text-align: center;
order: 1;
margin-bottom: 5px;
}

.fv_text h2 {
font-size: clamp(19.5px, 5.2vw, 30px);
line-height: 1.4;
letter-spacing: -0.04em;
}

.fv_text p {
font-size: clamp(13.5px, 3.5vw, 18px);
line-height: 1.8;
margin-top: 10px;
}

/* メイン画像 */
.fv_photo {
position: relative;
top: 0;
right: 0;
width: 100%;
max-width: none;
order: 2;
padding-bottom: 34vw;
}

/* 料金ボックス */
.fv_info {
position: absolute;
right: 0;
bottom: 0;
top: 33.3vw;
width: 31.4vw;
max-width: none;
padding: 0;
background: none;
border-radius: 0;
order: 5;
}

.fv_info_box {
max-width: none;
}

.fv_btn {
font-size: clamp(12px, 3.3vw, 16px);
padding: 16px 0;
}

.fv_business h3 {
font-size: clamp(12px, 3.3vw, 21px);
padding-bottom: 5px;
margin-bottom: 5px;
}

.fv_business p {
font-size: clamp(14px, 3.5vw, 21px);
}

.fv_business span {
font-size: clamp(12px, 3.3vw, 16px);
}

/* ゴルファー */
.fv_man {
position: absolute;
left: 0%;
bottom: -30px;
width: 51vw;
max-width: none;
z-index: 4;
}

/* 雲 */
.fv_cloud_01 {
display: none;
}

.fv_cloud_03 {
display: none;
}

.sp_fv_cloud_left {
max-width: 120px;
width: 15vw;
position: absolute;
top: 50%;
left: 0;
}

.sp_fv_cloud_right {
max-width: 120px;
width: 17vw;
position: absolute;
top: 32%;
right: 0;
}

/* 緑ライン */
.fv_green_line {
left: 0;
bottom: 0;
width: 100%;
}

.fv_green_line > div {
height: 4.2vw;
margin-bottom: 2.1vw;
}

.g_line_01 {
width: 45%;
}

.g_line_02 {
width: 50%;
}

.g_line_03 {
width: 55%;
}

.g_line_04 {
width: 60%;
margin-bottom: 4vw;
}

.g_line_05 {
display: none;
}

.g_line_06 {
display: none;
}
}


/*-------------------------------
REASONS
-------------------------------*/

.reasons {
padding: clamp(60px, 10vw, 120px) 0;
background-image: url(../img/reason_bg.svg);
background-repeat: repeat;
background-size: auto;
}

.reasons_inner {
max-width: 1040px;
width: 85%;
margin: 0 auto;
border-radius: clamp(40px, 10vw, 120px);
border: 3px solid var(--yellow);
background-color: var(--beige);
padding: 50px clamp(18px, 4.58vw, 55px) 10px;
display: flex;
flex-direction: column;
align-items: center;
}

.reasons_intro {
margin-bottom: 30px;
}

.reasons_intro img {
max-width: 295px;
width: 100%;
}

.reasons_box {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: clamp(20px, 3vw, 44px);
margin-bottom: clamp(40px, 6.67vw, 80px);
}

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

.reasons_title {
display: flex;
align-items: flex-end;
justify-content: space-between;
}

.reasons_title_text {
font-weight: 600;
font-size: clamp(21px, 2.5vw, 30px);
line-height: 1.5;
white-space: nowrap;
}

.reasons_num {
color: #FFF;
font-weight: 800;
font-size: clamp(70px, 8.33vw, 100px);
margin-bottom: clamp(12px, 2vw, 24px);
}

.title_01 img {
max-width: 188px;
}

.title_02 img {
max-width: 215px;
width: 19.3vw;
}

.title_03 img {
max-width: 154px;
}

.reasons_line {
margin-bottom: clamp(11px, 1.83vw, 22px);
}

.reasons_text p {
font-size: clamp(14px, 1.33vw, 16px);
line-height: 1.6;
}

.reasons_text_box {
width: 48%;
max-width: 440px;
}

.reasons_img_box {
width: 48%;
max-width: 438px;
}

@media (max-width: 768px) {
.reasons {
background-position: 0 -1px;
background-size: 150%;
	background-color:var(--green);
}

.reasons_intro img {
max-width: none;
width: 48vw;
}

.reasons_box,
.reasons_box.reasons_reverse {
flex-direction: column;
align-items: stretch;
gap: 24px;
}

.reasons_text_box,
.reasons_img_box {
width: 100%;
max-width: 100%;
}

.reasons_title {
align-items: flex-end;
justify-content: space-between;
}

.reasons_num {
font-size: 70px;
margin-bottom: 8px;
}

.title_01 img {
width: auto;
max-width: 32vw;
}

.title_02 {
margin-bottom: -3%;
}

.title_02 img {
width: auto;
max-width: 30vw;
}

.title_03 {
margin-bottom: -3%;
}

.title_03 img {
width: auto;
max-width: 23vw;
}

.reasons_line {
margin-bottom: 16px;
}

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


/*--------------------------------
PRICE
--------------------------------*/

.price {
padding: 7.5vw 0;
background: var(--beige);
}

.price_header {
padding-top: 35px;
text-align: center;
position: relative;
}

.price_time {
max-width: 120px;
width: 10vw;
}

.price_cloud_left {
max-width: 120px;
width: 10vw;
position: absolute;
top: 0;
left: clamp(0px, calc((100vw - 1200px) / 2), 9999px);
}

.price_cloud_right {
max-width: 120px;
width: 10vw;
position: absolute;
top: 0;
right: clamp(0px, calc((100vw - 1200px) / 2), 9999px);
}

.price_intro {
display: flex;
align-items: flex-end;
justify-content: center;
margin: 0 auto 5vw;
gap: 3.75vw;
}

.price_intro img {
max-width: 55px;
width: 4.5vw;
}

.price_intro h2 {
font-size: clamp(22px, 3vw, 37px);
}

.price_inner {
width: 90%;
max-width: 960px;
margin: 0 auto;
}

/* 営業時間 */
.price_head {
display: grid;
grid-template-columns: 1fr 1fr;
gap: calc(44 / 1200 * 100vw);
margin-bottom: calc(60 / 1200 * 100vw);
}

.price_info {
background: #fff;
border: 2px solid var(--red);
border-radius: 20px;
padding: calc(28 / 1200 * 100vw) 1.5em;
text-align: center;
}

.info_time {
margin-top: 1.6em;
}

.price_info h3 {
font-size: clamp(18px, 2.1vw, 26px);
font-weight: 700;
margin-bottom: 1em;
}

.price_info_line {
height: 2px;
background: var(--green);
margin-bottom: 1.2em;
}

.price_info p {
font-size: clamp(18px, 2.1vw, 26px);
line-height: 1.6;
}

.price_info small {
display: block;
font-size: clamp(12px, 1.3vw, 16px);
line-height: 1.5;
}

/* 注意 */
.price_notice {
display: flex;
align-items: center;
justify-content: space-between;
background: var(--yellow);
border-radius: 20px;
padding: calc(26 / 1200 * 100vw) calc(36 / 1200 * 100vw);
margin-bottom: calc(48 / 1200 * 100vw);
}

.price_notice span {
width: 4.8vw;
max-width: 58px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.price_notice p {
text-align: center;
font-size: clamp(18px, 2.1vw, 26px);
font-weight: 700;
line-height: 1.6;
}

/* タイトル */
.price_title {
border: 2px solid var(--green);
background-color: #FFF;
padding: calc(16 / 1200 * 100vw);
text-align: center;
color: var(--green);
font-size: clamp(19px, 2.5vw, 30px);
font-weight: 700;
border-radius: 6px;
margin-bottom: 18px;
}

.price_tax {
text-align: center;
font-size: 16px;
margin-bottom: 30px;
}

/* 新メインラッパー（PC時は並列、SP時は1カラム化用フラット化の起点に） */
.price_main_wrap {
display: block;
}

/* 3行の行組み共通スタイル */
.price_row,
.price_row_middle,
.price_row_bottom {
display: grid;
grid-template-columns: 1fr 1fr;
gap: calc(44 / 1200 * 100vw);
align-items: start;
}

.price_row_bottom {
align-items: stretch;
}

/* 中段の余白調整 */
.price_row_middle {
align-items: center;
margin: 20px 0;
}

.price_col {
display: flex;
flex-direction: column;
justify-content: space-between;
}

/* 打席見出し */
.price_label {
background: var(--green);
color: #fff;
letter-spacing: 0.08em;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 30px;
border-radius: 6px;
font-size: clamp(19px, 2.3vw, 28px);
font-weight: 700;
}

.price_label span {
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-top: 12px solid #fff;
}

/* 打席料 */
.price_fee {
background-color: #FFF;
margin-top: 22px;
border-radius: 6px;
border: 2px solid var(--red);
padding: 14px;
text-align: center;
font-size: clamp(18px, 2.1vw, 26px);
font-weight: 700;
}

.fee_en,
.balls,
.minutes {
font-size: 60%;
margin-left: .05em;
}

.price_fee.second {
/* 新構造に合わせて調整 */
margin-top: 0;
}

/* ＋ */
.price_plus img {
display: flex;
text-align: center;
width: 4.3vw;
max-width: 52px;
margin: 8px auto;
}

/* テーブル共通 */
.price_table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
background: #fff;
border: 2px solid var(--red);
border-radius: 6px;
overflow: hidden;
}

.price_table th {
background: var(--red);
color: #fff;
font-size: clamp(18px, 2.1vw, 26px);
font-weight: 700;
letter-spacing: 0.08em;
padding: 14px;
line-height: 1;
border: none;
}

.price_table td {
text-align: center;
padding: 19px 0;
font-size: clamp(18px, 2.1vw, 26px);
font-weight: 700;
line-height: 1.2;
border-right: 1px solid var(--red);
border-bottom: 1px solid var(--red);
}

.price_table tr td:last-child {
border-right: none;
}

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

.no_border {
border-bottom: 0 !important;
}

.price_border {
border-bottom: 2px solid var(--red) !important;
}

/* 個人・複数人 */
.table_badge {
display: flex;
flex-direction: column;
width: 50%;
text-align: center;
margin: 10px auto 0;
background: var(--red);
color: #fff;
font-size: clamp(11px, 1.3vw, 16px);
font-weight: 500;
padding: 5px 0;
letter-spacing: 0.08em;
border-radius: 2px;
}

/* カゴ打ち・時間打ちヘッダー */
.subhead td {
background: #fff;
padding: 19px 0;
}

.weekday,
.holiday {
font-size: clamp(18px, 2.1vw, 26px);
font-weight: 700;
line-height: 1.2;
}

.choko_bg {
background-color: #faede7;
padding: 10px 0 !important;
}

.sat {
color: #335a8f;
}

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

.subtime {
display: block;
margin-top: 4px;
font-size: clamp(12px, 1.3vw, 16px);
font-weight: 700;
line-height: 1.3;
}

.time_floor td {
font-size: clamp(14px, 1.6vw, 20px);
}

/* 注記 */
.price_note {
text-align: center;
color: var(--red);
font-size: clamp(13px, 1.5vw, 18px);
font-weight: 700;
margin: 12px 0 0 0;
}

.price_arrow {
text-align: center;
font-size: 18px;
font-weight: 700;
color: var(--red);
line-height: 1;
margin: 8px 0;
}

.price_select {
display: flex;
align-items: center;
justify-content: center;
background: #fff;
color: var(--green);
font-size: clamp(17px, 1.6vw, 20px);
font-weight: 700;
padding: 8px;
border-radius: 6px;
}

.choko {
font-size: clamp(12px, 1.3vw, 16px);
}

/* 左下ライン */
.price_green_line {
height: 2px;
background: var(--green);
margin: 0;
margin-bottom: 12%;
}

/* 会員証 */
.member_table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
background: #fff;
border: 8px solid var(--yellow);
border-radius: 6px 6px 0 0;
overflow: hidden;
}

.member_table th {
background: var(--yellow);
padding: 19px 0;
letter-spacing: 0.08em;
font-size: clamp(18px, 2.1vw, 26px);
font-weight: 700;
}

.member_table td {
padding: 17px 0;
text-align: center;
font-size: clamp(16px, 1.83vw, 22px);
font-weight: 700;
border-right: 1px solid var(--yellow);
border-bottom: 1px solid var(--yellow);
}

.member_table tr td:last-child {
border-right: none;
}

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

.member_head td {
width: 50%;
letter-spacing: 0.08em;
background: #fff7dd;
font-size: clamp(16px, 1.83vw, 22px);
border-bottom: 2px solid var(--yellow);
}

.member_note {
background: var(--yellow);
border-radius: 0 0 6px 6px;
padding: 0.9vw;
padding-top: 0;
text-align: center;
font-size: clamp(12px, 1.3vw, 16px);
font-weight: 700;
line-height: 1.8;
}

/* 貸しクラブ */
.club_fee {
margin-top: calc(60 / 1200 * 100vw);
background: var(--green);
color: #fff;
text-align: center;
padding: 18px;
font-size: clamp(20px, 2.3vw, 28px);
font-weight: 700;
border-radius: 6px;
}

/*--------------------------------
SP (max-width:768px)
--------------------------------*/

@media (max-width: 768px) {
.price {
padding: 10vw 0 13.5vw;
}

.price_header {
padding-top: 0;
}

.price_time {
width: 23vw;
margin-bottom: 4vw;
}

.price_cloud_left,
.price_cloud_right {
width: 17vw;
top: -8vw;
}

.price_head {
grid-template-columns: 1fr;
gap: 24px;
}

.price_info {
padding: 24px;
}

.price_intro {
margin-bottom: 10vw;
}

.price_intro img {
width: 100%;
max-width: 33px;
}

.price_notice {
flex-direction: column;
padding: 30px 20px;
gap: 10px;
margin-bottom: 20px;
border-radius: 12px;
}

.price_notice span {
width: 40px;
height: 40px;
}

.price_notice .pc_only {
display: none !important;
}

.price_title {
padding: 35px 18px;
border-radius: 12px;
line-height: 1.6;
}

.member_table td {
padding: 10px 4px;
}

.price_label span {
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 8px solid #fff;
}

.price_label {
padding: 10px 18px;
}

.price_fee {
padding: 10px;
}

.price_plus img {
width: 9.5vw;
}

.price_table th,
.price_table td,
.price_select {
padding: 10px;
}

.okugaidaseki {
margin-top: 60px;
}

.price_fee.second {
margin-top: 8px;
}

/* 箱の概念を消して直下にバラす設定 */
.price_inner {
display: flex;
flex-direction: column;
}

.price_main_wrap,
.price_row,
.price_row_middle,
.price_row_bottom,
.price_col {
display: contents;
}

/* ① 室内打席：打席料＋時間貸し */
.price_row .price_col:nth-of-type(1) .price_label,
.price_row .price_col:nth-of-type(1) .price_fee,
.price_row .price_col:nth-of-type(1) .price_plus,
.price_row .price_col:nth-of-type(1) .table_wrap {
order: 10;
}

/* ② 屋外打席：打席料＋カゴ打ち */
.price_row .price_col:nth-of-type(2) .price_label,
.price_row .price_col:nth-of-type(2) .price_fee,
.plus_basket,
.table_basket {
order: 20;
}

/* ③ ※ちょこ追加 */
.price_note {
order: 30;
}

/* ④ ▲どちらかをお選びください▼ */
.price_arrow,
.price_select {
order: 40;
}

/* ⑤ 打席料＋時間打ち */
.price_fee.second,
.plus_time,
.table_time {
order: 50;
}

/* ⑥ 緑線（スマホ時は単なる区切り線として少し余白を戻す） */
.price_green_line {
order: 60;
margin: 40px 0;
}

/* ⑨ 貸しクラブ */
.club_fee {
order: 70;
margin-top: 0;
margin-bottom: 50px;
}

/* ⑦ デジタル会員証 */
.table_wrap.yellow {
order: 80;
}

/* ⑧ ※貯まったポイント */
.member_note {
order: 80;
}
}


/*-------------------------------
HOW TO
-------------------------------*/

.how_to {
padding: 8.3vw 0;
display: flex;
flex-direction: column;
align-items: center;
background-color: var(--green);
}

.how_to_box {
width: 91%;
max-width: 1040px;
background-color: var(--beige);
border: clamp(2px, 0.2vw, 3px) solid var(--yellow);
border-radius: clamp(20px, 2vw, 30px);
padding: clamp(24px, 4vw, 48px);
padding-bottom: 8.3vw;
}

.how_to_intro_box {
width: 66vw;
max-width: 800px;
margin: 0 auto;
padding-top: 20px;
margin-bottom: 70px;
text-align: center;
}

.how_to_intro {
position: relative;
}

.how_to_intro h2 {
font-size: clamp(22px, 3vw, 37px);
}

.intro_deco {
position: absolute;
top: -3vw;
width: clamp(71px, 14vw, 168px);
transform: translateY(-50%);
}

.intro_deco_left {
left: clamp(35px, 5.8333vw, 70px);
margin-left: clamp(-84px, -14vw, -168px);
}

.intro_deco_right {
right: clamp(35px, 5.8333vw, 70px);
margin-right: clamp(-84px, -14vw, -168px);
}

.how_to_item_box {
display: flex;
flex-direction: column;
align-items: center;
}

.how_to_item {
max-width: 840px;
width: 100%;
display: flex;
justify-content: space-between;
gap: 3.75vw;
}

/* 画像エリア */
.how_to_img {
flex: 0 1 45%;
width: 45%;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}

.how_to_img > img {
width: 100%;
height: auto;
display: block;
margin-bottom: 6vw;
}

.how_to_img > img:last-child {
margin-bottom: 0;
}

/* STEPバッジ */
.how_to_num {
position: absolute;
top: -2.5vw;
left: -2.5vw;
max-width: 100px;
max-height: 100px;
height: 8.3vw;
width: 8.3vw;
background: var(--yellow);
border-radius: 50%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index: 2;
}

.how_to_num img {
width: 3.9vw;
max-width: 47px;
margin-top: -0.6em;
margin-bottom: 0.1em;
}

.how_to_num p {
font-size: clamp(28px, 3.3vw, 40px);
font-weight: 700;
color: #fff;
}

/* 矢印 */
.how_to_arrow {
position: absolute;
bottom: 3vw;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-top: 10px solid var(--green);
}

/* テキスト */
.how_to_text {
flex: 0 1 49%;
width: 49%;
max-width: none;
min-width: 0;
}

.how_to_text h4 {
border-left: 3px solid var(--green);
padding-left: 0.8em;
letter-spacing: 0.04em;
font-size: clamp(16px, 1.6vw, 20px);
margin-bottom: 1.1vw;
line-height: 1.5;
}

.how_to_text h3 {
letter-spacing: 0.04em;
font-size: clamp(21px, 2.5vw, 30px);
}

.how_to_text p {
margin-top: 1em;
font-size: clamp(14px, 1.6vw, 16px);
line-height: 1.5;
letter-spacing: 0.08em;
}

/* SP */
@media screen and (max-width: 768px) {
.how_to_intro_box {
width: 52vw;
padding-top: 40px;
margin-bottom: 45px;
}

.intro_deco {
top: -2vw;
}

.how_to_item {
position: relative;
flex-direction: column;
gap: 30px;
}

.how_to_text h4 {
margin-bottom: 10px;
}

.how_to_img {
width: 100%;
flex: none;
}

.how_to_img > img {
margin-bottom: 0;
}

.how_to_arrow {
align-self: center;
margin-left: 0;
margin-bottom: 25px;
}

.how_to_text {
width: 100%;
margin-bottom: 67px;
}

.how_to_text:last-child {
margin-bottom: 0;
}

.how_to_num {
width: 70px;
height: 70px;
top: -30px;
left: -35px;
}

.how_to_num img {
width: 34px;
}

.how_to_num p {
font-size: 28px;
}

.how_to_box {
padding-bottom: 56px;
}
}


/*-------------------------------
FACILITY
-------------------------------*/

.fac_curve {
background-color: var(--green);
}

.facility {
padding-bottom: 5.4vw;
background-color: var(--beige);
}

.facility_box {
display: flex;
flex-direction: column;
align-items: center;
}

.facility_intro {
max-width: 960px;
margin: 0 auto;
display: flex;
align-items: flex-end;
justify-content: space-between;
}

.facility_intro h2 {
position: relative;
margin-bottom: 2.5vw;
padding-left: 2.3vw;
font-size: clamp(22px, 3vw, 37px);
line-height: 1.5;
}

.facility_intro h2::before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 6px;
height: 100%;
background: var(--green);
border-radius: 999px;
}

.facility_intro h2 span {
color: var(--red);
}

.facility_intro img {
width: calc(376 / 1200 * 100vw);
max-width: 376px;
height: auto;
display: block;
}

.slider {
position: relative;
width: 100%;
padding-top: 2.5vw;
}

.slider-viewport {
overflow: hidden;
width: 100%;
}

.slider-track {
display: flex;
gap: 30px;
margin: 0;
padding: 0;
list-style: none;
will-change: transform;
}

.slide {
flex: 0 0 calc(546 / 1200 * 100vw);
width: calc(546 / 1200 * 100vw);
}

.slide-image {
position: relative;
}

.slide-image img {
display: block;
width: 100%;
height: auto;
}

.slide-caption {
position: absolute;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 16px 0;
border-radius: 0 0 1.1vw 1.1vw;
background: var(--green);
color: #fff;
font-weight: 700;
letter-spacing: 0.08em;
text-align: center;
font-size: clamp(16px, 2vw, 24px);
line-height: 1.4;
}

.slider-nav {
display: flex;
justify-content: center;
align-items: center;
gap: 30%;
margin-top: 30px;
}

.slider-arrow {
width: 48px;
height: 48px;
padding: 0;
border: none;
background: none;
cursor: pointer;
}

.slider-arrow img {
display: block;
width: 100%;
height: 100%;
}

.slider-dots {
display: flex;
align-items: center;
gap: 18px;
}

.slider-dot {
width: 10px;
height: 10px;
padding: 0;
border: none;
border-radius: 50%;
background: #e9bc3f;
cursor: pointer;
}

.slider-dot.is-active {
background: #d25039;
}

/* SP */
@media (max-width: 768px) {
.slider-track {
gap: 15px;
}

.slide {
flex: 0 0 84vw;
width: 84vw;
}

.slide-caption {
padding: 10px 0;
border-radius: 0 0 8px 8px;
}

.slider-arrow {
width: 40px;
height: 40px;
}

.slider-nav {
gap: 14%;
}

.slider-dot {
width: 6px;
height: 6px;
}

.facility_intro {
flex-direction: column-reverse;
align-items: center;
}

.facility_intro img {
max-width: 196px;
width: 100%;
margin-bottom: 12px;
}

.facility_intro h2::before {
width: 4px;
}

.facility_intro h2 {
padding-left: 14px;
}
}

.sec_line {
background-color: var(--beige);
}


/*-------------------------------
INDOOR GOLF
-------------------------------*/

.indoor_golf {
background-color: var(--beige);
padding: 5vw 0 8.3vw;
}

.indoor_golf_inner {
width: 90%;
margin: 0 auto;
}

.indoor_golf_intro {
width: 85%;
max-width: 810px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
}

.indoor_golf_point {
width: 100px;
height: 100px;
flex-shrink: 0;
border: 2px solid var(--yellow);
border-radius: 50%;
background: #fff;
color: var(--green);
font-size: clamp(14px, 1.3vw, 16px);
font-weight: 700;
line-height: 1.2;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}

.indoor_golf_point + .indoor_golf_point {
margin-left: 25px;
}

.indoor_golf_title {
display: flex;
flex-direction: column;
align-items: center;
margin: 0 55px;
flex-shrink: 0;
}

.indoor_golf_title h2 {
margin: 0 0 10px;
font-size: clamp(22px, 3vw, 36px);
font-weight: 700;
line-height: 1.2;
}

.indoor_golf_title h4 {
margin: 0;
padding: 4px 2.2em;
background: var(--green);
color: #fff;
font-size: clamp(14px, 1.6vw, 20px);
font-weight: 700;
line-height: 1.2;
border-radius: 999px;
white-space: nowrap;
}

.indoor_golf_intro_text {
margin-top: 3.5vw;
text-align: center;
}

.indoor_golf_intro_text p {
line-height: 1.5;
font-size: clamp(16px, 1.6vw, 20px);
}

/* スイング動画スライダー */
.swing_slider {
position: relative;
width: 100%;
padding: 2vw 0;
}

.swing_viewport {
position: relative;
width: 100%;
height: 34vw;
max-height: 365px;
overflow: hidden;
}

.swing_track {
position: relative;
width: 100%;
height: 100%;
}

.swing_slide {
position: absolute;
top: 50%;
left: 50%;
max-width: 650px;
width: 60vw;
transform: translate(-50%, -50%) scale(.7);
opacity: 0;
z-index: 1;
transition:
transform .5s ease,
opacity .5s ease;
}

.swing_slide img {
display: block;
width: 100%;
height: auto;
max-width: 650px;
}

.swing_slide.is-active {
/* 中央 */
transform: translate(-50%, -50%) scale(1);
opacity: 1;
z-index: 3;
}

.swing_slide.is-prev {
/* 左 */
transform: translate(-72%, -50%) scale(.82);
opacity: .65;
z-index: 2;
}

.swing_slide.is-next {
/* 右 */
transform: translate(-28%, -50%) scale(.82);
opacity: .65;
z-index: 2;
}

/* 矢印 */
.swing_arrow {
position: absolute;
top: 50%;
width: 48px;
height: 48px;
padding: 0;
border: none;
background: none;
cursor: pointer;
z-index: 10;
transform: translateY(-50%);
}

.swing_prev {
left: 0%;
}

.swing_next {
right: 0%;
}

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

.indoor_golf_2 {
width: 100%;
margin: 0 auto;
}

.indoor_golf_text_2 {
max-width: 650px;
width: 60vw;
margin: 0 auto;
margin-bottom: 8.3vw;
}

.indoor_golf_text_2 p {
line-height: 1.5;
font-size: clamp(14px, 1.6vw, 20px);
text-align: justify;
}

.indoor_golf_points {
display: flex;
justify-content: center;
margin-bottom: 4.5vw;
}

.indoor_golf_points img {
width: 4.8vw;
max-width: 58px;
}

.indoor_golf_points h2 {
margin: 0 3.3vw;
font-size: clamp(22px, 3vw, 36px);
font-weight: 700;
}

.indoor_golf_grid {
width: 85%;
display: grid;
grid-template-columns: repeat(3, 24.667vw);
justify-content: center;
/* space-between → center */
gap: 2vw;
max-width: 960px;
margin: 0 auto 3.3vw;
/* 左右autoで中央配置 */
}

.indoor_golf_grid--row2 {
/* 04・05 */
grid-template-columns: repeat(2, 24.667vw);
justify-content: center;
/* 2列も中央揃え */
}

.indoor_golf_item {
position: relative;
width: 24.667vw;
padding-top: 5vw;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
/* ← カードがmax-widthで縮んでも中央配置 */
}

/* 半円バッジ */
.indoor_golf_badge_wrap {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
gap: 0.667vw;
z-index: 2;
}

.indoor_golf_badge_arch {
width: 10vw;
height: 5vw;
background: #fff;
border-radius: 5vw 5vw 0 0;
display: flex;
align-items: flex-end;
justify-content: center;
}

.indoor_golf_badge_number {
font-size: clamp(28px, 2.8vw, 34px);
font-weight: 700;
color: var(--red);
}

.indoor_golf_wave_deco {
width: 4.667vw;
height: 2vw;
object-fit: contain;
}

/* カード */
.indoor_golf_card {
width: 24.667vw;
min-height: 300px;
background: #fff;
border-radius: 20px;
padding: 2.5vw 2vw;
text-align: center;
display: flex;
flex-direction: column;
box-sizing: border-box;
flex: 1;
}

.indoor_golf_heading {
color: var(--green);
font-size: clamp(18px, 2vw, 24px);
font-weight: 700;
line-height: 1.4;
margin: 0 0 1.333vw;
}

.indoor_golf_divider {
width: 100%;
height: 1px;
background: var(--red);
margin: 0 auto 1.333vw;
}

.indoor_golf_text {
font-size: clamp(14px, 1.25vw, 15px);
line-height: 1.6;
text-align: justify;
margin: 0;
}

/* SP */
@media screen and (max-width: 767px) {
.swing_viewport {
height: 55vw;
}

.swing_slide {
width: 72vw;
}

.swing_slide.is-prev {
transform: translate(-67%, -50%) scale(.75);
}

.swing_slide.is-next {
transform: translate(-33%, -50%) scale(.75);
}

.swing_arrow {
width: 40px;
height: 40px;
}

.swing_prev {
left: 10px;
}

.swing_next {
right: 10px;
}

.swing_slider {
padding: 0;
}

.indoor_golf_points {
margin-bottom: 27px;
}

.indoor_golf_intro {
width: 100%;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
margin-bottom: 25px;
}

.indoor_golf_title {
width: 100%;
order: -1;
margin: 0 0 10px;
}

.indoor_golf_point {
width: 70px;
height: 70px;
margin: 0 !important;
}

/* ↓この2つは上の40px指定を上書きするためこの位置に保持（順番を変えると見た目が変わります） */
.swing_arrow {
width: 30px;
height: 30px;
}

.swing_next {
right: -15px;
}

.swing_prev {
left: -15px;
}

.indoor_golf_text_2 {
width: 90%;
}

.indoor_golf_grid,
.indoor_golf_grid--row2 {
grid-template-columns: 1fr;
width: 100%;
gap: 8vw;
margin: 0 auto 8vw;
justify-items: center;
}

.indoor_golf_item {
width: 100%;
padding-top: 12vw;
}

.indoor_golf_badge_arch {
width: 24vw;
height: 12vw;
border-radius: 12vw 12vw 0 0;
}

.indoor_golf_badge_number {
font-size: 7vw;
}

.indoor_golf_wave_deco {
width: 14vw;
height: 7vw;
}

.indoor_golf_badge_wrap {
gap: 6vw;
}

/* カード */
.indoor_golf_card {
width: 90%;
max-width: none;
border-radius: 20px;
padding: 5vw 8vw 8vw;
min-height: 0;
}

.indoor_golf_heading {
margin: 0 0 4vw;
font-size: clamp(20px, 3vw, 24px);
}

.indoor_golf_divider {
margin: 0 auto 4vw;
}

.indoor_golf_text {
line-height: 1.7;
}
}


/*-------------------------------
TOPTRACER
-------------------------------*/

.toptraser {
background-color: var(--green);
padding: clamp(60px, 7vw, 100px) 0;
display: flex;
flex-direction: column;
align-items: center;
}

.toptraser_box {
width: 85%;
max-width: 1040px;
background-color: var(--beige);
border: clamp(2px, 0.2vw, 3px) solid var(--yellow);
border-radius: clamp(20px, 2vw, 30px);
padding: clamp(24px, 4vw, 48px);
}

.toptracer_intro {
text-align: center;
border-bottom: 2px solid var(--yellow);
margin-bottom: clamp(24px, 4vw, 48px);
padding-bottom: clamp(8px, 2vw, 12px);
}

.toptracer_intro h4 {
font-size: clamp(18px, 2vw, 24px);
letter-spacing: 0.08em;
margin-bottom: clamp(12px, 1.7vw, 20px);
display: block;
}

.toptracer_intro h4::before,
.toptracer_intro h4::after {
content: none;
}

.toptracer_intro h2 {
color: var(--red);
font-size: clamp(22px, 3vw, 37px);
display: flex;
align-items: center;
justify-content: center;
gap: 17px;
}

.toptracer_intro h2::before,
.toptracer_intro h2::after {
content: "";
display: inline-block;
width: 30px;
height: 54px;
background: url(../img/range_ball.svg) no-repeat center / contain;
}

.toptraser_item {
display: flex;
justify-content: space-between;
}

.toptraser_text {
max-width: 414px;
min-width: 290px;
margin-right: 5%;
display: flex;
flex-direction: column;
justify-content: space-between;
}

.toptraser_img,
.toptraser_text {
flex: 1;
}

.toptraser_text h3 {
font-size: clamp(21px, 2.1vw, 26px);
color: var(--green);
}

.toptraser_text p {
font-size: clamp(14px, 1.3vw, 16px);
line-height: 1.5;
margin-top: clamp(16px, 2vw, 24px);
margin-bottom: clamp(24px, 3vw, 38px);
}

.toptraser_line {
width: 100%;
display: block;
}

.toptraser_text a {
display: flex;
justify-content: space-between;
align-items: center;
padding: clamp(14px, 2vw, 22px);
font-size: clamp(14px, 1.33vw, 16px);
font-weight: 700;
text-align: center;
background-color: var(--green);
color: #FFF;
border-radius: clamp(6px, 0.83vw, 10px);
}

.toptraser_text a img {
width: 24px;
}

.maru {
display: inline-block;
width: clamp(6px, 0.6vw, 8px);
height: clamp(6px, 0.6vw, 8px);
border-radius: 50%;
background: #fff;
margin: 0 clamp(6px, 0.8vw, 8px);
vertical-align: middle;
}

.toptraser_img {
max-width: 470px;
}

/* SP */
@media (max-width: 768px) {
.toptraser_item {
flex-direction: column-reverse;
align-items: center;
}

.toptraser_img {
width: 100%;
margin-bottom: 7vw;
}

.toptraser_box {
width: 90%;
padding: 35px 18px 48px;
}

.toptracer_intro h2 {
display: block;
gap: 0;
line-height: 1.2;
}

.kakko {
margin-left: -0.8em;
letter-spacing: -0.7px;
}

.toptracer_intro h2::before,
.toptracer_intro h2::after {
content: none;
}

.toptracer_intro h4 {
display: flex;
align-items: center;
justify-content: center;
gap: 28px;
margin-bottom: 4px;
}

.toptracer_intro h4::before,
.toptracer_intro h4::after {
content: "";
display: inline-block;
width: 20px;
height: 37px;
background: url(../img/range_ball.svg) no-repeat center / contain;
}

.toptraser_text {
margin-right: 0;
}

.toptraser_text h3 {
text-align: center;
}

.toptraser_text p {
padding: 0 7px;
}

.toptraser_text a {
padding: 18px;
}
}

.giza {
background-color: var(--beige);
overflow: hidden;
}

@media (max-width: 768px) {
.giza img {
width: 200%;
margin-left: -30%;
}
}


/*-------------------------------
NEWS
-------------------------------*/

.news {
background-color: var(--beige);
padding: clamp(60px, 8.33vw, 100px) 0;
}

.news_box {
width: min(80vw, 960px);
margin: 0 auto;
display: flex;
align-items: stretch;
gap: clamp(20px, 4vw, 52px);
}

.news_intro {
/* 左：30% */
flex: 3;
display: flex;
flex-direction: column;
justify-content: space-between;
}

.news_list {
	    display: flex;
    flex-direction: column;
    justify-content: center;
/* 右：70% */
flex: 7;
min-width: 0;
border-top: 2px solid var(--green);
border-bottom: 2px solid var(--green);
}

.news_title {
background-color: #FFF;
margin-bottom: 2vw;
padding: clamp(28px, 3.83vw, 46px) clamp(24px, 3.17vw, 38px);
border-radius: clamp(6px, 0.83vw, 10px);
}

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

.news_link a {
display: flex;
justify-content: space-between;
align-items: center;
padding: clamp(16px, 1.8vw, 20px);
font-size: clamp(14px, 1.2vw, 16px);
font-weight: 700;
background-color: var(--green);
color: #FFF;
border-radius: clamp(6px, 0.83vw, 10px);
}

.news_link img {
width: 24px;
height: auto;
}

.news_list a {
display: flex;
align-items: center;
padding: clamp(18px, 2vw, 24px) 0;
}

.news_list a:not(:last-child) {
border-bottom: 1px dashed var(--red);
}

.news_data {
display: flex;
align-items: center;
flex-shrink: 0;
}

.data {
margin-right: clamp(12px, 1.67vw, 20px);
font-size: 12px;
flex-shrink: 0;
}

.cat_badge {
margin-right: clamp(12px, 1.67vw, 20px);
padding: 10px 24px;
text-align: center;
font-size: 12px;
color: #FFF;
background-color: var(--green);
border-radius: 999px;
flex-shrink: 0;
}

.blog_title {
flex: 1;
min-width: 0;
font-size: 16px;
font-weight: 700;
line-height: 1.5;
color: #000;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

/* SP */
@media (max-width: 768px) {
.news_box {
display: flex;
flex-direction: column;
}

.news_intro {
/* news_title と news_link を news_box 直下の要素として扱う */
display: contents;
}

.news_title {
padding: 20px;
order: 1;
}

.news_title img {
max-width: 160px;
margin: 0 auto;
}

.news_list {
order: 2;
}

.news_link {
order: 3;
}

.news_list a {
display: flex;
flex-direction: column;
align-items: flex-start;
}

.news_data {
/* 日付行とタイトルの間隔 */
margin-bottom: 10px;
}

.blog_title {
white-space: normal;
}

.cat_badge {
padding: 4px 24px;
}
}


/*-------------------------------
FOOTER SLIDER
-------------------------------*/

.footer_slider {
overflow: hidden;
background-color: var(--beige);
position: relative;
}

.footer_slider_track {
display: flex;
width: max-content;
animation: footer_slider_scroll 30s linear infinite;
}

.footer_slider_item {
width: 25vw;
flex-shrink: 0;
backface-visibility: hidden;
}

.footer_slider_item img {
width: 100%;
display: block;
}

@keyframes footer_slider_scroll {
from {
transform: translate3d(0, 0, 0);
}

to {
transform: translate3d(-50%, 0, 0);
}
}

/* 上段 */
.footer_slider_track:first-child .footer_slider_item {
margin: 0 1.5vw 1.5vw 0;
}

/* 下段 */
.footer_slider_track:last-child .footer_slider_item {
margin: 0 0 0 1.5vw;
}

/* SP */
@media (max-width: 768px) {
.footer_slider_track:first-child .footer_slider_item {
margin: 0 2.5vw 2.5vw 0;
}

.footer_slider_track:last-child .footer_slider_item {
margin: 0 0 0 2.5vw;
}

.footer_slider_item {
width: 50vw;
}
}


/*-------------------------------
ACCESS
-------------------------------*/

.access {
background-color: var(--beige);
padding: 8.3vw 0;
}

.access_box {
width: 85%;
max-width: 1040px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 40px;
}

.access_header {
display: flex;
align-items: flex-end;
padding-bottom: 10px;
border-bottom: 2px solid var(--green);
margin-bottom: 2.9vw;
}

.access_header h2 {
font-size: clamp(22px, 3vw, 36px);
margin-left: 1em;
}

.access_header img {
max-width: 50px;
width: 4.1vw;
}

.parking {
display: flex;
align-items: center;
}

.access_text_box {
flex: 0 1 460px;
}

.access_text p {
font-size: clamp(18px, 1.4vw, 26px);
font-weight: 700;
letter-spacing: 0.04em;
line-height: 1.6;
}

.parking p {
font-size: clamp(21px, 2.1vw, 26px);
font-weight: 700;
margin-left: 0.5em;
}

.parking img {
width: 3.1vw;
max-width: 38px;
}

.access_kome {
font-size: clamp(14px, 1.2vw, 20px) !important;
margin: 1.6vw 0 3.6vw;
}

.map-wrap {
flex: 1 1 520px;
max-width: 520px;
min-width: 0;
}

.map-wrap iframe {
display: block;
width: 100%;
height: 380px;
border: 0;
border-radius: 20px;
}

/* SP */
@media screen and (max-width: 768px) {
.map-wrap {
max-width: 100%;
}

.map-wrap iframe {
height: 224px;
}

.access_text_box {
width: 100%;
flex: 0 1 0;
}

.access_box {
flex-direction: column;
}

.access_header img {
width: 37px;
}

.parking img {
width: 30px;
}

.map-wrap {
width: 100%;
flex: 1 1 0;
}
}


/*-------------------------------
CONTACT
-------------------------------*/

.contact {
padding: 9vw 0;
background-image: url(../img/footer_con_bg.png);
background-size: cover;
display: flex;
flex-direction: column;
align-items: center;
}

.contact_title h2 {
color: #FFF;
font-size: clamp(22px, 3vw, 36px);
margin-bottom: 4.5vw;
}

.contact_box {
max-width: 725px;
display: flex;
justify-content: space-between;
}

.contact_box a {
background-color: #FFF;
border-radius: 20px;
display: flex;
flex-direction: column;
align-items: center;
padding: 3.9vw 0;
width: 24vw;
max-width: 290px;
font-size: clamp(18px, 1.8vw, 22px);
font-weight: 700;
}

.contact_box img {
margin-bottom: 2vw;
}

.for_contact_form img {
width: 4.1vw;
max-width: 50px;
}

.contact_spacer {
width: 2px;
background-color: #FFF;
margin: 2% 3.5vw;
}

.for_tel img {
width: 3.3vw;
max-width: 44px;
}

/* SP */
@media (max-width: 768px) {
.contact {
padding: 12vw 0;
}

.contact_title h2 {
margin-bottom: 48px;
}

.contact_box {
flex-direction: column;
max-width: 100%;
gap: 20px;
}

.for_contact_form,
.for_tel {
width: 100%;
margin: 0 auto;
}

.contact_box a {
width: 100%;
max-width: 100%;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 6vw 22px;
border-radius: 6px;
white-space: nowrap;
}

.contact_box img {
/* アイコンが縮まないように */
margin-right: 16px;
margin-bottom: 0;
flex-shrink: 0;
}

.for_contact_form img {
width: 32px;
max-width: none;
}

.for_tel img {
width: 26px;
max-width: none;
}

.contact_spacer {
display: none;
}
}


/*-------------------------------
FOOTER
-------------------------------*/

.footer_box {
background-color: var(--beige);
display: flex;
flex-direction: column;
align-items: center;
padding: 8.5vw 0 3.3vw;
}

.footer_logo {
max-width: 365px;
margin-bottom: 2.9vw;
}

.tokutei {
margin-bottom: 3.3vw;
}

.tokutei a {
text-decoration: underline;
font-size: 16px;
}

.footer_text p {
font-size: clamp(16px, 1.6vw, 20px);
margin-bottom: 0.8em;
text-align: center;
}

.unei {
font-weight: 700;
}

.copy {
font-size: 14px;
color: #FFF;
padding: 1.25vw 0;
background-color: var(--green);
text-align: center;
}

/* SP */
@media (max-width: 768px) {
.footer_logo {
width: 70%;
margin-bottom: 8vw;
}

.tokutei {
margin-bottom: 8vw;
}

.footer_text p {
margin-bottom: 1em;
line-height: 1.8;
}

.footer_box {
padding: 15.5vw 0 10vw;
	}.footer_box a{display: block;
    text-align: center;}

.copy {
font-size: 10px;
padding: 4vw 0 10vw;
}
}


/*-------------------------------
下層ページ共通 (NEWS / SINGLE / 固定ページ等)
-------------------------------*/

.page_inner {
background-color: var(--green);
padding: clamp(40px, 8vw, 80px) 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 50px;
}

.page_box {
max-width: 1040px;
width: 90%;
margin: 0 auto;
border: 3px solid var(--yellow);
padding: clamp(40px, 9.5vw, 80px) 0;
border-radius: 20px;
background-color: var(--beige);
display: flex;
flex-direction: column;
align-items: center;
}

.page_box_inner {
max-width: 960px;
width: 90%;
}

.page_header {
background: var(--beige);
position: relative;
padding-top: 20px;
}

.page_header_inner {
width: 90%;
max-width: 1100px;
margin: 0 auto;
position: relative;
}

.page_info {
position: absolute;
right: -2.6vw;
top: 55px;
width: 100%;
max-width: 130px;
text-align: center;
padding-left: .5vw;
padding-bottom: 1.8vw;
z-index: 2;
}

@media (min-width: 1190px) {
.page_info {
right: -1.6vw;
}
}

@media (min-width: 1200px) {
.page_info {
right: 0;
}
}

.page_name {
width: 100%;
padding-bottom: 50px;
margin-bottom: 50px;
border-bottom: 2px solid var(--red);
}

.page_name h3 {
font-size:clamp(20px,1.6vw, 28px);
text-align: center;
}

.single_box .page_name h3 {
text-align: left;
}

.page_title_box {
position: relative;
padding-top: 30px;
background-color: var(--beige);
padding-bottom: 38px;
}

.page_title {
width: 80%;
background-color: #fff;
max-width: 580px;
margin: 0 auto;
border-radius: 20px;
padding: 3vw 0;
display: flex;
flex-direction: column;
align-items: center;
}

.page_title h2 {
font-size: clamp(22px, 2vw, 24px);
display: flex;
align-items: center;
gap: 1em;
margin-bottom: 0.8em;
text-align: center;
line-height: 1.4;
}

.page_title p {
text-align: center;
line-height: 1.4;
}

.page_title_img {
width: clamp(15.2px, 1.4vw, 16.7px);
}

.page_title_bars {
position: absolute;
left: 0;
bottom: 24px;
display: flex;
flex-direction: column;
gap: min(12px, calc(100vw * 12 / 1200));
}

.page_title_bar {
display: block;
height: min(20px, calc(100vw * 20 / 1200));
background-color: var(--green);
border-radius: 0 999px 999px 0;
}

/* 幅はどの幅でも1200px基準の比率で伸縮 */
.page_title_bar:nth-child(1) { width: calc(100vw * 56 / 1200); }
.page_title_bar:nth-child(2) { width: calc(100vw * 74 / 1200); }
.page_title_bar:nth-child(3) { width: calc(100vw * 92 / 1200); }
.page_title_bar:nth-child(4) { width: calc(100vw * 108 / 1200); }
.page_title_bar:nth-child(5) { width: calc(100vw * 126 / 1200); }

.page_title_box_img {
position: relative;
max-width: 1100px;
margin: 0 auto;
}

.page_title_box_img img {
position: absolute;
}

@media (min-width: 1200px) {
.page_title_box_img img {
top: max(-210px, -17vw);
}
}

.news_man {
width: 21vw;
max-width: 254px;
left: 0;
top: -17vw;
}

.contact_man {
width: 13.25vw;
max-width: 195px;
left: clamp(20px, 3.3vw, 60px);
top: -17vw;
}

.low_golf {
width: 12vw;
max-width: 195px;
left: clamp(40px, 13.2vw, 145px);
top: -15vw;
}

/* =========================
SP
========================= */
@media (max-width: 768px) {
.page_info {
display: none;
}
.page_name {
width: 100%;
padding-bottom: 20px;
margin-bottom: 20px;
border-bottom: 2px solid var(--red);
}
.page_header_inner .h_logo {
width: 65.6vw;
margin: 0;
}

.page_box {
padding: 6.5vw 0;
}

.page_title {
padding: 5.6vw 0;
}

.page_title_bars {
display: none;
}

.single_nav_arrow img {
width: 32px;
height: 32px;
}

.single_back_link {
padding: 1em 2em;
}
}

@media (max-width: 768px) {
.news_man {
width: 33vw;
max-width: 254px;
left: -18px;
top: -28vw;
}

.contact_man {
width: 25vw;
max-width: 348px;
left: 0px;
top: -32vw;
}

.low_golf {
width: 19vw;
max-width: 115px;
left: 15px;
top: -22vw;
}
}

@media (max-width: 461px) {
.news_man {
width: 33vw;
max-width: 254px;
left: -36px;
top: -28vw;
}

.contact_man {
width: 20vw;
max-width: 348px;
left: 0px;
top: -32vw;
}

.low_golf {
display:none;
}
}


/* =========================
NEWS GRID
========================= */

.post_list {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 50px 24px;
align-items: stretch;
}

.news_item {
max-width: 280px;
display: flex;
flex-direction: column;
text-decoration: none;
color: inherit;
}

.news_item .data {
font-size: 10px;
}

.news_item .cat_badge {
font-size: 10px;
padding: 4px 1.5em;
}

.news_thumb {
aspect-ratio: 4 / 3;
overflow: hidden;
border-radius: 4px;
margin-bottom: 16px;
}

.news_thumb img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}

@media (max-width: 768px) {
.post_list {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 40px 14px;
}

.news_item {
max-width: none;
}

.archive_pagination {
width: 90%;
	margin:0 auto;
}

.page_title_box_img {
width: 90%;
}
}

@media (max-width: 461px) {
.post_list {
grid-template-columns: 1fr;
gap: 40px;
}
}


/* =========================
ページネーション
========================= */

.pg-wrap {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 662px;
	margin-top: 50px;

}

.pg-arrow {
/* 矢印（48px画像） */
flex-shrink: 0;
display: flex;
width: 48px;
height: 48px;
}

.pg-arrow img {
width: 48px;
height: 48px;
display: block;
}

.pg-arrow.disabled {
opacity: 0.3;
pointer-events: none;
}

.pg-arrow-prev {
margin-right: 10%;
}

.pg-arrow-next {
margin-left: 10%;
}

.pg-nums {
/* 数字＋セパレーターのまとまり */
display: flex;
align-items: center;
flex-wrap: nowrap;
}

.pg-sep {
/* 縦線（セパレーター） */
display: inline-block;
width: 1px;
height: 16px;
background-color: var(--green);
margin: 0 12px;
}

.pg-num {
/* ページ番号 */
font-size: 16px;
font-weight: bold;
color: #000;
text-decoration: none;
}

.pg-num.active {
/* 現在のページ */
color: var(--red);
}

.pg-dots {
/* ・・・・・ */
font-size: 16px;
color: var(--green);
letter-spacing: 2px;
}




/* =========================
記事詳細 / 前後ナビ
========================= */

.single_nav {
/* 前の記事・一覧に戻る・次の記事 */
max-width: 662px;
width: 90%;
display: flex;
align-items: center;
justify-content: space-between;
}

.single_nav_arrow img {
width: 48px;
height: 48px;
display: block;
}

.single_nav_arrow.disabled {
opacity: 0.3;
pointer-events: none;
}

.single_back_link {
font-size: 16px;
font-weight: 700;
color: #FFF;
background-color: var(--green);
padding: 1em 4em;
border-radius: 6px;
letter-spacing: 0.08em;
}

.single_content {
width: 100%;
padding-bottom: 50px;
margin-bottom: 50px;
border-bottom: 2px solid var(--red);
}

.single_box {
max-width: 900px;
width: 90%;
display: flex;
flex-direction: column;
align-items: center;
}

.thanks_text {
width: 90%;
margin: 0 auto;
}

.thanks_text p {
text-align: left;
font-size: 16px;
line-height: 1.4;
}

@media (max-width: 768px) {
.pg-arrow {
width: 32px;
height: 32px;
}
.single_nav_arrow img {
width: 32px;
height: 32px;
}
	.single_back_link {    padding: 1em 2em;}
.pg-arrow img {
width: 32px;
height: 32px;
}
}
/* 見出し統一 */
.single_content .wp-block-heading,
.single_content .wp-block-paragraph {
line-height: 1.8;
margin: 0 0 1.5em;
}
.single_content{    font-size: clamp(14px, 1.6vw, 16px);}
.single_content figure {
margin: 0 0 1.5em;
}

/* レベル別に制御 */
.single_content h1.wp-block-heading {
font-size: 2.2rem;
}

.single_content h2.wp-block-heading {
    position: relative;
    font-size: clamp(15px, 1.6vw, 20px);
    color: #FFF;
    padding: 8px calc(2.2em + 0.6em) 8px 0.8em;
    background-color: var(--green);
    border-radius: 6px;
    overflow: hidden;
	margin-top:2.3em;
}

.single_content h2.wp-block-heading::after {
    /* 右端2文字分だけ赤レイヤー */
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 2.2em;
    background-color: var(--red);
}

.single_content h3.wp-block-heading {
    position: relative;
    font-size: clamp(15px, 1.6vw, 20px);
    padding: 8px calc(2.2em + 0.6em) 8px 0.8em;
    background-color: #FFF;
    border-radius: 6px;
    overflow: hidden;
	margin-top:2.3em;
}

.single_content h3.wp-block-heading::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 2.2em;
    background-color: var(--yellow);
}

/* リスト */
.single_content ul,
.single_content ol {
margin: 0 0 1.2em;
padding-left: 1.5em;
}

.single_content li {
    list-style: disc;
margin: 0.3em 0;
line-height: 1.6;
}

/* リンク */
.single_content a {
color: var(--green);
text-decoration: underline;
text-underline-offset: 2px;
}

.single_content a:hover {
opacity: 0.8;
}

/* 引用（blockquote） */
.single_content blockquote {
margin: 1.5em 0;
padding: 1em 1.2em;
border-left: 4px solid var(--green);
background: #f7f7f7;
color: #333;
}

/* コードブロック */
.single_content pre {
margin: 1.5em 0;
padding: 1em;
background: #111;
color: #eee;
overflow-x: auto;
border-radius: 6px;
font-size: 0.9em;
}

.single_content code {
font-family: Consolas, Monaco, monospace;
}

/* 画像 */
.single_content img {
max-width: 100%;
height: auto;
border-radius: 6px;
}

.single_content figcaption {
/* キャプション */
font-size: 0.85rem;
color: #666;
margin-top: 0.4em;
}

/* 区切り線 */
.single_content hr {
border: none;
border-top: 1px solid #ddd;
margin: 2em 0;
}

/* テーブル（入る場合） */
.single_content table {
width: 100%;
border-collapse: collapse;
margin: 1.5em 0;
}

.single_content th,
.single_content td {
border: 1px solid #ddd;
padding: 0.6em;
text-align: left;
}

.single_content th {
background: #f5f5f5;
}
.single_thumb{
	margin-bottom:1.7em;
}

/* =========================
固定ページ内テーブル（低層ページ等）
========================= */

.low_page h4 {
font-size: clamp(22px, 2.3vw, 28px);
margin-bottom: clamp(30px, 4.5vw, 55px);
}

.low_page table.low {
width: 90%;
border-collapse: collapse;
table-layout: fixed;
}

.low_page table.low th,
.low_page table.low td {
padding: 12px 8px;
border: 1px solid var(--green);
text-align: left;
vertical-align: top;
font-size: clamp(14px, 1.2vw, 16px);
line-height: 1.4;
}

.low_page table.low th {
background-color: #f3f8f5;
width: 36%;
}

.low_page table.low td {
background-color: #fff;
}

/* リスト */
.low_page table.low td ul {
margin: 0;
padding: 0;
list-style: none;
}

.low_page table.low td li {
position: relative;
padding-left: 1.2em;
line-height: 1.4;
text-indent: -1.2em;
margin-bottom: 0.5em;
}

.low_page table.low td li::before {
content: "・";
}

/* リンク */
.low_page table.low td a {
color: #000;
text-decoration: underline;
}

/* スマホ */
@media (max-width: 767px) {
.low_page table.low,
.low_page table.low tbody {
width: 90%;
border: 1px solid var(--green);
}

.low_page table.low tr,
.low_page table.low th,
.low_page table.low td {
display: block;
width: 100%;
}

.low_page table.low th,
.low_page table.low td {
border: none;
padding: 12px;
border-bottom: 0.5px solid var(--green);
}

.low_page table.low th {
font-weight: bold;
}
}

.yakkan{
width:90%;line-height:1.5;
}

/*-------------------------------
コンタクトフォーム（フォームレイアウト）
-------------------------------*/

.page_tel h4 {
font-size: clamp(19px, 2vw, 24px);
text-align: center;
margin-bottom: 3vw;
}

.page_tel a {
display: flex;
font-size: clamp(22px, 2.6vw, 32px);
font-weight: 700;
}

.page_tel a img {
width: clamp(28px, 2.6vw, 32px);
margin-right: 1em;
}

.form_intro {
text-align: center;
}

.form_intro h3 {
font-size: clamp(19px, 2vw, 24px);
}

.form_intro img {
width: clamp(36px, 3.3vw, 40px);
margin-bottom: 3vw;
}

.hissu {
width: 100%;
border-bottom: 2px solid var(--green);
color: var(--green);
font-size: clamp(14px, 1.3vw, 16px);
padding-bottom: 1em;
margin-top: 5vw;
margin-bottom: 2.8vw;
}

/* =========================
フォーム全体リセット
========================= */

:where(input, textarea, select, button) {
appearance: none;
-webkit-appearance: none;
border: none;
outline: none;
box-shadow: none;
border-radius: 0;
background: transparent;
color: #000;
font: inherit;
letter-spacing: inherit;
vertical-align: middle;
}

*,
*::before,
*::after {
box-sizing: border-box;
}

.ly_form * {
min-inline-size: 0;
}

/* textarea */
textarea {
resize: vertical;
width: 100%;
}

.bl_form textarea {
height: 180px;
}

/* ボタン基本 */
:where(button, [type="button"], [type="submit"], [type="reset"]) {
text-align: center;
user-select: none;
touch-action: manipulation;
cursor: pointer;
}

/* =========================
レイアウト
========================= */

.bl_form,
.bl_formConfirm,
.bl_formThanks {
width: 100%;
padding: 0 1rem;
box-sizing: border-box;
}
.bl_formConfirm{
	width:90%;margin:0 auto;
}
.bl_form_group:not(:first-of-type),
.bl_formConfirm_txt + .bl_form_group {
margin-top: .5em;
margin-bottom: .8em;
}

.bl_form_group fieldset {
display: contents;
}

.bl_form_control {
margin-bottom: .5em;
}

/* ラベル */
.bl_form_label {
display: flex;
align-items: flex-end;
margin-bottom: 1em;
font-weight: 400;
}

.bl_form_required {
display: inline-block;
padding: .1em .2em;
font-weight: 400;
}

/* バリデーション */
.wpcf7-not-valid-tip {
padding: 10px 0;
}

/* 入力欄 */
.bl_form :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select) {
width: 100%;
padding: 12px 10px;
background: #f4f4f4;
line-height: 1.5;
}

.bl_form :is(input[type="text"], input[type="email"], input[type="tel"], textarea)::placeholder {
color: #c5c5c5;
}

/* 郵便番号 */
.yuubin {
display: inline-flex;
align-items: center;
}

.yuubin p {
margin-right: 1em;
}

.yuubin :is(input[type="text"], input[type="tel"]) {
width: 8em;
}

/* ラジオ・チェックリスト */
.wpcf7-list-item {
display: block;
margin: 0 0 .8em;
}

.bl_form_radio,
.bl_form_checkbox {
display: inline-grid;
gap: .5em 2em;
}

/* =========================
オリジナル ラジオ・チェック共通
========================= */

.bl_form :is(input[type="radio"], input[type="checkbox"]) {
position: relative;
top: -1px;
width: 18px;
height: 18px;
margin-right: .6em;
background: #fff;
border: 2px solid #ddd;
cursor: pointer;
flex-shrink: 0;
vertical-align: middle;
}

.bl_form input[type="radio"] {
border-radius: 50%;
}

.bl_newsletter_group input[type="checkbox"] {
border-radius: 50%;
}

.bl_form :is(input[type="radio"], input[type="checkbox"]):checked::before {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

.bl_form input[type="radio"]:checked::before {
width: 8px;
height: 8px;
background: #ef940e;
border-radius: 50%;
}

.bl_form input[type="checkbox"]:checked::before {
width: 10px;
height: 6px;
border-left: 3px solid #ef940e;
border-bottom: 3px solid #ef940e;
transform: translate(-50%, -60%) rotate(-45deg);
}

.bl_form label:has(input:focus-visible) {
outline: 2px solid #005fcc;
outline-offset: 2px;
}

/* 同意ブロック */
.bl_form_consent {
margin-top: 30px;
text-align: center;
}

/* =========================
ボタンエリア
========================= */

.bl_form_btn {
display: flex;
align-items: stretch;
gap: 2vw;
margin-top: 2.5rem;
width: 100%;
}

.bl_form_btn > .btn_wrap {
flex: 1 1 0;
width: 100%;
max-width: none;
}

.bl_form_btn > .btn_wrap:only-child {
flex: 0 0 276px;
max-width: 276px;
margin-inline: auto;
}

/* ボタン共通 */
.btn_wrap {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
width: 100%;
min-height: 64px;
padding: 0 18px;
border-radius: 8px;
box-sizing: border-box;
cursor: pointer;
transition: .3s;
user-select: none;
}

.btn_wrap,
.btn_wrap--submit {
background: var(--green);
}

.btn_wrap--back {
background: var(--yellow);
}

.btn_wrap--back,
.btn_wrap--submit {
flex: 1 1 0;
width: 100%;
}

/* button / submit */
.bl_form_confirm,
.bl_form_back,
.btn_submit,
.wpcf7-submit {
position: relative;
z-index: 2;
display: flex;
align-items: center;
justify-content: center;
flex: 1;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
border: none;
background: transparent;
color: #fff;
font-size: clamp(14px, 1.33vw, 16px);
font-weight: 700;
line-height: 1;
text-align: center;
cursor: pointer;
pointer-events: auto;
appearance: none;
-webkit-appearance: none;
}

.btn_wrap .wpcf7-form-control-wrap,
.btn_submit,
.btn_submit .wpcf7-form-control-wrap {
display: flex;
flex: 1;
align-items: center;
justify-content: center;
height: 100%;
}

.btn_submit .wpcf7-submit {
font: inherit;
}

/* 左丸・右矢印 */
.maru,
.arrow {
pointer-events: none;
}

.maru {
flex: 0 0 10px;
width: 10px;
height: 10px;
border-radius: 50%;
background: #fff;
}

.arrow {
flex: 0 0 36px;
width: 36px;
height: 36px;
border-radius: 50%;
background: #fff;
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
font-weight: 700;
line-height: 1;
}

.btn_wrap:not(.btn_wrap--back) .arrow {
color: var(--green);
}

.btn_wrap--back .arrow {
color: var(--yellow);
}

/* hover */
.btn_wrap:hover {
opacity: .8;
}

.btn_wrap:active {
transform: scale(.98);
}

/* disabled */
.btn_wrap.is-disabled {
opacity: .6;
}

.btn_wrap .wpcf7-spinner {
position: absolute;
right: -34px;
top: 50%;
transform: translateY(-50%);
margin: 0;
}

/* SP */
@media (max-width: 767px) {
.bl_form_btn {
flex-direction: column;
gap: 16px;
}

.bl_form_btn > .btn_wrap,
.bl_form_btn > .btn_wrap:only-child {
max-width: 100%;
flex: none;
}
}

/* =========================
確認画面非表示
========================= */

.bl_formConfirm,
.wpcf7-response-output,
.bl_formConfirm .wpcf7-spinner {
display: none;
}

/* =========================
完了画面・確認画面
========================= */

.bl_formThanks_ttl,
.bl_formThanks_txt,
.bl_formConfirm_txt {
text-align: center;
}

.bl_formThanks_ttl {
font-size: 24px;
font-weight: 700;
}

.bl_formThanks_txt {
margin-top: 1em;
}

.bl_formConfirm_txt {
margin: 2em;
}

.bl_confirm_message {
line-height: 1.6;
white-space: pre-wrap;
}

.bl_confirm_contact_type {
margin: 2em 0;
}

.bl_formConfirm .bl_form_btn {
display: flex;
width: 100%;
justify-content: space-between;
align-items: stretch;
gap: 2vw;
}

.bl_formConfirm .bl_form_btn > .btn_wrap {
flex: 1 1 0;
width: 100%;
max-width: none;
}

/* =========================
プライバシー
========================= */

.porcy_box {
width: 100%;
margin-top: 40px;
padding-top: 30px;
border-top: 2px solid var(--green);
}

.porcy_box h4 {
color: var(--red);
padding-bottom: 30px;
}

.contact__privacy {
max-width: 100%;
max-height: 250px;
margin: 0 auto 1em;
padding: 1em 1.3em;
background: #fff;
border: 2px solid #808080;
border-right-width: 1px;
overflow-y: auto;
text-align: left;
line-height: 1.4;
font-size: clamp(14px, 1.6vw, 16px);
scrollbar-width: thin;
scrollbar-color: #333 #c7c7c7;
}

.contact__privacy p,
.contact__privacy h3 {
font-size: clamp(14px, 1.6vw, 16px);
line-height: 2;
margin-bottom: 10px;
font-weight: 400;
}

.contact__privacy h3 {
color: #0073b4;
}

.contact__privacy::-webkit-scrollbar {
width: 10px;
}

.contact__privacy::-webkit-scrollbar-track {
background: #c7c7c7;
}

.contact__privacy::-webkit-scrollbar-thumb {
background: #808080;
}

.wpcf7-list-item-label {
color: #000;
}

/* =========================
PC
========================= */
@media (min-width: 768px) {
.bl_form_group {
display: grid;
grid-template-columns: 38% 1fr;
gap: 3%;
align-items: start;
font-size: 18px;
}

.bl_form_radio,
.bl_form_checkbox {
grid-auto-flow: column;
}

.bl_con_check span::before,
.bl_con_check span::after {
content: none;
}
}