/* ============================================
   Reset & Base
   ============================================ */

html {
	scroll-behavior: smooth;
	scroll-padding-top: 20px;
}

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

body {
	font-family: "Zen Kaku Gothic New", sans-serif;
	color: #363536;
	font-weight: 500;
	background: #ffffff;
	-webkit-font-smoothing: antialiased;
	animation: pageFade 0.8s ease both;
}

@keyframes pageFade {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


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

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

li {
    list-style: none;
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

/* ============================================
   汎用ユーティリティ
   ============================================ */
.br-sp {
	display: none;
}

.br-pc {
	display: block;
}

@media (min-width: 768px) {
	.br-sp {
		display: block;
	}
	.br-pc {
		display: none;
	}

}

.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	background: none!important;
	text-shadow: none!important;
	color: #8497A2!important;
}

/* ============================================
   Layout helper
   ============================================ */
.container {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ============================================
   Header
   ============================================ */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	width: 100%;
}

.site-header__inner {
	max-width: 1600px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: clamp(14px, 2vw, 24px);
}

.site-header__logo-area {
	display: flex;
	align-items: center;
	gap: 16px;
}

.site-header__logo img {
	height: clamp(16px, 2vw, 28px);
	width: auto;
}

.site-header__divider {
	display: none;
	width: 1px;
	height: 32px;
	background: #9ca3af;
}

.site-header__tagline {
	display: none;
	font-size: 12px;
	line-height: 1.6;
	color: #7d889a;
}

/* Desktop nav */
.site-nav {
	display: none;
}

.site-nav ul {
	display: flex;
	align-items: center;
	gap: 30px;
	list-style: none;
	font-family: "graveur-variable", serif;
	font-size: 16px;
}

.site-nav a {
	display: inline-block;
	padding: 4px 0;
	transition: color 0.2s ease;
}

.site-nav a:hover,
.site-nav .current-menu-item a {
	color: #C7AC75;
}

/* Mobile menu toggle */
.menu-toggle {
	position: relative;
	z-index: 50;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 32px;
	height: 12px;
	background: none;
	border: none;
	cursor: pointer;
}

.menu-bar {
	display: block;
	height: 1px;
	width: 100%;
	background: #363536;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 40;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 36px;
	background: #EAEBF3;
	transform: translateX(100%);
	transition: transform 0.3s ease-in-out;
}

.mobile-nav.is-open {
	transform: translateX(0);
}

.mobile-nav ul {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
	list-style: none;
	font-family: "graveur-variable", serif;
	font-size: 18px;
	letter-spacing: 0.15em;
}

@media (min-width: 1024px) {
	.site-header__divider,
	.site-header__tagline {
		display: block;
	}
	.site-nav {
		display: block;
	}
	.menu-toggle {
		display: none;
	}
	.mobile-nav {
		display: none;
	}
}

/* ============================================
   全ページ共通：Header下の余白を詰める
   ============================================ */
main#primary {
	margin-top: -90px;
	position: relative;
	z-index: 1;
}

/* ============================================
   Hero Section
   ============================================ */
.hero {
	position: relative;
	overflow: hidden;
	background: #EAEBF3;
}

.hero__inner {
	max-width: 1000px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr;
	padding: clamp(64px, 8vw, 96px) 24px clamp(15px, 12vw, 128px);
}

.hero__text {
	margin: clamp(0px, 15vw, 55px) 12px 0;
}

.hero__title {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.6;
	letter-spacing: -0.02em;
	color: #363536;
	font-weight: 500;
}

.hero__subcopy {
	margin-top: clamp(20px, 3vw, 40px);
	font-family: "graveur-variable", serif;
	font-size: clamp(15px, 1.6vw, 20px);
	line-height: 1.75;
	letter-spacing: 0.05em;
	color: #9ca3af;
}

.hero__illustration {
	width: 100%;
	max-width: 543px;
	margin: 0 auto;
}

@media (min-width: 581px) {
	.hero__inner {
		padding: clamp(64px, 12vw, 96px) 24px clamp(15px, 8vw, 128px);	
		grid-template-columns: 1fr 1fr;
		align-items: center;
	}

	.hero__text {
	padding-top: 130px;
	padding-left: 50px;
	}
	
	.hero__illustration {
		max-width: none;
		margin: 0;
		padding-right: 40px;	
	}
}

@media (min-width: 1024px) {
	.hero__text {
		padding-left: 40px;
	}
}

/* ============================================
   What We Do Section
   ============================================ */
.what-we-do {
	position: relative;
	overflow: hidden;
	background: #EAEBF3;
	padding-bottom: clamp(60px, 7vw, 128px);
}

.what-we-do__bgtext {
	user-select: none;
	text-align: center;
	font-family: "graveur-variable", serif;
	font-size: clamp(45px, 9vw, 90px);
	font-weight: 700;
	line-height: 1;
	color: #ffffff;
}

.what-we-do__text {
	max-width: 720px;
	margin: clamp(-40px, -3vw, -17px) auto 0;
	text-align: justify;
	font-size: clamp(15px, 1.5vw, 18px);
	line-height: 1.8;
	letter-spacing: -0.05em;
	color: #363536;
}

.what-we-do__text p + p {
	margin-top: 0;
}

.what-we-do__text p.spacer {
	margin-top: 24px;
}

@media (min-width: 581px) {
	.what-we-do__text {
		width: 85%;
		text-align: center;
	}

	.works-heading {
	padding-left: 40px;
	}
}

/* ============================================
   Section Heading (共通)
   ============================================ */
.section-heading {
	text-align: center;
	margin-bottom: clamp(45px, 5vw, 70px);
}

