@charset "UTF-8";
/* =========================================================
   矢神マリッジ  common stylesheet
   メインカラー：#f85a90
   ========================================================= */

:root {
  /* --- メインカラー（ピンク）とその濃淡 --- */
  --main:#f85a90;        /* メインカラー */
 --main-dark:#e0426f;   /* ホバー・強調 */
 --main-deep:#b02a55;   /* 白文字を載せる濃色面（ナビ／フッター／CTA） */
 --main-deeper:#8e1f43; /* グラデーションの締め色 */
 --main-tint:#fdf2f6;   /* 薄いピンクの背景 */
 --main-tint-2:#fbe4ec; /* やや濃い背景 */
 --text:#2c2c2c;
 --text-light:#6b5b61;
 --line:#f0dde4;
 --white:#fff;
 --radius:14px;
 --shadow:0 8px 24px rgba(176, 42, 85, .10);
 --shadow-lg:0 16px 40px rgba(176, 42, 85, .18);
 --serif:"Noto Serif JP", "Yu Mincho", '游明朝', serif;
 --sans:"Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
 --maxw:1120px;
}

/* ---------- reset ---------- */
*, *::before, *::after {
box-sizing:border-box;
}
html {
	scroll-behavior:smooth;
}
body {
	margin:0;
	font-family:var(--sans);
	color:var(--text);
	background:var(--white);
	line-height:1.9;
	font-size:16px;
	letter-spacing:.02em;
	-webkit-text-size-adjust:100%;
}
img {
	max-width:100%;
	height:auto;
	display:block;
}
a {
	color:var(--main-deep);
	text-decoration:none;
transition:color .2s, opacity .2s;
}
a:hover {
	color:var(--main);
}
h1, h2, h3, h4, p, ul, ol, figure, dl {
	margin:0;
}
ul, ol {
	padding:0;
	list-style:none;
}
table {
	border-collapse:collapse;
	width:100%;
}
button {
	font-family:inherit;
}
.skip-link {
	position:absolute;
	left:-9999px;
	top:0;
	background:var(--main-deep);
	color:#fff;
	padding:.6em 1em;
	z-index:999;
}
.skip-link:focus {
	left:0;
	color:#fff;
}

:focus-visible {
outline:3px solid var(--main);
outline-offset:2px;
}
.container {
	width:min(100% - 2.5rem, var(--maxw));
	margin-inline:auto;
}
.container-narrow {
	width:min(100% - 2.5rem, 860px);
}
/* =========================================================
   HEADER
   ========================================================= */
