@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Pinyon+Script&display=swap');

:root {
	--fs10: clamp(0.5rem,   0.227rem + 1.06vw, 0.625rem);  /* 10px (※視認性のため最小8pxで固定) */
	--fs12: clamp(0.5rem,   0.182rem + 1.27vw, 0.75rem);   /* 12px (※視認性のため最小8pxで固定) */
	--fs14: clamp(0.75rem, 0.698rem + 0.22vw, 0.875rem);  /* 12px  〜 14px */
	--fs15: clamp(0.75rem, 0.672rem + 0.33vw, 0.938rem);
	--fs16: clamp(0.875rem, 0.823rem + 0.22vw, 1rem);      /* 14px  〜 16px */
	--fs17: clamp(0.938rem, 0.886rem + 0.22vw, 1.063rem);      /* 14px  〜 16px */
	--fs18: clamp(1rem, 0.948rem + 0.22vw, 1.125rem);  /* 16px  〜 18px */
	--fs20: clamp(1.125rem, 1.073rem + 0.22vw, 1.25rem);
	--fs21: clamp(1.125rem, 1.047rem + 0.33vw, 1.313rem); /* 18px  〜 21px */
	--fs24: clamp(0.6rem,   0.227rem + 1.59vw, 1.5rem);    /* 9.6px  〜 24px */
	--fs25: clamp(1.375rem, 1.297rem + 0.33vw, 1.563rem);
	--fs26: clamp(0.65rem,  0.246rem + 1.72vw, 1.625rem);  /* 10.4px 〜 26px */
	--fs28: clamp(0.7rem,   0.265rem + 1.86vw, 1.75rem);   /* 11.2px 〜 28px */
	--fs30: clamp(0.75rem,  0.284rem + 1.99vw, 1.875rem);  /* 12px   〜 30px */
	--fs32: clamp(0.8rem,   0.303rem + 2.12vw, 2rem);      /* 12.8px 〜 32px */
	--fs34: clamp(0.85rem,  0.322rem + 2.25vw, 2.125rem);  /* 13.6px 〜 34px */
	--fs35: clamp(1.875rem, 1.746rem + 0.55vw, 2.188rem);   /* 14.4px 〜 36px */
	--fs36: clamp(0.9rem,   0.341rem + 2.39vw, 2.25rem);   /* 14.4px 〜 36px */
	--fs38: clamp(0.95rem,  0.360rem + 2.52vw, 2.375rem);  /* 15.2px 〜 38px */
	--fs40: clamp(1rem,     0.379rem + 2.65vw, 2.5rem);    /* 16px   〜 40px */
	--fs44: clamp(1.1rem,   0.417rem + 2.92vw, 2.75rem);   /* 17.6px 〜 44px */
	--fs46: clamp(1.15rem,  0.436rem + 3.05vw, 2.875rem);  /* 18.4px 〜 46px */
	--fs48: clamp(1.2rem,   0.455rem + 3.18vw, 3rem);      /* 19.2px 〜 48px */
	--fs50: clamp(1.25rem,  0.473rem + 3.31vw, 3.125rem);  /* 20px   〜 50px */
	--fs60: clamp(1.5rem,   0.568rem + 3.98vw, 3.75rem);   /* 24px   〜 60px (基準) */
	--fs64: clamp(1.75rem, 0.818rem + 3.98vw, 4rem);
	--fs68: clamp(2rem, 1.068rem + 3.98vw, 4.25rem);
	--fs70: clamp(1.75rem,  0.663rem + 4.64vw, 4.375rem);  /* 28px   〜 70px */
	--fs80: clamp(2rem,     0.758rem + 5.30vw, 5rem);      /* 32px   〜 80px */
	--fs90: clamp(2.5rem, 1.464rem + 4.42vw, 5rem);        /* 40px   〜 90px */
	--fs100: clamp(5rem, 4.482rem + 2.21vw, 6.25rem);
	--fs120: clamp(6.25rem, 5.732rem + 2.21vw, 7.5rem);
	--fs150: clamp(7.5rem, 6.723rem + 3.31vw, 9.375rem);
	
	--max-width: 1160px;
	--max-content-width:1000px;

	--color-light-blue: #0acafa;
	--color-blue: #4f8cff;
	--color-brand-blue:#068deb;
	--color-brand-orange:#ffa800;
	
	--ystd-sidebar-width:280px;
}
/* 375px (スマホ) 〜 1280px (PC) の間で滑らかに可変 */

