/* 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 {
	--bs-primary: #2E398B;
	--bs-primary-rgb: 46, 57, 139;
	--bs-primary-rgba: 46, 57, 139, 1;
	--bs-warning: #F5CB4F;
	--bs-warning-rgb: 244, 203, 79;
	--bs-warning-rgba: 244, 203, 79, 1;
	--bs-danger: #AE3033;
	--bs-danger-rgb: 175, 48, 52;
	--bs-danger-rgba: 175, 48, 52, 1;
}
.btn-primary {
	--bs-btn-bg: #2E398B;
	--bs-btn-border-color: #2E398B;
}
.btn-warning {
	--bs-btn-bg: #F5CB4F;
	--bs-btn-border-color: #F5CB4F;
}
.btn-danger {
	--bs-btn-bg: #AE3033;
	--bs-btn-border-color: #AE3033;
}

/* 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;
}

/* 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;}
	.section-title {font-size: 200%;}
}