/*==================================================
Premier Web
==================================================*/
@charset "UTF-8";

:root{
	--main:#1e40af;
	--sub:#3b82f6;
	--accent:#2563eb;
	--text:#222;
	--gray:#666;
	--light:#f7f9fc;
	--white:#fff;
	--radius:18px;
	--shadow:
		0 10px 30px rgba(0,0,0,.08);
	--transition:.35s;
}

*{
	margin:0;
	padding:0;
	box-sizing:border-box;
}
html{
	scroll-behavior:smooth;
}

body{
	font-family:"Noto Sans JP",sans-serif;
	color:var(--text);
	background:#fff;
	line-height:1.8;
	letter-spacing:.05em;
	-webkit-font-smoothing:antialiased;
}
img{
	width:100%;
	display:block;
}
a{
	color:inherit;
	text-decoration:none;
}
ul{
	list-style:none;
}
.container{
	width:min(1200px,92%);
	margin:auto;
}
section{
	padding:110px 0;
}

/*==================================================
Section Title
==================================================*/
.section-title{
	text-align:center;
	margin-bottom:70px;
}
.section-title span{
	color:var(--main);
	font-size:14px;
	font-weight:bold;
	letter-spacing:3px;
}
.section-title h2{
	font-size:42px;
	margin-top:12px;
	margin-bottom:18px;
	font-weight:700;
}
.section-title p{
	color:var(--gray);
}

/*==================================================
Button
==================================================*/
.btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:
	18px
	42px;
	background:
	linear-gradient(
	135deg,
	var(--main),
	var(--sub));
	color:#fff;
	border-radius:999px;
	font-weight:bold;
	transition:var(--transition);
	position:relative;
	overflow:hidden;
}
.btn::before{
	content:"";
	position:absolute;
	left:-100%;
	top:0;
	width:100%;
	height:100%;
	background:
	rgba(255,255,255,.18);
	transition:.5s;
}
.btn:hover{
	transform:
	translateY(-4px);
	box-shadow:
	0 18px 40px rgba(37,99,235,.35);
}
.btn:hover::before{
	left:100%;
}

/*==================================================
Hero
==================================================*/
.hero{
	padding:
	90px 0 120px;
	position:relative;
	overflow:hidden;
	background:
	linear-gradient(
	180deg,
	#ffffff 0%,
	#f5f9ff 100%);
}
.hero::before{
	content:"";
	position:absolute;
	width:700px;
	height:700px;
	border-radius:50%;
	background:
	rgba(59,130,246,.08);
	right:-250px;
	top:-250px;
	filter:blur(30px);
}
.hero::after{
	content:"";
	position:absolute;
	width:500px;
	height:500px;
	border-radius:50%;
	background:
	rgba(30,64,175,.05);
	left:-180px;
	bottom:-220px;
}
.hero-inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:70px;
	position:relative;
	z-index:2;
}
.hero-text{
	flex:1;
}
.hero-sub{
	display:inline-block;
	color:var(--main);
	font-size:14px;
	font-weight:bold;
	letter-spacing:3px;
	margin-bottom:25px;
}
.hero h1{
	font-size:60px;
	line-height:1.2;
	margin-bottom:30px;
	font-weight:800;
}
.hero p{
	font-size:18px;
	color:var(--gray);
	margin-bottom:45px;
	max-width:560px;
}
.hero-button{
	display:flex;
	gap:20px;
}
.hero-image{
	flex:1;
}
.hero-image img{
	border-radius:26px;
	box-shadow:
	0 35px 80px rgba(0,0,0,.18);
	transition:.6s;
}
.hero-image img:hover{
	transform:
	scale(1.02);
}
.hero-image video,
.hero-image img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

/*==================================================
Service
==================================================*/
.service{
	background:#fff;
}
.service-grid{
	display:grid;
	grid-template-columns:
	repeat(4,1fr);
	gap:30px;
}
.service-card{
	background:#fff;
	padding:45px 35px;
	border-radius:20px;
	box-shadow:var(--shadow);
	transition:.35s;
	position:relative;
	overflow:hidden;
}
.service-card::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:5px;
	background:
	linear-gradient(
	90deg,
	var(--main),
	var(--sub));
}
.service-card:hover{
	transform:
	translateY(-10px);
	box-shadow:
	0 25px 60px rgba(0,0,0,.12);
}
.service-card .icon{
	width:70px;
	height:70px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:30px;
	margin-bottom:25px;
	background:
	linear-gradient(
	135deg,
	#eff6ff,
	#dbeafe);
}
.service-card h3{
	font-size:24px;
	margin-bottom:18px;
}
.service-card p{
	color:var(--gray);
	font-size:15px;
}

/*==================================================
Feature
==================================================*/
.feature{
	background:var(--light);
}
.feature-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:35px;
}
.feature-grid>div{
	background:#fff;
	border-radius:20px;
	padding:40px;
	box-shadow:var(--shadow);
	transition:var(--transition);
}
.feature-grid>div:hover{
	transform:translateY(-8px);
}
.feature-grid h3{
	font-size:24px;
	margin-bottom:18px;
	color:var(--main);
}
.feature-grid p{
	color:var(--gray);
}

/*==================================================
Works
==================================================*/
.works{
	background:#fff;
}
.works-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:35px;
}
.work-card{
	background:#fff;
	border-radius:20px;
	overflow:hidden;
	box-shadow:var(--shadow);
	transition:.4s;
}
.work-card:hover{
	transform:translateY(-10px);
}
.work-image{
	overflow:hidden;
}
.work-image img{
	height:260px;
	object-fit:cover;
	transition:.6s;
}
.work-card:hover img{
	transform:scale(1.08);
}
.work-body{
	padding:30px;
}
.work-body span{
	display:inline-block;
	color:var(--main);
	font-size:13px;
	font-weight:bold;
	margin-bottom:10px;
}
.work-body h3{
	font-size:24px;
	margin-bottom:15px;
}
.work-body p{
	color:var(--gray);
}

