img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
img.wp-smiley,img.emoji{display:inline !important;border:none !important;box-shadow:none !important;height:1em !important;width:1em !important;margin:0 .07em !important;vertical-align:-.1em !important;background:0 0 !important;padding:0 !important}
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
@charset "utf-8";
/*
Author: LIQUID DESIGN Ltd.
Author URI: https://lqd.jp/wp/
*/
.liquid-speech-balloon-wrap {
    margin-bottom: 2rem;
    flex-direction: row;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
}
.liquid-speech-balloon-text {
    position: relative;
    z-index: 1;
    border-radius: 5px;
    padding: 20px 30px;
    width: 100%;
    margin-left: 20px;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
}
.liquid-speech-balloon-text p,
.liquid-speech-balloon-text .wp-block-liquid-speech-balloon {
    margin: 0;
    padding: 0;
}
.liquid-speech-balloon-text p a {
    color: inherit;
    text-decoration: underline;
}
.liquid-speech-balloon-arrow {
    position: absolute;
    z-index: 2;
    content: '.';
    line-height: 1;
    width: 0;
    height: 0;
    top: 25px;
    left: -11px;
    color: transparent;
}
.liquid-speech-balloon-wrap:not(.liquid-speech-balloon-vertical) .liquid-speech-balloon-arrow {
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 10px solid rgba(0, 0, 0, 0.2);
}

.liquid-speech-balloon-avatar {
    position: relative;
    width: 64px;
    height: 64px;
    line-height: 1;
    flex-shrink: 0;
    background-image: url();
    background-position: left top;
    background-repeat: no-repeat;
    -webkit-background-size: 100% auto;
    -moz-background-size: 100% auto;
    -ms-background-size: 100% auto;
    -o-background-size: 100% auto;
    background-size: 100% auto;
}
.liquid-speech-balloon-avatar::after {
    position: absolute;
    content: '';
    display: block;
    width: 110%;
    left: -5%;
    top: 69px;
    font-size: 12px;
    text-align: center;
    font-weight: bold;
    letter-spacing: -0.3px;
}

.liquid-speech-balloon-bubble .liquid-speech-balloon-arrow {
    display: none;
}
.liquid-speech-balloon-bubble .liquid-speech-balloon-text::before {
    content: '.';
    color: transparent;
    position: absolute;
    display: block;
    border-radius: 50%;
    border: inherit;
    background-color: inherit;
    left: -15px;
    width: 15px;
    height: 15px;
    top: 20px;
}
.liquid-speech-balloon-bubble .liquid-speech-balloon-text::after {
    content: '.';
    color: transparent;
    position: absolute;
    display: block;
    border-radius: 50%;
    border: inherit;
    background-color: inherit;
    left: -20px;
    top: 10px;
    width: 10px;
    height: 10px;
}

.liquid-speech-balloon-right {
    flex-direction: row-reverse;
}
.liquid-speech-balloon-right .liquid-speech-balloon-text {
    margin-left: 0;
    margin-right: 20px;
}
.liquid-speech-balloon-wrap.liquid-speech-balloon-right .liquid-speech-balloon-arrow {
    left: auto;
    right: -18px;
    border-right: 7px solid transparent;
    border-left: 10px solid rgba(0, 0, 0, 0.2);
}

.liquid-speech-balloon-right.liquid-speech-balloon-bubble .liquid-speech-balloon-text::before {
    left: auto;
    right: -15px;
}
.liquid-speech-balloon-right.liquid-speech-balloon-bubble .liquid-speech-balloon-text::after {
    left: auto;
    right: -20px;
}

.liquid-speech-balloon-square .liquid-speech-balloon-text {
    border-radius: 0;
    border: 2px solid rgba(0, 0, 0, 0.2);
}

.liquid-speech-balloon-dashed .liquid-speech-balloon-text {
    border: 2px dashed rgba(0, 0, 0, 0.2);
}

.liquid-speech-balloon-shadow .liquid-speech-balloon-text {
    border-radius: 0;
    box-shadow: 3px 3px 0 1px rgba(0, 0, 0, 0.1);
}

.liquid-speech-balloon-borderless .liquid-speech-balloon-text {
    border: 0 none;
    padding: 10px 5px;
}
.liquid-speech-balloon-borderless .liquid-speech-balloon-text .liquid-speech-balloon-arrow {
    display: none;
}

.liquid-speech-balloon-small .liquid-speech-balloon-text,
.liquid-speech-balloon-small .liquid-speech-balloon-text p {
    font-size: 13px;
    padding: 10px 15px;
}
.liquid-speech-balloon-small .liquid-speech-balloon-avatar {
    width: 32px;
    height: 32px;
}
.liquid-speech-balloon-small .liquid-speech-balloon-arrow {
    top: 7px;
}
.liquid-speech-balloon-small .liquid-speech-balloon-avatar::after {
    display: none;
}

.liquid-speech-balloon-large .liquid-speech-balloon-text,
.liquid-speech-balloon-large .liquid-speech-balloon-text p {
    font-size: 36px;
}

.liquid-speech-balloon-short .liquid-speech-balloon-text {
    width: auto;
}

.liquid-speech-balloon-vertical {
    flex-direction: column-reverse;
}
.liquid-speech-balloon-vertical .liquid-speech-balloon-text {
    margin: 0 0 1rem 0;
}
.liquid-speech-balloon-wrap.liquid-speech-balloon-vertical .liquid-speech-balloon-arrow {
    top: auto;
    bottom: -11px;
    left: 11px;
    border-top: 10px solid rgba(0, 0, 0, 0.2);
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
}
.liquid-speech-balloon-vertical .liquid-speech-balloon-text::before {
    left: 15px;
    top: auto;
    bottom: -15px;
}
.liquid-speech-balloon-vertical .liquid-speech-balloon-text::after {
    left: 20px;
    top: auto;
    bottom: -22px;
}
.liquid-speech-balloon-vertical.liquid-speech-balloon-right .liquid-speech-balloon-avatar {
    margin-left: auto;
    margin-right: 0;
}
.liquid-speech-balloon-vertical.liquid-speech-balloon-right .liquid-speech-balloon-arrow {
    left: auto;
    right: 11px;
}

.liquid-speech-balloon-vertical-reverse {
    flex-direction: column;
}
.liquid-speech-balloon-vertical-reverse .liquid-speech-balloon-text {
    margin: 2.5rem 0 0 0;
}
.liquid-speech-balloon-wrap.liquid-speech-balloon-vertical-reverse .liquid-speech-balloon-arrow {
    top: -18px;
    left: 11px;
    border-bottom: 10px solid rgba(0, 0, 0, 0.2);
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
}
.liquid-speech-balloon-vertical-reverse .liquid-speech-balloon-text::before {
    left: 15px;
    top: auto;
    bottom: -15px;
}
.liquid-speech-balloon-vertical-reverse .liquid-speech-balloon-text::after {
    left: 20px;
    top: auto;
    bottom: -22px;
}
.liquid-speech-balloon-vertical-reverse.liquid-speech-balloon-right .liquid-speech-balloon-avatar {
    margin-left: auto;
    margin-right: 0;
}
.liquid-speech-balloon-vertical-reverse.liquid-speech-balloon-right .liquid-speech-balloon-arrow {
    left: auto;
    right: 11px;
}
.liquid-speech-balloon-vertical-reverse.liquid-speech-balloon-bubble .liquid-speech-balloon-text::before {
    top: -15px;
    bottom: auto;
}
.liquid-speech-balloon-vertical-reverse.liquid-speech-balloon-bubble .liquid-speech-balloon-text::after {
    top: -22px;
    bottom: auto;
}
:root{--wp--preset--aspect-ratio--square:1;--wp--preset--aspect-ratio--4-3:4/3;--wp--preset--aspect-ratio--3-4:3/4;--wp--preset--aspect-ratio--3-2:3/2;--wp--preset--aspect-ratio--2-3:2/3;--wp--preset--aspect-ratio--16-9:16/9;--wp--preset--aspect-ratio--9-16:9/16;--wp--preset--color--black:#000;--wp--preset--color--cyan-bluish-gray:#abb8c3;--wp--preset--color--white:#fff;--wp--preset--color--pale-pink:#f78da7;--wp--preset--color--vivid-red:#cf2e2e;--wp--preset--color--luminous-vivid-orange:#ff6900;--wp--preset--color--luminous-vivid-amber:#fcb900;--wp--preset--color--light-green-cyan:#7bdcb5;--wp--preset--color--vivid-green-cyan:#00d084;--wp--preset--color--pale-cyan-blue:#8ed1fc;--wp--preset--color--vivid-cyan-blue:#0693e3;--wp--preset--color--vivid-purple:#9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,#0693e3 0%,#9b51e0 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan:linear-gradient(135deg,#7adcb4 0%,#00d082 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange:linear-gradient(135deg,#fcb900 0%,#ff6900 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,#ff6900 0%,#cf2e2e 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray:linear-gradient(135deg,#eee 0%,#a9b8c3 100%);--wp--preset--gradient--cool-to-warm-spectrum:linear-gradient(135deg,#4aeadc 0%,#9778d1 20%,#cf2aba 40%,#ee2c82 60%,#fb6962 80%,#fef84c 100%);--wp--preset--gradient--blush-light-purple:linear-gradient(135deg,#ffceec 0%,#9896f0 100%);--wp--preset--gradient--blush-bordeaux:linear-gradient(135deg,#fecda5 0%,#fe2d2d 50%,#6b003e 100%);--wp--preset--gradient--luminous-dusk:linear-gradient(135deg,#ffcb70 0%,#c751c0 50%,#4158d0 100%);--wp--preset--gradient--pale-ocean:linear-gradient(135deg,#fff5cb 0%,#b6e3d4 50%,#33a7b5 100%);--wp--preset--gradient--electric-grass:linear-gradient(135deg,#caf880 0%,#71ce7e 100%);--wp--preset--gradient--midnight:linear-gradient(135deg,#020381 0%,#2874fc 100%);--wp--preset--font-size--small:13px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:36px;--wp--preset--font-size--x-large:42px;--wp--preset--spacing--20:.44rem;--wp--preset--spacing--30:.67rem;--wp--preset--spacing--40:1rem;--wp--preset--spacing--50:1.5rem;--wp--preset--spacing--60:2.25rem;--wp--preset--spacing--70:3.38rem;--wp--preset--spacing--80:5.06rem;--wp--preset--shadow--natural:6px 6px 9px rgba(0,0,0,.2);--wp--preset--shadow--deep:12px 12px 50px rgba(0,0,0,.4);--wp--preset--shadow--sharp:6px 6px 0px rgba(0,0,0,.2);--wp--preset--shadow--outlined:6px 6px 0px -3px #fff,6px 6px #000;--wp--preset--shadow--crisp:6px 6px 0px #000}:where(.is-layout-flex){gap:.5em}:where(.is-layout-grid){gap:.5em}body .is-layout-flex{display:flex}.is-layout-flex{flex-wrap:wrap;align-items:center}.is-layout-flex>:is(*,div){margin:0}body .is-layout-grid{display:grid}.is-layout-grid>:is(*,div){margin:0}:where(.wp-block-columns.is-layout-flex){gap:2em}:where(.wp-block-columns.is-layout-grid){gap:2em}:where(.wp-block-post-template.is-layout-flex){gap:1.25em}:where(.wp-block-post-template.is-layout-grid){gap:1.25em}.has-black-color{color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-color{color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-color{color:var(--wp--preset--color--white) !important}.has-pale-pink-color{color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-color{color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-color{color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-color{color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-color{color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-color{color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-color{color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-color{color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-color{color:var(--wp--preset--color--vivid-purple) !important}.has-black-background-color{background-color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-background-color{background-color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-background-color{background-color:var(--wp--preset--color--white) !important}.has-pale-pink-background-color{background-color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-background-color{background-color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-background-color{background-color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-background-color{background-color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-background-color{background-color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-background-color{background-color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-background-color{background-color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-background-color{background-color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-background-color{background-color:var(--wp--preset--color--vivid-purple) !important}.has-black-border-color{border-color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-border-color{border-color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-border-color{border-color:var(--wp--preset--color--white) !important}.has-pale-pink-border-color{border-color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-border-color{border-color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-border-color{border-color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-border-color{border-color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-border-color{border-color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-border-color{border-color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-border-color{border-color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-border-color{border-color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-border-color{border-color:var(--wp--preset--color--vivid-purple) !important}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background:var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background:var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background:var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important}.has-cool-to-warm-spectrum-gradient-background{background:var(--wp--preset--gradient--cool-to-warm-spectrum) !important}.has-blush-light-purple-gradient-background{background:var(--wp--preset--gradient--blush-light-purple) !important}.has-blush-bordeaux-gradient-background{background:var(--wp--preset--gradient--blush-bordeaux) !important}.has-luminous-dusk-gradient-background{background:var(--wp--preset--gradient--luminous-dusk) !important}.has-pale-ocean-gradient-background{background:var(--wp--preset--gradient--pale-ocean) !important}.has-electric-grass-gradient-background{background:var(--wp--preset--gradient--electric-grass) !important}.has-midnight-gradient-background{background:var(--wp--preset--gradient--midnight) !important}.has-small-font-size{font-size:var(--wp--preset--font-size--small) !important}.has-medium-font-size{font-size:var(--wp--preset--font-size--medium) !important}.has-large-font-size{font-size:var(--wp--preset--font-size--large) !important}.has-x-large-font-size{font-size:var(--wp--preset--font-size--x-large) !important}
.wpcf7 .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	word-wrap: normal !important;
}

.wpcf7 form .wpcf7-response-output {
	margin: 2em 0.5em 1em;
	padding: 0.2em 1em;
	border: 2px solid #00a0d2; /* Blue */
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
	display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #46b450; /* Green */
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	border-color: #dc3232; /* Red */
}

.wpcf7 form.spam .wpcf7-response-output {
	border-color: #f56e28; /* Orange */
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #ffb900; /* Yellow */
}

.wpcf7-form-control-wrap {
	position: relative;
}

.wpcf7-not-valid-tip {
	color: #dc3232; /* Red */
	font-size: 1em;
	font-weight: normal;
	display: block;
}

.use-floating-validation-tip .wpcf7-not-valid-tip {
	position: relative;
	top: -2ex;
	left: 1em;
	z-index: 100;
	border: 1px solid #dc3232;
	background: #fff;
	padding: .2em .8em;
	width: 24em;
}

.wpcf7-list-item {
	display: inline-block;
	margin: 0 0 0 1em;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
	content: " ";
}

.wpcf7-spinner {
	visibility: hidden;
	display: inline-block;
	background-color: #23282d; /* Dark Gray 800 */
	opacity: 0.75;
	width: 24px;
	height: 24px;
	border: none;
	border-radius: 100%;
	padding: 0;
	margin: 0 24px;
	position: relative;
}

form.submitting .wpcf7-spinner {
	visibility: visible;
}