.section-heading__title {
	font-family: "graveur-variable", serif;
	font-size: clamp(36px, 5vw, 50px);
	letter-spacing: 0.05em;
	color: #363536;
	margin-bottom: 5%;
}

.section-heading__sub {
	margin-top: 5px;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(16px, 1.5vw, 17px);
	letter-spacing: 0.05em;
	font-weight: 700;
}

.section-heading__lead {
	margin-top: clamp(16px, 3vw, 50px);
	font-size: clamp(14px, 1.5vw, 16px);
	line-height: 1.9;
	max-width: 750px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.btn-gold {
	width: 90%;
	max-width: 300px;
	display: block;
	margin: 0 auto;
	background: #C7AC75;
	color: #ffffff;
	font-size: clamp(16px, 1.5vw, 18px);
	font-weight: 700;
	letter-spacing: 0.15em;
	padding: 16px 48px;
	text-align: center;
	transition: opacity 0.2s ease;
}

.btn-gold:hover {
	opacity: 0.9;
}

@media (min-width: 581px) {
	.section-heading__lead {
	text-align: center;
}
	}

@media (min-width: 1024px) {
	.section-heading__lead {
		text-align: center;
	}
}

/* ============================================
   テキストスタイル (共通)
   ============================================ */

.lead__text {
	margin-top: clamp(16px, 3vw, 50px);
	font-size: clamp(14px, 1.5vw, 16px);
	line-height: 1.8;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	text-align: justify;
}

.lead__text p + p {
	margin-top: 24px;
}

@media (min-width: 581px) {
.lead__text {
	text-align: center;
}
}

/* ============================================
   Works
   ============================================ */
.works {
	padding: clamp(65px, 6vw, 96px) 0;
	background: #ffffff;
}

.works-heading {
	max-width: 800px;
	margin-left: 0;
	margin-right: auto;
	text-align: left;
}

.works .section-heading__title .section-heading__sub {
	display: inline-block;
}

.works-heading .section-heading__lead {
	margin-top: 20px;
	margin-left: 0;
	margin-right: 0;
	text-align: left;
}

.works__grid {
	display: grid;
	grid-template-columns: 1fr;
	padding: 0 18px;
	gap: clamp(32px, 4vw, 55px);
}

.work-card {
	display: block;
	color: inherit;
}

.work-card__thumb {
	aspect-ratio: 4/5;
	overflow: hidden;
	border-radius: 8px;
	margin-bottom: 12px;
}

.work-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.work-card:hover .work-card__thumb img {
	transform: scale(1.05);
}

.work-card__title-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.work-card__cat {
	font-family: "graveur-variable", serif;
	font-size: 15px;
	font-weight: 700;
	color: #C7AC75;
	margin-bottom: 0;
	white-space: nowrap;
}

.work-card__client {
	font-size: clamp(16px, 1.2vw, 17px);
	font-weight: 500;
	color: #363536;
}

.work-card__genre {
	font-size: clamp(14px, 1.2vw, 15px);
	color: #6b7280;
	margin-top: 7px;
}

.works__more {
	text-align: center;
	margin-top: 56px;
}

@media (min-width: 581px) {
	.works__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 42px 34px;
	}
}

@media (min-width: 1024px) {
	.works__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ============================================
   About
   ============================================ */
.about {
	position: relative;
	padding: clamp(45px, 6vw, 120px) 0 clamp(270px, 20vw, 230px);
	background-color: #ffffff;
	background-image: url('../images/about-illustration.png');
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 85%;
}

.about__text {
	position: relative;
	z-index: 1;
	margin-top: clamp(40px, 3vw, 56px);
	font-size: clamp(14px, 1.2vw, 16px);
	line-height: 1.8;
	max-width: 480px;
}

.about__text p + p {
	margin-top: 24px;
}

.about__signature {
	margin-top: 24px;
	font-size: 13px;
	color: #9ca3af;
}

@media (min-width: 581px) {
	.about {
	padding: clamp(45px, 6vw, 120px) 0 clamp(150px, 20vw, 230px);
	background-size: 64%;
	background-position: right bottom;
}
	.about .container {
	padding: 0 74px;
}
}

@media (min-width: 1024px) {
	.about {
		margin: 0 auto;
		background-position: right center;
		max-width: 1200px!important;
	}

}

/* ============================================
   Services
   ============================================ */
.services {
	padding: clamp(65px, 6vw, 96px) 0 0;
	background: #ffffff;
}

.services__inner {
	max-width: 1400px;
	margin: 0 auto;
}

.services__inner .section-heading {
	padding: 0 24px;
}

.services__inner .section-heading__title,
.contact-form .section-heading__title,
.flow .section-heading__title,
.privacy .section-heading .section-heading__title {
	margin-bottom: 9%;
}

.section-heading__sub {
	display: block;
}

.services__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin-top: 48px;
	border-top: 2px solid #C7AC75;
	border-left: 2px solid #C7AC75;
}

@media (min-width: 581px) {
	.section-heading .section-heading__title {
			margin-bottom: 5%;
	}
	.services__grid {
		grid-template-columns: 1fr 1fr;
	}

}

.service-card {
	background: #ffffff;
	border-right: 2px solid #C7AC75;
	border-bottom: 2px solid #C7AC75;
}

.service-card__thumb {
	width: 100%;
	aspect-ratio: 640 / 332;
	overflow: hidden;
	margin-bottom: 10px;
}

.service-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.service-card:first-child .service-card__thumb {
	margin-bottom: 30px;
}

