@charset "UTF-8";



/* -------------------------------------------

header

------------------------------------------- */
header {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	z-index: 10;
	padding: 3rem 0 0 4rem;
}
@media screen and (max-width: 768px) {
	header {
		padding: 2.5rem 0 0 0;
		display: flex;
		justify-content: center;
	}
}
/* ---- h1 ---- */
header h1 a {
	display: flex;
	align-items: center;
	color: #fff;
}
header h1 img {
	width: 14rem;
}
@media screen and (max-width: 768px) {
	header h1 img {
		width: 12rem;
	}
}
header h1 span {
	margin-left: 2rem;
	font-weight: 500;
	font-size: 1.2rem;
}



/* -------------------------------------------

kv

------------------------------------------- */
.kv {
	height: 100vh;
	position: relative;
	overflow: hidden;
}
.kv::before {
	content: "";
	width: 100%;
	height: 100%;
	background: #000;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 3;
	opacity: 0.4;
}
@media screen and (max-width: 768px) {
	.kv {
		height: 100dvh;
	}
}
/* ---- wrap ---- */
.kv .wrap {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: 10;
	width: 100%;
	color: #fff;
	text-align: center;
	font-weight: bold;
	font-size: 2.4rem;
	padding-bottom: 20px;
	z-index: 10;
}
.kv .wrap p {
	line-height: 1.7;
	text-shadow: 0 0 1rem #000;
}
.kv .wrap strong {
	font-size: 3.2rem;
}
@media screen and (max-width: 768px) {
	.kv .wrap {
		font-size: 1.8rem;
	}
	.kv .wrap strong {
		font-size: 2.4rem;
	}
}
/* ---- movie ---- */
video {
	position: absolute;
	left: 50%;
	top: 50%;
	height: auto;
	transform: translate(-50%,-50%);
	min-width: 100%;
    min-height: 100%;
}



