@charset "utf-8";

* {
	margin: 0;
	padding: 0;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	-webkit-tap-highlight-color: rgba(0,0,0,0);
	-webkit-text-size-adjust: 100%;
	overflow-y: scroll;
	font-size: 62.5%;
}

body {
	margin: 0;
	padding: 0;
	width: 100%;
	font-size: 1.6em;
	text-align: left;
	line-height: 1.6;
	color: #6a6a6a;
	letter-spacing: .045em;
	font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
	font-feature-settings: "palt" 1;
    -webkit-font-feature-settings: "palt" 1;
	-webkit-font-smoothing: antialiased;
    background: url(/asset/images/common/bg.png) no-repeat top center #eff6f5;
    background-size: 100%;
}

/*============================
トップと成婚記事ページのみ
============================*/

.loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #eff6f5;
    z-index: 20000;
}

.loader, .loader:after {
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 50px;
	height: 50px;
	margin: -25px 0 0 -25px;
}

.loader {
	position: relative;
	text-indent: -9999em;
	border: 3px solid #d6ebe8;
	border-left: 3px solid #2bb4a2;
	transform: translateZ(0);
	animation: load 1.1s infinite linear;
}

@keyframes load {
    0% {
	    transform: rotate(0deg);
    }
    100% {
	    transform: rotate(360deg);
    }
}

/*============================
共通
============================*/

h1,h2,h3,h4,h5,h6 {
	font-weight: 900;
	padding: 0;
	margin: 0;
}

ul,ol {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

p {
	padding: 0;
	margin: 0;
}

img {
	-webkit-touch-callout: none;
	-ms-interpolation-mode: bicubic;
	vertical-align: bottom;
}

a {
	text-decoration: underline;
	color: #5a5a5a;
	outline: none;
}

a:active,a:hover,a:focus {
	outline: none;
}

a {
	transition: all 0.4s ease;
	cursor: pointer;
    font-weight: 600;
}

a:hover {
	opacity: 0.6;
}

.sp_only {
	display: none;
}

/*============================
contents
============================*/

.wrapper {
    max-width: 1060px;
    width: 100%;
    margin: auto;
}

.container {
    margin: 0;
	padding-bottom: 40px;
}

/*============================
header（2026 リニューアル）
Figma「Design - TOP」header menu 準拠。数値は変数で管理
============================*/

/* Figma カラースタイル: メイン 2BB4A2 / メイン薄 F5FAF9 / ロゴ F56D6D / text メイン 3E3E3E / line グレー E8E7E3 */
:root {
	--gh-h: 80px;
	--gh-teal: #2bb4a2;
	--gh-teal-light: #f5faf9;
	--gh-teal-line: #bfe3dc;
	--gh-red: #f56d6d;
	--gh-text: #3e3e3e;
	--gh-panel: #f5faf9;
	--gh-line: #e8e7e3;
	--band-bg: #f6fffe;
	--band-h1: #2bb4a2;
	--band-text: #4a4a4a;
}

html {
	overflow-x: hidden;
	scroll-padding-top: calc(var(--gh-h) + 16px);
}

body {
	padding-top: var(--gh-h);
}

header.gh {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: var(--gh-h);
	background: rgb(255 255 255 / 85%);
	z-index: 10000;
}

.gh_inner {
	height: 100%;
	padding: 0 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.gh .sitetitle a {
	display: flex;
}

.gh img.logo {
	height: 50px;
	width: auto;
}

.gh_btns {
	display: flex;
	align-items: center;
	gap: 20px;
}

.gh_btns a,
button.gh_toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 140px;
	height: 36px;
	padding: 0 12px;
	border-radius: 30px;
	border: 1px solid var(--gh-teal);
	font-family: inherit;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1;
	color: var(--gh-teal-light);
	background: var(--gh-teal);
	text-decoration: none;
	cursor: pointer;
	transition: opacity .3s;
}

.gh_btns a i,
button.gh_toggle i {
	font-size: 1.2rem;
}

.gh_menu_btn button.gh_toggle {
	gap: 6px;
	color: var(--gh-teal);
	background: #fff;
	border-color: var(--gh-teal-line);
}

.gh_btns a:hover,
button.gh_toggle:hover {
	opacity: .7;
}

/* menu panel */

.gh_menu {
	display: none;
	overflow: hidden;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 10001;
}

body.gh_open {
	overflow: hidden;
}

.gh_menu_bg {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgb(0 0 0 / 45%);
}

.gh_panel {
	position: absolute;
	top: 0;
	right: 0;
	width: 620px;
	max-width: 100%;
	height: 100%;
	overflow-y: auto;
	padding: 40px;
	background: var(--gh-panel);
	box-shadow: -4px 0 24px rgb(0 0 0 / 10%);
}

.gh_close {
	text-align: right;
}

.gh_close button.gh_toggle {
	min-width: 110px;
	gap: 6px;
	color: var(--gh-teal);
	background: #fff;
	border-color: var(--gh-teal-line);
}

.gh_nav {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	margin-top: 32px;
	padding-top: 32px;
	border-top: 1px solid var(--gh-line);
}

.gh_nav:first-of-type {
	margin-top: 32px;
	padding-top: 0;
	border-top: 0;
}

.gh_nav li {
	width: calc(50% - 12px);
}

.gh_nav li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 46px;
	padding: 12px 16px;
	border-radius: 12px;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--gh-text);
	background: #fff;
	text-decoration: none;
}