.service-card__title-wrap {
	min-height: 66px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.service-card__title {
	text-align: center;
	font-size: clamp(16px, 1.5vw, 18px);
	font-weight: 500;
	line-height: 1.6;
	color: #363536;
}

.service-card__title-sub {
	font-size: clamp(13px, 1.2vw, 15px);
	font-weight: 400;
	color: #8b94a5;
}

.service-card__desc {
	padding: 0 30px 40px;
	font-size: clamp(13px, 1.5vw, 16px);
	line-height: 1.7;
	color: #4b5563;
}

/* ============================================
   Price / Flow Teaser
   ============================================ */
.price-flow {
	position: relative;
	margin: 0 auto;
	padding: clamp(44px, 7vw, 130px) 0 clamp(66px, 12vw, 200px);
	overflow: hidden;
	background-color: #f0f2fd;
	background-image: url("../images/grad-bg.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	max-width: 1300px;
}

.price-flow__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: stretch;
}

@media (min-width: 581px) {
	.price-flow__grid {
		grid-template-columns: 1fr 1fr;
	}
}
@media (min-width: 1024px) {
	.price-flow {
		background-color: #ffffff;
	}
}

.price-flow-card {
	position: relative;
	display: flex;
	flex-direction: column;
	text-align: center;
	padding: clamp(36px, 3vw, 56px) clamp(25px, 4vw, 42px);
	border-radius: 40px;
	background: rgba(255, 255, 255, 0.57);
}

.price-flow-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 40px;
	border: 3px solid #ffffff;
	pointer-events: none;
}

.price-flow-card__icon {
	width: clamp(90px, 12vw, 150px);
	height: clamp(75px, 10vw, 125px);
	margin: 0 auto 24px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.price-flow-card__icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.price-flow-card__title {
	font-family: "graveur-variable", serif;
	font-size: clamp(30px, 3vw, 40px);
	letter-spacing: 0.05em;
	color: #363536;
}

.price-flow-card__sub {
	display: block;
	margin-top: 4px;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(12px, 1.2vw, 16px);
}

.price-flow-card__desc {
	margin-top: clamp(25px, 2vw, 36px);
	margin-bottom: clamp(25px, 2vw, 40px);
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: -0.05em;
	text-align: justify;
	color: #4b5563;
	flex-grow: 1;
}

.price-flow-card .btn-gold {
	font-size: clamp(14px, 1.2vw, 18px);
}

/* ============================================
   Works Page
   ============================================ */
.container-1000 {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 30px;
}

.works-page {
	padding: clamp(64px, 5vw, 96px) 0 clamp(50px, 5vw, 96px);
}

.works-filter {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: clamp(50px, 5vw, 70px);
	margin-bottom: 40px;
}

.works-filter__btn {
	padding: 5px 10px;
	font-family: "graveur-variable", serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	background: #ffffff;
	border: 1px solid #363536;
	border-radius: 5px;
	color: #363536;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.works-filter__btn.is-active {
	background: #363536;
	color: #ffffff;
}

#works-more-btn {
	appearance: none;
	-webkit-appearance: none;
	border: none;
	outline: none;
	box-shadow: none;
	background: #C7AC75;
}


/* ============================================
   Work Single (実績詳細)
   ============================================ */
.work-single {
	padding: clamp(124px, 8vw, 146px) 0 clamp(96px, 6vw, 128px);
}

.work-single__label {
	font-family: "graveur-variable", serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: #C7AC75;
	margin-bottom: 16px;
}

.work-single__title {
	font-size: clamp(16px, 2vw, 18px);
	font-weight: 700;
	line-height: 1.6;
	color: #363536;
	margin-bottom: 40px;
}

.work-single__thumb {
	margin-bottom: 40px;
}

.work-single__thumb img {
	width: 100%;
	height: auto;
	border-radius: 8px;
}

.work-single__content {
	font-size: clamp(14px, 1.2vw, 16px);
	line-height: 2;
	color: #374151;
}

.work-single__content img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	margin: 32px 0;
}

.work-single__content h2 {
	font-size: clamp(20px, 2.5vw, 26px);
	font-weight: 700;
	line-height: 1.6;
	color: #363536;
	margin-bottom: 24px;
}

.work-single__content p {
	margin-bottom: 24px;
}

.work-single__meta {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid #e5e7eb;
}

.work-single__meta-item + .work-single__meta-item {
	margin-top: 32px;
}

.work-single__meta-label {
	font-family: "graveur-variable", serif;
	font-size: clamp(14px, 1.5vw, 16px);
	font-weight: 700;
	letter-spacing: 0.05em;
	color: #363536;
	margin-bottom: 8px;
}

.work-single__meta-value {
	font-size: clamp(14px, 1.5vw, 16px);
	color: #363536;
}

.work-single__meta-value a {
	color: #363536;
	text-decoration: none;
}

.work-single__meta-value a::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C7AC75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'%3E%3C/path%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'%3E%3C/path%3E%3C/svg%3E");	background-repeat: no-repeat;
	flex-shrink: 0;
}

.work-single__nav {
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid #C7AC75;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
	color: #363536;
}

.work-single__nav-prev,
.work-single__nav-next {
	font-size: 20px;
}

.work-single__nav-archive {
	font-size: 14px;
	font-weight: 500;
}

@media (min-width: 1024px) {
	.work-single .container-700 {
		max-width: 900px;
	}
}

/* ============================================
   Page Header (下層ページ共通)
   ============================================ */
.page-header {
	position: relative;
	padding: clamp(50px, 5vw, 64px) 15px 0;
}

