@charset "utf-8";
.pcbr{display:none;}
.spbr{display:block;}
@media screen and (min-width: 769px) {
.pcbr{display:block;}
.spbr{display:none;}
}
html, body {
  min-height: 100vh; /* 画像を画面全体にきれいに広げるために追加 */
}
body{
	background-attachment: fixed;
	background-image:url(../images/bg_pc.jpg);
	background-repeat: no-repeat;
	background-size: auto;
	background-position: center ;
	  font-family: "Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Noto Sans JP",
    sans-serif;
}

/*------------------------------------------
メインコンテナー
--------------------------------------------*/
.main-contents {
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

@media screen and (min-width: 768px) {
.main-contents {
	max-width: 1000px;
	flex-direction: row;
	gap:0 80px;
	}
}

/*------------------------------------------
PC用ボタン領域（左側：固定したい部分）
--------------------------------------------*/
.pc-sidebtn_inner {
	display: none;
}

@media screen and (min-width: 768px) {
.pc-sidebtn_inner {
    display: flex;
    flex-direction: column;
    justify-content: center; 
    position: sticky;
    top: 0;
    height: 100vh;
    width: 40%;
    max-width: 400px;
    min-width: 250px;
    flex-shrink: 0;
	}
}
.pc-sidebtn_inner ul {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: 0 30px;
    list-style: none;
    gap: 20px 0;
}
.pc-sidebtn_inner ul li {
    width: 100%;
}
.pc-sidebtn_inner ul li a {
    display: flex;
    align-items: center;
    justify-content: center; 
    width: 100%;
    background: #fff;
    color: #333;
    font-weight: 700;
    font-size: clamp(14px, 2vw, 20px);
    text-decoration: none;
    text-align: center;
    padding: 18px 20px;     
    transition: background 0.2s;
    border-radius:10px;
    border:1px solid #333;
}

.pc-sidebtn_inner ul li a:hover {
    background: #fafafa;
}
.conversion-btn{
	margin:40px auto 0;
    width: 85%;
}
.conversion-btn a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    background: #fd0d0e;
    color: #fff;
    font-weight: 700;
    font-size: clamp(14px, 2vw, 25px);
    text-decoration: none;
    text-align: center;
    padding: 13px 20px;
    transition: background 0.1s;
    border-radius:100px;
    border:1px solid #fd0d0e;
}
.conversion-btn a:hover {
    background: #ffff;
    color:#333;
}
.arrow_r_b,
.arrow_r_b_e {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.arrow_r_b:before,
.arrow_r_b_e:before {
  content: '';
  width: 22px;
  height: 22px;
  background: #333;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 13px;
  bottom: 0;
  margin: auto;
}
.arrow_r_b_e:before{
	background:#fff;
}
.arrow_r_b:after,
.arrow_r_b_e:after {
  content: '';
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  /* 45deg（右向き）から 135deg（下向き）に変更 */
  transform: rotate(135deg); 
  position: absolute;
  /* 中央に見えるよう配置を微調整 */
  top: -3px; 
  right: 20px;
  bottom: 0;
  margin: auto;
}
.arrow_r_b_e:after {
  border-top: solid 2px #E81664;
  border-right: solid 2px #E81664;
}

.arrow_r_b_o {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.arrow_r_b_o:before {
  content: '';
  width: 22px;
  height: 22px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right:12px;
  bottom: 0;
  margin: auto;
}
.arrow_r_b_o:after {
  content: '';
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #E81664;
  border-right: solid 2px #E81664;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 20px;
  bottom: 0;
  margin: auto;
}

@media screen and (min-width: 768px) {
.card_detail_btn_pc{
	text-align:center;
	margin:20px auto 0px;
}
.card_detail_btn_pc a{
	display:block;
	background:url(../cmn/images/arrow_blank_w.png) no-repeat 96% 50% #00499b;
	background-size:13px;
	color:#fff;
	padding:10px 30px 10px 30px;
	width:100%;
	margin: 0 auto;
	border-radius:10px;
	font-size: clamp(15px, 2vw, 15px);
	font-weight:700;
}
}
/*------------------------------------------
共通
--------------------------------------------*/
.notice li{
	font-size: clamp(13px, 2vw, 15px);
	letter-spacing:1px;
	margin: 10px auto 0;
	text-indent:-1em;
	padding-left:1em;
	width:95%;
}
.notice li:before{
	content:"※";
}

.cmn_text{
	font-size: clamp(15px, 2vw, 16px);
	width:95%;
	margin: 20px auto 0;
	letter-spacing:1px;
}
@media screen and (min-width: 768px) {
.cmn_text{
	width:95%;
	}
}
/*------------------------------------------
メインコンテンツ（右側：動く部分）
--------------------------------------------*/
.contents_body {
	background: #fafafa;
	flex: 1;
	padding:0 0px;
}
@media screen and (min-width: 768px) {
.contents_body {
	padding:0 0px 0;
	}
}
header{
	background: #fafafa;
}

.contents_center_style{
	margin: 0 auto 60px;
	width:95%;
}


/*------------------------------------------
カードホルダーの魅力(左寄せ見出し)
--------------------------------------------*/
.lbl_inner{
	margin:10px 0;
}
.lbl_inner p{
	padding:5px 10px;
}
.lbl_inner h2{
	background:#fd0d0e;
	padding:15px 10px;
	max-width:85%;
}
/*------------------------------------------
カードホルダーの魅力(番号付きの箇所)
--------------------------------------------*/
.number_inner{
	padding:15px 0px 15px 15px;
	position:relative;
}
.number_inner h3 img{
	max-width:330px;
}
@media screen and (min-width: 768px) {
.number_inner{
	padding:15px 25px ;
}
.number_inner h3 img{
	max-width:85%;
	}
}

.number_inner h3{
	max-width:100%;
	z-index:1;
	position:relative;
}
.number_inner .icon01{
	position:absolute;
	right:10px;
	bottom:-30px;
}
.number_inner .icon02{
	position:absolute;
	right:10px;
	bottom:0px;
}
.number_inner .icon01 img,
.number_inner .icon02 img{
	max-width:130px;
}
.card01{
	margin: 30px auto 80px;
}
/*------------------------------------------
カードホルダーの特徴
--------------------------------------------*/
.center-style{
	text-align:center;
	font-size: clamp(17px, 2vw, 18px);
}
.center-style img{
	margin: 40px auto 20px;
	max-width: 90%;
}
.box_inner{
	background:#fff;
	margin: 20px auto;
	max-width:95%;
	padding:25px 0;
	font-size: clamp(16px, 2vw, 18px);
	letter-spacing:1px;
}
.shadow_style{
	box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
}

.box_inner dl{
	margin: 0 auto;
	max-width:80%;
}

@media screen and (min-width: 768px) {
.box_inner dl{
	max-width:64%;
	}
}
/*------------------------------------------
価格
--------------------------------------------*/
.gray_body{
	background:#CCCCCC;
	padding:30px 0;
}
.gray_inner{
	background:#fff;
	margin: 20px auto ;
	max-width:90%;
	padding:25px 0;
	box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
	font-size: clamp(15px, 2vw, 18px);
	letter-spacing:1px;
}
.gray_inner dl{
	margin: 0 auto 30px;
	max-width:90%;
}
.gray_inner dl dt{
	background:#000;
	font-size: clamp(19px, 2vw, 25px);
	letter-spacing:1px;
	color:#fff;
	font-weight:700;
	text-align:center;
	padding:15px 0;
	border-radius:10px;
}
.gray_inner dl dd{
	margin: 10px auto 0px;
	max-width:90%;
	text-align:center;
}
.gray_inner dl:last-child{
	margin: 0px auto 0px;
}

.large_text{
	font-size: clamp(23px, 2vw, 33px);
	padding:0 0px 0 5px;
}
.gray_inner dl dd table{
	width:100%;
	text-align:left;
	font-size: clamp(14px, 2vw, 17px);
}
.gray_inner dl dd table th{
	font-weight:normal;
	width:40%;
	vertical-align:top;
	padding:5px 0;
}
@media screen and (min-width: 768px) {
.gray_inner dl dd table th{
	width:30%;
	}
}

/*------------------------------------------
ご注文の流れ
--------------------------------------------*/
.step_body{
	background:#f6f6f6;
	padding:30px 0;
}
.step_inner{
	margin: 20px auto 0;
	max-width:100%;
}
.step_inner .eng_title{
	padding:5px 0 0;
}

.step_inner .eng_title img{
	display: block;
	margin: 0 auto;
	max-width: 100%;
	height: auto;
}
.step_inner h4 img{
	display: block;
	margin: 0px auto;
	max-width: 100%;
	height: auto;
}
.step_inner h4{
	background:#fe0809;
	padding:15px 0;
	margin: 10px auto;
}
.step_inner h4 img{
	max-width:65%;
}
.step_setup{
	display:flex;
	gap:40px 20px;
	flex-direction:column;
	max-width:80%;
	margin: 40px auto;
}
@media screen and (min-width: 768px) {
.step_setup{
	max-width:90%;
	
	}
}

.step_inner dl{
	display:flex;
	align-items:center;
	gap:0px 10px;
	position: relative;
}
@media screen and (min-width: 768px) {
.step_inner dl{
	gap:0px 0px;
	}
}

.step_inner dl:after {
  position: absolute;
  content: '';
  top: 115%;
  left: 21px;
  border: 15px solid transparent;
  border-top: 15px solid #000;
  width: 0;
  height: 0;
}
@media screen and (min-width: 768px) {
.step_inner dl:after {
	top: 113%;
	left:38px;
	}
}

.step_inner dl:last-child:after {
  border-top:none;
}

.step_inner dt{
	flex:.5;
}

.step_inner dd{
	font-size: clamp(20px, 2vw, 22px);
	letter-spacing:1px;
	font-weight:700;
	flex:1.5;
}
/*------------------------------------------
オリジナルカードを作ろう
--------------------------------------------*/
.originalcard_body{
	padding:60px 0;
}
.originalcard_inner{
	margin: 0px auto 0;
	max-width:100%;
}
.card_title{
	max-width:80%;
	margin: 0 auto 10px;
}
.originalcard_img{
	margin:0 0 20px;
}
.text_space{
	display:block;
	margin: 0 0 20px;
}
.box_inner_original{
	background:#fff;
	margin: -30px auto 0;
	max-width:90%;
	padding:25px 0;
	font-size: clamp(15px, 2vw, 17px);
	letter-spacing:1px;
}
.box_inner_original dl{
	margin: 0 auto;
	max-width:90%;
}
.box_inner_original dl dt img{
	text-align:center;
	margin: 0px auto 15px;
}
.card_detail_btn{
	text-align:center;
	margin:30px auto 0px;
}
.card_detail_btn a{
	display:block;
	background:url(../cmn/images/arrow_blank_w.png) no-repeat 95% 50% #00499b;
	background-size:13px;
	color:#fff;
	padding:10px 25px 10px 25px;
	width:75%;
	margin: 0 auto;
	border-radius:10px;
	font-size: clamp(15px, 2vw, 16px);
	font-weight:700;
}
@media screen and (min-width: 768px) {
.card_detail_btn a{
	background:url(../cmn/images/arrow_blank_w.png) no-repeat 97% 50% #00499b;
	background-size:13px;
	padding:15px 25px 15px 25px;
	width:83%;
	}
}

/*------------------------------------------
リンク設定
--------------------------------------------*/
.cardlink_inner{
	padding:15px 0;
	background:rgba(0,0,0,.6);
	position: sticky;
	bottom: 0;
	z-index: 1;
	width: 100%;
}
@media screen and (min-width: 768px) {
.cardlink_inner {
    display: none;
	}
}
.card_detail_btn_link{
	text-align:center;
	margin:0px auto 0px;
}
.card_detail_btn_link a{
	display:block;
	background:#fe0809;
	background-size:13px;
	color:#fff;
	padding:10px 25px 10px 10px;
	width:85%;
	margin: 0 auto;
	border-radius:100px;
	font-size: clamp(18px, 2vw, 20px);
	font-weight:700;
}
.card_detail_btn_link a:hover,
.card_detail_btn a:hover,
.card_detail_btn_pc a:hover{
	opacity:.7;
}

/*------------------------------------------
フッター
--------------------------------------------*/
footer{
	padding:20px 0 15px;
	position:relative;
}
footer dl dt img{
	display: block;
	margin: 0px auto 10px;
	max-width: 60%;
	
}
footer dl dd{
	font-size: clamp(9px, 2vw, 13px);
	width:100%;
	margin: 0px auto 0;
	letter-spacing:1px;
	color:#808080;
	text-align:center;
}
/*------------------------------------------------------
TOPへ戻る指定
-------------------------------------------------------*/
.pagetop{
	position:absolute;
	right:0;
	bottom:0;
	text-align:center;
	display: flex;
	justify-content: flex-end;
	align-items: end;
	margin:40px 0 0;
}

.pagetop a{
	display:block;
	background:#333;
	padding:20px 15px 6px;
	color:#fff;
	text-decoration:none;
	font-weight:500;
	line-height:1.3;
	font-size: clamp(10px, 2vw, 12px);
}

.arrow_o_p {
  position: relative;
  display: inline-block;
  padding-left: 0px;
}
.arrow_o_p:before {
  content: '';
  width: 8px;
  height: 8px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(-45deg);
  position: absolute;
  top: -23px;
  left: 22px;
  bottom: 0;
  margin: auto;
}
.pagetop a:hover{
	background:#ccc;

}
@media screen and (min-width: 768px) {
.arrow_o_p:before {
  top: -25px;
  left: 25px;
	}
}
/*----------------------------------------------------------------------------
スクロールで表示
-----------------------------------------------------------------------------*/
.scroll_up {
  transition: 0.5s ease-in-out;
  transform: translateY(60px);
  opacity: 0;
}
.scroll_up.on {
  transform: translateY(0);
  opacity: 1.0;
}
.scroll_left {
    -webkit-transition: 0.5s ease-in-out;
    -moz-transition: 0.5s ease-in-out;
    -o-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_left.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

.scroll_right {
  -webkit-transition: 0.8s ease-in-out;
  -moz-transition: 0.8s ease-in-out;
  -o-transition: 0.8s ease-in-out;
  transition: 0.8s ease-in-out;
  transform: translateX(30px);
  opacity: 0;
  filter: alpha(opacity=0);
  -moz-opacity: 0;
}

.scroll_right.on {
  opacity: 1;
  filter: alpha(opacity=100);
  -moz-opacity: 1;
  transform: translateX(0);
}

.timing01 {transition-delay: .1s;}
.timing02 {transition-delay: .18s;}
.timing03 {transition-delay: .25s;}
.timing04 {transition-delay: .25s;}
.timing05 {transition-delay: .3s;}


/*----------------------------------------------------------------------------
SPのみグロナビ
-----------------------------------------------------------------------------*/
#g-nav.panelactive{
	position:fixed;
	z-index: 999;
	top: 0;
	width:100%;
	height: 100vh;
}
.circle-bg{
	position: fixed;
	z-index:3;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: #fafafa;
	transform: scale(0);
	right:-50px;
	top:-50px;
	transition: all .4s;
}

.circle-bg.circleactive{
	transform: scale(50);
}

#g-nav-list{
	display: none;
	position: fixed;
	z-index: 999; 
	width: 100%;
	height: 100vh;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}
@media screen and (min-width: 768px) {
	#g-nav-list{
	display:none;
	}
}

