/* designed by Value Up HP, Tokyo 2026 */
html, body {height: 100%;}
html {scroll-behavior: smooth;}
body {
	font-size: 1rem;
	line-height: 1.6;
	background: #fff;
	color: #222;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-variation-settings: "wdth" 100;
}

:root, [data-bs-theme=light] {
	--bs-blue: #2c4f7c;
	--bs-indigo: #6610f2;
	--bs-purple: #6f42c1;
	--bs-pink: #d63384;
	--bs-red: #7a2e2e;
	--bs-orange: #fd7e14;
	--bs-yellow: #c2a24d;
	--bs-green: #1f3d2b;
	--bs-teal: #20c997;
	--bs-cyan: #73a1dc;
	--bs-black: #000;
	--bs-white: #fff;
	--bs-gray: #6c757d;
	--bs-gray-dark: #343a40;
	--bs-gray-100: #f8f9fa;
	--bs-gray-200: #e9ecef;
	--bs-gray-300: #dee2e6;
	--bs-gray-400: #ced4da;
	--bs-gray-500: #adb5bd;
	--bs-gray-600: #6c757d;
	--bs-gray-700: #495057;
	--bs-gray-800: #343a40;
	--bs-gray-900: #212529;
	--bs-primary: #2c4f7c;
	--bs-secondary: #6c757d;
	--bs-success: #1f3d2b;
	--bs-info: #73a1dc;
	--bs-warning: #c2a24d;
	--bs-danger: #7a2e2e;
	--bs-light: #f8f9fa;
	--bs-dark: #212529;
	--bs-primary-rgb: 44,79,124;
	--bs-secondary-rgb: 108,117,125;
	--bs-success-rgb: 25,135,84;
	--bs-info-rgb: 13,202,240;
	--bs-warning-rgb: 255,193,7;
	--bs-danger-rgb: 220,53,69;
	--bs-light-rgb: 248,249,250;
	--bs-dark-rgb: 33,37,41;
	--bs-primary-text-emphasis: #052c65;
	--bs-secondary-text-emphasis: #2b2f32;
	--bs-success-text-emphasis: #0a3622;
	--bs-info-text-emphasis: #055160;
	--bs-warning-text-emphasis: #664d03;
	--bs-danger-text-emphasis: #58151c;
	--bs-light-text-emphasis: #495057;
	--bs-dark-text-emphasis: #495057;
	--bs-primary-bg-subtle: #cfe2ff;
	--bs-secondary-bg-subtle: #e2e3e5;
	--bs-success-bg-subtle: #d1e7dd;
	--bs-info-bg-subtle: #cff4fc;
	--bs-warning-bg-subtle: #fff3cd;
	--bs-danger-bg-subtle: #f8d7da;
	--bs-light-bg-subtle: #fcfcfd;
	--bs-dark-bg-subtle: #ced4da;
	--bs-primary-border-subtle: #9ec5fe;
	--bs-secondary-border-subtle: #c4c8cb;
	--bs-success-border-subtle: #a3cfbb;
	--bs-info-border-subtle: #9eeaf9;
	--bs-warning-border-subtle: #ffe69c;
	--bs-danger-border-subtle: #f1aeb5;
	--bs-light-border-subtle: #e9ecef;
	--bs-dark-border-subtle: #adb5bd;
	--bs-white-rgb: 255,255,255;
	--bs-black-rgb: 0,0,0;
	--bs-font-sans-serif: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
	--bs-font-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
	--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
	--bs-body-font-family: var(--bs-font-sans-serif);
	--bs-body-font-size: 1rem;
	--bs-body-font-weight: 400;
	--bs-body-line-height: 1.5;
	--bs-body-color: #212529;
	--bs-body-color-rgb: 33,37,41;
	--bs-body-bg: #fff;
	--bs-body-bg-rgb: 255,255,255;
	--bs-emphasis-color: #000;
	--bs-emphasis-color-rgb: 0,0,0;
	--bs-secondary-color: rgba(33, 37, 41, 0.75);
	--bs-secondary-color-rgb: 33,37,41;
	--bs-secondary-bg: #e9ecef;
	--bs-secondary-bg-rgb: 233,236,239;
	--bs-tertiary-color: rgba(33, 37, 41, 0.5);
	--bs-tertiary-color-rgb: 33,37,41;
	--bs-tertiary-bg: #f8f9fa;
	--bs-tertiary-bg-rgb: 248,249,250;
	--bs-heading-color: inherit;
	--bs-link-color: #2c4f7c;
	--bs-link-color-rgb: 44,79,124;
	--bs-link-decoration: underline;
	--bs-link-hover-color: #0a58ca;
	--bs-link-hover-color-rgb: 10,88,202;
	--bs-code-color: #d63384;
	--bs-highlight-color: #212529;
	--bs-highlight-bg: #fff3cd;
	--bs-border-width: 1px;
	--bs-border-style: solid;
	--bs-border-color: #dee2e6;
	--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
	--bs-border-radius: 0.375rem;
	--bs-border-radius-sm: 0.25rem;
	--bs-border-radius-lg: 0.5rem;
	--bs-border-radius-xl: 1rem;
	--bs-border-radius-xxl: 2rem;
	--bs-border-radius-2xl: var(--bs-border-radius-xxl);
	--bs-border-radius-pill: 50rem;
	--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
	--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
	--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
	--bs-focus-ring-width: 0.25rem;
	--bs-focus-ring-opacity: 0.25;
	--bs-focus-ring-color: rgba(13, 110, 253, 0.25);
	--bs-form-valid-color: #1f3d2b;
	--bs-form-valid-border-color: #1f3d2b;
	--bs-form-invalid-color: #7a2e2e;
	--bs-form-invalid-border-color: #7a2e2e;
}