.page-header__title-row {
	position: relative;
	z-index: 2;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 10px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.page-header__title {
	padding-left: clamp(7px, 1vw, 0px);
	font-family: "graveur-variable", serif;
	font-size: clamp(40px, 8vw, 84px);
	color: #363536;
	white-space: nowrap;
}

.page-header__title-sub {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(12px, 1.5vw, 20px);
	letter-spacing: 0.1em;
	white-space: nowrap;
	font-weight: 700;
}

.page-header__bg {
	position: relative;
	margin-top: -5%;
	padding: clamp(26px, 4vw, 65px) clamp(40px, 4vw, 60px) clamp(40px, 9vw, 96px);
	border-radius: 16px;
	overflow: hidden;
	background-color: hsla(65, 60%, 97%, 1);
    background-image: radial-gradient(circle at 12% 15%, hsla(81, 82%, 98%, 1) 3%, transparent 59%), radial-gradient(circle at 92% 93%, hsla(209, 56%, 91%, 1) 11%, transparent 79%), radial-gradient(circle at 24% 86%, hsla(235, 39%, 81%, 1) 16%, transparent 83%), radial-gradient(circle at 11% 94%, hsla(43, 55%, 90%, 1) 16%, transparent 51%), radial-gradient(circle at 44% 9%, hsla(252, 81%, 51%, 0.05) 13%, transparent 83%);
    background-blend-mode: normal, normal, normal, normal, normal;
}
	
.page-header__bg-inner {
	max-width: 1000px;
	margin: 0 auto;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(13px, 1.2vw, 15px);
	line-height: 1.6;
	color: #374151;
}

.page-header__bg-inner p {
	margin-top: 4px;
}


@media (min-width: 581px) {
.page-header {
	position: relative;
	padding: clamp(50px, 5vw, 64px) 35px 0;
	margin: 0 auto;
	max-width: 1350px;
	--title-size: clamp(40px, 8vw, 84px);
	--overlap-ratio: -0.35;
}
	.page-header__title-row {
		max-width: none;
		padding: 0;
		gap: 16px;
	}

.page-header__title {
	padding-left: 40px;
	font-family: "graveur-variable", serif;
	font-size: var(--title-size);
	line-height: 1;
	color: #363536;
	white-space: nowrap;
}
.page-header__bg {
	position: relative;
	margin-top: calc(var(--title-size) * var(--overlap-ratio));
	padding: clamp(30px, 4vw, 65px) clamp(40px, 4vw, 60px) clamp(40px, 6vw, 96px);
	padding-left: 60px;
	padding-top: 40px;
	border-radius: 16px;
	overflow: hidden;

}
.page-header__bg-inner {
	line-height: 1.8;
}
.page-header__bg-inner p span {
	display: block;
	margin-bottom: 4px;
}
}

/* ============================================
   Price Intro
   ============================================ */
.price-intro {
	padding: clamp(20px, 2vw, 96px) 0 clamp(30px, 5vw, 64px);
}

.price-intro__title {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(20px, 3vw, 34px);
	line-height: 1.7;
	color: #363536;
	font-weight: 500;
	margin-bottom: clamp(30px, 3vw, 48px);
}

.price-intro__text {
	font-size: clamp(14px, 1.2vw, 16px);
	line-height: 1.8;
	text-align: justify;
}

.price-intro__sp-layout {
	display: block;
}

.price-intro__sp-layout .price-intro__text {
	margin-bottom: 32px;
}

.price-intro__illustrations {
	display: flex;
	align-items: stretch;
	margin-bottom: 32px;
}

.price-intro__illustration img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.price-intro__pc-layout {
	display: none;
}

@media (min-width: 768px) and (max-width: 1023px) {
	.price-intro .container-1000 {
	max-width: 700px;
}	
}

@media (min-width: 768px) {
	.price-intro__sp-layout {
		display: none;
	}
	.price-intro__pc-layout {
		display: block;
	}
	.price-intro__block {
		display: grid;
		align-items: center;
		gap: 32px;
		margin-bottom: 20px;
	}
	.price-intro__block:last-child {
		margin-bottom: 0;
	}
	.price-intro__block--1 {
		grid-template-columns: 1fr 260px;
	}
	.price-intro__block--1 .price-intro__illustration {
		justify-self: end;
	}
	.price-intro__block--2 {
		grid-template-columns: 200px 1fr;
	}
	.price-intro__title {
	margin-bottom: 10px;
}
}

@media (min-width: 1024px) {
	.price-intro .container-1000 {
	max-width: 800px;
}		
	.price-intro__sp-layout {
		display: none;
	}
	.price-intro__pc-layout {
		display: block;
	}
	.price-intro__block {
		display: grid;
		align-items: center;
		gap: 32px;
	}
	.price-intro__block:last-child {
		margin-bottom: 0;
	}
	.price-intro__block--1 {
		grid-template-columns: 1fr 320px;
	}
	.price-intro__block--1 .price-intro__illustration {
		justify-self: end;
	}
	.price-intro__block--2 {
		grid-template-columns: 240px 1fr;
	}
}

/* =========================
   Plans
========================= */
.plans {
	width: 100%;
	padding: clamp(70px, 5vw, 90px) 0 clamp(60px, 5vw, 100px);
	background-color: #F8F9FD;
	background-image: url("../images/grad-bg.png");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	box-sizing: border-box;
}

.plans *,
.plans *::before,
.plans *::after {
	box-sizing: border-box;
}

.plans__inner {
	width: 1000px;
	max-width: 100%;
	margin: 0 auto;
	padding: 0 24px;
}

.plans__inline-link {
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (min-width: 1400px) {
.plans {
	background-size: contain;
}
}



/* =========================
   Heading
========================= */
.plans__heading {
	text-align: center;
	margin-bottom: clamp(50px, 6vw, 130px);
}

.plans__heading h2 {
	margin: 0;
	font-family: "graveur-variable", serif;
	font-size: clamp(36px, 4vw, 42px);
	line-height: 1;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #363536;
}

.plans__heading p {
	margin: 13px 0 0;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 15px;
	line-height: 1;
	color: #363536;
	font-weight: 700;
}



/* =========================
   Mobile Tab
========================= */
.plans-tab {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 32px;
}

.plans-tab__btn {
	flex: 1 1 auto;
	min-width: 100px;
	padding: 8px 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	white-space: nowrap;
	background: #ffffff;
	border: 1px solid #363536;
	border-radius: 13px;
	color: #363536;   
	cursor: pointer;
}

.plans-tab__btn img {
	display: block;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	filter: brightness(0);
}

.plans-tab__btn.is-active {
	background: #363536;
	color: #ffffff;
}

.plans-tab__btn.is-active img {
	filter: brightness(0) invert(1);
}

.plans-tab__btn-main {
	font-size: 16px;
	font-weight: 700;
}

.plans-tab__btn-sub {
	font-size: 12px;
	font-weight: 700;
}

/* =========================
   Table
========================= */
.plans__table {
	display: block;
}

.plans__labels {
	display: none;
}

.plan {
	position: relative;
	display: none;
	border: 2px solid var(--plan-border);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.92);
	overflow: visible;
}

.plan.is-active {
	display: block;
}

/* =========================
   Plan colors
========================= */
.plan--ume {
	--plan-color: #ee8545;
	--plan-border: #c9b88b;
}

.plan--take {
	--plan-color: #5fb6b4;
	--plan-border: #c9b88b;
}

.plan--matsu {
	--plan-color: #c6ae75;
	--plan-border: #c9b88b;
}

/* =========================
   Plan header
========================= */
.plan__head {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 22px 12px 20px;
	color: #ffffff;
	background: var(--plan-color);
	border-radius: 11px 11px 0 0;
}


.plan__head-icon {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	filter: brightness(0) invert(1);
}

.plan__icon img {
	display: block;
	width: 52px;
	height: 45px;
	object-fit: contain;
}

.plan__head h3 {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-family: "Zen Kaku Gothic New", sans-serif;
	line-height: 1.3;
	font-weight: 700;
	color: #ffffff;
}

.plan__head-main {
	font-size: 24px;
	font-weight: 700;
}

.plan__head-sub {
	font-size: 16px;
	font-weight: 700;
}

.plan__line {
	width: calc(100% - 16px);
	height: 4px;
	margin: 9px 0 8px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.7);
}