.gh_nav li a:after {
	content: "\f054";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 1.1rem;
	color: var(--gh-teal);
}

.gh_sub {
	display: flex;
	gap: 24px;
	margin-top: 32px;
	padding-top: 32px;
	border-top: 1px solid var(--gh-line);
}

.gh_sub li {
	width: calc(50% - 12px);
}

.gh_sub li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 46px;
	padding: 12px 16px;
	border: 1px solid var(--gh-teal);
	border-radius: 16px;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--gh-teal);
	background: #fff;
	text-decoration: none;
}

.gh_sub li a:after {
	content: "\f054";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 1.1rem;
}

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

.gh_cta a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 380px;
	max-width: 100%;
	height: 64px;
	padding: 20px 16px;
	border-radius: 30px;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	color: var(--gh-teal-light);
	background: var(--gh-red);
	text-decoration: none;
}

/*============================
cont_img（下層見出し帯・2026 リニューアル）
Figma「下層見出し」画像イラストなし 準拠
============================*/

.cont_img {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: var(--band-bg);
}

.cont_img div.inner {
	max-width: 1060px;
	min-height: 200px;
	margin: auto;
	padding: 20px 0;
	display: flex;
	align-items: center;
}

.cont_img div.inner div {
	position: relative;
	z-index: 1;
}

.cont_img h1 {
	font-size: 3.4rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .02em;
	color: var(--band-h1);
}

.cont_img div.inner p {
	margin-top: 8px;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--band-text);
}

.cont_img figure {
	display: none;
}

/*============================
primary
============================*/

.primary {
	margin-top: 40px;
}

.primary article {
	padding: 4em;
	border-radius: 30px;
	background: #fff;
	margin-top: 20px;
}

.primary section {
	margin-top: 5em;
}

.primary section:first-child {
	margin-top: 0;
}

.primary h2 + section {
	margin-top: 3em;
}

/*============================
パンくず
============================*/

.root {
    margin-top: 40px;
}

.root ul {
	margin: auto;
	display: flex;
	overflow: hidden;
}

.root li i {
	color: #2bb4a2;
}

.root li {
	font-size: 1.2rem;
	margin-left: .7em;
	position: relative;
	letter-spacing: 0;	
	padding-bottom: 0;
	white-space: nowrap;
}

.root li:first-child {
	margin-left: 0;
}