.fs10 {
	font-size: var(--fs10);
}
.fs12 {
	font-size: var(--fs12);
}
.fs14 {
	font-size: var(--fs14);
}
.fs16 {
	font-size: var(--fs16);
}
.fs18 {
	font-size: var(--fs18);
}
.fs21 {
	font-size: var(--fs21);
}
.fs24 {
	font-size: var(--fs24);
}
.fs26 {
	font-size: var(--fs26);
}
.fs28 {
	font-size: var(--fs28);
}
.fs30 {
	font-size: var(--fs30);
}
.fs32 {
	font-size: var(--fs32);
}
.fs34 {
	font-size: var(--fs34);
}
.fs36 {
	font-size: var(--fs36);
}
.fs38 {
	font-size: var(--fs38);
}
.fs40 {
	font-size: var(--fs40);
}
.fs44 {
	font-size: var(--fs44);
}
.fs50 {
	font-size: var(--fs50);
}
@media screen and (max-width: 460px) {
	.fs12 {
		font-size: var(--fs10);
	}
	.fs14 {
		font-size: var(--fs12);
	}
	.fs16 {
		font-size: var(--fs14);
	}
	.fs18 {
		font-size: var(--fs16);
	}
	.fs21 {
		font-size: var(--fs18);
	}
	.fs24 {
		font-size: var(--fs21);
	}
	.fs26 {
		font-size: var(--fs24);
	}
	.fs28 {
		font-size: var(--fs26);
	}
	.fs30 {
		font-size: var(--fs28);
	}
	.fs32 {
		font-size: var(--fs30);
	}
	.fs34 {
		font-size: var(--fs32);
	}
	.fs36 {
		font-size: var(--fs34);
	}
	.fs38 {
		font-size: var(--fs36);
	}
	.fs40 {
		font-size: var(--fs38);
	}
	.fs44 {
		font-size: var(--fs40);
	}
}

.pc-only, .sp-none, .ssp-none ,.desktop-none{
	display: block;
}
span.pc-only, span.sp-none, span.ssp-none ,span.desktop-none{
	display: inline-block;
}
.note-only, .desktop-only, .tab-only, .sp-only, .ssp-only, .pc-none,
span.note-only, span.desktop-only, span.tab-only, span.sp-only, span.ssp-only, span.pc-none {
	display: none;
}
@media screen and (min-width: 980px) {
	.desktop-only {
		display: block;
	}
	span.desktop-only {
		display: inline-block;
	}
	.desktop-none,span.desktop-none{
		display:none;
	}
}
@media screen and (min-width: 769px) and (max-width: 980px) {
	.note-only {
		display: block;
	}
	span.note-only {
		display: inline-block;
	}
	.note-none,span.note-none {
		display: none;
	}
}
@media screen and (max-width: 768px) {
	.pc-only, .note-only ,span.pc-only, span.note-only {
		display: none;
	}
	.tab-only, .pc-none {
		display: block;
	}
	span.tab-only, span.pc-none {
		display: inline-block;
	}
}
@media screen and (max-width: 460px) {
	.sp-only {
		display: block;
	}
	span.sp-only {
		display: inline-block;
	}
	.sp-none,span.sp-none {
		display: none;
	}
}
@media screen and (max-width: 320px) {
	.ssp-only {
		display: block;
	}
	span.ssp-only {
		display: inline-block;
	}
	.ssp-none,span.ssp-none {
		display: none;
	}
}

body {
	font-family: "Noto Sans JP", sans-serif;
	font-size:var(--fs18);
}

.en-text,[class*="-text-en"],[class*="-en-text"]{
	font-family: Georgia, "Times New Roman", Times, serif;
}