#g-nav.panelactive #g-nav-list{
	display: block;
}

#g-nav ul {
	opacity: 0;
	position: absolute;
	z-index: 999;
	top:50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
}
#g-nav.panelactive ul {
	opacity:1;
}

#g-nav.panelactive ul li{
	animation-name:gnaviAnime;
	animation-duration:1s;
	animation-delay:.2s;
	animation-fill-mode:forwards;
	opacity:0;
}
@keyframes gnaviAnime{
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}

#g-nav li{
	text-align: center; 
	list-style: none;
	width:90%;
	margin: 0 auto;

}

#g-nav li a{
	color: #333;
	padding:10px;
	display: block;
	font-weight: bold;
	font-size: clamp(17px, 2vw, 20px);
}
#g-nav li a:hover{
	opacity:.7;
}
.openbtn{
	position:fixed;
	top:0px;
	right: 0px;
	z-index: 9999;
	cursor: pointer;
	width: 30px;
	height:30px;
	background:#000;
}
@media screen and (min-width: 768px) {
.openbtn{
	display:none;
	}
}

.openbtn span{
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 8px;
	height: 2px;
	border-radius: 2px;
	background-color: #fff;
	width: 45%;
}

.openbtn span:nth-of-type(1) {
	top:9px;	
}

.openbtn span:nth-of-type(2) {
	top:14px;
}