/*==================================================
Plan
==================================================*/
.plan{
	background:var(--light);
}
.plan-grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:35px;
	align-items:stretch;
}
.plan-card{
	background:#fff;
	border-radius:22px;
	padding:50px 40px;
	text-align:center;
	box-shadow:var(--shadow);
	position:relative;
	transition:.35s;
	display:flex;
	flex-direction:column;
	height:100%;
}
.plan-card:hover{
	transform:translateY(-10px);
}
.plan-card.popular{
	transform:none;
	border:2px solid var(--main);
}
.plan-card.popular:hover{
	transform:translateY(-10px);
}
.popular-badge{
	position:absolute;
	top:-16px;
	left:50%;
	transform:translateX(-50%);
	background:linear-gradient(135deg,var(--main),var(--sub));
	color:#fff;
	padding:8px 22px;
	border-radius:999px;
	font-size:13px;
	font-weight:bold;
}
.plan-name{
	font-size:26px;
	font-weight:bold;
	margin-bottom:25px;
}
.plan-price{
	font-size:52px;
	color:var(--main);
	font-weight:bold;
	margin-bottom:30px;
	white-space:nowrap;
}
.plan-price small{
	font-size:18px;
	margin-left:4px;
}
.plan-card ul{
	margin-bottom:35px;
}
.plan-card li{
	padding:12px 0;
	border-bottom:1px solid #eee;
}

/*==================================================
Flow
==================================================*/
.flow{
	background:#fff;
}
.flow-grid{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:30px;
	align-items:start;
}
.flow-card{
	background:#fff;
	padding:35px;
	border-radius:20px;
	box-shadow:var(--shadow);
	text-align:center;
	transition:.3s;
}
.flow-card:hover{
	transform:translateY(-8px);
}
.flow-number{
	width:70px;
	height:70px;
	margin:0 auto 25px;
	border-radius:50%;
	background:linear-gradient(135deg,var(--main),var(--sub));
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:24px;
	font-weight:bold;
}
.flow-card h3{
	margin-bottom:18px;
}
.flow-card p{
	color:var(--gray);
}
.flow-arrow{
	display:none;
}

/*==================================================
FAQ
==================================================*/
.faq{
	background:var(--light);
}
.faq-list{
	max-width:900px;
	margin:auto;
}
.faq-item{
	background:#fff;
	margin-bottom:20px;
	border-radius:18px;
	padding:30px;
	box-shadow:var(--shadow);
}
.faq-item h3{
	margin-bottom:15px;
	color:var(--main);
	font-size:20px;
}
.faq-item p{
	color:var(--gray);
}

/*==================================================
Contact
==================================================*/
.contact-area{
	background:linear-gradient(135deg,var(--main),var(--sub));
	color:#fff;
	text-align:center;
	padding:120px 0;
}
.contact-area span{
	display:block;
	letter-spacing:3px;
	font-size:14px;
	margin-bottom:15px;
}
.contact-area h2{
	font-size:42px;
	margin-bottom:25px;
}
.contact-area p{
	max-width:700px;
	margin:0 auto 40px;
	opacity:.95;
}
.contact-area .btn{
	background:#fff;
	color:var(--main);
}

/*==================================================
Responsive
==================================================*/
@media(max-width:991px){
	.hero-inner{
		flex-direction:column;
	}
	.hero h1{
		font-size:46px;
	}
	.service-grid,
	.feature-grid,
	.works-grid,
	.plan-grid{
		grid-template-columns:repeat(2,1fr);
	}
	.flow-grid{
		grid-template-columns:repeat(2,1fr);
	}
}

@media(max-width:768px){
	section{
		padding:80px 0;
	}
	.section-title h2{
		font-size:34px;
	}
	.hero{
		padding:70px 0;
	}
	.hero h1{
		font-size:38px;
	}
	.hero p{
		font-size:16px;
	}
	.hero-button{
		flex-direction:column;
	}
	.service-grid,
	.feature-grid,
	.works-grid,
	.plan-grid,
	.flow-grid{
		grid-template-columns:1fr;
	}
	.plan-card.popular{
		transform:none;
	}
	.plan-card.popular:hover{
		transform:translateY(-10px);
	}
	.contact-area h2{
		font-size:32px;
	}
}

@media(max-width:480px){
	.container{
		width:92%;
	}
	.hero h1{
		font-size:32px;
	}
	.section-title h2{
		font-size:28px;
	}
	.btn{
		width:100%;
		padding:16px;
	}
	.service-card,
	.feature-grid>div,
	.plan-card,
	.flow-card,
	.faq-item{
		padding:25px;
	}
}

