@charset "UTF-8";

.hamburger {
	display: block;
	position: fixed;
	z-index: 99999;
	right: 5.1vw;
	top: 6.4vw;
	width: 12.8vw;
	height: 12.8vw;
	border: none;
	border-radius: 50%;
	background: #00309B;
	cursor: pointer;
	text-align: center;
	padding: 0;
}

.hamburger span {
	display: block;
	position: absolute;
	width: 6.7vw;
	height: 0.8vw;
	left: 50%;
	margin-left: -3.3vw;
	background: #fff;
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}

.hamburger span:nth-child(1) {
	top: 4.9vw;
}

.hamburger span:nth-child(2) {
	top: 7.4vw;
}

.hamburger.active span:nth-child(1) {
	top: 5.9vw;
	-webkit-transform: rotate(-330deg);
	-moz-transform: rotate(-330deg);
	transform: rotate(-330deg);
}

.hamburger.active span:nth-child(2) {
	top: 5.9vw;
	-webkit-transform: rotate(330deg);
	-moz-transform: rotate(330deg);
	transform: rotate(330deg);
}

nav.globalMenuSp {
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: left;
	color: #fff;
	background: rgba(26, 26, 26, 0.85);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	transform: translateX(100%);
	transition: transform 0.3s ease;
	overflow-y: auto;
	padding: 29.2vw 5.1vw 10.3vw;
	box-sizing: border-box;
}

.menu_header {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: 5.1vw;
	box-sizing: border-box;
	z-index: 10000;
	align-items: center;
}

.menu_header.visible {
	display: flex;
}

.menu_header .menu_logo_pill {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	padding: 4.6vw 6.2vw 2.6vw 7.7vw;
	background: #fff;
	border-radius: 100vh;
	box-shadow: 0 0.3vw 1vw rgba(0, 0, 0, 0.2);
	text-decoration: none;
	color: #1A1A1A;
}

.menu_header .menu_logo_pill img {
	display: block;
	height: 3.6vw;
	width: auto;
}

.menu_header .menu_logo_sub {
	display: block;
	margin-top: 0.5vw;
	font-family: "din-2014", sans-serif;
	font-size: 2.6vw;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #00309B;
}

nav.globalMenuSp .menu_list {
	margin: 0;
	width: 100%;
	max-width: 89.7vw;
	flex: 1;
}

/* 2番目以降のトップ階層に余白を追加 */
nav.globalMenuSp .menu_list > li + li {
	margin-top: 0;
}

nav.globalMenuSp ul.menu_list,
nav.globalMenuSp ul {
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 89.7vw;
}

nav.globalMenuSp > ul > li {
	border: none;
}

nav.globalMenuSp .menu_category {
	margin: 0;
	padding: 5.1vw 0 0.5vw;
	font-family: "din-2014", sans-serif;
	font-size: 7.7vw;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #6C6C6C;
}

nav.globalMenuSp .menu_list > li + li > .menu_category {
	margin-top: 3.9vw;
}

nav.globalMenuSp .menu_category:first-of-type {
	padding-top: 0;
}

nav.globalMenuSp .menu_divider {
	height: 0;
	margin: 0;
	border: none;
	border-top: 0.5vw dotted #626262;
}

nav.globalMenuSp .menu_sub {
	margin: 0;
	padding: 3.6vw 0 2.1vw 2.6vw;
}

nav.globalMenuSp .menu_sub li {
	border: none;
}

nav.globalMenuSp .menu_sub li + li {
	margin-top: 3.1vw;
}

nav.globalMenuSp .menu_sub a {
	display: block;
	padding: 0;
	font-size: 3.6vw;
	font-weight: 800;
	letter-spacing: 0.05em;
	color: #fff;
	text-decoration: none;
}

nav.globalMenuSp .menu_sub a::before {
	content: "- ";
}

nav.globalMenuSp > ul > li > a {
	display: block;
	padding: 3.6vw 0;
	font-size: 4.1vw;
	font-weight: 800;
	color: #fff;
	text-decoration: none;
}

nav.globalMenuSp > ul > li > a::before {
	content: none;
}

/* ===== メニュー下部（export_0035：CTA + フッター風） ===== */
nav.globalMenuSp .menu_cta {
	width: 100%;
	max-width: 89.7vw;
	margin-top: 13.9vw;
}

nav.globalMenuSp .menu_cta_title {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5.1vw;
	font-size: 4.6vw;
	font-weight: 900;
	letter-spacing: 0.03em;
	color: #fff;
}

nav.globalMenuSp .menu_cta_title::before,
nav.globalMenuSp .menu_cta_title::after {
	content: "";
	display: block;
	width: 0.5vw;
	height: 6.7vw;
	background: #fff;
}

nav.globalMenuSp .menu_cta_title::before {
	transform: rotate(-30deg);
}

nav.globalMenuSp .menu_cta_title::after {
	transform: rotate(30deg);
}

nav.globalMenuSp .menu_cta_panel {
	width: 100%;
	max-width: 79.5vw;
	margin: 3.1vw auto 0;
	padding: 4.1vw 3.9vw 4.6vw;
    border-radius: 3vw;
	box-sizing: border-box;
	background: linear-gradient(135deg, #0000BA 0%, #278DB2 37.4%, #278DB2 59.1%, #0000BA 100%);
	box-shadow: 0 0 1.5vw rgba(0, 0, 0, 0.26);
}

nav.globalMenuSp .menu_cta_panel_header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2.6vw;
}

nav.globalMenuSp .menu_cta_heading {
	margin: 0;
	font-family: "din-2014", sans-serif;
	font-size: 6.2vw;
	font-weight: 800;
	letter-spacing: 0.04em;
	color: #fff;
}