.openbtn span:nth-of-type(3) {
	top:19px;
}

.openbtn.active span:nth-of-type(1) {
	top: 7px;
	left: 8px;
	transform: translateY(6px) rotate(-45deg);
	width: 50%;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}

.openbtn.active span:nth-of-type(3){
	top: 19px;
	left: 8px;
	transform: translateY(-6px) rotate(45deg);
	width: 50%;
}

#g-nav-list ul .conversion-btn_sp{
	margin:40px auto 20px;
}
#g-nav-list ul .conversion-btn_sp a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    background: #fd0d0e;
    color: #fff;
    font-weight: 700;
    font-size: clamp(18px, 2vw, 25px);
    text-decoration: none;
    text-align: center;
    padding: 10px 20px;
    transition: background 0.1s;
    border-radius:100px;
    border:1px solid #fd0d0e;
}
#g-nav-list ul .conversion-btn_sp a:hover {
    background: #ffff;
    color:#333;
}

#g-nav-list ul .card_detail_btn_sp{
	text-align:center;
	margin:0px auto 0px;
}
#g-nav-list ul .card_detail_btn_sp a{
	display:block;
	background:url(../cmn/images/arrow_blank_w.png) no-repeat 96% 50% #00499b;
	background-size:13px;
	color:#fff;
	padding:10px 30px 10px 30px;
	width:85%;
	margin: 0 auto;
	border-radius:10px;
	font-size: clamp(15px, 2vw, 15px);
	font-weight:700;
}