/*==================================================
Header
==================================================*/
.site-header{
	position:sticky;
	top:0;
	left:0;
	width:100%;
	height:92px;
	background:rgba(255,255,255,.96);
	border-bottom:1px solid rgba(15,39,71,.08);
	z-index:1000;
	transition:
		height .3s,
		box-shadow .3s,
		background .3s;
	backdrop-filter:blur(16px);
	-webkit-backdrop-filter:blur(16px);
}
.site-header.is-scrolled{
	height:76px;
	background:rgba(255,255,255,.98);
	box-shadow:0 8px 30px rgba(15,39,71,.08);
}
.header-inner{
	width:min(1400px,94%);
	height:100%;
	margin:0 auto;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:40px;
}
.header-logo{
	display:flex;
	flex-direction:column;
	flex-shrink:0;
	line-height:1;
}
.header-logo-main{
	color:#123a69;
	font-family:
		"Cormorant Garamond",
		"Times New Roman",
		serif;
	font-size:31px;
	font-weight:700;
	letter-spacing:.02em;
}
.header-logo-sub{
	margin-top:8px;
	color:#9a7838;
	font-size:9px;
	font-weight:700;
	letter-spacing:.22em;
}
.global-nav{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:28px;
}
.global-nav ul{
	display:flex;
	align-items:center;
	gap:26px;
}
.global-nav li{
	position:relative;
}
.global-nav li > a{
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	color:#27384e;
	font-size:12px;
	font-weight:600;
	white-space:nowrap;
	transition:.3s;
}
.global-nav li > a span{
	margin-bottom:4px;
	color:#123a69;
	font-size:11px;
	font-weight:800;
	letter-spacing:.12em;
}
.global-nav li > a::after{
	content:"";
	position:absolute;
	left:50%;
	bottom:-12px;
	width:0;
	height:2px;
	background:linear-gradient(
		90deg,
		#123a69,
		#c39a4a
	);
	transform:translateX(-50%);
	transition:.3s;
}
.global-nav li > a:hover{
	color:#9a7838;
}
.global-nav li > a:hover::after{
	width:100%;
}
.header-contact{
	min-width:190px;
	padding:13px 24px;
	border-radius:8px;
	background:linear-gradient(
		135deg,
		#123a69,
		#1d5793
	);
	color:#fff;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	font-size:12px;
	font-weight:700;
	line-height:1.4;
	box-shadow:0 10px 24px rgba(18,58,105,.18);
	transition:.3s;
}
.header-contact span{
	margin-bottom:2px;
	color:#d8bc7a;
	font-size:10px;
	letter-spacing:.18em;
}
.header-contact:hover{
	transform:translateY(-3px);
	box-shadow:0 15px 32px rgba(18,58,105,.28);
}
.menu-button{
	display:none;
	width:48px;
	height:48px;
	padding:0;
	border:0;
	border-radius:8px;
	background:#123a69;
	cursor:pointer;
	position:relative;
	z-index:1100;
}
.menu-button span{
	position:absolute;
	left:13px;
	width:22px;
	height:2px;
	background:#fff;
	transition:.3s;
}
.menu-button span:nth-child(1){
	top:16px;
}
.menu-button span:nth-child(2){
	top:23px;
}
.menu-button span:nth-child(3){
	top:30px;
}
.menu-button.is-active span:nth-child(1){
	top:23px;
	transform:rotate(45deg);
}
.menu-button.is-active span:nth-child(2){
	opacity:0;
}
.menu-button.is-active span:nth-child(3){
	top:23px;
	transform:rotate(-45deg);
}
.menu-overlay{
	visibility:hidden;
	opacity:0;
	position:fixed;
	inset:0;
	background:rgba(8,25,47,.55);
	z-index:900;
	transition:.3s;
}
.menu-overlay.is-visible{
	visibility:visible;
	opacity:1;
}
body.menu-open{
	overflow:hidden;
}

/*------------------------------------
Footer
------------------------------------*/
footer{
	background:#1f2937;
	color:#fff;
	padding:60px 0 30px;
}

.footer-logo{
	text-align:center;
	margin-bottom:30px;
}

.footer-logo a{
	color:#fff;
	text-decoration:none;
	font-size:32px;
	font-weight:bold;
}

.footer-nav{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:25px;
	margin-bottom:35px;
}

.footer-nav a{
	color:#d1d5db;
	text-decoration:none;
	transition:.3s;
}

.footer-nav a:hover{
	color:#fff;
}

.copyright{
	text-align:center;
	color:#9ca3af;
	font-size:14px;
}

/*==================================================
Header Responsive
==================================================*/
@media(max-width:1200px){
	.global-nav{
		gap:18px;
	}
	.global-nav ul{
		gap:17px;
	}
	.global-nav li > a{
		font-size:11px;
	}
	.header-contact{
		min-width:165px;
		padding:12px 17px;
	}
}

@media(max-width:991px){
	.site-header,
	.site-header.is-scrolled{
		height:72px;
	}
	.header-inner{
		width:92%;
	}
	.header-logo-main{
		font-size:27px;
	}
	.header-logo-sub{
		margin-top:6px;
		font-size:8px;
	}
	.menu-button{
		display:block;
	}
	.global-nav{
		position:fixed;
		top:0;
		right:-100%;
		width:min(390px,88%);
		height:100dvh;
		padding:100px 32px 40px;
		background:#fff;
		display:block;
		overflow-y:auto;
		z-index:1050;
		box-shadow:-15px 0 40px rgba(0,0,0,.15);
		transition:right .4s ease;
	}
	.global-nav.is-open{
		right:0;
	}
	.global-nav ul{
		display:block;
	}
	.global-nav li{
		border-bottom:1px solid #e7ebf0;
	}
	.global-nav li > a{
		min-height:70px;
		padding:14px 4px;
		display:flex;
		flex-direction:row;
		justify-content:flex-start;
		gap:16px;
		font-size:14px;
	}
	.global-nav li > a span{
		width:80px;
		margin:0;
		font-size:11px;
		text-align:left;
	}
	.global-nav li > a::after{
		display:none;
	}
	.header-contact{
		width:100%;
		min-width:0;
		margin-top:30px;
		padding:17px 20px;
	}
}