.site-header {
	position:sticky;
	top:0;
	z-index:100;
	background:rgba(255, 255, 255, .97);
	border-bottom:1px solid var(--line);
	backdrop-filter:saturate(140%) blur(6px);
}
.header-inner {
	width:min(100% - 2rem, var(--maxw));
	margin-inline:auto;
	display:flex;
	align-items:center;
	gap:1rem;
 padding:.7rem 0;
}
.brand {
	display:flex;
	align-items:center;
gap:.7rem;
	color:var(--main-deep);
	flex:1 1 auto;
	min-width:0;
}
.brand-mark {
	width:88px;
	height:88px;
	flex:none;
	color:var(--main-deep);
}
.brand-mark svg {
	width:100%;
	height:100%;
}
.brand-text {
	display:flex;
	flex-direction:column;
	min-width:0;
}
.brand-tagline {
 font-size:.8rem;
	letter-spacing:.06em;
	color:var(--main-dark);
	font-weight:700;
	line-height:1.4;
}
.brand-name {
	font-family:var(--serif);
	font-size:1.8rem;
	font-weight:700;
	line-height:1.25;
	letter-spacing:.08em;
	color:var(--main-deep);
}
 @media (max-width:640px) {
.brand-mark {
width:70px;
height:70px;
}
.brand-mark svg {
}
.brand-text {
}
.brand-tagline {
 font-size:.5rem;
letter-spacing:.06em;
 line-height:1.4;
}
.brand-name {
font-size:1.6rem;
}
}
.header-contact {
	flex:none;
	text-align:right;
	line-height:1.45;
	padding-left:1rem;
	border-left:1px solid var(--line);
}
.contact-lead {
font-size:.7rem;
	color:var(--text-light);
}
.contact-tel {
	font-family:var(--serif);
	font-size:1.5rem;
	font-weight:700;
	letter-spacing:.03em;
}
.contact-tel a {
	color:var(--main-deep);
}
.contact-tel .free {
	margin-right:.15em;
	font-size:.9em;
}
.contact-note {
font-size:.7rem;
	color:var(--text-light);
}
.nav-toggle {
	display:none;
	flex-direction:column;
	align-items:center;
	justify-content:center;
gap:.28rem;
	width:52px;
	height:46px;
	border:1px solid var(--line);
	border-radius:10px;
	background:var(--white);
	cursor:pointer;
	color:var(--main-deep);
	flex:none;
}
.nav-toggle .bar, .nav-toggle .bar::before, .nav-toggle .bar::after {
 display:block;
width:22px;
height:2px;
background:var(--main-deep);
transition:.25s;
}
.nav-toggle .bar {
	position:relative;
}
.nav-toggle .bar::before, .nav-toggle .bar::after {
content:"";
position:absolute;
left:0;
}
.nav-toggle .bar::before {
top:-7px;
}
.nav-toggle .bar::after {
top:7px;
}
.nav-toggle-label {
font-size:.55rem;
	letter-spacing:.08em;
	font-weight:700;
}
.nav-toggle[aria-expanded="true"] .bar {
	background:transparent;
}
.nav-toggle[aria-expanded="true"] .bar::before {
top:0;
transform:rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .bar::after {
top:0;
transform:rotate(-45deg);
}
/* nav */
.global-nav {
	background:var(--main-deep);
}
.global-nav ul {
	width:min(100% - 2rem, var(--maxw));
	margin-inline:auto;
	display:flex;
}
.global-nav li {
	flex:1 1 0;
}
.global-nav a {
	display:block;
	text-align:center;
	color:#fff;
 padding:.95rem .4rem;
	font-weight:500;
	letter-spacing:.08em;
font-size:1.1rem;
	position:relative;
}
.global-nav a::after {
 content:"";
position:absolute;
left:50%;
bottom:.5rem;
transform:translateX(-50%);
 width:0;
height:2px;
background:#ffd0de;
transition:width .25s;
}
.global-nav a:hover {
	color:#fff;
	background:var(--main-dark);
}
.global-nav a:hover::after, .global-nav a.is-current::after {
width:44%;
}
.global-nav a.is-current {
	color:#ffdbe6;
	background:var(--main-dark);
}
/* =========================================================
   BUTTONS
   ========================================================= */
.btn {
	display:inline-block;
	padding:.85em 2.2em;
	border-radius:999px;
	font-weight:700;
	letter-spacing:.08em;
	text-align:center;
 transition:transform .2s, box-shadow .2s, background-color .2s, color .2s;
	border:2px solid transparent;
	cursor:pointer;
}
.btn-cta {
	background:var(--main);
	color:#fff;
	font-size:1.1rem;
	padding:1em 3.2em;
	box-shadow:0 10px 22px rgba(248, 90, 144, .45);
}
.btn-cta:hover {
	background:var(--main-dark);
	color:#fff;
	transform:translateY(-2px);
}
/* =========================================================
   HERO (top page) ― PC／スマホの2枚をpictureで出し分け
   ========================================================= */
.hero {
	background:var(--main-tint);
}
.hero picture {
	display:block;
}
.hero img {
	width:100%;
	height:auto;
}
/* 画面読み上げ用の見出し（視覚的には非表示） */
.visually-hidden {
	position:absolute;
	width:1px;
	height:1px;
	margin:-1px;
	padding:0;
	overflow:hidden;
	clip:rect(0 0 0 0);
	clip-path:inset(50%);
	white-space:nowrap;
	border:0;
}
/* =========================================================
   PAGE HERO (sub pages)
   ========================================================= */
.page-hero {
	position:relative;
	background:var(--main-deep);
	overflow:hidden;
}
.page-hero-media {
	position:absolute;
	inset:0;
}
.page-hero-media img {
	width:100%;
	height:100%;
	object-fit:cover;
	opacity:.5;
}
.page-hero::after {
content:"";
position:absolute;
inset:0;
background:linear-gradient(90deg, rgba(142, 31, 67, .82), rgba(176, 42, 85, .5));
}
.page-hero-copy {
	position:relative;
	z-index:2;
	color:#fff;
	text-align:center;
	padding:3.6rem 1rem;
}
.page-hero-en {
font-size:.78rem;
	letter-spacing:.3em;
	color:#ffd0de;
	font-weight:700;
}
.page-hero-title {
	font-family:var(--serif);
	font-size:clamp(1.6rem, 4.4vw, 2.4rem);
	letter-spacing:.1em;
margin-top:.4rem;
	font-weight:600;
}
/* breadcrumb */
.breadcrumb {
	background:var(--main-tint);
	border-bottom:1px solid var(--line);
}
.breadcrumb ol {
	display:flex;
	flex-wrap:wrap;
gap:.4rem;
font-size:.78rem;
padding:.6rem 0;
	color:var(--text-light);
}
.breadcrumb li+li::before {
content:"›";
margin-right:.4rem;
color:var(--main);
}
/* =========================================================
   SECTION BASE
   ========================================================= */
.section {
	padding:4.5rem 0;
}
.section-tinted {
	background:var(--main-tint);
}
.section-title {
	font-family:var(--serif);
	text-align:center;
	font-size:clamp(1.35rem, 3.6vw, 1.9rem);
	font-weight:600;
	letter-spacing:.08em;
	color:var(--main-deep);
	line-height:1.6;
margin-bottom:.6rem;
}
.section-title .ja {
	display:inline-block;
	position:relative;
padding-bottom:.7rem;
}
.section-title .ja::after {
 content:"";
position:absolute;
left:50%;
bottom:0;
transform:translateX(-50%);
 width:52px;
height:3px;
background:var(--main);
border-radius:2px;
}
.section-lead {
	text-align:center;
	color:var(--text-light);
	margin:1.2rem auto 0;
	max-width:50em;
}
.note-center {
	text-align:center;
	margin-top:1.2rem;
	color:var(--main-dark);
	font-weight:700;
}
/* =========================================================
   GREETING / PROFILE
   ========================================================= */
.section-greeting {
	padding-top:3.5rem;
}
.greeting-grid {
	display:grid;
	gap:2.2rem;
	margin-top:2.6rem;
	grid-template-columns:1fr 1fr;
	align-items:start;
}
.video-frame {
	position:relative;
	/* aspect-ratio:16/9;*/
	aspect-ratio:16/12.2;
	width:100%;
	background:var(--main-deep);
	border-radius:var(--radius);
	overflow:hidden;
	box-shadow:var(--shadow-lg);
}
.video-frame iframe {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	border:0;
}
.video-placeholder {
	position:absolute;
	inset:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
 gap:.5rem;
	color:#fff;
	text-align:center;
	padding:1rem;
	background:radial-gradient(circle at 50% 40%, #c93a68 0%, #8e1f43 75%);
}
.play-icon {
	width:74px;
	display:block;
}
.play-icon svg {
	width:100%;
	height:auto;
}
.video-placeholder p {
	font-weight:700;
	letter-spacing:.06em;
}
.video-placeholder .video-note {
	font-weight:400;
font-size:.82rem;
	color:#ffd8e4;
}
.profile-block {
	background:var(--white);
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:1.6rem 1.8rem;
	box-shadow:var(--shadow);
	border-top:4px solid var(--main);
}
.profile-name {
	font-family:var(--serif);
	font-size:1.3rem;
	color:var(--main-deep);
	font-weight:700;
	letter-spacing:.06em;
	border-bottom:2px solid var(--main);
padding-bottom:.4rem;
margin-bottom:.7rem;
}
.profile-name .ruby {
font-size:.72rem;
	font-weight:400;
	color:var(--text-light);
	margin-left:.3em;
	letter-spacing:0;
}
.profile-list li {
 font-size:.9rem;
	line-height:1.85;
	padding-left:1.1em;
	position:relative;
margin-bottom:.35rem;
}
.profile-list li::before {
 content:"";
position:absolute;
left:0;
top:.75em;
width:6px;
height:6px;
 background:var(--main);
border-radius:50%;
}
.profile-list .indent {
	display:inline-block;
	padding-left:1em;
}
/* =========================================================
   CHECK CARDS （こんな人に最適）
   ========================================================= */
.check-cards {
	margin-top:2.6rem;
	display:grid;
	gap:1rem;
	grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
}
.check-cards li {
	background:var(--white);
	border-radius:var(--radius);
	padding:1.3rem 1.3rem 1.3rem 3.4rem;
	position:relative;
	box-shadow:var(--shadow);
font-size:.94rem;
	line-height:1.85;
	border-left:4px solid var(--main);
}
.check-cards .check {
	position:absolute;
	left:1.1rem;
	top:1.35rem;
	width:20px;
	height:20px;
	border-radius:50%;
	background:var(--main);
}
.check-cards .check::after {
 content:"";
position:absolute;
left:6px;
top:3px;
width:6px;
height:11px;
 border-right:2.5px solid #fff;
border-bottom:2.5px solid #fff;
transform:rotate(42deg);
}
/* =========================================================
   DIFF （他社との違い）
   ========================================================= */
.diff-layout {
	margin-top:2.6rem;
	display:grid;
	gap:2rem;
	grid-template-columns:1.35fr 1fr;
	align-items:start;
}
.diff-list {
	counter-reset:diff;
}
.diff-list li {
	counter-increment:diff;
	position:relative;
padding:.9rem 0 .9rem 3.1rem;
	border-bottom:1px dashed var(--line);
font-size:1.2rem;
	line-height:1.9;
}
.diff-list li:last-child {
	border-bottom:0;
}
.diff-list li::before {
 content:counter(diff, decimal-leading-zero);
 position:absolute;
left:0;
top:.95rem;
 font-family:var(--serif);
font-size:1rem;
font-weight:700;
color:#fff;
 background:var(--main);
width:2.1rem;
height:2.1rem;
border-radius:50%;
 display:flex;
align-items:center;
justify-content:center;
line-height:1;
}
.diff-list a {
	color:var(--main-dark);
	text-decoration:underline;
	font-weight:700;
}
.diff-photo {
	margin:0;
	border-radius:var(--radius);
	overflow:hidden;
	box-shadow:var(--shadow-lg);
}
.diff-photo img {
	width:100%;
	height:100%;
	min-height:320px;
	object-fit:cover;
}
/* =========================================================
   VIDEO BUTTONS
   ========================================================= */
.video-buttons {
	margin-top:2.2rem;
	display:grid;
	gap:1rem;
	grid-template-columns:repeat(4, 1fr); /* PC：4カラム×2行 */
}
.vbtn {
	display:flex;
	align-items:center;
gap:.7rem;
	height:100%;
	background:var(--white);
	border:1px solid var(--line);
	border-left:4px solid var(--main);
	border-radius:12px;
	padding:1.05rem 1.1rem;
	box-shadow:var(--shadow);
	font-weight:700;
	color:var(--main-deep);
	line-height:1.5;
 transition:transform .2s, box-shadow .2s, background-color .2s;
}
.vbtn:hover {
	transform:translateY(-3px);
	box-shadow:var(--shadow-lg);
	background:var(--main-tint);
	color:var(--main-deep);
}
.vbtn-icon {
	flex:none;
	width:30px;
	height:30px;
	border-radius:50%;
	background:var(--main);
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
font-size:.7rem;
	padding-left:2px;
}
.vbtn-label {
font-size:.9rem;
}
.vbtn-label small {
	display:block;
font-size:.72rem;
	font-weight:500;
	color:var(--text-light);
}
/* =========================================================
   CAMPAIGN
   ========================================================= */
.section-campaign {
	background:linear-gradient(180deg, var(--main-tint-2), var(--white));
}
.campaign-title .badge {
	display:inline-block;
	background:var(--main-deep);
	color:#fff;
font-size:.78rem;
	font-weight:700;
	letter-spacing:.08em;
	padding:.3em 1em;
	border-radius:999px;
margin-bottom:.6rem;
	font-family:var(--sans);
}
.campaign-title {
	display:flex;
	flex-direction:column;
	align-items:center;
}
.campaign-box {
	margin-top:2.2rem;
	background:var(--white);
	border:2px solid var(--main);
	border-radius:var(--radius);
	padding:2rem 1.8rem;
	box-shadow:var(--shadow);
}
.campaign-list li {
	position:relative;
	padding-left:1.6rem;
	margin-bottom:1.4rem;
	font-size:1rem;
	line-height:1.95;
}
.campaign-list li:last-child {
	margin-bottom:0;
}
.campaign-list li::before {
 content:"";
position:absolute;
left:0;
top:.78em;
width:9px;
height:9px;
 background:var(--main);
transform:rotate(45deg);
}
.campaign-list .small {
font-size:.85rem;
	color:var(--main-deep);
	font-weight:700;
}
.campaign-list .sub {
	display:block;
font-size:.88rem;
	color:var(--text-light);
margin-top:.2rem;
}
/* =========================================================
   CTA
   ========================================================= */
.cta {
	color:#fff;
	text-align:center;
	padding:3.4rem 0;
	background-image:linear-gradient(135deg, var(--main-deeper) 0%, var(--main-deep) 55%, #d13a68 100%);
}
.cta-text {
	font-family:var(--serif);
	font-size:clamp(1.1rem, 3vw, 1.4rem);
	letter-spacing:.06em;
	margin-bottom:1.4rem;
}
.cta .btn-cta {
	background:#fff;
	color:var(--main-deep);
	box-shadow:0 10px 22px rgba(0, 0, 0, .18);
}
.cta .btn-cta:hover {
	background:#ffe3ec;
	color:var(--main-deep);
}
.cta-tel {
	margin-top:1.4rem;
	font-family:var(--serif);
	font-size:1.8rem;
	font-weight:700;
	letter-spacing:.04em;
}
.cta-tel a {
	color:#fff;
}
.cta-tel a:hover {
	color:#ffd0de;
}
.cta-tel-note {
	display:block;
	font-family:var(--sans);
font-size:.78rem;
	font-weight:400;
	letter-spacing:.04em;
	color:#ffd9e5;
margin-top:.2rem;
}
/* =========================================================
   PRICE PAGE
   ========================================================= */
.tax-note {
	text-align:center;
	color:var(--main-dark);
	font-weight:700;
font-size:.9rem;
margin-top:.5rem;
}
.plan {
	margin-top:2.6rem;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:2rem 1.8rem;
	background:var(--white);
	box-shadow:var(--shadow);
}
.plan-title {
	font-family:var(--serif);
	font-size:1.2rem;
	color:var(--main-deep);
	font-weight:700;
	letter-spacing:.05em;
	line-height:1.6;
padding-left:.9rem;
	border-left:5px solid var(--main);
	margin-bottom:1.4rem;
}
.plan-flag {
	display:inline-block;
margin-left:.8rem;
	background:var(--main);
	color:#fff;
	font-family:var(--sans);
font-size:.7rem;
	letter-spacing:.08em;
	padding:.25em .9em;
	border-radius:999px;
	vertical-align:middle;
}
.plan-highlight {
	border:2px solid var(--main);
	background:linear-gradient(180deg, #fff6f9, #fff);
}
.plan-premium {
	background:linear-gradient(180deg, #fdf5f8, #fff);
}
.plan-support {
	background:var(--main-tint);
}
.plan-support p {
margin-bottom:.4rem;
}
.price-cards {
	display:grid;
	gap:1.1rem;
	grid-template-columns:repeat(3, 1fr);
}
.price-card {
	background:var(--white);
	border:1px solid var(--line);
	border-radius:12px;
	text-align:center;
	padding:1.4rem 1rem;
	position:relative;
}
.price-en {
	font-family:var(--serif);
	letter-spacing:.16em;
	color:var(--main-dark);
 font-size:.9rem;
	font-weight:700;
	text-transform:uppercase;
}
.price-label {
font-size:.82rem;
	color:var(--text-light);
margin-top:.3rem;
	line-height:1.5;
	min-height:2.6em;
}
.price-value {
	font-family:var(--serif);
	font-size:clamp(1.6rem, 4.6vw, 2.1rem);
	font-weight:700;
	color:var(--main-deep);
	letter-spacing:.02em;
	line-height:1.3;
margin-top:.3rem;
}
.price-value .yen {
	font-size:.55em;
	margin-left:.15em;
}
.plan-note {
	margin-top:1rem;
font-size:.86rem;
	color:var(--main-dark);
	font-weight:700;
	text-align:right;
}
.promise {
	background:var(--main-tint);
	border-radius:12px;
	padding:1.2rem 1.3rem;
	margin-bottom:1.4rem;
}
.promise-head {
	font-family:var(--serif);
	font-weight:700;
	color:var(--main-deep);
margin-bottom:.4rem;
	letter-spacing:.06em;
}
.promise-list li {
	position:relative;
	padding-left:1.9rem;
font-size:.93rem;
	line-height:1.9;
margin-bottom:.3rem;
}
.promise-list .num {
	position:absolute;
	left:0;
	top:0;
	color:var(--main-dark);
	font-weight:700;
}
/* flow */
.flow {
	margin-top:2.6rem;
	display:grid;
	gap:1.5rem;
	grid-template-columns:repeat(5, 1fr);
}
.flow-step {
	position:relative;
	background:var(--white);
	border-radius:var(--radius);
	padding:1.5rem 1rem;
	text-align:center;
	box-shadow:var(--shadow);
	border-top:4px solid var(--main);
}
.flow-step::after {
 content:"";
position:absolute;
right:-1.05rem;
top:50%;
transform:translateY(-50%);
 width:0;
height:0;
border-left:11px solid var(--main);
 border-top:9px solid transparent;
border-bottom:9px solid transparent;
}
.flow-step:last-child::after {
display:none;
}
.flow-num {
	display:inline-block;
	font-family:var(--serif);
font-size:.72rem;
	letter-spacing:.12em;
	color:#fff;
	background:var(--main);
	padding:.2em 1em;
	border-radius:999px;
	font-weight:700;
}
.flow-goal {
	border-top-color:var(--main-deep);
}
.flow-goal .flow-num {
	background:var(--main-deep);
}
.flow-title {
	font-family:var(--serif);
	font-size:1.02rem;
	color:var(--main-deep);
margin-top:.7rem;
	font-weight:700;
	letter-spacing:.04em;
	line-height:1.5;
}
.flow-desc {
font-size:.85rem;
	color:var(--text-light);
margin-top:.3rem;
	line-height:1.6;
}
.flow-desc .aster {
	color:var(--main-dark);
	font-weight:700;
}
.flow-note {
	margin-top:1.6rem;
font-size:.87rem;
	color:var(--text-light);
	text-align:center;
}
/* =========================================================
   COMPANY PAGE
   ========================================================= */
.mission {
	text-align:center;
	font-family:var(--serif);
	color:var(--main-dark);
	font-size:clamp(1.05rem, 3vw, 1.35rem);
	letter-spacing:.08em;
	margin-top:1.6rem;
}
.company-table {
	margin-top:2.2rem;
	border-top:2px solid var(--main);
font-size:.95rem;
}
.company-table th, .company-table td {
	padding:1.05rem 1.2rem;
	border-bottom:1px solid var(--line);
	text-align:left;
	vertical-align:top;
	line-height:1.85;
}
.company-table th {
	width:26%;
	background:var(--main-tint);
	color:var(--main-deep);
	font-weight:700;
	letter-spacing:.06em;
	white-space:nowrap;
}
.company-table td a {
	color:var(--main-dark);
	text-decoration:underline;
	word-break:break-all;
}
.td-note {
	display:inline-block;
font-size:.82rem;
	color:var(--text-light);
	line-height:1.7;
}
.td-list li {
	position:relative;
	padding-left:1rem;
}
.td-list li::before {
 content:"";
position:absolute;
left:0;
top:.8em;
width:6px;
height:6px;
background:var(--main);
border-radius:50%;
}
/* =========================================================
   FAQ
   ========================================================= */
.faq-list {
	margin-top:2.4rem;
	display:grid;
	gap:1rem;
}
.faq-item details {
	background:var(--white);
	border:1px solid var(--line);
	border-radius:var(--radius);
	box-shadow:var(--shadow);
	overflow:hidden;
}
.faq-item summary {
	display:flex;
	align-items:flex-start;
gap:.9rem;
	cursor:pointer;
	padding:1.15rem 3rem 1.15rem 1.2rem;
	position:relative;
	list-style:none;
	font-weight:700;
	color:var(--main-deep);
	line-height:1.7;
}
.faq-item summary::-webkit-details-marker {
display:none;
}
.faq-item summary:hover {
	background:var(--main-tint);
}
.faq-item summary::after {
 content:"";
position:absolute;
right:1.3rem;
top:1.6rem;
 width:11px;
height:11px;
border-right:2px solid var(--main);
border-bottom:2px solid var(--main);
 transform:rotate(45deg);
transition:transform .25s;
}
.faq-item details[open] summary::after {
transform:rotate(-135deg);
top:1.9rem;
}
.faq-item .q, .faq-item .a {
	flex:none;
	width:30px;
	height:30px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	font-family:var(--serif);
	font-weight:700;
font-size:.95rem;
	color:#fff;
}
.faq-item .q {
	background:var(--main-deep);
}
.faq-item .a {
	background:var(--main);
}
.faq-q {
	flex:1 1 auto;
}
.faq-a {
	display:flex;
gap:.9rem;
	align-items:flex-start;
	padding:1.15rem 1.2rem 1.35rem;
	border-top:1px dashed var(--line);
	background:var(--main-tint);
 font-size:.95rem;
	line-height:1.95;
}
.faq-a a {
	color:var(--main-dark);
	text-decoration:underline;
	word-break:break-all;
}
/* =========================================================
   FORM
   ========================================================= */
.contact-form {
	margin-top:2.4rem;
	background:var(--white);
	border-radius:var(--radius);
	padding:2rem 1.8rem;
	box-shadow:var(--shadow);
	border:1px solid var(--line);
}
.form-row {
	display:grid;
	grid-template-columns:300px 1fr;
	gap:1rem;
	align-items:center;
	margin-bottom:1.15rem;
}
.form-row label {
	font-weight:700;
	color:var(--main-deep);
font-size:.93rem;
	line-height:1.6;
}
.req {
	display:inline-block;
	background:var(--main);
	color:#fff;
font-size:.66rem;
	font-weight:700;
	padding:.15em .7em;
	border-radius:3px;
	margin-left:.6em;
	vertical-align:middle;
	letter-spacing:.06em;
}
.contact-form input, .contact-form select {
	width:100%;
padding:.75rem .9rem;
	border:1px solid var(--line);
	border-radius:8px;
	font-size:1rem;
	font-family:inherit;
	background:var(--main-tint);
	color:var(--text);
 transition:border-color .2s, background-color .2s;
}
.contact-form input:focus, .contact-form select:focus {
	background:#fff;
	border-color:var(--main);
	outline:none;
	box-shadow:0 0 0 3px rgba(248, 90, 144, .25);
}
.contact-form input::placeholder {
color:#b3a2a8;
}
.contact-form input[aria-invalid="true"] {
	border-color:#c62828;
	background:#fdf0f0;
}
.form-privacy {
font-size:.82rem;
	color:var(--text-light);
	margin-top:1.4rem;
	text-align:center;
}
.form-submit {
	text-align:center;
	margin-top:1.4rem;
}
.form-message {
	margin-top:1.2rem;
	text-align:center;
	font-weight:700;
padding:.9rem 1rem;
	border-radius:10px;
}
.form-message.is-error {
	background:#fdecec;
	color:#b3261e;
}
.form-message.is-success {
	background:#f2f8f2;
	color:#2f7a45;
}
/* =========================================================
   FOOTER
   ========================================================= */
.site-footer {
	background:var(--main-deep);
	color:#ffe6ee;
	padding:3rem 0 1.4rem;
font-size:.9rem;
}
.footer-inner {
	display:grid;
	grid-template-columns:1.3fr 1fr 1fr;
	gap:2rem;
	align-items:start;
}
.footer-name {
	font-family:var(--serif);
	font-size:1.35rem;
	color:#fff;
	letter-spacing:.1em;
	font-weight:700;
}
.footer-tagline {
font-size:.78rem;
	color:#ffd0de;
margin-top:.3rem;
}
.footer-mission {
font-size:.85rem;
margin-top:.8rem;
	color:#ffdbe6;
}
.footer-nav ul {
	display:grid;
gap:.5rem;
}
.footer-nav a {
	color:#ffe6ee;
	padding-left:1rem;
	position:relative;
}
.footer-nav a::before {
content:"›";
position:absolute;
left:0;
color:#ffb6cd;
}
.footer-nav a:hover {
	color:#fff;
}
.footer-contact p {
	line-height:1.75;
font-size:.82rem;
}
.footer-tel {
	font-family:var(--serif);
	font-size:1.4rem;
	font-weight:700;
	letter-spacing:.03em;
}
.footer-tel a {
	color:#fff;
}
.footer-tel a:hover {
	color:#ffd0de;
}
.copyright {
	text-align:center;
font-size:.74rem;
	color:#f3c6d5;
	margin-top:2.2rem;
	border-top:1px solid rgba(255, 255, 255, .2);
	padding-top:1.2rem;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1000px) {
 .greeting-grid {
grid-template-columns:1fr;
}
 .diff-layout {
grid-template-columns:1fr;
}
 .diff-photo img {
min-height:240px;
}
 .flow {
grid-template-columns:repeat(2, 1fr);
}
 .flow-step::after {
display:none;
}
}
 @media (max-width:860px) {
 .header-contact {
display:none;
}
 .nav-toggle {
display:flex;
}
 .brand-name {
font-size:1.3rem;
}
 .global-nav {
 max-height:0;
overflow:hidden;
transition:max-height .3s ease;
 background:var(--main-deep);
}
 .global-nav.is-open {
max-height:400px;
}
 .global-nav ul {
flex-direction:column;
width:100%;
}
 .global-nav li {
border-bottom:1px solid rgba(255, 255, 255, .18);
}
 .global-nav a {
text-align:left;
padding:1rem 1.4rem;
}
 .global-nav a::after {
display:none;
}
 .global-nav a.is-current {
background:var(--main-dark);
}
 .video-buttons {
grid-template-columns:repeat(2, 1fr);
}
 .price-cards {
grid-template-columns:1fr;
}
 .price-label {
min-height:0;
}
 .form-row {
grid-template-columns:1fr;
gap:.4rem;
align-items:start;
}
 .footer-inner {
grid-template-columns:1fr;
gap:1.6rem;
text-align:center;
}
 .footer-nav a {
padding-left:0;
}
 .footer-nav a::before {
display:none;
}
}
 @media (max-width:640px) {
 body {
font-size:15px;
}
 .section {
padding:3.2rem 0;
}
 .profile-block {
padding:1.4rem 1.2rem;
}
 .video-buttons {
gap:.7rem;
}
 .vbtn {
padding:.9rem .8rem;
gap:.5rem;
}
 .vbtn-icon {
width:26px;
height:26px;
font-size:.62rem;
}
 .vbtn-label {
font-size:.88rem;
}
 .plan {
padding:1.5rem 1.1rem;
}
 .campaign-box {
padding:1.5rem 1.1rem;
}
 .contact-form {
padding:1.5rem 1.1rem;
}
 .flow {
grid-template-columns:1fr;
}
 .company-table th, .company-table td {
display:block;
width:100%;
}
 .company-table th {
border-bottom:0;
}
 .company-table td {
padding-top:.7rem;
}
 .cta-tel {
font-size:1.55rem;
}
 .btn-cta {
width:100%;
padding-inline:1rem;
}
}
 @media (prefers-reduced-motion:reduce) {
 * {
animation:none !important;
transition:none !important;
scroll-behavior:auto !important;
}
}


/* Flexboxレイアウト */ 

.f-wrap {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: stretch; /* アイテムを上揃えで配置します */
}

.f-wrap-AC {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center; /* アイテムを上下中央で配置します */
}

.f-wrap-end {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: end; /* アイテムを下揃えで配置します */
}

.f-wrap-HU {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	 /* アイテムの高さを揃える */
}

.f-wrap-cen {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

.f-wrap-even {
	display: flex;
	justify-content: space-evenly;
	flex-wrap: wrap;
}

.f-wrap-even-cen {
	display: flex;
	justify-content: space-evenly;
	flex-wrap: wrap;
	align-items: center; /* アイテムを上下中央で配置します */
}


.f-item1 {
	box-sizing: border-box;
	width: 100%;
	margin-bottom:30px;
}

.f-item1-2 {
	box-sizing: border-box;
	width: 47%;
	margin-bottom:30px;
}

.f-item1-2-USU {
	box-sizing: border-box;
	width: 47%;
}

.f-item1-2-t1 {
	box-sizing: border-box;
	width: 47%;
	margin-bottom:30px;
}

.f-item1-3 {
	box-sizing: border-box;
	width: 31%;
	margin-bottom:30px;
}

.f-item1-3-t1 {
	box-sizing: border-box;
	width: 31%;
	margin-bottom:30px;
}

.f-item1-3-t2 {
	box-sizing: border-box;
	width: 31%;
	margin-bottom:30px;
}

.f-item1-3-ts2 {
	box-sizing: border-box;
	width: 31%;
	margin-bottom:30px;
}

.f-item1-3-s2 {
	box-sizing: border-box;
	width: 31%;
	margin-bottom:30px;
}

.f-wrap-cen .f-item1-3-t2 {
	margin:0 1px 30px 10px;
}
	

.f-item1-3n2 {
	box-sizing: border-box;
	width: 30%;
}

.f-item2-3 {
	box-sizing: border-box;
	width: 64%;
	margin-bottom:30px;
}

.f-item2-3-t1 {
	box-sizing: border-box;
	width: 64%;
	margin-bottom:30px;
}


.f-item1-4 {
	box-sizing: border-box;
	width: 23%;
	margin-bottom:30px;
}

.f-item3-4 {
	box-sizing: border-box;
	width: 72%;
	margin-bottom:30px;
}

.f-item1-4-t1 {
	box-sizing: border-box;
	width: 23%;
	margin-bottom:30px;
}

.f-item1-4-t2 {
	box-sizing: border-box;
	width: 23%;
	margin-bottom:30px;
}

.f-item1-4-sp2 {
	box-sizing: border-box;
	width: 23%;
	margin-bottom:30px;
}

.f-item3-4-t1 {
	box-sizing: border-box;
	width: 72%;
	margin-bottom:30px;
}

.f-item1-5 {
	box-sizing: border-box;
	width: 19%;
	margin-bottom:30px;
}

.f-item1-5-t1 {
	box-sizing: border-box;
	width: 19%;
	margin-bottom:30px;
}

.f-item1-5-t2 {
	box-sizing: border-box;
	width: 19%;
	margin-bottom:30px;
}

.f-item1-5-t3 {
	box-sizing: border-box;
	width: 19%;
	margin-bottom:30px;
}

.f-item2-5 {
	box-sizing: border-box;
	width: 38%;
	margin-bottom:30px;
}

.f-item2-5-t1 {
	box-sizing: border-box;
	width: 38%;
	margin-bottom:30px;
}

.f-item3-5 {
	box-sizing: border-box;
	width: 57%;
	margin-bottom:30px;
}

.f-item4-5 {
	box-sizing: border-box;
	width: 76%;
	margin-bottom:30px;
}

.f-item4-5-t1 {
	box-sizing: border-box;
	width: 76%;
	margin-bottom:30px;
}

.f-item3-5-t1 {
	box-sizing: border-box;
	width: 57%;
	margin-bottom:30px;
}

.f-item1-6 {
	box-sizing: border-box;
	width: 15%;
	margin-bottom:30px;
}

.f-item1-6-t1 {
	box-sizing: border-box;
	width: 15%;
	margin-bottom:30px;
}

.f-item1-6-t2 {
	box-sizing: border-box;
	width: 15%;
	margin-bottom:30px;
}

.f-item1-6-t3 {
	box-sizing: border-box;
	width: 15%;
	margin-bottom:30px;
}

.f-item1-6-sp2 {
	box-sizing: border-box;
	width: 15%;
	margin-bottom:30px;
}



.f-Vcenter {
	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
	box-sizing: border-box;
}

.f-row-reverse {
	flex-flow: row-reverse wrap;
}

/* 最後のコンテンツを左寄せにする指定 */
.f-wrap-ad4:after {
    content: "";
    display: block;
    width: 48%;  /* f-itemに指定したwidthと同じ幅を指定する */
    height: 0;
}

.boxDummy {
	text-align:center;
	background-color: #CCC;
	width:100%;
	height:100%;
	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
	box-sizing: border-box;
	padding:1em;
}

@media screen and (max-width: 768px) {

.f-item1-2-t1 , .f-item1-3-t1 , .f-item2-3-t1 , .f-item1-4-t1 , .f-item3-4-t1 , .f-item1-5-t1 , .f-item2-5-t1 , .f-item3-5-t1 , f-item4-5-t1 , .f-item1-6-t1 {
	width: 100%;
}


.f-item1-3-t2 , .f-item1-3-ts2 , .f-item1-4-t2 , .f-item1-5-t2 , .f-item1-6-t2 {
	width: 49%;
}


.f-wrap-cen .f-item1-3-t2 {
	margin:0 3px 30px 3px;
}


.f-item1-5-t3 , .f-item1-6-t3 {
	width: 31%;
}


}

@media only screen and (max-width: 600px) {
.f-item1-2 , .f-item1-3 , .f-item1-3n2 , .f-item2-3 , .f-item1-4 , .f-item3-4 , .f-item1-5 , .f-item2-5 , .f-item3-5 , .f-item4-5 , .f-item1-6 {
	width: 100%;
	margin-bottom:30px;
}

.f-wrap-cen .f-item1-3-t2 {
	margin:0 0 30px 0;
}

.f-item1-3-t2 , .f-item1-4-t2 , .f-item1-5-t2 , .f-item1-6-t2 , .f-item1-5-t3 , .f-item1-6-t3 {
	width: 100%;
	margin-bottom:30px;
}

.f-item1-4-sp2 , .f-item1-6-sp2 {
	width: 49%;
	margin-bottom:30px;
}

.f-item1-2-USU {
	box-sizing: border-box;
	margin-bottom:10px;
}

.f-item1-3-s2 {
	width: 49%;
}


.spOrder1 {
	order:1;
}

.spOrder2 {
	order:2;
}

.spOrder3 {
	order:3;
}

.spOrder4 {
	order:4;
}

.spOrder5 {
	order:5;
}

.spOrder6 {
	order:6;
}


}


/* 枠  */ 

.boxSimple {
	border: solid 1px #CCC;	
	padding:1.5em;
	background: rgba(255,255,255,.9);
}

.boxSimple2 {
	border: solid 1px #CCC;	
	padding:1.5em;
	background: rgba(255,255,255,.9);
	border-radius: 10px;
	-webkit-border-radius: 10px; 
	-moz-border-radius:10px;
}
