@charset "UTF-8";
/*=======================================================
全体
=======================================================*/
/*デフォルトのサンクスメッセージを非表示*/
.wpcf7-response-output{	display: none;}
.each {
    opacity: 0;
    visibility: hidden;
    height: 0;
    overflow: hidden;
    position: relative;
    pointer-events: none; /* ←クリック無効にする */
    transition: opacity 0.3s ease;
}
.each.active {
    opacity: 1;
    visibility: visible;
    height: auto;
    overflow: visible;
    pointer-events: auto;
}
.tab-content {
    opacity: 0;
    visibility: hidden;
    height: 0;
    overflow: hidden;
    position: relative;
    pointer-events: none;
}
.tab-content.active {
    opacity: 1;
    visibility: visible;
    height: auto;
    overflow: visible;
    pointer-events: auto;
}
/*=======================================================
共通
=======================================================*/
[id^="form-"] {
    scroll-margin-top: 160px; /* ← ヘッダー高さぶん調整 */
}
.section__inner {
	max-width: 1240px;
	padding: 0 20px; 	
	margin: auto auto 127px;
}
.section__title {
	border-bottom: 2px solid var(--red);
	display: flex; 
	align-items: center;
	justify-content: center; 
	gap: 15px;
	padding-bottom: 5px;
}
/*フッター*/
.cta__inner {
	padding-top: 83px;
	padding-bottom: 79px;
}
.cta__title {
	display: none;
}
.cta__tel {
	position: relative;
}
.cta__tel::before {
	content: "お電話でのお問合せ";
	font-size: 18px; 
	font-weight: 500;
	display: block;
}
.cta__btn-list {
	margin-top: 26px;
}
/*------------------------------------------------------
電話番号エリア
------------------------------------------------------*/
.tel__area {
	font-size: 18px;
	text-align: center;
}
.tel__area .section__inner {
	padding-top: 22px;
	margin-bottom: 73px;
}
.tel__wrap .tel {
	font-size: 34px;
	margin-top: 4px;
}
.tel__wrap .tel::before {
	content: "TEL.";
	font-size: 26px;
	display: inline-block;
}
.tel__wrap .note {
	font-size: 14px;
}
.tel__wrap-reserve {
	margin-top: 32px;
}
.tel__area .flex {
	margin-top: 40px;
}
.tel__area .flex:has(.tel__wrap-reserve) {
	margin-top: 0;
	gap: 100px;
}
/*ご予約のみ*/
.tel__wrap-reserve .tel,
.page-shichigosan .tel__wrap .tel,
.page-kids .tel__wrap .tel {
	font-size: 28px;
}
.tel__wrap-reserve .tel::before {
	font-size: 22px;
}
/*ボタン群*/
.tel__area .flex {
	gap: 29px;
	font-size: 18px;
}
/*ブライダルフェア予約ボタン*/
.tel__area .external_link {
	padding-right: 33px;
}
.tel__area .external_link .bridal-fair__name {
	font-size: 12px;
	color: #B4B4B4;
    letter-spacing: -0.1em;
    margin-left: -1em;
    margin-top: 5px;
	display: block;
}
.tel__area .external_link::before {
	position: absolute;
    right: 31px;
    margin-right: 0;
    top: 26px;
}
@media screen and (max-width : 767px) {
	.tel__area .flex:has(.tel__wrap-reserve) {
		gap: 0;
	}
}
/*------------------------------------------------------
トップ
------------------------------------------------------*/
.each__card {
	display: flex; 
	justify-content: center;
	align-items: center;
	gap: 40px;
	flex-wrap: wrap;
}
.each__card-item {
	max-width: 270px;
	width: 100%; 
	height: 344px; 
	background: #fff;
}
.card__title {
	text-align: center;
	color: var(--beige);
	font-size: 22px;
	font-weight: 500;
	margin-top: 14px;
	margin-bottom: 14px;
}
.card__subtitle {
	color: #000;
	text-align: center;
}
.card__subtitle + .card__subtitle {
	margin-top: 14px;
}
.card__subtitle a {
	text-decoration: underline;
	position: relative;
	padding: 0;
}
.card__subtitle .external_link::before {
	position: static;
    margin-right: 7px;
}
.card__subtitle a:hover {
	color: var(--beige);
}
/*------------------------------------------------------
フォーム内
------------------------------------------------------*/
.tab-contents {
	background: #fff;
	margin-top: 10px; 
	padding: 54px 105px 74px;
}
.tab__title {
	text-align: center;
	font-size: 26px;
	margin-bottom: 48px;
}
/*ステップ*/
.step {
	display: flex;
	gap: 45px;
	margin: 0 auto 56px;
	position: relative;
}
.step__item {
	position: relative;
    width: 300px;
    height: 50px;
    background: #EDEDED;
    color: #000;
	font-size: 18px;
	display: flex; 
	align-items: center; 
	justify-content: center;
}
.step__item.active {
	background: #000;
	color: #fff;
}
.step__item:not(:last-of-type)::after {
    content: "";
	position: absolute; 
	top: 50%;
    transform: translateY(-50%);
    right: -47px;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 8px solid #B4B4B4;
    display: block;
	padding: 0 10px;
}
/*------------------------------------------------------
フォームパーツ
------------------------------------------------------*/
input, button:not(.header__toggle):not(.to-check):not(.back-btn), select, textarea {
	background: #FCFCFC;
	padding: 14px 24px 15px;
	width: 100%;
	border: 1px solid #CCCCCC;
	cursor: pointer;
}
input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0px 1000px #FCFCFC inset;
}
::placeholder {
	color: #aaa;
}
.wpcf7-form-control-wrap {
	width: 100%;
}
.wpcf7-list-item {
	display: block; 
	margin-left: 0;
}
/*ご意見テキストエリア*/
.textarea {
	width: 100%;
}
.wpcf7-form textarea,
textarea[name="your-note"] {
    width: 100%;
    box-sizing: border-box;
    max-width: 100%;
}
/*同意ボタン*/
.wpcf7-checkbox {
	display: flex; 
	justify-content: center;
	gap: 15px;
}
input[type="checkbox"] {
	width: 40px; 
	height: 40px;
	-webkit-appearance: none;
	padding: 0;
	position: relative;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 0;
}
input[type="checkbox"]:checked:after {
    content: "";
    width: 24px;
    height: 15px;
    border-left: 1px solid #000;
    border-bottom: 1px solid #000;
    transform: rotate(-45deg);
    display: block;
    position: absolute;
    left: 7px;
    top: 5px;
}
/*考え中ボタン非表示*/
.wpcf7-spinner {
	display: none!important;
}
/*送信するボタン*/
input[type="submit"] {
	background: none; 
	border: none;
	touch-action: manipulation;
}
/*------------------------------------------------------
項目ごと
------------------------------------------------------*/
.contact-form {
    margin: 0 auto;
}
.form-row {
    display: flex;
    margin-bottom: 32px;
    gap: 62px;
}
.form-row-v {
	flex-direction: row;
}
.form-row label {
	display: flex;
    align-items: center;
    justify-content: space-between;
	width: 264px;
	flex-shrink: 0;
	line-height: 1.5;
	color: #333;
	font-weight: 500;
}
.form-row label span {
	display: flex;
	align-items: center; 
	justify-content: center;
	width: 66px;
	height: 33px;
	background: #aaa;
	color: #fff;
}
.form-row label .required {
	background: var(--beige);
}
.flex-group {
    display: flex;
    gap: 15px;
    align-items: center;
}
.form-row-v .flex-group + .flex-group {
	margin-top: 15px;
}
select {
	background: url(../images/contact/icon-dropdown.svg) center right 10px / 17px no-repeat,#FCFCFC;
	padding-top: 19px; 
	padding-bottom: 18px;
}
.calendar {
	align-items: flex-start;
}
.calendar .flex-group span {
	flex-shrink: 0;
}
.calendar .wpcf7-form-control-wrap {
	width: initial;
}
/*名前*/
.name {
	width: 211px;
}
/*〒番号*/
.postal .wpcf7-form-control-wrap {
	width: initial;
}
.yubin {
	width: 152px;
}
/*都道府県*/
.select {
	width: 258px;
	color: #000;
}
/*日付*/
.date {
	width: 165px;
	padding: 16px 10px 17px;
}
/*時間*/
.time {
	width: 146px;
}
/*人数*/
.number {
	width: 126px;
}
/*同意*/
.form-agree {
	text-align: center; 
	margin-top: 40px;
}
.agree a {
	text-decoration: underline;
}
.agree a:hover {
	color: var(--beige);
}
.input-agree {
	display: flex; 
	align-items: center; 
	justify-content: center; 
	margin: 29px 0 48px;
}
.input-agree label {
	display: flex; 
	align-items: center;
	gap: 16px;
}
.to-check.disabled {
    opacity: 0.5;
    pointer-events: none;
    cursor: not-allowed;
}
input.wpcf7-not-valid,
textarea.wpcf7-not-valid,
select.wpcf7-not-valid {
    border-color: #e74c3c;
    background-color: #fff5f5;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.wpcf7-not-valid-tip {
    font-size: 14px!important;
    margin-top: 5px!important;
}
/*------------------------------------------------------
確認画面
------------------------------------------------------*/
#check .form-agree {
	margin-top: 63px;
}
#check .form-row-v div + div {
	margin-top: 10px;
}
.form-error-global {
	color: red;
	margin-bottom: 10px;
}
/*------------------------------------------------------
完了画面
------------------------------------------------------*/
#thanks .text {
	text-align: center;
	margin-bottom: 60px;
}
#thanks .text p {
	line-height: 1.8;
	font-weight: 500;
}
/*------------------------------------------------------
タブ
------------------------------------------------------*/
.tab-menu li a {
	width: 100%; 
	height: 100%; 
	display: flex; 
	align-items: center; 
	justify-content: center;
}
.button-s {
    width: 301px;
    height: 70px;
}
@media screen and (max-width : 1059px) {
	.tab-contents {
		padding-left: 35px; 
		padding-right: 35px;
	}
	.tab-menu li {
		font-size: 16px;
	}
	.form-row label {
		width: 230px;
	}
	.form-row {
		gap: 50px;
	}
}
@media screen and (max-width : 767px) {
	.each__card-item {
		max-width: 100%;
		height: auto;
	}
	.each__card-item .card__body {
		padding-bottom: 30px;
	}
	.section__inner {
		padding-left: 15px; 
		padding-right: 15px;
		margin-bottom: 70px;
	}
	.tel__area .flex {
		flex-direction: column;
	}
	.tab-contents {
		padding-left: 10px;
		padding-right: 10px;
	}
	.tab-menu li {
		width: 50%;
	}
	.page-wedding .tab-menu li {
		width: 36%;
	}
	.step {
        gap: 22px;
        margin: 0 auto 45px;
    }
	.step__item:not(:last-of-type)::after {
		right: -36px;
	}
	.flex-group {
        gap: 12px;
		flex-wrap: wrap;
	}
	.form-row label {
		width: 100%;
		justify-content: flex-start;
        gap: 15px;
	}
	.form-row {
		flex-direction: column;
		gap: 10px;
	}
	.form-row label span {
        width: 50px;
        height: 25px;
        font-size: 14px;
    }
	.name {
		width: 100%;
	}
	.yubin {
        width: 120px;
    }
	.button-s {
		max-width: 100%;
	}
}
@media screen and (max-width : 457px) {
	.choice {
		width: 100%;
	}
}
@media screen and (max-width : 374px) {
    .yubin {
        width: 95px;
        padding: 13px;
    }
}