@media(max-width:480px){
	.site-header,
	.site-header.is-scrolled{
		height:66px;
	}
	.header-logo-main{
		font-size:24px;
	}
	.header-logo-sub{
		font-size:7px;
		letter-spacing:.16em;
	}
	.menu-button{
		width:44px;
		height:44px;
	}
	.menu-button span{
		left:12px;
		width:20px;
	}
	.menu-button span:nth-child(1){
		top:14px;
	}
	.menu-button span:nth-child(2){
		top:21px;
	}
	.menu-button span:nth-child(3){
		top:28px;
	}
	.menu-button.is-active span:nth-child(1),
	.menu-button.is-active span:nth-child(3){
		top:21px;
	}
	.global-nav{
		width:90%;
		padding:90px 24px 35px;
	}
}

#service,#works,#plan,#flow,#faq{
	scroll-margin-top:0px;
}

.service-card .icon{
	width:70px;
	height:70px;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:50%;
	background:linear-gradient(
		135deg,
		#eff6ff,
		#dbeafe
	);
	margin-bottom:25px;
}
.service-card .icon i{
	font-size:30px;
	color:var(--main);
}

/*==================================================
Plan Page
==================================================*/
.page-visual{
	position:relative;
	padding:120px 0;
	overflow:hidden;
	background:
	linear-gradient(
	135deg,
	#f8fbff 0%,
	#edf4ff 100%);
}
.page-visual::before{
	content:"";
	position:absolute;
	width:650px;
	height:650px;
	border-radius:50%;
	background:
	rgba(37,99,235,.08);
	top:-260px;
	right:-180px;
}
.page-visual::after{
	content:"";
	position:absolute;
	width:420px;
	height:420px;
	border-radius:50%;
	background:
	rgba(30,64,175,.05);
	bottom:-180px;
	left:-150px;
}
.page-visual .container{
	position:relative;
	z-index:2;
	text-align:center;
}
.page-visual-en{
	display:inline-block;
	color:var(--main);
	font-size:15px;
	font-weight:700;
	letter-spacing:5px;
	margin-bottom:18px;
}
.page-visual h1{
	font-size:58px;
	margin-bottom:25px;
	font-family:
	"Cormorant Garamond",
	serif;
}
.page-visual p{
	max-width:700px;
	margin:auto;
	color:var(--gray);
	font-size:18px;
}

/*==================================================
Plan Intro
==================================================*/
.plan-intro{
	background:#fff;
}
.price-note-box{
	margin-top:60px;
	padding:55px;
	border-radius:24px;
	background:
	linear-gradient(
	135deg,
	var(--main),
	var(--sub));
	color:#fff;
	text-align:center;
	box-shadow:
	0 25px 60px rgba(30,64,175,.25);
}
.price-note-main{
	display:flex;
	justify-content:center;
	align-items:flex-end;
	gap:15px;
	margin-bottom:20px;
}
.price-note-main span{
	font-size:30px;
	font-weight:600;
}
.price-note-main strong{
	font-size:92px;
	line-height:1;
	font-family:
	"Cormorant Garamond",
	serif;
}
.price-note-box p{
	font-size:18px;
	opacity:.95;
}

/*==================================================
Plan Card
==================================================*/
.plan-page{
	background:var(--light);
}
.plan-page-grid{
	align-items:stretch;
}
.plan-page .plan-card{
	display:flex;
	flex-direction:column;
	height:100%;
}
.plan-name-jp{
	color:var(--gray);
	margin-top:-10px;
	margin-bottom:20px;
}
.plan-description{
	color:var(--gray);
	font-size:15px;
	min-height:70px;
	margin-bottom:25px;
}
.plan-tax{
	margin-top:8px;
	margin-bottom:25px;
	color:#999;
	font-size:13px;
}
.plan-page .plan-price{
	display:flex;
	justify-content:center;
	align-items:flex-end;
	gap:6px;
}
.plan-page .plan-price span{
	font-size:54px;
	font-weight:700;
	color:var(--main);
	line-height:1;
	white-space:nowrap;
}
.plan-page .plan-price small{
	font-size:18px;
	margin-bottom:7px;
}
.plan-page ul{
	margin-top:10px;
	margin-bottom:40px;
}
.plan-page li{
	position:relative;
	padding:13px 0 13px 32px;
	border-bottom:1px solid #ececec;
}
.plan-page li::before{
	content:"\f00c";
	font-family:"Font Awesome 6 Free";
	font-weight:900;
	position:absolute;
	left:0;
	top:13px;
	color:var(--main);
}
.plan-page .btn{
	margin-top:auto;
}

/*==================================================
Comparison Table
==================================================*/
.comparison{
	background:#fff;
}
.comparison-scroll{
	overflow-x:auto;
}
.comparison-table{
	width:100%;
	min-width:900px;
	border-collapse:collapse;
	background:#fff;
	border-radius:20px;
	overflow:hidden;
	box-shadow:var(--shadow);
}
.comparison-table th{
	background:#f4f7fc;
	padding:20px;
	text-align:center;
	font-size:17px;
}
.comparison-table th span{
	display:block;
	margin-top:5px;
	color:#777;
	font-size:12px;
}
.comparison-table td{
	text-align:center;
	padding:18px;
	border-top:1px solid #eee;
}
.comparison-table tbody th{
	text-align:left;
	background:#fafafa;
	font-weight:600;
}
.comparison-table .recommended{
	background:#eef5ff;
	color:var(--main);
	font-weight:bold;
}

/*==================================================
Contract Information
==================================================*/
.contract-info{
	background:var(--light);
}
.contract-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:35px;
}
.contract-card{
	background:#fff;
	padding:45px 35px;
	border-radius:20px;
	box-shadow:var(--shadow);
	position:relative;
	transition:.35s;
	overflow:hidden;
}
.contract-card::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:5px;
	background:linear-gradient(
		90deg,
		var(--main),
		var(--sub)
	);
}
.contract-card:hover{
	transform:translateY(-10px);
	box-shadow:0 25px 60px rgba(0,0,0,.12);
}
.contract-number{
	display:flex;
	align-items:center;
	justify-content:center;
	width:70px;
	height:70px;
	margin-bottom:25px;
	border-radius:50%;
	background:linear-gradient(
		135deg,
		var(--main),
		var(--sub)
	);
	color:#fff;
	font-size:24px;
	font-weight:bold;
}
.contract-card h3{
	font-size:24px;
	margin-bottom:18px;
}
.contract-card p{
	color:var(--gray);
	line-height:1.8;
}

