*{
	margin:0;
	padding:0;
	box-sizing:border-box;
}

html{
	scroll-behavior:smooth;
}

body{
	font-family:"Noto Sans JP",sans-serif;
	background:#070b14;
	color:#fff;
	line-height:1.8;
}

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

a{
	color:inherit;
	text-decoration:none;
}

.container{
	width:min(1180px,94%);
	margin:auto;
}

/* Header */

.header{
	position:sticky;
	top:0;
	z-index:999;
	background:rgba(7,11,20,.9);
	backdrop-filter:blur(14px);
	border-bottom:1px solid rgba(90,130,255,.25);
}

.header-inner{
	height:88px;
	display:flex;
	justify-content:space-between;
	align-items:center;
}

.logo{
	font-family:"Cormorant Garamond",serif;
	font-size:34px;
	letter-spacing:2px;
	color:#fff;
}

.logo span{
	display:block;
	margin-top:-4px;
	font-family:"Noto Sans JP",sans-serif;
	font-size:10px;
	letter-spacing:2px;
	color:#7fa7ff;
}

.gnav{
	display:flex;
	align-items:center;
	gap:40px;
}

.gnav a{
	display:flex;
	flex-direction:column;
	align-items:center;
	text-decoration:none;
	color:#ffffff;
	font-weight:normal;
	line-height:1.2;
	transition:.3s;
}

.gnav a span{
	font-size:11px;
	font-weight:400;
	margin-top:4px;
	letter-spacing:.08em;
	/* colorは指定しない */
}

.gnav a:hover{
	color:#fdfdfd;
}

/* Hero */
.hero{
	display:flex;
	align-items:center;
	overflow:hidden;
	background:
		radial-gradient(circle at 70% 30%,rgba(80,120,255,.25),transparent 35%),
		linear-gradient(135deg,#070b14,#111a33 55%,#080b15);
}
.hero img{
	width:100%;
	aspect-ratio:21/9;
	object-fit:cover;
}
@media(max-width:1000px){
	.hero img{
		aspect-ratio:4/3;
	}
}
.hero-text{
	max-width:720px;
}

.hero-text span{
	color:#fdfdfd;
	letter-spacing:4px;
	font-size:13px;
}

.hero-text h1{
	margin:22px 0;
	font-size:62px;
	line-height:1.25;
	letter-spacing:3px;
}

.hero-text p{
	max-width:620px;
	margin-bottom:36px;
	color:#c7cce0;
}

.main-btn{
	display:inline-block;
	padding:14px 40px;
	border-radius:999px;
	background:linear-gradient(90deg,#4f7cff,#8d5cff);
	color:#fff;
	font-weight:700;
	letter-spacing:1px;
	box-shadow:0 12px 35px rgba(80,120,255,.35);
	transition:.3s;
}

.main-btn:hover{
	transform:translateY(-3px);
}

/* Section */

.section{
	padding:90px 0;
}

.section-heading{
	text-align:center;
	margin-bottom:50px;
}

.section-heading span{
	display:block;
	font-family:"Cormorant Garamond",serif;
	font-size:50px;
	line-height:1;
	color:#fdfdfd;
}

.section-heading h2{
	margin-top:10px;
	font-size:14px;
	color:#eef6ff;
	letter-spacing:4px;
	text-transform:uppercase;
}

/* Works */

.works{
	background:#090f1d;
}

.works-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:28px;
}

.work-card{
	background:rgba(255,255,255,.04);
	border:2px solid rgba(127,167,255,.18);
	border-radius:18px;
	overflow:hidden;
	transition:.35s;
}

.work-card img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	background:#111;
}

.work-card h3{
	padding:20px 22px 4px;
	font-size:24px;
	letter-spacing:2px;
}

.work-card p{
	padding:0 22px 24px;
	color:#fcfcfc;
	font-size:14px;
}

.work-card:hover{
	transform:translateY(-8px);
	border-color:#fdfdfd;
	box-shadow:0 18px 45px rgba(40,80,180,.25);
}

/* Features */

.features{
	background:#070b14;
}

.feature-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:22px;
}

.feature-grid div{
	padding:34px 24px;
	background:rgba(255,255,255,.04);
	border:1px solid rgba(127,167,255,.16);
	border-radius:18px;
	text-align:center;
}

.feature-grid i{
	margin-bottom:18px;
	font-size:34px;
	color:#fdfdfd;
}

.feature-grid h3{
	font-size:18px;
	letter-spacing:1px;
}