.root li:before {
    content: "\f105";
    font-weight: 900;
    font-family: "Font Awesome 5 Free";
    margin-right: .7em;
    color: #bfcdcb;
}

.root li:first-child:before {
	display: none;
}

.root li a {
	font-weight: 600;
}

/*============================
fix_btn
============================*/

.fix_btn {
	position: fixed;
	right: -100px;
	top: 50%;
	z-index: 500;
	opacity: 0;
	transform: translateY(-50%);
	transition: all .5s;
}

.fix_btn ul {
	display: flex;
	justify-content: flex-end;
}

.fix_btn ul li a {
	display: block;
}

.fix_btn img {
	height: 230px;
}

.fix_btn.active {
	opacity: 1;
	right: 0;
}

/*============================
totop
============================*/

.totop {
	position: fixed;
	bottom: 5em;
	right: 3em;
}

.totop a i {
	font-size: 3.5rem;
	color: #2bb4a2;
}

/*============================
footer（2026 リニューアル）
Figma「Design - TOP」PCFooter / copy 準拠
============================*/

footer.gf {
	margin-top: 40px;
	background: #fff;
}

.gf_inner {
	position: relative;
	max-width: 1200px;
	margin: auto;
	padding: 80px 40px 40px;
	display: grid;
	grid-template-columns: 200px 1fr;
	column-gap: 40px;
}

.gf_brand img.logo {
	width: 160px;
}

.gf_sns {
	display: flex;
	gap: 12px;
	margin-top: 20px;
}

.gf_sns li a {
	display: flex;
	text-decoration: none;
}

.gf_sns li a i {
	font-size: 2.6rem;
	color: #06c755;
}

.gf_sns li a svg {
	width: 24px;
	height: 24px;
	fill: #000;
	border-radius: 5px;
}

.gf_nav {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	column-gap: 24px;
	padding-right: 60px;
}

.gf_col li {
	margin-top: 10px;
}

.gf_col li:first-child {
	margin-top: 0;
}

.gf_col li.gap {
	margin-top: 26px;
}

.gf_col a {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--gh-text);
	text-decoration: none;
}

.gf_terms {
	grid-column: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	margin-top: 32px;
}

.gf_terms li a {
	font-size: 1.1rem;
	font-weight: 500;
	color: #8a8a8a;
	text-decoration: underline;
}

.gf_totop {
	position: absolute;
	right: 40px;
	bottom: 40px;
}

.gf_totop a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--gh-teal);
	color: #fff;
	font-size: 1.4rem;
	text-decoration: none;
}

.copyright {
	padding: 20px;
	background: #006e61;
}

.copyright p {
	font-size: 1.1rem;
	color: #fff;
	text-align: center;
}

/*============================
マージン
============================*/

.mr_none {
	margin-top: 0 !important;
}

.mr_05 {
	margin-top: .5em !important;
}

.mr_1 {
	margin-top: 1em !important;
}

.mr_15 {
	margin-top: 1.5em !important;
}

.mr_2 {
	margin-top: 2em !important;
}

.mr_25 {
	margin-top: 2.5em !important;
}

.mr_3 {
	margin-top: 3em !important;
}

.mr_4 {
	margin-top: 4em !important;
}

.mr_5 {
	margin-top: 5em !important;
}

/*============================
サービス
============================*/

.service_list td [class *='list_'] li {
	margin-top: .3em;
}

/*============================
料金表
============================*/

.price_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.price_list > div {
	width: 49%;
	margin-top: 2em;
}

.price_list > div.success {
	width: 100%;
}

.price_list dl {
	text-align: center;
}

.price_list dl dt {
    padding: 0.7em;
    line-height: 1.4;
    border-radius: 8px;
    color: #fff;
    font-weight: 700;
    margin-bottom: 1em;
    background: #29bfab;
    font-size: 1.8rem;
}

.price_list dl dt small {
	display: inline-block;
	font-size: 1.4rem;
	transform: translateY(-5px);
}