.plan__head p {
	margin: 0;
	text-align: center;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 14px;
	line-height: 1.45;
	font-weight: 500;
}

/* =========================
   Price
========================= */
.plan__price {
	display: flex;
	justify-content: center;
	align-items: baseline;
	padding: 13px 0 20px;
	color: var(--plan-color);
	border-bottom: 2px solid #c9b88b;
	background: rgba(255, 255, 255, 0.94);
}

.plan__price strong {
	font-size: 50px;
	line-height: 1;
	font-weight: 700;
}

.plan__price span {
	margin-left: 5px;
	font-size: 20px;
	font-weight: 600;
}

/* =========================
   Items
========================= */
.plan__item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 15px;
	border-bottom: 1px solid #CBCBCB;
	font-size: 14px;
	font-weight: 700;
	background: rgba(255, 255, 255, 0.94);
}

.plan__item::before {
	content: attr(data-label);
	font-size: 14px;
	font-weight: 700;
	color: #363536;
}

.plan__item:last-child {
	border-bottom: 0;
	border-radius: 0 0 18px 18px;
}

.plan__item--none {
	color: #B4C0C7;
}

/* =========================
   Recommendation badge
========================= */
.recommend {
	display: none;
	position: absolute;
	z-index: 5;
	top: -20px;
	left: 50%;
	transform: translateX(-50%);
	width: 145px;
	height: 45px;
	justify-content: center;
	align-items: center;
	border: 2px solid #333;
	border-radius: 30px;
	background: #fff;
	font-size: 16px;
	font-weight: 700;
	white-space: nowrap;
}

.recommend::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -16px;.hero__text
	width: 0;
	height: 0;
	transform: translateX(-50%);
	border-left: 9px solid transparent;
	border-right: 9px solid transparent;
	border-top: 16px solid #333;
}

.recommend::before {
	content: "";
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: -12px;
	width: 0;
	height: 0;
	transform: translateX(-50%);
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-top: 13px solid #fff;
}

/* =========================
   Note
========================= */
.plans__note {
	margin: 15px 0 0;
	text-align: right;
	font-size: 11px;
	line-height: 1.6;
	color: #8497A2;
}

/* =========================
   PC表示（1024px以上：3列同時比較表）
========================= */
@media (min-width: 768px) {
	.plans-tab {
		display: none;
	}
	.plans__table {
		display: grid;
		grid-template-columns: 160px repeat(3, 1fr);
		column-gap: 15px;
		align-items: stretch;
	}
	.plans__labels {
		display: grid;
		grid-template-rows: 180px 94px repeat(9, 56px);
		align-items: stretch;
	}
	.plans__label {
		position: relative;
		display: flex;
		align-items: center;
		padding: 0 10px;
		border-bottom: 1px solid #d8d8d8;
		font-family: "Zen Kaku Gothic New", sans-serif;
		font-size: 14px;
		font-weight: 600;
		color: #363536;
	}
	.plans__label--empty {
		border-bottom: 1px solid #c6b383;
	}
	.plans__label--empty:first-of-type {
		border-bottom: none;
	}
	.plans__label--help {
		justify-content: space-between;
	}
	.help {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 18px;
		height: 18px;
		margin-right: 2px;
		border-radius: 50%;
		background: #9aa8ad;
		color: #fff;
		font-size: 11px;
		font-weight: 700;
	}
	.plan {
		display: grid !important;
		grid-template-rows: 100px 74px repeat(9, 46px);
		border-radius: 18px;
	}

	.plans__heading {
		margin-bottom: 100px;
	}
	.plan__head {
		padding: 12px 10px 20px;
	}
	.plan__head p {
		font-size: 12px;
		line-height: 1.4;
	}
	.plan__price strong {
		font-size: 40px;
	}
	.plan__price span {
		font-size: 16px;
	}
	.plans__labels {
		grid-template-rows: 100px 75px repeat(9, 46px);
	}

	.recommend {
		display: flex;	
		top: -53px;
		width: 117px;
		height: 35px;
		font-size: 14px;
	}
	.plan__item {
		justify-content: center;
		border-bottom: 1px solid #d8d8d8;
		font-size: 16px;
	}
	.plan__item::before {
		content: none;
	}
	.plan__item--none {
		font-size: 15px;
	}
}