/* general */
.view-pc, .view-mb, .br-pc, .br-mb {display: none;}
.container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {max-width:1220px;}
ul {list-style-type: square;}
.no-lists {list-style-type: none; padding-left: 0;}
.shadow-block {box-shadow: 10px 10px 0 rgba(0,0,0,0.1);}
.text-shadow {text-shadow: 0 0 5px #000;}
.section-title {
	font-size: 300%;
	font-weight: 700;
	color: navy;
	text-shadow: 4px 4px 0 #fff;
	text-align: center;
	margin-bottom: 0.65em;
}
.heading-top {
	display: block;
	height: 50px;
	background: transparent url('img/heading-img.svg') no-repeat center bottom;
	background-size: contain;
}
.heading-btm {
	display: block;
	margin: 10px auto 0;
	width: 40%;
	height: 1px;
	border-bottom: 1px dotted rgba(0,0,0,0.3);
}
.heading-txt img {height: 44px; width: auto; margin-bottom: 24px;}

/* fonts & texts */
.material-symbols-outlined {
	vertical-align: middle;
	font-variation-settings:
	'FILL' 0,
	'wght' 400,
	'GRAD' 0,
	'opsz' 24
}
.font-serif {font-family: "Noto Serif JP", serif;}
.font-sans {font-family: "Noto Sans JP", sans-serif;}
.fw-700 {font-weight: 700;}

/* color setting */
.text-navy {color: #0b1c2d;}
.text-dark-brown {color: #2b1e18;}
.text-blue {color: #2c4f7c;}
.text-second-blue {color: #73a1dc;}
.text-brown {color: #7a5c3e;}
.text-green {color: #1f3d2b;}
.bg-sky {background-color: rgba(115,161,220,0.15);}
.bg-bronze {background-color: #aa9580;}
.bg-color-beige {background-color: #efe7da;}
.bg-shade-beige {background: linear-gradient(to right,  rgba(239,231,218,0) 0%,rgba(239,231,218,1) 21%,rgba(239,231,218,1) 80%,rgba(239,231,218,1) 100%);}

/* link & button */
a:hover {text-decoration: none;}

/* animation */
.heartbeat {
	-webkit-animation: heartbeat 5s steps(2, end) 5s infinite both;
	animation: heartbeat 5s steps(2, end) 5s infinite both;
}
@-webkit-keyframes heartbeat {
  from {
	-webkit-transform: scale(1);
			transform: scale(1);
	-webkit-transform-origin: center center;
			transform-origin: center center;
	-webkit-animation-timing-function: ease-out;
			animation-timing-function: ease-out;
  }
  10% {
	-webkit-transform: scale(0.91);
			transform: scale(0.91);
	-webkit-animation-timing-function: ease-in;
			animation-timing-function: ease-in;
  }
  17% {
	-webkit-transform: scale(0.98);
			transform: scale(0.98);
	-webkit-animation-timing-function: ease-out;
			animation-timing-function: ease-out;
  }
  33% {
	-webkit-transform: scale(0.87);
			transform: scale(0.87);
	-webkit-animation-timing-function: ease-in;
			animation-timing-function: ease-in;
  }
  45% {
	-webkit-transform: scale(1);
			transform: scale(1);
	-webkit-animation-timing-function: ease-out;
			animation-timing-function: ease-out;
  }
}
@keyframes heartbeat {
  from {
	-webkit-transform: scale(1);
			transform: scale(1);
	-webkit-transform-origin: center center;
			transform-origin: center center;
	-webkit-animation-timing-function: ease-out;
			animation-timing-function: ease-out;
  }
  10% {
	-webkit-transform: scale(0.91);
			transform: scale(0.91);
	-webkit-animation-timing-function: ease-in;
			animation-timing-function: ease-in;
  }
  17% {
	-webkit-transform: scale(0.98);
			transform: scale(0.98);
	-webkit-animation-timing-function: ease-out;
			animation-timing-function: ease-out;
  }
  33% {
	-webkit-transform: scale(0.87);
			transform: scale(0.87);
	-webkit-animation-timing-function: ease-in;
			animation-timing-function: ease-in;
  }
  45% {
	-webkit-transform: scale(1);
			transform: scale(1);
	-webkit-animation-timing-function: ease-out;
			animation-timing-function: ease-out;
  }
}
.blink-1 {
	-webkit-animation: blink-1 5s 3s infinite both;
	animation: blink-1 5s 3s infinite both;
}
@-webkit-keyframes blink-1 {
	0%,
	50%,
	100% {
		opacity: 1;
	}
	25%,
	75% {
		opacity: 0;
	}
}
@keyframes blink-1 {
	0%,
	50%,
	100% {
		opacity: 1;
	}
	25%,
	75% {
		opacity: 0;
	}
}
.pulse-button {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	animation: slowPulse 3s infinite ease-in-out;
	padding-left: 44px;
	padding-right: 44px;
}
@keyframes slowPulse {
  0% {
	transform: scale(1);
	box-shadow: 0 0 0 0 rgba(74, 144, 226, 0.6);
  }
  50% {
	transform: scale(1.05);
	box-shadow: 0 0 20px 8px rgba(74, 144, 226, 0.2);
  }
  100% {
	transform: scale(1);
	box-shadow: 0 0 0 0 rgba(74, 144, 226, 0.6);
  }
}
.pulse-button:hover {
  transform: scale(1.15);
  box-shadow: 0 8px 25px rgba(0,0,0,0.3);
  animation: none; /* Stop pulsing while hovering */
}

/* card */
.card {
	background: linear-gradient(175deg,  rgba(255,255,255,0.8) 0%,rgba(255,255,255,0.3) 60%,rgba(241,218,54,0.3) 100%);
	border-color: rgba(255,255,255,0.7);
	box-shadow: 0 0 4px rgba(0,0,0,0.25);
}

/* preloader */
#preloader {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9999;
	overflow: hidden;
	background: #ffffff;
}
#preloader:before {
	content: "";
	position: fixed;
	top: calc(50% - 0px);
	left: calc(50% - 30px);
	border: 6px solid #ffffff;
	border-top-color: var(--bs-dark);
	border-bottom-color: var(--bs-dark);
	border-radius: 50%;
	width: 60px;
	height: 60px;
	-webkit-animation: animate-preloader 1s linear infinite;
	animation: animate-preloader 1s linear infinite;
}
@keyframes animate-preloader {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

/* back to top */
#backToTopBtn {
	display: none;
	position: fixed;
	bottom: 20px;
	right: 30px;
	z-index: 99;
	outline: none;
	cursor: pointer;
	font-size: 18px;
	transition: opacity 0.3s;
}
#backToTopBtn:hover {}

/* floating banner */
#floatingBanner {
	position: fixed;
	bottom: 90px;
	right: 5px;
	transform: translateX(150%) translateY(120%);
	color: #fff;
	display: flex;
	align-items: right;
	font-size: 14px;
	transition: all 0.4s ease;
	z-index: 9999;
}
#floatingBanner.show {
	transform: translateX(0%) translateY(0);
}
#floatingBanner img {max-width: 180px;}

/* header */
#aceHeader img {height: 44px; width: auto;}
.acehdercalltime {font-size: 70%; font-weight: bold;}

/* hero */
#hero {background: #eee url('img/bg-hero.jpg') no-repeat center center; background-size: cover;}

/* section 1 */
#s1hlight h3 {
	display: inline-block;
	padding: 3px 16px;
	color: #880808;
	background: rgba(255, 255, 0, 0.9);
}

/* section 2 */
#s2hlight h3 {font-size: 450%;}
#s2hlight h3 strong {font-size: 120%; background-color: rgba(255, 255, 0, 0.6);}
.video-section {
	height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
video {
	width: 80%;
	max-width: 640px;
	border-radius: 20px;
}
.ribbon {
	font-size: 80%;
	font-weight: bold;
	text-shadow: none;
	color: yellow;
}
.ribbon {
	--r: .8em;
	padding-inline: calc(var(--r) + .3em);
	line-height: 1.8;
	clip-path: polygon(0 0,100% 0,calc(100% - var(--r)) 50%,100% 100%,0 100%, var(--r) 50%);
	background: navy;
	width: fit-content;
}

/* testimonial */
.bubble {
	position: relative;
	background: linear-gradient(135deg,  rgba(255,223,178,1) 0%,rgba(84,195,247,1) 47%,rgba(84,195,247,1) 100%);
	color: #111;
	border-radius: 10px;
	padding: 16px;
}
.bubble:after {
	content: '';
	position: absolute;
	display: block;
	width: 0;
	z-index: 1;
	border-style: solid;
	border-color: transparent #54c3f7;
	border-width: 20px 0 20px 20px;
	top: 50%;
	right: -20px;
	margin-top: -20px;
}

/* form */
#formBox {position: relative;}
#formBttm {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 99;
	width: 100%;
	height: 120px;
	background: #fff;
}
#formBttmComingSoon {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: rgba(255,255,255,0.75);
	text-align: center;
	color: #666;
	font-size: 150%;
	z-index: 98;
}

/* responsive fixes */
@media screen and (min-width: 641px) {
	.view-pc, .br-pc {display: block;}
}
@media screen and (max-width: 640px) {
	.view-mb, .br-mb {display: block;}
	.container {overflow-x: hidden;}
	#hdrPhone {font-size: 100%;}
	#hdrAbtn a {font-size: 50%; font-weight: bold;}
	#section02 .ribbon {font-size: 50%;}
	#s2hlight h3 {font-size: 250%;}
	.video-section {height: 36vh;}
	.c-avatar img {max-width: 50%; margin-top: 30px;}
	.bubble:after {
		content: '';
		position: absolute;
		display: block;
		width: 0;
		z-index: 1;
		border-style: solid;
		border-color: #54c3f7 transparent;
		border-width: 20px 20px 0;
		top: auto;
		bottom: -20px;
		left: 50%;
		margin-left: -20px;
	}
	#formBttm {height: 90px;}
	#floatingBanner img {max-width: 160px;}
}