h2.wp-block-heading {
	font-size: var(--fs30);
}
h2.wp-block-heading.under-border-lg {
	border-bottom: 2px solid #6be6ed;
	padding-bottom: 2px;
	font-size: var(--fs25);
}
h3.wp-block-heading {
	font-size: var(--fs26);
}
@media only screen and (max-width:768px){
	h2.wp-block-heading {
		font-size: var(--fs40);
	}
	h3.wp-block-heading {
		font-size: var(--fs30);
	}
}

@media only screen and (max-width:500px){
	h2.wp-block-heading {
		font-size: var(--fs50);
	}
	h3.wp-block-heading {
		font-size: var(--fs40);
	}
}

/* ----- Header ----------------------------------------- */
header#masthead .container {
	max-width: 1800px;
}
.site-header{
	background:transparent;
	transition:all .5s;
}
.site-header .site-branding {
	padding: 0;
}
.site-header.scrolled {
	background: #ffffffe6 !important;
	z-index: 999;
}

@media only screen and (min-width:768px){
	.global-nav{
		background:transparent;
	}
}
@media only screen and (max-width:1200px){
	.site-title img{
		max-height:60px;
		width:auto!important;
	}
}
.global-nav__menu {
	align-items: center;
}
.global-nav__menu > .menu-item {
	margin-left: 0;
}
.global-nav__menu > .menu-item > a,.global-nav__menu > .menu-item > span {
	font-size: var(--fs18);
	font-weight: 600;
	color: #595959;
	white-space: nowrap;
	padding: 0 8px;
}
.global-nav__menu > .menu-item > a:hover ,.global-nav__menu > .menu-item > span:hover {
	color: var(--color-light-blue);
	cursor:pointer;
}
.global-nav__menu > .menu-item > a:after {
	content: none;
}
.global-nav__menu .sub-menu a:before {
	content: none;
}
.global-nav__menu .menu-item-has-children ul.sub-menu {
	box-shadow: 0 0 0 1px rgba(0, 0, 0, .1), 0 3px 12px rgba(0, 0, 0, .12);
	font-size: var(--fs18);
}
.global-nav__menu .sub-menu a {
	padding: 0 20px !important;
	line-height: 2.5 !important;
	color: #595959;
	font-weight: 600;
}
.global-nav__menu .sub-menu a:hover {
	background: var(--color-blue);
	color: #FFF;
}

.sns img {
	width: 52px;
	min-width: 52px;
	height: auto;
	flex-shrink: 0;
}
.sns1 {
	margin-left: 8px !important;
}
.sns2 {
	margin-left: 0 !important;
}
@media only screen and (min-width:1201px) {
	.global-nav__container ul li:first-child {
		display: none;
	}
	.global-nav__container ul.sub-menu li:first-child {
		display: block;
	}
	button.drawer-sub-toggle {
		display: none;
	}
	.hd-contact a, .hd-contact2 a {
		line-height: 1 !important;
		padding: 14px 18px !important;
		border-radius: 8px !important;
		color: #fff !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		transition: .3s;
		width: auto !important;
		box-sizing: border-box !important;
		white-space: nowrap;
	}
	.hd-contact2 a {
		background-color: #ff8c00;
		border: 2px solid #ff8c00;
	}
	.hd-contact a {
		background-color: #068deb;
		border: 2px solid #068deb;
	}
	.global-nav__menu > .hd-contact {
		margin-left: 10px;
	}

}
/* ==========================================
   スマホ・ドロワー表示時（1200px以下）
   ========================================== */