/*==================================================
Plan FAQ
==================================================*/
.plan-faq{
	background:#fff;
}
.plan-faq .faq-item{
	transition:.3s;
}
.plan-faq .faq-item:hover{
	transform:translateY(-4px);
}
.plan-faq .faq-item h3{
	position:relative;
	padding-left:34px;
}
.plan-faq .faq-item h3::before{
	content:"Q";
	position:absolute;
	left:0;
	top:0;
	width:24px;
	height:24px;
	border-radius:50%;
	background:var(--main);
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:12px;
}

/*==================================================
Comparison Hover
==================================================*/
.comparison-table tbody tr{
	transition:.25s;
}
.comparison-table tbody tr:hover{
	background:#f8fbff;
}
.comparison-table td{
	transition:.25s;
}
.comparison-table td:hover{
	background:#edf4ff;
}

/*==================================================
Plan CTA
==================================================*/
.plan-page .btn,
.contact-area .btn{
	min-width:230px;
}
.plan-page .btn:hover{
	transform:translateY(-5px);
}

/*==================================================
Animation
==================================================*/
.fade-up{
	opacity:0;
	transform:translateY(40px);
	transition:
		opacity .8s,
		transform .8s;
}
.fade-up.show{
	opacity:1;
	transform:translateY(0);
}

/*==================================================
Responsive
==================================================*/
@media(max-width:991px){
	.page-visual{
		padding:90px 0;
	}
	.page-visual h1{
		font-size:48px;
	}
	.price-note-main strong{
		font-size:72px;
	}
	.contract-grid{
		grid-template-columns:1fr;
	}
}

@media(max-width:768px){
	.page-visual{
		padding:70px 0;
	}
	.page-visual h1{
		font-size:40px;
	}
	.page-visual p{
		font-size:16px;
	}
	.price-note-box{
		padding:40px 25px;
	}
	.price-note-main{
		flex-direction:column;
		align-items:center;
		gap:10px;
	}
	.price-note-main strong{
		font-size:58px;
	}
	.comparison-table{
		min-width:700px;
	}
}

@media(max-width:480px){
	.page-visual h1{
		font-size:32px;
	}
	.price-note-main strong{
		font-size:46px;
	}
	.contract-card{
		padding:30px 25px;
	}
	.contract-number{
		width:60px;
		height:60px;
		font-size:20px;
	}
	.comparison-table{
		min-width:620px;
	}
}

/*------------------------------------
Contact
------------------------------------*/
.contact{
	padding:100px 0;
	background:#f8f9fb;
}

.contact .container{
	max-width:850px;
}

.contact-head{
	text-align:center;
	margin-bottom:60px;
}

.contact-head h2{
	font-size:36px;
	margin-bottom:20px;
	color:#222;
}

.contact-head p{
	font-size:17px;
	color:#666;
	line-height:2;
}

.error-message{
	background:#ffecec;
	color:#d60000;
	border:1px solid #ffb5b5;
	border-radius:8px;
	padding:18px;
	margin-bottom:35px;
}

.form-group{
	margin-bottom:35px;
}

.form-group label{
	display:flex;
	align-items:center;
	gap:12px;
	font-size:17px;
	font-weight:bold;
	margin-bottom:12px;
	color:#222;
}

.form-group label span{
	display:inline-block;
	background:#ff4d4f;
	color:#fff;
	font-size:12px;
	font-weight:normal;
	padding:2px 8px;
	border-radius:30px;
}

.form-group input,
.form-group select,
.form-group textarea{
	width:100%;
	font-size:16px;
	font-family:inherit;
	padding:16px 18px;
	border:1px solid #d9d9d9;
	border-radius:10px;
	background:#fff;
	transition:.25s;
	box-sizing:border-box;
}

.form-group textarea{
	resize:vertical;
	min-height:220px;
	line-height:1.8;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
	outline:none;
	border-color:#2563eb;
	box-shadow:0 0 0 4px rgba(37,99,235,.12);
}

/*------------------------------------
Privacy
------------------------------------*/
.privacy{
	margin:40px 0;
	text-align:center;
}

.privacy label{
	display:inline-flex;
	align-items:center;
	gap:10px;
	font-size:15px;
	color:#555;
	cursor:pointer;
}

.privacy input[type="checkbox"]{
	width:18px;
	height:18px;
	cursor:pointer;
}

/*------------------------------------
Submit
------------------------------------*/
.submit{
	text-align:center;
}