.wpcf7-spinner::before {
	content: '';
	position: absolute;
	background-color: #fbfbfc; /* Light Gray 100 */
	top: 4px;
	left: 4px;
	width: 6px;
	height: 6px;
	border: none;
	border-radius: 100%;
	transform-origin: 8px 8px;
	animation-name: spin;
	animation-duration: 1000ms;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
	.wpcf7-spinner::before {
		animation-name: blink;
		animation-duration: 2000ms;
	}
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@keyframes blink {
	from {
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

.wpcf7 [inert] {
	opacity: 0.5;
}

.wpcf7 input[type="file"] {
	cursor: pointer;
}

.wpcf7 input[type="file"]:disabled {
	cursor: default;
}

.wpcf7 .wpcf7-submit:disabled {
	cursor: not-allowed;
}

.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
	direction: ltr;
}

.wpcf7-reflection > output {
	display: list-item;
	list-style: none;
}

.wpcf7-reflection > output[hidden] {
	display: none;
}

body .extendedwopts-show {
  display: none;
}
body .widgetopts-hide_title .widget-title {
  display: none;
}
body .extendedwopts-md-right {
  text-align: right;
}
body .extendedwopts-md-left {
  text-align: left;
}
body .extendedwopts-md-center {
  text-align: center;
}
body .extendedwopts-md-justify {
  text-align: justify;
}
@media screen and (min-width: 1181px) {
  body .extendedwopts-hide.extendedwopts-desktop {
    display: none !important;
  }
  body .extendedwopts-show.extendedwopts-desktop {
    display: block;
  }
  body .widget.clearfix-desktop {
    clear: both;
  }
}
@media screen and (max-width: 1024px) and (orientation: Portrait) {
  body .extendedwopts-hide.extendedwopts-tablet {
    display: none !important;
  }
  body .extendedwopts-show.extendedwopts-tablet {
    display: block;
  }
  body .widget.clearfix-desktop {
    clear: none;
  }
  body .widget.clearfix-tablet {
    clear: both;
  }
}
@media screen and (max-width: 1180px) and (orientation: landscape) {
  body .extendedwopts-hide.extendedwopts-tablet {
    display: none !important;
  }
  body .extendedwopts-show.extendedwopts-tablet {
    display: block;
  }
  body .widget.clearfix-desktop {
    clear: none;
  }
  body .widget.clearfix-tablet {
    clear: both;
  }
}
@media screen and (max-width: 767px) and (orientation: Portrait) {
  body .extendedwopts-hide.extendedwopts-tablet:not(.extendedwopts-mobile) {
    display: block !important;
  }
  body .extendedwopts-show.extendedwopts-tablet:not(.extendedwopts-mobile) {
    display: none !important;
  }
  body .extendedwopts-hide.extendedwopts-mobile {
    display: none !important;
  }
  body .extendedwopts-show.extendedwopts-mobile {
    display: block;
  }
  body .widget.clearfix-desktop,
  body .widget.clearfix-tablet {
    clear: none;
  }
  body .widget.clearfix-mobile {
    clear: both;
  }
}
@media screen and (max-width: 991px) and (orientation: landscape) {
  body .extendedwopts-hide.extendedwopts-tablet:not(.extendedwopts-mobile) {
    display: block !important;
  }
  body .extendedwopts-show.extendedwopts-tablet:not(.extendedwopts-mobile) {
    display: none !important;
  }
  body .extendedwopts-hide.extendedwopts-mobile {
    display: none !important;
  }
  body .extendedwopts-show.extendedwopts-mobile {
    display: block;
  }
  body .widget.clearfix-desktop,
  body .widget.clearfix-tablet {
    clear: none;
  }
  body .widget.clearfix-mobile {
    clear: both;
  }
}
.panel-cell-style:after {
  content: "";
  display: block;
  clear: both;
  position: relative;
}


#ez-toc-container{background:#f9f9f9;border:1px solid #aaa;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05);display:table;margin-bottom:1em;padding:10px 20px 10px 10px;position:relative;width:auto}div.ez-toc-widget-container{padding:0;position:relative}#ez-toc-container.ez-toc-light-blue{background:#edf6ff}#ez-toc-container.ez-toc-white{background:#fff}#ez-toc-container.ez-toc-black{background:#000}#ez-toc-container.ez-toc-transparent{background:none}div.ez-toc-widget-container ul{display:block}div.ez-toc-widget-container li{border:none;padding:0}div.ez-toc-widget-container ul.ez-toc-list{padding:10px}#ez-toc-container ul ul,.ez-toc div.ez-toc-widget-container ul ul{margin-left:1.5em}#ez-toc-container li,#ez-toc-container ul{padding:0}#ez-toc-container li,#ez-toc-container ul,#ez-toc-container ul li,div.ez-toc-widget-container,div.ez-toc-widget-container li{background:0 0;list-style:none;line-height:1.6;margin:0;overflow:hidden;z-index:1}#ez-toc-container .ez-toc-title{text-align:left;line-height:1.45;margin:0;padding:0}.ez-toc-title-container{display:table;width:100%}.ez-toc-title,.ez-toc-title-toggle{display:inline;text-align:left;vertical-align:middle}.ez-toc-btn,.ez-toc-glyphicon{display:inline-block;font-weight:400}#ez-toc-container.ez-toc-black a,#ez-toc-container.ez-toc-black a:visited,#ez-toc-container.ez-toc-black p.ez-toc-title{color:#fff}#ez-toc-container div.ez-toc-title-container+ul.ez-toc-list{margin-top:1em}.ez-toc-wrap-left{margin:0 auto 1em 0!important}.ez-toc-wrap-left-text{float:left}.ez-toc-wrap-right{margin:0 0 1em auto!important}.ez-toc-wrap-right-text{float:right}#ez-toc-container a{color:#444;box-shadow:none;text-decoration:none;text-shadow:none;display:inline-flex;align-items:stretch;flex-wrap:nowrap}#ez-toc-container a:visited{color:#9f9f9f}#ez-toc-container a:hover{text-decoration:underline}#ez-toc-container a.ez-toc-toggle{display:flex;align-items:center}.ez-toc-widget-container ul.ez-toc-list li::before{content:' ';position:absolute;left:0;right:0;height:30px;line-height:30px;z-index:-1}.ez-toc-widget-container ul.ez-toc-list li.active{background-color:#ededed}.ez-toc-widget-container li.active>a{font-weight:900}.ez-toc-btn{padding:6px 12px;margin-bottom:0;font-size:14px;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.ez-toc-btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ez-toc-btn:focus,.ez-toc-btn:hover{color:#333;text-decoration:none}.ez-toc-btn.active,.ez-toc-btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.ez-toc-btn-default{color:#333;background-color:#fff;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e0e0e0));background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-moz-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#ccc}.ez-toc-btn-default.active,.ez-toc-btn-default:active,.ez-toc-btn-default:focus,.ez-toc-btn-default:hover{color:#333;background-color:#ebebeb;border-color:#adadad}.ez-toc-btn-default.active,.ez-toc-btn-default:active{background-image:none;background-color:#e0e0e0;border-color:#dbdbdb}.ez-toc-btn-sm,.ez-toc-btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.ez-toc-btn-xs{padding:1px 5px}.ez-toc-btn-default:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.active,.ez-toc-btn:active{background-image:none}.ez-toc-btn-default:focus,.ez-toc-btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.ez-toc-pull-right{float:right!important;margin-left:10px}#ez-toc-container label.cssicon,#ez-toc-widget-container label.cssicon{height:30px}.ez-toc-glyphicon{position:relative;top:1px;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;line-height:1;-moz-osx-font-smoothing:grayscale}.ez-toc-glyphicon:empty{width:1em}.ez-toc-toggle i.ez-toc-glyphicon,label.cssicon .ez-toc-glyphicon:empty{font-size:16px;margin-left:2px}#ez-toc-container input,.ez-toc-toggle #item{position:absolute;left:-999em}#ez-toc-container input[type=checkbox]:checked+nav,#ez-toc-widget-container input[type=checkbox]:checked+nav{opacity:0;max-height:0;border:none;display:none}#ez-toc-container .ez-toc-js-icon-con,#ez-toc-container label{position:relative;cursor:pointer;display:initial}#ez-toc-container .ez-toc-js-icon-con,#ez-toc-container .ez-toc-toggle label,.ez-toc-cssicon{float:right;position:relative;font-size:16px;padding:0;border:1px solid #999191;border-radius:5px;cursor:pointer;left:10px;width:35px}div#ez-toc-container .ez-toc-title{display:initial}.ez-toc-wrap-center{margin:0 auto 1em!important}#ez-toc-container a.ez-toc-toggle{color:#444;background:inherit;border:inherit}#ez-toc-container .eztoc-toggle-hide-by-default,.eztoc-hide,label.cssiconcheckbox{display:none}.ez-toc-widget-container ul li a{padding-left:10px;display:inline-flex;align-items:stretch;flex-wrap:nowrap}.ez-toc-widget-container ul.ez-toc-list li{height:auto!important}.ez-toc-icon-toggle-span{display:flex;align-items:center;width:35px;height:30px;justify-content:center;direction:ltr}.eztoc_no_heading_found{background-color:#ff0;padding-left:10px}.term-description .ez-toc-title-container p:nth-child(2){width:50px;float:right;margin:0}
div#ez-toc-container .ez-toc-title{font-size:120%}div#ez-toc-container .ez-toc-title{font-weight:500}div#ez-toc-container ul li{font-size:95%}div#ez-toc-container ul li{font-weight:500}div#ez-toc-container nav ul ul li{font-size:90%}.ez-toc-container-direction{direction:ltr}.ez-toc-counter ul{direction:ltr;counter-reset:item}.ez-toc-counter nav ul li a:before{content:counter(item,numeric) '. ';margin-right:.2em;counter-increment:item;flex-grow:0;flex-shrink:0;float:left}.ez-toc-widget-direction{direction:ltr}.ez-toc-widget-container ul{direction:ltr;counter-reset:item}.ez-toc-widget-container nav ul li a:before{content:counter(item,numeric) '. ';margin-right:.2em;counter-increment:item;flex-grow:0;flex-shrink:0;float:left}
@charset "UTF-8";
/* A Modern CSS Reset */
* {
  margin: 0;
  padding: 0;
}

*,
::before,
::after {
  border-style: solid;
  box-sizing: border-box;
  border-width: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  line-height: 1.5;
  text-rendering: optimizeSpeed;
}

ul,
ol {
  list-style: none;
}

a {
  color: inherit;
  background-color: transparent;
  text-decoration: none;
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

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

input,
button,
select,
textarea {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: none;
  border-radius: 0;
  background: transparent;
  font: inherit;
  outline: none;
}

textarea {
  resize: none;
}

input[type=checkbox],
input[type=radio] {
  display: none;
}

input[type=submit],
input[type=button],
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

body {
  color: #444444;
}

body {
  padding-top: env(safe-area-inset-top, 0px);
}

html, body {
  overflow-x: hidden;
}

.is-pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .is-pc {
    display: block;
  }
}

.is-sp {
  display: block;
}
@media screen and (min-width: 768px) {
  .is-sp {
    display: none;
  }
}

main {
  background: #fff;
}

html {
  scroll-padding-top: 100px; /* ← ヘッダー高さ分ずらす */
  scroll-behavior: smooth; /* ← スムーススクロール */
}
@media screen and (min-width: 768px) {
  html {
    scroll-padding-top: 180px;
  }
}

.not-read {
  margin: 0 auto;
}

html {
  font-size: 16px;
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}
@media screen and (min-width: 768px) {
  html {
    font-size: 1.28vw;
  }
}
@media (min-width: 1250px) {
  html {
    font-size: 16px;
  }
}

@media screen and (min-width: 768px) {
  a {
    transition: 0.3s;
  }
  a:hover {
    opacity: 0.8;
  }
}

.header {
  max-width: 22.1875rem;
  width: 100%;
  height: 3.75rem;
  position: fixed;
  top: 0.625rem;
  left: 0;
  right: 0;
  margin: 0 auto;
  background: #fff;
  border-radius: 5px;
  z-index: 1000;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}
@media screen and (min-width: 768px) {
  .header {
    max-width: initial;
    width: 97%;
    height: 5.3125rem;
    position: fixed;
    top: 1.25rem;
    background: #fff;
    border-radius: 5px;
    z-index: 999;
  }
}

.header-inner {
  width: 95%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  height: inherit;
}
@media screen and (min-width: 768px) {
  .header-inner {
    height: inherit;
    width: 98%;
    margin: 0 auto;
    display: flex;
    align-items: center;
  }
}

.header-logo {
  width: 10.625rem;
}
@media screen and (min-width: 768px) {
  .header-logo {
    width: 17.5rem;
    margin-right: 0.625rem;
  }
}
.header-logo img {
  width: 100%;
  height: auto;
}

.header-info {
  font-size: 0.75rem;
  text-align: center;
  font-weight: 500;
}

.header-nav {
  position: fixed;
  width: 100vw;
  height: 100vh;
  background: #fff;
  transform: translateX(-20px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.header-nav.open {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
@media screen and (min-width: 768px) {
  .header-nav {
    opacity: 1;
    padding: 0 0.625rem;
    position: static;
    inset: auto;
    width: initial;
    height: initial;
    background: transparent;
    pointer-events: auto;
  }
}
@media screen and (min-width: 1440px) {
  .header-nav {
    width: 40%;
  }
}

.header-nav-lists {
  display: flex;
  flex-direction: column;
  margin: 5rem auto 0;
  width: 90%;
}
@media screen and (min-width: 768px) {
  .header-nav-lists {
    flex-direction: row;
    margin: initial;
    justify-content: end;
    width: -moz-fit-content;
    width: fit-content;
  }
}
@media screen and (min-width: 1440px) {
  .header-nav-lists {
    width: 100%;
  }
}

.header-nav-list {
  font-size: 0.84375rem;
  font-weight: 500;
  width: 100%;
  height: 3.375rem;
  position: relative;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #EFEFEF;
}
.header-nav-list::after {
  content: "";
  width: 0.75rem;
  height: 0.75rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  transition: all 0.3s;
}
@media screen and (min-width: 768px) {
  .header-nav-list {
    font-size: 0.9375rem;
    font-weight: 500;
    height: initial;
    border: none;
  }
  .header-nav-list::after {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .header-nav-list:not(:first-child) {
    margin-left: 0.9375rem;
  }
}
@media screen and (min-width: 1440px) {
  .header-nav-list {
    justify-content: center;
  }
}

.header-nav-link {
  white-space: nowrap;
  width: 100%;
  color: #444444;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .header-nav-link {
    width: initial;
    text-align: initial;
  }
  .header-nav-link:hover {
    opacity: 1;
    color: #17499C;
  }
}

.header-nav-list.has-submenu {
  height: auto;
}
.header-nav-list.has-submenu::after {
  top: 1.6875rem;
}

.has-submenu {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}
.has-submenu__row {
  display: flex;
  align-items: center;
  min-height: 3.375rem;
}
.has-submenu.open::after {
  transform: translateY(-50%) rotate(90deg);
}
@media screen and (min-width: 768px) {
  .has-submenu {
    position: relative;
    flex-direction: row;
    align-items: center;
    justify-content: center;
  }
  .has-submenu:hover .header-submenu {
    opacity: 1;
    pointer-events: auto;
  }
}

.header-submenu {
  position: static;
  width: 100%;
  overflow: hidden;
  height: 0;
  opacity: 0;
  padding: 0;
  pointer-events: none;
  transition: height 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.22s ease;
}

.has-submenu.open .header-submenu {
  opacity: 1;
  pointer-events: auto;
  padding: 0.5rem 0 0.75rem;
}

@media screen and (min-width: 768px) {
  .header-submenu {
    position: absolute;
    top: 90%;
    left: 0;
    transform: translateX(0);
    width: 11rem;
    height: auto;
    background: #fff;
    padding: 0.625rem;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    max-height: none;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
  }
}
.header-nav-list.has-submenu {
  height: auto;
  align-items: stretch;
}

@media screen and (min-width: 768px) {
  .header-submenu-link:hover {
    color: #17499C;
    opacity: 1;
  }
}

.header-submenu-item:not(:last-child) {
  margin-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .header-submenu-item:not(:last-child) {
    margin-bottom: 0;
  }
}

.header-cta-lists {
  font-size: 1rem;
  font-weight: 500;
  color: #fff;
  display: flex;
  justify-content: space-around;
  align-items: center;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
  transform: translateX(-20px);
  background: #EFEFEF;
  height: 4.125rem;
}
.header-cta-lists.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}
@media screen and (min-width: 768px) {
  .header-cta-lists {
    font-size: 0.875rem;
    display: flex;
    gap: 0.625rem;
    position: static;
    background: transparent;
    justify-content: initial;
    pointer-events: auto;
    opacity: 1;
  }
}

.header-cta-link {
  background: #E82728;
  display: inline-flex;
  align-items: center;
  width: 10.875rem;
  height: 2.875rem;
  border-radius: 5px;
  box-shadow: 0 2px 0 0 rgb(203, 31, 32);
  padding-left: 0.625rem;
  transition: all 0.3s;
  font-size: 0.8125rem;
}
@media screen and (min-width: 768px) {
  .header-cta-link {
    width: 12.5rem;
    height: 2.875rem;
    padding-left: 0.4375rem;
    font-size: 0.875rem;
    justify-content: center;
  }
}
.header-cta-link::after {
  content: "";
  width: 0.8125rem;
  height: 0.8125rem;
  background: url() no-repeat center center/contain;
  margin-left: 0.625rem;
}
@media screen and (min-width: 768px) {
  .header-cta-link::after {
    width: 1.25rem;
    height: 1.25rem;
    margin-left: 0.3125rem;
  }
}
.header-cta-link:hover {
  transform: translateY(2px);
  box-shadow: none;
  opacity: 1;
}

.header-cta-link-line {
  background: #00B900;
  display: inline-flex;
  align-items: center;
  width: 10.875rem;
  height: 2.875rem;
  border-radius: 5px;
  box-shadow: 0 2px 0 0 rgb(0, 171, 0);
  transition: all 0.3s;
  font-size: 0.8125rem;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .header-cta-link-line {
    background: #00B900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 10rem;
    height: 2.875rem;
    border-radius: 5px;
    box-shadow: 0 2px 0 0 rgb(0, 171, 0);
    transition: all 0.3s;
    font-size: 0.875rem;
    padding-left: initial;
  }
}
.header-cta-link-line::before {
  content: "";
  width: 1.5rem;
  height: 1.375rem;
  background: url() no-repeat center center/contain;
  margin-right: 0.3125rem;
}
.header-cta-link-line::after {
  content: "";
  width: 0.8125rem;
  height: 0.8125rem;
  background: url() no-repeat center center/contain;
  margin-left: 0.625rem;
}
@media screen and (min-width: 768px) {
  .header-cta-link-line::after {
    display: none;
  }
}
.header-cta-link-line:hover {
  transform: translateY(2px);
  box-shadow: none;
  opacity: 1;
}

.drawer-hamburger {
  position: absolute;
  top: 60%;
  transform: translateY(-50%);
  right: 0;
}
@media screen and (min-width: 768px) {
  .drawer-hamburger {
    display: none;
  }
}

.hamburger-icon {
  width: 2.125rem;
  height: 2.375rem;
  position: relative;
}
.hamburger-icon span {
  display: inline-block;
  width: 2rem;
  height: 0.125rem;
  background: #444444;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  transition-property: top, transform, opacity;
  transition-duration: 0.25s, 0.25s, 0.2s;
  transition-timing-function: ease, ease, ease;
  transition-delay: 0.2s, 0s, 0s;
}
.hamburger-icon span:nth-child(1) {
  top: 0;
}
.hamburger-icon span:nth-child(2) {
  top: 0.4375rem;
}
.hamburger-icon span:nth-child(3) {
  top: 0.875rem;
}
.hamburger-icon p {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.4;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  color: #444444;
}
.hamburger-icon .menu-text {
  display: block;
}
.hamburger-icon .close-text {
  display: none;
}
.hamburger-icon.open span {
  transition-delay: 0s, 0.2s, 0s;
}
.hamburger-icon.open span:nth-child(1) {
  top: 0.4375rem;
  transform: translateX(-50%) rotate(20deg);
}
.hamburger-icon.open span:nth-child(2) {
  opacity: 0;
}
.hamburger-icon.open span:nth-child(3) {
  top: 0.4375rem;
  transform: translateX(-50%) rotate(-20deg);
}
.hamburger-icon.open .menu-text {
  display: none;
}
.hamburger-icon.open .close-text {
  display: block;
}

.footer {
  padding-top: 2.5rem;
}
@media screen and (min-width: 768px) {
  .footer {
    padding-top: 5rem;
  }
}

.footer-nav {
  width: 90%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
@media screen and (min-width: 768px) {
  .footer-nav {
    max-width: 43.75rem;
    width: 100%;
    flex-direction: column;
  }
}

.footer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.footer-nav-list:not(:last-child) {
  margin-bottom: 1.25rem;
}
@media screen and (min-width: 768px) {
  .footer-nav-list {
    flex-direction: row;
    justify-content: center;
    gap: 2.5rem;
  }
}

.footer-nav-item {
  font-size: 0.875rem;
  line-height: 1.42;
  font-weight: 500;
}

.footer-logo {
  max-width: 6.875rem;
  width: 100%;
  margin: 3.125rem auto 0;
}
.footer-logo img {
  width: 76.3%;
  margin: 0 auto;
  height: auto;
}
.footer-logo p {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
}

.copyright {
  text-align: center;
  padding: 1.25rem 0 0.625rem;
  font-size: 0.75rem;
}

.inner {
  width: 100%;
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
  margin-right: auto;
  margin-left: auto;
}
@media screen and (min-width: 768px) {
  .inner {
    max-width: 1250px;
    padding-right: 1.5625rem;
    padding-left: 1.5625rem;
  }
}

:root {
  --cta-h: 66px;
  --sab: calc(env(safe-area-inset-bottom, 0px) + var(--sab-extra, 0px));
}

.floating-cta-lists {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1100;
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: calc(var(--cta-h) + max(var(--sab), 0px));
  box-sizing: border-box;
  padding: 12px 0 0;
  background: #EFEFEF;
  font-size: 1rem;
  font-weight: 500;
  color: #fff;
  padding-bottom: max(env(safe-area-inset-bottom), 12px);
  will-change: transform; /* transformアニメを安定化 */
  backface-visibility: hidden; /* レイヤー分離のヒント */
  /* 保険：下方向に背景を延長（1〜2pxの線も隠す） */
  /* 初期は非表示状態（画面下に隠す＋透明） */
  transform: translateX(100%);
  opacity: 0;
  pointer-events: none; /* クリック無効化 */
  transition: transform 0.45s ease, opacity 0.45s ease;
  /* iPhoneのホームバー対策 */
  padding-bottom: env(safe-area-inset-bottom, 0);
  box-sizing: content-box; /* padding分を高さに含めない */
}
.floating-cta-lists::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -40px;
  height: 40px;
  background: #EFEFEF;
  pointer-events: none;
}
.floating-cta-lists.active {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}
@media screen and (min-width: 768px) {
  .floating-cta-lists {
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
  }
  .floating-cta-lists.active {
    display: none;
  }
}

/* コンテンツ被りを避けるため、CTAが出てる時だけ下余白を確保 */
body {
  /* 下は 0（常時は入れない） */
  padding-top: env(safe-area-inset-top, 0px);
}

body.has-floating-cta {
  /* --sab-extra を足さない（コンテンツリフローを起こしにくくする） */
  padding-bottom: calc(var(--cta-h) + max(env(safe-area-inset-bottom), 0px));
}
@media screen and (min-width: 768px) {
  body.has-floating-cta {
    padding-bottom: 0;
  }
}

/* Lancersアプリでさらにズレる場合の微調整 */
.ua-lancers .floating-cta-lists {
  bottom: -2px;
}

/* フローティングCTAの高さとパディングを強制的に修正 */
.floating-cta-lists {
    /* JSによる高さ計算（calc）を無効化し、中身に合わせて自動調整させる */
    height: auto !important;

    /* 余計なJS計算値（--sab-extra等）を除外し、
       スマホ本来のセーフエリア（下の黒いバーの領域）さらに 10px の余白をプラスする */
    padding-bottom: calc(env(safe-area-inset-bottom) + 0.625rem) !important;
    
    /* セーフエリアがない端末（古いスマホ等）のために最低限の余白を確保したい場合
       （上記で足りない場合はこちらを使ってください）
    padding-bottom: max(12px, env(safe-area-inset-bottom)) !important;
    */
    
    /* 位置は画面最下部に固定 */
    bottom: 0 !important;
}

/* もしactiveクラスがついた時だけ変な挙動をする場合はこれも追加 */
.floating-cta-lists.active {
    transform: translateY(0) !important;
}

/* 背景の“色差”で線が見えるのを防ぐ */
html, body {
  background: #EFEFEF;
}

.floating-cta-link {
  background: #E82728;
  display: inline-flex;
  align-items: center;
  width: 10.875rem;
  height: 2.875rem;
  border-radius: 5px;
  box-shadow: 0 2px 0 0 rgb(203, 31, 32);
  padding-left: 0.625rem;
  transition: all 0.3s;
  font-size: 0.8125rem;
}
@media screen and (min-width: 768px) {
  .floating-cta-link {
    width: 12.5rem;
    height: 2.875rem;
    padding-left: 0.4375rem;
    font-size: 1rem;
  }
}
.floating-cta-link::after {
  content: "";
  width: 0.8125rem;
  height: 0.8125rem;
  background: url() no-repeat center center/contain;
  margin-left: 0.625rem;
}
@media screen and (min-width: 768px) {
  .floating-cta-link::after {
    width: 1.25rem;
    height: 1.25rem;
    margin-left: 0.3125rem;
  }
}
.floating-cta-link:hover {
  transform: translateY(2px);
  box-shadow: none;
  opacity: 1;
}

.floating-cta-link-line {
  background: #00B900;
  display: inline-flex;
  align-items: center;
  width: 10.875rem;
  height: 2.875rem;
  border-radius: 5px;
  box-shadow: 0 2px 0 0 rgb(0, 171, 0);
  transition: all 0.3s;
  font-size: 0.8125rem;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .floating-cta-link-line {
    background: #00B900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 12.5rem;
    height: 2.875rem;
    border-radius: 5px;
    box-shadow: 0 2px 0 0 rgb(0, 171, 0);
    transition: all 0.3s;
    font-size: 1rem;
    padding-left: initial;
  }
}
.floating-cta-link-line::before {
  content: "";
  width: 1.5rem;
  height: 1.375rem;
  background: url() no-repeat center center/contain;
  margin-right: 0.3125rem;
}
.floating-cta-link-line::after {
  content: "";
  width: 0.8125rem;
  height: 0.8125rem;
  background: url() no-repeat center center/contain;
  margin-left: 0.625rem;
}
@media screen and (min-width: 768px) {
  .floating-cta-link-line::after {
    display: none;
  }
}
.floating-cta-link-line:hover {
  transform: translateY(2px);
  box-shadow: none;
  opacity: 1;
}

.top-bg {
  width: 100%;
}
.top-bg img {
  width: 100%;
  height: auto;
}

#page-support-about {
  padding-top: 2.5rem;
}
@media screen and (min-width: 768px) {
  #page-support-about {
    padding-top: 7.5rem;
  }
}

.page-support-about-heading {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}

.page-support-about-title {
  color: #E82728;
  font-size: 1.5rem;
  line-height: 1.75;
  letter-spacing: 0.1em;
  border-bottom: 1px solid #E82728;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .page-support-about-title {
    font-size: 2rem;
    line-height: 1.5;
  }
}

.page-support-about-title-study {
  letter-spacing: initial;
}
@media screen and (min-width: 768px) {
  .page-support-about-title-study {
    letter-spacing: 0.1em;
  }
}

.page-support-about-sub-title {
  font-size: 1.375rem;
  line-height: 1.75;
  font-weight: 700;
  color: #17499C;
  margin-top: 2.65625rem;
  position: relative;
  text-align: right;
}
.page-support-about-sub-title::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0rem;
  width: 2.5625rem;
  height: 2.75rem;
  background: url() no-repeat center center/contain;
}
@media screen and (min-width: 768px) {
  .page-support-about-sub-title {
    margin-top: 3.03125rem;
    text-align: center;
  }
  .page-support-about-sub-title::before {
    left: 1.875rem;
  }
}