.price_list dl dd {
	font-size: 3rem;
    font-weight: 700;
}

.price_list dl dd span.en {
	font-size: 90px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
	color: #4a4a4a;
}

.price_list div.success dl dd span.en {
	color: #da1c1c;
}

.price_list dl dd .textline {
	background-size: 20px 20px;
}

/*============================
他社比較表
============================*/

table.hikaku {
	display: block;
    overflow-x: scroll;
	text-align: center;
}

table.hikaku tbody {
    width: 640px;
    display: table;
}

table.hikaku th,
table.hikaku td {
	padding: .8em;
}

table.hikaku th {
	width: auto;
	font-size: 1.3rem;
    line-height: 1.3;
    padding: 0.6em;
}

table.hikaku td {
	position: relative;
}

table.hikaku td small {
	display: block;
}

table.hikaku td span.caution {
	position: absolute;
	top: 0;
	right: .3em;
	font-size: 1.2rem;
	font-weight: 700;
	color: #da1c1c;
}

table.hikaku td span.en {
	font-size: 2.4rem;
	font-weight: 900;
	color: #5a5a5a;
    margin-right: 0.1em;
}

table.hikaku th:first-child,
table.hikaku td:nth-child(1) {
    position: sticky;
    left: 0;
    z-index: 1;
	width: 150px;
}

table.hikaku td:nth-child(1) {
	font-size: 1.3rem;
	font-weight: 500;
	background: #e6e6e6;
}

table.hikaku td:nth-child(2) {
	font-weight: 500;
	background: #dff0ee;
}

span.scroll {
	text-align: right;
    display: block;
    font-size: 1.3rem;
	font-weight: 500;
    margin-top: 1em;
}

/*============================
オプション一覧
============================*/