@media screen and (max-width: 1200px) {
	.global-nav__toggle {
		z-index: 100;
		padding: 10px;
	}
	.global-nav__toggle .ys-icon, .global-nav__toggle svg {
		width: 40px;
		height: 40px;
	}
	.global-nav__toggle:after,.global-nav__toggle.is-open:after{
		content:none;
	}
	/* --- 1. ドロワー外枠・背景色（余白をリセット） --- */
	.global-nav {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		height: 100vh !important;
		height: 100dvh !important;
		padding: 0 !important;
		/* テーマ由来の余白を強制消去 */
		margin: 0 !important;
		background-color: rgba(0, 0, 0, 0.83) !important;
		/* オーバーレイ背景色 */
		z-index: 99 !important;

		/* 初期状態は非表示（フェードアウト） */
		opacity: 0 !important;
		visibility: hidden !important;
		transition: opacity 0.35s ease, visibility 0.35s ease !important;
	}

	/* ドロワー開閉時の表示状態制御 */
	.global-nav__toggle.is-open ~ .global-nav,
	.global-nav__toggle.is-open + .global-nav,
	.global-nav.is-open,
	body.is-drawer-open .global-nav,
	body.drawer-open .global-nav {
		opacity: 1 !important;
		visibility: visible !important;
	}


	/* --- 2. メニュー本体（幅80% / 最大401px / 上下右ぴったり配置） --- */
	.global-nav__container {
		position: absolute !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 80% !important;
		max-width: 401px !important;
		height: 100% !important;
		padding: 60px 50px 30px 30px !important;
		/* コンテナ外枠の余白を消去 */
		margin: 0 0 0 auto !important;
		/* 左のみ自動（右寄せ）、上・下・右は0 */
		background-color: #ffffff !important;
		/* メニュー本体の背景色 */
		box-sizing: border-box !important;
		overflow-y: auto !important;

		/* 右からのスライドアニメーション */
		transform: translateX(100%) !important;
		transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
	}

	/* ドロワー開いた時にスライドイン */
	.global-nav__toggle.is-open ~ .global-nav .global-nav__container,
	.global-nav__toggle.is-open + .global-nav .global-nav__container,
	.global-nav.is-open .global-nav__container,
	body.is-drawer-open .global-nav__container,
	body.drawer-open .global-nav__container {
		transform: translateX(0) !important;
	}


	/* --- 3. メニューリスト（.global-nav__menu）内部の上下余白リセット --- */
	.global-nav__menu {
		margin: 0 !important;
		padding: 0 !important;
	}


	/* --- 4. 子メニュー（アコーディオン）レイアウト --- */

	.global-nav__menu .menu-item-has-children {
		position: relative !important;
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		padding: 0 !important;
	}

	.global-nav__menu .menu-item-has-children > a,
	.global-nav__menu .menu-item-has-children > .drawer-parent-toggle {
		display: block !important;
		flex: 1 !important;
		max-width: calc(100% - 48px) !important;
		padding: 14px 15px !important;
		cursor: pointer !important;
		text-decoration: none !important;
		box-sizing: border-box !important;
		color: inherit;
	}

	.drawer-sub-toggle {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		position: absolute !important;
		top: 0 !important;
		right: 0 !important;
		width: 48px !important;
		height: 48px !important;
		background: transparent !important;
		border: none !important;
		cursor: pointer !important;
		z-index: 10 !important;
		padding: 0 !important;
		box-sizing: border-box !important;
	}

	.drawer-sub-toggle::before,
	.drawer-sub-toggle::after {
		content: '' !important;
		position: absolute !important;
		background-color: currentColor !important;
		transition: transform 0.25s ease !important;
	}

	.drawer-sub-toggle::before {
		width: 12px !important;
		height: 2px !important;
		top: 23px !important;
		left: 18px !important;
	}

	.drawer-sub-toggle::after {
		width: 2px !important;
		height: 12px !important;
		top: 18px !important;
		left: 23px !important;
	}

	.drawer-sub-toggle.is-open::after {
		transform: rotate(90deg) !important;
	}

	.global-nav__menu .menu-item-has-children > .sub-menu {
		width: 100% !important;
		display: none !important;
		padding-left: 15px !important;
		box-sizing: border-box !important;
	}

	.global-nav__menu .menu-item-has-children ul.sub-menu {
		box-shadow: unset;
		margin-left: 0;
	}

	.global-nav__menu .menu-item-has-children > .sub-menu.is-open {
		display: block !important;
	}
	.global-nav__menu li:not(.menu-item-has-children) a {
		padding: 14px 15px;
	}
	.global-nav__menu li.sns{
		display:none;
	}
}

/* ----- Footer ----------------------------------------- */