.page-support-about-sub-title-study {
  margin-right: 0.9375rem;
}
.page-support-about-sub-title-study::before {
  left: 0.625rem;
}
@media screen and (min-width: 768px) {
  .page-support-about-sub-title-study {
    margin-right: 0;
  }
  .page-support-about-sub-title-study:before {
    left: 4.375rem;
  }
}

.page-support-about-text {
  width: 90%;
  margin: 1.25rem auto 0;
  font-size: 1rem;
  line-height: 1.75;
}
@media screen and (min-width: 768px) {
  .page-support-about-text {
    max-width: 68.75rem;
    width: 100%;
  }
}

@media screen and (min-width: 768px) {
  .study-abroad-about {
    max-width: 70rem;
    width: 100%;
  }
}

#page-support {
  padding: 3.875rem 0 0rem;
}
@media screen and (min-width: 768px) {
  #page-support {
    padding: 11.25rem 0 7.5rem;
  }
}

.page-support-heading {
  text-align: center;
}
.page-support-heading span {
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #646C74;
  letter-spacing: 0.03em;
}

.page-support-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .page-support-title {
    font-size: 2rem;
    line-height: 1.5;
  }
}

.page-support-container {
  width: 90%;
  margin: 0.8125rem auto 0;
}
@media screen and (min-width: 768px) {
  .page-support-container {
    max-width: 62.5rem;
    width: 100%;
    margin: 2.5rem auto 0;
  }
}

.page-support-top-title {
  font-size: 1.25rem;
  border-bottom: 1px solid #E82728;
  margin-bottom: 1.25rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .page-support-top-title {
    margin-bottom: 2.375rem;
  }
}
.page-support-top-title:nth-of-type(2) {
  margin-top: 2.5rem;
}
@media screen and (min-width: 768px) {
  .page-support-top-title:nth-of-type(2) {
    margin-top: 2.875rem;
  }
}

.page-support-item {
  margin-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .page-support-item {
    margin-bottom: 1.25rem;
  }
}

.page-support-item-heading {
  display: flex;
  padding: 0.75rem 1.09375rem 0.75rem 0.625rem;
  border-left: 3px solid #E82728;
  background: #F2F2F2;
  position: relative;
}
.page-support-item-heading::after {
  content: "";
  height: 1.125rem;
  width: 1.125rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  right: 0.25rem;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s;
}
.page-support-item-heading.open::after {
  transform: translateY(-50%) rotate(180deg);
}
@media screen and (min-width: 768px) {
  .page-support-item-heading {
    align-items: center;
    cursor: pointer;
  }
  .page-support-item-heading::after {
    right: 0.625rem;
  }
}

.page-support-item-body {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .page-support-item-body {
    flex-direction: row;
    align-items: center;
  }
}

.page-support-item-body-app .icon img {
    width: 100%;       /* 横幅は親要素に合わせる */
    height: auto;      /* 高さは自動調整（これで比率が守られます） */
    object-fit: contain; /* 念のため、比率を維持して枠内に収める指定 */
}

.page-support-item-title {
  color: #E82728;
  font-size: 1.25rem;
  font-weight: bold;
}

.num {
  color: #E82728;
  font-size: 1.25rem;
  font-weight: bold;
  margin-right: 0.625rem;
}

.icon {
  display: inline-block;
  width: 2rem;
  height: 1.875rem;
}

.page-support-item-desc {
  color: #444444;
  font-size: 0.8125rem;
}
@media screen and (min-width: 768px) {
  .page-support-item-desc {
    font-size: 0.9375rem;
    margin-left: 1.25rem;
    font-weight: 500;
  }
}

.page-support-item-desc_break {
  display: block;
  width: 100%;
  margin-left: 2.125rem;
  margin-top: 0.625rem;
}

.option-item-heading {
  border-left: initial;
  padding: 0.75rem 1.09375rem 0.75rem 0.625rem;
}
.option-item-heading::after {
  display: none;
}

.star {
  color: #E82728;
  font-size: 1.25rem;
}

.page-support-item-contents {
  padding: 1.25rem 0.9375rem;
}

.page-support-li {
  width: min(100%, 19.0625rem);
  padding-left: 2.125rem;
  margin-bottom: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .page-support-li {
    width: 100%;
  }
}

.page-support-item-list {
  font-size: 1.125rem;
  font-weight: 500;
  position: relative;
}
.page-support-item-list::before {
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  left: -1.875rem;
  top: 0.125rem;
}

.page-support-item-text {
  font-size: 0.9375rem;
  line-height: 1.6;
}
.page-support-item-text span {
  font-size: 0.8125rem;
}

.page-support-item-link {
  display: inline-block;
  position: relative;
  padding-right: 1.125rem;
  padding-left: 0.3125rem;
}
.page-support-item-link::after {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.page-support-item-link::before {
  content: "";
  width: 100%;
  height: 0.0625rem;
  background: #444444;
  position: absolute;
  bottom: -0.0625rem;
  left: 0;
}

.page-support-item-app {
  align-items: start;
}

.page-support-item-app-content {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media screen and (min-width: 768px) {
  .page-support-item-app-content {
    flex-direction: row;
  }
}

.page-support-item-app-image {
  display: inline-block;
  max-width: 12.0625rem;
  width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .page-support-item-app-image {
    max-width: 10.375rem;
    width: 100%;
  }
}

.page-support-app-name {
  display: flex;
  align-items: center; /* アイコンと文字の上下中央揃え */
  gap: 16px;           /* アイコンとタイトルの間隔を16px空ける */
}

.page-support-item-body-app {
  flex-direction: column;
  align-items: start;
}

.page-support-item-desc-app {
  margin-left: 0;
  margin-top: 0.625rem;
}

#page-support-review {
  padding: 3.75rem 0;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.03) 1px, transparent 0), linear-gradient(to bottom, rgba(0, 0, 0, 0.03) 1px, transparent 0);
  background-size: 25px 25px;
}
@media screen and (min-width: 768px) {
  #page-support-review {
    padding: 5rem 0;
  }
}

.page-support-review-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  text-align: center;
  color: #E82728;
}

.page-support-review-text {
  font-size: 1rem;
  line-height: 1.75;
  width: min(90%, 20.9375rem);
  margin: 1.25rem auto 0;
}
@media screen and (min-width: 768px) {
  .page-support-review-text {
    width: initial;
    margin: 2.5rem auto 0;
    text-align: center;
  }
}

.page-support-cta {
  margin-top: 1.25rem;
  text-align: center;
}
.page-support-cta a {
  color: #fff;
  display: inline-flex;
  font-size: 1rem;
  line-height: 1.7;
  background: #E82728;
  border-radius: 100px;
  width: 21rem;
  height: 3.25rem;
  align-items: center;
  justify-content: center;
  position: relative;
  box-shadow: 0 2px 0 #CB1F20;
  transition: all 0.3s;
}
.page-support-cta a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.03375rem;
}
.page-support-cta a:hover {
  transform: translateY(2px);
  box-shadow: none;
  opacity: 1;
}
@media screen and (min-width: 768px) {
  .page-support-cta a {
    margin-top: 2.5rem;
  }
}

.page-support-cta2 {
  margin-top: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .page-support-cta2 {
    margin-top: 2.5rem;
  }
}

#page-support-faq {
  padding: 3.75rem 0 5rem;
}
@media screen and (min-width: 768px) {
  #page-support-faq {
    padding: 5rem 0 4.625rem;
  }
}

.page-support-faq-heading {
  text-align: center;
}
.page-support-faq-heading span {
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #646C74;
  letter-spacing: 0.03em;
}

.page-support-faq-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .page-support-faq-title {
    font-size: 2rem;
  }
}

.page-support-faq-text-top {
  font-size: 1rem;
  line-height: 1.75;
  width: min(90%, 21rem);
  margin: 1.25rem auto 0;
}
@media screen and (min-width: 768px) {
  .page-support-faq-text-top {
    text-align: center;
    width: initial;
    margin: 2.5rem auto 0;
  }
}

.page-support-faq-case {
  width: 90%;
  margin: 0.9375rem auto 0;
  background: rgba(232, 39, 40, 0.05);
  padding: 0.9375rem;
  border-radius: 5px;
  font-size: 1rem;
  line-height: 1.75;
}
.page-support-faq-case ul {
  margin-top: 0.25rem;
}
@media screen and (min-width: 768px) {
  .page-support-faq-case {
    max-width: 31rem;
    width: 100%;
    margin: 1.875rem auto 0;
  }
}

.page-support-faq-case-title {
  font-size: 1rem;
  font-weight: 500;
}

.page-support-faq-list {
  font-size: 0.9375rem;
  font-weight: 500;
  position: relative;
  padding-left: 1.25rem;
}
.page-support-faq-list::before {
  content: "・";
  position: absolute;
  left: 0.1875rem;
}

.page-support-faq-text-bottom {
  font-size: 1rem;
  width: min(90%, 21rem);
  line-height: 1.75;
  margin: 0.9375rem auto 0;
}
@media screen and (min-width: 768px) {
  .page-support-faq-text-bottom {
    margin: 1.875rem auto 0;
    text-align: center;
    width: initial;
  }
}

.pagination {
  width: 100%;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.625rem;
  margin-top: 1.25rem;
}

.page-numbers {
  font-size: 1.125rem;
  font-weight: 500;
  width: 2.6875rem;
  height: 2.8125rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
.page-numbers.current {
  background: #E82728;
  color: #fff;
}
.page-numbers.next {
  width: 4.25rem;
}
.page-numbers.prev {
  width: 4.25rem;
}

.mv {
  position: relative;
}
.mv-text-wrap {
  text-align: center;
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}

.mv-text {
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.08em;
  color: #17499c;
  position: relative;
}
.mv-text::before {
  content: "";
  max-width: 14.3125rem;
  width: 100%;
  height: 1px;
  background: #17499c;
  position: absolute;
  top: -5%;
  left: 50%;
  transform: translateX(-50%);
}
.mv-text::after {
  content: "";
  max-width: 14.3125rem;
  width: 100%;
  height: 1px;
  background: #17499c;
  position: absolute;
  bottom: -5%;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .mv-text {
    font-size: 2rem;
  }
  .mv-text::before {
    max-width: 26.125rem;
    top: 0%;
  }
  .mv-text::after {
    max-width: 26.125rem;
  }
}

.mv-sub-title {
  font-size: 1.75rem;
  font-weight: bold;
  text-shadow: 0 0 6px #fff;
  line-height: 1;
  margin-top: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .mv-sub-title {
    font-size: 3.125rem;
    text-shadow: 0 0 10px #fff;
    margin-top: 1.3125rem;
  }
}

.mv-title {
  font-size: 2.25rem;
  font-weight: 900;
  color: #E82728;
  text-shadow: 0 0 4px #fff;
  line-height: 1;
  margin-top: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .mv-title {
    font-size: 5.625rem;
    text-shadow: 0 0 10px #fff;
    margin-top: 1.875rem;
  }
}

.mv-badge-wrap {
  display: flex;
  gap: 1.875rem;
  position: absolute;
  bottom: -4.0625rem;
  left: 50%;
  transform: translateX(-50%);
  max-width: 17.6875rem;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .mv-badge-wrap {
    gap: 3.25rem;
    max-width: initial;
    width: initial;
    bottom: -6.25rem;
  }
}

.mv-badge-image {
  max-width: 7.875rem;
  width: 100%;
}
.mv-badge-image img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .mv-badge-image {
    max-width: 13.9375rem;
  }
}

.swiper1 {
  width: 90%;
  margin: 5rem auto 0;
}
@media screen and (min-width: 768px) {
  .swiper1 {
    max-width: 69.375rem;
    width: 100%;
    margin: 10.125rem auto 0;
    overflow: hidden;
  }
}

.banner-slide {
  height: auto;
}
@media screen and (min-width: 768px) {
  .banner-slide {
    width: 100%;
  }
}

.bannar-container {
  position: relative;
}

/* --- スライダー共通：ドットの見た目は変えず、判定だけ広げる --- */
.swiper-pagination-bullet {
  width: 8px !important;
  height: 8px !important;
  margin: 0 12px !important; /* ドット同士の横の間隔を広げて誤操作防止 */
  position: relative;       /* 疑似要素の基準点にする */
  background: #ccc !important;
  opacity: 0.5;
  display: inline-block;
  vertical-align: middle;
}

/* 疑似要素で「見えない44pxのボタン」を背後に作成 */
.swiper-pagination-bullet::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;  /* 指で押しやすいサイズ */
  height: 44px; /* 指で押しやすいサイズ */
  background: transparent; /* 完全に透明にする */
}

.swiper1-pagination {
/* 画像と被らないようにする */
  bottom: -20px !important;
}

.swiper1-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: #999999 !important;
  opacity: 1; /* アクティブなドットは不透明に */
}

#support {
  padding: 1.25rem 0 2.1875rem;
}
@media screen and (min-width: 768px) {
  #support {
    padding: 6.25rem 0;
  }
}

.section-heading {
  text-align: center;
}

.support-sub-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #17499c;
  position: relative;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
.support-sub-title:after {
  content: "";
  width: 12.25rem;
  height: 1px;
  background: #17499c;
  position: absolute;
  bottom: 1px;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .support-sub-title {
    font-size: 1.875rem;
  }
  .support-sub-title::after {
    width: 18.375rem;
  }
}

.support-title {
  font-size: 1.875rem;
  font-weight: 700;
  color: #E82728;
  letter-spacing: 0.1em;
}
.support-title span {
  font-size: 1.375rem;
}
@media screen and (min-width: 768px) {
  .support-title {
    font-size: 2.5rem;
  }
  .support-title span {
    font-size: 2rem;
  }
}

.support-container {
  max-width: 58.75rem;
  width: 90%;
  margin: 2.5rem auto 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.875rem;
}
@media screen and (min-width: 768px) {
  .support-container {
    flex-direction: row;
    width: 100%;
    gap: initial;
  }
}

.support-item {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .support-item {
    width: 45.7%;
  }
}

.support-item-image {
  width: 100%;
}
.support-item-image img {
  width: 100%;
  height: auto;
}

.support-item-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #E82728;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 0.9375rem;
  line-height: 1.7;
}
@media screen and (min-width: 768px) {
  .support-item-title {
    font-size: 1.75rem;
  }
}

.support-item-text {
  line-height: 1.7;
  margin-top: 0.625rem;
  font-size: 0.875rem;
}
@media screen and (min-width: 768px) {
  .support-item-text {
    font-size: 1rem;
  }
}

.support-item-strengths-list {
  border: 2px solid #f5a8a9;
  border-radius: 5px;
  padding: 0.875rem;
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .support-item-strengths-list {
    padding: 1.25rem;
  }
}

.support-item-strengths {
  position: relative;
  letter-spacing: 0.03em;
  font-weight: 500;
  padding-left: 1.4375rem;
  font-size: 0.875rem;
}
.support-item-strengths::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 1.125rem;
  height: 1.125rem;
  background: url() no-repeat center center/contain;
}
.support-item-strengths:not(:last-child) {
  margin-bottom: 1rem;
}
.support-item-strengths:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 100%;
  height: 1px;
  background-image: repeating-linear-gradient(to right, #cccccc 0 2px, transparent 2px 4px);
}
@media screen and (min-width: 768px) {
  .support-item-strengths {
    font-size: 1rem;
  }
  .support-item-strengths:not(:last-child) {
    margin-bottom: 1.875rem;
  }
  .support-item-strengths:not(:last-child)::after {
    bottom: -15px;
  }
}

.support-item-link {
  margin-top: 1.875rem;
  display: flex;
  justify-content: center;
}
.support-item-link a {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 20.9375rem;
  height: 3.25rem;
  background: #E62627;
  color: #fff;
  border-radius: 100px;
  box-shadow: 0 2px 0 #CB1F20;
  padding-left: 2.5rem;
  transition: all 0.3s;
}
.support-item-link a:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}
.support-item-link a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.0625rem;
}
@media screen and (min-width: 768px) {
  .support-item-link {
    margin-top: 2.5rem;
  }
}

#reason {
  background: rgba(232, 39, 40, 0.05);
  padding: 3.75rem 0;
}
@media screen and (min-width: 768px) {
  #reason {
    padding: 7.5rem 0;
  }
}

.reason-heading {
  text-align: center;
}
.reason-heading span {
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #646C74;
  letter-spacing: 0.03em;
}

.reason-title {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .reason-title {
    font-size: 2rem;
  }
}

.reason-sub-title {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .reason-sub-title {
    font-size: 2rem;
  }
}

.reason-container {
  width: 90%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin: 3.9375rem auto 0;
  gap: 2.6875rem;
}
@media screen and (min-width: 768px) {
  .reason-container {
    flex-direction: row;
    max-width: 73.375rem;
    padding: 0 1.25rem;
    width: 100%;
    margin: 5.1875rem auto 0;
    gap: initial;
  }
}

.reason-item {
  width: 100%;
  padding: 1.875rem 0.9375rem 1.25rem;
  background: #fff;
  border-radius: 10px;
  position: relative;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.1);
}
@media screen and (min-width: 768px) {
  .reason-item {
    width: 32.2%;
    padding: 2.5rem 1.875rem;
  }
}

.reason-num {
  font-family: "Poppins", sans-serif;
  font-size: 3.125rem;
  font-weight: 600;
  color: #E82728;
  line-height: 1.7;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -7.5%;
}
@media screen and (min-width: 768px) {
  .reason-num {
    top: -7%;
  }
}

.reason-item-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: center;
  color: #17499C;
}

.reason-item-image1 {
  max-width: 13.75rem;
  width: 100%;
  margin: 1.25rem auto 0;
}
.reason-item-image1 img {
  width: 100%;
  height: auto;
}

.reason-item-image2 {
  max-width: 19.375rem;
  width: 100%;
  margin: 1.25rem auto 0;
}
.reason-item-image2 img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

.reason-item-image3 {
  max-width: 10.8125rem;
  width: 100%;
  margin: 1.25rem auto 0;
}
.reason-item-image3 img {
  height: auto;
}