/* ============================================
   Other Services Price Table
   ============================================ */
.other-price {
	background-color: #F8F9FD;
	padding: 0 0 96px;
}

.other-price .wide-600 {
	max-width: 600px;
}

.other-price__lead {
	margin-bottom: 40px;
	font-size: 14px;
	line-height: 1.8;
	text-align: center;
}

.other-price .notes-box {
	border: 3px solid #D6DCE2;
}

.price-table {
	width: 100%;
	border-top: 1px solid #CBCBCB;
	border-collapse: collapse;
}

.price-table th,
.price-table td {
	padding: 20px 8px;
	border-bottom: 1px solid #CBCBCB;
	font-size: 15px;
	font-weight: 700;
	color: #363536;
	text-align: left;
}

.price-table th {
	font-weight: 700;
	width: 60%;
}

.price-table td {
	text-align: right;
	font-weight: 700;
}

.other-price__note {
	margin-top: 24px;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 12px;
	color: #9ca3af;
	text-align: center;
}

@media (min-width: 581px) {
	.price-table th,
	.price-table td {
		font-size: 15px;
		padding: 14px 20px;
	}
}

/* ============================================
   Contact Form (WPForms)
   ============================================ */
.container-700 {
	max-width: 700px;
	margin: 0 auto;
	padding: 0 24px;
}

.contact-form {
	padding-bottom: clamp(60px, 5vw, 96px);
}

.contact-form__form {
	margin-top: 56px;
}

.wpforms-container {
	font-family: "Zen Kaku Gothic New", sans-serif !important;
}

.wpforms-field {
	padding: 0 !important;
	margin-bottom: 30px !important;
}

.wpforms-field a {
	color: #C7AC75 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
}

/* ラベル（テキスト・メール・セレクト・テキストエリア共通） */
.wpforms-field-label {
	display: block !important;
	margin-bottom: 8px !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #363536 !important;
}

/* チェックボックスのlegend（ラベル代わり） */
.wpforms-field-checkbox fieldset legend.wpforms-field-label {
	margin-bottom: 16px !important;
}

.wpforms-required-label {
	font-size: 20px;
	color: #C7AC75 !important;
}

/* テキスト・メール・セレクト・テキストエリア本体 */
.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field textarea,
.wpforms-field select {
	width: 100% !important;
	padding: 16px !important;
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 16px !important;
	color: #363536 !important;
	background: #ffffff !important;
	border: 3px solid #D6DCE2 !important;
	border-radius: 10px !important;
	box-sizing: border-box !important;
}

.wpforms-field input::placeholder,
.wpforms-field textarea::placeholder {
	color: #b0b0b0 !important;
}

.wpforms-field textarea {
	resize: vertical !important;
}

/* セレクトボックス矢印 */
.wpforms-field-select {
	position: relative !important;
}

/* セレクトボックス矢印（背景画像方式） */
.wpforms-field-select select {
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M1 3L6 8L11 3' stroke='%23363536' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 20px center !important;
	background-size: 14px !important;
	padding-right: 50px !important;
}


/* チェックボックス群：横並び・折り返し */
.wpforms-field-checkbox ul {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 16px 24px !important;
	padding: 16px !important;
	margin: 0 !important;
	list-style: none !important;
}

.wpforms-field-checkbox ul li {
	display: flex !important;
	align-items: center !important;
	width: auto !important;
	float: none !important;
	position: relative;
	padding: 0 !important;
}

.wpforms-field-checkbox input[type="checkbox"] {
	position: absolute !important;
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
}

.wpforms-field-checkbox ul li label.wpforms-field-label-inline {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	padding-left: 30px !important;
	margin: 0 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	color: #363536 !important;
	cursor: pointer !important;
}

.wpforms-field-checkbox ul li label.wpforms-field-label-inline::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border: 3px solid #c6d0d9;
	border-radius: 7px;
	background: #ffffff;
}

.wpforms-field-checkbox input[type="checkbox"]:checked + label.wpforms-field-label-inline::before {
	background: #c6d0d9 !important;
	border-color: #c6d0d9 !important;
}

.wpforms-field-checkbox input[type="checkbox"]:checked + label.wpforms-field-label-inline::after {
	content: "";
	position: absolute;
	left: 10px;
	top: 42%;
	width: 6px;
	height: 11px;
	border: solid #ffffff;
	border-width: 0 2px 2px 0;
	transform: translateY(-50%) rotate(45deg);
}

/* 送信ボタン */
.wpforms-submit-container {
	text-align: center !important;
	margin-top: 30px !important;
}

.wpforms-submit {
	display: block !important;
	width: 90% !important;
	max-width: 300px !important;
	margin: 0 auto !important;
	background: #C7AC75 !important;
	color: #ffffff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0.15em !important;
	padding: 16px 48px !important;
	border: none !important;
	border-radius: 0 !important;
	cursor: pointer !important;
	transition: opacity 0.2s ease !important;
}