nav.globalMenuSp .menu_cta_hours {
	margin: 0;
	font-size: 3.1vw;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.9);
	white-space: nowrap;
}

nav.globalMenuSp .menu_cta_box {
	width: 100%;
	padding: 2.8vw 2.6vw 4.1vw;
	border-radius: 1.5vw;
	background: rgba(255, 255, 255, 0.95);
	-webkit-backdrop-filter: blur(5.1vw);
	backdrop-filter: blur(5.1vw);
	box-sizing: border-box;
}

/* 2つ目のボックスだけ下側の余白を調整 */
/* 2つ目（最後）のボックスだけ下側の余白を調整
   間に .menu_cta_divider も div で挟まっているため last-of-type を使用 */
nav.globalMenuSp .menu_cta_panel_body .menu_cta_box:last-of-type {
	padding: 2.8vw 2.6vw 2.1vw;
}

nav.globalMenuSp .menu_cta_box .label {
	margin: 0;
	font-size: 3.6vw;
	font-weight: 800;
	letter-spacing: 0.05em;
	color: #1A1A1A;
	text-align: center;
}

nav.globalMenuSp .menu_cta_divider {
	width: 100%;
	max-width: 71.8vw;
	height: 0;
	margin: 3.6vw auto;
	border-top: 0.5vw dashed rgba(255, 255, 255, 0.6);
}

nav.globalMenuSp .button_entry,
nav.globalMenuSp .button_tel {
	margin-top: 1.3vw;
}

nav.globalMenuSp .button_entry a,
nav.globalMenuSp .button_tel a {
	display: block;
	padding: 2.8vw 3.9vw;
	border-radius: 100vh;
	text-decoration: none;
	position: relative;
	box-sizing: border-box;
}

nav.globalMenuSp .button_entry a {
	background: #0045A8;
	color: #fff;
	box-shadow: 0 1.5vw 0 #002E6F;
}

nav.globalMenuSp .button_tel a {
	background: #E5EDFA;
	color: #0045A8;
	box-shadow: 0 1.5vw 0 #AFC2DD;
}

nav.globalMenuSp .button_entry a::after,
nav.globalMenuSp .button_tel a::after {
	content: "";
	position: absolute;
	right: 4.6vw;
	top: 50%;
	width: 3.5vw;
	height: 5vw;
	transform: translateY(-50%);
	background-color: currentColor;
	-webkit-mask-image: url(/wp-content/themes/child/image/arrow_entry.svg);
	mask-image: url(/wp-content/themes/child/image/arrow_entry.svg);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center center;
	mask-position: center center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

nav.globalMenuSp .text_block {
	display: flex;
	align-items: center;
	gap: 4.1vw;
}

nav.globalMenuSp .button_entry .text_block {
    gap: 6.5vw;
}

nav.globalMenuSp .button_tel .text_block {
    gap: 8.5vw;
}

nav.globalMenuSp .icon_entry,
nav.globalMenuSp .icon_tel {
	width: 8.2vw;
	height: 8.2vw;
	border-radius: 50%;
	flex-shrink: 0;
}

nav.globalMenuSp .icon_entry {
	background: #fff;
}

nav.globalMenuSp .icon_tel {
	background: #0045A8;
}

nav.globalMenuSp .icon_entry img,
nav.globalMenuSp .icon_tel img {
	width: 100%;
    aspect-ratio: 1/1;
    object-fit: contain;
	display: block;
}

nav.globalMenuSp .button_entry .text,
nav.globalMenuSp .button_tel .text {
	font-size: 4.1vw;
	font-weight: 900;
	letter-spacing: 0.05em;
}

nav.globalMenuSp .menu_cta_box .business_hours {
	margin-top: 2.6vw;
	font-size: 3.1vw;
	font-weight: 500;
	color: #6F6F6F;
	text-align: center;
}

nav.globalMenuSp .menu_bottom {
	width: 100%;
	max-width: 89.7vw;
	margin: 9.7vw auto 0;
}

nav.globalMenuSp .corporate_block {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12.8vw;
}

nav.globalMenuSp .corporate_block_left .corporate_label {
	margin: 0;
	font-size: 3.6vw;
	font-weight: 500;
	letter-spacing: 0.03em;
	color: #A0A0A0;
	text-align: center;
}

nav.globalMenuSp .corporate_block_left .corporate_link {
	display: inline-flex;
	align-items: center;
	gap: 2.1vw;
	font-size: 3.6vw;
	font-weight: 900;
	letter-spacing: 0.03em;
	color: #fff;
	text-decoration: none;
	text-align: center;
}

nav.globalMenuSp .corporate_block .external_icon {
	color: #B4B4B4;
	font-size: 3.1vw;
}

nav.globalMenuSp .corporate_block_right {
	display: flex;
	align-items: center;
	gap: 4vw;
	justify-content: center;
}

nav.globalMenuSp .corporate_block_right a,
nav.globalMenuSp .corporate_block_right .divider {
	font-size: 3.3vw;
	color: #D5D5D5;
	text-decoration: none;
}

nav.globalMenuSp .bottom_bar {
	margin-top: 2.6vw;
	padding: 3.1vw 0 10.3vw;
	border-top: 0.5vw solid #505050;
	text-align: center;
}

nav.globalMenuSp .bottom_bar .copyright {
	margin: 0;
	font-size: 3.1vw;
	line-height: 5.1vw;
	letter-spacing: 0.03em;
	color: #D5D5D5;
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
	transform: translateX(0%);
}