.reason-item-merit {
  max-width: 18.5625rem;
  width: 100%;
  display: flex;
  justify-content: space-between;
  margin: 2.0625rem auto 0;
}

.reason-item-merit-content {
  width: 48.8%;
  position: relative;
  background: rgba(23, 73, 156, 0.1);
  border-radius: 5px;
  font-size: 0.9375rem;
  text-align: center;
  padding: 0.625rem 0;
  font-weight: 500;
  line-height: 1.4;
}
.reason-item-merit-content span {
  color: #E82728;
}
.reason-item-merit-content::before {
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -0.8125rem;
}

.reason-item-text {
  margin-top: 1.25rem;
  line-height: 1.7;
}

#supporter {
  padding: 4.3125rem 0 3.0625rem;
}
@media screen and (min-width: 768px) {
  #supporter {
    padding: 7.5rem 0 6.25rem;
  }
}

.supporter-heading {
  text-align: center;
}
.supporter-heading span {
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #646C74;
  letter-spacing: 0.03em;
}

.supporter-title {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
.supporter-title span {
  color: #444444;
  font-size: 1.75rem;
}
@media screen and (min-width: 768px) {
  .supporter-title {
    font-size: 2rem;
  }
  .supporter-title span {
    font-size: 2rem;
  }
}

.supporter-container {
  width: 90%;
  margin: 1.25rem auto 0;
  display: flex;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .supporter-container {
    max-width: 55rem;
    width: 100%;
    margin: 2.5rem auto 0;
  }
}

.supporter-item {
  width: 100%;
  margin-bottom: 0.9375rem;
  padding: 1.25rem;
  border: 1px solid #E82728;
  border-radius: 5px;
}
@media screen and (min-width: 768px) {
  .supporter-item {
    width: calc(50% - 20px);
    margin-right: 40px;
    margin-bottom: 1.25rem;
  }
  .supporter-item:nth-child(2n) {
    margin-right: 0;
  }
}

.supporter-image {
  width: 100%;
}
.supporter-image img {
  width: 100%;
  height: auto;
}

.supporter-cat {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 1.25rem;
}

.supporter-tag {
  font-size: 0.875rem;
  line-height: 1.4;
  background: #E9ECEF;
  border: 1px solid rgba(68, 68, 68, 0.3);
  border-radius: 100px;
  padding: 0 0.375rem;
}

.tag-red {
  background: rgba(232, 39, 40, 0.1);
  border: 1px solid rgba(232, 39, 40, 0.3);
}

.supporter-name {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.28;
  margin-top: 0.625rem;
}
.supporter-name span {
  font-size: 0.9375rem;
}

.supporter-text {
  font-size: 0.875rem;
  line-height: 1.7;
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .supporter-text {
    font-size: 1rem;
  }
}

#type {
  padding: 3.0625rem 0 3.125rem;
  background: rgba(90, 152, 255, 0.1);
}
@media screen and (min-width: 768px) {
  #type {
    padding: 7.5rem 0 6.25rem;
  }
}

.type-heading {
  text-align: center;
}
.type-heading span {
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #646C74;
  letter-spacing: 0.03em;
}

.type-title {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
.type-title span {
  color: #444444;
  font-size: 1.75rem;
}
@media screen and (min-width: 768px) {
  .type-title {
    font-size: 2rem;
  }
  .type-title span {
    font-size: 2rem;
  }
}

.type-container {
  width: 90%;
  margin: 1.625rem auto 0;
  display: flex;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .type-container {
    max-width: 39.0625rem;
    width: 100%;
    margin: 2.5rem auto 0;
  }
}

.type-item {
  background: #fff;
  width: calc(50% - 4px);
  margin-right: 8px;
  margin-bottom: 0.5rem;
  border-radius: 5px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);
}
.type-item:nth-child(2n) {
  margin-right: 0;
}
@media screen and (min-width: 768px) {
  .type-item {
    width: calc(50% - 12.5px);
    margin-right: 25px;
    margin-bottom: 1.5625rem;
  }
}

.type-image {
  width: 100%;
}
.type-image img {
  width: 100%;
  height: auto;
}

.type-item-title {
  background: #E82728;
  color: #fff;
  height: 1.9375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0 0 5px 5px;
}
@media screen and (min-width: 768px) {
  .type-item-title {
    height: 3.1875rem;
  }
}

#features {
  padding: 3.125rem 0;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.03) 1px, transparent 0), linear-gradient(to bottom, rgba(0, 0, 0, 0.03) 1px, transparent 0);
  background-size: 25px 25px;
}
@media screen and (min-width: 768px) {
  #features {
    padding: 7.5rem 0;
    background-size: 20px 20px;
  }
}

.features-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
.features-title span {
  color: #444444;
  font-size: 1.75rem;
}
@media screen and (min-width: 768px) {
  .features-title {
    font-size: 2rem;
  }
  .features-title span {
    font-size: 2rem;
  }
}

.features-container {
  width: 90%;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 2.5rem auto 0;
}
@media screen and (min-width: 768px) {
  .features-container {
    flex-direction: row;
    max-width: 60.4375rem;
    width: 100%;
  }
}

.features-wrapper {
  width: 100%;
  margin-bottom: 1.875rem;
}
@media screen and (min-width: 768px) {
  .features-wrapper {
    width: calc(50% - 30px);
    margin-right: 60px;
  }
  .features-wrapper:nth-child(2n) {
    margin-right: 0;
  }
}

.region-choice-title {
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.7;
  position: relative;
  padding-left: 2.125rem;
  border-bottom: 1px solid #E82728;
}
.region-choice-title::before {
  content: "";
  position: absolute;
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
@media screen and (min-width: 768px) {
  .region-choice-title {
    font-size: 1.25rem;
  }
}

.features-choice-title {
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.7;
  position: relative;
  padding-left: 2.125rem;
  border-bottom: 1px solid #E82728;
}
.features-choice-title::before {
  content: "";
  position: absolute;
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
@media screen and (min-width: 768px) {
  .features-choice-title {
    font-size: 1.25rem;
  }
}

.features-choice-lists {
  display: flex;
  flex-wrap: wrap;
  margin-top: 0.625rem;
}

.features-choice-item {
  width: calc(50% - 6.5px);
  margin-right: 13px;
  margin-bottom: 0.8125rem;
  border-radius: 5px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);
  transition: all 0.3s;
}
.features-choice-item:nth-child(2n) {
  margin-right: 0;
}
.features-choice-item:hover {
  transform: translateY(1px);
  opacity: 1;
  box-shadow: none;
}

.features-choice-image {
  width: 100%;
  border-radius: 5px 5px 0 0;
}
.features-choice-image img {
  width: 100%;
  height: auto;
  border-radius: 5px 5px 0 0;
}

.features-choice-item-title {
  background: #fff;
  height: 2.0625rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1.3;
  font-weight: 700;
  border-radius: 0 0 5px 5px;
}
@media screen and (min-width: 768px) {
  .features-choice-item-title {
    height: 2.1875rem;
    font-size: 1.125rem;
  }
}

#search {
  background: #FCE9E9;
  position: relative;
  padding-bottom: 2.5rem;
}
#search::before {
  content: "";
  width: 10.125rem;
  height: 3.75rem;
  background: url() no-repeat center center/cover;
  position: absolute;
  top: -3.75rem;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  #search {
    padding-bottom: 5rem;
  }
  #search::before {
    width: 21.875rem;
    height: 7.5625rem;
    top: -7.5625rem;
  }
}

.search-icon {
  width: 2.75rem;
  height: 3rem;
  position: absolute;
  top: -1.25rem;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .search-icon {
    width: 5rem;
    height: 5.5rem;
    top: -2.5rem;
  }
}
.search-icon img {
  width: 100%;
  height: auto;
}

.search-section-heading {
  padding-top: 3.125rem;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .search-section-heading {
    padding-top: 5rem;
  }
}

.search-sub-title {
  font-size: 1.75rem;
  letter-spacing: 0.05em;
  border-bottom: 1px solid #E82728;
  font-weight: 700;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  line-height: 1;
  padding-bottom: 0.5625rem;
}
.search-sub-title span {
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .search-sub-title {
    font-size: 2rem;
  }
}

.search-title {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-bottom: 1px solid #E82728;
  margin-top: 1rem;
  line-height: 1;
  padding-bottom: 0.5625rem;
}
@media screen and (min-width: 768px) {
  .search-title {
    font-size: 2rem;
  }
}

.search-info {
  font-size: 0.875rem;
  line-height: 1.7;
  margin-top: 1.25rem;
  text-align: center;
}

.search-item {
  width: 90%;
  margin: 1.25rem auto;
}
@media screen and (min-width: 768px) {
  .search-item {
    max-width: 25rem;
    width: 100%;
  }
}

.search-image {
  width: 100%;
}
.search-image img {
  width: 100%;
  height: auto;
}

.search-link {
  text-align: center;
  margin-top: 1.25rem;
}
.search-link a {
  display: inline-flex;
  width: 20.9375rem;
  height: 3.25rem;
  align-items: center;
  justify-content: center;
  background: #E82728;
  color: #fff;
  position: relative;
  border-radius: 100px;
  box-shadow: 0 2px 0 #CB1F20;
  transition: all 0.3s;
}
.search-link a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  right: 1.5rem;
}
.search-link a:hover {
  opacity: 1;
  transform: translateY(2px);
  box-shadow: none;
}

#experience {
  padding: 3.75rem 0 3.3125rem;
  background: linear-gradient(-160deg, #FF565B 0%, #E31E24 100%);
  position: relative;
}
@media screen and (min-width: 768px) {
  #experience {
    padding: 6.25rem 0 8.75rem;
  }
}

.experience-heading {
  text-align: center;
}

.experience-title {
  color: #fff;
  font-size: 1.75rem;
  font-weight: bold;
  line-height: 1.5;
}
.experience-title span {
  color: #E82728;
  background: #fff;
  margin: 0 0.5625rem;
  padding-right: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .experience-title {
    font-size: 2rem;
  }
}

.experience-slider {
  width: 80%;
  margin: 2.5rem auto 0;
  position: relative;
  padding-bottom: 1.875rem;
}
@media screen and (min-width: 768px) {
  .experience-slider {
    max-width: 60.625rem;
    width: 100%;
  }
}

.swiper2 {
  width: 100%;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .swiper2 {
    max-width: 60.625rem !important;
    width: 100%;
  }
}

.experience-item {
  background: #fff;
}

.experience-item-image {
  width: 100%;
  height: 13rem;
}
.experience-item-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.experience-item-content {
  padding: 1.25rem;
}

.experience-item-tag {
  display: inline-block;
  font-size: 0.875rem;
  line-height: 1.4;
  border-radius: 100px;
  background: rgba(232, 39, 40, 0.1);
  border: 1px solid rgba(232, 39, 40, 0.3);
  padding: 0 0.375rem;
}

.experience-item-name {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.28;
  margin-top: 0.3125rem;
}

.experience-item-school {
  line-height: 1.7;
  margin-top: 0.9375rem;
}

.experience-item-title {
  font-weight: 700;
  line-height: 1.7;
  margin-top: 0.3125rem;
}

.swiper2-button-prev,
.swiper2-button-next {
  height: 50px;
  width: 20px;
}

.swiper2-button-prev {
  left: -10% !important;
  color: transparent;
}
@media screen and (min-width: 768px) {
  .swiper2-button-prev {
    left: -5% !important;
  }
}

.swiper2-button-next {
  right: -8% !important;
  color: transparent;
}
@media screen and (min-width: 768px) {
  .swiper2-button-next {
    right: -5% !important;
  }
}

/* 前への矢印カスタマイズ */
.swiper2-button-prev::after {
  background: url();
}

/* 次への矢印カスタマイズ */
.swiper2-button-next::after {
  background: url();
}

/* 前へ次への矢印カスタマイズ */
.swiper2-button-prev::after,
.swiper2-button-next::after {
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: 50px;
  margin: auto;
  width: 50px;
}

.swiper2-pagination {
  bottom: -25px !important; /* 同様に位置を微調整 */
}

.swiper2-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: #fff !important;
  opacity: 1;
}

.experience-bg-dot {
  max-width: 7.4375rem;
  width: 100%;
  position: absolute;
  top: 0;
  right: 0;
}
@media screen and (min-width: 768px) {
  .experience-bg-dot {
    max-width: 18.25rem;
    width: 100%;
  }
}
.experience-bg-dot img {
  width: 100%;
  height: auto;
}

.experience-bg-wave {
  max-width: 3.5rem;
  width: 100%;
  position: absolute;
  bottom: 1.0625rem;
  left: 0;
}
@media screen and (min-width: 768px) {
  .experience-bg-wave {
    max-width: 8.1875rem;
    width: 100%;
    bottom: 0;
  }
}
.experience-bg-wave img {
  width: 100%;
  height: auto;
}

#cta {
  position: relative;
}

.cta-container {
  width: 90%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  gap: 0.625rem;
}
@media screen and (min-width: 768px) {
  .cta-container {
    flex-direction: row;
    max-width: 73.75rem;
    width: 100%;
    gap: initial;
  }
}

.cta-item {
  width: 100%;
  padding: 0.9375rem;
  background: #fff;
  border-radius: 5px;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .cta-item {
    width: 32.2%;
    padding: 1.875rem 1.25rem;
  }
}

.cta-heading {
  display: flex;
}

.cta-icon {
  width: 17%;
}
.cta-icon img {
  width: 100%;
  height: auto;
}

.cta-title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .cta-title {
    font-size: 1.25rem;
  }
}

.cta-text-box {
  margin: 0.5625rem auto 0;
  line-height: 1.7;
  flex-grow: 1;
  width: 95%;
  font-size: 0.875rem;
}
.cta-text-box.small {
  font-size: 0.875rem;
}
@media screen and (min-width: 768px) {
  .cta-text-box {
    font-size: 1rem;
    margin: 1.25rem auto 0;
  }
}

.cta-text span {
  color: #E82728;
}

.cta-button {
  text-align: center;
  margin-top: 0.5rem;
}
.cta-button a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  max-width: 18.75rem;
  width: 100%;
  height: 3.25rem;
  border-radius: 100px;
  transition: all 0.3s;
}

.cta-button-line a {
  background: #00B900;
  box-shadow: 0 2px 0 rgb(0, 171, 0);
  position: relative;
}
.cta-button-line a::before {
  content: "";
  width: 1.8125rem;
  height: 1.6875rem;
  background: url() no-repeat center center/contain;
  margin-right: 0.5rem;
}
.cta-button-line a:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}

.cta-button-conslutation a {
  background: #E82728;
  box-shadow: 0 2px 0 rgb(203, 31, 32);
  position: relative;
}
.cta-button-conslutation a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 52%;
  transform: translateY(-50%);
  right: 0.625rem;
}
.cta-button-conslutation a:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}

.cta-button-materials a {
  background: #E82728;
  box-shadow: 0 2px 0 rgb(203, 31, 32);
  position: relative;
}
.cta-button-materials a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 52%;
  transform: translateY(-50%);
  right: 1.25rem;
}
.cta-button-materials a:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}

#faq {
  padding: 3.125rem 0 3.0625rem;
}
@media screen and (min-width: 768px) {
  #faq {
    padding: 7.5rem 0 9.8125rem;
  }
}

.faq-heading {
  text-align: center;
}
.faq-heading span {
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #646C74;
  letter-spacing: 0.03em;
}

.faq-title {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
.faq-title span {
  color: #444444;
  font-size: 1.75rem;
}
@media screen and (min-width: 768px) {
  .faq-title {
    font-size: 2rem;
  }
  .faq-title span {
    font-size: 2rem;
  }
}

.faq-container {
  width: 90%;
  margin: 2.5rem auto 0;
}
@media screen and (min-width: 768px) {
  .faq-container {
    max-width: 50rem;
    width: 100%;
  }
}

.faq-item {
  border-bottom: 1px solid #cacaca;
}
.faq-item:first-child {
  border-top: 1px solid #cacaca;
}

.faq-q {
  display: flex;
  align-items: center;
  padding: 1.7875rem 0;
  position: relative;
  z-index: 2;
}
.faq-q-icon {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.01em;
  font-family: "Poppins", sans-serif;
  background: #E82728;
  color: #fff;
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 0.625rem;
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .faq-q-icon {
    font-size: 1.5rem;
    width: 2rem;
    height: 2rem;
  }
}

.faq-q-title {
  display: flex;
  align-items: center;
}

.faq-icon {
  width: 1.125rem;
  height: 1.125rem;
  position: relative;
  margin-left: auto;
  margin-right: 0.75rem;
}
.faq-icon span {
  display: inline-block;
  width: 1.125rem;
  height: 0.125rem;
  background: #cacaca;
  transition: all 0.3s;
}
.faq-icon span:nth-child(1) {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.faq-icon span:nth-child(2) {
  position: absolute;
  top: 50%;
  left: -0.0625rem;
  transform: rotate(90deg) translateY(-50%);
}

.faq-icon.open span:nth-child(2) {
  transform: rotate(0deg) translateY(-50%);
}

.faq-a {
  display: none;
  position: relative;
  z-index: 1;
  padding: 1.7875rem 0;
}

.faq-a-icon {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.01em;
  font-family: "Poppins", sans-serif;
  background: #fff;
  color: #E82728;
  border: 1px solid #E82728;
  flex-shrink: 0;
  height: 1.875rem;
  width: 1.875rem;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 0.625rem;
}
@media screen and (min-width: 768px) {
  .faq-a-icon {
    font-size: 1.5rem;
    flex: 0 0 2rem;
    height: 2rem;
  }
}

.faq-a-text {
  display: flex;
}

.faq-more-link {
  margin-top: 0.625rem;
  line-height: 1.7;
  position: relative;
  text-align: right;
  margin-right: 1.5rem;
}
.faq-more-link::after {
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.faq-cta-link {
  text-align: center;
  margin-top: 1.875rem;
}
.faq-cta-link a {
  display: inline-flex;
  max-width: 18.75rem;
  width: 100%;
  height: 3.25rem;
  align-items: center;
  justify-content: center;
  background: #00c300;
  color: #fff;
  border-radius: 100px;
  box-shadow: 0 2px 0 #00AB00;
  transition: all 0.3s;
}
.faq-cta-link a:before {
  content: "";
  width: 1.8125rem;
  height: 1.6875rem;
  background: url() no-repeat center center/contain;
  margin-right: 0.6875rem;
}
.faq-cta-link a:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}

#news {
  background: #F6F6F6;
  padding: 3.75rem 0;
}
@media screen and (min-width: 768px) {
  #news {
    padding: 7.5rem 0;
  }
}

.news-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
.news-title span {
  color: #444444;
  font-size: 1.75rem;
}
@media screen and (min-width: 768px) {
  .news-title {
    font-size: 2rem;
  }
  .news-title span {
    font-size: 2rem;
  }
}

.news-item-container {
  width: 90%;
  margin: 1.25rem auto 0;
}
.news-item-container:not(:last-child) {
  border-bottom: 1px solid #CACACA;
  padding-bottom: 2.5rem;
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 768px) {
  .news-item-container {
    max-width: 50rem;
    width: 100%;
    margin: 2.5rem auto 0;
  }
  .news-item-container:not(:last-child) {
    padding-bottom: 5rem;
    margin-bottom: 5rem;
  }
}

.news-item {
  display: flex;
  justify-content: space-between;
  padding-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .news-item {
    padding-bottom: 1.875rem;
  }
}
.news-item + .news-item {
  padding-top: 0.625rem;
  border-top: 1px solid #CACACA;
}
@media screen and (min-width: 768px) {
  .news-item + .news-item {
    padding-top: 1.875rem;
  }
}

.news-item-container:first-of-type .news-item {
  justify-content: center;
}
.news-item-container:first-of-type .news-item .news-item-contents {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .news-item-container:first-of-type .news-item .news-item-contents {
    width: 67.5%;
  }
}

.news-item-image {
  width: 32.8%;
  height: 6.875rem;
}
.news-item-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 768px) {
  .news-item-image {
    width: 25%;
    height: 12.5rem;
  }
}

.news-item-contents {
  width: 65%;
}
@media screen and (min-width: 768px) {
  .news-item-contents {
    width: 67.5%;
  }
}

.news-item-date {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #9F9F9F;
  letter-spacing: 0.05em;
}

.news-item-title {
  font-size: 0.875rem;
  line-height: 1.7;
  letter-spacing: 0.02em;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .news-item-title {
    font-size: 1rem;
  }
}