.wpforms-submit:hover {
	opacity: 0.9 !important;
}

.wpforms-field-gdpr-checkbox {
	text-align: center !important;
}

.wpforms-field-gdpr-checkbox .wpforms-field-description {
	font-size: 12px !important;
	color: #6b7280 !important;
	margin-bottom: 12px !important;
	text-align: center !important;
}

.wpforms-field-gdpr-checkbox ul {
	margin: 50px auto 0 !important;
	padding: 0 !important;
	display: block !important;
}

.wpforms-field-gdpr-checkbox li {
	position: relative;
	display: inline-flex !important;
}

.wpforms-field-gdpr-checkbox input[type="checkbox"] {
	position: absolute !important;
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
}

.wpforms-field-gdpr-checkbox li label {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	padding-left: 30px !important;
	font-size: 14px !important;
	color: #363536 !important;
	cursor: pointer !important;
}

.wpforms-field-gdpr-checkbox li label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border: 1px solid #b0b0b0;
	border-radius: 4px;
	background: #ffffff;
}

.wpforms-field-gdpr-checkbox input[type="checkbox"]:checked + label::before {
	background: #C7AC75 !important;
	border-color: #C7AC75 !important;
}

.wpforms-field-gdpr-checkbox input[type="checkbox"]:checked + label::after {
	content: "";
	position: absolute;
	left: 8px;
	top: 42%;
	width: 6px;
	height: 11px;
	border: solid #ffffff;
	border-width: 0 2px 2px 0;
	transform: translateY(-50%) rotate(45deg);
}

@media only screen and (max-width: 600px) {
div.wpforms-container .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater):not(.wpforms-field-ranking)
{ overflow-x: unset!important; }
}

/* 581px以上：ラベルと入力欄を横並びに */
@media (min-width: 581px) {
	.wpforms-field {
		display: flex !important;
		align-items: center !important;
		gap: 24px !important;
	}

	.wpforms-field-label {
		flex: 0 0 180px !important;
		margin-bottom: 0 !important;
	}

	.wpforms-field input[type="text"],
	.wpforms-field input[type="email"],
	.wpforms-field select {
		flex: 1 !important;
	}

.wpforms-field-checkbox {
	display: flex !important;
	align-items: flex-start !important;
	gap: 24px !important;
}

.wpforms-field-checkbox fieldset {
	display: contents !important;   /* fieldset自体は「存在しない」かのように扱う */
}

.wpforms-field-checkbox fieldset legend.wpforms-field-label {
	flex: 0 0 180px !important;
	margin-bottom: 0 !important;
}

	.wpforms-field-checkbox ul {
		flex: 1 !important;
	}

	.wpforms-field-textarea {
		align-items: flex-start !important;
	}

	.wpforms-field-textarea textarea {
		flex: 1 !important;
	}

	.wpforms-field-textarea .wpforms-field-label {
		padding-top: 16px !important;
	}

}

/* ============================================
   Flow Section
   ============================================ */
.flow {
	padding: clamp(56px, 5vw, 65px) 0 clamp(65px, 6vw, 128px);
	background-color: #EBEFF9;
}

.flow-list {
	margin-top: 56px;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.flow-step {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	background: #ffffff;
	border-radius: 16px;
	padding: 15px 20px;
	margin-bottom: 20px;
}

.flow-step:last-child {
	margin-bottom: 0;
}

.flow-step__num {
	position: absolute;
	top: -14px;
	left: 20px;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid #C7AC75;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #363536;
}

.flow-step:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 35px;
	bottom: -44px;
	width: 0;
	height: 44px;
	border-left: 2px dotted #b0b0b0;
}