/* Price */

.price{
	background:#090f1d;
}

.price-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:26px;
}

.price-card{
	display:flex;
	flex-direction:column;
	padding:40px 28px;
	background:rgba(255,255,255,.04);
	border:2px solid rgba(127,167,255,.18);
	border-radius:22px;
	text-align:center;
}

.price-card.popular{
	border-color:#fdfdfd;
	box-shadow:0 0 40px rgba(90,130,255,.22);
}

.price-card h3{
	font-size:24px;
	letter-spacing:3px;
	line-height:1.2;
}

.price-card h3 span{
	display:block;
	margin-top:4px;
	font-size:12px;
	font-weight:400;
	letter-spacing:2px;
	color:#fff;
}

.price-num{
	margin:18px 0 0;
	font-size:30px;
	color:#fcfcfc;
	font-weight:700;
}
.price-tax{ margin-bottom:5px; color:#fcfcfc; }

.price-card p:last-child{
	color:#b8c1dd;
}

.price-btn{
	display:block;
	margin-top:auto;
	text-align:center;
	width:100%;
	box-sizing:border-box;
}

/* Flow */

.flow{
	background:#070b14;
}

.flow-list{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:25px;
	margin-top:60px;
}

.flow-card{
	background:#161616;
	border:1px solid rgba(112,175,55,.2);
	border-radius:14px;
	padding:35px 25px;
	text-align:center;
	transition:.3s;
}

.flow-card:hover{
	transform:translateY(-6px);
	border-color:#5f79eb;
}

.flow-icon{
	width:70px;
	height:70px;
	margin:0 auto 20px;
	border-radius:50%;
	background:#c8d9ff;
	color:#111;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:28px;
}

.flow-card .step{
	display:block;
	color:#fefefe;
	font-size:13px;
	letter-spacing:2px;
	margin-bottom:10px;
}

.flow-card h3{
	margin-bottom:15px;
	font-size:22px;
}

.flow-card p{
	font-size:14px;
	line-height:1.8;
	color:#bbb;
}

@media (max-width:768px){
	.flow-list{
		grid-template-columns:1fr;
	}
}

/* Contact */

.contact{
	text-align:center;
	background:
		radial-gradient(circle at 50% 0%,rgba(100,120,255,.25),transparent 35%),
		#090f1d;
}

.contact h2{
	font-size:34px;
	margin-bottom:14px;
}

.contact p{
	margin-bottom:30px;
	color:#b8c1dd;
}

/* Footer */

.footer{
	padding:60px 0;
	text-align:center;
	background:#050811;
	border-top:1px solid rgba(127,167,255,.18);
}

.footer h2{
	font-family:"Cormorant Garamond",serif;
	font-size:42px;
	letter-spacing:3px;
}

.footer p{
	color:#fdfdfd;
	letter-spacing:2px;
}

.footer small{
	display:block;
	margin-top:12px;
	color:#78809a;
}

/* Responsive */

@media(max-width:1000px){
	.header-inner{
		height:auto;
		padding:20px 0;
		flex-direction:column;
		gap:18px;
	}

	.gnav{
		flex-wrap:wrap;
		justify-content:center;
		gap:18px;
	}

	.hero-text h1{
		font-size:46px;
	}

	.works-grid,
	.feature-grid,
	.price-grid{
		grid-template-columns:repeat(2,1fr);
	}
}

@media(max-width:520px){
	.section{
		padding:60px 0;
	}

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

	.works-grid,
	.feature-grid,
	.price-grid{
		grid-template-columns:1fr;
	}

	.gnav a{
		font-size:11px;
	}
}

/* Contact */
.page-hero{
	padding:100px 0 80px;
	background:
		radial-gradient(circle at 70% 20%,rgba(80,120,255,.25),transparent 35%),
		linear-gradient(135deg,#070b14,#10182d);
	text-align:center;
}

.page-hero span{
	font-family:"Cormorant Garamond",serif;
	font-size:42px;
	color:#fdfdfd;
	letter-spacing:4px;
}

.page-hero h1{
	margin-top:10px;
	font-size:38px;
	letter-spacing:4px;
}

.page-hero p{
	margin-top:16px;
	color:#b8c1dd;
}

.contact-page{
	background:#090f1d;
}

.contact-layout{
	display:grid;
	grid-template-columns:1fr 1.2fr;
	gap:45px;
	align-items:start;
}

.contact-info{
	padding:36px;
	background:rgba(255,255,255,.04);
	border:1px solid rgba(127,167,255,.16);
	border-radius:22px;
}

.contact-info h2{
	font-size:28px;
	margin-bottom:18px;
}

.contact-info p{
	color:#b8c1dd;
	margin-bottom:28px;
}

.contact-info ul{
	list-style:none;
}

.contact-info li{
	margin-bottom:14px;
	color:#dce4ff;
}

.contact-info i{
	color:#fdfdfd;
	margin-right:10px;
}

.contact-form{
	padding:36px;
	background:rgba(255,255,255,.05);
	border:1px solid rgba(127,167,255,.18);
	border-radius:22px;
}

.contact-form label{
	display:block;
	margin-bottom:22px;
	color:#dce4ff;
	font-size:14px;
}

.contact-form input,
.contact-form select,
.contact-form textarea{
	width:100%;
	margin-top:8px;
	padding:14px 16px;
	border:1px solid rgba(127,167,255,.22);
	border-radius:10px;
	background:#060a13;
	color:#fff;
	font-size:15px;
	outline:none;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
	border-color:#fdfdfd;
	box-shadow:0 0 0 3px rgba(127,167,255,.15);
}

.submit-btn{
	width:100%;
	padding:16px;
	border:none;
	border-radius:999px;
	background:linear-gradient(90deg,#4f7cff,#8d5cff);
	color:#fff;
	font-size:15px;
	font-weight:700;
	letter-spacing:1px;
	cursor:pointer;
}

@media(max-width:900px){
	.contact-layout{
		grid-template-columns:1fr;
	}
}

/* Price */
.price-note{
	text-align:center;
	margin:0 auto 40px;
	line-height:1.1;
}

.price-note strong{
	display:block;
	font-size:40px;
	color:#fdfdfd;
	line-height:1;
	margin:0;
}

.price-note span{
	display:block;
	margin-top:15px;
	font-size:13px;
	color:#b8c1dd;
	line-height:1.2;
}

.price-list{
	list-style:none;
	margin-top:25px;
	text-align:left;
}

.price-list li{
	margin:12px 0;
	color:#fcfcfc;
}

.price-list i{
	color:#fdfdfd;
	margin-right:8px;
}

.price-num span{
	font-size:18px;
}
.price-num2{ margin:0; color:#fff; font-size:0.9em; }
.price-num2 span{
	font-size:15px;
}

.popular-badge{
	display:inline-block;
	margin-bottom:18px;
	padding:5px 14px;
	background:#698afa;
	color:#fff;
	border-radius:999px;
	font-size:12px;
	font-weight:bold;
}
.popular-badge2{
	display:inline-block;
	margin-bottom:18px;
	padding:5px 14px;
	height:26px;
}

.price-more{
	text-align:center;
	margin-top:32px;
}

@media(max-width:520px){
	.price-more{
		text-align:center;
	}
}

/* Price */
.price-detail{
	background:#090f1d;
}

.price-caution{
	margin-top:35px;
	text-align:center;
	color:#9aa8cb;
	font-size:13px;
}

.compare{
	background:#070b14;
}

.compare-table-wrap{
	overflow-x:auto;
}

.compare-table{
	width:100%;
	border-collapse:collapse;
	background:rgba(255,255,255,.04);
	border:1px solid rgba(127,167,255,.18);
}

.compare-table th,
.compare-table td{
	padding:18px;
	border:1px solid rgba(127,167,255,.14);
	text-align:center;
	color:#f5f5f5;
}

.compare-table th{
	background:rgba(127,167,255,.12);
	color:#fdfdfd;
	text-align:center;
	vertical-align:middle;
}

.compare-table th{
	line-height:1.8;
}

.compare-table th span{
	display:block;
	margin-top:1px;	  /* 4px → 1px */
	line-height:1;
	font-size:10px;
	font-weight:400;
	color:#f5f5f5;
	letter-spacing:1px;
}

.compare-table td:first-child,
.compare-table th:first-child{
	text-align:left;
}

/*======================================
Footer
======================================*/
.footer{
	background:#111;
	padding:70px 0 30px;
	border-top:1px solid rgba(255,255,255,.08);
	margin-top:100px;
}

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

.footer-logo a{
	color:#fff;
	font-size:30px;
	font-weight:700;
	text-decoration:none;
	letter-spacing:1px;
}

.footer-logo p{
	color:#999;
	margin-top:8px;
	font-size:14px;
}

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

.footer-nav a{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:30px;
	color:#ddd;
	text-decoration:none;
	transition:.3s;
}

.footer-nav a span{
	font-size:14px;
	line-height:1;
}

.footer-nav a small{
	font-size:11px;
	color:#888;
	line-height:1;
	margin-top:-20px;
}

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

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

.footer-links{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:20px;
	margin-bottom:30px;
}

.footer-links a{
	color:#999;
	text-decoration:none;
	font-size:13px;
}

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

.copyright{
	text-align:center;
	color:#666;
	font-size:13px;
	border-top:1px solid rgba(255,255,255,.08);
	padding-top:25px;
}

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

	.footer-nav{
		flex-direction:column;
		gap:15px;
	}

	.footer-links{
		flex-direction:column;
		gap:12px;
	}
}

/*
=====================================================
SUCCESS TIPS
=====================================================
*/
.tips{
    background:#0b0b0b;
}

.tips .section-title{
    text-align:center;
    margin-bottom:70px;
}

.tips .section-title span{
    color:#d4af37;
    font-size:14px;
    font-weight:700;
    letter-spacing:4px;
    display:block;
    margin-bottom:10px;
}

.tips .section-title h2{
    color:#fff;
    font-size:42px;
    margin-bottom:20px;
}

.tips .section-title p{
    color:#bfbfbf;
    line-height:1.9;
}

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

.tip-card{
    position:relative;
    background:#141414;
    border:1px solid rgba(212,175,55,.25);
    border-radius:15px;
    padding:35px;
    transition:.3s;
}

.tip-card:hover{
    transform:translateY(-5px);
    border-color:#d4af37;
}

.tip-number{
    position:absolute;
    top:18px;
    right:20px;
    font-size:42px;
    color:rgba(212,175,55,.08);
    font-weight:700;
}

.tip-card i{
    font-size:44px;
    color:#d4af37;
    margin-bottom:20px;
    display:block;
}

.tip-card h3{
    color:#fff;
    margin-bottom:15px;
    font-size:24px;
}

.tip-card p{
    color:#bfbfbf;
    line-height:1.9;
}

.tips-message{
    margin-top:80px;
    text-align:center;
    background:#141414;
    border:1px solid rgba(212,175,55,.3);
    border-radius:15px;
    padding:60px 40px;
}

.tips-message h3{
    color:#fdfdfd;
    font-size:32px;
    margin-bottom:25px;
}

.tips-message p{
    color:#d0d0d0;
    line-height:2;
    font-size:18px;
}

@media(max-width:768px){

    .tips-grid{
        grid-template-columns:1fr;
    }

    .tips .section-title h2{
        font-size:30px;
    }

    .tip-card{
        padding:30px;
    }

    .tips-message{
        padding:40px 25px;
    }

}

/*
=====================================================
SITEMAP
=====================================================
*/

.sitemap{
    background:#0b0b0b;
}

.sitemap .section-title{
    text-align:center;
    margin-bottom:70px;
}

.sitemap .section-title span{
    display:block;
    color:#d4af37;
    font-size:14px;
    font-weight:700;
    letter-spacing:4px;
    margin-bottom:10px;
}

.sitemap .section-title h2{
    color:#fff;
    font-size:42px;
    margin-bottom:20px;
}

.sitemap .section-title p{
    color:#bfbfbf;
    line-height:1.8;
}

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

.sitemap-card{
    background:#141414;
    border:1px solid rgba(74,144,226,.25);
    border-radius:15px;
    padding:35px;
    transition:.3s;
}

.sitemap-card:hover{
    border-color:#3781d4;
    transform:translateY(-5px);
}

.sitemap-card h3{
    color:#fdfdfd;
    font-size:24px;
    margin-bottom:25px;
    padding-bottom:15px;
    border-bottom:1px solid rgba(212,175,55,.2);
}

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

.sitemap-card li{
    border-bottom:1px solid rgba(255,255,255,.08);
}

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

.sitemap-card a{
    display:block;
    color:#d0d0d0;
    padding:14px 0;
    text-decoration:none;
    transition:.3s;
}

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

@media(max-width:768px){

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

    .sitemap .section-title h2{
        font-size:30px;
    }

    .sitemap-card{
        padding:30px;
    }

}

/* ========================================
   LEGAL
======================================== */

.legal{
	padding:80px 0;
}

.legal-list{
	max-width:900px;
	margin:0 auto;
	border-top:1px solid #333;
}

.legal-row{
	display:grid;
	grid-template-columns:220px 1fr;
	border-bottom:1px solid #333;
}

.legal-title{
	padding:22px 25px;
	font-weight:700;
	background:rgba(255,255,255,.03);
}

.legal-text{
	padding:22px 25px;
	line-height:1.9;
}

@media(max-width:768px){

	.legal{
		padding:50px 0;
	}

	.legal-row{
		grid-template-columns:1fr;
	}

	.legal-title{
		padding:16px 18px 6px;
		background:none;
	}

	.legal-text{
		padding:6px 18px 16px;
	}

}

/* ========================================
   TERMS
======================================== */

.terms{
	padding:80px 0;
}

.terms-content{
	max-width:900px;
	margin:0 auto;
}

.terms-content h2{
	margin:50px 0 18px;
	padding-bottom:12px;
	font-size:22px;
	font-weight:700;
	border-bottom:1px solid #333;
}

.terms-content h2:first-child{
	margin-top:0;
}

.terms-content p{
	margin:0 0 20px;
	font-size:15px;
	line-height:2;
}

.terms-content ul{
	margin:0 0 25px;
	padding:20px 25px 20px 45px;
	background:rgba(255,255,255,.03);
	border:1px solid #333;
}

.terms-content li{
	margin:8px 0;
	font-size:15px;
	line-height:1.8;
}

/* ========================================
   TERMS - SP
======================================== */

@media(max-width:768px){

	.terms{
		padding:50px 0;
	}

	.terms-content h2{
		margin:40px 0 15px;
		font-size:19px;
	}

	.terms-content p{
		font-size:14px;
		line-height:1.9;
	}

	.terms-content ul{
		padding:16px 18px 16px 38px;
	}

	.terms-content li{
		font-size:14px;
	}

}

/* ========================================
   PRIVACY
======================================== */

.privacy{
	padding:80px 0;
}

.privacy-content{
	max-width:900px;
	margin:0 auto;
}

.privacy-content h2{
	margin:50px 0 18px;
	padding-bottom:12px;
	font-size:22px;
	font-weight:700;
	border-bottom:1px solid #333;
}

.privacy-content h2:first-of-type{
	margin-top:45px;
}

.privacy-content p{
	margin:0 0 20px;
	font-size:15px;
	line-height:2;
}

.privacy-content ul{
	margin:0 0 25px;
	padding:20px 25px 20px 45px;
	background:rgba(255,255,255,.03);
	border:1px solid #333;
}

.privacy-content li{
	margin:8px 0;
	font-size:15px;
	line-height:1.8;
}

/* ========================================
   PRIVACY - SP
======================================== */

@media(max-width:768px){

	.privacy{
		padding:50px 0;
	}

	.privacy-content h2{
		margin:40px 0 15px;
		font-size:19px;
	}

	.privacy-content h2:first-of-type{
		margin-top:35px;
	}

	.privacy-content p{
		font-size:14px;
		line-height:1.9;
	}

	.privacy-content ul{
		padding:16px 18px 16px 38px;
	}

	.privacy-content li{
		font-size:14px;
	}

}

/* ========================================
   PAGE-TOP
======================================== */
.page-top{
	position:fixed;
	right:25px;
	bottom:25px;
	width:55px;
	height:55px;
	background:#333;
	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:#555;
	transform:translateY(-3px);
}

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

/* ========================================
   DOMAIN-NOTE
======================================== */
.domain-note{
	margin-top:30px;
	padding:22px 25px;
	background:#181818;
	border:1px solid rgba(212,175,55,.4);
	border-radius:8px;
}

.domain-note h3{
	margin:0 0 12px;
	color:#d4af37;
	font-size:18px;
}

.domain-note p{
	margin:0;
	color:#ccc;
	font-size:14px;
	line-height:1.9;
}

.domain-note code{
	display:inline-block;
	margin:4px 0;
	padding:3px 8px;
	background:#111;
	border:1px solid #333;
	border-radius:4px;
	color:#fff;
	font-family:monospace;
}

.domain-free{
	margin:18px 0 8px !important;
	padding:14px 18px;
	background:rgba(212,175,55,.08);
	border-left:3px solid #d4af37;
	color:#fff !important;
}

.domain-free i{
	margin-right:8px;
	color:#d4af37;
}

.domain-free strong{
	color:#d4af37;
	font-size:18px;
}

.sp-only{
	display:none;
}

@media(max-width:768px){
	.sp-only{
		display:block;
	}
}