.news-item-text {
  font-size: 0.8125rem;
  line-height: 1.5;
  letter-spacing: 0.028em;
  margin-top: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .news-item-text {
    font-size: 0.9375rem;
    margin-top: 0.625rem;
  }
}

.news-item-category {
  margin-top: 0.625rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .news-item-category {
    margin-top: 1.25rem;
  }
}

.new-item-tag {
  font-size: 0.625rem;
  font-weight: 500;
  color: #17499C;
  background: #D0DAEB;
  border-radius: 100px;
  padding: 0 0.375rem;
}
@media screen and (min-width: 768px) {
  .new-item-tag {
    font-size: 0.8125rem;
  }
}

.news-item-link {
  margin-top: 1.25rem;
  text-align: center;
}
.news-item-link a {
  display: inline-flex;
  max-width: 20.9375rem;
  width: 100%;
  height: 2.9375rem;
  align-items: center;
  justify-content: center;
  background: #E82728;
  color: #fff;
  border-radius: 100px;
  box-shadow: 0 3px 0 #CB1F20;
  transition: all 0.3s;
}
.news-item-link a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  margin-left: 0.625rem;
}
.news-item-link a:hover {
  transform: translateY(3px);
  opacity: 1;
  box-shadow: none;
}
@media screen and (min-width: 768px) {
  .news-item-link {
    margin-top: 2.5rem;
  }
}

#support-achievements {
  padding: 2.5rem 0 1.875rem;
  background: rgba(90, 152, 255, 0.05);
}
@media screen and (min-width: 768px) {
  #support-achievements {
    padding: 6.25rem 0 2rem;
  }
}

.support-achievements-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  color: #17499C;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .support-achievements-title {
    font-size: 2rem;
  }
}

.support-achievements-inner {
  width: 90%;
  margin: 1.25rem auto 0;
}
@media screen and (min-width: 768px) {
  .support-achievements-inner {
    max-width: 68.75rem;
    width: 100%;
  }
}

.support-achievements-text {
  font-size: 1rem;
  line-height: 1.75;
}

.support-achievements-container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .support-achievements-container {
    flex-direction: row;
  }
}

.support-achievements-item {
  width: 100%;
  background: #fff;
  padding: 1rem 0.625rem;
  border-radius: 15px;
  margin-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .support-achievements-item {
    width: calc(50% - 20px);
    margin-right: 40px;
    padding: 2.5rem 1.875rem;
    margin-bottom: 1.25rem;
  }
  .support-achievements-item:nth-child(2n) {
    margin-right: 0;
  }
}

.support-achievements-item-title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
}

.support-achievements-subtitle {
  font-size: 1.125rem;
  line-height: 1.5;
}

.support-achievements-link {
  font-size: 0.875rem;
  position: relative;
  display: inline-block;
  margin-top: 1.0625rem;
}
.support-achievements-link::after {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -1.4375rem;
}
.support-achievements-link::before {
  content: "";
  width: 8.4375rem;
  height: 0.0625rem;
  background: #444444;
  position: absolute;
  bottom: -0.1875rem;
  left: 0;
}

#page-support-flow {
  padding-top: 3.0625rem;
}
@media screen and (min-width: 768px) {
  #page-support-flow {
    padding-top: 7.5rem;
  }
}

.page-support-flow-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  color: #E82728;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .page-support-flow-title {
    font-size: 2rem;
  }
}

.page-support-flow-image {
  max-width: 16.9375rem;
  width: 100%;
  margin: 1.25rem auto 0;
}
.page-support-flow-image img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .page-support-flow-image {
    max-width: 63.3125rem;
    width: 100%;
    margin: 2.5rem auto 0;
  }
}

.page-support-flow-info {
  font-size: 0.875rem;
  line-height: 1.75;
  margin: 1.25rem auto 0;
  width: -moz-fit-content;
  width: fit-content;
}

.page-support-flow-text {
  font-size: 0.875rem;
  line-height: 1.75;
}
@media screen and (min-width: 768px) {
  .page-support-flow-text {
    margin-top: 1.25rem;
  }
}

#page-support-price {
  padding: 3.75rem 0;
}
@media screen and (min-width: 768px) {
  #page-support-price {
    padding: 7.5rem 0;
  }
}

.page-support-price-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  color: #E82728;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .page-support-price-title {
    font-size: 2rem;
  }
}

.page-support-price-wrapper {
  width: 90%;
  margin: 2.5rem auto 0;
}
@media screen and (min-width: 768px) {
  .page-support-price-wrapper {
    max-width: 50.0625rem;
    width: 100%;
  }
}

.support-price-heading {
  font-size: 1.25rem;
  font-weight: 500;
  border-bottom: 1px solid #E82728;
}

.support-price-title {
  font-size: 0.9375rem;
  font-weight: 700;
  margin-top: 1rem;
  margin-bottom: 0.625rem;
}

.page-support-price-item:nth-child(1) .support-price-title {
  margin-top: 1.25rem;
}
.page-support-price-item:nth-child(2) .support-price-title {
  font-size: 1rem;
}
.page-support-price-item:not(:last-child) {
  margin-bottom: 2.5rem;
}

.support-price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.support-price-table tr {
  height: 2.75rem;
}
.support-price-table th {
  background: #FEF4F4;
  border: 1px solid #DDDDDD;
  font-weight: 500;
  width: 54%;
}
@media screen and (min-width: 768px) {
  .support-price-table th {
    width: 50%;
    padding: 0.3125rem 0.625rem;
  }
}
.support-price-table td {
  border: 1px solid #DDDDDD;
  width: 45.6%;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .support-price-table td {
    text-align: right;
    padding-right: 0.625rem;
    width: 50%;
  }
}

.support-price-lists {
  margin-top: 0.3125rem;
}

.support-price-list {
  font-size: 1rem;
  line-height: 1.75;
  padding-left: 1.25rem;
  position: relative;
}
.support-price-list::before {
  content: "・";
  position: absolute;
  left: 0.1875rem;
}

.support-price-info {
  font-size: 0.875rem;
  line-height: 1.5;
  margin-top: 0.3125rem;
}

.support-price-text {
  font-size: 1rem;
  line-height: 1.75;
  margin-top: 1rem;
}

.support-price-text-link {
  display: inline-block;
  position: relative;
  padding-right: 1.125rem;
  padding-left: 0.1875rem;
}
.support-price-text-link::after {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.support-price-text-link::before {
  content: "";
  width: 8.4375rem;
  height: 0.0625rem;
  background: #444444;
  position: absolute;
  bottom: -0.0625rem;
  left: 0;
}

#type-reason {
  padding: 2.5rem 0 3.5625rem;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.03) 1px, transparent 0), linear-gradient(to bottom, rgba(0, 0, 0, 0.03) 1px, transparent 0);
  background-size: 25px 25px;
}
@media screen and (min-width: 768px) {
  #type-reason {
    padding: 7.5rem 0;
    background-size: 20px 20px;
  }
}

.type-reason-heading {
  text-align: center;
}

.type-reason-title {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #17499C;
  border-bottom: 1px solid #17499C;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .type-reason-title {
    font-size: 1.75rem;
    border-bottom: none;
  }
}

.type-reason-subtitle {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .type-reason-subtitle {
    font-size: 2rem;
  }
}

.type-reason-container {
  width: min(100%, 20.9375rem);
  margin: 2.5rem auto 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media screen and (min-width: 768px) {
  .type-reason-container {
    max-width: 68.75rem;
    width: 100%;
    flex-direction: row;
  }
}

.type-reason-item {
  width: 100%;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 768px) {
  .type-reason-item {
    width: 30.4%;
    margin-bottom: 0;
  }
}

.type-reason-item-image {
  width: 100%;
  height: 11.1875rem;
}
.type-reason-item-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.type-reason-item-heading {
  line-height: 1.75;
  font-weight: 700;
  color: #17499C;
  text-align: center;
  margin-top: 0.625rem;
}

.type-reason-item-title {
  font-size: 1.5rem;
}

.type-reason-item-text {
  font-size: 1rem;
  line-height: 1.75;
  margin-top: 0.625rem;
  text-align: left;
}

#type-faq {
  padding: 3.125rem 0 2.5625rem;
}
@media screen and (min-width: 768px) {
  #type-faq {
    padding: 7.5rem 0;
  }
}

.type-faq-heading {
  text-align: center;
}

.type-faq-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
}
.type-faq-title span {
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .type-faq-title {
    font-size: 2rem;
  }
}

.type-faq-q {
  padding: 1.75rem 0 1.75rem;
}
@media screen and (min-width: 768px) {
  .type-faq-q {
    padding: 1.575625rem 0 1.611875rem;
  }
}

.type-faq-q-title {
  align-items: start;
}
@media screen and (min-width: 768px) {
  .type-faq-q-title {
    align-items: center;
  }
}

.type-faq-q-icon {
  width: 1.5rem;
  height: 1.5rem;
}
@media screen and (min-width: 768px) {
  .type-faq-q-icon {
    width: 2rem;
    height: 2rem;
  }
}

.type-faq-a-icon {
  width: 1.5rem;
  height: 1.5rem;
}
@media screen and (min-width: 768px) {
  .type-faq-a-icon {
    width: 2rem;
    height: 2rem;
  }
}

.type-faq-a {
  padding: 0 0 1.75rem;
}
@media screen and (min-width: 768px) {
  .type-faq-a {
    padding: 0.9375rem 0;
  }
}

.type-faq-a-text {
  padding-right: 3.125rem;
}
@media screen and (min-width: 768px) {
  .type-faq-a-text {
    align-items: center;
  }
}

#type-school {
  padding: 2.25rem 0 3.75rem;
  background: rgba(232, 39, 40, 0.05);
}
@media screen and (min-width: 768px) {
  #type-school {
    padding: 7.5rem 0;
  }
}

.type-school-heading {
  text-align: center;
}

.type-school-title {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
}
.type-school-title span {
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .type-school-title {
    font-size: 2rem;
  }
}

.type-school-container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  width: min(90%, 21rem);
  margin: 2.5rem auto 0;
}
@media screen and (min-width: 768px) {
  .type-school-container {
    flex-direction: row;
    max-width: 73.125rem;
    width: 100%;
  }
}

.type-school-item {
  width: 100%;
}
.type-school-item:not(:last-child) {
  padding-bottom: 1.875rem;
  border-bottom: 1px solid #444444;
}
.type-school-item:not(:first-child) {
  margin-top: 1.875rem;
}
@media screen and (min-width: 768px) {
  .type-school-item {
    width: 33.3%;
    margin-bottom: 1.875rem;
    border-right: 1px solid #444444;
  }
  .type-school-item:nth-child(3n+1) {
    padding-right: 1.875rem;
  }
  .type-school-item:nth-child(3n+2) {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
  }
  .type-school-item:nth-child(3n+3) {
    padding-left: 1.875rem;
    border-right: none;
  }
  .type-school-item:not(:last-child) {
    padding-bottom: initial;
    border-bottom: none;
  }
  .type-school-item:not(:first-child) {
    margin-top: 0;
  }
}

.type-school-item-heading {
  color: #17499C;
}

.type-school-item-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
}

.type-school-item-text {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.75;
  margin-top: 0.625rem;
}

.type-shool-item-image {
  width: 100%;
  height: 11.75rem;
  margin-top: 0.625rem;
}
.type-shool-item-image img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  height: 11.75rem;
}

.type-school-item-data {
  margin-top: 0.9375rem;
}

.type-item-school-name {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.type-school-meta {
  font-size: 0.875rem;
  padding-left: 1.375rem;
}
.type-school-meta::before {
  content: "";
  width: 1rem;
  height: 1rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.type-school-meta:not(:first-of-type) {
  margin-top: 0.625rem;
}

.type-school-item-place {
  position: relative;
}
.type-school-item-place::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.type-school-item-japanese {
  position: relative;
}
.type-school-item-japanese::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.type-school-item-scale {
  position: relative;
}
.type-school-item-scale::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.type-school-item-cost {
  position: relative;
}
.type-school-item-cost::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.type-school-item-categories {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
}

.type-school-item-category {
  font-size: 0.875rem;
  line-height: 1.4;
  border: 1px solid rgba(232, 39, 40, 0.3);
  background: rgba(232, 39, 40, 0.1);
  padding: 0 0.375rem;
  border-radius: 100px;
}

.type-school-item-link {
  margin-top: 1.3125rem;
  text-align: right;
  margin-right: 1.5rem;
}
.type-school-item-link a {
  display: inline-block;
  font-size: 1rem;
  position: relative;
  line-height: 1.7;
}
.type-school-item-link a::after {
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -1.5rem;
}

.type-school-link {
  margin-top: 1.25rem;
  display: flex;
  justify-content: center;
}
.type-school-link a {
  font-size: 1rem;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 21rem;
  height: 3.25rem;
  background: #E82728;
  color: #fff;
  border-radius: 100px;
  box-shadow: 0 2px 0 #CB1F20;
  transition: all 0.3s;
}
.type-school-link a:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}
.type-school-link a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.0625rem;
}
@media screen and (min-width: 768px) {
  .type-school-link {
    margin-top: 2.5rem;
  }
}

#school-detail {
  padding: 5.625rem 0 3.75rem;
}
@media screen and (min-width: 768px) {
  #school-detail {
    padding: 12.8125rem 0 11.25rem;
  }
}

.school-detail-content {
  width: min(90%, 20.9375rem);
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .school-detail-content {
    max-width: 50rem;
    width: 100%;
  }
}

.school-detail-image {
  width: 100%;
  height: 11.75rem;
}
.school-detail-image img {
  width: 100%;
  height: 11.75rem;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 1.7819148936;
}
@media screen and (min-width: 768px) {
  .school-detail-image {
    height: 28.0625rem;
  }
  .school-detail-image img {
    height: 28.0625rem;
    -o-object-fit: cover;
       object-fit: cover;
    aspect-ratio: 1.7817371938;
  }
}

.school-detail-data {
  margin-top: 0.9375rem;
}

.school-detail-name {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}

.school-detail-meta {
  font-size: 0.875rem;
  padding-left: 1.375rem;
}
.school-detail-meta::before {
  content: "";
  width: 1rem;
  height: 1rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.school-detail-meta:not(:first-of-type) {
  margin-top: 0.625rem;
}

.school-detail-recommend-lv {
  position: relative;
}
.school-detail-recommend-lv::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.school-detail-place {
  position: relative;
}
.school-detail-place::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.school-detail-japanese {
  position: relative;
}
.school-detail-japanese::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.school-detail-scale {
  position: relative;
}
.school-detail-scale::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.school-detail-cost {
  position: relative;
}
.school-detail-cost::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.school-detail-monthlycost {
  position: relative;
}
.school-detail-monthlycost::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.school-detail-categories {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
}

.school-detail-category {
  font-size: 0.875rem;
  line-height: 1.4;
  border: 1px solid rgba(232, 39, 40, 0.3);
  background: rgba(232, 39, 40, 0.1);
  padding: 0 0.375rem;
  border-radius: 100px;
}

.school-detail-link {
  margin-top: 1.25rem;
  display: flex;
  justify-content: center;
}
.school-detail-link a {
  font-size: 1rem;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 21rem;
  height: 3.25rem;
  background: #E82728;
  color: #fff;
  border-radius: 100px;
  box-shadow: 0 2px 0 #cb1f20;
  transition: all 0.3s;
}
.school-detail-link a:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}
.school-detail-link a::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.0625rem;
}
@media screen and (min-width: 768px) {
  .school-detail-link {
    margin-top: 2.5rem;
  }
}

.type-school-daigaku-features {
  display: flex;
  gap: 30px;
  max-width: 1000px;
  margin: 0 auto 50px;
  padding: 0 20px;
}

.daigaku-feature-item {
  flex: 1;
  text-align: center;
  padding: 30px 20px;
  background: #f9f9f9;
  border-radius: 8px;
}

.daigaku-feature-icon {
  font-size: 48px;
  margin-bottom: 15px;
}

.daigaku-feature-title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
  color: #333;
}

.daigaku-feature-text {
  font-size: 14px;
  line-height: 1.6;
  color: #666;
}

@media (max-width: 767px) {
  .type-school-daigaku-features {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 40px;
  }
  
  .daigaku-feature-item {
    padding: 25px 15px;
  }
  
  .daigaku-feature-icon {
    font-size: 40px;
  }
}

/* 1つのSVG星をマスクにして横に5個並べる方式（画像不要） */
.rating {
  --size: 18px; /* 星の大きさ */
  --bg: #e0e0e0; /* 未選択の色 */
  --fg: #ffb300; /* 塗りつぶしの色 */
  --percent: 0%; /* PHP で 0〜100% を入れる */
  --mask: url("data:image/svg+xml;utf8,  <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>  <path d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/>  </svg>");
  position: relative;
  display: inline-block;
  width: calc(var(--size) * 5); /* 好きな幅でもOK */
  height: var(--size);
  vertical-align: middle;
}

/* グレーの土台（★×5） */
.rating::before,
.rating::after {
  content: "";
  position: absolute;
  inset: 0;
  -webkit-mask: var(--mask) left/var(--size) var(--size) repeat-x;
  mask: var(--mask) left/var(--size) var(--size) repeat-x;
}

/* 土台 */
.rating::before {
  background: var(--bg);
}

/* 塗りつぶし（幅を%でコントロール） */
.rating::after {
  background: var(--fg);
  width: var(--percent);
  overflow: hidden; /* ここで%分だけ塗る */
}

/* アクセシビリティ用テキストを非表示に */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
}

#school-tab {
  padding-bottom: 1.875rem;
}
@media screen and (min-width: 768px) {
  #school-tab {
    padding-bottom: 7.5rem;
  }
}

.shool-tab-container {
  width: min(90%, 20.8125rem);
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .shool-tab-container {
    max-width: 62.5rem;
    width: 100%;
  }
}

.school-tab-titles {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    background-color: #f5f5f5; /* スマホ：操作パネルに見えるよう薄いグレーを敷く */
    padding: 6px;
    border-radius: 10px;
    height: auto;
    gap: 4px; /* ボタン同士の隙間 */
}

@media screen and (min-width: 768px) {
    .school-tab-titles {
        background-color: transparent; /* PC：背景を透明に戻す */
        padding: 0;
        border-radius: 0;
        border-bottom: 2px solid #ececec; /* PC：下線スタイルを復活 */
        gap: 0;
    }
}

/* --------------------------------------------------
    各タブの基本スタイル
-------------------------------------------------- */
.school-tab-title {
    width: 31%; /* スマホ：3つ並び */
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 500;
    color: #666;
    background-color: transparent;
    border-radius: 8px;
    transition: all 0.2s ease;
    cursor: pointer; /* 【重要】PCで指マークにする */
    -webkit-tap-highlight-color: transparent;
}

@media screen and (min-width: 768px) {
    .school-tab-title {
        width: 20%; /* PC：5つ並び */
        height: 3.5rem;
        font-size: 1rem;
        border-radius: 0;
    }
}

/* --------------------------------------------------
    PC専用：ホバーエフェクト（マウスを乗せた時）
-------------------------------------------------- */
@media screen and (min-width: 768px) {
    .school-tab-title:hover {
        color: #E82728; /* 文字を赤くする */
        background-color: #fcfcfc; /* ほんのり背景色を変える */
    }
}