.footer-contact {
	background: #068deb;
}
.footer-contact-inner {
	padding: 50px 30px;
	max-width: 810px;
	margin: auto;
}
p.footer-contact-title {
	margin-top:0;
	font-size: 30px;
	font-weight: bold;
	color: #FFF;
	text-align: center;
}
p.footer-contact-title span.en-title {
	display: block;
	font-family: "Georgia", 'Times New Roman', "Times", serif;
	font-size: var(--fs18);
	font-weight: normal;
}
.footer-contact-item {
	display: flex;
	gap: 3.2%;
	justify-content: center;
}
.footer-contact-item a{
	max-width:240px;
}
.ft-top {
	margin-top: 60px;
	border-top: 1px solid rgba(0, 0, 0, .05);
}


.footer-widget .container {
	max-width: 1500px;
}
.footer-main {
	padding-bottom: 0;
}
.footer-widget__column>*{
	margin-top:1em;
}
p.footer-midashi {
	margin-top: 0;
	padding-bottom: .5em;
	border-bottom: 1px solid;
}
.footer-widget__column .widget_nav_menu ul{
	margin:0;
}
.footer-widget__column .widget_nav_menu li {
	border: none;
}
.footer-widget__column .widget_nav_menu a{
	padding:.25em;
}
.footer-widget__column .widget_nav_menu a:before{
	content:none;
}
.site-info {
	background: var(--color-brand-blue);
	color: #FFF;
}

/**/
.content__main{
	background:transparent;
}
@media (min-width: 1025px) {
	.content__main {
		max-width: var(--max-content-width);
	}
}

/* --------------------------------------------- */
p.subtitle-en-text {
	color:var(--color-brand-blue);
	margin-top: 0;
	margin-bottom: 3em;
}
.wp-block-buttons {
	margin: 3em auto;
}
.link-btn-orange a.wp-block-button__link {
	background: var(--color-brand-orange);
	border-radius: 50px;
	padding: 8px 20px;
}
.link-btn-orange-contour a.wp-block-button__link{
	border-radius: 50px;
	padding: 8px 45px;
	background:transparent;
	color:var(--color-brand-orange);
	border:1px solid;
}
.wp-block-button.rounded-corners a.wp-block-button__link {
	border-radius: 6px;
}
.wp-block-button {
	min-width: 160px;
}
.wp-block-buttons.full-size-btn {
	width: 100%;
}
.wp-block-buttons.full-size-btn .wp-block-button{
	width:100%;
}
.wp-block-buttons.extend-two-btn {
	gap: 20px;
}
.wp-block-buttons.extend-two-btn .wp-block-button{
	width:calc(50% - (20px / 2 * 1));
}
@media only screen and (max-width:768px){
	.wp-block-buttons{
		justify-content:center;
	}
}

.slick-track {
	display: flex!important;
}
.slick-list {
	width: 100%;
}
.slick-slider .slick-slide {
	margin: 0 10px;
	height: auto !important;
}

dt,dd{
	margin:0;
}

div#sidebar-widget p.widget-title {
	color: #FFFFFF !important;
	background: #1e90ff;
	padding: 0.5em;
	font-size: var(--fs20);
	font-weight: bold;
}
div#sidebar-widget ul.wp-block-latest-posts__list li {
	border: none;
	display: flex;
	gap: 15px;
}
div#sidebar-widget ul.wp-block-latest-posts__list li .wp-block-latest-posts__featured-image{
	margin:0;
	width: 50px;
}
div#sidebar-widget ul.wp-block-latest-posts__list li a.wp-block-latest-posts__post-title {
	font-size: var(--fs16);
	line-height: 1.3;
	width: calc(100% - 65px);
}
div#sidebar-widget ul.wp-block-latest-posts__list li .latest-posts-categories{
	display:none;
}

/**/
@media only screen and (max-width:600px){
	.wp-block-columns.footer-contents-list {
		gap: 15px;
	}
}
@media only screen and (max-width:440px){
	.wp-block-columns.footer-contents-list.is-not-stacked-on-mobile {
		flex-wrap: wrap !important;
	}
}