.option_list {
	display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.option_list:after {
    content:"";
    display: block;
    width:30%;
}

.option_list li {
	width: 31%;
	margin-top: 1.5em;
	border-radius: 16px;
	background: #2bb4a2;
	position: relative;
}

.option_list li:before {
	content: "\f054";
    font-weight: 900;
    font-family: "Font Awesome 5 Free";
	color: #fff;
	position: absolute;
	top: 50%;
	right: 1em;
	transform: translateY(-50%);
}

.option_list li a {
	padding: 1.3em;
	color: #fff;
	text-decoration: none;
}

.option_list li a img {
	width: 60px;
}

.option_list li a p {
	margin-top: 1em;
	line-height: 1.4;
}

.option_list li a p small {
	display: block;
}

.option_list li a,
.option_list li a p {
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
}

/*============================
キャンペーン情報（登録フォームの上）
============================*/

.form_caution {
	text-align: center;
    padding: 1em;
    border: 2px solid #da1c1c;
    margin-bottom: 2em;
    color: #da1c1c;
}

.form_caution [class *='caution_'] {
	font-size: 1.2rem;
}

/*============================
swiper
============================*/

.swiper-container {
	padding-bottom: 1.5em;
}

.swiper-container-horizontal>.swiper-pagination-bullets {
	bottom: 0;
}

.swiper-pagination-bullet {
	width: 9px;
	height: 9px;
	opacity: 1;
	background: #cde2df;
	outline: none;
}

.swiper-pagination-bullet-active {
	background: #2bb4a2;
}

.swiper-button-next,
.swiper-button-prev {
	text-align: center;
	width: 40px;
    height: 40px;
	margin-top: -50px;
    background: none;
	outline: none;
}

.swiper-button-next {
	right: 0;
}

.swiper-button-prev {
	left: 0;
}

.swiper-button-next:before,
.swiper-button-prev:before {
	content: "\f138";
    font-weight: 900;
    font-family: "Font Awesome 5 Free";
	color: #2bb4a2;
	font-size: 2.8rem;
}

.swiper-button-prev:before {
	content: "\f137";
}

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

	body {
		width: 100%;
		min-width: 0;
		font-size: 1.4rem;
		line-height: 1.6;
		padding-bottom: 60px;
	}

	a {
		-webkit-transition: none;
		-moz-transition: none;
		-o-transition: none;
		transition: none;
	}

	a:hover {
		opacity: 1;
	}

	.sp_only {
		display: block;
	}

	.pc_only {
		display: none;
	}

    /*============================
	header（2026 リニューアル）
	============================*/

	:root {
		--gh-h: 66px;
	}

	.gh_inner {
		padding: 0 20px;
	}

	.gh img.logo {
		height: 40px;
	}

	.gh_menu_btn button.gh_toggle {
		min-width: 110px;
	}

	.gh_panel {
		width: 100%;
		padding: 20px 20px 40px;
		box-shadow: none;
	}

	.gh_nav {
		gap: 8px;
		margin-top: 20px;
		padding-top: 20px;
	}

	.gh_nav:first-of-type {
		margin-top: 20px;
	}

	.gh_nav li,
	.gh_sub li {
		width: calc(50% - 4px);
	}

	.gh_nav li a {
		min-height: 44px;
		padding: 12px;
		font-size: 1.3rem;
	}

	.gh_sub {
		gap: 8px;
		margin-top: 20px;
		padding-top: 20px;
	}

	.gh_sub li a {
		min-height: 44px;
		padding: 12px;
		font-size: 1.3rem;
	}

	.gh_cta {
		margin-top: 20px;
	}

	.gh_cta a {
		height: 56px;
		font-size: 1.3rem;
	}

	/*============================
	contents
	============================*/

	.container {
		margin: 0;
		padding: 0 0 20px;
	}

	/*============================
	cont_img
	============================*/

	.cont_img div.inner {
		min-height: 145px;
		padding: 40px 20px;
	}

	.cont_img h1 {
		font-size: 2.8rem;
		line-height: 38px;
	}

	.cont_img div.inner p {
		font-size: 1.6rem;
	}

	/*============================
	primary
	============================*/

	.primary {
		margin-top: 20px;
	}

	.primary article {
		padding: 4em 1.8em;
		border-radius: 0;
		margin-top: 15px;
		border-bottom: 1px solid #e6eceb;
	}

	.primary section {
		margin-top: 3.5em;
	}

	/*============================
	パンくず
	============================*/

	.root {
		margin: 20px 1em 0 1em;
	}

	.root li {
		font-size: 1.1rem;
	}

	/*============================
	totop
	============================*/

	.totop {
		display: none;
	}

	/*============================
	fix_btn
	============================*/

	.fix_btn.active {
		right: inherit;
		bottom: 0;
	}

	.fix_btn {
		top: inherit;
		right: inherit;
		left: 50%;
		bottom: -100px;
		transform: translate(-50%,0);
		width: 100%;
	}

	.fix_btn img {
		height: inherit;
		width: 90%;
		margin: auto;
	}

	/*============================
	footer
	============================*/

	footer.gf {
		margin-top: 20px;
	}

	.gf_inner {
		display: block;
		padding: 40px 20px 32px;
	}

	.gf_brand img.logo {
		width: 140px;
	}

	.gf_nav {
		flex-wrap: wrap;
		gap: 0 16px;
		margin-top: 28px;
	}

	.gf_col {
		width: calc(50% - 8px);
	}

	.gf_col li,
	.gf_col li:first-child,
	.gf_col li.gap {
		margin-top: 12px;
	}

	.gf_terms {
		margin-top: 28px;
		gap: 6px 16px;
		padding-right: 48px;
	}

	.gf_totop {
		right: 20px;
		bottom: 32px;
	}

	/*============================
	マージン
	============================*/

	.mr_05 {
		margin-top: .5em !important;
	}

	.mr_1,.mr_15 {
		margin-top: 1.5em !important;
	}

	.mr_2,.mr_25 {
		margin-top: 2em !important;
	}

	.mr_3,.mr_4,.mr_5 {
		margin-top: 2.5em !important;
	}

	/*============================
	料金表
	============================*/

	.price_list dl dd span.en {
		font-size: 50px;
	}

	.price_list dl dd {
		font-size: 2rem;
	}

	.price_list dl dt {
		font-size: 1.6rem;
	}

	.price_list dl dd .textline {
		background-size: 10px 10px;
	}

	/*============================
	他社比較表
	============================*/

	table.hikaku {
		font-size: 1.2rem;
	}

	table.hikaku th,
	table.hikaku td {
		padding: .7em .6em;
	}

	table.hikaku td span.en {
		font-size: 1.7rem;
	}

	table.hikaku tbody {
		width: 440px;
	}

	table.hikaku th:first-child,
	table.hikaku td:nth-child(1) {
		width: 100px;
	}

	table.hikaku th {
		font-size: 1.2rem;
	}

	table.hikaku td:nth-child(1) {
		font-size: 1.1rem;
	}

	table.hikaku td span.caution {
		font-size: 1rem;
	}

	/*============================
	オプション一覧
	============================*/

	.option_list {
		margin-top: .5em;
	}

	.option_list li {
		width: 48%;
		margin-top: 1em;
	}

	.option_list li:before {
		font-size: 1.2rem;
	}

	.option_list li a {
		padding: 1em 1.3em;
	}

	.option_list li a img {
		width: 40px;
	}

	.option_list li a p {
		font-size: 1.3rem;
		margin-top: .5em;
	}

	/*============================
	キャンペーン情報（登録フォームの上）
	============================*/

	.form_caution [class *='caution_'] {
		font-size: 1.1rem;
	}

	/*============================
	swiper
	============================*/

	.swiper-button-next:before,
	.swiper-button-prev:before {
		font-size: 2rem;
	}

}
/* Navigation: Figma 515:24 / 546:7365. */
.gh_menu_bg { background: rgb(4 19 17 / 60%); }
.gh_panel { box-shadow: 0 0 10px rgb(12 41 37 / 30%); }
.gh_close button.gh_toggle { min-width: 140px; border-color: #bde6e1; }
.gh_nav { gap: 16px 24px; margin-top: 24px; padding-top: 23px; }
.gh_nav:first-of-type { margin-top: 32px; }
.gh_nav li a, .gh_sub li a { line-height: 22px; letter-spacing: .02em; }
.gh_nav li a:after, .gh_sub li a:after { content: ''; width: 6px; height: 10px; flex: none; background: var(--gh-teal); mask: url(/asset/images/top/arrow-chevron.svg) center / contain no-repeat; }
.gh_nav li a:after { background: #6f6f6f; }
.gh_close i.fa-times { width: 12px; height: 12px; background: url(/asset/images/common/close.svg) center / contain no-repeat; }
.gh_close i.fa-times:before { content: none; }
.gh_sub { margin-top: 24px; padding-top: 23px; }
.gh_sub li a { padding: 11px 15px; }
.gh_cta { margin-top: 24px; }
.gh_cta a { font-size: 15px; line-height: 24px; box-shadow: 0 4px 6px rgb(74 74 74 / 8%); }
.gh_cta a i { display: inline-block; width: 18px; height: 10px; background: #f6fffe; mask: url(/asset/images/common/arrow-right.svg) center / contain no-repeat; }
.gh_cta a i:before { content: none; }
@media (max-width: 768px) {
 .gh_panel { padding: 15px 20px 40px; }
 .gh_close button.gh_toggle { min-width: 110px; }
 .gh_nav { gap: 8px; margin-top: 16px; padding-top: 15px; }
 .gh_nav:first-of-type { margin-top: 23px; }
 .gh_nav li a, .gh_sub li a { line-height: 20px; }
 .gh_sub { margin-top: 16px; padding-top: 15px; }
 .gh_sub li a { padding: 11px; border-radius: 12px; }
 .gh_sub li:first-child { order: 2; }
 .gh_cta { margin-top: 24px; }
 .gh_cta a i { width: 12px; height: 7px; }
 .gh_cta a { width: 300px; height: 48px; padding: 16px; font-size: 13px; line-height: 16px; }
}

/* footer.php 専用。Figma nodes: PC 335:11643 / SP 386:550 / copy 335:11676, 392:925 */
footer.gf { margin-top: 0; background: #faf9f4; }
footer.gf .gf_inner { height: 383px; max-width: 1200px; margin: auto; padding: 80px 0 40px; display: grid; grid-template-columns: 225.64px minmax(0, 1fr); grid-template-rows: 202px 13px; column-gap: 64px; row-gap: 40px; align-content: start; }
footer.gf .gf_brand > a { display: flex; align-items: center; width: 225.64px; height: 80px; padding: 15px; }
footer.gf .gf_brand img.logo { width: 195.64px; height: 50px; }
footer.gf .gf_sns { margin-top: 20px; gap: 25px; }
footer.gf .gf_sns li a i { font-size: 32px; }
footer.gf .gf_sns li a svg { width: 32px; height: 32px; }

footer.gf .gf_nav { display: grid; grid-template-columns: repeat(4, 181px); grid-template-rows: repeat(5, 18px); column-gap: 64px; row-gap: 16px; height: 202px; padding: 0; }
footer.gf .gf_links { display: contents; }
footer.gf .gf_links li { margin: 0; line-height: 18px; }
@media (min-width: 1200px) {
footer.gf .gf_links li:nth-child(n + 9):nth-child(-n + 13) { transform: translateY(24px); }
footer.gf .gf_links li:nth-child(13) { grid-column: 1; grid-row: 4; }
footer.gf .gf_links li:nth-child(14) { grid-column: 1; grid-row: 5; transform: translateY(48px); }
footer.gf .gf_links li:nth-child(15) { grid-column: 2; grid-row: 5; transform: translateY(48px); }
footer.gf .gf_links li:nth-child(16) { grid-column: 3; grid-row: 5; transform: translateY(48px); }
}
footer.gf .gf_links a { display: block; font-size: 13px; font-weight: 700; line-height: 18px; letter-spacing: .26px; color: #3e3e3e; text-decoration: none; }

footer.gf .gf_terms { grid-column: 2; height: 13px; margin-top: 0; gap: 0 24px; padding: 0; line-height: 13px; }
footer.gf .gf_terms li a { display: block; font-size: 11px; font-weight: 400; line-height: 13px; color: #3e3e3e; }
footer.gf .gf_totop { right: 0; bottom: 40px; }
footer.gf .copyright { padding: 20px; }
footer.gf .copyright p { font-size: 11px; line-height: 13px; }

@media only screen and (min-width: 769px) and (max-width: 1199px) {
	footer.gf .gf_inner { height: auto; padding: 48px 40px 32px; display: block; }
	footer.gf .gf_nav { width: 100%; height: auto; margin-top: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; column-gap: 40px; row-gap: 8px; }
	footer.gf .gf_links li { line-height: 18px; transform: none; grid-column: auto; grid-row: auto; }
	footer.gf .gf_terms { width: min(100%, 470px); height: auto; margin-top: 32px; gap: 8px 24px; line-height: 13px; }
}

@media only screen and (max-width: 768px) {
	footer.gf .gf_inner { height: 575.225px; display: block; padding: 48px 20px 32px; }
	footer.gf .gf_brand { display: flex; flex-direction: column; gap: 24px; text-align: left; }
	footer.gf .gf_brand > a { justify-content: center; width: min(350px, 100%); height: 86.22px; margin-inline: auto; padding: 15px; }
	footer.gf .gf_brand img.logo { width: 220px; height: auto; }
	footer.gf .gf_sns { justify-content: flex-start; margin-top: 0; gap: 25px; }
	footer.gf .gf_nav { width: 100%; height: 242px; margin-top: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(9, 18px); column-gap: 40px; row-gap: 8px; }
	footer.gf .gf_links li { margin: 0; line-height: 18px; transform: none; }
	footer.gf .gf_links li:nth-child(9) { grid-column: 1; grid-row: 5; transform: translateY(8px); }
	footer.gf .gf_links li:nth-child(10) { grid-column: 2; grid-row: 5; transform: translateY(8px); }
	footer.gf .gf_links li:nth-child(11) { grid-column: 1; grid-row: 6; transform: translateY(8px); }
	footer.gf .gf_links li:nth-child(12) { grid-column: 2; grid-row: 6; transform: translateY(8px); }
	footer.gf .gf_links li:nth-child(13) { grid-column: 1; grid-row: 7; transform: translateY(8px); }
	footer.gf .gf_links li:nth-child(14) { grid-column: 1; grid-row: 8; transform: translateY(16px); }
	footer.gf .gf_links li:nth-child(15) { grid-column: 2; grid-row: 8; transform: translateY(16px); }
	footer.gf .gf_links li:nth-child(16) { grid-column: 1; grid-row: 9; transform: translateY(16px); }
	footer.gf .gf_terms { width: 100%; height: 55px; margin-top: 32px; gap: 8px 24px; line-height: 13px; }
	footer.gf .gf_totop { display: none; }
}

/* The SP group spacing must override the more specific PC grouped selector. */
@media only screen and (max-width: 768px) {
 footer.gf .gf_links li:nth-child(n + 9):nth-child(-n + 13) { transform: translateY(8px); }
 footer.gf .gf_terms { display: flex; flex-wrap: wrap; align-content: start; }
 footer.gf .gf_terms li { flex: none; }
 footer.gf .gf_terms li:nth-child(4) { flex-basis: 100%; }
 footer.gf .gf_sns li a { width: 32px; height: 32px; }
}
@media only screen and (min-width: 1200px) {
 footer.gf .gf_totop { right: max(-60px, calc((1200px - 100vw) / 2 + 20px)); bottom: 67px; }
 footer.gf .gf_totop a { width: 40px; height: 40px; background: transparent url(/asset/images/common/totop-figma.svg) center / contain no-repeat; }
}

@media only screen and (min-width: 1200px) { footer.gf .gf_totop a i { display: none; } }

/* Keep the shared navigation usable at intermediate viewport widths. */
@media only screen and (min-width: 769px) and (max-width: 1199px) {
  header.gh .gh_inner, body.top .gh_inner { padding-inline: 24px; }
  .gh_btns { gap: 12px; }
  .gh_btns a, .gh_btns button.gh_toggle { min-width: 120px; }
  footer.gf .gf_inner {
    display: grid; grid-template-columns: 200px minmax(0, 1fr); grid-template-rows: auto auto;
    gap: 32px 40px; max-width: 1124px; padding: 48px 32px 40px;
  }
  footer.gf .gf_brand { grid-row: 1 / 3; }
  footer.gf .gf_brand > a { width: 200px; padding-inline: 0; }
  footer.gf .gf_nav { margin-top: 0; column-gap: 24px; row-gap: 14px; }
  footer.gf .gf_links li, footer.gf .gf_links a { line-height: 22px; }
  footer.gf .gf_terms { grid-column: 2; width: 100%; margin: 0; gap: 12px 24px; flex-wrap: wrap; }
  footer.gf .gf_totop { right: 24px; bottom: 12px; }
}

@media only screen and (min-width: 1200px) and (max-width: 1279px) {
  footer.gf .gf_inner { padding-inline: 32px; grid-template-columns: 200px minmax(0, 1fr); column-gap: 40px; }
  footer.gf .gf_nav { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 16px; }
  footer.gf .gf_terms { gap: 0 16px; }
}