/* --------------------------------------------------
    アクティブ（選択中）のスタイル
-------------------------------------------------- */
/* スマホ：白いボタンが浮き上がっているようなデザイン */
.school-tab-title.active {
    background-color: #fff;
    color: #E82728;
    font-weight: 700;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* PC：下線で「現在地」を示すスタイルに切り替え */
@media screen and (min-width: 768px) {
    .school-tab-title.active {
        background-color: transparent;
        box-shadow: none;
        position: relative;
    }
    .school-tab-title.active::after {
        content: "";
        position: absolute;
        bottom: -2px; /* 全体の下線に重ねる */
        left: 0;
        width: 100%;
        height: 4px; /* 赤い線を太くして強調 */
        background-color: #E82728;
    }
}

.school-tab-content {
  width: 100%;
  display: none;
}
.school-tab-content.active {
  display: block;
}

.school-detail-content-title {
  font-size: 1.125rem;
  font-weight: 500;
  border-bottom: 1px solid #E82728;
  margin-top: 1.5rem;
}
@media screen and (min-width: 768px) {
  .school-detail-content-title {
    font-size: 1.25rem;
    margin-top: 2.5rem;
  }
}

.school-detail-tab-link {
  text-align: right;
  margin-right: 1.5rem;
}
.school-detail-tab-link a {
  font-size: 0.9375rem;
  line-height: 1.7;
  position: relative;
}
.school-detail-tab-link a::after {
  position: absolute;
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  top: 50%;
  transform: translateY(-50%);
  right: -1.5rem;
}

.school-detail-news-subtitle {
  font-size: 1.125rem;
  font-weight: 500;
  margin-top: 1.25rem;
}

.shool-detail-news-container {
  margin-top: 0.625rem;
}

.school-detail-news-item {
  display: block;
}
.school-detail-news-item:not(:last-child) {
  border-bottom: 1px solid #cacaca;
  padding-bottom: 0.625rem;
  padding-top: 0.625rem;
}

.school-detail-news-item-date {
  font-size: 0.8125rem;
  line-height: 1.5384615385;
  letter-spacing: 0.05em;
  color: #9f9f9f;
}

.school-detail-news-item-title {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.042em;
}

.school-detail-movie-wrap {
  width: 100%;
  max-width: 50rem; /* 37.5rem(600px)から少し広げるとPCでより綺麗に見えます。お好みで調整してください。 */
  margin: 1.25rem auto;
  aspect-ratio: 16 / 9;
  height: auto !important;
  padding-bottom: 0 !important;
  position: relative;
  overflow: hidden;
}

.school-detail-movie-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  border: none;
}

.school-detail-content-main {
  /* 基本テーブル */
}
.school-detail-content-main h2 {
  font-size: 1.125rem;
  font-weight: 500;
  border-bottom: 1px solid #E82728;
  margin-top: 1.5rem;
  margin-bottom: 1.25rem;
}
@media screen and (min-width: 768px) {
  .school-detail-content-main h2 {
    font-size: 1.25rem;
    margin-top: 2.5rem;
  }
}
.school-detail-content-main h3 {
  font-size: 1.25rem;
  font-weight: 600;
  padding-left: 0.625rem;
  border-left: 10px solid #E82728;
  margin-bottom: 1.25rem;
}
.school-detail-content-main h4 {
  font-size: 1.125rem;
  line-height: 1.7;
  letter-spacing: 0.0625rem;
  color: #E82728;
  border-bottom: none;
  margin-bottom: 0.5625rem;
}
.school-detail-content-main p {
  margin-bottom: 1.1875rem;
}
.school-detail-content-main .markers_yel {
  background: linear-gradient(transparent 60%, #ffff66 60%);
}
.school-detail-content-main img {
  max-width: 43.125rem;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.school-detail-content-main table {
  max-width: 100%;
  width: 100%;
  margin: 0 auto 1.25rem;
  border-collapse: collapse;
  border: 1px solid #e5e7eb;
  font-size: 1rem;
  color: #333;
  display: inline-block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  vertical-align: top;
  min-width: 100%;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .school-detail-content-main table {
    display: table;
    overflow: visible;
    min-width: 0;
    max-width: 37.5rem;
  }
}
.school-detail-content-main table,
.school-detail-content-main table th,
.school-detail-content-main table td {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
}
.school-detail-content-main table th,
.school-detail-content-main table td {
  padding: 0.875rem 1rem;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: middle;
  text-align: left;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .school-detail-content-main table th,
  .school-detail-content-main table td {
    white-space: normal;
  }
}
.school-detail-content-main table th {
  background: #f5f7fa;
  font-weight: 600;
}
.school-detail-content-main table td:first-child {
  font-weight: 500;
  color: #222;
}
.school-detail-content-main table td:last-child {
  color: #555;
}
.school-detail-content-main table tr:last-child td {
  border-bottom: none;
}

.school-tab-content2 {
  width: 100%;
}

.school-detail-course-container {
  width: 100%;
}

.shool-detail-course-item {
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .shool-detail-course-item {
    margin-top: 2.5rem;
  }
}

.school-detail-course-title {
  font-size: 1.125rem;
  font-weight: 500;
  position: relative;
  padding-left: 1.5rem;
}
.school-detail-course-title::before {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(-90deg);
  left: 0rem;
  transition: all 0.3s;
}
.school-detail-course-title.open::before {
  transform: translateY(-50%) rotate(0deg);
}
@media screen and (min-width: 768px) {
  .school-detail-course-title {
    font-size: 1.25rem;
  }
}

.school-detail-course-contents {
  margin-top: 0.625rem;
  display: none;
}

.school-detail-course-content:not(:first-child) {
  margin-top: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .school-detail-course-content:not(:first-child) {
    margin-top: 1.25rem;
  }
}

.school-detail-course-sub-title {
  font-size: 1rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .school-detail-course-sub-title {
    font-size: 1.125rem;
  }
}

.school-detail-course-text {
  font-size: 0.9375rem;
  line-height: 1.5;
  margin-top: 0.375rem;
}
@media screen and (min-width: 768px) {
  .school-detail-course-text {
    font-size: 1rem;
    margin-top: 0.625rem;
  }
}

/* ベース */
.school-detail-table-wrap {
  overflow-x: auto; /* スマホで横スクロール */
  -webkit-overflow-scrolling: touch;
  margin-top: 0.625rem;
}

.school-detail-price-table {
  width: 100%;
  min-width: 35.75rem; /* 列が詰まりすぎないように */
  border-collapse: collapse;
  table-layout: fixed; /* 列幅を均等に */
  font-size: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .school-detail-price-table {
    min-width: 62.4375rem;
  }
}

/* 列幅：左の見出し列をやや広めに */
.school-detail-price-table .col-room {
  width: 5.75rem;
}
@media screen and (min-width: 768px) {
  .school-detail-price-table .col-room {
    width: 9.9375rem;
  }
}

/* ヘッダー行（上部の期間帯） */
.school-detail-price-table thead th {
  position: sticky; /* スクロールしても見出しを上に固定（横スクロール時に便利） */
  top: 0;
  z-index: 2;
  background: #fef4f4; /* 淡いピンク */
  color: #E82728; /* 赤みのある文字色 */
  text-align: center;
  font-weight: 400;
  height: 2.5rem;
}

/* 左上の空白セル */
.school-detail-price-table thead .corner {
  background: #fff;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 3;
}

/* 本文セル */
.school-detail-price-table td,
.price-table th.row-head {
  border-bottom: 1px solid #efefef;
  height: 2.5rem;
}

/* 行見出し（左の部屋タイプ） */
.school-detail-price-table th.row-head {
  text-align: center;
  font-weight: 500;
  background: #fff;
  position: sticky; /* 横スクロール時、左に固定 */
  left: 0;
  z-index: 1;
  border-bottom: 1px solid #efefef;
}

/* 金額セルの見た目（画像に近い淡色・細ボーダー） */
.school-detail-price-table td {
  text-align: center; /* 画像に近い中央揃え */
  color: #666;
}

/* 視覚的には非表示だがスクリーンリーダー向けに残す */
.visually-hidden {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  overflow: hidden;
  white-space: nowrap;
}

.school-detail-other-price-content {
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .school-detail-other-price-content {
    margin-top: 2.5rem;
  }
}
.school-detail-other-price-content p {
  line-height: 1.5;
}

.school-detail-picture-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3125rem;
  margin: 1.25rem auto 0;
}
@media screen and (min-width: 768px) {
  .school-detail-picture-container {
    margin: 2.5rem auto 0;
  }
}

.school-detail-picture-item {
  flex: 0 0 calc((100% - 5px) / 2);
  height: 9.8125rem;
}
.school-detail-picture-item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 164/157;
}
@media screen and (min-width: 768px) {
  .school-detail-picture-item {
    flex: 0 0 calc((100% - 10px) / 3);
    height: 11.0625rem;
  }
  .school-detail-picture-item img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    aspect-ratio: 330/177;
  }
}

.lb[hidden] {
  display: none;
}

.lb {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
}

.lb__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.lb__panel {
  position: relative;
  margin: 0;
  max-width: min(92vw, 1000px);
  max-height: min(92vh, 800px);
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 12px;
  padding: 16px;
  background: #111;
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
  opacity: 0;
  transform: translateY(6px) scale(0.98);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.lb.is-open .lb__overlay {
  opacity: 1;
}

.lb.is-open .lb__panel {
  opacity: 1;
  transform: none;
}

.lb__img {
  max-width: 100%;
  max-height: 70vh;
  margin: auto;
  display: block;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 8px;
  background: #000;
}

.lb__cap {
  color: #ddd;
  font-size: 14px;
  text-align: center;
}

.lb__btn {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 22px;
  cursor: pointer;
}

.lb__btn--close {
  right: 8px;
}

.lb__btn--prev,
.lb__btn--next {
  top: 50%;
  transform: translateY(-50%);
  font-size: 28px;
  padding: 8px 12px;
}

.lb__btn--prev {
  left: 8px;
  right: auto;
}

.lb__btn--next {
  right: 8px;
}

.body-lock {
  overflow: hidden;
}

.uni-h2 {
  font-size: 1.125rem;
  font-weight: 500;
  border-bottom: 1px solid #E82728;
  margin-top: 1.5rem;
}
@media screen and (min-width: 768px) {
  .uni-h2 {
    font-size: 1.25rem;
    margin-top: 2.5rem;
  }
}

.school-detail-materials-category {
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .school-detail-materials-category {
    margin-top: 2.5rem;
  }
}

#tab4 h3 {
  font-size: 1.25rem;
  position: relative;
  padding-left: 1.25rem;
  margin-top: 0.625rem;
}
#tab4 h3::before {
  content: "";
  width: 0.625rem;
  height: 1.25rem;
  background: #E82728;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

#tab4 h4 {
  font-size: 1.125rem;
  color: #E82728;
  line-height: 1.7;
  letter-spacing: 0.05em;
  margin-top: 0.3125rem;
}

.school-detail-materials-image {
  width: 90%;
  margin: 1.25rem auto;
}
@media screen and (min-width: 768px) {
  .school-detail-materials-image {
    max-width: 33.75rem;
    width: 100%;
    margin: 2.5rem auto;
  }
}

#tab4 {
  width: 100%;
  margin: 1.25rem auto;
}
#tab4 img {
  width: 100%;
}
@media screen and (min-width: 768px) {
  #tab4 {
    max-width: 37.5rem;
    margin: 2.5rem auto;
  }
}

#tab4 iframe {
  width: 100%;
  margin: 1.25rem auto 0;
}
@media screen and (min-width: 768px) {
  #tab4 iframe {
    margin-top: 2.5rem;
  }
}

.pdfjs-view {
  max-width: 100%;
}

.pdfjs-frame {
  width: 100%;
  height: 680px;
  border: 0;
}

.pdfjs-toolbar {
  margin: 8px 0;
  display: flex;
  gap: 12px;
}

.school-detail-experience-container {
  margin-top: 2.5rem;
}

.school-detail-experience-item {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.school-detail-experience-image {
  width: 32.8%;
}
.school-detail-experience-image img {
  width: 100%;
  height: 6.875rem;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 110/110;
}
@media screen and (min-width: 768px) {
  .school-detail-experience-image {
    width: 16%;
  }
  .school-detail-experience-image img {
    width: 100%;
    height: 10rem;
    -o-object-fit: cover;
       object-fit: cover;
    aspect-ratio: 160/160;
  }
}

.school-detail-experience-title {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.042em;
}

.school-detail-experience-meta {
  font-size: 0.8125rem;
  position: relative;
  padding-left: 1.375rem;
}
.school-detail-experience-meta::before {
  content: "";
  width: 1rem;
  height: 1rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

.school-detail-experience-period {
  font-size: 0.8125rem;
  position: relative;
  padding-left: 1.375rem;
}
.school-detail-experience-period::before {
  content: "";
  width: 1rem;
  height: 1rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

#filter-section {
  padding: 5.625rem 0 2.4375rem;
}
@media screen and (min-width: 768px) {
  #filter-section {
    padding: 9.0625rem 0 6.25rem;
  }
}

.filter-section-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  text-align: center;
  color: #E82728;
}
@media screen and (min-width: 768px) {
  .filter-section-title {
    font-size: 2rem;
  }
}

.filter-section-wrapper {
  width: min(90%, 20.9375rem);
  margin: 1.5625rem auto 0;
  padding: 1.5rem 1.125rem;
  border-radius: 15px;
  background: rgba(232, 39, 40, 0.05);
}
@media screen and (min-width: 768px) {
  .filter-section-wrapper {
    max-width: 50rem;
    width: 100%;
    padding: 2.5rem 0;
    margin: 2.5rem auto 0;
  }
}

.filter-section-sub-title {
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .filter-section-sub-title {
    font-size: 1.375rem;
  }
}

.school-filter {
  max-width: 37.5625rem;
  width: 100%;
  margin: 1.625rem auto 0;
}
@media screen and (min-width: 768px) {
  .school-filter {
    margin: 2.5rem auto 0;
  }
}

.checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9375rem 1.1875rem;
  border: none;
  margin-bottom: 1.25rem;
}

.checkbox legend {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.03em;
}

.checkbox label {
  display: flex;
  align-items: center;
  gap: 0.5625rem;
  position: relative;
  cursor: pointer;
  font-size: 0.9375rem;
  letter-spacing: 0.05em;
}

.checkbox label::before {
  width: 1.375rem;
  height: 1.375rem;
  border-radius: 4px;
  border: 1px solid #808080;
  background: rgba(250, 250, 250, 0.9);
  content: "";
}

.checkbox label::after {
  position: absolute;
  top: 3px;
  left: 7px;
  transform: rotate(45deg);
  width: 0.5rem;
  height: 0.9375rem;
  border: solid #d6dde3;
  border-width: 0 3px 3px 0;
  content: "";
  transition: border-color 0.2s, border-width 0.2s;
}

.checkbox label:has(:checked)::after {
  border-color: #e82728;
}

.search-more-btn {
  list-style: none;
  width: 100%;
  height: 2.125rem;
  background: #17499C;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-top: 1.875rem;
}
.search-more-btn::after {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  right: 1.25rem;
  transition: all 0.3s;
}
.search-more-btn.open::after {
  transform: translateY(-50%) rotate(0deg);
}

.search-more-contents {
  margin-top: 1.25rem;
  display: none;
}

.keyword {
  margin-top: 1.875rem;
  display: flex;
  flex-direction: column;
}
.keyword label {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.03em;
}

input[type=search] {
  width: 100%;
  height: 2.25rem;
  background: #fff url() no-repeat 8px center;
  background-size: 1.125rem 1.125rem;
  border: 1px solid #7A7A7A;
  position: relative;
  border-radius: 3px;
  margin-top: 0.5rem;
  padding-left: 2.25rem;
  padding-right: 0.625rem;
}

.filter-submit {
  text-align: center;
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .filter-submit {
    margin-top: 2.5rem;
  }
}

.btn {
  display: flex;
  justify-content: center;
  font-size: 1rem;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18.75rem;
  height: 3.25rem;
  background: #E82728;
  color: #fff;
  border-radius: 100px;
  box-shadow: 0 2px 0 #CB1F20;
  transition: all 0.3s;
}
.btn:hover {
  transform: translateY(2px);
  opacity: 1;
  box-shadow: none;
}
.btn::after {
  content: "";
  width: 1.25rem;
  height: 1.25rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.0625rem;
}

#result-section {
  padding-bottom: 3.75rem;
}
@media screen and (min-width: 768px) {
  #result-section {
    padding-bottom: 7.1875rem;
  }
}

.result-section-title {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.result-section-title small {
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: initial;
  margin-left: 0.625rem;
}
@media screen and (min-width: 768px) {
  .result-section-title {
    font-size: 1.5rem;
  }
}

.result-section-text {
  font-size: 0.8125rem;
  line-height: 1.5;
  margin: 1.25rem auto 0;
  width: min(90%, 20.9375rem);
}
@media screen and (min-width: 768px) {
  .result-section-text {
    width: initial;
    text-align: center;
    margin: 3.125rem auto 0;
  }
}

.sort {
  text-align: center;
  margin-top: 1.25rem;
  height: 1.875rem;
}
@media screen and (min-width: 768px) {
  .sort {
    margin-top: 1.875rem;
  }
}

.selectbox {
  position: relative;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .selectbox {
    font-size: 0.9375rem;
  }
}
.selectbox option {
  background: #656662;
  color: #fff;
}

.selectbox::before,
.selectbox::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.selectbox::before {
  right: 0;
  display: inline-block;
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 0 3px 3px 0;
  background-color: #3b3b3b;
  content: "";
}

.selectbox::after {
  position: absolute;
  top: 50%;
  right: 0.9375rem;
  transform: translate(50%, -50%) rotate(45deg);
  width: 0.625rem;
  height: 0.625rem;
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
  content: "";
}

.selectbox select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  min-width: 11.125rem;
  height: 1.875rem;
  padding-left: 0.625rem;
  border: 2px solid #3b3b3b;
  border-radius: 3px;
  color: #444444;
  font-size: 0.75rem;
  margin-left: 0.375rem;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .selectbox select {
    font-size: 0.875rem;
    height: 1.875rem;
  }
}

.selectbox select:focus {
  outline: 1px solid #3b3b3b;
}

.result-section-container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  width: min(90%, 21rem);
  margin: 1.875rem auto 0;
}
@media screen and (min-width: 768px) {
  .result-section-container {
    flex-direction: row;
    max-width: 73.125rem;
    width: 100%;
    margin: 2.5rem auto 0;
  }
}

.result-section-item {
  width: 100%;
}
.result-section-item:not(:last-child) {
  padding-bottom: 1.875rem;
  border-bottom: 1px solid #444444;
}
.result-section-item:not(:first-child) {
  margin-top: 1.875rem;
}
@media screen and (min-width: 768px) {
  .result-section-item {
    width: 33.3%;
    margin-bottom: 1.875rem;
    border-right: 1px solid #444444;
  }
  .result-section-item:nth-child(3n+1) {
    padding-right: 1.875rem;
  }
  .result-section-item:nth-child(3n+2) {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
  }
  .result-section-item:nth-child(3n+3) {
    padding-left: 1.875rem;
    border-right: none;
  }
  .result-section-item:not(:last-child) {
    padding-bottom: initial;
    border-bottom: none;
  }
  .result-section-item:not(:first-child) {
    margin-top: 0;
  }
}

.result-section-item-image {
  width: 100%;
  height: 11.75rem;
  margin-top: 0.625rem;
}
.result-section-item-image img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  height: 11.75rem;
}

.result-section-item-data {
  margin-top: 0.9375rem;
/* ▼▼▼ 追加 ▼▼▼ */
  position: relative; /* リンク範囲の基準 */
  overflow: hidden;   /* はみ出したリンク判定をカット */
  cursor: pointer;    /* カーソルを指マークに */
  transition: opacity 0.3s; /* ふわっとした動き */
  /* ▲▲▲ 追加 ▲▲▲ */
}

/* ▼▼▼ 追加：全体ホバー時の薄くなるアニメーション ▼▼▼ */
.result-section-item-data:hover {
  opacity: 0.8;
}

.result-section-school-name {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.result-section-meta {
  font-size: 0.875rem;
  padding-left: 1.375rem;
}
.result-section-meta::before {
  content: "";
  width: 1rem;
  height: 1rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.result-section-meta:not(:first-of-type) {
  margin-top: 0.625rem;
}

.result-section-item-place {
  position: relative;
}
.result-section-item-place::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.result-section-item-japanese {
  position: relative;
}
.result-section-item-japanese::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.result-section-item-scale {
  position: relative;
}
.result-section-item-scale::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.result-section-item-cost {
  position: relative;
}
.result-section-item-cost::before {
  background: url() no-repeat center center/contain;
  position: absolute;
}

.result-section-item-categories {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
}

.result-section-item-category {
  font-size: 0.875rem;
  line-height: 1.4;
  border: 1px solid rgba(232, 39, 40, 0.3);
  background: rgba(232, 39, 40, 0.1);
  padding: 0 0.375rem;
  border-radius: 100px;
}

.result-section-item-link {
  margin-top: 1.3125rem;
  text-align: right;
  margin-right: 1.5rem;
}
.result-section-item-link a {
  display: inline-block;
  font-size: 1rem;
  position: relative;
  line-height: 1.7;
}
.result-section-item-link a::after {
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -1.5rem;
}

.result-section-item-link a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* 親要素を確実に覆えるよう、あえて巨大なサイズを指定 */
  width: 200vw; 
  height: 200vw;
  z-index: 1;
}

#page-faq-nav {
  padding: 5.625rem 0 2.5rem;
}
@media screen and (min-width: 768px) {
  #page-faq-nav {
    padding: 12.8125rem 0 5.75rem;
  }
}