.flow-step__icon {
	flex-shrink: 0;
	width: 90px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.flow-step__icon img {
	width: 111px;
	height: 73px;
}

.flow-step__title {
	font-size: 16px;
	font-weight: 700;
}

.flow-step__desc {
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.5;
}

@media (min-width: 950px) {
	.flow-list {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		row-gap: 56px;
		column-gap: 24px;
	}
	.flow-step {
		position: relative;
		display: block;
		text-align: left;
		background: #ffffff;
		border-radius: 16px;
		padding: 24px 20px;
		margin-bottom: 0;
	}
	.flow-step__num {
		position: absolute;
		top: -16px;
		left: 20px;
		width: 32px;
		height: 32px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 999px;
		background: #ffffff;
		border: 1px solid #C7AC75;
		font-family: "Zen Kaku Gothic New", sans-serif;
		font-size: 16px;
		font-weight: 700;
		color: #363536;
		margin-bottom: 0;
	}
	.flow-step__icon {
		width: 120px;
		height: 80px;
		margin: 0 auto 8px;
	}
	.flow-step__body {
		text-align: justify;
	}
	.flow-step__title {
		text-align: center;
	}
	.flow-step::after {
		content: none !important;
	}
	.flow-step:not(:nth-child(4n))::before {
		content: "";
		position: absolute;
		top: 50%;
		right: -24px;
		width: 24px;
		height: 0;
		border-top: 2px dotted #b0b0b0;
		transform: translateY(-50%);
	}
}


/* ============================================
   Thanks Page
   ============================================ */
.thanks-cta {
	padding-bottom: 60px;
	text-align: center;
}

.thanks-cta .lead__text {
	margin-top: 50px;
	margin-bottom: 50px;
}

/* ============================================
   Privacy Policy Page
   ============================================ */
.privacy {
	padding: clamp(64px, 6vw, 96px) 0 clamp(96px, 6vw, 128px);
}

.privacy .container-700 {
	margin-top: 70px;
}

.privacy__content {
	text-align: left;
}

.privacy__content h2 {
	font-size: 18px;
	font-weight: 700;
	margin-top: 40px;
	margin-bottom: 16px;
}

.privacy__content h2:first-of-type {
	margin-top: 0;
}

.privacy__content p {
	font-size: 14px;
	line-height: 1.8;
	color: #374151;
	margin-bottom: 30px;
}


.privacy__content ul {
	padding-left: 1.4em;
}

.privacy__content li {
	font-size: 14px;
	line-height: 1.9;
	color: #374151;
	margin-bottom: 20px;
}

.privacy__numbered-list {
	list-style: none;
	counter-reset: privacy-counter;
	padding-left: 0;
}

.privacy__numbered-list li {
	position: relative;
	padding-left: 1.8em;
}

.privacy__numbered-list li::before {
	counter-increment: privacy-counter;
	content: counter(privacy-counter) ".";
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 700;
}


/* ============================================
   Notes Box (備考ブロック)
   ============================================ */
.notes-box {
	margin-top: 40px;
	padding: clamp(40px, 4vw, 56px) clamp(32px, 4vw, 64px);
	border: 3px solid #ffffff;
	border-radius: 24px;
}

.notes-box__item + .notes-box__item {
	margin-top: 20px;
}

.notes-box__title {
	font-size: 14px;
	font-weight: 700;
	margin-bottom: 12px;
}

.notes-box__title span {
	display: block;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.notes-box__body {
	font-size: 12px;
	line-height: 1.6;
}
.notes-lead {
	margin-bottom: 20px;
}

.notes-box__body li {
	margin-bottom: 10px;
}

@media (min-width: 581px) {
	.notes-box__title span {
		display: inline-block;
	}
}

@media (min-width: 1024px) {

	.notes-box__item {
		display: grid;
		grid-template-columns: 140px 1fr;
		gap: 24px;
	}

	.flow .notes-box__item {
		grid-template-columns: 200px 1fr;
	}

	.notes-box__title {
		margin-bottom: 0;
	}
}

/* ============================================
   Help Tooltip (？マークの説明ポップアップ)
   ============================================ */
.help {
	position: relative;
	cursor: pointer;
}

.help__tooltip {
	position: absolute;
	bottom: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%) translateY(4px);
	width: 220px;
	padding: 12px 14px;
	background: #363536;
	color: #ffffff;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.6;
	border-radius: 8px;
	text-align: left;
	white-space: normal;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
	z-index: 10;
}

/* 吹き出しの三角 */
.help__tooltip::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border-left: 6px solid transparent;
	border-right: 6px solid transparent;
	border-top: 6px solid #363536;
}

/* PC：ホバーのみで表示 */
@media (min-width: 768px) {
	.help:hover .help__tooltip {
		opacity: 1;
		visibility: visible;
		transform: translateX(-50%) translateY(0);
	}
}

/* SP：クリック（.is-active付与）で表示 */
.help.is-active .help__tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

/* ============================================
   Footer
   ============================================ */
.site-footer {
	position: relative;
	overflow: hidden;
	background: #FBFBF9;
}

.site-footer__bg-illustration {
	pointer-events: none;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 40% 100%;
}

.site-footer__inner {
	position: relative;
	z-index: 10;
	max-width: 1600px;
	margin: 0 auto;
	padding: 100px 24px 0px;
}

.footer-cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0 8px;
}

.footer-cta .section-heading {
	margin: 0 auto 30px;
}

.footer-cta__title {
	font-family: "graveur-variable", serif;
	font-size: clamp(36px, 3vw, 50px);
	letter-spacing: 0.05em;
}

.footer-cta__label {
	margin-top: 16px;
	font-size: clamp(16px, 1.2vw, 17px);
	letter-spacing: 0.2em;
}

.footer-cta__desc {
	margin-top: 40px;
	max-width: 448px;
	font-size: clamp(12px, 1.2vw, 16px);
	line-height: 2;
}

.footer-cta__button {
	margin-top: 40px;
	display: inline-block;
	width: 100%;
	max-width: 448px;
	background: #C7AC75;
	padding: 20px 40px;
	text-align: center;
	font-size: clamp(16px, 1.2vw, 18px);
	font-weight: 700;
	letter-spacing: 0.25em;
	color: #ffffff;
	transition: opacity 0.2s ease;
}

.footer-cta__button:hover {
	opacity: 0.9;
}

.footer-social {
	display: flex;
	gap: 4px;
}

.footer-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: #686868;
	transition: opacity 0.2s ease;
}

.footer-social a:hover {
	opacity: 0.8;
}

.footer-social svg {
	width: 25px;
	height: 25px;
}

.site-footer hr {
	margin-top: 80px;
	border: none;
	border-top: 1px solid rgba(54, 53, 54, 0.7);
}

.footer-bottom__right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 5px;
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 20px 22px;
}

.footer-bottom__logo img {
	height: 25px;
	width: auto;
}

.footer-bottom__copyright {
	font-size: 13px;
	letter-spacing: 0.05em;
	color: #8497A2;
}

@media (min-width: 768px) {
	.site-footer__bg-illustration {
		object-position: 20% 100%;
	}
}

@media (min-width: 1024px) {
	.footer-cta {
		align-items: flex-end;
		text-align: right;
		padding-right: 48px;
	}
	.footer-cta .section-heading {
	margin-bottom: 50px;
}
	.footer-social {
		justify-content: flex-end;
	}
	.footer-bottom {
		flex-direction: row;
		justify-content: space-between;
	}

	.footer-bottom__logo img {
		height: 27px;
}
}