/* -------------------------------------------

gurantee

------------------------------------------- */
.gurantee {
	padding: 8rem 0;
	background: #E8E8E8;
}
@media screen and (max-width: 768px) {
	.gurantee {
		padding: 8rem 3rem;
	}
}
/* ---- h2 ---- */
.gurantee h2 {
	color: var(--brown);
}
/* ---- wrap ---- */
.gurantee .wrap {
	position: relative;
	padding-bottom: 4rem;
	padding-left: calc((100% - 88rem) / 2);
}
@media screen and (max-width: 768px) {
	.gurantee .wrap {
		padding-left: 0;
	}
}
/* ---- swiper ---- */
.gurantee .swiper-slide {
	display: flex !important;
	align-items: center;
	background: #fff;
}
.gurantee .swiper-slide > * {
	width: 50%;
	position: relative;
}
.gurantee .img::before {
	content: "";
	width: 100%;
	height: 20rem;
	background: linear-gradient(to top, #000, transparent);
	position: absolute;
	left: 0;
	bottom: 0;
}
.gurantee .img dl {
	position: absolute;
	left: 0;
	bottom: 1.3rem;
	width: 100%;
	color: #fff;
	font-weight: bold;
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: 1.4rem;
}
.gurantee .img dl dt {
	margin-bottom: 0.8rem;
	text-align: center;
}
.gurantee .img dl dd {
	display: flex;
	justify-content: center;
}
.gurantee .img dl dd span:nth-child(1) {
	margin-top: 0.7rem;
}
.gurantee .img dl dd span:nth-child(2) {
	margin-left: 1.5rem;
}
.gurantee .img dl dd span:nth-child(2) {
	line-height: 1;
}
.gurantee .img dl dd span:nth-child(2) strong {
	font-size: 2.8rem;
	vertical-align: -0.15rem;
	margin-right: 0.2rem;
}
.gurantee .txt {
	padding: 0 3.5rem;
	font-size: 1.5rem;
}
.gurantee .txt dl dt {
	color: var(--brown);
	font-weight: bold;
}
.gurantee .txt dl dd:not(:last-of-type) {
	margin-bottom: 1rem;
}
.swiper-pagination {
	bottom: 0 !important;
}
.swiper-pagination-bullet {
    width: 0.6rem !important;
    height: 0.6rem !important;
    border-radius: 100%;
    background: #646464 !important;
    opacity: 1 !important;
}
.swiper-pagination-bullet-active {
    background: var(--brown) !important;
}
@media screen and (max-width: 768px) {
	.gurantee .swiper-slide {
		display: block !important;
	}
	.gurantee .swiper-slide > * {
		width: 100%;
	}
	.gurantee .txt {
		padding: 2.5rem;
		font-size: 1.4rem;
	}
}



/* -------------------------------------------

item

------------------------------------------- */
.item {
	padding: 8rem 0;
}
.item .wrap {
	position: relative;
	padding-bottom: 5rem;
}
.item .swiper-pagination-bullet {
	background: #d9d9d9 !important;
}
.item .swiper-pagination-bullet-active {
    background: var(--brown) !important;
}

/* ---- ptek ---- */
.item-patek {
	margin-bottom: 8rem;
}
/* h2 */
.item-patek h2 {
	/* width: 18rem; */
	margin: 0 auto 6rem auto;
	text-align: center;
	font-size: 2.2rem;
	font-weight: 500;
}
/* ---- rolex ---- */
/* h2 */
.item-rolex h2 {
	/* width: 13rem; */
	margin: 0 auto 6rem auto;
	text-align: center;
	font-size: 2.2rem;
	font-weight: 500;
}
/* ---- swiper ---- */
.item .swiper-slide dl {
	font-weight: 500;
	margin-top: 2rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.item .swiper-slide dl dt {
	font-size: 1.2rem;
	text-align: center;
	line-height: 1.4;
	margin-bottom: 1rem;
}
.item .swiper-slide dl dt i {
	display: block;
	margin-top: 0.4rem;
}
.item .swiper-slide dl dd {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.item .swiper-slide dl dd span:nth-child(1) {
	font-size: 1.2rem;
}
.item .swiper-slide dl dd span:nth-child(2) {
	font-size: 1.5rem;
}
.item .swiper-slide dl dd span:nth-child(2) strong {
	font-size: 2rem;
	font-weight: 500;
	vertical-align: -0.1rem;
}
@media screen and (max-width: 768px) {
	
}



/* -------------------------------------------

structure

------------------------------------------- */
.structure {
	padding: 8rem 0;
	background: url(../img/structure-bg.jpg) center top;
	background-size: 100% auto;
}
.structure p {
	text-align: center;
	margin-bottom: 4.5rem;
}
@media screen and (max-width: 768px) {
	.structure p {
		padding: 0 3rem;
		text-align: left;
		margin-bottom: 3rem;
	}
	.structure figure {
		padding: 0 2rem;
	}
}



/* -------------------------------------------

reason

------------------------------------------- */
.reason {
	padding: 8rem 0;
	background: #2D2C29;
	color: #fff;
}
/* ---- h2 ---- */
.reason h2 {
	color: var(--brown);
}
/* ---- h3 ---- */
.reason h3 {
	display: flex;
	flex-direction: column;
	margin-bottom: 3.5rem;
}
.reason h3 > span:nth-child(1) {
	color: var(--brown);
	display: flex;
	font-size: 1.6rem;
	margin-bottom: -2rem;
}
.reason h3 > span:nth-child(1) > span:nth-child(1) {
	display: flex;
	align-items: center;
}
.reason h3 > span:nth-child(1) > span:nth-child(1)::before {
	content: "◆";
	margin-right: 0.5rem;
}
.reason h3 > span:nth-child(1) > span:nth-child(2) {
	font-family: var(--font-baskervville);
	font-size: 6rem;
	font-weight: normal;
	margin-left: 1.5rem;
	margin-bottom: 2.2rem;
}
.reason h3 > span:nth-child(2) {
	font-size: 2.4rem;
}
/* ---- wrap ---- */
.reason .wrap {
	position: relative;
	padding-bottom: 6rem;
}
/* ---- swiper ---- */
.reason .swiper-slide > div {
	display: flex !important;
	justify-content: space-between;
}
.reason .swiper-slide > div > * {
	width: 47.5%;
}
@media screen and (max-width: 768px) {
	.reason .swiper-slide > div {
		display: block !important;
	}
	.reason .swiper-slide > div > * {
		width: 100%;
	}
	.reason .swiper-slide > div > figure {
		margin-bottom: 1.5rem;
	}
	.reason .wrap {
		padding-left: 3rem;
		padding-right: 3rem;
	}
}



/* -------------------------------------------

how

------------------------------------------- */
.how {
	background: url(../img/how-bg.jpg) center top;
	background-size: 100% auto;
	padding: 8rem 0;
}
@media screen and (max-width: 768px) {
	.how {
		padding: 8rem 3rem;
	}
}
/* ---- p ---- */
.how p {
	text-align: center;
	font-family: var(--font-serif);
	margin-bottom: 4rem;
}
@media screen and (max-width: 768px) {
	.how p {
		font-size: 1.6rem;
	}
}
/* ---- ul ---- */
.how ul li {
	background: #fff;
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
	box-shadow: 0 0 1.2rem rgba(0,0,0,0.2);
}
.how ul li:not(:last-child) {
	margin-bottom: 3rem;
}
.how ul li > figure {
	width: 40%;
}
.how ul li > dl {
	width: 60%;
	padding-left: 4rem;
}
.how ul li > dl dt {
	width: 19rem;
	height: 4.9rem;
	background: url(../img/bg-tag.png) no-repeat;
	background-size: 100% auto;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: bold;
	font-size: 1.8rem;
	padding-bottom: 0.15rem;
	margin-bottom: 1.5rem;
}
.how ul li > dl dd {
	color: var(--brown);
	font-weight: 500;
	font-size: 2rem;
	letter-spacing: 0.08em;
}
@media screen and (max-width: 768px) {
	.how ul li {
		display: block;
	}
	.how ul li:not(:last-child) {
		margin-bottom: 3rem;
	}
	.how ul li > figure {
		width: 100%;
	}
	.how ul li > dl {
		width: 100%;
		padding: 2.5rem 2rem;
	}
	.how ul li > dl dd {
		font-size: 1.7rem;
	}
}



/* -------------------------------------------

store

------------------------------------------- */
.store {
	padding: 8rem 0;
}
@media screen and (max-width: 768px) {
	.store {
		padding: 8rem 3rem;
	}
}
/* ---- h2 ---- */
.store h2 {
	margin-bottom: 5rem;
	font-family: 'Noto Sans JP', sans-serif;
}
.tab-wrap {
    display: flex;
	justify-content: space-between;
    flex-wrap: wrap;
}
.tab-label {
    order: -1;
	width: 21%;
	height: 5.6rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #E7E7DF;
	letter-spacing: 0.2em;
	font-size: 1.6rem;
	padding-bottom: 0.6rem;
	transition: ease-in-out .3s;
	position: relative;
}
.tab-label {
	width: 23.5%;
}
.tab-label::before {
	content: "";
	width: 0.6rem;
	height: 0.6rem;
	border-right: solid 1px var(--brown);
	border-bottom: solid 1px var(--brown);
	transform: rotate(45deg);
	position: absolute;
	left: calc(50% - 0.3rem);
	bottom: 0.9rem;
}
.tab-label:hover {
	opacity: 0.6;
	cursor: pointer;
}
/* tab-content */
.tab-content {
    width: 100%;
    display: none;
	margin-top: 5rem;
}
.tab-content > ul > li {
	display: flex;
	justify-content: space-between;
}
.tab-content > ul > li:not(:last-child) {
	margin-bottom: 4rem;
}
.tab-content ul li > * {
	width: 48%;
}
.tab-content .ttl-wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 3rem;
}
.tab-content h3 {
	font-size: 2rem;
	font-weight: 500;
	display: flex;
	align-items: center;
}
.tab-content h3 i {
	font-size: 1rem;
	margin-left: 0.5rem;
	font-weight: normal;
	margin-top: 0.15rem;
}
@media screen and (max-width: 768px) {
	.tab-content h3 {
		display: block;
	}
	.tab-content h3 i {
		margin-left: 0;
		margin-top: 0.5rem;
	}
}
a.map {
	color: var(--brown);
	display: flex;
	align-items: center;
	font-size: 1.2rem;
}
a.map i {
	font-size: 1.6rem;
	margin-left: 0.5rem;
}
.tab-content dl {
	display: flex;
	flex-wrap: wrap;
	line-height: 1;
}
.tab-content dl dt {
	width: 6.4rem;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 2.4rem;
	background: #d9d9d9;
	padding-bottom: 0.1rem;
	padding-left: 0.2rem;
}
.tab-content dl dd {
	width: calc(100% - 6.4rem);
	padding-left: 1rem;
	display: flex;
	align-items: center;
}
.tab-content dl dt:not(:last-of-type),
.tab-content dl dd:not(:last-of-type) {
	margin-bottom: 0.7rem;
}
.tab-content address {
	margin: 1.2rem 0 2rem 0;
}
.tab-content ul li ul {
	border-left: solid 4px var(--brown);
	padding: 0.3rem 0 0.3rem 1rem;
}
@media screen and (max-width: 768px) {
	.tab-content {
		margin-top: 3rem;
	}
	.tab-content ul li {
		display: block;
	}
	.tab-content ul li > * {
		width: 100%;
	}
	.tab-content ul li > figure {
		margin-bottom: 2rem;
	}
}
/* active */
.tab-switch:checked+.tab-label {
    background: var(--brown);
	color: #fff;
}
.tab-switch:checked+.tab-label::before {
	border-right: solid 1px #fff;
	border-bottom: solid 1px #fff;
}
.tab-switch:checked+.tab-label+.tab-content {
     display: block;
}
.tab-switch {
    display: none;
}



/* -------------------------------------------

voice

------------------------------------------- */
.voice {
	padding: 8rem 0;
	background: #F6F5EB;
}
/* ---- h2 ---- */
.voice h2 {
	margin-bottom: 4rem;
}
/* ---- wrap ---- */
.voice .wrap {
	position: relative;
}
.voice .swiper {
	padding: 1rem 0;
}
/* ---- swiper ---- */
.voice .swiper-slide {
	background: #fff;
	box-shadow: 0 0 1rem rgba(0,0,0,0.15);
	padding: 2.5rem 2.5rem;
}
.voice figure {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.voice figure img {
	width: 45%;
}
.voice figure figcaption {
	font-weight: 500;
	background: #EEEDDD;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 16rem;
	border-radius: 10rem;
}
.voice h3 {
	font-family: var(--font-serif);
	text-align: left;
	font-weight: 600;
	margin: 2rem 0 1.5rem 0;
	font-size: 1.6rem;
}
.voice p {
	line-height: 1.7;
}
.swiper-button-prev,
.swiper-button-next {
    width: 4rem;
    height: 4rem;
    top: calc(50% - 2rem);
    position: absolute;
    z-index: 99;
    transition: all .3s;
}	
.swiper-button-prev {
    background: url(../img/prev.png) no-repeat center;
    background-size: 4rem;
    left: 10rem;
}	
.swiper-button-next  {
    background: url(../img/next.png) no-repeat;
	background-size: 4rem;
    right: 10rem;
}
.swiper-button-prev:hover,
.swiper-button-next:hover {
    cursor: pointer;
    opacity: 0.5;
}
@media screen and (max-width: 768px) {
	.swiper-button-prev {
		left: 1rem;
	}	
	.swiper-button-next  {
		right: 1rem;
	}
}



/* -------------------------------------------

purchase

------------------------------------------- */
.purchase {
	background: #171713;
	padding: 8rem 0;
}
@media screen and (max-width: 768px) {
	.purchase {
		padding: 8rem 3rem;
	}
}
/* --- h2 ---- */
.purchase h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 600;
	font-size: 2rem;
	background: var(--brown);
	width: 44rem;
	height: 6rem;
	border-radius: 10rem;
	margin: 0 auto 4rem auto;
	padding-bottom: 0.2rem;
}
@media screen and (max-width: 768px) {
	.purchase h2 {
		font-size: 1.8rem;
		width: 100%;
		height: 5.6rem;
	}
}
/* ---- ul ---- */
.purchase ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.purchase ul li {
	width: 22.5%;
}
.purchase ul li:nth-child(n + 5) {
	margin-top: calc(10% / 3);
}
.purchase ul figcaption {
	background: #E3E0BF;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 4.8rem;
	padding-bottom: 0.1rem;
}
@media screen and (max-width: 768px) {
	.purchase ul li {
		width: 49%;
	}
	.purchase ul li:nth-child(n + 5) {
		margin-top: 0;
	}
	.purchase ul li:nth-child(n + 3) {
		margin-top: 2%;
	}
}



/* -------------------------------------------

cv

------------------------------------------- */
.cv {
	background: url(../img/cv-bg.jpg) no-repeat center / cover;
	color: #fff;
	padding: 5rem 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}
@media screen and (max-width: 768px) {
	.cv {
		padding: 5rem 3rem;
	}
}
/* ---- h2 ---- */
.cv h2 {
	font-size: 2.2rem;
	margin-bottom: 3rem;
	letter-spacing: 0.08em;
}
/* ---- ul ---- */
.cv ul {
	display: flex;
	justify-content: center;
}
.cv ul li {
	width: 38rem;
}
.cv ul li:not(:last-child) {
	margin-right: 5rem;
}
.cv ul li a {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border-radius: 1rem;
	position: relative;
	height: 12rem;
}
.cv ul li a::before {
	content: "";
	width: 0;
	height: 0;
	border-left: 0.7rem solid #002468;
	border-top: 0.5rem solid transparent;
	border-bottom: 0.5rem solid transparent;	
	position: absolute;
	right: 2rem;
	top: calc(50% - 0.25rem)
}
.cv ul li:nth-child(2) a::before {
	border-left: 0.7rem solid #06C755;
}
.cv ul li a img {
	margin-right: 2rem;
}
.cv ul li:nth-child(1) a img {
	width: 3.5rem;
}
.cv ul li:nth-child(2) a img {
	width: 4.5rem;
}
.cv ul li a > span {
	display: flex;
	flex-direction: column;
}
.cv ul li a > span > span:nth-child(1) {
	line-height: 1;
	font-weight: bold;
	font-size: 2.2rem;
}
.cv ul li:nth-child(1) a > span > span:nth-child(1) {
	font-size: 2.8rem;
}
.cv ul li a > span > span:nth-child(2) {
	margin-top: 0.7rem;
	color: #002468;
}
.cv ul li:nth-child(2) a > span > span:nth-child(2) {
	color: #06C755;
}
@media screen and (max-width: 768px) {
	.cv ul {
		display: block;
		width: 100%;
	}
	.cv ul li {
		width: 100%;
	}
	.cv ul li:not(:last-child) {
		margin-right: 0;
		margin-bottom: 1.5rem;
	}
	.cv ul li a {
		text-decoration: none;
	}
	.cv ul li a img {
		margin-right: 1.5rem;
	}
	.cv ul li:nth-child(1) a img {
		width: 3rem;
	}
	.cv ul li:nth-child(2) a img {
		width: 4rem;
	}
	.cv ul li a::before {
		right: 1.5rem;
	}	
}



/* -------------------------------------------

footer

------------------------------------------- */
footer {
	padding-bottom: 9rem;
}
@media screen and (max-width: 768px) {
	footer {
		padding-bottom: 8rem;
	}
}
.footer-nav {
	background: #282828D9;
	display: flex;
	justify-content: center;
	padding: 1rem 0;
}
.footer-nav li a {
	color: #ccc;
	font-size: 1.2rem;
	text-decoration: underline;
	transition: opacity 0.2s;
}
.footer-nav li a:hover {
	opacity: 0.7;
}
footer small {
	background: #282828D9;
	display: flex;
	align-items: center;
	padding: 2rem 0;
	text-align: center;
	justify-content: center;
	color: #fff;
	font-size: 1.2rem;
}




/* -------------------------------------------

fixed

------------------------------------------- */
.fixed {
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(40,40,40,0.85);
	width: 100%;
	height: 9rem;
}
.fixed li {
	width: 23rem;
}
.fixed li:not(:last-child) {
	margin-right: 2rem;
}
.fixed li a {
	color: #fff;
	font-weight: bold;
	display: block;
	padding: 0.5rem;
	font-size: 1.6rem;
}
.fixed li a span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 5.6rem;
	border: solid 1px var(--brown);
}
.fixed li a img {
	width: 3rem;
	margin-right: 1.2rem;
}
.fixed li:nth-child(1) img {
	width: 2rem;
}
.fixed li:nth-child(1) a {
	background: linear-gradient(90deg, #002468 0%, #1659B6 100%);
}
.fixed li:nth-child(2) a {
	background: linear-gradient(270deg, #207006 0%, #0E3800 100%);
}
@media screen and (max-width: 768px) {
	.fixed {
		justify-content: space-between;
		height: 8rem;
		padding: 0 1.5rem;
	}
	.fixed li {
		width: 49%;
	}
	.fixed li:not(:last-child) {
		margin-right: 0;
	}
	.fixed li a {
		text-decoration: none;
	}
}



/* -------------------------------------------

faq

------------------------------------------- */
.faq {
	padding: 8rem 0;
}
@media screen and (max-width: 768px) {
	.faq {
		padding: 8rem 3rem;
	}
}
.faq dl {
	border: solid 0.2rem var(--brown);
}
.faq dl:not(:last-of-type) {
	margin-bottom: 2rem;
}
/* ---- faq-ttl ---- */
.faq-ttl {
	display: flex;
	align-items: center;
	line-height: 1.4;
	padding: 0.9rem 6rem 1rem 2rem;
	position: relative;
	transition: all .3s;
}
.faq-ttl i {
	width: 1.5rem;
	height: 1.5rem;
	position: absolute;
	right: 2rem;
	top: calc(50% - 0.75rem);
}
.faq-ttl i::before,
.faq-ttl i::after {
	content: "";
	background: var(--brown);
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}
.faq-ttl i::before {
	width: 100%;
	height: 0.2rem;
}
.faq-ttl i::after {
	width: 0.2rem;
	height: 100%;
	transition: all .3s;
}
.faq-ttl.open i::after {
	transform: translate(-50%,-50%) rotate(90deg);
}
.faq-ttl:hover {
	cursor: pointer;
}
.faq-ttl > span:nth-child(1),
.faq-content > span:nth-child(1) {
	color: var(--brown);
	font-family: var(--font-serif);
	font-size: 2rem;
	font-weight: bold;
	padding-top: 0.1rem;
	padding-bottom: 0.3rem;
}
.faq-ttl > span:nth-child(2) {
	font-size: 1.5rem;
	padding-left: 1rem;
}
/* ---- faq-content ---- */
.faq-content {
	background: #e7e5dc;
	display: flex;
	padding: 1rem 2rem 2rem 2rem;
}
.faq-content > span:nth-child(2) {
	padding-left: 1rem;
	padding-top: 0.75rem;
}

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

}

.underconstruction {
	display: inline-block;
	background: rgba(180,0,0,1);
	color: #fff;
	font-weight: 500;
	font-size: 1.1rem;
	padding: 0.2rem 0.8rem 0.3rem 1rem;
	margin-bottom: 0.3rem;
}



/* -------------------------------------------

privacy

------------------------------------------- */
/* ---- layout ---- */
.privacy-page body {
	background: #F6F5EB;
}
/* ---- header ---- */
.privacy-header {
	position: static;
	background: #2D2C29;
	padding: 2rem 0;
	display: flex;
	justify-content: center;
}
.privacy-header h1 a {
	display: flex;
	align-items: center;
	color: #fff;
	text-decoration: none;
}
.privacy-header h1 img {
	width: 12rem;
}
/* ---- main ---- */
.privacy-main {
	max-width: 80rem;
	margin: 0 auto;
	padding: 6rem 3rem 8rem;
}
/* ---- page title ---- */
.privacy-page-title {
	font-family: 'Noto Serif JP', serif;
	font-size: 2rem;
	font-weight: 600;
	color: var(--brown);
	border-bottom: 2px solid var(--brown);
	padding-bottom: 1.2rem;
	margin-bottom: 4rem;
	text-align: center;
}
/* ---- policy box ---- */
.policy-box {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 0.4rem;
	padding: 3rem 3.5rem;
	margin-bottom: 3rem;
	height: 40rem;
	overflow-y: auto;
	line-height: 1.9;
	font-size: 1.3rem;
}
@media screen and (max-width: 768px) {
	.policy-box {
		padding: 2rem;
		height: 35rem;
	}
}
.policy-box h2 {
	font-size: 1.5rem;
	font-weight: bold;
	margin-bottom: 2rem;
	text-align: center;
}
.policy-box h3 {
	font-size: 1.3rem;
	font-weight: bold;
	margin: 2rem 0 0.8rem;
}
.policy-box p {
	margin-bottom: 1rem;
}
.policy-box ul {
	padding-left: 1.5rem;
	margin-bottom: 1rem;
}
.policy-box ul li {
	list-style: disc;
	margin-bottom: 0.4rem;
}
/* ---- agree ---- */
.agree-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 3rem;
	gap: 1rem;
}
.agree-wrap input[type="checkbox"] {
	width: 2rem;
	height: 2rem;
	cursor: pointer;
	accent-color: var(--brown);
	flex-shrink: 0;
}
.agree-wrap label {
	font-size: 1.5rem;
	font-weight: 500;
	cursor: pointer;
	line-height: 1.5;
}
/* ---- line button ---- */
.line-btn-wrap {
	display: flex;
	justify-content: center;
}
.line-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(270deg, #207006 0%, #0E3800 100%);
	color: #fff;
	text-decoration: none;
	border-radius: 1rem;
	width: 38rem;
	height: 9rem;
	font-weight: bold;
	font-size: 2rem;
	border: none;
	cursor: pointer;
	transition: opacity 0.3s;
	gap: 1.5rem;
}
.line-btn img {
	width: 4rem;
}
.line-btn:hover {
	opacity: 0.85;
}
.line-btn.disabled {
	background: #999;
	cursor: not-allowed;
	pointer-events: none;
	opacity: 0.5;
}
@media screen and (max-width: 768px) {
	.line-btn {
		width: 100%;
		font-size: 1.8rem;
		height: 8rem;
	}
}
/* ---- footer ---- */
.privacy-footer {
	padding-bottom: 0;
}
.privacy-footer small {
	background: #282828D9;
	display: flex;
	align-items: center;
	padding: 2rem 0;
	text-align: center;
	justify-content: center;
	color: #fff;
	font-size: 1.2rem;
}