.page-faq-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  color: #E82728;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .page-faq-title {
    font-size: 2rem;
  }
}

.page-faq-nav-wrap {
  width: 90%;
  margin: 1.25rem auto 0;
  border: 5px solid #F2F2F2;
  padding: 1.1875rem;
  border-radius: 10px;
}
@media screen and (min-width: 768px) {
  .page-faq-nav-wrap {
    max-width: 50rem;
    width: 100%;
    margin: 2.5rem auto 0;
    padding: 2.5rem;
  }
}

.page-faq-nav-container {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-left: 0.25rem;
  width: min(100%, 18.4375rem);
}
@media screen and (min-width: 768px) {
  .page-faq-nav-container {
    flex-direction: row;
    gap: 2rem;
    width: initial;
    justify-content: center;
  }
}

.page-faq-nav-title {
  font-size: 1.125rem;
  font-weight: 700;
  position: relative;
}

.page-faq-nav-lists {
  margin-top: 0.625rem;
}

.page-faq-nav-list a {
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #2162A1;
  display: inline-block;
}
.page-faq-nav-list:not(:first-child) {
  margin-top: 0.25rem;
}

.page-faq-university {
  padding-left: 2.5rem;
}
.page-faq-university::before {
  content: "";
  width: 1.875rem;
  height: 1.875rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

.page-faq-further-education {
  padding-left: 2.5rem;
}
.page-faq-further-education::before {
  content: "";
  width: 1.875rem;
  height: 1.875rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

#page-faq {
  padding-bottom: 8.75rem;
}
@media screen and (min-width: 768px) {
  #page-faq {
    padding-bottom: 8.75rem;
  }
}

.page-faq-type {
  width: 90%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .page-faq-type {
    max-width: 50rem;
    width: 100%;
  }
}

.page-faq-type-heading {
  font-size: 1.5rem;
  font-weight: 700;
  padding-left: 3.125rem;
  position: relative;
  border-bottom: 1px solid #E82728;
  margin-bottom: 1.25rem;
}
@media screen and (min-width: 768px) {
  .page-faq-type-heading {
    margin-bottom: 1.875rem;
  }
}

.type-heading-university {
  margin-top: 5rem;
}
.type-heading-university::before {
  content: "";
  width: 1.875rem;
  height: 1.5rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0.625rem;
}

.type-heading-further-education::before {
  content: "";
  width: 1.875rem;
  height: 1.875rem;
  background: url() no-repeat center center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0.625rem;
}

.page-faq-type .page-faq-category {
  margin-top: 3.75rem;
}
.page-faq-type .page-faq-category:nth-of-type(1) {
  margin-top: 0;
}

.page-faq-category-title {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.5;
  padding-left: 1.25rem;
  position: relative;
}
.page-faq-category-title::before {
  content: "";
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background: #E82728;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

.page-faq-container {
  width: 100%;
  margin: 0.6875rem auto 0;
}

.page-faq-item {
  border-bottom: 1px solid #cacaca;
}
.page-faq-item:first-child {
  border-top: 1px solid #cacaca;
}

.page-faq-q {
  display: flex;
  align-items: center;
  padding: 1.7875rem 0;
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .page-faq-q {
    padding: 1.75rem 0;
  }
}

.page-faq-q-icon {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.01em;
  font-family: "Poppins", sans-serif;
  background: #E82728;
  color: #fff;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 0.625rem;
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .page-faq-q-icon {
    font-size: 1.5rem;
    width: 2rem;
    height: 2rem;
  }
}

.page-faq-q-title {
  display: flex;
  align-items: center;
}

.page-faq-icon {
  width: 1.125rem;
  height: 1.125rem;
  position: relative;
  margin-left: auto;
  margin-right: 0.75rem;
}
.page-faq-icon span {
  display: inline-block;
  width: 1.125rem;
  height: 0.125rem;
  background: #cacaca;
  transition: all 0.3s;
}
.page-faq-icon span:nth-child(1) {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.page-faq-icon span:nth-child(2) {
  position: absolute;
  top: 50%;
  left: -0.0625rem;
  transform: rotate(90deg) translateY(-50%);
}

.page-faq-icon.open span:nth-child(2) {
  transform: rotate(0deg) translateY(-50%);
}

.page-faq-a {
  display: none;
  position: relative;
  z-index: 1;
  padding: 1.75rem 0;
}
@media screen and (min-width: 768px) {
  .page-faq-a {
    padding: 1.7875rem 0;
  }
}

.page-faq-a-icon {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.01em;
  font-family: "Poppins", sans-serif;
  background: #fff;
  color: #E82728;
  border: 1px solid #E82728;
  flex-shrink: 0;
  height: 1.5rem;
  width: 1.5rem;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 0.625rem;
}
@media screen and (min-width: 768px) {
  .page-faq-a-icon {
    font-size: 1.5rem;
    flex: 0 0 2rem;
    height: 2rem;
  }
}

.page-faq-a-text {
  display: flex;
}

.offer-contents {
  padding-top: 6.75rem;
  padding-bottom: 3.125rem;
}
@media screen and (min-width: 768px) {
  .offer-contents {
    padding-bottom: 3.125rem;
  }
}
.offer-contents form {
  max-width: 37.5rem;
  width: 90%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .offer-contents form {
    width: 100%;
  }
}
.offer-contents h2 {
  font-size: 1.4375rem;
  font-weight: 700;
  padding-bottom: 0.3125rem;
  border-bottom: 2px solid #E82728;
  margin: 1.875rem 0;
}
.offer-contents p {
  margin-bottom: 1.1875rem;
}
.offer-contents label .required-badge {
  font-size: 0.7rem;
  background: #E82728;
  color: #fff;
  border-radius: 4px;
  display: inline-block;
  margin-right: 0.34375rem;
  padding: 0.1375rem 0.34375rem;
}
.offer-contents input {
  padding: 0.75rem;
  margin-top: 0.5rem;
  background: #f9f9f9;
  border: 1px solid #ccc;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.offer-contents .cf-policy-note {
  font-size: 0.875rem;
  margin-top: 0.4375rem;
  line-height: 1.6;
  color: #555;
}
.offer-contents .wpcf7-form-control.wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.5rem;
  margin-bottom: 1.5rem;
}
.offer-contents .cf-field {
  width: 100%;
  padding: 0.75rem;
  margin-top: 0.5rem;
  background: #f9f9f9;
  border: 1px solid #ccc;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.offer-contents .wpcf7-form input[type=checkbox],
.offer-contents .wpcf7-form input[type=radio] {
  display: inline-block;
  -moz-appearance: auto;
       appearance: auto;
  -webkit-appearance: auto;
}
.offer-contents .wpcf7-form-control.wpcf7-checkbox label {
  display: flex;
  align-items: center;
  gap: 0.40625rem;
}
.offer-contents .optional-badge {
  display: inline-block;
  background: #f0f0f0;
  font-size: 0.75rem;
  padding: 0.125rem 0.375rem;
  border-radius: 4px;
  border: 1px solid #ccc;
  background-repeat: 0.25rem;
}
.offer-contents .wpcf7-list-item label {
  display: block;
}
.offer-contents .cf-policy-note a {
  color: #17499C;
  text-decoration: underline;
}
.offer-contents input[type=submit] {
  width: 100%;
  background: #17499C;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  border: 1px solid #17499C;
  border-radius: 6px;
  cursor: pointer;
  display: inline-block;
  margin-top: 1rem;
  transition: all 0.3s;
}
@media screen and (min-width: 768px) {
  .offer-contents input[type=submit] {
    width: initial;
    padding: 0.8rem 2rem;
  }
}
.offer-contents input[type=submit]:hover {
  color: #17499C;
  background: #fff;
  opacity: 1;
}
.offer-contents .wpcf7-form-control.wpcf7-radio {
  display: flex;
  flex-direction: column;
}

.fixed-page-contents {
  padding-top: 4.25rem;
  padding-bottom: 3.125rem;
  max-width: 43.125rem;
  width: 90%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .fixed-page-contents {
    padding-top: 6.75rem;
    padding-bottom: 3.125rem;
    width: 100%;
  }
}
.fixed-page-contents h2 {
  font-size: 1.4375rem;
  font-weight: 700;
  padding-bottom: 0.3125rem;
  border-bottom: 2px solid #E82728;
  margin: 1.875rem 0;
}
.fixed-page-contents h3 {
  font-size: 1.25rem;
  font-weight: 600;
  padding-left: 0.625rem;
  border-left: 10px solid #E82728;
  margin-bottom: 1.25rem;
}
.fixed-page-contents h4 {
  font-size: 1.125rem;
  line-height: 1.7;
  letter-spacing: 1px;
  color: #E82728;
  border-bottom: none;
  margin-bottom: 0.5625rem;
}
.fixed-page-contents p {
  margin-bottom: 1.1875rem;
}

.single-page-contents {
  padding-top: 4.25rem;
  padding-bottom: 3.125rem;
  max-width: 43.125rem;
  width: 90%;
  margin: 0 auto;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 768px) {
  .single-page-contents {
    padding-top: 6.75rem;
    padding-bottom: 3.125rem;
    width: 100%;
  }
}

.single-page-contents .single-page-image {
  margin-bottom: 20px !important; /* 下の文字との余白 */
  width: 100% !important;
  height: auto !important;       /* 固定の高さを解除 */
  display: block !important;
}

.single-page-contents .single-page-image img {
  width: 100% !important;
  height: auto !important;       /* 画像自体の高さも自動に */
  display: block !important;
  object-fit: contain !important; /* 全体を見せるならcontain、切り抜くならcover */
}

/* PC（横幅768px以上）で高さを出したい場合のみ指定 */
@media screen and (min-width: 768px) {
  .single-page-contents .single-page-image {
    height: auto !important;
  }
}
/* h1: 記事内の大見出し（リード文や特別な強調） */
.single-page-contents h1 {
  font-size: 1.3rem;
  font-weight: 700;
  padding: 1.5rem;
  margin-bottom: 2rem;
  border: 2px solid #444;
  background-color: #fdfdfd;
  border-radius: 4px;
}

/* h2: メイントピック（一番強いアクセント） */
.single-page-contents h2:not(.contactus_ttl) {
  font-size: 1.45rem;
  font-weight: 700;
  margin-top: 3.5rem;   /* 上のセクションとの余白をしっかり取る */
  margin-bottom: 2rem;
  padding: 0.8rem 1rem;
  border-left: 8px solid #E82728;
  border-bottom: 1px solid #E82728;
  background: #fff;
}

/* h3: サブトピック（背景色を敷いて「塊」として認識させる） */
.single-page-contents h3 {
  font-size: 1.25rem;
  font-weight: 700;
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  padding: 0.8rem 1rem;
  background-color: #f9f9f9; /* 薄いグレーで背景を強調 */
  border-left: 5px solid #E82728;
  border-radius: 0 4px 4px 0;
}

/* h4: 小見出し（シンプルだが本文とは明確に区別） */
.single-page-contents h4 {
  font-size: 1.1rem;
  font-weight: 700;
  margin-top: 2rem;
  margin-bottom: 1.2rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #eee; /* 控えめな線 */
  position: relative;
}

/* h4の文頭に小さなアクセント */
.single-page-contents h4::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 50px;
  height: 2px;
  background-color: #E82728; /* 赤い線を一部だけ重ねる */
}

.single-page-contents p {
  font-size: 17px;             /* 少し大きく */
   line-height: 1.9;            /* 行間をゆったりと（重要） */
   letter-spacing: 0.05em;      /* 文字の間隔をわずかに広げる */
   margin-bottom: 2.2em;        /* 段落下の余白を大幅に増やす */
   color: #333333;              /* 文字色を少し濃くしてはっきりさせる */
}
.single-page-contents ul {
  margin-left: 1.25rem;
  margin-bottom: 0.625rem;
}
.single-page-contents li {
  list-style-type: disc;
}
.single-page-contents .markers_yel {
  background: linear-gradient(transparent 50%, #fff9b1 50%) !important; /* 色の開始位置を50%にして少し太めに */
  color: inherit !important;
  padding: 0 2px !important;
}

/* --- テーブル全体の基本構造 --- */
.single-page-contents table {
  width: 100%;
  max-width: 100%;
  margin: 0 auto 1.5rem;
  border-collapse: collapse;
  border: 1px solid #e5e7eb;
  font-size: 0.95rem;
  color: #333;
  /* スマホ：横スクロールを可能にする */
  display: block;
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

@media screen and (min-width: 768px) {
  .single-page-contents table {
    display: table; /* PC：通常のテーブル表示 */
    overflow: visible;
    min-width: 0;
    table-layout: auto;
  }
}

/* --- セル（th/td）の共通設定 --- */
.single-page-contents table th,
.single-page-contents table td {
  padding: 0.8rem 1rem;
  border-bottom: 1px solid #e5e7eb;
  border-right: 1px solid #e5e7eb; /* 境界線をはっきりさせて見やすく */
  vertical-align: middle;
  text-align: left;
}

/* 右端の境界線を消す（デザインの微調整） */
.single-page-contents table th:last-child,
.single-page-contents table td:last-child {
  border-right: none;
}

/* 最後の行の線も整理 */
.single-page-contents table tr:last-child td {
  border-bottom: none;
}

@media screen and (min-width: 768px) {
  .single-page-contents table th,
  .single-page-contents table td {
    white-space: normal; /* PCでは適宜改行 */
  }
}

/* --- デザイン・装飾の個別設定 --- */

/* ヘッダー（見出し行） */
.single-page-contents table th {
  background: #f1f5f9; /* 清潔感のある薄いグレーブルー */
  font-weight: 600;
  color: #1e293b;
}

/* 1列目（費用項目など）の強調 */
.single-page-contents table td:first-child {
  font-weight: 600;
  color: #222;
  background: #fafbfc; /* ほんの少し背景に色をつけて項目感を見せる */
}

/* 最後の列（金額や内容） */
.single-page-contents table td:last-child {
  color: #444; /* 薄すぎた#555を少し濃くして視認性向上 */
}

/* デザインのアクセント：1行おきに非常に薄い色をつける */
.single-page-contents table tbody tr:nth-child(even) {
  background-color: #fdfdfd;
}

/* テキストサイズ調整のバグ防止（維持） */
.single-page-contents table,
.single-page-contents table th,
.single-page-contents table td {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.u-desktop {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-desktop {
    display: block;
  }
}

@media screen and (min-width: 768px) {
  .u-mobile {
    display: none;
  }
}

/* 関連投稿のH3タイトルのスタイル調整 */
.yarpp-related h3,
.yarpp h3 {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin-bottom: 20px !important;
    padding-bottom: 10px !important;
    border-bottom: 3px solid #e74c3c !important;  /* 赤いアンダーライン */
    border-left: none !important;
    position: relative !important;
}

/* YARPP関連投稿の改善 */
.yarpp-thumbnails-horizontal {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 40px !important;
}

.yarpp-thumbnails-horizontal li {
    flex: 0 0 calc(33.333% - 14px);
    list-style: none;
    margin-bottom: 30px !important;
}

/* アイキャッチ画像の見切れを防ぐ & グレー線を削除 */
.yarpp-thumbnail {
    width: 100%;
    height: 250px !important;
    object-fit: cover;
    display: block;
    margin-bottom: 20px !important;
    border: none !important;  /* 枠線を削除 */
    box-shadow: none !important; /* 影（シャドウ）による線の可能性も考慮して追加 */
}

/* タイトルを全部表示 - 行数制限を完全に解除 */
.yarpp-thumbnail-title {
    font-size: 14px !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
    word-wrap: break-word;
    display: block !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: unset !important;
}

/* リンク要素全体のレイアウト調整 */
.yarpp-thumbnails-horizontal li a {
    display: block !important;
    text-decoration: none !important; /* リンクの線を消す場合 */
}

/* スマホ対応 */
@media (max-width: 768px) {
    .yarpp-thumbnails-horizontal li {
        flex: 0 0 100%;
    }

    .yarpp-thumbnail {
        height: 200px !important;
    }
}

/* ========================================
   記事ページ 2カラムレイアウト（サイドバー追加）
   ======================================== */

/* PCのみ2カラム表示 */
@media screen and (min-width: 768px) {
  .single-page-contents {
    max-width: 1000px;
    display: flex;
    gap: 40px;
    align-items: flex-start;
    padding-left: 20px;
    padding-right: 20px;
  }
  
  .single-page-contents article {
    flex: 1;
    max-width: 43.125rem;
    min-width: 0;
  }
  
  .single-page-contents .sidebar {
    width: 320px;
    flex-shrink: 0;
    position: sticky;
    top: 120px;
  }
}

/* ウィジェット共通スタイル */
.sidebar .widget {
  margin-bottom: 30px;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.sidebar .widget-title {
  font-size: 1.125rem;
  font-weight: bold;
  margin: 0;
  padding: 15px 20px;
  background: #E82728;
  color: #fff;
  border-radius: 8px 8px 0 0;
}

/* タグクラウドウィジェット */
.sidebar .widget_tag_cloud {
  padding: 0;
}

.sidebar .tagcloud {
  padding: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sidebar .tagcloud a {
  display: inline-block;
  padding: 6px 14px;
  background: #f0f0f0;
  color: #333;
  text-decoration: none;
  border-radius: 20px;
  font-size: 13px !important;
  transition: all 0.3s;
  border: 1px solid #e0e0e0;
}

.sidebar .tagcloud a:hover {
  background: #E82728;
  color: #fff;
  border-color: #E82728;
  transform: translateY(-2px);
}

/* 最新記事ウィジェット（アイキャッチ画像付き） */
.sidebar .widget_recent_entries {
  padding: 0;
}

.sidebar .widget_recent_entries ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar .widget_recent_entries ul li {
  border-bottom: 1px solid #f0f0f0;
  padding: 0;
  margin: 0;
}

.sidebar .widget_recent_entries ul li:last-child {
  border-bottom: none;
}

.sidebar .widget_recent_entries ul li a {
  display: flex;
  gap: 12px;
  padding: 15px 20px;
  text-decoration: none;
  color: #333;
  transition: background 0.3s;
  align-items: flex-start;
}

.sidebar .widget_recent_entries ul li a:hover {
  background: #fff5f5;
}

/* アイキャッチ画像用（カスタマイズが必要） */
.sidebar .widget_recent_entries .post-thumbnail {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  border-radius: 4px;
  overflow: hidden;
  background: #f0f0f0;
  border: 2px solid #E82728;
}

.sidebar .widget_recent_entries .post-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sidebar .widget_recent_entries .post-title {
  flex: 1;
  font-size: 0.9rem;
  line-height: 1.5;
  font-weight: 500;
}

/* カテゴリーウィジェット */
.sidebar .widget_categories ul {
  list-style: none;
  padding: 20px;
  margin: 0;
}

.sidebar .widget_categories ul li {
  padding: 10px 0;
  border-bottom: 1px solid #f0f0f0;
}

.sidebar .widget_categories ul li:last-child {
  border-bottom: none;
}

.sidebar .widget_categories ul li a {
  text-decoration: none;
  color: #333;
  font-size: 0.9375rem;
  transition: color 0.3s;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sidebar .widget_categories ul li a:hover {
  color: #E82728;
}

/* アーカイブウィジェット */
.sidebar .widget_archive ul {
  list-style: none;
  padding: 20px;
  margin: 0;
}

.sidebar .widget_archive ul li {
  padding: 10px 0;
  border-bottom: 1px solid #f0f0f0;
}

.sidebar .widget_archive ul li:last-child {
  border-bottom: none;
}

.sidebar .widget_archive ul li a {
  text-decoration: none;
  color: #333;
  font-size: 0.9375rem;
  transition: color 0.3s;
}

.sidebar .widget_archive ul li a:hover {
  color: #E82728;
}

/* スマホ表示 */
@media screen and (max-width: 767px) {
  .sidebar .widget {
    margin-bottom: 20px;
  }
  
  .sidebar .widget-title {
    font-size: 1rem;
    padding: 12px 15px;
  }
}

/* プロフィール枠内のコンテンツ全体を右にずらす */
#text-3 .textwidget {
    font-size: 14px !important; /* 文字サイズを14pxに固定 */
    padding-left: 20px; /* 左側の余白。お好みに合わせて数値を調整してください */
    padding-right: 10px; /* 右側の余白（バランス用） */
}

/* コラム一覧ページ */
.column-archive-page {
    background: #fff;
    padding: 7.5rem 0 5rem; 
}

.column-archive-page .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.column-archive-page .breadcrumb {
    font-size: 14px;
    color: #666;
    padding-top: 1.25rem;
    margin-bottom: 30px;
}

.column-archive-page .breadcrumb a {
    color: #0066cc;
    text-decoration: none;
}

.column-archive-page .breadcrumb a:hover {
    text-decoration: underline;
}

.archive-title {
    font-size: 32px;
    font-weight: 700;
    color: #E82728;
    margin-bottom: 15px;
    line-height: 1.5;
    text-align: center;
    padding-bottom: 20px;
}

.posts-count {
    font-size: 14px;
    color: #666;
    margin-top: 20px;
    margin-bottom: 40px;
    text-align: center;
}

/* 2カラムレイアウト */
.two-column-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.posts-list {
    flex: 1;
    min-width: 0;
}

.sidebar {
    width: 300px;
    flex-shrink: 0;
}

.post-item {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 40px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: transform 0.3s, box-shadow 0.3s;
}

.post-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

.post-link {
    display: flex;
    text-decoration: none;
    color: inherit;
}

.post-thumbnail {
    width: 300px;
    height: 226px;
    flex-shrink: 0;
    overflow: hidden;
    background: #f5f5f5;
}

.post-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.post-item:hover .post-thumbnail img {
    transform: scale(1.05);
}

.post-content {
    flex: 1;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.post-title {
    font-size: 20px;
    font-weight: bold;
    color: #333;
    line-height: 1.6;
    margin-bottom: 15px;
}

.post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 15px;
}

.tag {
    display: inline-block;
    padding: 4px 12px;
    background: #f0f0f0;
    border-radius: 4px;
    font-size: 13px;
    color: #666;
}

.post-date {
    font-size: 14px;
    color: #999;
}

/* サイドバー */
.sidebar-widget {
    background: #fff;
    border-radius: 8px;
    margin-bottom: 30px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.widget-title {
    font-size: 18px;
    font-weight: bold;
    color: #fff;
    background: #E82728;
    margin: 0;
    padding: 15px 25px;
}

.widget-content {
    padding: 25px;
}

/* 検索フォーム */
.search-form {
    position: relative;
    display: flex;
}

.search-field {
    width: 100%;
    padding: 12px 50px 12px 10px !important;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    background-image: none !important;
    margin-top: 0 !important;
}

.search-field:focus {
    outline: none;
    border-color: #0066cc;
}

.search-submit {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 50px;
    padding: 0;
    background: transparent;
    color: #666;
    border: none;
    cursor: pointer;
    transition: color 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.search-submit:hover {
    color: #0066cc;
}

.search-submit svg {
    width: 20px;
    height: 20px;
}

/* タグクラウド */
.tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tag-item {
    display: inline-block;
    padding: 6px 14px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 20px;
    font-size: 13px;
    color: #666;
    text-decoration: none;
    transition: all 0.3s;
}

.tag-item:hover {
    background: #0066cc;
    color: #fff;
    border-color: #0066cc;
}

/* ページネーション */
.pagination {
    margin-top: 60px;
    text-align: center;
}

.pagination ul {
    display: inline-flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 8px;
}

.pagination li {
    list-style: none;
}

.pagination a,
.pagination .current {
    display: block;
    padding: 8px 16px;
    border: 1px solid #ddd;
    border-radius: 4px;
    text-decoration: none;
    color: #333;
    transition: all 0.3s;
}

.pagination a:hover {
    background: #0066cc;
    color: #fff;
    border-color: #0066cc;
}

.pagination .current {
    background: #0066cc;
    color: #fff;
    border-color: #0066cc;
}

.no-posts {
    text-align: center;
    padding: 60px 20px;
    font-size: 16px;
    color: #666;
}

/* レスポンシブ対応 */
@media (max-width: 968px) {
    .two-column-layout {
        flex-direction: column;
    }
    
    .sidebar {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .column-archive-page {
        padding: 100px 20px 40px;
    }
    
    .post-link {
        flex-direction: column;
    }
    
    .post-thumbnail {
        width: 100%;
        height: 200px;
    }
    
    .post-content {
        padding: 20px;
    }
    
    .post-title {
        font-size: 18px;
    }
    
    .archive-title {
        font-size: 24px;
    }
}

/* -------------------------------------------
   ページネーションの文字位置・幅の修正
------------------------------------------- */

/* 1. 全てのボタン（数字・次へ・前へ）をど真ん中に配置 */
.pagination a,
.pagination .current,
.page-numbers {
    display: flex !important;           /* Flexbox化 */
    justify-content: center !important; /* 水平方向のど真ん中 */
    align-items: center !important;     /* 垂直方向のど真ん中 */
    text-align: center !important;      /* 文字自体のセンタリング */
    margin: 0 auto;                     /* 念のためのマージンリセット */
}

/* 2. 「次へ」「前へ」ボタンの文字はみ出し防止 */
.pagination .next,
.pagination .prev,
.page-numbers.next,
.page-numbers.prev {
    width: auto !important;       /* 幅を文字数に合わせて自動伸縮 */
    min-width: 4.25rem;           /* 数字ボタンより小さくならないように */
    padding: 8px 20px !important; /* 左右の余白 */
    white-space: nowrap;          /* 文字の折り返し禁止 */
}

/* =========================================
   スマホ用検索フォームの表示設定
   ========================================= */

/* デフォルト（PC）では非表示にしておく */
.mobile-search-area {
    display: none;
}

/* スマホ・タブレット表示時（968px以下）の設定 */
@media (max-width: 968px) {
    
    /* 1. スマホ用検索フォームを表示する */
    .mobile-search-area {
        display: block;
        margin-bottom: 30px; /* 記事一覧との余白 */
        width: 100%;
    }

    /* 2. サイドバー内の検索フォームを非表示にする（重複防止） */
    /* ※サイドバーの検索ウィジェット全体を消したい場合は .sidebar-widget:first-child などで調整 */
.sidebar .sidebar-widget:has(.search-form) {
        display: none;
    }
}

/* -------------------------------------------
   記事詳細ページ用パンくずリスト（コラム一覧と統一）
------------------------------------------- */

.single-breadcrumb-custom {
    font-size: 14px;
    color: #666 !important;
    padding-top: 1.25rem;
    margin-bottom: 30px;
}

/* リンクのデザイン */
.single-breadcrumb-custom a {
    color: #0066cc !important;
    text-decoration: none;
}

/* ホバー時のデザイン */
.single-breadcrumb-custom a:hover {
    text-decoration: underline;
}

/* スマホでの調整 */
@media (max-width: 768px) {
    .single-breadcrumb-custom {
        margin-bottom: 20px; /* スマホでは少し詰め気味に */
    }
}

/* --- markタグを .markers_yel と同じデザインに統一 --- */
.single-page-contents mark {
  background: linear-gradient(transparent 50%, #fff9b1 50%) !important; /* 色の開始位置を50%にして少し太めに */
  color: inherit !important;
  padding: 0 2px !important;
}

/* 目次コンテナ全体の調整 */
#ez-toc-container {
    background: #fdfdfd !important; /* 真っ白より少しだけグレーを混ぜて清潔感を出す */
    border: none !important;
    border-top: 4px double #eee !important;    /* 他社サイト風の上下二重線 */
    border-bottom: 4px double #eee !important; /* 他社サイト風の上下二重線 */
    box-shadow: none !important;                /* 古臭い影を消す */
    width: 100% !important;                     /* 横幅を広げてゆとりを持たせる */
    max-width: 600px;
    margin: 3rem auto !important;               /* 上下の余白をしっかり取る */
    padding: 2.5rem 1.5rem !important;
    border-radius: 0 !important;
}

/* 目次のタイトル（目次）の調整 */
#ez-toc-container .ez-toc-title-container {
    text-align: center !important;              /* 中央寄せで対称性を出す */
    margin-bottom: 2rem !important;
}

#ez-toc-container .ez-toc-title {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    color: #333 !important;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

/* タイトルの横にアイコンを表示（擬似要素） */
#ez-toc-container .ez-toc-title::before {
    content: "LIST"; /* またはアイコンフォントのコード */
    font-size: 0.7rem;
    font-weight: 400;
    color: #999;
    border: 1px solid #ccc;
    padding: 2px 6px;
    border-radius: 3px;
    margin-right: 5px;
}

/* リスト全体の調整 */
#ez-toc-container ul.ez-toc-list {
    list-style: none !important;
    padding-left: 0 !important;
}

/* 各項目のスタイル */
#ez-toc-container ul.ez-toc-list li {
    margin-bottom: 0.8rem !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
}

/* リンクテキストの調整 */
#ez-toc-container ul.ez-toc-list li a {
    color: #444 !important;
    text-decoration: none !important;
    transition: 0.3s;
    display: inline-block;
}

/* ホバー時にブランドカラーの赤を少しだけ見せる */
#ez-toc-container ul.ez-toc-list li a:hover {
    color: #E82728 !important; 
    opacity: 0.8;
}

/* 子要素（h3やh4など）のインデントと装飾 */
#ez-toc-container ul.ez-toc-list ul {
    margin-top: 0.5rem !important;
    padding-left: 1.2rem !important;
    border-left: 1px solid #eee; /* 階層を縦線で表現 */
}

#ez-toc-container ul.ez-toc-list ul li {
    font-size: 0.9rem !important;
    color: #666 !important;
}

/* 著者ウィジェット専用スタイル */
.custom-author-sidebar {
    padding: 20px; /* ウィジェット内の余白 */
}

.custom-author-sidebar .author-image-box {
    margin-bottom: 15px;
}

.custom-author-sidebar .author-image-box img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px; /* 必要に応じて調整 */
}