.submit button{
	display:inline-block;
	min-width:320px;
	height:60px;
	border:none;
	border-radius:999px;
	background:linear-gradient(135deg,#2563eb,#1d4ed8);
	color:#fff;
	font-size:18px;
	font-weight:bold;
	cursor:pointer;
	transition:.3s;
	box-shadow:0 10px 25px rgba(37,99,235,.25);
}

.submit button:hover{
	transform:translateY(-3px);
	box-shadow:0 15px 35px rgba(37,99,235,.35);
}

/*------------------------------------
Check / Complete
------------------------------------*/
.contact-box{
	background:#fff;
	border-radius:15px;
	box-shadow:0 5px 20px rgba(0,0,0,.08);
	overflow:hidden;
}

.contact-row{
	display:flex;
	border-bottom:1px solid #eee;
}

.contact-row:last-child{
	border-bottom:none;
}

.contact-title{
	width:240px;
	padding:22px;
	background:#f5f7fa;
	font-weight:bold;
	color:#333;
	box-sizing:border-box;
}

.contact-data{
	flex:1;
	padding:22px;
	color:#555;
	line-height:1.8;
	white-space:pre-wrap;
	box-sizing:border-box;
}

.contact-buttons{
	display:flex;
	justify-content:center;
	gap:20px;
	margin-top:50px;
}

.contact-buttons a,
.contact-buttons button{
	min-width:220px;
	height:56px;

	display:flex;
	justify-content:center;
	align-items:center;

	border:none;
	border-radius:999px;

	text-decoration:none;

	font-size:16px;
	font-weight:bold;

	cursor:pointer;
	transition:.3s;
}

.contact-buttons a{
	background:#888;
	color:#fff;
}

.contact-buttons button{
	background:linear-gradient(135deg,#2563eb,#1d4ed8);
	color:#fff;
}

.contact-buttons a:hover,
.contact-buttons button:hover{
	transform:translateY(-3px);
}

/*------------------------------------
Complete
------------------------------------*/
.complete-box{
	max-width:700px;
	margin:0 auto;
	background:#fff;
	border-radius:15px;
	padding:70px 40px;
	text-align:center;
	box-shadow:0 5px 20px rgba(0,0,0,.08);
}

.complete-box i{
	font-size:72px;
	color:#2563eb;
	margin-bottom:30px;
}

.complete-box h2{
	font-size:34px;
	margin-bottom:20px;
	color:#222;
}

.complete-box p{
	color:#666;
	line-height:2;
	margin-bottom:40px;
}

.complete-box a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:260px;
	height:56px;
	border-radius:999px;
	background:linear-gradient(135deg,#2563eb,#1d4ed8);
	color:#fff;
	text-decoration:none;
	font-weight:bold;
	transition:.3s;
}

.complete-box a:hover{
	transform:translateY(-3px);
}

/*------------------------------------
Responsive
------------------------------------*/
@media(max-width:768px){
	.contact{
		padding:70px 0;
	}

	.contact-head{
		margin-bottom:40px;
	}

	.contact-head h2{
		font-size:28px;
	}

	.contact-row{
		display:block;
	}

	.contact-title{
		width:100%;
	}

	.contact-buttons{
		flex-direction:column;
		align-items:center;
	}

	.contact-buttons a,
	.contact-buttons button{
		width:100%;
		max-width:350px;
	}

	.submit button{
		width:100%;
		min-width:0;
	}

	.complete-box{
		padding:50px 25px;
	}

	.complete-box h2{
		font-size:28px;
	}
}

.page-title{
	padding:100px 20px;
	background:linear-gradient(135deg,#1e3a8a,#2563eb);
	color:#fff;
	text-align:center;
	position:relative;
	overflow:hidden;
}

/* 背景に薄い円を配置 */
.page-title::before{
	content:"";
	position:absolute;
	top:-120px;
	right:-80px;
	width:320px;
	height:320px;
	background:rgba(255,255,255,.08);
	border-radius:50%;
}

.page-title::after{
	content:"";
	position:absolute;
	bottom:-150px;
	left:-120px;
	width:380px;
	height:380px;
	background:rgba(255,255,255,.05);
	border-radius:50%;
}

.page-title .container{
	position:relative;
	z-index:2;
}

.page-title h1{
	font-size:56px;
	font-weight:800;
	letter-spacing:.15em;
	margin-bottom:12px;
	text-transform:uppercase;
}

.page-title p{
	font-size:18px;
	color:rgba(255,255,255,.9);
	letter-spacing:.15em;
}

.page-title span{
	display:block;
	width:80px;
	height:3px;
	margin:25px auto 0;
	background:#fff;
	border-radius:10px;
	opacity:.9;
}

/*------------------------------------
Terms
------------------------------------*/
.terms{
	padding:100px 0;
	background:#f7f9fc;
}

.terms .container{
	max-width:1000px;
}

.terms-intro{
	margin-bottom:45px;
	padding:30px 35px;
	background:#fff;
	border-left:5px solid #2563eb;
	border-radius:0 12px 12px 0;
	box-shadow:0 8px 30px rgba(15,23,42,.06);
}

.terms-intro p{
	margin-bottom:12px;
	color:#4b5563;
	font-size:16px;
	line-height:2;
}

.terms-intro p:last-child{
	margin-bottom:0;
}

.terms-box{
	padding:20px 55px;
	background:#fff;
	border-radius:16px;
	box-shadow:0 10px 35px rgba(15,23,42,.07);
}

.terms-item{
	padding:42px 0;
	border-bottom:1px solid #e5e7eb;
}

.terms-item:last-child{
	border-bottom:none;
}

.terms-item h2{
	display:flex;
	align-items:center;
	gap:16px;
	margin-bottom:22px;
	color:#172554;
	font-size:23px;
	line-height:1.5;
}

.terms-item h2 span{
	flex-shrink:0;
	display:inline-flex;
	justify-content:center;
	align-items:center;
	min-width:64px;
	height:32px;
	padding:0 10px;
	border-radius:999px;
	background:#e8efff;
	color:#2563eb;
	font-size:13px;
	font-weight:700;
}

.terms-item p{
	margin-bottom:15px;
	color:#4b5563;
	font-size:15px;
	line-height:2;
}

.terms-item p:last-child{
	margin-bottom:0;
}

.terms-item ol{
	margin:0;
	padding-left:1.7em;
}

.terms-item li{
	margin-bottom:12px;
	padding-left:5px;
	color:#4b5563;
	font-size:15px;
	line-height:1.9;
}

.terms-item li:last-child{
	margin-bottom:0;
}

.terms-date{
	margin-top:30px;
	text-align:right;
}

.terms-date p{
	color:#6b7280;
	font-size:14px;
}

/*------------------------------------
Terms Responsive
------------------------------------*/
@media(max-width:768px){

	.terms{
		padding:70px 0;
	}

	.terms-intro{
		padding:24px 22px;
	}

	.terms-box{
		padding:5px 22px;
		border-radius:12px;
	}

	.terms-item{
		padding:34px 0;
	}

	.terms-item h2{
		align-items:flex-start;
		gap:10px;
		font-size:20px;
	}

	.terms-item h2 span{
		min-width:58px;
		height:29px;
		font-size:12px;
	}

	.terms-item p,
	.terms-item li{
		font-size:14px;
	}
}

/* =========================================================
   Application
========================================================= */
.application-page{
	max-width:900px;
	margin:80px auto;
}

.application-intro{
	text-align:center;
	margin-bottom:60px;
}

.application-intro h2{
	font-size:34px;
	color:#1e3a8a;
	margin-bottom:20px;
	font-weight:700;
}

.application-intro p{
	color:#666;
	line-height:2;
	font-size:16px;
}

.application-form{
	background:#fff;
	border-radius:14px;
	padding:50px;
	box-shadow:0 10px 35px rgba(0,0,0,.08);
}

.application-form h3{
	font-size:24px;
	margin:45px 0 25px;
	color:#1e3a8a;
	border-left:5px solid #2563eb;
	padding-left:15px;
}

.application-form h3:first-child{
	margin-top:0;
}

.application-flow {
	padding: 80px 0;
	background: #fafafa;
}

.application-flow h2 {
	text-align: center;
	font-size: 28px;
	letter-spacing: 0.05em;
	margin-bottom: 60px;
	position: relative;
}

.application-flow h2::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	background: linear-gradient(90deg, #b8974f, #d4b876);
	margin: 16px auto 0;
}

.flow-list {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	position: relative;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 20px;
}

/* 各アイテムをつなぐ横線 */
.flow-list::before {
	content: "";
	position: absolute;
	top: 28px;
	left: 8%;
	right: 8%;
	height: 1px;
	background: repeating-linear-gradient(
		90deg,
		#d4b876,
		#d4b876 6px,
		transparent 6px,
		transparent 12px
	);
	z-index: 0;
}

.flow-item {
	flex: 1;
	text-align: center;
	position: relative;
	z-index: 1;
	padding: 0 8px;
}

.flow-item .num {
	width: 56px;
	height: 56px;
	line-height: 56px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background: #1a1a2e;
	color: #d4b876;
	font-size: 20px;
	font-weight: 600;
	font-family: 'Georgia', serif;
	box-shadow: 0 4px 14px rgba(26, 26, 46, 0.25);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.flow-item:hover .num {
	transform: translateY(-4px);
	box-shadow: 0 8px 20px rgba(26, 26, 46, 0.35);
}

.flow-item h4 {
	font-size: 16px;
	margin-bottom: 8px;
	color: #1a1a2e;
	letter-spacing: 0.03em;
}

.flow-item p {
	font-size: 13px;
	color: #777;
	line-height: 1.6;
}

/* スマホ対応:横線を消して縦並びに */
@media (max-width: 768px) {
	.flow-list {
		flex-direction: column;
		gap: 32px;
	}
	.flow-list::before {
		display: none;
	}
	.flow-item {
		display: flex;
		align-items: center;
		text-align: left;
		gap: 20px;
	}
	.flow-item .num {
		margin: 0;
		flex-shrink: 0;
	}
}

.form-group{
	margin-bottom:28px;
}

.form-group label{
	display:block;
	margin-bottom:10px;
	font-weight:600;
	color:#333;
}

.form-group span{
	display:inline-block;
	margin-left:8px;
	background:#ef4444;
	color:#fff;
	font-size:12px;
	padding:2px 8px;
	border-radius:20px;
}

.form-group input[type=text],
.form-group input[type=email],
.form-group select,
.form-group textarea{
	width:100%;
	padding:15px 18px;
	border:1px solid #dcdcdc;
	border-radius:8px;
	font-size:15px;
	transition:.25s;
	box-sizing:border-box;
	background:#fff;
}

.form-group textarea{
	resize:vertical;
	min-height:180px;
	line-height:1.8;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
	outline:none;
	border-color:#2563eb;
	box-shadow:0 0 0 4px rgba(37,99,235,.12);
}

.radio-group{
	display:flex;
	gap:30px;
	flex-wrap:wrap;
}

.radio-group label{
	display:flex;
	align-items:center;
	gap:8px;
	margin:0;
	cursor:pointer;
	font-weight:500;
	white-space: nowrap;
}

.radio-group input{
	transform:scale(1.2);
}

.form-check{
	margin-top:35px;
	padding:20px;
	background:#f8fafc;
	border-radius:8px;
}

.form-check label{
	display:flex;
	align-items:center;
	gap:10px;
	cursor:pointer;
	font-size:15px;
}

.form-check input{
	transform:scale(1.2);
}

.submit-area{
	text-align:center;
	margin-top:50px;
}

.btn-primary{
	display:block;
	width:100%;
	max-width:320px;
	margin:40px auto 0;
	padding:16px;
	background:linear-gradient(135deg,#2563eb,#1d4ed8);
	color:#fff;
	font-size:18px;
	font-weight:700;
	border:none;
	border-radius:50px;
	cursor:pointer;
	transition:.3s;
	box-shadow:0 8px 20px rgba(37,99,235,.25);
}

.btn-primary:hover{
	transform:translateY(-2px);
	box-shadow:0 12px 28px rgba(37,99,235,.35);
}

.btn-primary:active{
	transform:translateY(0);
}

/* ページトップボタン */
.page-top{
	position:fixed;
	right:25px;
	bottom:25px;
	width:55px;
	height:55px;
	background:#133e6e;
	color:#fff;
	font-size:24px;
	text-decoration:none;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 5px 15px rgba(0,0,0,.2);
	opacity:0;
	visibility:hidden;
	transition:.3s;
	z-index:999;
}

.page-top:hover{
	background:#1d4ed8;
	transform:translateY(-3px);
}

.page-top.show{
	opacity:1;
	visibility:visible;
}

/* FAQ */
.faq{
	padding:80px 0;
}

.faq-item{
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:12px;
	padding:25px 30px;
	margin-bottom:20px;
	box-shadow:0 5px 15px rgba(0,0,0,.05);
}

.faq-item h3{
	font-size:20px;
	color:#2563eb;
	margin-bottom:15px;
}

.faq-item p{
	line-height:1.9;
	color:#555;
}

@media(max-width:768px){
	.faq{
		padding:50px 0;
	}

	.faq-item{
		padding:20px;
	}

	.faq-item h3{
		font-size:17px;
	}
}

/*
=====================================================
PAGE HERO
=====================================================
*/
.page-hero{
	padding:120px 0 90px;
	background:linear-gradient(135deg,#1d4ed8,#2563eb);
	color:#fff;
	text-align:center;
}

.page-hero span{
	display:block;
	font-size:14px;
	font-weight:700;
	letter-spacing:4px;
	margin-bottom:15px;
	opacity:.9;
}

.page-hero h1{
	font-family:'Poppins',sans-serif;
	font-size:48px;
	font-weight:700;
	margin-bottom:20px;
}

.page-hero p{
	font-size:18px;
	color:rgba(255,255,255,.9);
}

/*
=====================================================
SITEMAP
=====================================================
*/
.sitemap{
	padding:90px 0;
	background:#f8fafc;
}

.sitemap-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:35px;
}

.sitemap-card{
	background:#fff;
	border-radius:16px;
	padding:35px;
	box-shadow:0 10px 30px rgba(0,0,0,.08);
	transition:.3s;
}

.sitemap-card:hover{
	transform:translateY(-5px);
}

.sitemap-card h3{
	display:flex;
	align-items:center;
	gap:12px;
	font-size:24px;
	color:#2563eb;
	margin-bottom:25px;
	padding-bottom:15px;
	border-bottom:2px solid #e5e7eb;
}

.sitemap-card h3 i{
	font-size:24px;
}

.sitemap-card ul{
	list-style:none;
	padding:0;
	margin:0;
}

.sitemap-card li{
	border-bottom:1px solid #f1f5f9;
}

.sitemap-card li:last-child{
	border-bottom:none;
}

.sitemap-card a{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:15px 0;
	color:#374151;
	font-weight:500;
	transition:.3s;
}

.sitemap-card a::after{
	content:"?";
	font-size:20px;
	color:#2563eb;
}

.sitemap-card a:hover{
	color:#2563eb;
	padding-left:10px;
}

/*
=====================================================
RESPONSIVE
=====================================================
*/
@media(max-width:768px){

	.page-hero{
		padding:90px 0 70px;
	}

	.page-hero h1{
		font-size:34px;
	}

	.page-hero p{
		font-size:16px;
	}

	.sitemap{
		padding:70px 0;
	}

	.sitemap-grid{
		grid-template-columns:1fr;
		gap:25px;
	}

	.sitemap-card{
		padding:25px;
	}

	.sitemap-card h3{
		font-size:20px;
	}

}
.sitemap-card a::after{
	content:"\f105";
	font-family:"Font Awesome 6 Free";
	font-weight:900;
	color:#2563eb;
	font-size:14px;
}

/*==============================
Application Confirm
==============================*/
.confirm-value{
	background:#f8f9fb;
	border:1px solid #dcdfe6;
	border-radius:8px;
	padding:14px 16px;
	line-height:1.8;
	min-height:22px;
	word-break:break-word;
}

.submit-area{
	display:flex;
	justify-content:center;
	gap:20px;
	margin-top:50px;
	flex-wrap:wrap;
}

.btn-secondary{
	display:inline-block;
	padding:14px 34px;
	border:none;
	border-radius:8px;
	background:#6c757d;
	color:#fff;
	font-size:16px;
	font-weight:700;
	cursor:pointer;
	transition:.25s;
}

.btn-secondary:hover{
	background:#5a6268;
	color:#fff;
}

.btn-primary{
	cursor:pointer;
}

@media (max-width:768px){
	.submit-area{
		flex-direction:column;
	}

	.btn-primary,
	.btn-secondary{
		width:100%;
	}
}

/*=========================================
Application Complete
=========================================*/
.complete-box{
	max-width:720px;
	margin:0 auto 80px;
	padding:60px 40px;
	text-align:center;
	background:#fff;
	border-radius:12px;
	box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.complete-icon{
	font-size:70px;
	color:#2e7dff;
	margin-bottom:25px;
}

.complete-box h3{
	font-size:30px;
	margin-bottom:20px;
}

.complete-box p{
	line-height:2;
	color:#666;
	margin-bottom:18px;
}