.custom-author-sidebar .author-name {
    display: block;
    font-size: 1rem;
    margin-bottom: 10px;
    color: #333;
}

.custom-author-sidebar .author-desc {
    font-size: 0.875rem;
    line-height: 1.6;
    color: #555;
}

.custom-author-sidebar .author-desc p {
    margin-bottom: 1em;
}

.custom-author-sidebar .author-desc p:last-child {
    margin-bottom: 0;
}

.tablepress{--text-color:#111;--head-text-color:var(--text-color);--head-bg-color:#d9edf7;--odd-text-color:var(--text-color);--odd-bg-color:#fff;--even-text-color:var(--text-color);--even-bg-color:#f9f9f9;--hover-text-color:var(--text-color);--hover-bg-color:#f3f3f3;--border-color:#ddd;--padding:0.5rem;border:none;border-collapse:collapse;border-spacing:0;clear:both;margin:0 auto 1rem;table-layout:auto;width:100%}.tablepress>:not(caption)>*>*{background:none;border:none;box-sizing:border-box;float:none!important;padding:var(--padding);text-align:left;vertical-align:top}.tablepress>:where(thead)+tbody>:where(:not(.child))>*,.tablepress>tbody>*~:where(:not(.child))>*,.tablepress>tfoot>:where(:first-child)>*{border-top:1px solid var(--border-color)}.tablepress>:where(thead,tfoot)>tr>*{background-color:var(--head-bg-color);color:var(--head-text-color);font-weight:700;vertical-align:middle;word-break:normal}.tablepress>:where(tbody)>tr>*{color:var(--text-color)}.tablepress>:where(tbody.row-striping)>:nth-child(odd of :where(:not(.child,.dtrg-group)))+:where(.child)>*,.tablepress>:where(tbody.row-striping)>:nth-child(odd of :where(:not(.child,.dtrg-group)))>*{background-color:var(--odd-bg-color);color:var(--odd-text-color)}.tablepress>:where(tbody.row-striping)>:nth-child(even of :where(:not(.child,.dtrg-group)))+:where(.child)>*,.tablepress>:where(tbody.row-striping)>:nth-child(even of :where(:not(.child,.dtrg-group)))>*{background-color:var(--even-bg-color);color:var(--even-text-color)}.tablepress>.row-hover>tr:has(+.child:hover)>*,.tablepress>.row-hover>tr:hover+:where(.child)>*,.tablepress>.row-hover>tr:where(:not(.dtrg-group)):hover>*{background-color:var(--hover-bg-color);color:var(--hover-text-color)}.tablepress img{border:none;margin:0;max-width:none;padding:0}.tablepress-table-description{clear:both;display:block}.dt-scroll{width:100%}.dt-scroll .tablepress{width:100%!important}div.dt-scroll-body tfoot tr,div.dt-scroll-body thead tr{height:0}div.dt-scroll-body tfoot tr td,div.dt-scroll-body tfoot tr th,div.dt-scroll-body thead tr td,div.dt-scroll-body thead tr th{border-bottom-width:0!important;border-top-width:0!important;height:0!important;padding-bottom:0!important;padding-top:0!important}div.dt-scroll-body tfoot tr td div.dt-scroll-sizing,div.dt-scroll-body tfoot tr th div.dt-scroll-sizing,div.dt-scroll-body thead tr td div.dt-scroll-sizing,div.dt-scroll-body thead tr th div.dt-scroll-sizing{height:0!important;overflow:hidden!important}div.dt-scroll-body>table.dataTable>thead>tr>td,div.dt-scroll-body>table.dataTable>thead>tr>th{overflow:hidden}.tablepress{--head-active-bg-color:#049cdb;--head-active-text-color:var(--head-text-color);--head-sort-arrow-color:var(--head-active-text-color)}.tablepress thead th:active{outline:none}.tablepress thead .dt-orderable-asc .dt-column-order:before,.tablepress thead .dt-ordering-asc .dt-column-order:before{bottom:50%;content:"\25b2"/"";display:block;position:absolute}.tablepress thead .dt-orderable-desc .dt-column-order:after,.tablepress thead .dt-ordering-desc .dt-column-order:after{content:"\25bc"/"";display:block;position:absolute;top:50%}.tablepress thead .dt-orderable-asc,.tablepress thead .dt-orderable-desc,.tablepress thead .dt-ordering-asc,.tablepress thead .dt-ordering-desc{padding-right:24px;position:relative}.tablepress thead .dt-orderable-asc .dt-column-order,.tablepress thead .dt-orderable-desc .dt-column-order,.tablepress thead .dt-ordering-asc .dt-column-order,.tablepress thead .dt-ordering-desc .dt-column-order{bottom:0;color:var(--head-sort-arrow-color);position:absolute;right:6px;top:0;width:12px}.tablepress thead .dt-orderable-asc .dt-column-order:after,.tablepress thead .dt-orderable-asc .dt-column-order:before,.tablepress thead .dt-orderable-desc .dt-column-order:after,.tablepress thead .dt-orderable-desc .dt-column-order:before,.tablepress thead .dt-ordering-asc .dt-column-order:after,.tablepress thead .dt-ordering-asc .dt-column-order:before,.tablepress thead .dt-ordering-desc .dt-column-order:after,.tablepress thead .dt-ordering-desc .dt-column-order:before{font-family:sans-serif!important;font-size:12px;line-height:12px;opacity:.2}.tablepress thead .dt-orderable-asc,.tablepress thead .dt-orderable-desc{cursor:pointer;outline-offset:-2px}.tablepress thead .dt-orderable-asc:hover,.tablepress thead .dt-orderable-desc:hover,.tablepress thead .dt-ordering-asc,.tablepress thead .dt-ordering-desc{background-color:var(--head-active-bg-color);color:var(--head-active-text-color)}.tablepress thead .dt-ordering-asc .dt-column-order:before,.tablepress thead .dt-ordering-desc .dt-column-order:after{opacity:.8}.tablepress:where(.auto-type-alignment) .dt-right,.tablepress:where(.auto-type-alignment) .dt-type-date,.tablepress:where(.auto-type-alignment) .dt-type-numeric{text-align:right}.dt-container{clear:both;margin-bottom:1rem;position:relative}.dt-container .tablepress{margin-bottom:0}.dt-container .tablepress tfoot:empty{display:none}.dt-container .dt-layout-row{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.dt-container .dt-layout-row.dt-layout-table .dt-layout-cell{display:block;width:100%}.dt-container .dt-layout-cell{display:flex;flex-direction:row;flex-wrap:wrap;gap:1em;padding:5px 0}.dt-container .dt-layout-cell.dt-layout-full{align-items:center;justify-content:space-between;width:100%}.dt-container .dt-layout-cell.dt-layout-full>:only-child{margin:auto}.dt-container .dt-layout-cell.dt-layout-start{align-items:center;justify-content:flex-start;margin-right:auto}.dt-container .dt-layout-cell.dt-layout-end{align-items:center;justify-content:flex-end;margin-left:auto}.dt-container .dt-layout-cell:empty{display:none}.dt-container .dt-input,.dt-container label{display:inline;width:auto}.dt-container .dt-input{font-size:inherit;padding:5px}.dt-container .dt-length,.dt-container .dt-search{align-items:center;display:flex;flex-wrap:wrap;gap:5px;justify-content:center}.dt-container .dt-paging .dt-paging-button{background:#0000;border:1px solid #0000;border-radius:2px;box-sizing:border-box;color:inherit!important;cursor:pointer;display:inline-block;font-size:1em;height:32px;margin-left:2px;min-width:32px;padding:0 5px;text-align:center;text-decoration:none!important;vertical-align:middle}.dt-container .dt-paging .dt-paging-button.current,.dt-container .dt-paging .dt-paging-button:hover{border:1px solid #111}.dt-container .dt-paging .dt-paging-button.disabled,.dt-container .dt-paging .dt-paging-button.disabled:active,.dt-container .dt-paging .dt-paging-button.disabled:hover{border:1px solid #0000;color:#0000004d!important;cursor:default;outline:none}.dt-container .dt-paging>.dt-paging-button:first-child{margin-left:0}.dt-container .dt-paging .ellipsis{padding:0 1em}@media screen and (max-width:767px){.dt-container .dt-layout-row{flex-direction:column}.dt-container .dt-layout-cell{flex-direction:column;padding:.5em 0}}
#tablepress-○ .row-2 .column-1,#tablepress-○ .row-3 .column-1,#tablepress-○ .row-4 .column-1,#tablepress-○ .row-5 .column-1,{background:#eaf4fc}
.yarpp-thumbnail-default,.yarpp-thumbnail-title,.yarpp-thumbnails-horizontal .yarpp-thumbnail{display:inline-block}.yarpp-thumbnails-horizontal .yarpp-thumbnail{border:1px solid hsla(0,0%,50%,.1);vertical-align:top}.yarpp-thumbnails-horizontal .yarpp-thumbnail-default,.yarpp-thumbnails-horizontal .yarpp-thumbnail>img{display:block}.yarpp-thumbnails-horizontal .yarpp-thumbnail-title{font-size:1em;line-height:1.4em;max-height:2.8em;overflow:hidden;text-decoration:inherit}.yarpp-thumbnail-default{overflow:hidden}
.yarpp-thumbnails-horizontal .yarpp-thumbnail{width:160px;height:200px;margin:5px;margin-left:0}.yarpp-thumbnail>img,.yarpp-thumbnail-default{width:150px;height:150px;margin:5px}.yarpp-thumbnails-horizontal .yarpp-thumbnail-title{margin:7px;margin-top:0;width:150px}.yarpp-thumbnail-default>img{min-height:150px;min-width:150px}
.rll-youtube-player{position:relative;padding-bottom:56.23%;height:0;overflow:hidden;max-width:100%}.rll-youtube-player:focus-within{outline:2px solid currentColor;outline-offset:5px}.rll-youtube-player iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;background:0 0}.rll-youtube-player img{bottom:0;display:block;left:0;margin:auto;max-width:100%;width:100%;position:absolute;right:0;top:0;border:none;height:auto;-webkit-transition:.4s all;-moz-transition:.4s all;transition:.4s all}.rll-youtube-player img:hover{-webkit-filter:brightness(75%)}.rll-youtube-player .play{height:100%;width:100%;left:0;top:0;position:absolute;background:url() no-repeat center;background-color:transparent !important;cursor:pointer;border:none}
.simplemap img{max-width:none !important;padding:0 !important;margin:0 !important}.staticmap,.staticmap img{max-width:100% !important;height:auto !important}.simplemap .simplemap-content{display:none}
.yarpp-related{margin-bottom:1em;margin-top:1em}.yarpp-related a{font-weight:700;text-decoration:none}.yarpp-related .yarpp-thumbnail-title{font-size:96%;font-weight:700;text-align:left;text-decoration:none}.yarpp-related h3{font-size:125%;font-weight:700;margin:0;padding:0 0 5px;text-transform:capitalize}